Sunday, December 31, 2006

A Year of Change

This year, if nothing else, has been one of change. In January, I was living in Melbourne, Florida working for a health insurance company. I knew full well that my job would probably be outsourced, or at the very least, reduced in scope but was determined to stick with it. In May, while at a particular low point with my job, I was given the opportunity to pursue my dream; to work in a big city doing software development using what I believe is the future of web application development. Less than two weeks after my interview, I was in Washington, D.C. building a health portal in Ruby on Rails.

The people in my life have also changed. For many of the friends I had in Melbourne, I no longer maintain much contact with them save for an occasional IM or email. But with others, the friendship has blossomed since my leaving and in at least one case, that person has also come to D.C. for economic opportunities, joining the other ex-Melbournites in the area.

But where I have lost friends as a result of my move, I have also gained many in the time since moving here. Work has been a great source of new friendships, one in particular which has blossomed into something unexpectedly beautiful. She has brought something into my life that I didn't think I was ready for, something which I needed more than I realized. I'm looking forward to what this year will bring for both of us.

As I walked down the jetway upon my arrival at Reagan, I realized that it was only six months ago that I left this exact same airport with aspirations of returning. I have, only this time from a place that I've always considered home. Now I have come to call this slice of urban jungle home and I feel more at home here than I ever have outside of California.

No doubt this year will bring more change, some bad and some good. But I will face it with the same tenacity, open-mindedness and positive attitude that I always have.

Monday, December 25, 2006

Blood diamonds and their impact on mainstream America

The latest cause célèbre seems to be blood diamonds. Conflict diamonds, as they are more commonly known, constitute only 1% of the total diamond trade but lately they have been making quite the splash in popular culture. They have been mentioned in media as disparate as Kanye West's song Diamonds from Sierra Leone to Nicholas Cage's movie Lord of War. But none of these works has addressed the issue as directly as Edward Zwick's latest film Blood Diamond.

The film starts out with our archetype hero, Danny Archer, plying his trade in conflict diamonds. Through a series of mishaps, he becomes entangled with a native by the name of Solomon Vandy, whom he agrees to help on condition that he gets access to the near perfect pink diamond that Vandy discovered while working in the slave labor mines of the RUF. Danny will end up using all his contacts and ingenuity to get what he wants but eventually, he does find the diamond.

Yet instead of leading to great wealth, this leads to personal tragedy, at least for Danny. The true hero of this story comes to be Vandy, who escapes to London and eventually gives a speech to the U.N. on the dangers of conflict diamonds. The movie ends on a hopeful note and yet I can't help but be reminded of how similarly themed features were popular in the early 1990s.

At the time, the shrinking rain forest was a global concern and attracted a large amount of attention as a result. Various celebrities spoke out about the issue and some even made movies about it. Yet it hasn't been on the radar of the public for at least a decade. Recent articles suggest that the Amazon is disappearing at twice the rate as previously estimated. Being the perpetual optimist, I can only hope that the issue of blood diamonds is resolved rather than forgotten about as other important global issues have been.

Sunday, December 10, 2006

A Tenacious D weekend

With my company's product growing closer to launch, I was busier than ever the first full week of December. When Saturday finally came, it was a welcome relief from the hustle and bustle of writing and testing code. This weekend was especially anticipated because it was set to be a Tenacious D weekend.

I don't consider myself a fan of the D but not because I don't like their music. In fact, I think it's great stuff but I've just never taken the time to listen to much more than what my friends have recommended. The first time I heard about their new song "Pick of Destiny" was on Sirius Alt Nation, which has been playing it seemingly non-stop for the past month in anticipation of the movie by the same title. When my friend Beth said she was getting tickets for their upcoming concert show at the GMU Patriot Center, I made sure to get my name in. She took it even further by organizing an outing on Saturday to go see the movie.

Despite being nearly 40 minutes late to the theater, I walked in right when the film started thanks to a series of delays on the part of the projectionist. I went into the movie with no expectations whatsoever and came out with a much greater understanding of what the D is about. The rock opera, for lack of a better term, is a fictional retelling of how Jack Black and Kyle Gass met, formed the band and eventually did battle with Satan. It had its share of laughs and featured cameos by the likes of Ben Stiller, Tim Robbins and several others.

The next night we continued our Tenacious D experience. First stop was Beth's new place in Alexandria which she shared with a roommate. This roommate has a fridge literally stocked to the brim with beer and a stand-up arcade machine with every awesome game on it from 1980 to the early 1990s. We whittled away the time drinking and playing video games from our childhood.

At about 7pm, we headed on over to the Patriot Center and got there just in time for the start of the opening act. It was Neil Hamburger, a somewhat well-known comic who goes for laughs in a roundabout way. Essentially, he told really bad jokes while loudly clearing his throat between each telling. This one was a real gem:
Why did the Taliban burn 200 copies of Pink Floyd's Dark Side of the Moon album? Well, because their music sucked.
Ha ha! I consider myself a Pink Floyd fan and even I thought that was funny. Maybe it was the beer. Oh well, he wasn't on stage much more than 20 minutes and then the real act began.

Jack Black and Kyle Gass appeared with a couch behind them, acting for all the world as if they were in their living room. They played a few sets until quite accidentally, they were electrocuted and woke up to found themselves in the pits of hell. Once there, they decided to make the best of their situation and gather the most awesome band members they could. They went with the Antichrist, Charlie Chaplin and Colonel Sanders, all of whom were available and willing to play with them. Together they rocked the house, did battle with Satan and made prolific use of the F word. In a sense, the concert was a live version of their movie, albeit with less special effects.

Their encore performance included songs off their previous CD plus some covers of songs from The Who. In fact, the very last song they played was "Listening to you" off the Tommy album. Perhaps these musical geniuses were paying homage to the masterpiece that gave birth to the rock opera genre. Whatever their motives, it was an incredible concert that has left an indelible imprint on me.

Tuesday, November 28, 2006

Mario's last day at work

When I first started at my current company, I was placed in the Ruby group working on community-oriented features. At that time we were a mishmash of Ruby, Java and Python but eventually the scope was reduced such that Java was nearly taken out of the picture all together. As a result, many of the Java programmers found themselves without much work to do and so they picked up a Ruby book and started reading.

Within a few weeks they were all up to speed and cranking out code. Slowly, we stopped seeing each other as Ruby vs. Java and begin to identify instead with the product we were working on. Old alliances gave way to new ones and people who I had once thought of as hostile seemed much more amicable.

It's a me, Mario!One of these formerly hostile types was a guy named Mario. His height and booming voice combined to make him stand out in our colorless cube farm. He also had a strange occupation with a place called Java Green where he went everyday for lunch and returned boasting of their tofu chicken and rice bowl. I eventually accompanied him on one of these outings and offered him my advice on which Ruby book was best for a beginner with lots of Java experience.

That was nearly three months ago and in the time since we've become great friends. From late nights at work writing "f'ing migrations", as he so eloquently put it, to clubbing at 1223 across the street, we've certainly had an interesting past couple of months. And despite that his new job is way out in the 'burbs, I am confident that we will remain great friends.

Mario, you will be missed.

Tuesday, November 14, 2006

Hustle and bustle

