From the Dictionary of Obscure Sorrows:


n. the realization that each random passerby is living a life as vivid and complex as your own—populated with their own ambitions, friends, routines, worries and inherited craziness—an epic story that continues invisibly around you like an anthill sprawling deep underground, with elaborate passageways to thousands of other lives that you’ll never know existed, in which you might appear only once, as an extra sipping coffee in the background, as a blur of traffic passing on the highway, as a lighted window at dusk.

Note to self: Those extras in the background of my movie are the stars of their own. I should look deeper.

Before you clock in this morning and get yourself lost in the game again, take a pause and watch this video. You’ve probably seen it already, but it won’t hurt to watch again. Within it, I found the most profoundly arresting statement I’ve ever heard.

The only appropriate response is gratefulness.

It helps me to remember that whenever I’m feeling afraid or angry – defeated, hopeless, ignorant, arrogant, impatient, ashamed, depressed, desperate, bitter, bored, dominated, judged, controlled, lost, resentful…self-absorbed…or any other such glove with which I slap the face of God.

Start SimpleHTTPServer from any folder on a Mac

Here’s a simple command that will startup an HTTP server from any given folder on a Mac. Open Terminal, cd to change to the directory you wish to serve files from, and then execute the following command.

python -m SimpleHTTPServer 8000

This can be very handy for web development on a Mac; especially when using the Google Chrome web browser, which doesn’t allow you to run JavaScript from your filesystem. Even if you bypass Chrome’s restriction by starting it with the –allow-file-access-from-files parameter, there can be cases where a web server is still desired. For example, when using Cross-Origin Resource Sharing (CORS) for cross-domain Ajax, the browser needs to report its origin with an HTTP request. When served by the web server, Origin will report ‘http://localhost:8000′ rather than ‘null’ or ‘file://’ as shown below.

How to install Google Chrome on CentOS 6 or 7

You can install Google Chrome on CentOS 6.X using a handy script developed by Richard Lloyd. My installation was successful on CentOS 6.5 with just the following three commands:

$ wget
$ chmod u+x
$ ./

Richard’s script downloaded and installed the latest Google Chrome browser by picking libraries from a recently released distro and putting them in the /opt/google/chrome/lib directory. I was then able to run the Google Chrome browser via the ‘google-chrome’ command as a non-root user. Piece of cake; thanks, Richard.

Eclipse tip – format source code on save

Pressing CTRL + SHIFT + F in the Eclipse editor will automatically format source code according to the default or specific formatter preference settings. However, if team members do not format consistently before committing code, relevant changes can become difficult to identify amongst code style changes. One way to alleviate this problem is to force Eclipse (or any Eclipse-based IDE) to format source code automatically on Save. Here’s how…

Explore and master Chrome DevTools with this free course

Code School

School never ends for software developers. Ever! If you’re perfectly happy being mediocre, you can just sort of learn organically while you work. But if you want to be a bad-ass, then you’ve gotta be proactive in your studies. Luckily, there’s no shortage of really great tutorials and courseware out there. For Web Developers, I recommend this one, sponsored by Google, called Explore and Master Chrome DevTools. The course features 17 videos, which you can download for offline viewing. It also features over 75 interactive challenges, which are are assisted by the Discover DevTools Companion extension for Chrome.


Here’s what you’ll learn:

  • Chapter 1: Getting Started & Basic DOM and Styles
  • Chapter 2: Advanced DOM and Styles
  • Chapter 3: Working With the Console
  • Chapter 4: Debugging JavaScript
  • Chapter 5: Improving Network Performance
  • Chapter 6: Improving Performance
  • Chapter 7: Memory Profiling

For those of you who’ve been using Chrome DevTools for a long time and think you know all this stuff, I challenge you to go deeper. There are plenty of surprising little moments within the course that’ll make you go, “Oh, now that’s cool!”

Step by step guide to create a custom theme in WebSphere Portal 8.5

IBM Digital Experience wiki
August 22, 2014

From time to time, I get a ping on Skype at some crazy hour. It’s Michele Buccarello and he’s twelve hours deep into another study on some aspect of IBM Digital Experience software. As far as I know, he’s been going at it for days. He’s what I call a cave dweller – he’s pure nerd (and I mean that as a compliment). But it’s not just Michele’s ability to plow through the night with incessant focus that’s impressive. When he emerges from his cave, he bears gifts of knowledge for our community. In his latest adventure, Michele’s gone deep into theme development on WebSphere Portal 8.5 and delivered this very detailed and highly illustrated guide. Just scanning through the screen-shots, I see a lot of intriguing stuff I haven’t seen before and I can’t wait to dive in myself.

Along the same topic, you might also be interested in Michele’s recent study on the WebSphere Portal Theme Menu Framework.

Note: Look for the PDFs under the expandable Attachments section on the wiki pages I’ve referenced; they’re buried rather inconspicuously.

In this very short video, I demonstrate how to abbreviate Java package names in Eclipse or any Eclipse-based IDE such as Rational or the Spring Tool Suite. This removes unnecessary visual noise and helps you focus on what’s important in your package hierarchy. Shout out to Miguel Aragón of Base22 for this little gem!

Recently I wrote an article for, Introduction to: Linked Data Platform. If you haven’t read the article, I hope you will, but I hope you’ll also begin or follow with this excellent webinar, Getting Started with the Linked Data Platform. It’s about an hour long and features Arnaud Le Hors, the Linked Data Standards Lead at IBM and chair of the W3C’s Linked Data Platform Working Group. Having worked on open standards for over 15 years, Arnaud has made an honorable contribution to the evolution of the Web. If you’re interested in Linked Data and the emerging Semantic Web, you’ll get a lot of value from his presentation.