The goto is considered harmful. In general. If anyone finds a goto keyword somewhere in a code base nowadays, the default action is to identify the author of this code line and instantly assassinate him. It’s safe, because jury always sides with heroes who do good for public

If you are any type of knowledge worker – meaning you use your brain for work, you should know that your performance is being measured by your ability to produce results not by the volume of things you do. Especially for programmers it is important to reach development goals effectively and that is why lines of code (LOC) is a poor measurement of productivity. We are going to boost your productivity by using two software tools. An old saying “Measure twice, cut once” is still very relevant today. Without real data about your current productivity you cannot know what exactly you need to improve in order to increase it. So the first thing we are going to do is measure it! For this purpose we are going to use an awesome tool called: RescueTime. RescueTime is great at tracking what you do when using your PC. It automatically sorts the software and the websites you visit into several categories and labels them accordingly. I especially like the naming of these categories, they range from “Very Productive” to “Very Distracting” and this is definitely correct way to label them. For example: Youtube is in the category of Entertainment and is labeled as “Very Distracting” similarly to Facebook, Amazon, Ebay and etc. After seeing some of your early daily reports you might be shocked at how much time you actually spend in this “Very Distracting” category, at least I was. What should you be focusing on with RescueTime? For the first couple of days try not to change your regular behavior too much, this will help you identify your regular baseline productivity level and identify the real sources of distraction. Also categorize the websites and applications that RescueTime did not automatically identify. Assigning a category to a website is very simple and ResueTime then remembers that website forever. For example you might have to categorize local news websites, some specific development software that you use or other small websites. After a week or so and after you have truly seen enough of horrendous red bars and became profoundly amazed at your own unproductive behaviors, you can start taking action. But what can you do about it? Simply block them! You can easily do it by using a browser extension called BlockSite. It is available for both Chrome and Firefox and it actually goes one step further that simply blocking a website, it also redirects to a website of your choice! My personal setup is the following: (Monday – Friday 8:00 – 19:00) all major time wasting websites are blocked and redirected to JIRA (sprint backlog). You should personalize these times and redirects according to your own needs, but the general idea is to shift your attention from “Very Distracting” sources to “Very Productive”. You will be amazed by the productivity gains of this simple setup. What have we learned? To be effective at your work you have to produce results, be it software, reports, business plans or anything similar. Ultimately only you are responsible for your own productivity and effectiveness at reaching these goals. In order to improve your effectiveness you have to measure it and then you have to replace bad behaviors with positive ones. On the surface it seems very simple but in reality it is a never ending struggle with the lazy person inside you. Be strong and don’t give up to LOLcats… P.S. Let me know about your experience with increasing personal productivity at work!

A while ago I used to work with one legacy platform. It started its existence more than 10 year ago, most probably as a customer specific solution which turned into platform. It’s still quite popular and I guess it covers major user requirements. But as it happens with systems which doesn’t evolve good enough or evolve the wrong way, it ends up as small hell even for vendors’ developers. I was third party developer, but for my job I had access to most of the production source and since stumbling upon funny and frustrating comments I decided to create a collection. Here’s part 1 of it

Once in a while I get stupendous insights of Life, the Universe and Everything, like “Ah, but that makes perfect sense, how could I have missed this before”. At some point of my life I was really fascinated by a field called Futurology and various future trends. I had great moments reading books about foresight into the the future of humanity and technology. Yet a bit later I came across a thing called Gartner Hype Cycle curves – graphs, which show you significant technology trends in the next 10 year period. It’s quite fun to compare different year curves and see what was the long running trends and what failed to establish
Suppose you have two abstractions – an event listener and an event producer. The relationship is 1:1, that is, there’s one abstraction that fires events, and another one that knows how to deal with them. At some later time it turns out there should be more than one listener. If you’re coding in Java, your programming language goes into your way