There are many facets to software design. A common example is loss aversion, which refers to "people's tendency to strongly prefer avoiding losses to acquiring gains." Armed with this knowledge, more informed decisions are possible throughout the software development cycle. The following list details a few examples where loss aversion can play a role in software development:
When people are doing a physical task, it’s easy to assess how hard they are working. Recognizing and rewarding hard work is a pretty fundamental human instinct, it is one of the reasons we find endurance sports so fascinating. This instinctive appreciation of physical hard work is a problem when it comes to managing creative-technical employees. Effective knowledge workers often don’t look like they are working very hard.
How does one change the world? One random act of kindness at the time. But I’m a software engineer. It’s hard to do random acts of kindness when it comes to doing IT related stuff. I often think I should do something about this. The ultimate solution would be that you could do this with a group of software engineers.
Spring framework is widely used as a dependency injection container, and that’s for good reasons. But there is also a very useful feature that might get overlooked and is therefore worthy of discussion: bean aliasing.
Rather than re-inventing the wheel, and to help provide perspective, we are now working with the folks from Docker. They will be giving us their feedback, helping with integration and creating a Go profile.
As the holiday season approaches, we take a moment to sit down with Sarah Goff-Dupont and James Dumay from Atlassian’s Bamboo team to discuss the full stack of tools used by companies of all sizes, from startups to massive enterprises
If you've ever wanted to have a say in what Java EE will look like, Oracles latest Java EE 8 features survey is a great opportunity to have you say.
There's a bunch of people out there that think I don't like docker, they are wrong. I just never understood the hype about it since I didn't see, (and still don't) see it being used at large and people seem to understand that as being against it.
Since Gnome 3.8 has been out in the portage tree, a lot of problems arise when you try to emerge something. If it was only when you update the system, it would be OK, but this arises every time you try to install something.
If you haven’t used Vagrant before then hopefully this will not only help you get up and running with Apache Kafka but also get introduced to Vagrant. Vagrant helps to create and configure lightweight, reproducible, and portable development environments.
Amazon Web Services offer various tools for building distributed and scalable workflow applications. One approach for building such an application is to use topics and queues for connecting the distinct steps in the workflow process.
One of our Dev (DevOps?) guys came across this inconsistency that broke a server. We got discussing various little slip of the pinky errors that can completely break a server.
While some providers tout the evils of running agents on your system and can oft be heard shouting, “no agents here!!!”, we prefer to keep an open mind. That being said, like most things in life, agents have their pros and cons.
I was one of the earliest adopter of Spring in Norway. We developed a large system where we eventually had to start thinking about things like different mechanisms for reuse of XML configuration.
As a corporate developer I rarely get time to have fun. Hackathons bring the fun back into development.
GitHub publishes a command line tool called hub, which is a more convenient way than the website for doing a few specific tasks and in particular I've been using it more and more for opening pull requests. The basic workflow is to create a branch, add your changes, and then push it to GitHub
If we knew exactly what code needs to be written, what needs to be done and how it can be done, we would need very little time to write it. It is the discovery of the knowledge what to build and how to build it that takes all the time.
Many programmers have a hard time writing good unit-tests for code that involves time. For example, how do you test time-outs, or periodic clean-up jobs? If you structure the code the right way, much of the complexity disappears. Here is an example of a technique that lets you test time-related code with ease.
So I have been pondering an enhancement required on the Tyrus project that would allow a user to broadcast to a subset of client connected to a URL across a cluster of machines.
I’m in the process of setting up a new VPS for myself. So I have settled on UFW for the time being. Sadly, it seems to completely fail in this OpenVZ environment due to numerous modules that cannot be inserted into the running kernel. IS there anything better?
I wrote a blog titled "Why blocking is bad in Akka remoting … really bad." To my surprise people actually read my blog (crazy, I know!). One of those people was none other than Dr. Roland Kuhn, Akka Tech Lead at Typesafe. Yep, Mr. Akka himself read my blog and sent me an e-mail.
If you’re a developer, this post probably isn’t for you as we don’t dig into the code level nitty gritty, but it will give you a high level overview of logs, where they come from and how they get sent to a third party service.
Are you a Java programmer having wrist pain from typing a lot? Does your mind keep swinging from loving to hating Java? Do you want to become more productive without leaving your world of Java? If so, this article is for you. Learn how you can become more productive by slowly transitioning to Groovy.
In common with most development projects these days, I'm using git more and more. It's interesting though that the way that I use this tool just keeps on changing and evolving even after about 4 years of regular use. Today I thought I'd share a new habit that I've developed: using git's ability to stage changes interactively.
Every developer needs to be aware of what those non-functional requirements are and why operations personnel and help desk personnel are customers that are just as important as the end-users.