Last week was quite busy for me so let me see if I can provide a quick rundown. Monday I think was my only down day, if you could apply such a label to a day that starts at 7am and ends somewhere around 12am. The next morning I was up bright and early to go vote for progressive change at the ballot box. Though I was dismayed to see the amendment banning gay marriage pass, I was pleasantly surprised to see that Jim Webb, a Democrat, would be Virgnia's newest Senator. He has an excellent record and I think he'll represent us well.

Death Cab for Cutie at DAR Constitution HallTuesday evening I went see Death Cab for Cutie at DAR Constitution Hall. I didn't know very many of their songs aside from what I'd heard on Alt Nation but it was a pretty good concert regardless. Afterwards, while walking to the Archives metro stop, I spoke to my parents on my cell phone and learned of the Democrats impending victory just as I was passing by the White House. This caused me to make an impromptu demonstration right there, in the general direction of the west wing. It was a small "gesture", most likely noticed by no one, but it felt good nonetheless.

Sean and JayashriWednesday looked to be winding down to a calm evening until Sanjeev, the recruiter that brought me to my current company and in general a cool guy to hang out with, invited me to a happy hour at Science Club just down the street. I figured I could go there for a few beers keeping in mind that I had a dentist appointment early the next morning. I ended up staying a bit later and having a really great time as many of the faces there were familiar. Jayashri was there too which was awesome since she lives all the way up in Columbia.

Finally, the day I had been dreading arrived. Two weeks previous, I had gone into the dentist for a routine cleaning only to find out that I had a slight case of gingivitis on my back molars. Now don't panic people, it's actually more common than you think. Probably even more so for those of us with less-than-stellar dentists who never alerted us to the issue. Fortunately, I'm with a great dentist now although I wasn't heaping such praise on them while they did what's called a "deep cleaning" on my gums. The local anesthesia helped but the best solution would have been a better brushing regimen so that I could have avoided the entire issue. So remember kids, don't forget to floss!

Any free time I had this past week was spent playing with my newest toy, a MacBook Pro. That's right, I've opted to convert to the "other" platform and I am not looking back. After hearing that such Ruby luminaries like DHH himself used a Mac and seeing so many of my co-workers using them, I decided to take the plunge. I'll write a full length article on it sometime in the next few weeks. For now, rest assured that this platform is absolutely amazing to work with for both development and daily computer use.

This week is looking to be just as hectic, though hopefully less painful, than last week. I just got back from seeing my buddy Steve out in Fairfax where he's staying for the next few days while he's in town for work. Tomorrow I'll be taking in an opera and Thursday through Sunday is booked solid with various dinner parties and get togethers. After that it's Thanksgiving and then onto December!

Sunday, November 05, 2006

How to throw a Guy Fawkes party

Remember, remember the fifth of November
The Gunpowder, Treason and Plot.
I see no reason why the gunpowder treason

should ever be forgot.


401 years ago, a group of conspirators attempted to blow up the English parliament. Their demolitions expert, a man by the name of Guy Fawkes, was caught with several barrels of explosives beneath the building, ready to set them off. From there the entire conspiracy fell apart with most of the participants being hanged, including Guy Fawkes. I first read of the event on Wikipedia a few years ago but it wasn't until I saw V for Vendetta that I was inspired to do more.

Kidney, it's what's for dinner!By more, I don't mean anything political of course but instead something more celebratory. In this case, a dinner party. I prepared five separate courses and invited a gaggle of friends over. Authentic English beer in the form of Guinness and Boddington's Pub ale were made available. I had also planned on us watching the aforementioned movie but time constraints on a Sunday evening meant everybody leaving by about 9:30pm.
  1. Welsh rabbit
  2. Cornish pasty
  3. Steak and kidney pie
  4. Veggie bangers
  5. Old-fashioned carrot pudding
Shayan looking satiatedThe courses listed above all turned out great and I ended up with tons of leftovers. It was my first time cooking authentic English meals and as one of my friends so assiduously put it, the food was 'quite dense'. Unfortunately some of the other things that go along with the celebration, such as fireworks and the burning of a Guy Fawkes effigy, were not possible due to local ordinances. But we had a great time nonetheless and I'm looking forward to doing it again next year.

Monday, October 23, 2006

The Drunk Train

I've boasted before of being on the last train back to Virginia but in fact I was probably a good one or two trains ahead of the last one. But this past Saturday (or very early Sunday morning, depending on how you look at it) I truly was on the last one. I was out with a friend in Adams Morgan that night and while tucked away on a couch at Tryst, I suddenly realized what time it was and that we had to get back to the Metro ASAP lest we be at the mercy of the DC cab driver.

We got to the Dupont Circle station with only four minutes to spare before the next red line train, which would only take me as far as Metro Center. I wasn't even sure if there would be one waiting there to take me back to Crystal City. But as I stepped onto the train and waved goodbye to my friend on the opposite platform, I realized that I had stepped into a different world.

The Drunk TrainNow my time on the Metro is typically spent in either quiet solitude reading or conversing with my friends at a subdued volume level. By contrast, this train had the noise level of a rock concert. Just as many people were standing as were sitting, each yelling to be overhead above the din. Some were even doing shots which got whoops of encouragement and rounds of applause from the other passengers. I could not believe my eyes as I had finally arrived at the place I'd only heard about in legend: The Drunk Train.

Like freedom, The Drunk Train is more of an idea than an actual thing. It almost always inhabits the last train of the night and moves from line to line depending on where the crowd goes. Fortunately, the majority of them were heading towards Virginia and so at Metro Center we all got onto the orange line to continue the debauchery. The thick wall that city dwellers typically erect around themselves during normal hours had been breached by booze making conversation plentiful and enjoyable.

I didn't get back to my apartment until almost 3:30am thanks to delays and transfers but quite honestly I didn't care. I had such a great time just talking to people and getting to know them that I could definitely see myself doing it again. The Drunk Train is something that everybody should do at least once in their lifetime.

Sunday, October 15, 2006

Capping off a great week

So this week actually went pretty well. Work was a bit exhausing but the grind was interrupted on Tuesday when my co-worker Georgios suggested we hit Front Page just up the street after work. My friend Reshma had texted me just shortly beforehand curious if I was up for Gazuza, which of course I always am. So after about an hour at Front Page, Georgios and I headed over to Gazuza.

Reshma at GazuzaWe had a great time there although we had somewhat of a strange conversation. Somehow we got on the topic of Freemasons, secret societies and their influence on Washington, D.C. Needless to say, several hours passed seemingly in the blink of an eye and before I knew it, I had to run so I could catch the last Metro back to Virginia. I woke up the next morning tired and bleary-eyed but not at all guilty about partying mid-week.

Georgios at GazuzaFriday started out in Alexandria with my friend Chelcia. We wandered around the King Street area but not for long as it was too cold out for these two recent Floridian transplants. She had to work early the next morning so we made our goodbyes at around 10pm whereupon I raced into the district to meet up with Georgios. He had been saving a parking spot for me near his place, literally fending off other potential parkers with the wild waving of his arms. After getting the parking situation settled, we headed off to McFadden's where we met up with Michael and had an absolute blast.

