Author Archive

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!

Read More...

In my previous post I looked over the structure of MS 70-480 exam. I also briefly described what HTML topics it potentially covers. Today I am going to guesstimate the CSS3 required reading for this exam. So let’s get into it. Perhaps you are aware that many parts of the new CSS3 specification are not yet finished. You can check the list here. So logically unfinished parts of the specification should not be included in this exam. However, there are some features which are already implemented in most browsers and can be in the exam even if their w3c documents are not finished. I am talking particularly about flexbox. It is already present in newest browsers including IE10. So what CSS features one should learn for this exam

Read More...

I have been working as a front-end developer for roughly half a year. To prove myself that I have learned a lot and that I can successfully learn even more I have decided to pursue the brand new “MCSD: Web Applications” certificate from Microsoft. The certificate has three prerequisite exams: Programming in HTML5 with JavaScript and CSS3 (70-480) Developing ASP.NET MVC 4 Web Applications (70-486) Developing Windows Azure and Web Services (70-487) To be honest I have absolutely zero experience with the later two technologies: MVC4 and Azure. So this is going to be quite a challenge. As far as HTML5 goes, I have some experience with that and I am hoping to prepare for this exam in about a month or so. In order to better remember what I have learned I will be writing everything I study in this blog. I hope that this will be helpful not only for me, but for others who decide to take 70-480 exam. Also I have not seen the exam or any “brain dumps” of that exam so I will be preparing according to the description at the MS exam page

Read More...

I am going to rant a little about the movie Prometheus. Firstly, I would like to say that I really like sci-fi movies, especially the ones with alien life forms, so I am a little biased. However, that being said the movie was not as great as it could have been if not for many illogical things and other inaccuracies. Lets talk about some things that I thought were stupid/weird. Space travel: as you may know the speed of light is currently considered the fastest speed there is. The closest star system from earth is Alpha Centauri. If you were to travel to that star system at the speed of light it would take you approximately 4.24 years. Yet in the movie they were in cryogenic capsules for 2 years and 4 months. Now obviously they were not flying at the speed of light, they must have traveled a lot faster. So what is the problem you may ask. The problem is that it is the future, shouldn’t they be teleporting or using wormholes to travel? Because right now it just seems that hey were traveling with some regular old technology, but just many times faster than the speed of light. I mean where the 2 years come from? Also why bother using cryogenics fur such short periods

Read More...

Learning a new platform is never easy. Some things that should require minutes to accomplish, bring hours of frustration and disappointment. Today I am going to write about a couple of possible pitfalls when developing a JavaScript Metro app for windows 8. As you may know Windows 8 platform natively supports Metro app development using the web technology stack: JavaScript, HTML and CSS. Not only that, it also implements the latest and greatest CSS3 and ECMAScript 5 features. You can also access all Windows 8 API via JavaScript. The new WinRT (Windows Runtime) is an impressive piece of software

Read More...

Eval and evil differ by only one letter, ever thought about that? I am just kidding though. Eval in itself is not at all evil, actually it is rather handy – it evaluates a string and if that string is a JavaScript statement, executes it. Nothing bad about that, however many JavaScript developers have misused eval() and did things like:

This makes code injection attacks possible. Since eval() will try to read whatever the myVariable contains. Using eval() in this way makes the code harder to maintain and debug. All in all, you should start learning to avoid eval() since in ECMAScript 5 “strict mode” eval is not allowed and will probably be deprecated or removed in ECMAScript

Read More...

When I search online for good JavaScript code examples there is one thing that I immediately look for inside that code. Does it have == or === comparison operators (double or triple equal signs). The reason for doing that is that it gives me an idea of how reliable the code is. I understand that this is not the only reliability indicator, but it is pretty important. However, I have noticed that during the last couple of years many JavaScript developers became aware of the possible pitfalls of == (double equal) comparison. Maybe because of Douglas Crockford, maybe because of JSLint or JSHint. Nobody knows why, but I definitely find less and less examples with == in the code… So, what is all the fuzz about these comparison operators? Well you might have guessed it – they are one of the bad parts of JavaScript language. Consider this example:

*Example taken from Douglas Crockford’s book: JavaScript the Good Parts, which I highly recommend for new JS developers. What was going through the heads of JavaScript language creators when this was allowed to happen?! All in all, the general suggestions would be to use the === and !== comparison operators. Unless, you are a seasoned JavaScript developer avoid == and != . Even if you are seasoned developer there must be a very specific reason why you choose to use the less predictable comparison operators, right

Read More...

As you may know JavaScript has some of the best features that modern programming languages can offer, however it also has some really terrible parts. This is going to be a series of short posts about those terrible parts. My intention is to shed some light on these problems and help you mitigate or avoid them entirely. I will start of with my personal favorite – plus operator. JavaScript has this terrible design flaw – plus operator is overloaded. Meaning that it can have two distinct behaviors depending on the situation. The same operator can both add and concatenate. Let me give some examples of this weird behavior:

Basically, when you mix numbers with strings bad things start to happen. In order to avoid problems with addition and concatenation try to ensure that all of your operands are of the same type: numbers or strings. This will ensure that the plus operator is working in the expected mode and will not switch in the middle of you operation. Thank you for reading, everyone

Read More...

Once in a while, you stumble upon a JavaScript tool that is so awesome that it blows your mind. While I was reading through Rebecca Murphey’s blog I found JS-Assessment. What it actually is is “a test-driven approach to assessing JavaScript skills”. In essence it is a bunch of tasks which have tests written for them and you have to come up with functions to pass the tests. Does not seem very extraordinary when you put it like that. However, consider the fact that the whole thing is written in JavaScript! As described in the JS-Assessment GIT Hub page the software underneath the project consists of  “RequireJS for dependency management and Mocha and expect.js for the tests themselves.” And everything runs inside a node.js server

Read More...