Dec 312013
 

I’ve spent a year reading Clean Code: A Handbook of Agile Software Craftsmanship. That’s not to say I’ve been reading it once a week or had so little time I only managed to read a single book. Instead, I’ve been slowly making my way through it – sometimes only reading a single page at a time. It has made me a better coder and I’m certain I’ll be reading it again.

Clean Code Textbook Cover

The premise is: bad code can operate, but only clean code will work long-term. As code develops and matures, effort must be made to clean and improve it. If your code starts out ugly (or becomes ugly over time), things will inevitably fall apart. Bad code requires too much effort and too many resources to maintain. Businesses and organizations can be weighed down or destroyed by bad code.

Continue reading »

Apr 302013
 

I’ve mentioned to a few people in passing (and some can tell just by looking): this site switched from Drupal version 6 to WordPress version 3 in December 2012. I’d been on Drupal since November 2010; on ANHosting since December 2010. I didn’t rush to a decision. There had been months of consideration and several factors which led to the switch.

Continue reading »

Jan 022013
 

Health researchers have long been studying the effects of sitting at work. The reports I’ve seen are negative: sitting all day at work is detrimental to your health. Circulation is cut off to portions of your body, your organs are squeezed and your joints/muscles are forced to remain in static positions all day. Even more disturbing is the finding that exercise cannot offset the negative effects of sitting. If you’re sitting all day, you are harming your health.

Standing desks are nothing new, so I’ve been thinking about it for a number of years. After seeing a post describing very cost-effective standing desks, I decided it was time to try. It depends upon your height, but most people need nothing more than a coffee table and a shelf from Ikea (about $20 total). In my case, I’m tall enough that I don’t even need the shelf. The only item I purchased was a 35″ x 21″ LACK coffee table (p/n 101.042.95). You will probably also want an anti-fatigue floor mat to protect your feet, knees and back.

Continue reading »

Dec 142012
 

Earth is just too small and fragile a basket for mankind to keep all its eggs in.
–Robert A. Heinlein

This brief century of ours is arguably the most significant one in the history of our universe. We’ll have the technology either to self-destruct, or [to] seed our cosmos with life. The situation is so unstable that I doubt we can dwell at this fork in the road for more than another hundred years. But if we end up going the life route instead of the death route, then in a distant future our cosmos will be teaming with life, all of which can be traced back to what we do—here and now. I don’t know how we’ll be thought of, but I’m sure that we won’t be remembered as insignificant.
— Max Tegmark, MIT professor

The dinosaurs became extinct because they didn’t have a space program. And if we become extinct because we don’t have a space program, it’ll serve us right!
— Larry Niven

Continue reading »

Jan 272012
 

Maybe you’ve had the experience of retrofitting your computer to operate quietly? Afterwords you say to yourself, “How did I ever think with all the noise that computer was making?” A small change in your environment creates a shift in your thinking and productivity.

I had the same reaction to the Sublime Text editor. After an hour of use I was loving it. A couple hours later it was customized just the way I like it. The next day I realized I was spending more time getting good code written and less time fiddling around.

Screenshot of Sublime text editor

Sublime doesn’t have every feature possible, but it does have some imaginative features such as multiselect/multi-edit. Linux, MacOS and Windows are supported. A vi mode is available. It’s also incredibly clean and fast. You’ll love the way it looks and feels.

There are all sorts of options for customizing the editor. Many plugins are available and it’s easy to write you own. You’ll also find plenty of assistance in the forums. It seems Sublime is going viral within the developer community.

Sep 212011
 

Rather than the more traditional QWERTY key layout, I use DVORAK. I’ve been typing with DVORAK for just over a decade, so I no longer remember my original intentions for switching. However, DVORAK has long been recommended as a replacement for QWERTY – partially for typing speed improvements, but also to reduce ergonomic strain on the typist. Studies conducted by psychologists have suggested perhaps a 5% speed improvement for DVORAK, but the ergonomics have not been thoroughly studied (estimates based on finger travel distance suggest a potential ~40% improvement). I argued for the efficiency of DVORAK by analyzing keyboard layout efficiencies for several different types of documents.