Saturday began at Rio Grande in Clarendon with Mike (not the same Michael previously mentioned) and his girlfriend Jocelyn. After a few margaritas, we took the Metro into DC to meet up with Greg, Teresa and her friends at Brickskeller. This is the place that has a thousand different types of beer yet that night I was in the mood for some Unibroue. I started off with a Maudite and then tried their Don De Dieu before moving onto some of their other products. I love high-alcohol content beers and Unibroue is especially talented at making them.

We ended Saturday night at Julia's Empenadas at around 1:30am where everybody scarfed down on the warm and tasty puff pastries. It seems that every week here in DC, no matter how planned it may seem at the outset, ends up completely different than how I envisioned. Yet my penchant for meticulous planning seems to not mind the random bar outings and meetups. In fact, it is the randomness that I have come to rely on for my nightlife.

Sunday, October 08, 2006

Tanqueray Rangpur

I first started drinking gin about six years ago while at Purdue. My friend Brent introduced me to it and we quickly went through an assortment of brands before finally settling on our top three. These were Bombay Sapphire, Tanqueray and Citadel, all of them excellent gins. Over the years I eventually came to drinking just Bombay Sapphire while occasionally dabbling in other brands such as Tower of London.

But earlier this month it came to my knowledge that Tanqueray was releasing a new variant of their world-famous gin and only in Washington, DC with select areas in Maryland and Delaware. It was a sign from God if I'd ever seen one. So last week on my way home from work, I stopped by the liquor store across the street from my metro stop in the District and picked up a bottle. It was only $22 for a 750ml, comparable to my regular Bombay Sapphire, and as for the taste, well read on.

Gin truly is an acquired taste. Many of my friends have compared it to mouth wash, pine needles or jet fuel, all of them apt descriptions if you're not a fan of the stuff. And even for us connoisseurs, drinking it with tonic is seen as the best way to casually enjoy it. But Tanqueray Rangpur is different. Following the advice of a local blogger, I poured it straight over ice. The taste was much lighter than what I expected. I'd never had a Rangpur lime before but I imagine their complimentary flavors to gin was discovered early on. The whiff of botanicals was there but not nearly as strong as expected. Tastewise it was very smooth yet retained the characteristics of its worldly heritage.

Already my life has been subtly altered by the discovery of this new gin. While hanging out at a bar in Clarendon the other night I caught myself asking for a Tanqueray Rangpur straight up, momentarily forgetting that it was available only in DC until February of next year when it goes into general release. I, for one, will be counting down the days.

Friday, September 29, 2006

Dad at Fogo de Chão

What started out as a promising week work-wise turned sour Monday evening when I had to stay until 8pm to help fix a bug. It wasn't a huge deal really but I don't like to leave a situation unresolved, even if I'm not the cause of it. I put in some long hours Tuesday as well but Wednesday I made a point of leaving early, around 5:30pm, so I could go meet my Dad for dinner.

He was in town for work so along with a co-worker of his named Ken, we met up at McCormick & Schmick's in Crystal City for drinks. I was thinking we could just do dinner in the Arlington area but Ken had heard about a Brazilian restaurant in DC that he wanted to try. Right away I knew what he was talking about: the famous rodizio Fogo de Chão on Pennsylvania Avenue. I'd actually been there before back in February when I was visiting the area and was quite fond of their authentic selection despite the lack of chicken hearts.

Rather than hop back on the Metro, we got in the Audi and headed over there where we spent a good 10 minutes looking for parking before finally giving up and just paying for a garage. The meal we had was truly sumptuous, fit for a king really. My Portuguese was a bit rusty but I managed to order a few things in the native tongue including one of the best caipivodkas I've ever had.

Dinner was followed by a quick tour of northwest DC and a discussion about why there were so many cops on Connecticut Avenue and 17th Street. My theory was that this was the route intended to take either Hamid Karzai or Perez Musharraf (or both) back to their residences as they were dining at the White House that night. We didn't stick around long enough to find out.

Though I was sad to see my Dad off at his hotel, I was also happy that I got to see him at all. Living so far away from California, it's not often that I get to see friends and family from home. This Christmas will mark the first time in a year that I've been back and I'm looking forward to it with great fanfare.

Sunday, September 24, 2006

The Virgin Music Fest

On Saturday, my friends Reshma, Shayan, Faheem and myself drove up to Pimlico field outside Baltimore, Maryland to attend the 1st annual Virgin Music Fest. We met up with another cohort upon arrival, Seema, who came in from New York, and made our way to the event. The venue was divided into three areas with the well-known acts happening at the Grandstand stage at one end and lesser known acts appearing at the Clubhouse stage on the other side of the track. A large tent called the Darkhouse Dance tent played host to various DJs while a smaller tent called the Freaklounge had a running show of sideshow-esque acts throughout the day.

Lead singer of WolfmotherOur first event was Wolfmother which came on the Grandstand stage at 1pm. I'd heard their song Woman a number of times on Octane but not much else. They were actually quite good and their hard rocking chords evoked a late 70s, perhaps early 80s metal sound. But we couldn't stay too long as Reshma wanted to go check out The New Pornographers on the Clubhouse stage. A fairly large band at eight members, they put on a great show and definitely got me intrigued in their particular style.

Cee-Lo in a metal breastplateThe next two acts we saw were the Raconteurs and Clap Your Hands Say Yeah, both on opposite stages. I honestly lost count of how many times we went back and forth. It seemed that near the end of every show there was a great exodus to the other side of the field, followed by a reversal not long after. Anyways, the next band to come on the Grandstand stage was Gnarls Barkley and they were just amazing. Apparently they have a new theme for every show and this one was Chariots of Fire so they dressed appropriately in Roman-esque garb. They played a ton of great material and closed on Crazy, an absolutely fantastic song to hear live.

The Killers during their final songThe Brazilian Girls were the next to appear on the smaller Clubhouse stage. Shayan is a big fan of theirs and he was bowled over by their performance. Contrary to their name, none of the members are Brazilian and only one, the lead singer, is a girl. During the performance, she had this white latex mask on and would apply make-up to it between songs. I only stayed for a few songs before heading over to see The Killers on the main stage. Now I'd been looking forward to this as they were played frequently on both Octane and Alt Nation. They played all the big hits from their first album like Somebody Told me and Mr. Brightside and even included songs from their upcoming one, most notably Bones. These guys were amazing and I would definitely pay to see them again live.

Roger Daltrey on vocalsAt this point, we headed back towards the smaller stage to see Thievery Corporation. After about 20 minutes there, Seema said that she wanted to go see The Who. Nobody else seemed interested so the two of us headed back to the big stage. We got there just in time to see Roger Daltrey and Pete Townshend, the only remaining original members of The Who, plus a bassist, keyboarder and drummer put on what I can only describe as the greatest rock show I've ever seen. I'm a big fan of the group but nothing could have prepared me for this performance.

Pete Townshend about to do his famous windmillThe vocals from both Daltrey and Townshend were spot-on and whenever Townshend did his famous "windmill" on the guitar, the crowd went nuts. I found it gratifying that the same band my Dad was such a big fan of could still rock the hell out of a venue like this one. People young and old, myself and Seema included, were screaming at the top of their lungs. Baba O'Riley, Behind Blue Eyes and My Generation were just a few of the hits that they played. I'd been hoping for something from Tommy so when I heard the opening notes to Pinball Wizard I thought I was going to lose it. They closed the show on Listening to You/See Me, a truly mesmerizing performance.

