Tuesday, October 26, 2010

Bad service from Sogo India

Last week we have decided to rent a laptop temporarily to be used by our new staffing manager hire. Since we have rented few laptops from "Sogo India, Bangalore" last year, we decided to give them the business opportunity again.


The resultant service is very bad and I "totally do not recommend them". You will find a service that is:

1. Don't know how to read your order request properly.

We asked for one laptop and they sent quoted for six. My email clearly stated "As we spoke last night, we require a laptop for rental with the following specs".

2. Unresponsive
  • They simply don't call back and take their own sweet time. A person named Anish told us that he will get back after lunch and never did. and we had to call them again in the late evening.
  • They promised to respond again in the evening and never did till the next day.
3. Pathetic fact checking and document checking

This is what they wanted as documentation:

  • Company Incorporation Certification Copy
  • Company PAN Card Copy
  • VAT / TAN / TIN Registration Copy
  • ID Proof (Voters ID, Driving License)

We gave them what we had at that time which is Incorporation Copy, PAN # (As company we don't recall getting a PAN Card), ID Proof as my personal passport copy. Their delivery person came all the way to our office door and and simply went back saying my address proof is wrong and they rudely cancelled the order.

What nonsense? Since when a company has passports? When you ask for ID proof, we can only provide a personal one. How can they check this against company's address? It will not match. This is crazy. Firstly the above documents will not have company's address. When they realize this is the case they should have simply asked us to send something else as proof. Instead, they waste all precious time as the person shows up wastes my 20 minutes time when he wanted me to call the company again. The Anish guy again in a rude manner says "Your order is rejected by management because of wrong ID proof". I suppose the management here is the lady called "Rekha Rao" whom we had personally complained about the delay. She has no courtesy to call and ask me for any clarifications.

Here is a vendor who doesn't want you as customer. That is fine. We will take the business elsewhere. You should do too.

Tuesday, April 13, 2010

James Gosling Has left Oracle

It is sad see him leave Oracle and by inference stepping away from guiding the Java language development in the future. Personally, I owe a lot to Java as through developing apps in Java that whatever improvement in technology, process extra that I had gained.

James, Thank you for all your contributions.

Sunday, January 10, 2010

Interest in our Panchangam Lite 2010 application

Recently we published our Panchangam Lite 2010 iPhone app. It is interesting to see that there are some 300 users who downloaded within 5 full days of launch. Here is a google map showing various countries from which the users came from.


View Panchangam Lite downlod status in a larger map

Friday, May 23, 2008

Return to blogging

There has been a pause in blogging here not because of dearth of any material, but for lack of time.

I have tons of stuff to share and expect a series of regular blog posts from now. My writings will focus on experience with Ruby On Rails, JRuby, J2EE deployment and quite a bit of Ruby on Rails plugins as well.

Tuesday, August 15, 2006

Asrock wasted precious several hours of my time

Motherboard manufacturers compete in terms of no of functions they have. In the process of cramming all kinds of functions even in low end mobos, they just don't pay attention to the quality aspect of what they do.

After several months of running ok, a computer I had it assembled (AMD Sempron, Mobo: AsRock K8Upgrade-VM800) for a friend of mine starting giving BSOD, slowness etc. Not having faith in anybody locally in his location to fix, I had it shipped to Bangalore to have a look.

Boot up at my location, it came up properly. Looking at the event log it has a bunch of following errors several times since the date he complained:

Event Id: 26
Source: atapi

The driver has detected that device \Device\IdeIdePort0 has old or out of date firmware. Reduced performance may result

Event Id: 51
Source: disk

An error was detected on device \Device\Harddisk0\D during a paging operation

Event Id: 9
Source: atapi

The device \Device\Ide\Ideport0 did not respond within the timeout period.

XP didn't let me finish a Acronis True Image backup complete. It would fail close the end of the backup job. I bought TuffTest just for this and ran the CD-ROM based diagnostics. The surface test gave disk time out errors after 20 mins or so.

Suspecting disk first, moved the disk alone in another AMD Sempron based machine with different Asus motherboard, the disk worked properly and the Acronis Backup running on top of Bart PE just went fine as well as much faster than the time it took (40 mins) before it failed on the other machine.

Now that disk is ruled out and backup is done moved the disk back to the original machine to further troubleshoot. While playing with BIOS settings, I bumped into the SATA Operation Mode option which was set to "RAID". The XP was using it as a IDE disk though. Changed it to "Non-RAID" at BIOS, booted XP again came back fine. It still took 40 mins to do Acronis Backup but went through just fine. So is the TuffTest surface analysis test.

Works but slow. Found that this is due the transfer mode for disk is running in PIO mode only though the disk is capable of DMA mode. Tried all kinds of solutions like messing with registry changes etc to let XP recognize it as DMA disk. So, the first conclusion to make is, though operating as RAID at BIOS, it still allows the OS to recognize the disk as IDE albeit at a much slower PIO mode. Installed the AsRock supplied disk drivers. Still no luck.

I found a RAID driver in their website and literally has to reinstall over the current XP to change the disk driver to the RAID one. All of a sudden, the speed of disk became DMA mode. So, the Mobo guys only allow full speed DMA mode under RAID driver only.

By not doing either of the following, they really wasted a lot of my time.


1. RAID is the default so force the XP to recognize this as a RAID device and ask for the driver during install time. This would have avoided me unknowingly thinking that disk is IDE and everything is fine.
2. If allow the dual mode of recognizing RAID as IDE when only one disk is present, then let the drivers access it in full speed DMA mode.

Saturday, January 28, 2006

