home
on exploration, introspection and creation

Archive for the ‘technology’ Category

Technology Sucks

Monday, January 24th, 2011

I complain about technology all the time. I hate how involved I have to be in it to enjoy it. Software patches, Blue Screens of Death, different file formats, lack of universal connectivity — these are all the symptoms of technology that is not the technology of the future. If you have the pleasure of dealing with technology in an enterprise, the situation there looks even more dismal: layers and layers of abstraction akwardly strung together, preventing us from ever forgetting about the bottommost layer. (Technology consumers–especially (at least before Apple started hurrying and cutting corners everywhere) Mac users, you have no idea how lucky you are!)

Why do I have to quit iTunes before proceeding with an update or restart my computer afterwards? Why can’t my application know it’s broken, automatically fix itself and update itself?

But then I add some perspective to this problem — we cringe in fear when we hear about hand-punched cards that ended in machine code the instructions needed to multiply two numbers. I am not that old, but when I tell my friends about loading programs from cassette tapes and having to number each line of my program, they give me a pitying look. Technology is getting better, and its only sin is giving us the glimpse of its potential.

The future is very exciting indeed.

Mac OS X Names

Monday, January 10th, 2011

It’s very likely that Apple knew that 10.6 would be a refactoring update before they came up with a name for 10.5 because Snow Leopard is a very natural choice for a refactoring of Leopard (and – though that’s a little less likely – they had to know way in advance since Leopard is a really nice name for an OS but Apple decided to wait until 10.5). So are they just naming them late in the game or do they have a good roadmap for their OS editions?

The Gift of Abstraction

Monday, January 10th, 2011

Our ability to generalize, think in terms of abstractions, gives us enormous power — even if it’s a virtual sort of power. With it, we can write books in which we create and destroy universes, which transcends the objects we control. We’re not bound by the rules of those universes.

What makes computers different from humans is that computers cannot conceptualize, and so they cannot conceptualize a force that transcends the framework to which they are confined.

What’s your Favorite Algorithm?

Tuesday, January 4th, 2011

A friend of mine suggested that as the one question he likes asking people he interviews for any kind of technology job. I think it’s a great question because it gets at an important characteristic of someone I would like to work with — passion and the depth of thought. Having a favorite algorithm requires you not only to know a bunch of algorithms, but also to have thought about them and used them enough to have an opinion. Just like a favorite song, your favorite algorithm is probably not going to be the one that everyone learns in their first year of CS education, or one that everyone uses every day. And knowing why it’s a favorite algorithm reveals a lot about how someone thinks about computing.

What’s your favorite algorithm?

The Reputation of Software

Thursday, December 9th, 2010

I feel that software has a really bad reputation. I blame it on large companies (such as Microsoft and, recently, also Apple) that have, in the past ten years, set users’ expectations in a particular way.

We are all used to software breaking all the time. We rarely think about it. Defects cause us frustration, wasted time and money. We get angry but then we shrug it off. Such a thing would be unacceptable in any other field — imagine having a car spontaneously blow up!

Those large companies haven’t done a good job designing good software. In their pursuit of profit they preferred to set the expectations low. Somehow the entire industry followed suit, and I think the reason it’s been okay is because our human nature makes us crave new feature so much that we forgive everything else.

If a car was defective, it would be the company’s obligation to repair it. Why isn’t software the same? Why is every piece of software provided as-is? Don’t users deserve what they paid for?

Why Technology Needs a Revolution

Tuesday, December 7th, 2010
  • Why do I have to type in all these usernames and passwords? Why doesn’t the computer trust me?
  • Why do I have to be bothered by software updates? I have to quit iTunes, then press “Continue”. Why not just a note, like “Look, I’ve changed such and such in such and such application.”
  • Why does the OS take forever to start up?

A Nerd Generation

Friday, December 3rd, 2010

I was a nerd (I still am). I went to great lengths to carefully and painstakingly create an image of myself as a nerd. It took a long time and it took many sacrifices, mostly in popularity in elementary and middle school.

But what I’m seeing now is the emergence of an entire generation of nerds: people are becoming more and more computer-savvy. They blog. They laugh at xkcd comics. Technology is no longer this inaccessible cloud of mystery.

People like me don’t like that precisely because of the amount of effort we put into being different, into being special.

Useful Programming References

Monday, November 8th, 2010

Algorithms

C

Java

Ruby

OSX/Unix

postScript

LaTeX

JavaScript

Useful Reference Cards

Wednesday, November 3rd, 2010

Technology

Miscellaneous

Programming Unix/Mac circa 2006

Tuesday, November 2nd, 2010

The computing world changed tremendously between 2000 and 2006… in 2006 I completed a second version of the reference guide, this time focused on Unix and Mac superuser experience (less about programming, more about terminal usage). Most of the stuff here is timeless and still works beautifully, thus yet again proving that good technology never becomes obsolete.

Programming Mac/Unix circa 2003-06