Flea from the Red Hot Chili PeppersThe Red Hot Chili Peppers came on at 8:30pm and, including their encore performance, rocked the crowd for nearly two hours. They played a good number of hits, most of them from Californication and By the Way. The only disappointment was that they didn't play Under the Bridge. Otherwise though it was a great show and definitely a great closer to what was a top-notch music festival. This was the 1st one in the US but I hope Virgin continues to bring this great event stateside year after year.

Thursday, September 21, 2006

Frankenstein

Tonight my cousin Katy and I had the pleasure of watching Frankenstein on stage at the Kennedy Center. This interpretation wavered little from the original and the set itself was very minimal. A large chain-like mesh hanging from a drop and a small raised platform, both of which were far upstage, were the only permanent fixtures on the simple black setting. With the exception of the occasional prop that was rolled out, this left nearly the entire area open for the actors to perform. Dry ice was also put to heavy use.

The story starts out in the far north aboard Captain Walton's ship, beleagured by ice floes. Sighting a distant figure, he sends out a party to investigate and they return with Victor Frankenstein. The rescued man proceeds to tell the story of his fascination with medieval alchemy and how it led to the realization that he could apply his knowledge to create life from death. The resultant monster kills his mentor, Professor Waldman, and goes on a rampage through the town before finally making his way to Victor's home in Geneva, Switzerland. He then kills Victor's closest friends and family after having been refused by Victor the creation of a synthetic companion.

At this point, Victor gives chase eventually ending up on the same ice floes as the captain's ship. Shortly after retelling his tale, Victor dies of exhaustion and the creature, having lost his only connection to the world, recovers the body. The captain takes this as an omen and sets sail for home. The last thing the sailors see as they depart the forbidding waters is the creature mourning over the loss of his creator.

The acting was absolutely top-notch. Dan Istrate seemed born for the part of Victor Frankenstein. The energy he brought to the stage plus his haunting features created a performance matched only by his co-star, Irakli Kavsadze, who played the creature. Irakli's hulking appearance and heavy makeup didn't dull his obvious talent and stage presence. The only issue I might mention are the slow-motion bits, especially during the fight scenes, which seemed somewhat contrived. Otherwise, this was an awesome performance that I would highly recommend.

Tuesday, September 19, 2006

The beauty of Suse with XGL

From the day I got my first company computer, I've always wanted the ability to put whatever OS I choose onto it. Naturally, certain elements within the IT department made it their goal in life to thwart such efforts in favor of uniformity. So when I started work at my current company, I was surprised to find out that I could install any OS I wanted though my PC came pre-installed with Windows XP.

Being a big fan of Suse, I immediately installed 10.1 in a dual-boot configuration but that was the extent of my efforts. By the end of my second day, I was already assigned a large task with a quickly approaching deadline and I simply didn't have the time to set up Suse the way I wanted. And so it languished like that for a few months until recently when it became imperative that I switch to a non-Windows OS.

The trepidation I had felt at having to setup my Linux environment dissapated as I rediscovered just how enjoyable it was to be using an industrial-strength OS again. Additionally, I became more productive thanks to quicker build times and a programmer-friendly interface. But not settling for just the basic setup, I went further and begin installing what could only be deemed as frivolous, though not unnecessary in my opinion.

MPlayer was one of the first optional components to get setup, quickly followed by Plugger and a few other goodies so that I could listen to Sirius. To complement my listening selection, I also downloaded Amarok thus enabling me to enjoy my personal music collection. So that I could make the most of my video card, I compiled the ATI drivers and setup a wicked screen saver. I even installed Google Earth so I could take full advantage of my newly enabled 3D effects.

Desktops can be switched between with easeBut by far the coolest thing I installed was XGL. I had made a half-hearted attempt about a week ago at installing it but it wasn't until I walked in this morning and saw my co-worker Grant running it that I finally decided to 'git er done'. Knowing that he was running Gentoo, I figured it had to be much easier in Suse and indeed it was. After about 30 minutes of downloading packages and reading various docs, I finally had it up and running although it took another hour of configuration before I was truly pleased with the results.

Note the transparency on the chat windowHaving used XGL for only about half a day, I can honestly say that it is quite possibly one of the coolest desktop experiences ever. Even my co-workers using Aqua on their Macs were impressed and made a point to stop by and check out what a true 3D desktop looked like. Back here at home, being on a standard '2D' desktop, I feel a bit constrained. So I think I'll sign off on this entry and go install XGL.

Friday, September 08, 2006

Teaching Ruby on Rails

Despite nearly a year of programming with the Ruby on Rails framework, teaching the subject is quite a different beast. A few months ago I mentioned Ruby on Rails (RoR from here on) to my cousin who then mentioned it to her boss that runs a training center in Columbia, Maryland. The more he read about it, the more excited he became about its potential growth. By this time I had moved to the DC area and was just an hour's drive away so it wasn't too long before I got a phone call inviting me to talk to him about RoR.

Now understand that I am very passionate about programming in RoR, even to the point of being evangelical about it. Michael, who runs the training center, has a background in programming and he immediately latched onto the power of a dynamically-typed, very expressive language such as Ruby. The presence of the Rails web framework, which makes J2EE look like a Model T, was an added bonus.

My lesson plan was centered around a two-hour presentation split between Ruby and Rails. For the Ruby half, I used Pickaxe as my template. It's such a well-organized book in how it teaches the Ruby language. Yet translating that into a one-hour class gave me cause to worry for the entire week leading up to the session. Eventually I settled on a "write as you speak" approach. Seeing as I'm a better programmer than public speaker, I wrote a small application that hit on all the major points of the Ruby language and printed out the code as a reference. Then over the course of the first hour, I rewrote the program from scratch stopping to answer questions or to highlight anything that wasn't immediately clear.

The second half of the lesson centered around Rails though after a small break I had only 45 minutes left. I must point out here that even though an intimate knowledge of Ruby is not required for developing applications in Rails, on a personal level I think it helps immensely, especially if you need to roll your own plugins. But with less than an hour to show off the power of Rails, I decided to go with a simple CRUD application relying mostly on scaffolding to generate the controller and views.

I got the feeling that the audience came from a Java background and that the Rails portion of the class was really what they came for. So after creating my basic application, I opened it up to questions and boy did they have questions! They ran the full gamut and consisted of things like "How do layouts work?" all the way to "Is Rails ready for the enterprise world?" (such a loaded question coming from a Java programmer!).

All in all, it was a great experience and looking back it's strange to think why I was so nervous. Within a few minutes of the class starting I settled into a routine and when it was over it was difficult to imagine that those two hours had flown by so quickly. I look forward not only to continuing to evangelize RoR but to teach it as well if given another opportunity.

Saturday, September 02, 2006

An interesting night in DC

Sean, Katy and JeffLate last night (or early morning, depending on how you look at it) my buddy Jeff arrived in Washington, DC. We met back in high school and have been friends ever since. Considering the late arrival of his flight, we had somewhat of a late start on the day and didn't get to the American History museum until 11:15am on Friday morning. There we met my cousin Katy and we explored the America on the Move exhibit. We also stood in awe of the American flag which had been draped over the Pentagon immediately following the attacks of 9/11.