Java Docs Search made easier

About a couple of years ago, as we were developing with J2EE and whole bunch of open source libraries (perhaps some 20 in number) one of the things I observed to be clumsy is locating Class names or method signatures while coding. At times you only remember a part of a class name or a method name. You end up having to go to the web to look for it. Each library's JavaDocs are in different places and it does waste you time.

There was a need for a tool to search across multiple JavaDocs. Upon Googling at that time, we found that there was a desktop based utility available (I don't recall it's name right now) to search Java Docs across multiple libraries or JDK versions. The beauty of it is that it takes the actual Java Docs files as it is and indexes them. The negative side of it is it needed to be installed in each developers PC and we had over 30 of them in the team.

I felt that it would be a good small project for someone to make the above as a web based application to save the deployment effort each time a library changes. When we were welcoming a couple of new colleagues, this project was a obvious choice for one of them when we needed him to get familiar with Struts.

Hence the "API Search" tool was born and used internally fairly regularly. From the beginning, I wanted this to be open sourced as a way of paying back to the community and also for collective improvement and maintenance of it. For one reason or the other (though not directly due to my previous employer as I did have the approval to contribute to FOSS wherever I see it fit) it wasn't done and I also left my previous employer last year.

My friend and ex-colleague Karthik attended the foss.in with me in last November. He was very much impressed by the FOSS approach there and went back with the renewed vigor and one of the first thing to come out of this fresh energy is releasing of APISearch as a open source tool under GPL license. I am going to join this project as a developer myself and contribute anything I can to this. I am certainly proud of Karthik for this.

Go check it out. Please give feedback there or comment in this blog and we will take this further.

Return of Waterfall Methodology

Many of the thousands of readers of this blog(ok. ok. two or three readers) know that I really enjoy attending technical conferences as a way to keep myself up to date and often motivate(ok. almost coax them) others to do so.

After returning to Bangalore, I do miss all the good stuff on the conference front that goes in the US. As much as it is very expensive to attend a conference in the US, here is one conference I have decided to spend the hefty $5000 and attend. I seriously recommend you check this out.

I like what Andy's blog says about it:

For those interested in returning to Real programming, you might be interested in attending Waterfall 2006, a new conference designed to celebrate the joy of slower, sequential, plan-based development. It'’s sponsored by the United States Postal Service, the SEI, and Lager'’s Pub of Canton MD.

Be sure to click on the "Register Now" button, it really captures the flavor of this... er... event.

Thursday, December 01, 2005

John Vlissides

OO and Design Patterns has lost a true legend. He will be greatly missed.

Perhaps a week or two ago, I was telling some one that there is a chance they will update the book.

Thursday, June 30, 2005

Finally, the Java naming issue is over with

The Java naming jokes are now finally over with.

There are very simple names to follow:

Java SE 6 (Standard Edition)
Java ME 5 (Micro Edition)
Java EE 5 (Enterprise Edition)

Tuesday, June 28, 2005

Java ClassPath wildcards

Here is one feature that is a time saver and scheduled for the Mustang release.

ClassPath wildcards

No more writing shell scripts (Remember lcp.bat) for various platforms for looping. Endless typing of the umpteen jar files in a dir.

Sunday, June 19, 2005

Large project - Result of a process or inherent?

Here is was one nicely put statement about large project in the above link.

"I often hear developers described as 'someone who knows how to build a large system quickly.' There is no trick in building large systems quickly; the quicker you build them, the larger they get!"

-- David Parnas


Wednesday, May 11, 2005

VSS and list of shared files for a given project

Recently we have observed random corruption of a large VSS database recently at my work. As a stop gap measure, we have recreated a fresh VSS database to copy at least the latest source to proceed further. However we do have a number of shared files among projects and VSS doesn't have a built in report to list those files that are shared.

So here is a quickly hacked Ruby script for producing a "list of shared files in VSS project". It is also smart enough to ignore deleted shares when considering whether a file is shared or not. It might be useful for others so I am publishing it here.

List shared files VSS Report

Sunday, April 24, 2005

How to find out where a class is loaded from?

ClassLoader cl = aClass.getClassLoader();
while (cl != null) {
System.out.println(cl);
cl = cl.getParent();
}

try {
System.out.println(aClass.getProtectionDomain().getCodeSource().getLocation());
} catch (Exception e) {}

Friday, March 25, 2005

More about WebDav

Having said good things about the WebDav earlier, I also have to point out that at times we do miss out retry and parellel connection facilities available in advanced web clients like CuteFTP or FileZilla.

Here is a very cool Java library (OnJava article) that plugs into the Java's protocol handler mechanism and provides the retry and parallel connection facilities to HTTP connections. With this one should be able to build a cool WebDAV Client that is as good as any modern FTP client.

WebDav and File Transfer

As FTP is blocked at the firewall level in more corporations, we switched to WebDav (used the Apache 2's Dav module) for File Transfers between our offices. With WebDav, We also got an additional advantage of using the Windows OS's built in WebDav client (Web folders) rather than having to install an FTP Client or in most cases just use the Web Browser. Once the folder is setup, it is simply one more folder in the Windows Explorer. Since we use Apache on the server, we can rely on the industry standard Web Server and have to worry less about security issues.

Monday, March 21, 2005

Chairs we are looking at for Bangalore Office

Here are the pictures of the chair we are looking at for Bangalore office


Chairs Posted by Hello

Friday, February 18, 2005

Discussion on LDAP , OpenLDAP, etc

An interesting discussion about directory services, LDAP and OpenLDAP at slashdot.org

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)
}