Friday, October 07, 2011

Steve Jobs is dead. Long live Steve Jobs.

He was a polarizing figure; a lot of people loved him like a seer, a lot loathed his ability to make others love him like a seer. Most admired him from a safe distance.

Apparently, he was a mercurial, highly unsentimental man. One of his first acts as CEO was to empty out displays of old products on company premises. He never believed in looking back, he considered it baggage, an anathema to be shunned. He went to great lengths to say the great products of Apple were not made by him alone, but by an army of talented people, doing difficult work.

Despite the 300 or so patents to his name, anybody that has been involved in the making of anything non-trivial knows the many pairs of hands and eyes something has to go through, to make something great. The fact that none of his patents are solely under his own name, bears witness to this fact.

What will really live on is the story of his life. He was born a child out of wedlock, given up for adoption after his birth to relatively poor parents, who could not even finance his education. When success came, he was kicked out of his own company, betrayed. And the final setback that ultimately took his life, contracting a rare form of pancreatic cancer.

Despite all this, he oversaw some of the greatest successes of our time. We love turnaround stories, and Steve Jobs, and by extension, the company he founded, is one of the greatest turnaround stories of our time.

He achieved it not through luck, but through sheer determination of will, faith in himself, and the vision to realize that the times, they are-a changin'.

That will be his legacy. And it won't be just his legacy, but of many unassuming men and women before him, who overcame similar odds to achieve similarly lofty goals.

Mr. Jobs will live longer than most of his mourners. Some of them will rise to the occasion, and live the lessons he espoused. Most will fail, some will succeed. But all of them will be happier for it. And we will all be better off for it.

May he journey well, to whatever lies beyond.

Sunday, July 17, 2011

Awesome Tool to Justify Text: Par

I recently came across a problem: I wanted to format text in my favorite text editor (vim) in a very specific format. Lines should have a maximum of n number of characters on them, and it should justify properly, nice and pretty, and I shouldn't have to think about it. It should be automagic.

I came across a utility called par. It's a very powerful utility that can process a block of text into an organized format, and I think not enough is being said about it!

http://jmcpherson.org/par.html

It's an open-source project, and it adopts one of the core tenets of the Unix philosophy: do one thing, and do it well.

All I can say is when I use it, it does all the magic I need it to do, and in a sense, the technology 'disappears.' It's a funny thing to say that since it is a tool designed by a technical person, for technical people (very few non-techies use vim). But it's true, even at this relatively deep level of technology, the really good tools... simply disappear.

It's coming across gems like these that make me wonder why we put up day in and day out with all the poorly written, poorly designed software out there. From the cruft of Microsoft Word, to the sluggishness of Firefox, we have to put up with these things regularly.

A lot of it has to do with the fact that writing good software is actually quite hard. But most of it is really to do with our intransigence. We get used to a toolchain and refuse to be flexible and move around.

I think a bit more toolchain promiscuity would make us all a little happier.

Thursday, June 30, 2011

How to Make Simple White Rice

Rice is a staple crop in vast swathes of the world. It is said to have been domesticated on the flood plains of Iraq at the dawn of civilization, and is one of the cornerstone crops that allowed for agriculture, dense population structures, and the resultant technological, and economic development of modern civilization.

Rice is kind of a big deal. It gets a bad reputation nowadays, because carbohydrates have been demonized. I know better, though.

This is a simple recipe on how to cook white rice.

Ingredients:
  1. Rice
  2. Water
  3. Salt