Afterwards we headed over to the Holocaust Memorial Museum. This was by far one of the best museums I have visited yet in DC. From the very beginning, you are made to feel as if you are in Dachau or one of the other hellish concentration camps located throughout WWII-era Germany. In addition, the cruelty and pure evil that pervaded that time truly came to life through photographs and other media presentations.

Having decided that Jeff needed to experience some more positive parts of DC, I figured that Les Halles would be the best place to show off the city. We had an awesome lunch that left me postively stuffed. After experiencing some nasty delays on the Metro, we finally saw my cousin Katy off at the Rosslyn station and headed back to my place in Crystal City to prepare for that evening.

Sally, Sean and JeffAt around 9:30pm we met up with Sally, a fellow graduate of Carlsbad High School that Jeff knew through friends, in Dupont circle. We began the evening at Gazuza, a favorite of mine known for its excellent drinks and hookahs. After a few hours the conversation turned intellectual and it was then that we decided to go to Kramer's, one of the most well-known bookshops in the area that also happened to have a full service bar. After a few more hours there, we were ready to head home on the Metro.

Metro surfingIt was here that the night took a most interesting turn. While Jeff and Sally were firmly planted in their seats, I was indulging in an activity called 'Metro Surfing' which essentially involves trying to stay upright on the Metro without benefit of handholds. It's more difficult than it sounds, especially when drunk. Little did I know that a small man sitting nearby was taking notice.

Now I'm not sure what set this individual off but when he moved to exit the Metro at Rosslyn station, he suddenly turned to look at me and assaulted me with every verbal invective known to Man. Most of it involved the words queer, faggot and homo. My inquiries as to why he was so angry at me invited only more hate speech. After 30 seconds of this, I suddenly came to feel very sorry for this person. My initial anger turned to a light-hearted form of sympathy and I began to taunt him, definitely not one of my brighter moves. I asked him where his local Klan meeting was and and told him that I consistently voted Democrat which only seemed to agitate him more. Eventually Sally made it clear that she did not feel comfortable with the situation so I shut my mouth until he stepped off the Metro, the doors closed and we continued on our way.

When I was in the Holocaust museum earlier that day, it was difficult to understand how someone could hate someone else so much without knowing that person. Tonight on the Metro, that exact kind of hatred was directed at me. This person was obviously a small-minded and deranged individual but he is not the only one. We must always be aware of people of like this and realize that it can spring up in even the most diverse and tolerant of places.

Monday, August 28, 2006

Cold brewed coffee

For over a thousand years, coffee has been the beverage of choice to countless millions for getting a start on the day. Brazilians love their coffee so much that the term for breakfast there is café da manhã, literally translated as coffee of the morning. The method of brewing coffee has changed only slightly in the past millennium and remains much the same across cultures: steep the beans in hot water to extract their caffeine and flavor.

That changed in 1964 when a graduate student by the name of Todd Simpson developed a method of cold brewing coffee. He went on to develop the Toddy Coffee Maker which at its core is a gravity-fed brewing system. The resultant coffee is much more potent than a normal brew and has nearly 70% less acidity.

My inspiration for trying this method of brewing was my co-worker and friend Lizz. She swears by her Toddy but I wasn't prepared to drop $40 on it and besides, as Alton Brown is fond of saying, there should be only one device in your kitchen that has a single use and that's the fire extinguisher. Determined to find an alternate means of brewing this wonderful concoction, I came up with the method described below. You will need some tools first.
  1. French press with at least an 8-cup capacity.
  2. A strong or medium whole-bean coffee. I used a Columbian blend from Starbucks.
  3. A coffee grinder.
  4. Coffee filters.
  5. Frother (optional)
  6. Purified water (optional)
Fill the grinder with a cup of beans and set it to espresso fine. Pour the resultant powder into the French press and fill it with cold or room-temperature water, preferably purified. Cover the top with Saran wrap and put it in the fridge for 10-12 hours. For the first few hours I used my hand-held frother to keep the grounds from getting too coagulated. When ready, take the French press out of the fridge, and affix at least 2 coffee filters to the reusable metal filter. Slowly push down on the plunger. Due to the amount of grounds, it will probably take up to a minute to push it down completely. Slow is key here.

The resultant coffee will have a higher caffeine content and so it is recommended that you mix at least 1 part coffee with 3 parts cream such as milk or my personal favorite, soy. With just a dash of your favorite flavored syrup you will have a concoction that is on par with what your barista can make. Also, you can store this coffee for much longer so long as you keep it in the fridge. I used a glass container to avoid it picking up any plastic taste.

In my opinion the results have been stellar. My two to three cup per day habit is now just one. And to say nothing of the flavor which is just amazing. I'm looking forward to experimenting not only with its preparation but with its use as well. Coffee martinis anyone?

Monday, August 21, 2006

What a week!

Steve!Last week started out innocently enough but by the time all was said and done, I didn't get home before 10pm one single night. On Monday, my buddy Steve from Melbourne flew up on business. Though he was a good hour away in Chantilly, I was more than happy to drive out and meet him. It was my first time since moving to Arlington being out that far and quite honestly, it was a bit strange being out in the 'burbs again. Nevertheless, we met up for beer, football and trivia at a local sports bar and had a great time catching up.

Cousin BruceTuesday night I went out with my cousin Bruce. With his Australian accent and effervescent personality, he's always the life of the party at family get-togethers so I knew we'd have a blast. Our first stop was Oyamel, this great Mexican fusion place nearby my apartment where we had margaritas. Next up was McCormick & Schmick's, an awesome seafood restaurant down the block. After downing a bottle of Chardonnay, slurping raw oysters from their shell and basically stuffing our gullets, we meandered back to my place and crashed for the night.

The appetizer at Dupont GrilleNow I headed into Wednesday fully expecting to get home by a normal time but instead found myself out with co-workers at Brickskellers until much later sharing the day's events over good beer. I might also add that nearly every lunch this week was spent out at a various restaurant enjoying what's known as Restaurant Week. For only $20.06 ($30.06 for dinner) you got a world-class 3-course meal with all the fixings.

Thursday evening, while working late and looking forward to a relaxing night at home, I received a phone call from my buddy Shayan. A spot had opened up on his reservation at Charlie Palmer and did I want to go? Needless to say I jumped at the opportunity. Only steps from the Capitol building and boasting an elegance that puts some of my past experience at high-end restaurants to shame, this was hands-down my favorite Restaurant Week spot. We even ordered a bottle of a pinot noir from Mark West Winery which went quite well with my Angus sirloin.

Drinks and hookah at GazuzaOn Friday my buddy Mike decided to come into the District to party. We started out at Raku in Dupont Circle, just a few blocks away from my work, where we ordered a seemingly endless number of Asian-inspired tapas before heading off to Lauriol Plaza for pitcher fulls of maragaritas. After an hour or so there we headed back into the circle to meet up with friends at Gazuza for drinks and hookah. I definitely didn't get home that night before 10pm.

This week will be comatose by comparison by that's quite alright with me.

Friday, August 11, 2006

A Friday night tour of DC

