Thursday, December 27, 2007

Been a long time since they rock n' rolled

I'm a little late in writing this and most news stories about the concert have already disappeared off the Internet search engines. But this story will never grow stale in the hearts and minds of their purest fans. After all, 11 million people around the world applied for a mere 20,000 tickets. That is one yardstick to remind the world of the greatest rock n' roll band that ever played.

I'm not going to hide my unabashed adulation for Led Zeppelin, so let this serve as a warning - this article is written with extreme prejudice! But one has to admit - when Jason Bonham, son of the erstwhile drummer John Bonham, bows down to Jones, Page and Plant during the concert as if to say "I'm not worthy", there is an aura of aweness that is created around the band.

For some, this reunion was long overdue. One does not build the Sistine Chapel of music to fade out into nothingness. And when they did come back to give remembrance to the man who brought them to limelight, it got them the whole world's attention. Well before the concert there was speculation about their individual abilities. Page's broken finger brought in more rumors as to whether their live performance could rival those of their glory days. After all, their last gig twenty something years back created bitter tensions among the band members factioning Page and Plant against Jones.

But this concert dispelled all such rumors. When Page pulls out a violin bow for the solo of "Dazed and Confused", there is a certain mystical property attached to the scene. Any doubt of Robert Plant's ability to hit the high notes were quashed when the band played "Since I've Been Loving You". John Paul Jones once again showed himself as the band's most versatile player while on the clavinet in "Trampled Underfoot". Bonham showed his worthiness amongst his elders while hammering at the drums.

When Plant screamed "We did it, Ahmet!" after the most anticipated song in the playlist "Stairway to Heaven", he did not just evoke the emotions of the band but of all their fans around the world. They are a rare coalition of individual talent, likes of which come maybe once in many lifetimes.

Now that the O2 gig is over, the calls are for a reunion tour. Maybe they will come back again or maybe this one concert will serve to remind of their everlasting greatness. But as Kurt Cobain said, "It's better to burn out than to fade away..."

Monday, November 26, 2007


I had a little time after dropping my cousin off at the Battery Park waterfront to see the Statue of Liberty so I decided to do a little sightseeing myself, considering how little of New York I know. After touring inside Castle Clinton, I walked around to see some of the street performers in the park. There I met a wonderful violin player named Dave. As people walked by, Dave would ask where they came from and whip out a little tune on his violin depending on their country of origin. And he seemed to know it all - from India's Jana Gana Mana to China's March of the Volunteers. People happily sang to his tune and some were very generous in their offerings to Dave.

As the crowds thinned out a little after of one ferry docked I asked Dave if I could take a picture of him playing the violin. He enquired as to whether I was from the Philippines and when I told him I was an Indian, he quickly played the Indian national anthem as I took his photograph.

Later, he sat down and told me that he was from Trinidad and explained that he had several jobs in the United States until his love for playing the violin got him performing in New York. As he carefully removed coins from his violin case so they wouldn't get lodged inside the sounding board of the violin, he explained that performing in New York had become very difficult after 9/11. Now, he had to get a city permit and pay taxes and could get evicted if he didn't divvy up.

Asked whether people were always generous in their contributions as he played their country's music, Dave explained that people mostly liked it but a few were offended. He told me about an elderly Indian gentleman who had told him earlier that day that the national anthem was reserved for only certain special occasions and should not be played by the likes of him to make money!

When I asked him about the jobs he held before becoming a street performer he mentioned that he was a security guard in Texas. All was well until one day, after worsening crime rates, he was given a gun by the security company. "Guns kill people!", Dave said, and after refusing to handle a gun he quit his job and headed to New York.

As the winter sun started to set, Dave started packing his equipment, saying he would have stayed on longer if it were summer. There were more ferries till later in the day during summer and consequently more crowds. As we said our good byes I told him I'd certainly try to come and see him play again the next time I was around the area.

It was a different experience talking to Dave and I don't think I've ever sat down and talked so long with a street performer. They are usually small part of our lives and we don't remember them as much as the big ticket attractions. But it was fun to watch him play to people's hearts and to see the pride that comes out of people when they hear their national song being played.

Saturday, November 10, 2007

My friend

I have a friend.

A friend who relishes his dark and melancholic existence. He has all the things need in the world, yet he desires for something - not a material thing - which pushes him into this darker life.

How can I describe my friend? He is not the sharpest of the lot but not too dull either. Yet, he wants to be smart and intelligent like the people he reads about everyday. Those who accomplish so much in their lives, some younger than him, and achieve so much fame and fortune.

Music makes my friend sad. Not that he does not like music, no, he loves music. Music is a big part of his life. Yet listening to the melodious of tunes makes him somber. Oddly, he finds this gloominess quite uplifting. My friend is not a musician though. Not that he has any talent be one. He has seen and read about musicians achieving so much success in their career only to be destroyed by adulating fans who leave them for the next big act. Their lives spiraling down a moral decay into a vortex out of which they can never come back. Artists who, after falling from their glory days, seek solace in alcohol and drugs to overcome their depression to ultimately find their untimely end from the barrel end of a shotgun. No, my friend is characterized by more of a thoughtful sadness, one which he thinks will follow him to the last throes of his life.

My friend has friends. Not too many of them. He enjoys their company and they his. But at the same time he keeps his distance from them. Never can anything too personal come between them. His deepest thoughts are his own and they are too sacred to be shared with even the closest of his acquaintances.

This is the story of my friend. I just thought you'd like to know.

Are you my friend?

Thursday, October 25, 2007

.net license files