When I purchased a Kinesis contoured ergonomic keyboard in 2000, I discovered there was a learning curve before I could use the new keyboard effectively – Kinesis contoured keyboards arrange the keys in straight columns. It made sense to make the switch to DVORAK at the same time and re-train myself entirely. This lead to several weeks of frustration, but I was determined and thankful that I stuck with it (much like when I completely uninstalled Microsoft Windows from my first computer).

Photograph of Kinesis Contour Keyboard

For the majority of these last 11 years, I’ve had a DVORAK keyboard at home and QWERTY at work. Within the last two years, I’ve been able to use DVORAK for both. I now perform almost everything on a Kinesis contoured keyboard with DVORAK layout.

People often ask how I cope when I happen to sit down at a QWERTY keyboard. The truth is that there is no problem at all. When I sit at a traditional keyboard my fingers automatically know to go QWERTY. Similarly, when I sit at a Kinesis keyboard nothing makes sense but DVORAK. Although I didn’t fully consider the ramifications until recently, I have inadvertently trained my brain to be capable of both keyboard layouts. But each layout is strongly associated with a specific physical keyboard design!

I am not a psychologist, but I was curious to learn how well my skills would transfer. Am I able to use QWERTY on a Kinesis keyboard? How effectively would I work if I sat down at a traditional keyboard that had been remapped to DVORAK? My hypothesis was that I’ve so strongly associated the physical Kinesis keyboard with DVORAK that I would be unable to perform satisfactorily with any other layouts. Similarly, attempting to use DVORAK on a “standard” keyboard would fail. I found the results to be surprising…

Continue reading »

Apr 252011
 

I recently purchased an HP Pavilion dm1z laptop after reading how many people were thrilled with the small laptop. It’s been described as a netbook-killer, and I tend to agree with that sentiment. The dm1z is light, power-efficient, quick and runs Linux well. However, there were a few tweaks I needed to put in place to get 32-bit Ubuntu 10.10 running perfectly.

This post was last updated 2011-09-07

Continue reading »

Jan 142011
 
Screenshot of Tomato wifi router firmware - realtime bandwidth plot

For the last few years, I’ve been using DD-WRT on my home wifi router (a Linksys/Cisco WRT54GL). I found DD-WRT to be perfectly fine, and certainly an improvement over the built-in firmware. It was easy to set up and customize the wireless network for our house. Unfortunately, that was about all the use I got out of it.

Besides the easy set up, there wasn’t much that impressed me about DD-WRT. I found the interface to be a bit clunky – I always had to click through many tabs to find the settings I needed. Additionally, the bandwidth/usage statistics it provided were minimal. I would never check it unless the wifi had stopped working.

Eventually, several people starting using wifi and I needed to set up QOS (quality of service). I wanted to ensure video streaming and large downloads didn’t impede remote login sessions, remote router administration, etc. This is where I became particularly unhappy with DD-WRT.

Continue reading »

Oct 082010
 

This spring AMD released their new line of server and workstation processors, the Opteron 6100-series “Magny Cours” processors. Their previous Opteron products were lagging behind the competition from Intel, so a refresh was seriously needed. The 6100-series is not a complete re-design of the Opteron architecture, but it offers significant performance improvements and warrants serious consideration. Extremely cost-effective 48-core Opteron servers are shipping now.

These processors are designed for high-end workstations and servers, so they will compete against Intel’s Xeon processors. The same line of processors will go up against both the Xeon 5600-series and the Xeon 7500-series, which I analyzed earlier this year. This is a new twist, as both Intel and AMD have historically produced two separate lines of processors. With this release, AMD has designed the same processors to operate in both 2-socket and multi-socket SMP servers.

With a product this complex, it’s very difficult to cover every aspect of the design. I will be focusing primarily on the performance of the new processors, with a particular focus on HPC as that is the market with which I’m most familiar.

Continue reading »