For the first time in weeks I didn't have a plan in place for Friday night. This is most likely due to the fact that I have been sequestered in a basement for the past four days working 12 hours at a time. It's been crazy busy but the company catered all our meals and today our efforts paid off. Everybody was pretty tired though afterwards and left for home which left me wondering what to do tonight.

Rather than go through my phone list to see what people were up to, I instead decided to take the night off from partying and do that nighttime walk that I'd promised myself. I was not to be disappointed. I started in Dupont Circle and headed south on 18th until I hit Constitution Avenue, essentially the north side of the National Mall. Along the way I snapped a picture of the Octagon House, one of the stranger architectural icons of DC. I then headed west until I found a path leading into the park and followed that.

Unknowingly, this path led straight to the Vietnam Veterans Memorial Wall. It was truly awesome to come around the corner and see that stone structure etched with the names of so many fallen soldiers. From there I headed up to the Lincoln Memorial all the while looking over my shoulder at the beautiful panorama displayed with the Washington Monument juxtapositioned in front of the Capitol building.

The Lincoln Memorial was a very impressive site. Its white exterior, made from Indiana limestone and Colorado Yule marble, shines spectacularly under the blazing lights. Inside, the mood is decidedly somber. There were a large number of tourists there tonight but they spoke mostly in hushed tones, reading the inscriptions on the wall or simply looking at the gargantuan-sized image of Lincoln.

My walk from the far end of the mall to L'Enfant Plaza to catch the Yellow Line was no less impressive. I had the opportunity to stop by the Korean War Memorial which is haunting in its imagery. After making my way to Independence on the south side of the mall, I headed east until I hit 7th street about 12 blocks distant. A short Metro ride later I was back home in Arlington.

Tuesday, August 01, 2006

Screen on the Green

On Monday evening I went with friends to an event called Screen on the Green. For the past eight years, movies have been shown on a huge screen at the National Mall right in front of the Capitol building. It's an impressive sight but doesn't take away too much from the fun of watching a movie with friends.

This week's showing was Bullitt starring Steve McQueen. To be quite honest it was not that great a movie. It oftentimes delved into details that could have just as easily been glossed over. McQueen's character had a gritty underside to him yet at times appeared flat and uninteresting. But then the real reason people came out to see this was for the awesome car chase scene. Like so many I had only heard about it but was not disappointed when I finally saw it. The throaty roar of the Ford Mustang and the Dodge Charger, both 1968 models, set the scene for the entire nine minutes that it lasted. The streets of San Francisco never looked so fun to drive!

One of the strange things though was the segue between the introductory cartoon and the movie itself. Since the event is partly sponsored by HBO, they have a small promotional spot that appears at that point yet it is an old clip from about 20 years ago. Seeing it though brought back a wealth of memories of watching TV with my parents when I was a kid. I've snagged it from YouTube and present it below for your viewing pleasure. Another thing that is strange is that during the end of the music riff, people get up and start dancing.

So even though the movie wasn't all that great, I still had a good time and met some new folks. Now I just need to go pick myself up one of those nifty camping chairs.

Jocelyn and MikeFrom left: Teresa, Kate and LindsayThe view behind us of the Washington monument

Tuesday, July 25, 2006

Punch's Progress

Another night of Fringe Fest brought another excellent show. This one was called Punch's Progress: A Pulcinella Story and concerned the infamous Pulcinella himself. Having lived in Naples for several years, I had a faint memory of the Pulcinella imagery but felt that I needed a real Neopolitan with me to truly appreciate it. Thus I invited my friend Veronica that I went to high school with while living there but who now lives just a few miles away in Alexandria.

The venue was a far cry from my previous Fringe Fest experience and from the very first scene I knew the show was going to be 180° different. For starters, it was a one man show created and performed by Aaron Cromie, a big-hitter from the Philadelphia theater scene. He came out dressed in the typical Pulcinella fare and spoke completely in Italian, at least for the first scene. He introduced his imaginary family while cursing quite prolifically, most of which I could still understand despite having not spoken the language for quite some time. Eventually he came to see that the audience didn't speak Italian and switched to American English and spoke as such for the rest of the show.

He then gauged the "moral barometer" of the audience through a series of dirty limericks, the filthiest of which went as follows:

I'm told of a Bishop of Birmingham,
Who buggered young boys while confirming them,

To roars of applause,

He tore down their drawers,

And pumped the Episcopal sperm in 'em.


At this point, there was no mistaking that the show was about the one and only Pulcinella, the true representative of the working man's humor. What followed was a series of acts that highlighted Pulcinella's contribution to comedy, including a show about Punch and Judy and ending with the classic standup comedian. It was during this part of the show that the audience was invited to tell jokes of their own which made it even more enjoyable.

This show explored not only the character of Pulcinella, but also the origin of the 'dirty joke' and why this type of humor has survived to this day despite the enormous pressures to be politically correct. In a sense, Pulcinella represents the facet of ourselves that will laugh at anything no matter how inappropriate it is.

Monday, July 24, 2006

The Escapists

Just a little over a week ago while surfing the Internet late at night thanks to jet lag-induced insomnia, I stumbled upon the Washington Post's 2006 Fringe Festival site. I couldn't believe it! While living in Florida I'd heard about this week-long venue of experimental theater but never made an effort to go see it in Orlando. Now though with it being only a 15-minute Metro ride away there was no excuse.

My first Fringe Fest experience was watching a performance of The Escapists, an improv group based in Portland, Maine. I went with my friend Reshma who was also new to the whole Fringe scene. This particular show was at the Warehouse Next Door in Chinatown. The venue was small but fitting for a 4-person troupe.

It started off with an a capella-like song followed by quick introductions. The first bit was a classic improv game whereby one of the members waits in a soundproof area off-stage while the remaining members gather responses from the audience. Upon their return, the now ignorant player must figure out what those responses are solely through charades. Typically a running monologue accompanies the bit and in this case it was an entertaining Baptist sermon.

They performed several other classic improv games but there was a lot of sketch comedy in between the bits, more than I expected. My previous experience with improv, The Blue Show in Arlington, Virginia and Not Quite Right in Melbourne, Florida, were solely games-based so the sketch comedy, while fairly funny, took some getting used to.

All in all though it was a great show and the audience was constantly laughing, especially during those acts were they used all of their input. They even came out to do an encore performance which got them several more rounds of applause. If the rest of the shows are as good as this one then I will have thoroughly enjoyed the first annual DC Fringe Fest.

Monday, July 17, 2006

Pedro on the Metro!

On July 8th my buddy Pedro that I've known since college was in town and I met up with him and his folks in DC. Thinking that I would have to meet them at the Jefferson Memorial, I took the yellow line in and popped up at L'Enfant Plaza. Being as it was my first time at that particular stop I was a bit bewildered at first but eventually got oriented and started off. As luck would have it though, Pedro and family were still up at the mall. So I jumped back onto the Metro, the orange line this time, and met them just outside the Smithsonian station.

The last time I had seen Pedro was several years earlier when he visited me in Melbourne and we saw Return of the King together. He looked just about as I remember him and I also had the pleasure of meeting his father and step-mother. Naturally our talk soon turned to programming. It sounds like his doctoral studies are going well at University of Florida and he was impressed by my recent conversion to Ruby. Purdue of course also came up and what our mutual friends from college were up to.

