Writing
150 posts
Writing
Essays of varying merit on Postgres, JavaScript, how teams work, and the occasional joke about enterprise software. Read them charitably.
20171 post
20161 post
201412 posts
How to Automatically Back up Photos from Android to Mac for Free
If you’d like to automatically download pics and videos from your Android phone to your Mac, this post is for you. All you need is a free Dropbox account and some elbow grease.
Aug 2014 · tools · art
How to Customize JFree Charts
In this tutorial, I’ll explain how to customize JFree charts to look clean and modern.
Jul 2014 · design
A Second Look at Facebook’s React
React is a very impressive library for developing fast, component-based UIs. That said, it’s not a full framework and will likely require additional libraries in order to build large apps.
May 2014 · front-end
Groking Angular: Dependency Injection and Testing
Although Angular’s syntax for Dependency Injection is sometimes difficult to understand, it’s actually quite straight forward to use for testing.
May 2014 · front-end · testing
How and When to Use Various GORM Querying Options
Grails GORM supports five increasingly powerful querying mechanisms: 1) dynamic finders, 2) where clauses, 3) criteria, 4) HQL, and 5) SQL.
Apr 2014 · postgres
How to Configure IntelliJ IDEA For Angular JS Testing
Here’s a simple guide on how to configure IntelliJ IDEA to use Karma/Jasmine to run Angular tests
Apr 2014 · front-end · tools · testing
A Rating System For Free Apps
Every time I install a new free app, I wonder about exactly how its creators intend to make money. Am I going to see a bunch of ads? Are they going to sell me something? Are they going to sell me to someone?
Mar 2014 · technology · humor
How to Write a Children’s Book
As a parent, I read a lot of children’s books. Each time I pick up one of these literary masterpieces, I can’t help but stare at amazement at the words in front of me. It’s hard to believe that such a delightful work of art was…
Mar 2014 · humor · writing
Online Commenter Types
There are many, many people online who like to comment on things. A few are lucid, most are harmless, but some are… Well, let’s just say “not very nice”.
Mar 2014 · people · humor
Designers vs. Bootstrap
Although some web designers are opposed to using front-end frameworks like Bootstrap, I respectfully disagree.
Mar 2014 · front-end · design
The Microsoft Tax
Microsoft’s recent embrace of open-source software does not eliminate the cost you pay if you decide to embrace its stack.
Feb 2014 · process · technology
Startup Defaults
Setting up infrastructure for a new startup is easier than ever with a set of products like Google Apps and AWS.
Feb 2014 · process · technology
201314 posts
How to Build a Cheap Treadmill Desk
Treadmill desks are becoming quite popular among the sitterati. A few months ago, spurred by a combination of back problems and the chorus of “sitting will kill you” articles, I decided to build one.
Oct 2013 · gadgets · tools
Management Anti-Patterns on Product Teams
There are many ways to structure management of product teams. Some of those management roles are vital, while others can be really problematic.
Jul 2013 · process · people
Are Single Page Apps Bad?
Though Single Page Apps (SPAs) are quickly becoming the conventional wisdom when it comes to building rich web applications, a recent alternative has emerged: Resource Oriented Client Architecture (ROCA).
Jul 2013 · process · front-end
Introducing Platen: Markdown WordPress Editor
Today I want to tell you about a piece of software I’ve been building for the last few weeks. It’s called Platen and it’s a Markdown WordPress Editor distributed as a Chrome packaged app.
Jun 2013 · writing · front-end
Podio: Custom Business Processes Done Right
Every now and then I run across what I call forehead-slapping software. You know, the kind of software that makes you slap your forehead and exclaim “This is so simple, yet so awesome. Why didn’t I think of it first?!”. In this post…
Mar 2013 · process · tools
Using OAuth to Protect Internal REST API
You should use OAuth 2.0 client credentials flow to secure REST APIs used in your web application.
Mar 2013 · postgres · process
Tests Prevent Code Rot
Tests help safely refactor your code base in order to prevent inevitable code rot.
Mar 2013 · process · testing
My Startup Story
The Lean Startup movement has inspired many budding entrepreneurs to build great companies which solve real problems. It has been responsible for many stories of entrepreneurial passion, dedication, and ultimate success. This is one…
Mar 2013 · humor · technology
Continuous Delivery For the Enterprise
What if you work in a place that doesn’t need to do A/B testing of the latest feature set and isn’t driven by competition to deliver a new capability every other week? What if you work for the dreaded “Enterprise”? Should you still do…
Feb 2013 · process · humor · people
RESTful Web Applications Are Good For You
There’s been some discussion in web development circles recently about whether RESTful (a.k.a Client MVC, a.k.a. Single page) web applications are a good idea. Or, more accurately, whether they’re a better idea than just serving up…
Feb 2013 · process · postgres · front-end
How Capable Is Your Technology Team?
Do you know how capable your technology team is? How do you assess its capabilities? What do you look for?
Feb 2013 · process · people
The One Million Dollar Team
I was curious about how much an optimally sized, fully self-sufficient, highly talented software development team would cost. So, I decided to collect some data and find out. It turns out that such a team in Los Angeles costs a bit…
Feb 2013 · process · people
Minimum Viable Development Team
Imagine that you’re tasked with recruiting a development team to build a new product. What would that team look like? How big would it be? Who would be on it?
Jan 2013 · process · people
You Can’t Teach Height
There is an old saying in basketball that you can’t teach height. For most basketball positions, having a few inches on your competition helps, sometimes a lot. Being a natural athlete helps too. So, basketball GMs try to draft the…
Jan 2013 · process · people
201244 posts
My 2012 in Blogging
With 2012 coming to a close, I wanted to take a moment to review another year in blogging.
Dec 2012 · writing · humor
Unused Geek Humor Headlines
One of my favorite things to do is write satirical articles on various technology topics. Quite often, the first thing I come up with is a funny headline. Then, through the magic of non-procrastination, some of those headlines get…
Dec 2012 · humor
Logitech Keyboard for iPad
Ever since I got my 1st gen iPad two years ago, I’ve been trying to figure out ways to use it for writing. More specifically, I’ve been looking for a good keyboard.
Dec 2012 · gadgets
How to Create a Bar Chart Archive Widget In WordPress
Each time I redesign my blog, I try to implement some cool, visually interesting feature. This time around, I decided to build a widget to display post archives, styled to look like a vertical bar chart.
Dec 2012 · front-end · tutorials · writing
How To Use HTML5 Data-* Attributes with JQuery and Selenium
I recently wrote a post about when it’s appropriate to use CSS classes. In it, I made the case that HTML5 Data-* attributes can be used instead of CSS classes to identify elements on a page. In this post, I’ll describe exactly how to…
Nov 2012 · front-end · tutorials · testing
Compass or Twitter Bootstrap? Why Not Both
Compass and Twitter Bootstrap are two excellent web development frameworks built on top of CSS pre-processors (Sass and LESS respectively). Both can be very useful even though the approaches they take are rather different.
Nov 2012 · front-end
Multiple Uses of CSS Classes
CSS classes can serve multiple purposes when building web pages, which sometimes leads to ambiguity. In fact, this ambiguity is often the cause of arguments over when it’s appropriate to use CSS classes.
Nov 2012 · front-end · process
Low Information Developer
One of my favorite euphemisms of this political season is Low Information Voter. It describes a person who lacks a basic understanding of the issues, yet stills feels compelled to vote. I like the term so much that I felt compelled to…
Nov 2012 · process
How to Use JSON Objects With Twitter Bootstrap Typeahead
Twitter’s Bootstrap is all the rage these days, and for good reason. It’s chock full of aesthetically pleasing, easily customizable styles and useful widgets. Among the latter you’ll typeahead, a widget for auto-suggesting possible…
Nov 2012 · front-end · tutorials · technology
How to Generate an XSLT Transform Using Groovy StreamingMarkupBuilder
Groovy and XSLT are two great options for working with XML. While both have their uses, I was curious about combining them to generate an XSLT transform with a Groovy script. It turns out that doing this is pretty straight forward,…
Oct 2012 · tools · tutorials · postgres
A Sermon from the Church of RESTafarianism
Brothers and Sisters, I’ve come here today to preach the word of the mighty RESTa as revealed to us by the Great Profit Fielding, blessed be his dissertation.
Sep 2012 · humor · postgres
Impact of Continuous Delivery Beyond Engineering
As the practice of Continuous Delivery enters the mainstream of software development, it’s important to understand its impact on every aspect of building and releasing software products from software engineering to quality assurance,…
Sep 2012 · process · people · testing
How Not to Motivate People: Ukrainian Edition
I recently ran across a fascinating letter sent by the CEO of a small Ukranian consulting company to his employees.
Aug 2012 · people
XML Transformation Performance: Groovy vs XSLT
There’s a good variety of options available for transforming xml. In addition to the standards (XSLT and XQuery), Groovy has excellent XML manipulation support with MarkupBuilders and XMLSlurpers. I wanted to know how XSLT and Groovy…
Aug 2012 · tools · postgres
Jenkins Build Monitor
We use and really like Jenkins for our Continuous Integration. It’s been around forever and has lots of capabilities as a result. Yet in spite of its maturity, Jenkins lacks a really great build monitor. So we decided to make one.
Aug 2012 · process · design
Strong Passwords With LastPass
Major password leaks are unfortunately becoming all too common. Each time a new batch of passwords becomes public knowledge, security experts pipe up with recommendations which basically boil down to two things: 1) don’t share…
Jul 2012 · tools · process
Is a Social Intranet Useful for Technology Teams?
Our technology team been forever searching for a good way to capture knowledge (things like discussions, ideas, tips & tricks, technical documentation, etc). Seems simple, yet a good system to capture all this knowledge proved to be…
Jul 2012 · people · humor
Why is it So Hard to Give Negative Feedback?
People often say that a good indicator of a healthy team is the willingness of its members to give feedback (and vice versa). Let’s parse this out.
Jul 2012 · people
IntelliJ IDEA Dark Theme
For whatever reason, dark IDE themes are all the rage these days. Somewhat surprisingly, there aren’t a lot of great options available for IntelliJ IDEA. So, I decided to make one.
Jul 2012 · process · tools · front-end
Goodbye Original iPad
Yesterday, Apple announced a new version of its iOS operating system. It’s got a plethora of features and some are actually pretty interesting. In fact, as an iPhone user, I’m kinda looking forward to it. However, as an iPad user, I’m…
Jun 2012 · gadgets
Facebook Launches Google Ad Campaign to Raise Stock Price
BREAKING NEWS: In an effort to increase public awareness of its recent IPO, Facebook has just announced a massive advertising campaign using Google’s AdWords platform
May 2012 · technology · humor · finance
Prove Me Right
Do you frequently find yourself arguing with people who are more informed and/or smarter than you? Prove Me Right’s unique service can help!
May 2012 · humor
Getting DRY With Sass
Sass is a language / framework which compiles down to CSS. The thing I like most about Sass is how it helps you apply the DRY principle to your style sheets. If you use it well, you can drastically cut down “copy-and-paste” code and…
May 2012 · front-end · process
Code Review Gone Bad
“Hi Mike, I just wanted to once again apologize for yesterday’s code review. I said and did some things I’m not very proud of…”
Apr 2012 · process · humor
XML Databases
JSON-oriented document stores like Mongo and Couch have really become the darlings of the web application crowd. Of course, JSON (or BSON) isn’t the only game in town. When it comes to document store formats, the other white meat if…
Apr 2012 · postgres
How to Use WordPress Custom Post Types to Add Events to Your Site
One of the more interesting (and useful) features in WordPress is custom post types. As the name suggests, WordPress allows you to define your own post types which are treated just like existing ones (i.e. Posts and Pages).
Apr 2012 · process · tutorials · writing
How to Get IE8 to Support HTML5 Tags and Web Fonts
Though support for modern standards is limited in IE8, it’s not impossible. Here’s how to add support for HTML5 elements and web fonts.
Apr 2012 · process · tutorials · front-end
How to Debug in IE on a Mac
Here’s how to configure a Mac to debug web sites in IE
Apr 2012 · process · tutorials · front-end · tools
Leaving Solution Land
Most devs are naturally inclined to start finding solutions as soon as we hear a problem stated. Yet no matter how satisfying it may be to immediately board the bus to Solution Land, it is always worth it to take a moment and ask…
Mar 2012 · people · process
Building vs. Learning on Agile Teams
Though agile methodologies are optimized for delivery, sometimes a different approach is required. Hypothesis testing from the Lean Startup movement gives us such an approach.
Mar 2012 · process · technology
You Can Have My Link Juice
I’ve been looking into SEO recently and ran into a interesting nugget of functionality called rel=”nofollow”. Though I’ve heard about it before, I never fully appreciated its implications until now.
Mar 2012 · writing
Things I Wish I Knew as a Comp Sci Student
I would guess that most CS students don’t know what they need to pay attention to. After all, there are millions of ideas competing for their attention and they all seem equally important. But they’re not.
Mar 2012 · people · process
Dysfunctional Programming 101
Functional programming has been all the rage lately, yet surprisingly few have heard about an intriguing alternative known as Dysfunctional (or FUctional) programming.
Mar 2012 · humor
Newly Discovered Nostradamus Works Predict Technology Breakthroughs
BREAKING NEWS – A previously unknown book of quatrains by Nostradamus appears to predict key breakthroughs in the field of information technology.
Feb 2012 · humor
Lipstick on a Pig is Not UX
Microsoft’s new Visual Studio attempts to “engender the impression that VS feels lighter and less complex”. In other words, instead of radically rethinking what a great development experience would be like, they focused on obfuscating…
Feb 2012 · tools · technology · design
“DevOps is Ruining My Craft”
Below is an excerpt from an interview with a disenfranchised systems administrator. All identifies have been kept anonymous to protect the innocent.
Feb 2012 · process · humor
An Interview With Yours Truly
For some reason, the good people at the Code Project asked me to do an interview. I did and you can read the results here.
Feb 2012 · people
Good Devs Don’t Like Magic
Solutions of the “magical” variety go out of their way to hide (obfuscate?) the underlying implementation. They present the developer with a Faustian bargain: I’ll make it easy for you to get things done so long as you don’t question…
Feb 2012 · postgres · process · humor
Why I Redesigned My Blog
I redesigned my blog recently to improve readability, create a nicer home page, organize content better, make it easier to gain Twitter followers, and make the whole thing look nicer.
Feb 2012 · writing · design
My Most Spammed Posts
Since I had so much fun writing about comment spam before, I just had to do it again. This time, I thought it would be interesting to see which posts were the most popular with spammers. The results might surprise you.
Feb 2012 · writing · humor
Creating a WordPress Theme
I’ve known for some time that WordPress is an excellent blogging platform. It’s both easy to get started with and infinitely tweak-able. As it turns out, WordPress is also a great platform to develop themes for.
Jan 2012 · process · writing
Goodbye to Paid TV – One year later
About a year ago we finally decided to cancel our expensive satellite service and switch entirely to online streaming. So, what have I learned from this experience? Let’s go to the video stream.
Jan 2012 · gadgets
Congress to Vote on Another Technical Debt Ceiling Extension
WASHINGTON D.C. – Yet another fight over our nation’s technical debt in underway in Washington. Obama administration will soon request an increase of 1.2 trillion to a limit which currently stands at 15.194 trillion man hours.
Jan 2012 · humor · process
New Virus Reinstalls IE6 on Infected Machines
A new computer virus called KaBlueE is spreading havoc around the internet by re-installing IE6 on infected machines. The timing of this pandemic is especially devastating in light of the fact that IE6 usage has finally dropped below…
Jan 2012 · humor · front-end
201178 posts
On Parenting
When I was younger, I used to like to tell people that kids ruin lives. I did it in part to get a rise out of them (because righteous yet unfounded indignation is often amusing). But I also meant it literally: once you have kids, your…
Dec 2011 · writing
GoDaddy Also Withdraws Support For Syria, Red Light Cameras, and Justin Bieber
GoDaddy, a leading domain registrar and internet piranha announced that it is withdrawing support for Syria, red light cameras, and Justin Bieber.
Dec 2011 · humor · technology
Things I Learned About Blogging
When first I started blogging about a year ago, my primary concern was to “not get lazy and stop writing”. Yet, somewhat surprisingly (and in spite of my strong natural tendency to “kick back”), I continued writing all through the year.
Dec 2011 · writing · humor · technology
Dell Announces New Line of Touchless Tablets
BREAKING NEWS: Dell is going to re-enter the tablet market with a new line of touchless tablets. From the announcement: “Our new Prespiron line of touchless tablets represents a level of innovation previously unseen in tablet computing.
Dec 2011 · gadgets · humor
Guilt Driven Development
Do you want to use Test Driven Development in your daily work but lack the necessary motivation? Do you have the nagging feeling that TDD could use more nagging to make you get things done? If this describes you, then you should…
Nov 2011 · humor · testing
Apple to Revolutionize Driving with Siri Powered iCar
Hot on the heels of the iPhone 4S and a rumored TV, Apple is apparently building a car powered by its revolutionary Siri technology
Nov 2011 · technology · humor · tools
NoSQL No More: Let’s double down with MoreSQL
For far too long now I have sat idly by as the NoSQL movement spread across our industry. The time has come to stand up to the scourge of NoSQL. Today, I am calling on developers everywhere to join a new movement dedicated to bringing…
Nov 2011 · humor · postgres
Google Introduces A New Language to Replace English
BREAKING NEWS: Google just announced a brand new language called Zoom aimed to replace English. Here’s a quote from the official announcement: “With Go, we were able to create a better C++. With Dart, we re-imagined JavaScript. With…
Nov 2011 · front-end · humor · technology
A Social Developer
I met a student recently who was looking for a software engineering internship. As I often do in these situations, I asked him to describe a cool project he worked on. He trembled slightly, adjusted his thick-rimmed glasses, and began…
Nov 2011 · process · people
Introducing JS.js
Do you ever wish that you could write awesome client side code while using a familiar syntax? Do you want to leverage powerful concepts like closures and prototypical inheritance? How about using 3rd party libraries without conflicts?…
Oct 2011 · humor · front-end
My Favorite WordPress Plugins
One of the things that makes Wordpress a great blogging platform is the plethora of available plugins. Here’s a small selection of my favorites.
Oct 2011 · front-end · writing
Corrections
In the spirit of responsible blogging, I would like to correct a few mistakes I made in some recent posts.
Oct 2011 · technology · humor
Developer Tribes
I recently finished an interesting book called Tribal Leadership. The book is full of insights about how people behave in groups and what it takes to lead them.
Oct 2011 · process · people
Tracking Your RSS Feeds
As a blogger, I’m always curious about my (precious few) readers. I want to know who they are, what they find interesting, why, when, and how.
Oct 2011 · writing
Large Company Startups
I recently attended a great talk by Steve Blank on Customer Development. It was full of fascinating insights that left me both alarmed and energized (more on that in a bit). Who is Steve Blank? Steve Blank has been in the Silicon…
Oct 2011 · technology
The Impact of Steve Jobs
Steve Jobs’ passing away this week unleashed an avalanche of opinions on every conceivable topic even remotely related to him. Will there be another one like him? What will happen to Apple? Who will lead future technology revolutions?
Oct 2011 · technology · gadgets
Battle for the Living Room: Apple vs. Microsoft
Ever since saying goodbye to paid tv, we’ve been relying on something other than the cable box to see stuff on the big screen. Two appliances emerged as replacements: Apple TV and Microsoft Xbox 360.
Oct 2011 · gadgets
Amazon Silk
Amazon just announced a whole boatload of new Kindles and the lineup is quite impressive. There’s the really small Kindle, Kindle Touch, Kindle Fire (Android tablet), Kindle Ring (a phone), Kindle Tube (a tv), and of course Kindle…
Sep 2011 · technology
Should I Hate My Job? New Poll Says Yes
In a recent poll about most hated jobs, Director of Information Technology topped the list. That’s right, IT Directors hate their jobs more than anyone else. More than garbage collectors, executioners, telemarketers, investment…
Sep 2011 · humor · technology
Yet Another Painting
I recently completed another painting and thought it would be fun to share how it evolved.
Sep 2011 · art
Database Source Control Revisited
A while back I blogged about strategies for putting your database artifacts under source control. At the time, I thought that a schema synchronization approach (implemented by Visual Studio Database project) was the way to go. Among…
Sep 2011 · postgres · process
My Old Sketches: Surrealism
Here are some more sketches from my old sketchbook. This set is primarily surrealistic (or, as some might say, creepy). For some odd reason, there seems to be a surprisingly large number of meat related sketches. Enjoy!
Sep 2011 · art
Eliminating the Mortgage Deduction
There’s been a lot of talk lately about eliminating the mortgage deduction. Reactions to this idea range from “this will end us all” to “eh” and people tend to use all kinds of underhanded tactics (i.e. statistics) to prove their point.
Sep 2011 · finance
Distraction Free Writing
Writing on a computer is an inherently distracting experience. Words you type have to constantly compete for your eye share against all kinds of menus, toolbars, windows, popups, tray icons, and so on. With so much going on, it’s often…
Sep 2011 · writing
Agile Painting
I really like to paint. I started back in college, on a whim. One fine day, I bought some oil paints, brushes, and a canvas, and started painting.
Aug 2011 · process · art
Production Bugs: Whose responsibility are they?
Bug fixing is rarely fun. This is especially true for bugs you didn’t create.
Aug 2011 · process
Fun With Financial Crashes
What a crazy week it was on the stock exchanges. Huge swings up and down, see-sawing back and forth, massive losses followed by massive gains, unbridled despair followed by unbridled joy, and so on and so forth.
Aug 2011 · finance · humor
CoffeeScript
JavaScript is a great language with a few bad parts. For all its expressiveness and power, JavaScript can at times be awkward, visually noisy, and downright painful. And although none of these problems are fatal, it sure would be nice…
Aug 2011 · front-end
Your Standards are Poor: S&P, please stop trying
On Friday, the ratings agency Standards and Poor’s downgraded US debt to AA+. So far, it is the only ratings agency to do so. Right afterwords, it came to light that S&P made a mathematical mistake in calculating future deficits. S&P…
Aug 2011 · humor
PowerPointer: How to make bubbles
People love to bash PowerPoint. Everything from misrepresenting cancer statistics to space shuttle disasters is blamed on PowerPoint. The phrase “PowerPoint is evil” gets 10 million results on Google. Yep, people hate PowerPoint.
Aug 2011 · tutorials · design
Flavors of Comment Spam
Before I started blogging, I was only peripherally aware of an internet phenomenon known as comment spam.
Jul 2011 · writing · humor
Agile Testing: Test case management
In a previous post on Agile testing, I looked at how Microsoft Test Manager and Twist from ThoughtWorks Studios allow QA and Devs to collaborate on creation of functional tests. In this post, I will examine how well each tool allows…
Jul 2011 · technology · people · testing
Upgrading My Mac Mini
I have a Mac Mini circa 2009 and it’s a great little computer.
Jul 2011 · tools
My Old Sketches: Female faces
I recently discovered an old sketchbook with a bunch of sketches I did in 1999 and 2000. Here is a set of beautiful female faces I drew while trying to learn how to do portraits. Enjoy!
Jul 2011 · art
Lytro: A revolution in picture taking?
The phrase “magical technology” gets thrown around quite a bit these days. Yet every now and then some amazing product comes along and actually justifies the lofty tag. For me, iPad was the last such product. And it could very well be…
Jun 2011 · art
Benefits of Pair Programming
Pair programming is a somewhat controversial, highly counter-intuitive agile practice. In a nutshell, it’s two people working on the same thing, using just one computer, at the same time. It seems crazy that it would work at all, much…
Jun 2011 · humor · process
Doodling
I like to doodle. I do it frequently, mostly in meetings. Just to clear the air, my doodling during meetings does not mean that I’m not paying attention. In fact, it’s the opposite. (I’m apparently not alone in this: there was a study…
Jun 2011 · art · gadgets · tools
Agile Testing: Dev QA collaboration
One of the key tenets of agile development is that testing is a shared responsibility. Everyone on the team is expected to figure out what to test and to test the product. In essence, the entire team co-owns all tests. Yet some types…
Jun 2011 · testing · technology · people
Are Agile Dev Practices Needed?
There’s been a lot of talk lately about how agile dev practices are hurting more than they’re helping. People complain that things like unit testing, TDD, CI, pairing, and code reviews limit developer creativity and create unnecessary…
May 2011 · process
My Favorite TED Talks
It’s really difficult to choose a small number of favorite talks from TED’s vast collections, but for whatever reason I decided to try. For those who don’t know, TED is a conference (conferences actually) which gives people a platform…
May 2011 · technology
Safari To Go 2 for iPad: Finally usable
Safari Books Online just released a new version of their iPad app, Safari To Go and I, for one, was very interested to try it. There are two reasons for my interest in Safari To Go. First, I’m a big fan of Safari’s subscription-based…
May 2011 · gadgets
Groking JavaScript: Encapsulation
JavaScript is lingua franca of the internet. It’s everywhere, it’s important, and it’s not going away. Yet a lot of devs who use JavaScript don’t understand it well at all. It’s certainly not for a lack of resources. In fact, there are…
May 2011 · front-end
Painless Production Deployments
The goal of every software team is to get the finished product to the end customer. Yet doing this is surprisingly hard for many teams. In a perfect world, the act of deploying software to production is painless and trustworthy. To…
May 2011 · process
My Favorite iPad Apps: Productivity edition
Among the gajillions of apps for the iPad, there are some real gems. Here’s a rundown of my favorite productivity apps. Enjoy! Noteshelf (iTunes link) I’ve tried quite a few note taking apps for the iPad, and Noteshelf really stands…
Apr 2011 · tools
MIX 11 Highlights: JavaScript edition
Microsoft held its annual web development focused conference MIX in Las Vegas last week. Although Windows Phone development was the hot topic, there were also a number of great talks on web development topics (especially JavaScript).…
Apr 2011 · front-end · testing
Managing Test Data
To create functional tests for your web applications, you need data in your database. The crucial thing about this test data is that it should be stable. Otherwise, your tests are not deterministic and that makes them useless. For…
Apr 2011 · postgres · process
Database Source Control and Deployment
All good devs know that your source code should be in source control. There are many reasons for this, but one of the most important ones is the ability to rebuild and deploy your entire application whenever you want. Database…
Apr 2011 · postgres · process
The Magic of Caching
Very few things in technology impress me more than web applications which are able to massively scale. The ability to serve up gagillions of requests to bajillions of users in milliseconds is nothing short of amazing. And, for whatever…
Apr 2011 · postgres · technology · front-end
Don’t Write Tests For Code You Don’t Control
Recently, I ran across a test someone wrote to verify functionality offered by a 3rd party framework. This didn’t seem right and here’s why. When you write a test, you’re basically saying the following: “Friends, Romans, countrymen,…
Apr 2011 · testing
Standardized Tests for Developers
Good devs are hard to find. There just aren’t that many of them out there and you have to go through a lot of people to find them. Because this can be a very time consuming process, I’m always looking for ways to become more efficient…
Mar 2011 · people
Hostile Code Bases
I don’t like calling code bases legacy. The word “legacy” makes people think of Ivy League schools, vintage leather couches, and Dad’s old bottle of Scotch. It rarely elicits the kind of feeling of pain and despair one normally gets…
Mar 2011 · humor · process
The Value of Documentation
Devs often talk about the importance of documentation. More specifically, they usually complain about systems which have none (“How are we supposed to know what’s going on here?!“), some (“Well, I guess something is better than…
Mar 2011 · process
Don’t Miss Out on Classic Coke
The hardest part of conducting a job interview is quickly figuring out whether there is someone great sitting in front of you. Doing that is especially difficult if the person does not make a good first impression. For that reason, I’m…
Mar 2011 · people
So You Think You Can Lead?
Most developers who don’t want to go into management think that their career path must lead them to become an “architect”. When pressed on what it means to be an architect, they usually describe the role of a technical leader: someone…
Mar 2011 · people
The Incubation Effect
A colleague recently mentioned to me an interesting psychological phenomenon called the Incubation Effect, which is an observation that people do better at problem solving if they put the problem aside for a while before coming back to…
Mar 2011 · people
The Waste Jar And The Mystery Box
Agile teams love little mnemonics and practices to help enforce the Ways of Agile. We like to put up physical Cards on the Wall to signify a piece of work. We like to ask the Three Questions (“What have I accomplished yesterday?, What…
Mar 2011 · process
Risk and Waste on Agile Projects
When you first start “doing Agile”, the focus is on getting the mechanics right: keep your standup updates short don’t over design remember to add tests for everything remember to check CI status only show working code during showcases…
Feb 2011 · process · design
Charting Libraries For Web Applications
Everyone loves charts. Well, maybe not everyone, but a lot of people. Well, maybe not a lot of people, but some. Ok, I love charts. Anyway, even if you don’t love charts, you may eventually have to work with them. And unless you’re…
Feb 2011 · design · front-end
Will Watson Take Your Job?
IBM’s Watson project has recently beat two top human players in Jeopardy. Although this is not the first time that an IBM computer beat a top human player in a game, what Watson did actually scares me a little (more on that in a bit).…
Feb 2011 · technology
Trunk Development: Can’t we all just get along?
Trunk development is an approach that leverages a single branch of code for all active projects. It helps eliminate painful merges, but requires a heightened level of awareness by the project teams.
Feb 2011 · process · technology
Web UI Testing Frameworks: There could be only one
To create good web applications, you need to test them. To test effectively, you need a good Web UI testing framework (which I will abbreviate as WUITF for the rest of this post. Catchy, no?). So, What Makes a Good WUITF? At its most…
Feb 2011 · testing
Geek Comic: Daily Standups
You may also like: Geek Comic: Steps to ReproduceGeek comic: Pair ProgrammingHow to Write a Children’s BookShould I Hate My Job? New Poll Says YesYet Another Painting
Feb 2011 · art · humor
Web Applications: the future of all development?
Here is a crazy prediction: In 5 years, most applications will be built using what I like to call the JHC triumvirate (JavaScript, HTML, CSS). I’ll give you a second to gather yourself. You ok? Good. Now, let’s talk about why this may…
Feb 2011 · front-end · tools
Keeping Up With Technology
I do lots of job interviews and one of my favorite questions to ask is “How do you keep up with technology?“. The answers I usually get fall into three buckets: “I read lots of blogs and news” Given the pace of change in our industry,…
Jan 2011 · people
Geek Comic: Steps to Reproduce
You may also like: Geek Comic: Daily StandupsGeek comic: Pair ProgrammingHow to Write a Children’s BookShould I Hate My Job? New Poll Says YesYet Another Painting
Jan 2011 · art · humor
Goodbye to Paid TV
For whatever reason, cancelling paid TV became all the rage in 2010. Like others, we’ve been thinking about getting rid of DirecTV for some time now, but there was always something holding us back. Each time we got close to pulling the…
Jan 2011 · gadgets
Devs Say the Darndest Things
Software guys have great sayings. This may be surprising to some since we don’t usually associate mastery of the spoken word with geekdom. Nonetheless, there are some gems out there and I’ve compiled a short list of my favorites.…
Jan 2011 · design · process · humor · technology
Geek comic: Pair Programming
I decided create a series of comic strips about software development. All artwork is done on an iPad using Autodesk’s awesome Sketchbook Pro app and a Boxwave Stylus. Enjoy! You may also like: DoodlingGeek Comic: Daily StandupsGeek…
Jan 2011 · art · humor · gadgets · process
The Joy of RSS
Whenever I talk to my geek friends about how they keep up with their favorite sources of information, the obvious answer is RSS. Yet most non-geeks I know don’t seem to be aware of it, much less use it. So, in an effort to correct this…
Jan 2011 · tools · writing
Living in Cloud City
I make it a point to back up as much data as I can into the Cloud. I didn’t always do this, but there were two compelling events that forced me to change. My path to the Cloud The first compelling event was actually two events.…
Jan 2011 · process · tools · gadgets · finance · writing
The Software Team
Software development is a team sport (Yes, I realize that lone wolf coders can accomplish amazing things, but that just doesn’t scale well). To succeed in a team sport, you need a good team. To understand how to build a good team, you…
Jan 2011 · writing · process · people
My album
A few years ago I decided to write an album. I’ve never written music before and by most accounts lacked all discernible talent for it. I’ve also never studied music before, so things like scale, tempo, and proper song structure were…
Jan 2011 · technology
People I Don’t Want to Work With
There are many qualities that make a good engineer. This post is not about those. Instead, it’s about qualities that make me cringe and run away.
Jan 2011 · process · humor
Safari To Go: how not to build an iPad app
I really like Safari Books Online. As one colleague put it, it’s “the gift of unlimited knowledge“. For those who aren’t familiar, Safari is an online subscription-based book service. You pay a monthly fee to get access to a boat load…
Jan 2011 · design · process · humor · gadgets
Reading for Devs
I’ve put together a short list of books any software developer would greatly benefit from. Enjoy! Clean Code: A Handbook of Agile Software Craftsmanship, Robert Martin Maintainability is arguably the most important aspect of good…
Jan 2011 · process · writing · testing
The Craft of Software Development
Software development is a craft and those who practice it are craftsmen. As with any craft, this one demands a set of skills from its practitioners: Be Good With Your Hands To code, you must type. To code well, you must type fast.…
Jan 2011 · process
USC Code Camp CTO Panel
I was on the CTO Panel at the 2010 SoCal Code Camp at USC. The event was recorded and a few clips with yours truly made it to YouTube. Enjoy!
Jan 2011 · people
Two Rights of Software Development
There are two challenges in building software: building the right thing and building the thing right (yes, I love alliteration). Build the Right Thing Building software that users want is hard because most people don’t know what they…
Jan 2011 · process