Why I’m learning Emacs

In my high school years, I was one of those kids who spent every spare moment geeking out at the school computer lab. The teacher in charge there had a background in software development and was a bit of a nerd himself (thankfully).

Once in a while, a new copy of Microsoft Internet Developer (MIND) magazine would appear in the lab (he’d purchased it). I would eagerly flip through it and attempt to digest its contents.

If you’ve ever have had the privilege of reading one of these magazines, you’ll recall that every feature article had a little callout box at the start that said something to the effect of:

To get the most out of this article, you’ll need to understand Microsoft IIS, MSMQ and ASP

These articles were very technical, and my teenage grey-matter struggled to grasp the concepts presented. Which is why the callout box proved invaluable to me because at very least I knew what those labels were, which meant my journey didn’t need to come to an abrupt end; rather, there were detours that I could take en route to enlightenment.

So I would put down the magazine, seek out some 4-inch thick QUE tome, and wander merrily down wherever the path led for as long as my teenage attention span could last.

Needless to say, I usually didn’t last long enough for the chapter numbers to turn double digits, much less get back to the magazine article that I so wanted to decipher. A month would go by, a new magazine would appear, along with new set of keys for me to acquire in order to unlock the wisdom of the “grown-up professionals”.

How little things have changed.

Just this week, I stumbled upon Steve Yegge’s Tour de Babel. Lo’ and behold, a new carrot was presented to me:

All of the greatest engineers in the world use Emacs. The world-changer types. […] the greatest software developers of our profession, the ones who changed the face of the industry.

And that is why, sucker that I am, and despite having spent the last 5-6 years barely getting comfortable in Vim, I am learning Emacs.

My head hurts like hell because of my vim inclinations, but here’s hoping over a decade in, I would get a little further than my teenage self.

Have you got a story about how or why you pick things up? Share below, or join the discussion at Hacker News

Expert Conversations

Time and time again, I find myself amidst highly qualified individuals. Take the previous weekend for example. We were hanging out at a cafe after lunch. Present there were a panel highly trained individuals whose combine knowledge would span the disciplines of psychology, dietetics, mechanics, geoscience, econometrics, and multimedia (and that’s just counting the formal paper certificate stuff).

What puzzles me is how little we get to converse about the very things that we invest most of our waking hours working on.

After asking around for a bit, it came down to an infinite number of variations circling around two main themes:

  1. I don’t think it’s interesting.
  2. I don’t think anyone else is interested.

Responding to 1, I’d suggest that one would seriously need to reconsider the career that one has chosen. It’s one thing to attempt to objectively gauge the interesting-ness of a particular line of work; it is a completely different matter for one to give five seventh’s of ones adult life to something that bears no interest even to its beholder.

As for theme number 2, very few of us have cultivated the skills required to engaging domains of knowledge beyond what we are accustomed to, myself included. In other words, it is not your fault, but you could try cultivating an interest in what others are working on.

I don’t know how such a skill would be cultivated, I sure wasn’t taught any of this in all my years in the education system, but I’m going to learn to be interested, and I’m going to try and seize every chance to celebrate the abundance of expertise around me.

Crowdsourced accounting

During a post-dinner conversation, the following was posed:

“Is there something we can build to help accounting students gain valuable industry experience either during their course, or right after graduating?”

A company’s books is one of those things isn’t taken lightly, and people generally aren’t too keen to experiment or take risks with them. So the idea of setting up an accounting firm and charging money for volunteer accounting quickly fell over.

“How about making a bit of a game out of it?”

One could set up a little accounting operation, gather a group of eager accountants-to-be, set before each of them identical copies of a client’s accounting data, and make a competition out of who, for example, is able to save the client more money on the year’s tax return.

A few things would have to be put in place. Firstly, this will not replace the structures that the client has in place prior. Secondly, the client does not pay a cent unless they decide to use a proposal put forward by one of the student participants. Thirdly, the data will be anonymized, just because for confidentiality reasons.

The client has very little to lose (the bulk of it will be time spent answering questions that the students may have in a rountable interview, perhaps). They gain extra sets of eyes and brains churning over their books, and possibly unearth previously untapped savings.

For the student, this is an opportunity to practice their craft on live data, engage in a bit of friendly competition, and stand a chance of taking home a prize – all in the name of “industry experience”.

So there, crowd-sourced accounting. And I’m putting it out there is because ideas need to be aired. I don’t claim to know anything about the profession or the industry, so this could be the dumbest idea ever, or someone could run with it, and create the next awesome.

If it happens that you read this and decided to give it a shot, do drop me a line to let me know how it go. Any takers?

p.s. I welcome your thoughts on this, especially if you’re a professional in the field. Is this something that’s feasible at all? 

My browser stack

Like most web developers, I’ve got an array of web browsers installed on my PC for cross-browser work. But apart from development and testing work, I’ve noticed a curious habit of ‘partitioning’ my day-to-day web experience through different browsers.

So I thought it’ll be a good idea to write about the web browsers that I use, and the peculiarities of each one.

Opera

Opera is my daily web-consuming browser. I have the weather, Hacker News, Slashdot, Proggit and OSnews on Speed Dial, a trunk.ly bookmarklet on the main tool bar and DuckDuckGo as my location bar search engine.

Opera has got quite a few nifty features that I haven’t been able to find in any other browser: things like mouse gestures, its peculiar single-key shortcuts, built-in IRC client, search keywords and native site blocking.

Among the url patterns that I’ve got blacklisted in Opera are *google-analytics*, *facebook.com*, *googlesyndication* and a plethora of other ad syndicate domain names that I’ve collected over the years. The only downside to using a 1.56% browser is that you occasionally run into the odd website that doesn’t render properly, which is when I fire up…

Firefox

Firefox is for when I want/need to see the web “as most people should see it”. It is my primary development workhorse. To maintain a somewhat “blank slate” consistency every time I fire it up, I’ve turned off the Disk Cache, History and Password management. I only have a handful of add-on’s activated, namely Firebug, FirePHP, Web Developer and HackBar to keep things light and zippy.

While I’m furiously going through my Edit-Save-Reload development cycles, I often find myself spawning documentation tabs in Opera. This allows me to save “Alt-Tab” for switching between editor, documentation and output while “Ctrl-Tab” cycles within each context.

Chrome

Chrome for me is permanently set to incognito by way of appending –incognito at the end of its shortcut. From a development perspective, Chrome is my WebKit-esque view of the interweb. If it looks okay in Chrome, it’ll likely be decent in OS X Safari, iOS Safari and a good chunk of Android devices (though, nothing beats actual testing on the browser/platform combo).

On the peculiar “mental partitioning” front, Chrome is what I fire up for the occasional Facebook meander (remember, *facebook.com* is blocked on Opera), and more heavy “app”-y stuff like Gmail. I think this perception stems from its supposedly bad-ass V8 Javascript engine and the fact that this browser wants to become the heart of an operating system.

Internet Explorer

The only time I use Internet Explorer is to download Opera whenever I’m setting up a new machine. As far as development goes, I use the handy-dandy IETester to cover my IE 6 – 9 bases. Although IE9 comes with a pretty good set of Document Modes for testing your site with.

So yeah, that’s my browser stack. What does yours look like?