We talked a lot while walking over to have lunch at Les Halles located on Pennsylvania Avenue. It was an awesome meal and to boot Pedro and I shared a 750ml bottle of Chimay, one of my favorite beers. Afterwards we walked to the Federal Triangle Metro station since Pedro and family were going to spend the rest of the day in Springfield and I figured we might as well all take the blue line. I got off at my stop wishing I could have spent more time with them but time constraints being as they were prevented that. Still, I was glad to see an old friend again.

Monday, June 19, 2006

My first day at work and other news

As first days go it was actually somewhat productive. But let's start at the beginning. I got up around 8:10am and hopped on the metro around 8:40am. From there it was about 25 minutes from Crystal City to Farragut West on the blue line, no transfers necessary. After a 10 minute walk I was in front of my building whereupon I happened to meet up with Aaron, one of the guys that interviewed me. He took me directly where I needed to go.

My co-worker Lizz gave me a tour of the place and introduced me to everybody. They were of course super friendly and eager to add a new member to the team. I also got the low-down on what the company is building. Without revealing too much, all I can say is that it is going to be a kick ass Ruby on Rails application that will redefine how Americans choose their health care.

My computer was setup fairly quickly and from there I installed Suse Linux 10.1 (dual-booting with Windows XP) and followed up with Eclipse 3.1.2 on both OSes. I was surprised to see most of the people running MacBook Pros, even the programmers! I opted for a Dell desktop which amazingly came with an ATI x600 video card. Hmm, perhaps work could double as a LAN gaming center.

So while work is going great there is still a bunch of mundane stuff that I need to take care of. The movers won't be showing up for another few weeks still (never use Allied!!) and I need to take my car in to be smog tested. I should probably try to do some more stocking of my cabinets while also making time to explore the local area. All in all though, I am getting on well here. It will just take some time before I am settled in.

Wednesday, May 31, 2006

Changes

Looks like I'll only be posting twice for the entire month of May. Believe it or not, I have a very good reason for my absence. About two weeks ago I received a call from a company based in Washington, D.C. that wanted to interview me. What attracted them to my skillset was my time in the healthcare industry and my hands-on experience with Ruby on Rails. I did the necessary interviews and lo and behold, they offered me a job which I eventually accepted.

So after less than a year at Health First Health Plans I find myself packing up my cube to move to a different company. I've enjoyed the time I've spent with the company and value the friends I have made. On a larger scale, I'm going to miss the friends that I've made here in Melbourne, Florida. It is nearly four years to the day that I started work at Harris and embarked down my career path of web application development. It has had its ups and downs but overall I'm satisfied with the direction it has taken.

The next time I post here, it will be from the heart of our nation's capitol. In the words of Douglas Adams, so long and thanks for all the fish!

Thursday, May 11, 2006

Is Blogger the right choice for me?

Several weeks ago I attempted to put up a blog about how one could easily make form buttons that look like the buttons standard in Windows XP. That is, they have gentle curves, a pleasing color palette and in general are damned good looking. Windows XP users will get these buttons standard if a web developer doesn't fool around too much with the underlying CSS on their form buttons but everybody else will just get the standard grey squares. Anyways, I spent nearly two hours battling with Blogger's idiot-proof composer before I finally gave up. The raw HTML code that I spent so much time crafting was no match for Blogger's voracious parser which chewed up my work and spit out something barely resembling the original.

I have decided to keep blogging here despite Blogger's limitations, at least for the short-term. Long-term though, I am considering a move to put the blog on my own site where I can control all aspects of it. And considering the amount of work I've been doing lately in Rails, I would probably convert my site to use that instead and run Typo. I'd also have to find some new software for my galleries but that ought not be a problem considering Rails' ever-increasing popularity.

Tuesday, April 25, 2006

Simple Single Sign-on Scheme

Single sign-on, or SSO, has become the Holy Grail of enterprise web applications and indeed, just like the mythical quest taken up by knights in medieval times, so there has yet to be found a unified standard to allow users to easily login across trusted web sites. The battleground is littered with the corpses of failed initiatives such as Microsoft's Hailstorm. The Liberty Alliance has churned out a number of PDFs but that seems to be the extent so far of their effort. On the open-source side, LID shows a lot of promise but without any major corporate sponsors, it's difficult to judge how successful it will be.

So lacking a working foundation to go on, I decided to strike out on my own. My requirements were simple in that a user would not have to create a separate account, the login procedure would not be a hindrance and above all it had to be secure. Too often in my dealings with vendors I've seen login schemes that easily allow a malicious user to spoof another user's identity and masquerade as somebody else on the site. With this lesson in mind, I went about detailing how it would all work.

We'll need to make some assumptions first. This scheme requires at least two entities. Entity A is the main organization, the one that holds all the users' account info. Entity B is a vendor that has agreed to interface with Entity A so that users will not have to create a second account to utilize Entity B's services. We must also assume that a user logs in with a user ID and password to access Entity A's site. That user ID must be unique and can be an email address or something auto-generated. As well, Entity A must have a service visible to the outside that can validate a user with their ID and password. The easiest method would be to have a web service that checks against an LDAP, RDBMS or some other data store.

The process begins when a user logs in to Entity A's site with their user ID and password. Once validated, a string is generated containing the user's ID and any other meta information Entity A may want to pass along to Entity B. This string is then encrypted using a key that has been pre-shared with Entity B. The resultant encrypted string is put through a Base64 encoding function and then URLEncoded to ensure that no characters are lost. This string is appended to a URL pointing to Entity B's site using an agreed upon CGI variable. This URL can be displayed as a link which the user can then click on.

Upon arriving at Entity B's site via the URL, the appended string is put through a reverse process (URLDecoded, Base64 decoded, decrypted using the same pre-shared key) and from that the user ID and any other attached meta information is made available. At this point, the user should see only an input field requesting their password. The other data can be put into hidden form fields which will be passed along when the user submits the form. When that form is submitted just the user ID and password will be passed back to Entity A but this time to a published web service to authenticate against. If the web service returns success, then the user is logged in. Otherwise, the user is routed back to Entity B's site but with an appropriate error message.

Simple really was the theme of this SSO implementation. Though it lacks the features of some of the more mature setups, it does have the advantage of being relatively easy to deploy. As well, the requirement that a user resubmit their password at Entity B's site means it can withstand a replay attack. And provided that employees at Entity A do not have direct access to users' passwords, they would not be able to login as another user either. You could increase the security even further by changing the pre-shared key every 90 days though even with the most basic Triple DES encryption a brute force attack would be impractical.

This scheme has been in production for over a month now on our member portal with no complaints or reported errors. This feat would not have been possible though without the help of some talented individuals. My colleague John K. proved invaluable when it came to brainstorming on this issue. And were it not for Mark H. at Workmode, my point man at the vendor, this project would not have gotten off the ground. Lastly, the encryption functionality was provided courtesy of DevX.com and was extremely easy to implement and use.

Please feel free to comment on this or email me if you have any questions.

Tuesday, April 18, 2006

Pretty URLs for SPGM

Since putting a photo gallery on my site I have always used SPGM, the Simple Picture Gallery Manager. It's a great application in that it does not require a database, is totally configurable and is very easy to manage. The latest version, 1.4.4, is mature and stable and I look forward to many more years of using it.