I've been working on an issue with getting licenses to work with Janus Systems Controls and have the controls work when my application is deployed. When assemblies requiring licenses are deployed, you have to create a .license file using a License Compiler and then embed the same into your application using the Assembly Linker. Thankfully Visual Studio does all this for you when you are using assemblies requiring licenses. This is done by creating the licenses.licx file (which resides under the Properties folder) and then embedding the .license file in the output of the project.

The issue that I had was when I migrated my code from one development machine to another the licx files were not copied over and therefore there were no licenses embedded with the new application output. Since I had Janus Controls installed on my development machine I did not face any issues but when the application was deployed the end users would get an unauthorized application error whenever a form using one of Janus controls was shown.

Unfortunately, Janus Systems is an obscure little organization having no real support for their controls (most of the world has moved to Infragistics), but I did get some help from a co-worker. Here are the troubleshooting steps for all those who face the same issue that I did:

If you have problems with licenses it can be because of the following reasons:

a) The Original Licensed Setup is not installed in your machine at the time you compile the application.

b) The BIN folder in your solution contains a copy of the TRIAL version of the dlls instead of using the LICENSED version of the controls. To solve this problem you need to delete the OBJ and BIN folders of the project and do a full rebuild in a machine where the Trial Setup was removed and the LICENSED setup is installed.

c) The name of your exe contains spaces in it or you have renamed the exe after compiled.

d) There is no licenses.licx referenced in your project (note: The CustomBuild action for the file must be set as Embedded Resource)

e) One of the controls that you try to deploy is not listed in the licenses.licx file of your project at the time you compile your solution. If this is the case all you have to do is to edit the file using notepad and add the appropriate controls.

The points noted above are not limited to Janus. These are troubleshooting steps for any application requiring licenses.

If it is an issue with the licenses.licx file for Janus, the following entries are required in the same (if you are using Janus Controls v2):

Janus.Windows.ButtonBar.ButtonBar, Janus.Windows.ButtonBar.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.CalendarCombo.CalendarCombo, Janus.Windows.CalendarCombo.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIButton, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UICheckBox, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIColorButton, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIColorPicker, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIComboBox, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIFontPicker, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIGroupBox, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIProgressBar, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIRadioButton, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.ExplorerBar.ExplorerBar, Janus.Windows.ExplorerBar.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.EditBox, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.IntegerUpDown, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.MaskedEditBox, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.MaskEdit, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.MultiColumnCombo, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.NumericEditBox, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.NumericEdit, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.ValueListUpDown, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.GridEX, Janus.Windows.GridEX.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.Schedule.Calendar, Janus.Windows.Schedule.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.Schedule.Schedule, Janus.Windows.Schedule.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.CommandBars.UICommandManager, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.Dock.UIPager, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.Dock.UIPanelManager, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.StatusBar.UIStatusBar, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.Tab.UITab, Janus.Windows.UI.v2, Version=2.0.1131.0, Culture=neutral, PublicKeyToken=21d5517571b185bf

For v3, here are the entries required in the licenses.licx file:

Janus.Windows.ButtonBar.ButtonBar, Janus.Windows.ButtonBar.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.CalendarCombo.CalendarCombo, Janus.Windows.CalendarCombo.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIButton, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UICheckBox, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIColorButton, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIColorPicker, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIComboBox, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIFontPicker, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIGroupBox, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIProgressBar, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UIRadioButton, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.EditControls.UITrackBar, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.ExplorerBar.ExplorerBar, Janus.Windows.ExplorerBar.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.CheckedComboBox, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.EditBox, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.IntegerUpDown, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.MaskedEditBox, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.MaskEdit, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.MultiColumnCombo, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.NumericEditBox, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.NumericEdit, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.EditControls.ValueListUpDown, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.GridEX.GridEX, Janus.Windows.GridEX.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.Schedule.Calendar, Janus.Windows.Schedule.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.Schedule.Schedule, Janus.Windows.Schedule.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.TimeLine.TimeLine, Janus.Windows.TimeLine.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.CommandBars.UICommandManager, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.Dock.UIPager, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.Dock.UIPanelManager, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.StatusBar.UIStatusBar, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.UI.Tab.UITab, Janus.Windows.UI.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf

For v3.5 replace all of the above Version= with Version= and add the following:

Janus.Windows.Ribbon.Ribbon, Janus.Windows.Ribbon.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.Ribbon.OfficeFormAdorner, Janus.Windows.Ribbon.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf
Janus.Windows.Ribbon.RibbonStatusBar, Janus.Windows.Ribbon.v3, Version=, Culture=neutral, PublicKeyToken=21d5517571b185bf

Now, make sure the bin and obj files of the project file are clean and then recompile. You should be all set!

Saturday, March 03, 2007

My theory on life

This is from my old Orkut 'About Me'.

Life ... is like the scene from the movie 'Swordfish' where Hugh Jackman has to hack into the NSA in 60 seconds while getting a b*** j** from a hot blonde and with a gun pointed to his head. Sometimes in life you're Hugh Jackman, getting it but certainly not savoring the moment. Sometimes you're the blonde giving it - just doing what you gotta do (but which is really demeaning) and yet thinking, "I'm going to tell ALL my friends that I gave Hugh Jackman a blow job!". Sometimes you're the guy with the gun thinking, "Man, that could've been me on the hot seat." because he knows no matter what happens, Hugh Jackman's not going to get his brains blown out. Somtimes you're the computer, which if it had a mind of its own, would be thinking, "Damn Hugh Jackman! I do all the grunt work here and what do I get? USB cables shoved inside me!!!" And finally, sometimes you're the guy in the theater eating popcorn going, "I paid $10 to watch this crap??!!!!"