Hilarity Ensues A simple collection of Johnnie's musings about his life

h o m e

|

m y s o f t w a r e

|

a b o u t m e

|

c o n t a c t m e

last updated:June19

What's Your Beef With The Borg?
I knew a picture of the Queen would appear on my blog at some point. Lo and behold, today is that day. Why? The Borg, a race of relentless drones who subscribe to a centralized consciousness with a domineering agenda to sacrifice countless billions of individuals in the pursuit of collective perfection. Where can I sign up? No really, is there an online mailing list that I can subscribe to, or a toll-free phone number I can call, or do I fill out a detachable card in Perfection magazine and mail it to the hive mind or how does it work?

The Borg: where can I sign upfor perfection?

Joking aside, the Borg are badass. Terrifyingly adaptive, they show no fear. I think that their primary flaw is simply a matter of too much aggression. Not everybody's going to want to be assimilated. That's OK---they can go on living their small lives the way that they see fit. If they want to totally miss out on ever-improving approximations of perfection, then that's their loss: the Collective will roll on through the galaxy as it always has. Someone should explain this to the Queen. Plus, the Borg wouldn't keep attracting the attention of Captain Janeway and pals, who have managed to do some serious property damage over the years.

Despite their methods, I find the Borg cause to be a noble one: achieving perfection. Isn't this what we all want? To unleash our full potentials? To finally grasp a state wherein anything is possible at any time? Wherein we become anything we want to be? And seamlessly, without hesitation, without resistance? The perfect, dynamic system: a chameleon. Now, this post may be colored by my own interpretation of what I think perfection is, but I think the Borg and I share some commonalities in our views. The Borg can certainly go anywhere, anytime, as evidenced by their advanced drive technologies and hubs which allow their ships to travel among the quadrants of the galaxy in no time. As for becoming, the Borg are known for their incredible adaptivity. You think Plan A is going to work? You better have Plans B, C and D ready to go---the Borg are coming!

And so what if a couple billion have to give up their individuality to be assimilated into the Collective? Like Spock said, the sacrifices of the few (or one) are justified if it leads to betterment of the many. It's a good thing I've taken an Ethics course so I can instantly recognize this as utilitarianism, which enables us to cast aside one person's dignity to serve the wishes of others. Sounds great as long as you're one of the others. Sounds not so great if you're the one giving up your dignity for nothing in return. That the Collective is offering perfection, itself, upsets the scales of justice, however. Like Seven of Nine once told the Queen, if the Borg wouldn't come on so strong, then they might elicit some volunteers. Again I ask, where can I sign up?

My Twentyfourathon: 24 Hours Of 24
Kiefer Sutherland as Jack Bauer has got to be one of the best actors I've seen onscreen. Objectively, his character is certifiably insane: there is no way that a government agent could willingly contradict so many of his own protocols and get away with it without his peers giving him leeway cause he's crazy---in the same manner that you give excessively quiet people room to themselves because you don't know what's going on inside their heads. Subjectively, Jack Bauer, like Sugizo of Luna Sea, oozes awesome. What is it that Jack Bauer does best? Makes the tough judgment calls instantly, no matter whether someone has to die as a result or his decision threatens to irreparably damage relations with a foreign country.

Jack Bauer.Objectively: certifiable,subjectively: awesome.

What really amazes me about Bauer is his ability to then generate a believable rationale for his actions on the spot; in this way, he becomes the epitome of thinking on one's feet. Yeah, Jack may steal an innocent bystander's car, but it was all to chase down this rogue government agent or some suspect who's already detonated one device and plans to unleash four others. Why'd you need to so brutally torture that guy, Jack?Because I had no other choice, time's running out and all our other leads have yielded nothing. His talent to so clearly articulate the proper---the only---course of action is just so brilliant, so much like what I want to see in myself. Of course, I'm not sure that you can do this without being overbearing: can so intense a man still be moderate?