Instructions:
  1. Put whatever amount of rice you want to eat into a pot (usually, it's about 1 cup for 1 person)
  2. Put your index finger on the surface of the rice, and fill it with water till the surface of the water reaches the first knuckle of that finger
  3. Add salt to taste
  4. Let it boil
  5. Take it off the cooker once the water has evaporated
You don't need to drain the starch from this recipe. The amount of water to put in is always one knuckle's distance, from the surface of the rice, to the surface of the water. It's an old standard used for white rice, no matter how much rice you have. This works best with long grain white rice, but should hold for all kinds of white rice.

Note that for health reasons, sometimes it's good to add water "in excess" (i.e., a lot more than you need), note when the rice is cooked, and then drain the rice. This reduces the amount of starch you ingest, which isn't so bad a thing. Choose your poison, if you'll pardon the phrase.

Whatever works for you. This is an easy recipe, and rice (white or brown) is an awesomely delicious thing to eat.

Wednesday, June 22, 2011

Amsterdam: First Glance, Part II

Public Transport

Public transport in Amsterdam is, on the whole, quite good. Arrival times are published on a per-station basis. In Singapore, they only publish bus frequencies, which are really rough guidelines. Sometimes the frequency metric is meaningful, often-times, it's complete bollocks.

Here, they have ETA's (estimated time of arrival) for each train throughout the day, published in a very nice format. This is extremely handy, and I much prefer it to Singapore's unwieldy, non-committal, and of-times plain inaccurate approach.

But public transport here is extremely heterogenous.

There are trains, there are metros (which are basically trains, but if you call them that you'll completely confuse people), and then there are trams, which run on metro tracks (and often have overlapping routes), and are, in essence, a subset of the metro, but with the exception that they ply downtown streets, which neither the metro nor the trains do.

Confused yet?

The word train is used to connote inter-city trains. So you don't take a train to Amstelveen (a satellite city of Amsterdam), you take a metro. You take a train to Utrecth (a neighbouring city), but you can also take a metro, because some metros actually go to neighbouring cities. They metro and trains run on the same gauge, they look similar, have overlapping routes, but are, at least in terms of nomenclature, completely different.

The trams ply city roads within Amsterdam-proper. They have tracks laid down major roads in the city, and they merrily roll by with a quiet electric hum.

The metro links far corners of the city, and basically link up the disparate parts of metropolitan Amsterdam. They also sometimes go to neighbouring cities, like in the example above. But they're not trains.

Confusing enough for you?

They try, though. There's a unified RFID prepaid payment mechanism called OV-chipkaart. You top it up with money, and spend it through your tram/train/metro rides. The only thing is, not all the stations are closed off. Some train stations won't allow you to exit if you don't tap. Some don't seem to care, with permanently open gantries. So you can forget to tap in, then be on your merry way out of one of the stations that are secured, and then get stuck.

It's just asking for people to take free rides, and I did that initially when I didn't know how to make sense of any of it, even though I was wielding a bona fide OV-chipkaart. Even when you have made sense of it, they have different sets of tapping machines, some for inter-city, some for metro, and tapping the wrong one can be very punitive in terms of the money they deduct from your card.

It's all over the place. Just remember, when in doubt, don't pay.

Sunday, June 19, 2011

Amsterdam: First Glance, Part I

I've been in Amsterdam for about 4 months now. I've had some time to settle in and soak up the atmosphere, the language, and local attitudes. In many ways, it's still too soon to form real opinions, so this isn't a definitive snapshot of life in Europe for a brown outsider. But I think it's a pretty close indicator.

Opening Hours

Everything closes at 6. If you need to fix your bicycle, you need to take time off work to get it done. Supermarkets open till 8pm, which is a small mercy. Thursdays are special, some shops (note: some, not all) are open till 8pm.

To an Asian, this is the weirdest thing ever. In Asia, even stationery stores are open till 9 or 10pm. The city doesn't even begin to sleep until about 11pm.

Over here, by 8pm, most stores are shuttered, and only food and beverage, and entertainment facilities are open.

Food

I'm a South Asian, and I've lived a goodly portion of my life in South-East Asia. I come from a heritage of North Indian, and Thai food, arguably some of the best food ever invented. I have high standards for food.

Unfortunately, the Dutch don't know how to eat.

It's a little disappointing because their southern neighbours the Italians have made an art-form of the thing, and their near neighbours the French have a good taste for the stuff.

Honestly, though, it's okay. Amsterdam is awesome in so many other ways, and is home to so many visible minorities that finding good food isn't hard at all. The only thing is, it won't be Dutch.

Banks

Tellers at banks don't take cash.

I needed to pay my deposit and first month's rent to move into my new apartment. I had applied for an account, got an account number, but I hadn't received my ATM card, which comes in the post. My putative landlord wanted a bank transfer, it's easier for tax purposes, he told me.

The tellers were behind the counter, serving customers. But they wouldn't take cash. I did a double-take when I heard it the first time. I politely asked the young lady from ABN AMRO to repeat herself. Yup. Those people there? Inside the bank? Behind the counter? Your money is no good with them.

I talked my landlord into accepting cash.

Wednesday, June 15, 2011

Bash Color Prompt Problems With Reverse-I-Search in Terminal.app

I recently colorized my bash prompt. It's a nice touch, and with a bit of taste, it's good design. Makes visual parsing very quick.

Gone are the days of souped up command-line prompts that look like they're about to lift off into orbit. For a trip down memory lane, check this out. I stumbled across it while Google'ing this problem. Good fun. :-)

No, my prompt is very Spartan:



shaque@marius is user@host (so you know what computer you're on), ~/git_tree/users is the present working directory, and ihaque/vim-tweaks is my git branch.

All of this is awesome. The colors are awesome too (Solarized), they're specially picked colors for a low contrast delta between the foreground and the background, while maintaining excellent readability over prolonged periods. Prevents tired eyes. Go to Ethan Schoonover's website I've linked to, and integrate it into your environment. Srsly.

The problem: once you have colors, and if you use bash's builtin reverse-i-search for previously typed commands, things get fudged. Terminal.app doesn't write the characters properly on-screen so if you reverse-i-search for a previous command, then scroll backward or forward to edit it, it doesn't display correctly.

I spent a lot of hours tinkering with my bash prompt to make this work. It was awful, because bash syntax is very un-pretty. Look at the code for my prompt:

export PS1="\[\e[0;36m\]\u@\h\[\e[m\] \[\e[0;34m\]\w\[\e[m\] \[\e[0;33m\]\$(parse_git_branch)\[\e[m\]\$ "

Uffffff.

The fix: use iTerm.app. Terminal.app doesn't render color properly, apparently. I don't have an explanation for this yet, but iTerm.app will gladly handle your colorized prompt and finicky interactive shell features with barely a sweat.

It's also an actively maintained open source project with a shorter release cycle (read: one that is not pinned to that of OS X's).

Bless the folks at Apple, I think they did a pretty good job with Terminal.app. It's miles and miles better than any stock CLI shell Microsoft ever shipped with their operating systems, and the anti-aliasing and opacity control is better than anything I've seen on Linux (though Terminal.app is not nearly as feature rich, or as responsive as anything on Linux).

Credit goes to Terminal.app, I stuck with it for a long time, but I'm switching to iTerm.app now. It's just better.

Monday, June 06, 2011

Installing ack with Macports

Macports is awesome. Also, ack is awesome. ack is made to replace 99% of the use-cases of grep, and it's customizable with an runtime configuration too (~/.ackrc). To install one awesome thing with another awesome thing:

user@host $ sudo port install p5-app-ack

Not a very intuitive name for ack, but this is the naming convention for CPAN modules on Macports.

I was having a spot of trouble finding the package name for ack (port search ack returns way too many results to be meaningful, thank goodness for Google), and came across this blog post that complains about Macports deciding as soon as you want to install ack that the stock perl in OS X isn't good enough, and summarily takes over your computer by downloading and installing a more recent perl on your box.

This made me think. That's not nice.

But then I thought some more, and I decided, no, that is nice. In fact, it's awesome.

OS X ships once every couple of years (which is considered a pretty sprightly clip in the world of operating systems) and stock installations of OS X ship with obsolete versions of perl for the majority of the product's life-cycle.

I'm glad Macports takes over and updates my perl for me. It saves me the trouble of doing it, and worrying about dependencies. I don't want to worry about dependencies. That's why I installed Macports. If I wanted to "roll my own," I'd download tarballs and roll up my sleeves (right after I cut myself with shards of glass).

The first thing I'm going to do when I get a new Mac is install Macports. It's really so convenient.

I like to think of these package management systems as open-source App Stores, which they basically are, except you never have to pay. And to consider open source developers had mature implementations of these so many years before App Stores ever entered the mainstream.

Whatever those guys are doin', they're doin' it right.

Basic Usage of launchctl (with MySQL)

Macports is awesome. I've installed Vim 7.3, Emacs 23.3, mutt, and mysql5-server, and it has been as smooth as apt on Debian (a very high compliment!). Dependencies, download sources, building, linking, it's all taken care of.

You need to have developments tools installed on OS X, though, because it uses gcc, and from what I can tell, it compiles everything.

Macports Just Works.™ I recommend. I am a fan.

I needed to install MySQL on my local machine, but I didn't want mysql5 running all the time; I want to start it up whenever I need it, and shut it down when I'm done. When Macports finished the install, it told me to run a command to make it run on start-up, which I ran.

I wanted to undo it, because I wanted to know how to.

launchctl (short for "launch control"), controls what launches on startup on OS X. Very basic usage is:

user@host $ launchctl load -w com.your.daemon.plist

To make sure it starts up on login. Or:

user@host $ launchctl unload -w com.your.daemon.plist

To make it not start up on login.

It does magicks in the background you don't need (immediately) to know about. Just use it to control what goes on startup and what doesn't.

If you're worried things are starting up that you don't know about, go to /Library/LaunchDaemons/, and do an ls -l (-l is important, because they're all symlinks).

It's basically a directory of symlinks to plist files that are read to get details on daemons to start up for you. If you don't like something (I noticed some Microsoft registration thingy there), just launchctl unload it.

Simple Cooking

Cooking is good fun. At it's core, it's simple chemistry and physics. At it's most flamboyant, it is art and a form of expression.

The problem I find, though, is that I'm not looking for art. I just want to eat. I have the BBC on, I just got back from work, and I'm at my kitchen counter, and I want to make food.

I had trouble finding good websites online that give you simple recipes. Most of them:
  1. Have too many ingredients
  2. Have too detailed and lengthy protocols
  3. Often express key ingredients in grams (impossible to visualize since density is difficult to intuit), which makes the rest of the ingredients expressed in more easy terms (like teaspoons or pinches) impossible to follow, since your base assumption is suspect (what does 250 grams of chicken really look like?)
You can work around these, certainly. Estimate the weight. A normal chicken weighs about a kilo, so 250 grams is about a quarter of that. None of these are major roadblocks.

But it's annoying. Simple things should be simple.

Which is why I'm publishing a few of the basic recipes I've picked up in my very brief time cooking. My recipes will:
  1. Express ancillary ingredients as percentages by volume of your primary ingredient
  2. Express time as percentages of completion rather than minutes (since cooking styles, timeframes, electric or gas stove, all constrain the pace at which you can move)
  3. Have a clearly defined core
  4. Be extensible
Points 3 and 4 need some explanation.

By "clearly defined core," I mean that there are a few things in the protocol that absolutely have to be done. If any of these break, you're breaking the recipe. Everything beyond those core points are negotiable, and variable.

Most people don't like eating the same thing everyday. So this is an important part of cooking. The assumption here is that you are looking to use the same recipes, but vary certain parameters. Mixing and matching should be a foregone conclusion.

"Extensible" is a continuation of the point on "clearly defined core," as it is a step further than merely tweaking certain parameters. It connotes modularity. One recipe should easily be the precursor for further recipes, and one should be able to swap certain key ingredients in a recipe for something completely different, but keep the basic principles the same. For example, a recipe on chicken curry should be just as applicable to mutton or beef, with only slight variations unique to the ingredient.

I'll publish them as I get better at them. Till then, goedenavond!

Sunday, June 05, 2011

How To Make Simple Chicken Curry

Ingredients:
  1. Some chicken (skin or no skin, whatever is good for you)
  2. Some onions (~10% the mass of chicken)
  3. Tomatoes (or tomato puree, about 10% the mass of chicken)
  4. Garlic, and ginger (preferably as paste, but finely cut will do, about 2% of the mass of chicken)
  5. Curry powder mix (availably freely, usually a blend of spices, about 5% the mass of chicken)
  6. Cooking oil (about 2% the mass of chicken)
  7. Salt to taste
Instructions:
  1. Put it all into a pot (don't add water).
  2. Turn the heat on low, and mix things up a little best you can (doesn't have to perfect, it's just the beginning)
  3. Cover it, and keep mixing. The lack of water may make the chicken stick to the bottom, so just shake things up every few minutes.
  4. After a while, chicken broth will develop (guaranteed to happen with raw chicken), which is why you don't need to add water. This is what you're waiting for.
  5. Mix it more thoroughly now, and make sure the spices are evenly distributed (easier to do now that there's a medium)
  6. Cover it, and let it cook. You can turn the heat up a bit more, now that there's water.
  7. When it's done, feast, preferably with rice. Flatbread, pita bread, sliced bread, or tortillas work just as well, though.
Variations:
  1. I love vegetables, and adding them to this recipe is very simple. The main parameter to consider here is timing. Too soon, and your vegetables become mush. Too late, and they're totally raw (not necessarily a bad thing, but not always ideal, like with potatoes).

    Just go crazy with the vegetables being cognizant of the timing. For potatoes, pop them in at about 40% completion. Your mileage may vary depending on the kind of potatoes you use, and how finely you cut them. Finely cut potatoes have a higher surface area-to-volume ratio, and so cook faster.
     
  2. Sometimes you want gravy, sometime you don't want much gravy (depending on if you're eating it with rice, or with bread, or with vegetables, or on its own). You vary this by varying how much you cover your pot. If you cover it more, you'll have more gravy (more water is retained in the system). If you cover it less, it will be drier.

  3. Minimize the amount of oil you put in. Oil isn't the best thing to eat, and it makes cleaning up harder. But oil is an oft-abused ingredient. Think about it, too much oil doesn't ruin a dish the same way too much salt ruins it. So a lot of people become chronic abusers of it.

    The reason for that is simple: oil is a good heat buffer, so adding extra oil delays food from burning. But oil is not meant as a cover for bad cooking, it's meant as a flavor enhancer, and a cooking medium.

    Minimize the amount of oil you add, and monitor and regulate the amount of heat you apply. This isn't possible on first try, but do your best and refine your protocol as you go along.

  4. Salt. If you're eating the chicken with rice, too much salt is okay (rice dilutes the salt, so you have some leeway). If you're eating it with bread, it could mean the difference between an edible and inedible meal. Be careful with salt, and err on the side of caution. Add less to start with, and refine the amount later on in the cooking. I usually add some salt initially, and refine it at about the 70% completion mark by tasting it.

  5. This simple recipe can be varied by varying the spice blend. Go crazy with it. You can't go wrong so long as you have the core spices: turmeric and coriander. After that, your imagination and taste palate are the only limitations.

Monday, January 17, 2011

My Cat Is Up For Adoption

*** UPDATE *** 04/02/2011 Kasey has been adopted by a friend. His new home is nicer than I could have ever imagined. I'm happy. :-)

I'm moving out of Singapore and I'm looking for a friendly place where I can put up Kasey, my adorable little kitty cat, and best friend forever.

Kasey can also be KC, short for Kitty Cat. Very clever, yes?

Kasey is a tabby-white domestic shorthair (shorthairs are convenient as indoor cats because they don't get furballs in their throats as much). He's a rescue kitty, I found him as a week-old, malnourished little kitten near Eunos MRT in May 2009. I had no intention of adopting a cat, but I wasn't confident he'd survive if I let him back out on the streets, so I took him in.

He's very friendly and playful, but is also super-shy and easily scared. He's had all his shots, he's been spayed, and he's fully potty-trained. In my 2 years of knowing him, he has never vomitted, sprayed, or done anything overtly disgusting or spiteful, except when he is under the severest of stress.

At about 2 years old now, he's really just a very awesome cat with a gentle soul and heaps of personality, and I'm sad to have to leave him behind.

Kasey is about 2 years old.

I've been training him to poop and pee into a toilet (like in the movies, yes!). He's very far along in his training and he's just a few stages away from completing it. So if you're interested but are finding that you don't have space for a litter box, he's almost there in not needing one (and all the germs, maintenance, and expense that a litter box comes with). Once his training is complete, all you have to do is flush twice a day, and scrub your toilet bowl a bit more frequently than you normally would. Very low-maintenance, ideal for apartments and condos.

I'd love to take him with me to see the world, but as a working bachelor who travels frequently, I think Kasey would do well in an environment with more stimuli, and a pet human who is around a bit more to do his kitty bidding.

I always wanted to keep a cat since I was a child, but never did as my mom was a firm believer that animals belong outside the house, and not inside. Keeping a cat, though, is a big responsibility as I have discovered. It needs patience, and lots of love, and is by no means easy. You need to be kind and loving, but also firm and at times strict and unforgiving to establish rules and boundaries that cannot be crossed.

For example, we have no scratch poles in our apartment, but there is some furniture that is old enough that me and my flat-mates don't care if he scratches them. Kasey has spent more than a year sleeping within kitty-arm distance of my PVC leather computer chair, and hasn't scratched it, but has been scratching with particular glee my flat-mate's bed frame, and our old mattresses set up in the living room as an impromptu sitting area. To establish that kind of an understanding between you and an animal, you need to serve up a proper balance of love and approval, and discipline and firmness.

Discipline! Discipline is the thing! Builds character, and all
that sort of thing, you know?

I'm going to miss him a lot, but I'd like to know that he's having fun wherever he is, making new friends, and living life to the fullest.

If you're interested, please e-mail me at iftekharul dot haque at gmail dot com.

Tuesday, January 11, 2011

Cricket Spot-Fixing Trio Should Face Maximum Penalty, If Found Guilty

If Pakistani cricketers Salman Butt, Mohammed Asif, and Mohammed Amir are found guilty by the ICC of spot-fixing, I believe they should face the maximum penalty of a lifelong ban.

Mohammed Amir, a particularly talented young man, is attempting to make a plea that he is young (18 years old) and has no prior disciplinary record, and should be let off easy. This plea has a lot of support from both Pakistanis and non-Pakistanis, as Amir's magnificent bowling is a match-winner for a deteriorating Pakistani cricket team at the highest levels of the game, and at 18 years of age with 51 Test scalps to his name, this young man is a legend in the making.

As much as Mr. Amir is an asset to the game, I feel leniency by the ICC would be entirely inappropriate if indeed wrongdoing is established. Competing at the international level, the apex of the game, comes with perks and responsibilities, neither of which are mitigated by a tenderness of age.

Pakistan recently demolished New Zealand by 10 wickets in a Test match at Hamilton, bowling the hosts out twice in 3 days, and finding time to put up a very respectable 388 runs in between. Beset by controversy and chronic structural problems in Pakistan Cricket, the team continues to punch above its weight category in the international arena, and the country seems to be drawing from a fairly rich pool of talent (see article). These cricketers will be replaced soon enough by new, hopefully more ethically compliant, athletes.

This is the first corruption case to be handled by the newly assembled, centralized anti-corruption apparatus of the ICC. A clear message should be sent, both to players and to spectators, that corruption, however small, will not be tolerated from anyone, however young and promising.

A verdict is expected later today.

***Update*** They've deferred judgement to the 5th of February. Anti-climactic, but wholly appropriate that they want to give the issue full consideration before considering an outcome.

Monday, January 10, 2011

Looking Back, Starting Again

Looking back on this blog, more than 6 years after my first blog post, I flirted with the idea of jettisoning this baggage of the past and starting a new blog.

A new blog, for a new sense of purpose, and a new sense of myself in the world. One in which I took myself a little less seriously, and perhaps didn't impose a sleep-inducing 2,000-word minimum to merely state the obvious.

The temptation to delete everything and start anew is one I've decided not to flirt with any longer, though. It's the temptation of the idealistic perfectionist, and though both qualities are to be celebrated, neither are to be humored for too long. This blog, in all its rambling rhetoric, and self-absorbed glory, is me. It plots my course, as a confused, idealistic nativist, to an equally confused working professional with way too much time on his hands.

I think this journey should continue. Let's see where it goes.

Saturday, August 29, 2009

Snow Leopard and the Beginning of an Era

Mac OS X 10.6 Snow Leopard is out!

I don't remember the last time I was so excited about an operating system release. From my pre-Apple years, it would have to be Windows 98. Indeed, that was the last non-Mac operating system that I was last genuinely excited about getting to use.

Right-click menus would slide now, and there was this weird thing called "Screen Font Smoothing" (from Plus! 98) which made me just want to fire up MS Word and type things into it for no reason.

It was everything I knew and loved before, but that little bit cooler. Old things felt new. That is such a cool feeling. Incremental updates.

Car-makers work by incremental improvements. Facebook works that way. GMail works that way. It makes sense: stand on your previous achievements.

Even fast-food outlets work that way! You like the McDonalds' Filet-O-Fish? Well, here's the Double Filet-O-Fish! They have those in Singapore now; I haven't tried them. But "[they're] lovin' it!"

My core point: revolutions should only be made when they're absolutely necessary. Revolutions for the sake of it is, frankly, too much democracy.

It's like that cardinal rule of movie remakes: never remake a good movie, no matter how old it is. Nobody is ever going to remake of Lawrence of Arabia, or Terminator 2.

Snow Leopard is an incremental update. A lot of PC users wonder why the Mac community gets so excited about "service packs." Well, a service pack isn't some fundamental law of the universe, friends, it's just a phrase coined by Microsoft which arbitrarily means possibly a speed-bump, better security, bugfixes, and minor feature updates.

Well, OS X updates are arguably not service packs for a few reasons. It is true, OS X updates represent very few significant user-land updates. Off the top of my head, the only headline grabbers were Expose (introduced in OS X 10.3 Panther), Dashboard (introduced in OS X 10.4 Tiger), and Time Machine and Spaces (introduced in OS X 10.5 Leopard). Apart from that, the biennial "300+" features is mostly marketing fluff.

But despite relatively few user-land updates OS X changes extensively under-the-hood between releases. New APIs and frameworks, much of which had been very fluid up until OS X 10.4 Tiger, have been the real changes in OS X updates. An operating system is only as good as the software that is developed for it, so Apple has been targeting the developer market very aggressively since OS X debuted, and you can plot the quality of third-party software for OS X with each subsequent release.

OS X, at 10 years old, is still a fairly young operating system and only really matured at the user and developer level OS X 10.4 Tiger. Not unlike how KDE 4.0, 4.1, and 4.2 are memories I'm trying to block, and how Microsoft is trying to forget Vista ever happened, the transition to the point of Snow Leopard's maturity has been a long one.

Snow Leopard marks the beginning of an era, even though it is, from the user perspective, a service pack. And Mac-lovers will gladly pay, while PC people think its mass-hysteria. But it's not, really. It's not.

You know there's something wrong with your theory when it implies multitudes of people are crazy. Between you being right about everyone being mad and you being wrong because you missed something, statistically, chances are you've missed something.

The explanation is simple: Apple maintains a momentum in its release cycle, and doesn't charge an arm and a leg for it, which is why people gladly pay them for these kinds of upgrades.

At USD 499 (Vista Ultimate's original price), you darn right better not be paying for service packs. Apple charges less per release (steady at USD 129, Snow Leopard has been their first release to break that pattern at USD 29), and releases it more frequently.

It's the community, stupid!

It's a once-in-two-years event now, the operating system release. It's something users have now come to expect. It is a steady, incremental, predictable release cycle, which doesn't reinvent the wheel, or throw users off-balance every time. Once every two years, the Mac community wakes up from its torpor and everyone is abuzz about their "paid service pack."

Microsoft, however, is anything but steady. I don't say this with contempt, but with sadness: I wish they didn't drop the ball so badly. I waited till the cows came home for Longhorn after the disappointment that was Windows XP.

For all the love Windows XP gets now, let's not forget that Windows XP was a disappointment until SP2. The only thing it was, was stable, and that's only relative to their previous releases which is setting the bar quite low (and arguably what they did to make everyone fawn over Windows 7, including myself).

XP was insecure and slow, and came with those awful message pop-ups that made life very difficult for an everyday user out of the box. After using commodity hardware to "locally assemble" my own machines to consistently horrible results, they started losing my mindshare by that point.

By the time SP2 came out and things started settling down to some semblance of sanity, I had moved into the loving arms of OS X 10.2 Jaguar. An operating system which also happened to be border-line unusable, but in my books was a step-up from Windows XP pre-service packs. Not because it was stable, because Windows XP was actually quite stable, despite being slow as molasses. No, not because it was fast, because it wasn't all that much faster than XP.

OS X 10.2 Jaguar had one killer feature: it wasn't Windows.

I hated the PC world so much at that point, I'd have settled with an abacus.

I had lost all faith in computers by that point. I think to this day, I never quite figured out how to install a modem driver in Windows 9x properly. Yes, I might be an idiot, but I’m an otherwise functioning adult who could install other drivers, so why not this one?! I had to take my PC to the workshop for them to take a look at my himem.sys to make my Transport Tycoon work. Randomly failing commodity parts was the bane of my existence, and was touted as the most compelling feature of the PC “ecosystem.”

You can keep your ecosystem.

When I came to the National University of Singapore in June of 2003, and I went to the laptop fair, I made a beeline to the Apple store, and didn't look any other way. I bought a 13.1" iBook G3 at 900 MHz: an underpowered, over-priced machine that only ideologues and die-hard fans would buy, but a machine I loved to bits and used for a good 4 and a half years.

I was just glad to be rid of that damned "Personal Computer."

It was only with the introduction to Linux in 2004, and a steady observation of its internals that I slowly started regaining some faith in the world of computing. I think it was only until very recently that I've started thinking (once again) hey! Computers are kinda cool!

Everything was so neat and clean in the Linux world, it really made an impression on me. Directories for configuration files, clean scripts with consistent interfaces to start and stop services, different ways of interacting with the computer (the CLI or the GUI), solutions to operating system problems which aren't "do a reinstall." What a breath of fresh air! This stuff actually works.

And Linux didn't (and doesn't, to this day) do everything. But whatever it claimed it did, it did well. The rules were simple and elegant, and the philosophy facilitated the process, it didn't get in the way.

So, no thanks to Microsoft for that.

But that's okay. Let by-gones be by-gones. I switched loyalties, Longhorn became Vista, which crashed and burned spectacularly, Apple has been massively successful since, Firefox nudged IE out of cryonic hibernation, and Google has woken Microsoft up from its dominance-induced coma, and Windows 7 is coming about, and it's something even I'm a bit excited about.

And yes, Windows 7 is Vista SP2 and with ripped off ideas from the Mac OS X. And that’s perfectly fine.

I don't mind that OS X steals from Windows or that Window steals from OS X. That's what this is all about, it's a discourse, it’s competition, it’s an arms race. Going “me too!” is not only perfectly fine, but encouraged. Microsoft in the 2000s was so technically inept that Apple had the chance to implement a feature they announced as MBA-driven marketing hype before Microsoft themselves could do it (fast desktop search, now called Spotlight, released first in OS X 10.4 Tiger, well ahead of Vista's release).

I'd probably buy Windows 7 it if it was priced a bit cheaper. It's still too expensive after what they charged customers for Vista. Hopefully they'll slash prices, but I'm glad Microsoft is about to come back in the game again. Nothing is set in stone yet, we have to wait till the fat lady sings on this one, and its classic Microsoft to set the bar so low that even a whiff of “not-a-massive-failure” gets people excited, but the outlook is favourable.

The late 90s and most of the 2000s has been a period of stagnation in the computer world with Microsoft's unchallenged domination, which its competitors are to blame as much as Microsoft's predatory market practices.

Now, with competition returning in the browser world with the Phoenix-like comeback of Firefox from the ashes of Netscape, the second-coming of Apple thanks entirely to Steve Jobs, Google's steadily increasing boldness and earthy common sense, and Microsoft's (still-hyped and as of yet unsubstantiated) comeback with (the incremental update that is) Windows 7, we, the customer, have everything to gain. Competition is returning, and users clinging on to 9-year-old operating systems will hopefully be a thing of the past.

Interesting times are ahead.

Thursday, August 06, 2009

Perl as Glue, and the Ebbing of Mindshare

People have lovely things to say about Perl, and one of the first things you'll hear is that it's great glue. It's good for stringing things together, and making them work.

The problem with glue is that it doesn't constitute a "good solution" in the mind. We know of glue as something we apply on our shoe when it comes apart, just as a stop gap until we can finally get a new one. The Tata Nano is held together with glue to cut costs. Make no mistake, this is a technical achievement and an innovation, but we all know what people would rather have used: steel rivets, like what they use on the space shuttle.

Well, that's what the rich people get. Poor people get glue.

This is, of course, technically inaccurate: industrial strength glue holds everything from our iPods to our vehicles together. But the crisis has always been one of perception, not of reality.

Perl is a lot more than "handyman glue". It's like saying steel is good for nails and that's all it's good for. No, you can make ships out of steel as well.

This perception of Perl as that special, weird-looking wrench which fits into corners other wrenches can't fit into is what's holding it back as a serious language. People will only use it when their "normal" tools don't work, so they don't appreciate it's greater applicability.

But it's a difficult problem to solve. Because Perl is great glue. It's Soviet-gymnast-like flexibility is what makes it so powerful, as nails that holds your chair together, and as the stuff that makes up the hull of the USS Enterprise.

Perl has a long, varied, and continuing history in web applications, so it's really quite sad to see it having lost so much of its mindshare after having come so far. It's "sad" for me, because I'm only now at the cusp of my career as a web application developer; I wasn't around for the first 2 acts. So I have very little idea of what "mistakes" Perl must have committed in the past to now be relegated to the rusty toolbox of the IT world, but I'm sure there must have been some.

The company I work at is now seriously reconsidering continuing with Perl. We want to move to Java, and partly, even I'm convinced that a solution in Java is a more sustainable one. In fact, my only argument for sticking with Perl is a not exactly a shining vindication of Perl (although it is ultimately correct): we have too much momentum and expertise in Perl to drop it like a bad habit just yet. If we're going to do it, we have to plot a methodical and gradual migration away from it.

But in this current round of technical naval-gazing within my organization, even if I get everything I ask for, the next few years will see the end of Perl in yet another enterprise environment as we slowly transition to the suited and booted Java Enterprise Edition.

Recursive Dependency on CPAN

Trouble's a-brewin':
Recursive dependency detected:
Bundle::CPAN
=> Test::Harness
=> A/AN/ANDYA/Test-Harness-3.17.tar.gz
=> File::Spec
=> S/SM/SMUELLER/PathTools-3.30.tar.gz
=> Scalar::Util
=> G/GB/GBARR/Scalar-List-Utils-1.21.tar.gz
=> Test::More
=> M/MS/MSCHWERN/Test-Simple-0.88.tar.gz
=> Test::Harness.

Cannot continue.
This is the output from a CPAN shell. This is a fresh install of perl on Ubuntu Hardy Heron (LTS). The CPAN that comes built-in is obsolete, and an install Bundle::CPAN is in order at the CPAN shell after you've initialized it at the first run.

This problem can be fixed by manually installed the "offending" module, which in this case is Test::Harness. It needs to be installed but needs itself to install itself, which makes no sense (even for perl).

Exit CPAN, and go into your cpan directory:
cd ~/.cpan/Build/
cd Test-Harness[tab]*
perl Makefile.PL
make test
make install
Manually installing the module will break the recursive dependency. So fire up CPAN and breathe normally.

Hopefully this will come in handy to someone.

* CPAN distributes modules with the version number appended after the module name. So the build directory for Test::Harness v3.17 is called Test-Harness-3.17/. Sometimes it appends random strings at the end, so that a more recent download of the same Test::Harness v3.17 doesn't overwrite the old download. So press tab to let your shell take care of the details. Tab completion is your friend.

Saturday, July 11, 2009

Perl Is Coming Back

You read it here first.

Okay, if you did read it here first, you need to read this as well (it's a bit lengthy). No rush, when you get a moment.

Perl?!

Yes, Perl!

Perl is the oldest of the web scripting languages. Perl 1.0 was released in 1987, which makes Perl 22 years old today, with 4 major releases since then. Perl 5, the latest version, is a good 15 years old now with 10 major releases of its own. It is older than PHP (1995), Visual Basic (1991), Python (1991), or Ruby (1995) all of which were heavily influenced by Perl.

Google uses it. FedEx uses it. The BBC uses it, and they're by and large one of the largest, most pervasive web presences on the internet today (thanks to Firefox and excellent content). Amazon uses it, and by extension, IMDb uses it.

The company I work for uses a custom Perl framework written in the early 2000s, from the dot-com era (and I blame my receding hairline on it; we're moving away from it now).

Everyone uses Perl, just nobody talks about it.

It's mature, it's pervasive, it's user-friendly (how many programming languages can you use that word on?) and it can be a pleasure to write.

It can be hell to read, but flexibility is a double-edged sword. If you're out to cut things, two edges is better than one, so long as you know how to use it.

A few sites that are doing some really good work with regards to Perl as of this writing:

Modern Perl Books

This is a blog by a gentleman aliased "chromatic." This guy sounds like he's been around for ever and he speaks a lot of sense. I'm officially a fan, and this is my Friday afternoon leisure reading.

It's fun to read even if you don't have a clue as to what he's saying. Some of the things he says are just general wisdoms. Plenty of insight available here.

Catalyst Framework

Catalyst is a Perl framework for rapid web application development. It's modeled against Ruby-on-Rails, while maintaining a sense of aplomb about it all, giving the user a tremendous amount of flexibility to leverage the tremendous power (and potential quality) of the CPAN to your advantage.

Non-Perl people will have no idea what I just said. But if you're a non-Perl person, you probably haven't read this far either.

So in case you do know what I'm talking about: wicked, isn't it? And if you don't know what I'm talking about, just know this: Catalyst is cool.

Perl Is Alive!

I was once on irc.freenode.net/#perl and I asked if Perl was dead. Someone directed me to isperldead.com, jokingly.

Well, looks like someone caught on and made a little website called perlisalive.org.

This site is a lot about "raising awareness." A certain Matt Trout, author and maintainer of the very excellent DBIC tools in Perl insists we needn't bandy words, it's "marketing."

Yes, it is about marketing (some of it not very good), so I find it largely a boring and insubstantial resource, but it has an excellent interview with Tom Doran on Catalyst 5.8.

It's like when you see a really great song by an artiste, and you really love it, you buy an album of his (or hers) and then find out that was the only good song in it? That's kind of how I feel about perlisalive.org so far.

But the Tom Doran interview was fascinating enough that I still check back here.

Perl Monks

Perl Monks is one ugly website. Mmm-mmm, my breakfast quickly reconsiders coming out for some air when I fire up this site. It looks like it was designed in the 90s and never got updated, and I'm pretty sure that's exactly what happened.

And yet, it is quite an excellent resource. These guys do some very good work, and their bad-marketing-but-depth-of-substance is somewhat emblematic of the humble competency that is endemic within the silent majority of users of Perl.

Moose

"Moose" is the new object system in Perl.

The current object system in Perl is hacky and bolted on, but Moose makes it all pretty and neat.

What exactly is so cool about it? I really don't have a clue, I haven't seriously started using it yet. But "chromatic" (mentioned above) talks about it to no end. He calls it the "state of the art" in object orientation. Now I haven't heard that phrase used in a long time, and it's certainly a toy I want to get my hands on soon.

Catalyst (also mentioned above) uses Moose extensively now.

So Watch Out...

From the depths of irrelevance and quick-hack sysadmin scripts, Perl is undergoing a renaissance.

Microsoft's "embrace, extend, exterminate" attitude toward standards is slowly petering out. The IT market today is getting more and more heterogenous, and that is good. It makes infrastructure more resilient, and encourages standards-compliance.

Combined with Perl's internal renaissance, Perl has everything to gain from this trend.

We're on our way back.

Thursday, June 25, 2009

On Running

From experience, I have learned that the best students don't always make the best teachers. Someone who is a little slow in the uptake appreciates the finer points a little more than someone who just "gets it."

I've been running since I can honestly remember. And I have never ever been good at it. According to Google Earth's distance calculator, the first distance I can honestly remember running was a whopping 200 metres. I think I was about 10 or 11 years old.

So although I was never good at it, I did do it a whole lot, and over a very long time (if my 11 years old estimate is correct, a good 14 years on and off at the time of this writing). So that, at least, gives me the right to offer a pedestrian perspective.

First, though, I need to clear out a few well-spread misconceptions about "exercise."

Everybody thinks:

1. Exercise is good for you
2. Exercise makes you burn calories

Exercise is Good for you

Actually, no. In the short term, exercise is fundamentally damage, and nothing more. Good exercise is merely controlled damage.

The only thing that makes exercise "good" is the healthy body's capacity to heal from the damage, over time.

The karate masters who break blocks of wood with their fists develop stronger bones with gradual practice. Their bones incur microfractures, small hairline cracks. When they heal, they come back stronger.

The human body is a self-healing machine, and it's the process of recovery after exercise that makes it so good for you.

Exercise Makes you Burn Calories

Actually, no. Well, yes, it does, but it doesn't really matter all that much when you look at the big picture. The number of calories exercise burns is really just a fraction of the number of calories you burn throughout the day, just to stay alive and functioning.

The body burns calories even while sleeping: the heart still has to pump blood a good 1-point-something metres around the body, which is no mean feat. The lungs still have to continue pumping air in and out. The liver still has to detoxify that McDonalds you just had for dinner, and goodness knows the kidneys are still filtering our blood.

For the body, there's always work to do. And that work requires energy.

Where exercise really helps is raising your metabolism, the amount of energy your body burns just to keep itself going. And when that rate goes up, it goes up 24/7, which really adds up over time.

Unlike the human mind, the human body will never invest in something it doesn't need. If it doesn't need muscle (which is a huge, energy-consuming machine that requires resources to not only build, but to maintain day to day), it won't keep it. It will slowly be eaten away (and is excreted through the urine, as it so happens), until it reaches equilibrium at the point at which you utilize it.

So it's the overall level of activity that dictates how much muscle your body has invested in.

Now, Back to Running...

From what I've seen (and painfully felt), running depends on three things: solids, liquids, and gases. Bones (solids), muscles (liquids)**, and breath (gases).

During an honest run, either of these three things will give way before you have to stop. The chain is only as strong as it's weakest link. When the weakest link breaks, it doesn't matter how much stronger the other links were. There's no A for effort here, this is the real world.

Whichever one you push to the limit, will probably not hurt as much the next time you go back out, provided you've given yourself enough time to heal.

And that's really all I wanted to say on the matter. I've discovered this through personal experience: bones can hurt quite badly the first time you start running. I started running as a child, and I remember my legs used to keep me awake at nights when I first started out.

Muscle pains are more easily manageable, especially the muscles in the legs, which are big and can take the hit.

Breathing is also quite painful, but less so in sheer magnitude. It is just as debilitating, though, which is what we're measuring here. The diaphragm, the muscle-controlled pull-valve that expands the lungs forcing air in, has a big role to play in it. It needs to be strong to be able to continuously push and pull air in and out so the lungs can quickly oxygenate the blood and get pumped back around the body.

Running is Hard

Well, nobody said it was going to be easy. In most of the things that are really worth having, there are no shortcuts.

Humans are optimized for running, though. Over generations, we have evolved to be very efficient runners.

Of all terrestrial mammals, humans run the longest distances voluntarily. We can outrun even horses, who will never go as far unless pushed. Cheetahs and big cats will overheat very quickly because of their fur and lack of sweat glands. After a certain point, they simply will not run. And although they run very fast, they can't stay that fast for long, so they don't get too far.

Humans on the other hand, are relatively hairless, and sweaty, so we can cool down more easily. We have a fleshy bottom, which is connected via thick muscles to long legs which gives them power. We have a tendon that goes from our heels up our legs that we don't seem to really need for walking, but helps add spring to a run by allowing us to powerfully push our feet. We have a chord (called the nuchal chord) that runs down the back of our heads, which allows us to keep our heads upright while we run, a feature shared only by running mammals. Since humans are upright, we have a smaller base area, which makes it easier to topple over if the centre of gravity shifts during long strides (Why does a bottle turned upside down topple over more easily than one standing on the base? The area of contact with the surface decreases when it is upside down). To cope for that, we have independent shoulder motion relative to the head, so we can adjust our centre of gravity and keep our balance when making long strides. This is something no other primate has, and something that makes humans an order of magnitude more mobile.

And so it is! So lets get to it. Like Darth Vader said... it is... our destiny.

** Muscles are technically not liquid. They are what physicist Eric Drexler calls "machine-phase," neither solid nor liquid, but still a cohesive, functioning unit. But lets not split hairs.

Sunday, June 07, 2009

Who Speaks for Islam?

I know who doesn't speak for Islam. Saudi Arabia.

So who does?

If you ask me: nobody. And everybody.

Nobody

As a "divinely inspired" religion, Islam needs no followers. Fundamentally, followers need it. Muslims believe in an omniscient, omnipotent God that needs nothing.

So, if nobody in the world followed Islam, nothing would have changed.

But of course, religion doesn't exist in a vacuum: the sacred laws set forth were done so to enrich our lives.

But mankind is imperfect, and God (and by extension, His religion), by Muslim reckoning, is perfect. Using an imperfect metric to measure something perfect will, at best, be merely indicative, but ultimately incorrect.

Everybody

But the problem with that answer is that it evades the question.

So the nuance that I like to add to the response is that although nobody can really speak for Islam, in reality, everybody does.

In all corners of the world, Muslims have integrated Islam into a massive tapestry of colours, flavours and interpretations. From the Shiites and the Sunnies from Europe to Asia, and even Native American Muslims who are on record when European settlers first moved to the Americas.

As a proselytizing religion, Islam has done a good a job (or bad a job, depending on who you ask) as Christianity to spread its word far and wide to the world.

And that word has been adopted, and mutated, and watered down, and concentrated, and beautified, and mutilated in every possible way imaginable. What results, in effect, is representative of the faith.

It is, and always will be, inextricably bound to the human condition which it was sent to enrich.

I'll Get Down From My Soapbox Now...

I just want people to step away from the idea that Saudi Arabia, in any way, speaks for Islam. Just because it houses the Two Holy Shrines in Mecca and Madinah doesn't mean it's a standard-bearer of 1.5 billion people from almost every nationality and language conceivable.

It's a subliminal conclusion drawn way too easily.

Saudi Arabia speaks for Saudi Arabia. Nobody can truly "represent" Islam. But ultimately, we all do.

Muslims are religious, and irreligious. We are liberal and conservative, left-leaning or right-leaning. We are black, white, brown and yellow. We are ignorant, educated and illiterate, mean-spirited, friendly, helpful, racist, and egalitarian. We are deluded and informed, we lie and we steal and we are helpful and we smile, for even a smile is charity. We love, we hate, we hurt, we bleed, we kill, and we die.

In that sense Muslims, and by extension Islam, are not very different from any of the other peoples and faiths.

We occupy this world among equals.

Now Wait Just A Second...

Oh, so you noticed: all that is a very complex non-answer.

But the question is really a non-question. "Islam" is not a tangible entity, and even by abstract standards, it is amorphous to the extent that you couldn't put an abstract finger on it. My Islam is different from someone else's Islam, based on economic situation, geographical location, personal disposition, age, outlook, etc. So when you ask it questions, you'll wonder whose Islam is actually answering the question?

But that's not really the point. Does anybody ever ask, "Who speaks for Christianity?"

I didn't think so.

This Is Where I Draw The Line

I realize there is a lot of negative backlash against Islam and Muslims because of the pervasive terrorism we tend to breed.

But I'm done apologizing for Muslim terrorists. I am no more associated to Islamic extremists than a Jew in New York is associated to an Israeli soldier sniping an old woman in the Gaza Strip.

I don't need to apologize for them to dissociate myself from them. I am separate from them by definition, from the get-go: I am a law-abiding, peaceful person, and their grievances are political, veiled very thinly with religiosity. And this veil is very easily seen through now that George W. Bush is no longer the leader of the free world, and its moral compass.

"Fixing Islam"

I grow weary of articles and books on "How to Fix Islam," many of which are written by non-Muslims. As if the religion needs an oil change (and that by someone who is not a mechanic).

The discourse that actually matters in Islam, will always remain among the learned Muslims, who will, through the gradual evolution of thought, adapt it, localize it and contextualize it as Muslims have been doing for the millenium and a half past.

In this, Muslims can probably help by encouraging discourse through allowing freedom of expression and not stigmatize dissent with accusations of heresy, violent suppression, and summary judgement. We need to be more tolerant amongst ourselves, something we have never excelled at.

Which is why you can "fix Islam" all you like, but without actually changing cultures, attitudes, and outlooks, all the religious legislation/interpretation in the world won't change a single thing.

Islam doesn't speak, and you can't fix Islam while evading deep prejudices within yourself. It's always easy to look outward when you think something is wrong, not inward.

So, really. Islam doesn't have much to say. If there is anything to say, Muslims will say it, and hopefully it will be through actions and not just words.

Saturday, February 07, 2009

Fringe

The Story

Fringe is a tv-show so steeped in pseudo-science and half-baked scientific concepts, that it's remarkable that I would grow so fond of it. If the X-Files were made in the 21st century, this is what it would probably look like.

The story goes of an FBI agent (Anna Torv) Olivia Dunham, who is hired into a secret branch of the FBI studying paranormal crimes. She recruits unwilling associate Peter Bishop (Joshua Jackson), to look after his father Walter Bishop (the great John Noble), a brilliant scientist who engaged in questionable research on human subjects but was eventually put away in a mental institute for 17 years on manslaughter charges.

The usual suspects are all there: evil corporation with questionable allegiances that has infiltrated the government, unwilling sidekicks, over-bearing, annoying and gung-ho bureaucrats who always get in the way, and a tough-guy boss who, at the end of the day, just wants to be hugged (the black Yul Brinner, Lance Reddick, playing Agent Phillip Boyles, Olivia Dunham's boss).

The Writing

Fringe is generally well-written. The pseudo-science explaining sequences where otherwise intelligent characters ask stupid questions for the benefit of the audience are a bit jarring, though. Peter Bishop, an engineer, really needs an FBI agent to explain to him what the Caesar cipher is? I don't think so!

But I appreciate why these sequences are there. People need to know.

The sweet spots of most writing, of course, is in everything that goes unwritten. The growing attraction between Olivia Dunham and Peter Bishop is, of course, very cliche, and like the Great Wall of China, could be seen from space.

The spin on the huge cliche that this show is so far, though, is John Noble (Walter Bishop). The character is a lunatic, nothing less, but an adorable one, and played by none other than John Noble.

The Actors

Did I mention I liked John Noble? John Noble could make Youtube comments sound like Shakespeare.

Peter Jackson, when he hired John Noble as Denethor, the mad Steward of Gondor in the Lord of the Rings, quantified why exactly he liked the man as an actor. Mr. Noble's background is in theatre, which is why we have been denied his presence on the silver screen until now. When he was auditioning for Denethor in the Lord of the Rings, Peter Jackson, Fran Walsh and Philippa Boyens immediately saw his insight into dialogue. He put inflections and emphasis in all the right places when saying his lines, and he was an immediate hire.

John Noble carries this show. Without him, Fringe would be just another pseudo science fiction television show. John Noble is the twist, and although he has the least screen time, second, perhaps, only to Kirk Acevedo (the muted Charles Francis, Olivia Dunham's loyal confidante, also the Man Who Forgot How To Smile, and an actor who I am very fond of because of his lovely portrayal of Joe Toye in Band of Brothers), he's the main attraction of this show, and the only reason why I will be coming back to it.

I don't know if this is a trend, but it's a trend that I'm very glad American tv producers are adopting. Senior, tent-pole actors in TV shows geared toward younger audiences. Battlestar Galactica had Edward James Olmos, and Dexter has James Remar.

Anna Torv, the actress playing the main character Olivia Dunham, is attractive without letting her good looks compromise her character's gravitas. The character has a soft, sympathetic streak to her, but is unrelenting in her pursuit, and unwavering in her ideals.

Let's put it this way: Olivia Dunham is the kind of girl that will fight her way out of an industrial complex after being kidnapped, drugged and operated on, but then cry about it for a bit.

Conclusion

Fringe is produced by JJ Abrams, the writer of the Bruce Willis extravaganza that was Armageddon, and producer of several other TV shows, most of which I haven't watched (Lost, Alias, and the upcoming Star Trek). I don't entirely trust Mr. Abrams, to be honest. Lost sounds like one of those TV shows producers just try to milk. Much like when I audibly groaned when I heard Prison Break went into a third season. Season 1 was excellent, but, hey. Prison Break is produced by Brett Rattner, the man who single-handedly desecrated X-Men.

But Fringe is a good show. It is excellent "filler" (TV shows which are entertaining, and possibly even touching, but ultimately hollow).

Within that category, Fringe is as good as it gets.

Labels

About Me

My photo
Singapore
I write essays in my spare time on things that are important to me. The ones that I feel are any good, or make any sense, I put them up here. :)