However, one thing that's always bugged me about it, and for that matter many other web applications, is the lack of pretty URLs. Now my favorite web framework does away with this issue entirely but web applications written in other languages such as PHP typically do not take this into account. Ugly URLs often do not get indexed by search engines, are more prone to linkrot, and just look darned ugly. So I decided to do something about it.

First, I went about upgrading my version of SPGM. Wow what a difference a year can make! Version 1.4.4 was quite a jump with newly updated themes and a really cool shadow effect that makes my pictures seem as if they are floating above the page. Aside from some minor stylesheet integration issues that I eventually fixed, the upgrade went very well.

My next task was to change the output of SPGM itself so that it would make every link a pretty URL. I started out by replacing every instance of '&', '=' and '?' with constant values named SEP_AMP, SEP_EQL and SEP_QM, respectively. I then defined a constant called PRETTY_URLS which, if set to true, would create URLs that looked like /spgm/spgmGal/gallery_name/spgmPic/picture_id. This modified version of the SPGM engine can be found on my website.

Lastly, I had to put my mod_rewrite skills to use to direct these pretty URLs to their correct locations. For instance, a link to /spgm/spgmGal/Spring_Break/spgmPic/3 would actually be a link to /spgm/index.php?spgmGal=Spring_Break&spgmPic=3. Also, because SPGM relies on relative links, mod_rewrite had to redirect image links from within the galleries in order to display the thumbnails properly. Eventually I was able to accomplish everything with just six RewriteRules in my .htaccess file.


RewriteEngine on
RewriteRule ([a-zA-Z0-9,_]+)/gal/(.*)$ /spgm/gal/$2
RewriteRule ([a-zA-Z0-9,_]+)/flavors/(.*)$ /spgm/flavors/$2
RewriteRule spgmGal/([a-zA-Z0-9,_]+)$ /spgm/index.php?spgmGal=$1
RewriteRule spgmGal/([a-zA-Z0-9,_]+)/spgmPic/([0-9]+)/spgmFilters/(.*)$ /spgm/index.php?spgmGal=$1&spgmPic=$2&spgmFilters=$3 [L,QSA]
RewriteRule spgmGal/([a-zA-Z0-9,_]+)/spgmPage/([0-9]+)/spgmFilters/(.*)$ /spgm/index.php?spgmGal=$1&spgmPage=$2&spgmFilters=$3 [L,QSA]
RewriteRule spgmFilters/$ /spgm


Both the .htaccess file and the modified version of the SPGM engine can be found bundled on my site. Please email me if you have any questions or comments on using it.

Wednesday, April 12, 2006

The Importance of Teamwork

What a cliché title that is. Unfortunately, I just couldn't come up with anything that was short, witty and as descriptive of the subject matter of this blog entry. Time and time again, teamwork has proven to be the most invaluable and yet undervalued resource. My college curriculum, great as it was, tended to focus on individual projects. The idea was that group projects encouraged laziness on the part of some allowing them to skate through the class without learning the material. To a certain degree that fear is realistic. But it also handicaps many graduates who end up working for companies where group projects are the only way to get things done.

With my former employer, I did not get into any major projects requiring the skills of multiple people. Most of my projects were small and specialized and could be accomplished in just a few months time by myself. But upon arrival at my current employer, it was clear that I had to throw out the old rules. My task was to give them a portal for our members that worked and there was no way I could learn a platform, much less an industry that was entirely new for me, in just a few months.

So I enlisted the help of analysts, data integrators and others from departments as varied as marketing. My address book quickly became quite the motley collection of contacts. But the synergy that developed between us enabled much more than just a quick turnaround on what seemed an impossible deadline. It created something that I had only dreamed of.

Nobody likes to see their work lambasted and I had to bite my lip several times when criticisms were aimed at what I thought were great ideas. Yet by incorporating this feedback into the product, I gained not only a better product but a group of people ready to evangelize the other departments on the quality and usability of it. For me, this automatic buy-in from the people on the team was quite the shock. It makes sense in retrospect but was not something I had personally experienced before.

Wednesday, April 05, 2006

The Joy of Blogging

I've been blogging for nearly six months now, much longer than I had anticipated I would still be doing it. I have found it to be a source of joy that I had previously all but forgotten about, namely writing. I used to do quite a bit of it in high school and in my early college days. But as my studies in computer science took up more and more of time, so my devotion to writing began to wane. The well-formed multi-page essays gave way to quick reactionary comments on Internet message boards. Quality gave way to quantity.

But now that trend has begun to reverse itself. While I still prowl my favorite boards sporting for indepth political discussions, I also make sure to set aside at least a few hours each week to blogging. Some of that time is spent pondering my next piece but a good chunk of it is used on editing what I've written. Spelling errors, grammar mistakes and misused tenses pepper my first drafts. Not only that but simply getting the wording right can take up to five or six drafts. Usually by then though, I feel that it is as polished as it's going to get.

I have also been putting my writing skills to use in the workplace. What should sound like dessicated documentation instead reads like a strange mixture of prose and programming. Though I doubt many will ever read those particular works, if I can manage to bring even a hint of a smile to some future employee who expected something much blander then I will be glad for it.

One other aspect of blogging that I've experienced firsthand recently is notoriety. It seems that some of my former co-workers have discovered the site and while most just lurk, one took the opportunity today to attempt to anonymously post a nasty and rather personal comment. I bolded anonymously because the Internet is anything but. Thanks to some excellent logging utilities I was able to get the physical location of the IP address and from there it was as simple as cross-referencing it with the Yellow Pages to discover the true identity of the culprit. What's funny is that this person had claimed to be my friend yet I knew otherwise. I can only hope that posting meaningless comments to my blog doesn't become a habit for her.

But let's not end this entry on such a down note. As it is, I shared this information with some of my other former co-workers and we all had a good laugh about it. It just goes to show that you can't take the Internet too seriously. The things people say from behind the thin veil of their browser window is rarely anything like what they would say to you in real life. So laugh about it and move on.

Here's to another six months of blogging!

Wednesday, March 29, 2006

Accident on the I-95

John·ny-on-the-spot (noun, informal): A person who is available and ready to act when needed.

Lately that's how I've been feeling with my new Samsung A900 phone. Florida has plenty of strange daily happenings to keep me busy with the camera features of this wonderful gadget but today my phone had a much more serious role to play. On my way home from work at about 4:45pm, traffic on the I-95 came to a standstill. Now its not uncommon for traffic to slow down drastically due to the natives' driving habits but a complete stop is rare at that time of day on that particular stretch so I knew something had to be up.

Immediately I turned on the camera on my phone just in time to catch black smoke rising over the car in front of me. From there the situation only got more serious as firetrucks and ambulances raced by me on the shoulder. As I inched my way forward I knew that this was going to be bad. By the time I got to the scene of the accident the fire had been doused, leaving only the smoking hulk of what looked like a Nissan or Toyota truck.

None of the local stations are reporting anything yet on their websites although it's been over an hour since it happened. I sent in one of my pictures to the Florida Today but there's no telling if they'll use it. I can only hope though that nobody was seriously injured in this accident, or worse yet, killed.