Sunday, June 13, 2004

Knock Knock Knock... It’s Me Again…

A streak of guilt hit me, when one of my friend wake me up questioning “Why don’t you Blog ?”
I got triggered…. But… hey… I started blogging last year!!!.......

<Inner_Conscious>Slap… But it’s almost dead already!!! </Inner_Conscious>
<Me> Yup… no way I shall make it alive again… let me give re-birth <Me>
<Me> But I have reasons :-D </Me>


Gosh! Just couldn't believe that I had already burnt full 5 months of 2004 @ Office!!
My recent project has really occupied me fully...and there was absolutely no time to turn around & have a relaxed chat... This project had a Heavy duty schedule. Almost lost touch with my friends and family. Most of my friends stopped mailing me, as they did not get any responses [grrr…] and my Mom called up and said gently “we are alive… why not visit us once…” [hmm… That was bad on my part]

It all started on Dec 30th When I received a call from Aravind [He is the man, who influences me till this second, right from the day I met him. Truly speaking, I’ve learned a lot from him, especially the his care for details in every single of his work, has really caught me up. He adds a special value on everything he does, his outputs are always perfect. I have lots to learn from this man. Btw he is my Delivery Head :-) ]

I felt the Joy in Aravind’s voice when he said “We’ve bagged the order, Pack your bags and come back soon, we’ve got lots to do” [I was at Coimbatore {My Home-town} enjoying my year end vacation]. Initially I was involved in very little bit of pre-sales doing some research and some initial estimations for this project, Infact my first hands-on pre-sales stuff.

This project was really inspiring right from day 1, we’ve got to build a product for amusement/theme parks that would interface with Media cards, digital/tethered cameras, Photo printers, Dongle’s, Roller coasters, Video cameras et al… this product relies heavy on various hardware devices, some of them known, most of them unknown, like tethered camera. IT took a while to understand what really is a tethered camera. But it was really fun and exciting. This project was a lot *different*.

During the pre-sales client had a tie between Java and .NET and he was little worried about the .NET runtime size, finally, .NET won the bet, reason was the speed of development and time to market [!!! I have my personal comments here] and hardware interfaces support.

Aravind assembled the best of the team with good resources. I was initially given the role of “Technical Architect” [This “different role on different project” concept is very interesting in scapevelocity, sometimes I’m a programmer, sometimes I design/model/architect a software :-)]. But due to some reasons and attrition rates I had to take up the role of “Technical Lead” too. As things started rolling we had some trouble due to the high attrition rate prevailed in the scape[hmm.. whole of the industry has this], but things went on fast very very fast.

We had to build an image editing software and a print server which were the core pieces of the product. We ended up writing in-house GDI after some worst time with a third party component [which we had chosen considering the tight schedule]. Atlast, GDI was a savior and GDI on .NET Really rocks.

But the print server is the one which really challenged me. If any of you remember the old Novell Print Server, which manages all the printers on a single console. Windows lacks a print server i.e a single console print server to administer/manage the printers, we had to build such a print server. Additionally we had to group these printers based on the print queue sizes. After some initial research I started realizing the real power of WMI [Brains who designed WMI Should be monsters] WMI is so wonderful, powerful and extensible. We went ahead and wrote a generic print server that would manage any printer hooked on to the network. We got a bang when *SCSI based Photo Printers* were introduced, and what if they were chained[nightmare]. [for those of you unaware, these photo printers are not like our ordinary printers, they are Macho *Big* photo printers used in professional digital labs, I have a separate respect for them] Most of These printers were designed during the pre-Gregorian days [i.e. during 90’s] especially Mitsubishi printers[I really hated these fellas for not being in compliance with WMI]. Interfacing with these printers were cumbersome as these WMI couldn’t gel with these printers. Now we had to use the SDK’s provided by Mitsubishi [Mitsubishi guys agreed to give the sdk’s after agreeing that we don’t reverse engineer their stuff] and PInvoke made the job easier, it was fun to work on pointers and structures after a long time[good old times…] after pulling out the hair a bit we made it to work. Still with the challenges of the SCSI chain ! we are now working out on other printers like Kodak, Olmec, Canon, Fuji etc. Kodak had a separate toolkit called XAPI for developers. Though I agree WMI is a legendary stuff, WMI still has some bloopers. I shall Blog these bloopers and how we solved separately. Pretty interesting…

Other interesting piece was the tethered camera and the associated WIA [Windows Image Acquisition] from Microsoft. To be honest I’ve never heard of this until I researched on this front.
And most of the standard digital cameras today support this, but some call it Remote capture.

Dongle[Hardware Locks] was very interesting and we had a beautiful toolkit from rainbow technologies.

Hmm… here is the consolidated list of software/tools/concepts/technologies/hardware that were used in this project C#, VS.NET, Visio, WMI, WIA, GDI, Dongle SDK, Image Editing Algorithms, Mitsubishi Printer SDK, Threads, Canon Digicam SDK, Crystal Reports, MS-Access, Memory Cards, Tethered Camera, Photo Printers, Windows Service, cryptography [a bit], Hardware Locks, Photo Printing Algorithms[not a joke], UML, CLR Memory Profiler, ANTS Profiler[I vote] , Dev Profiler, obfuscators, Installshield. Phew… Remember the Runtime errors that would arise when all these converge together… Do you think you can integrate all these on any other platform other than MICROSOFT easily ?? NO NO NO… This is where Microsoft bashes out other platforms.

But things were not easy when it came to managing the team. We had fights, screams @ 2 AM, worked on all weekends… this project has really stressed and drained the whole team. There were unimaginable number of CR’s which hit directly on the roots of the project. I Should really appreciate efforts put in by Thoths, Joe, Prathap and Rajesh. Thoths was full of energy, he had the spirit to take things till the end. Joe was a quick learner, this guy thinks and reacts analytically. Prathap and rajesh gave the very best of their efforts. One attitude which I respected with prathima is the “Keep it going” spirit. Very few people have this spirit.
Everybody had a learning on this project some good bad ugly :-) learning.

And here we are on the last leg of the project, delivering a stable release 1.0 hmm… a stable release of software leaves out a stable experience within you. Meanwhile Scapevelocity has obtained CMMI status [I feel little guilt as I really did not do anything being on the FAR, and later got removed due to the project pressures!] and there were too many new faces & freshers inside the organization, which I was not fully aware of.

Anyway It’s time to unwind…. And Here I’m back in to the world. I’ll make sure my Blog is alive.

posted by Logu Krishnan : 3:17 AM

Interesting blog I found it while I was searching for canon cartridge compatible sites and learned some good stuff here thanks!

Just want to say what a great blog you got here!
I've been around for quite a lot of time, but finally decided to show my appreciation of your work!

Thumbs up, and keep it going!

Christian, iwspo.net

Post a Comment

This page is powered by Blogger. Isn't yours?