Tuesday, November 23, 2004

One more celebration today

We did a couple of cool things in the last few months with Deepak.

To improve our application security, we now handle the data segregation at the JDBC sql statements level in a generic manner. We have a very decent set of AspectJ based aspects to do the job of scoping the SELECT sqls to only retrieve the data allowed for the specific users.

We also switched to Eclipse IDE. This one is really cool and we are enjoying it while saving more than $15,000 in licensing fee for Intelli IDEA.

Deepak did an excellent job on both of the above items. With lots of patience he tested the system throughly one function at a time for the Aspect based implementation and we really appreciate that.

We thanked him and gave him an award for the above today. Here are some pictures:


Deepak receiving his award from Ricardo Posted by Hello


Deepak with his award Posted by Hello

Thanks Deepak. Keep it up.

It is celeberation time

We had a small celebration in the NJ office. We were happy to note the three major new efforts on the infrastructure side. They are:

VPN

I have been aiming to get the VPN setup so that we can have a secure inter office communication as well as occational on the road/home communications. It finally came to frution a few months ago when were were able to configure the FreeSWAN package on our IPCop box. We have a open source command line client thanks to Marcus Muller. We also have SoftRemote client which works well. We plan to give USB Tokens for two factor authentication for the VPN clients.

Anti Spam Gateway

Many of our folks were getting tons of spam everyday. Ricardo used to get over 200 a day. It was time to do something about it, Thanks to Debian, Postfix, Amavis, SpamAssassin, DCC, Vipul's Razor, RulesEmporium we now have a very good Anti-Spam solution which catches I believe over 90% of spam.

Replacing our aging Exchange Mail Server

Our workhorse mail server box has given us a honorable service of over 5 years. We also needed to move away from Exchange Server mainly to worry less about security problems. Thanks to Debian, Courier and OpenLDAP we now have a good mail server solution. We also have new Dell server class hardware with hot-swappable disks and standby box.

The main man behind all this is Naga. So we gave him an award to recognize his effort. Here are some pictures.


Naga receiving the award from Ricardo Posted by Hello


Naga with his award Posted by Hello

Saturday, October 02, 2004

Mail merge ruby script

The other day, I needed to send the gmail invite to all the folks in the development team and it amounted to more than 30 people. Since each one would have to be sent a different invite, distribution list won't work. Here is a quick Ruby script I cranked up to send the invites. Go ruby.


require 'net/smtp'

receiver_list = ['x@y.com','a@b.com']
invites_list = ['invite_url_1','invite_url_2']
smtp = Net::SMTP.start('mta1.mycompany.com', 25)
sender = 'me@gmail.com'

receiver_list.each_index {|email_index|
receiver = receiver_list[email_index]
invite_link = invites_list[email_index]
puts "Sending e-mail to " + receiver
msgstr = "From: Venkat <#{sender}>\n"
msgstr += "To: #{receiver} <#{receiver}>\n"
msgstr += "Subject: Gmail invitation\n"
msgstr += "I would like you to enjoy a small gift, a new Gmail account.\n"
msgstr += "#{invite_link}\n\n"
msgstr += "Cheers,\n"
msgstr += "Venkat.\n"
puts smtp.send_mail(msgstr, sender, receiver)
}

Can sequence diagrams be any more simpler?

For some of the work we have been doing recently, I wanted to sketch small sequence diagrams to explain the flow.

As always the temptation is to launch Rational Rose. This time I hadn't set it up in my new laptop as I didn't want to bloat it with lots of software. Since I had heard about ArgoUML, I tried that next. It was very quick to launch it as it was Webstart enabled. But the sequence digramming option itself wasn't enabled for some reason. Docs weren't of help.

As always the better ideas come last to me. With so little brain cells I have left it is wonder that they even come . About a year ago as I was playing with AspectWerkz, I had integrated it with Sequence. At that time, I was doing this to draw the sequence digram on the fly as the code executes. We will talk about that in another post. This tool is really cool. I should suggest this to be Webstart enabled also. It has a very simple text syntax where you specify the sequence steps and it draws the digram for you. How can you do faster than this? Here is some simple text sequence I wrote and the digram below.


SomeObject.someCall {
Connection.prepareStatement(sql) -> preparedStatement {
ScopingAspect.around(connection, sql) -> preparedStatement {
SqlStatement.parse(sql) -> statement;
LegacyScoper."getScopeBy EntityName + ViewName"() -> condition;
LegacyScoper.[isEmpty]getScopeByViewName() -> condition;
LegacyScoper.[isEmpty]getScopeByEntityName() -> condition;
LegacyScoper.[isEmpty]getScopeByTableName() -> condition;
DefaultScoper.[isEmpty]getScope() -> condition;
SqlStatement.[isNotEmpty]addCondition(condition);
SqlStatement.toSql() -> sql;
Connection.proceed(sql) -> preparedStatement;
}
}
}




