Neon Rocket

Even Neo is Impressed

RSS 2.0

How to prevent duplicate directories in your path


What happens with the Path The path is set via a myriad of config files. It is very easy to accidentally add the same directory to the path, and there is no built-in mechanism from preventing this situation. While it has no impact on performance, it does make reading the path more difficult (for example, when trying to see if a …Continue reading →

Rescued from the ashes: I don’t hire unlucky people

Icon by Vezok -

Note: this was written by Raganwald on, which unfortunately went belly-up April 2013. It is too important a lesson to let disappear, so I’m posting it here. Bertram Wooster and Ernestine Anderson were staffing up their teams. Bertram was hiring trainees to work in the company’s retail stores, Ernestine was hiring software developers to build a new supply chain system …Continue reading →

How to screw up estimates


“I need a time and cost estimate to develop a fizzbuzz mobile app on all minor mobile platforms (Windows/Blackberry/Symbian), and I need that estimate in 15 minutes.”

Requirements Gathering: set up to fail

Image by Icons Land -

Without project requirements gathering, a project is nothing. One failure point is letting the wrong people gather the requirements. There are basically two types of requirements for an application project: the functional/feature-set and the technical. Pitfall: There must be at least one cycle of comparing Functional to Technical requirements to ensure they sync up, followed by adjustments to both (as necessary). …Continue reading →

The law of Futility of Avoidance


Given enough time, you will end up becoming responsible for supporting and maintaining the very system you’re the most desperate to avoid.

Installing Internet Explorer on Mac


Edit (2014-07-11): Fixed URLs When you need to develop/design a solution for the majority of corporate users, you will need to test it on Internet Explorer. If you have a Mac, setting this up on your machine is easy. The original source for this information was OSXDaily. I cleaned it up and added additional information. Intended Audience If you’re unfamiliar with …Continue reading →

Don’t hate your users

If you want to enable your users to do something, such as create an account on your system, DO NOT MAKE IT IMPOSSIBLY HARD. Case in point: If algebra is too hard, just refresh and you’ll see something else. Woah, better refresh. You know what this does? It not only keeps out any bots, but turns a normal human into something …Continue reading →

How to ask for help the wrong way

When submitting  bug reports, it is a good idea to Realize that you’re asking for help from people who (usually) have day jobs, and Expend at least some amount of effort to show you’re not expecting someone else to do all the work. With that in mind, let me introduce to you the Best Bug Report Comment, Ever† First the bug …Continue reading →

Decoupling presentation from content

I recently ran across the anti-pattern of what I see as a common problem amongst designers and developers: coupled presentation and content. I’ve found that decoupling the presentation from the content makes things much easier to write, maintain and expand. Here’s a simple example: HTML <section> <div class=”margin-top-10″>Lorem Ipsum</div> </section> CSS .margin-top-10 { margin-top: 10px }; .margin-top-20 { margin-top: 20px }; (etc) …Continue reading →

Iterations in Less

Part of the beauty of Less and other CSS ‘compilers’ is to enable the author to automate tedious functions that normally must be coded by hand. Suppose you needed several classes that specified padding/margins: .mRight50{margin-right:50px} .mLeft50{margin-left:50px} .pRight50{padding-right:50px} .pLeft50{padding-left:50px} .mRight25{margin-right:25px} .mLeft25{margin-left:25px} .pRight25{padding-right:25px} .pLeft25{padding-left:25px} No big deal, right? It wouldn’t take that long to type in; just cut and paste a bit. …Continue reading →