24 is a gruesome series: I believe Hurley from Lost described it best, "We're just...waiting for the next bad thing to happen." Spot on, Hurley, spot on. However, it is really compelling, which is why I've come up with the Twentyfourathon---watching an entire season of 24 over the course of two days, allowing for breaks and sleep and such. I'll watch an episode of season four (quick summary: the first female director of CTU leads her team to secure the country's nuclear power plants from simultaneous meltdowns), and then I'll come back here and post my reaction to that hour. I see the Twentyfourathon as an opportunity for personal growth: why will I pay attention to certain elements and not others, finding some pivotal and some not worth a mention?

I Wanna Be A JRocker When I Grow Up
Miyavi. Gackt. Tourbillon. Rentrer en Soi. Lunkhead. Why is it that I can instantly name more good Japanese standalones and bands than American ones? Why is it that my iPod Shuffle is basically owned by Japanese rock and pop and adorned by tracks created by non-Japanese artists who list such giants as Yoko Kanno and Nobuo Uematsu as inspirations? What is it about the Japanese sound, about the Japanese feel that's so attractive? So compelling? So addictive?

Sugizo of Luna Seaoozes awesome.

How could a nation ravaged by incredible wartime disaster nevertheless produce such beauty? It seems an unlikely dichotomy. Yet, look what I've done---without knowing it, I've assembled 32 songs by Japanese artists out of a total of 60 tracks on my iPod Shuffle. I admit, the majority of the time that I'm in the car, I'm lip synching or doing some infantile version of pop-n-lock to flavorful beats of Japanese origin. It's almost a spiritual experience: the soft, responsive voices of Lunkhead and Tourbillon's lead vocalists mixing with simple, distinct melodies in a way that just makes me want to cry tears of amazement. I wish I could sing like that!

Hence, I want to become a JRocker when I grow up. Not only would I have access to a surplus of women (what, I don't already?), but I'd spend my days creating beautiful things---songs, increasingly adept vocal cords, concentrating on fashion even moreso than I already do. Plus, I'd get to live among Asians, for whom I have an affinity since I seem to share their values and (OMG prepare yourself for a really advanced Psychology term) personal constructs, or the way that we categorize and store information which we perceive in our environment.

Since I *just* this morning completed a 7-page paper for one of my Psychology courses and I'm starting to have flashbacks, I'll refrain from explaining further except to give a single example. KevJumba, one of my favorite and sex-obsessed (maybe that's why he's among my favorite?) artists over at YouTube, described in one of his videos how Asian parents react differently than non-Asian parents to school grades. To Caucasian parents, an A is outstanding; to Asian parents, an A is just average, and a B is reason for alarm. Same here, guys, same here.

The Silence is Broken: I Buy an iPod
All my life, I have been a PC guy. And no, I'm not talking about political correctness, which I probably don't even need to observe seeing as I'm predominantly African American. But I digress. For as long as I can remember, there's always been a computer around, and that computer has never borne the ubiquitous Apple logo. For reasons I can't figure out, this mere absense of Apple products turned into disenchantment, and this disenchantment, coupled with the entry of a particular Macintosh-obsessed friend of mine, turned into me defending myself against the deplorable acts of an inferior company to promote its unfamiliar products. Yet, rooted deeply within my "PC's are better" tirade was a seed of curiosity---a sort of guilty pleasure in betraying the majority of my own ideas to side with a rebellious, seductive, Apple-centric line of thought.

This seed saw its opportunity to blossom---and it did, in a big way---just this month when I realized that I wanted a portable MP3 player.

No more would an immovable silence hold hostage those minutes that saw me stuck in traffic on the way to school or on the way back home. I wanted to listen to Tourbillon's Kiyuu, Origa's Rise and Sting's Never Coming Home, and I refused to be frustrated by a previous attempt to burn a music CD that ended up failing to work in the car's CD player. On the other hand, I'd never thought of myself as one of those trendy people with Macs and iPods and snazzy clothes and compelling lives full of adventure and excitement (I'm not sure of the degree to which Apple portrays its users as having all those qualities in the company's commercials). Nope, I was a run-of-the-mill computer nerd: using a PC to play games, do homework and complete other menial, unexciting tasks. Sorry, PC users. I generally think our lives kind of suck.

But music is beautiful, and I want to be beautiful and so I should listen to my beautiful music, right? I might as well listen to it beautifully: with an iPod Shuffle. Such was my unconscious decision at the Fry's Electronics superstore where I used to work as I interrogated one of the computer salespeople about the virtues of a device against which I had surprisingly little resistance. How do you get music from the computer onto the player? What's its battery life? What's your return policy on this? Oh, so overtly concerned with the technical details when, in fact, I surmise that I was just going through the motions of frugality to convince myself that choosing to buy it would be a sound decision. No, on some emotional level that I don't enjoy validating, I simply wanted it and was secretly delighted when the salesperson diverted my attention from a much cheaper model by another manufacturer to this shiny, silver object that seemed to increase the value of the dirt-cheap, plastic protective clamshell that it inhabited.

Indeed, our emotions drive our purchases.

But who can deny the impulses of a child who has grown up without access to the most hip accessories? I remember struggling to keep up with others' fast compies with my sluggish PC and 14.4K modem. I was never quite fast enough, and that had a lasting psychological impact. Coincidentally, we talked today about learned helplessness in one of the two psychology classes that I attend. This occurs when a person is exposed to uncontrollable events from which he cannot affect an escape. He learns that nothing he does to adapt to his situation improves his state, as there are no rewards for acting in one way versus another. A famous study put dogs in a harness so that they couldn't move and administered an electric shock to the bottom of their metallic cage. When the harness was removed---so that the dogs could escape the shock if they chose---they did nothing. They endured the shock and quietly whimpered. They chose not to move because they believed that there was no way to free themselves from that trap, even when a means to escape was given to them.

Now, I'm not saying that I'm using an iPod to fulfill a need to finally catch up with those other kids, but I might be using an iPod to fulfill a need to finally catch up with those other kids! I hadn't expected this to come out in a blog post, but I'm going to run with it anyway. I don't believe that my playing catch-up is a bad thing, here. I believe that we must reconcile ourselves with the past in order to meaningfully move into the future. It unsettles me to think that there are such powerful determinants of my own behavior that I'm not even fully aware of. But realizing these unconscious driving forces is the task of mapping out the interesting (and Apple-centric?) person that I believe myself to be.

Freud may have been correct in speculating that we do so much of what we do because we are strongly influenced by forces that are outside of our awareness. He also proposed that bringing unconscious information into consciousness is key to taking back control---as well as finally understanding what makes us tick. One thing is clear: I've taken back control of those interstitial moments where silence once reigned supreme. And, so far, I couldn't be happier for having done so.

I find really inspiring that a work I wrote seven years ago is still popular. According to my stats, the tutorial receives about 60 visitors a day, making it the most-trafficked web property I've had the privilege of managing. To its continued success!

Next, I plan to upgrade(EDIT: Mar 3) am upgrading (EDIT: Mar 6) have upgraded the tutorial to accept anonymous comments, though you may add your name, email address and (EDIT: Mar 12), possibly, a web address if you wish. The added anonymity is meant to be a feature to reduce the social stigma associated with making comments. I know I certainly appreciate having this ability on the sites to which I regularly post, and I'm curious to know if the overall level of honesty rises with this format---will I get more (constructive) criticism that I wouldn't have otherwise received?

In writing the software to enable comments on my blog, I've experienced, firsthand, the cruel dictator that is feature bloat. I'd originally planned to add comments in no more than one or two hours---my final analysis reveals that it took 3 days and 450 lines of code in 2 languages (Javascript and PHP) to pull it off! Why?

It looks pretty. I estimate that 40% of the code is graphics code. This covers not only how the comment form and rendered comments look, but also the slick XMLHTTPRequest/AJAXian process that lets you post a comment and see the result without refreshing the page. Oh, and then I thought it'd look really cool to have a Javascript-powered animation to show and hide the comment form.

It's functional. Looks aren't everything: you have to perform, too. Another 40% of the code does the heavy lifting by validating and sanitizing what you type into the form before inserting the data into the database. In fact, this is done twice---once in the client-side Javascript and again in the server-side PHP script---as a matter of proper programming practice.

It looks pretty (cont.) Let's see, so that leaves 20% of the code dedicated to support and (more) beautification. Extensive Javascript routines create the appearance of a smart form that:

disables and enables parts of itself based on whether you chose anonymity

counts down the number of characters you can type in realtime

disables itself when you submit a comment

tells you the status of your comment right on the submit button

...and so on.

There were setbacks during development. I grossly underestimated the prevalence of unforeseen (and inevitable) difficulty that arose during development. So what if my webhost disabled including PHP files by URL? Whoops, too bad that's a critical step in getting this to work! I caught myself thinking, "Just get it working" although I usually try to deeply understand the problems that I face.

With another edit, I added support for a rudimentary rating system to allow a user to include a numeric rating (0-5) with his comment. This doesn't really get interesting until you look at the average rating over all voters. I accomplish this by selecting all ratings from the database, summing them and dividing by the number of voters. Presto! - I have a rating system that I thought would take much longer to code than it did: about an hour.

In another hour, I added code to let a user enter his website address along with his comment. Since you can enter both an email and web address, or one without the other, or post anonymously and give neither at all, the corresponding display code becomes quite intricate. I ended up writing:

This is the PHP code responsible for the delightfully readable sentence, shown under the comment, that typically reads like "Posted March 12, 2008 1:19pm; email author, or visit author." But what if the user didn't provide an email address? or provided an email address but not a web address? or neither? How do you programmatically select from the four possibilities:

Posted March 12, 2008 1:19pm.

Posted March 12, 2008 1:19pm; email author.

Posted March 12, 2008 1:19pm; visit author.

Posted March 12, 2008 1:19pm; email author, or visit author.

Indeed, the devil is in the details of handling what punctuation to include (the connectingPhraseOne and connectingPhraseTwo variables, above) and which phrases to use (the byline, contactLink and visitLink variables). But why even bother with human-readable sentences? Because I believe that that extra bit of attention goes a long way in maximizing user-friendliness. And everybody likes user-friendly software---prove me wrong.

Then again, I may just like writing really complete software---code that does its job and then some. I wouldn't be surprised if this is my guiding philosophy in other areas of my life as well. You'd better go post a comment, because I think it looks too awesome to go to waste!

All Naired Up!
I just had an awesome experience with this product and felt compelled to share my impression of Nair. I'd gotten fed up with unwanted body hair on my legs that I felt made me look tacky in shorts, but I didn't want to spend the 1+ hour it would take to shave the region to my exacting standards. I knew about Nair from an experience I'd had with it previously, but I didn't remember how effective this stuff was.

IT'S EFFECTIVE.

Two applications later, there was no hair left on my calves, thighs, buttocks, lower back or armpits. And creating nice "borders" like you can by shaving is not only possible with the lotion, but works just as well or better than shaving.

Play Master of Orion 2 Without CD
If you've legally purchased a copy of MOO2 and want to avoid time-consuming disc spin-ups during the game, you can arrange for the game to run straight off your harddrive: no CD required. To do this:

Copy all files and folders from the MOO2 CD into any folder on your harddrive.

Open orioncd.ini located in the Microprose/Orion2 directory.

Replace the single line of text with a path to the folder containing all files and folders from the CD. Example: C:\Program Files\Microprose\Orion2\cdimage\ assuming you've created a cdimage subdirectory containing the files.