Friday, October 01, 2004

Migrating from Yahoo Mail to Gmail

The Gmail service is quite impressive and I couldn't stop thinking about getting to use it on a regular basis as soon as I can.

So, I decided to copy all my Yahoo mails to Gmail. Here is how did it and the steps you need to follow:

Download mails to local drive

Since I have a paid Yahoo account (MailPlus), Yahoo allowed the e-mails to be downloaded locally. Those with free Yahoo accounts needn't go disappointed. There is YPops as well as FetchYahoo which can be used to download the mails to Thunderbird.

Convert mails to a standard format

In my case, unfortunately the files were all individual files with eml format. You may not have this issue if you downloaded directly to Thunderbird. eml2mbox script came to the rescue. How fortunate that we have scripting languages like Ruby where people can crank up something in minutes. Now I have the mails in the mbox format.

Upload mails to Gmail

Though Gmail doesn't have the upload support yet, Mark Lyon has written a nice Python script that loads e-mails in various formats like mbox and maildir to load e-mails to gmail. Thanks Mark Lyon. There was a small issue in which the emltombox.rb script didn't create the mbox file in the cleanest format. Mark Lyon anticipated this and given a switch in the utility to cater for such files. Mark's utility also takes care of properly marking the sent mails so that took care of sent mails folder also.

Mark Lyon's utility didn't run in my machine straightaway. It kept using the Tcl library in my ruby installation directory. After some digging, I turned off the TCL_LIBRARY environment setting (Windows) and the utility ran fine.

After loading the e-mails to Gmail, I tested to make sure that e-mail "conversations" were recognized by gmail. Surprisingly they weren't. The problem was that the mails I am loading were sent by my yahoo ids or pobox ids. So, I had to edit the mbox files to replace those previous ids with gmail e-mail id. I should suggest this to Mark to add it to his utility or do it myself. May be he did this step manually and forgot to mention in the web site.

Now that I have my old e-mails loaded up in gmail, I am forwarding mails to my pobox.com alais to the gmail mailbox also. I did the same with sneakemail. I still have a couple of more folders to import into gmail and that should be a breeze to do.

Now I will be checking my gmail id like once a day and send and receive mails.

Tuesday, September 28, 2004

Gmail invites - A small gift to the Bali development team

As usual everybody is working hard trying to get another release out, another fix to do and a new bunch of items in the issue list. Weekends are spent debugging and troubleshooting.

I wanted to distract them in a pleasant way from all the usual things in the daily life. This distraction should be a different one from the past. How about sending a gift that many desire but not easily available? How about getting them an account in:



If you haven't heard about it before, it is the most talked about and sought after e-mail service. Here are some of the highlights.

Search, don't sort.
Use Google search to find the exact message you want, no matter when it was sent or received.

Don't throw anything away.
1000 megabytes of free storage so you'll never need to delete another message.

Keep it all in context.
Each message is grouped with all its replies and displayed as a conversation.

No pop-up ads. No untargeted banners.
You see only relevant text ads and links to related web pages of interest.

It is currently in Beta but users can't enroll directly. Google has given access to only select users. Those users are randomly given some "invites" which can be used to enroll their friends. Those people who have these invites realized the popularity of it and started auctioning it in ebay.

Gmail felt like a cool gift to give. So, I bought some in auction and e-mailed to each member of the Bali Development team today. I had to buy in multiple auctions from various people and it took some time. Though Gmail may be released in 3-6 months time, good user ids are already running out and our gang will now be able to grab some before the service goes public.

I hope they will enjoy it. If you received a invite from me, please use it right away or it will expire soon. Some tips and more.

Monday, September 20, 2004

Celebrating Sastry's project completion

A few days back, I sent him a note to congratulate on completing the "Generic Filter Framework" project.

First Sastry didn't know what the courier was about. He thought it is some scam and wanted to be sure of what it is before signing. With a irritating voice I told him to first sign and send the courier guy off.

Sastry opening the packet. As he is peeling the covers out slowly, he is wondering who sent him such a big package.



Once he took the note out of the courier wrapper, he started to smile knowing what it is.



Sastry posing with the 5 feet high 7 feet wide note. Even a note this big can't be taller than Sastry.



The note itself is here.



I wish the whole team is in one location when we celebrate like this. I missed all the other guys being around. We have to start similar things in Bangalore and recognize them for their milestones. I am sure many of them deserve it.