Sunday, August 17, 2008

Another car related stupidity..

Yes.. I know.. another car related post.. but bear with me.

This morning I stepped out only to find one of the car tires flat.. well no worries I said, I have road side assistance; called the number to change the flat ( cuz I paid for it!!).

A guy in a large trailer/truck (the kind that carry 3-4 cars on their back) came and changed the tire with a smallish spare tire.. when leaving he told me that the tire was not flat, was infact fine but looked like that because it was parked so close to the curb .. Duh!!

I was so embarrassed to ask him to change it back again and I had no idea how to change it. Asked my room mate for help again who showed me where the jack was stashed in my car ( I sound like a retard :( ), showed me how to use it and the way to screw the tire etc (for even torque distribution). After huffing and panting and sweating profusely on a windy evening.. I changed the tire back.

What a pathetic misadventure on a weekend!! On the bright side, I did discover a nail in the wheel and that I had banged my wheels on the curb so badly that I would need to get them checked... damn.

Monday, August 11, 2008

Car hack..

As all of you know (if you read the earlier post), that my car has a Bose audio system. It sounds really awesome with 7 speaker surround sound and 9 subwoofers and/or pods (the term am not sure of but my car geek friends refers to.. sort of the refers to the speaker design that moves back and forth alot, so if you are standing close to it, you get a different feedback for the beats.. these pods are fixed next to my legrest, so the whole experience is pretty rad when you are driving).. ofcourse, I'm no audiophile.. the only speakers I ever purchased were the cheap Rs300 speakers in India, so my perception of the sound quality might be skewed.
Ok.. back on track. The only thing that this audio system lacked was an auxillary input to which I could plug in my mp3 player to (which is NOT an iPod). I went to the dealer and  was told that it would cost me $700 to replace the sound system, of course he had to bear with my loud WTF sigh.. there was no way on earth I was gonna do that. Next I went to some random car-audio store and asked him for a relatively inexpensive solution, and he showed me some gizmo for about $140 that interfaced directly with iPod, but did expose an auxillary-in.. but I didn't wanna pay for an iPod interface that I would never use, so I searched around for a simpler/similar solution.
Now fm transmitters were totally out of question, I had tried them and the sound quality sucked. Using that on the bose system was like tying a gold chain to a monkey. I noticed that there were tape/MD drive buttons and slots on the dash, but no tape drive, which led me to believe that there would be way to directly hook up a mod chip to that interface and get clean unadulterated music directly from my mp3 player (which is creative zen sleek iPhoto.. i know, it's relatively unknown, but it was the only mp3 player in my budget with a fm reciever in it). I googled "tape/md drive auxillary input mazda6", and voila! found Mazda6 forums where people were discussing exactly the same issues, and I discovered AuxMod in one of the archives, which was exactly what I needed.
Needless to say, I ordered it (but was definitely vary about the shady site), got it in a week by UPS, wrapped in torn magazine pages! Well, at $60, I wasn't exactly expecting a well wrapped manual with funky CDs that I would just toss into the trash. Next roadblock was installing it, the car-audio mechanics were charging about $200 for installation (I checked at two differnt places and they both gave me similar quotes.. another classic WTF moments), so I decided to install it myself (against the advice from all my friends/roommate and the ridicule by the car-audio mechanic who gave me a "yeah right" look ). My housemate let me borrow his tool set for my little adventure.
Had to rip open the cup holder, the gear interface, the glove compartment and the whole dash to reach the damn radio. Took me 4 friggin hours to install it and route the auxillary cable inside the armrest. After battling through some unmodular interfaces, weird sockets, mind numbingly complex plugs and being almost starved, dehydrated and exhausted to the point of unconsiousness, I pulled it off. This was one hack, not for the faint hearted.
It worked like a charm and was a totally rewarding experience. Finally.. took a long cold shower, took her out for a spin and treated myself with some bhel-puri and jal-jeera at Lucky Dhaba :)

Monday, July 14, 2008

got Wheels!!


Zoom Zoom Zoom..., originally uploaded by SridharV.

So after mulling over for over 2 years, I finally got a car. Its a 2004 Mazda 6i, with TRS, ABS, sunroof, spoilers, sports suspension, 6 cd changer, bose surround sound system etc etc (these are not included in the base model).

I won't go gaga over the specs, I know as much about cars as my grandma knows about computers. There were plenty of reasons why I waited so long to buy a car (or for some ppl out there.. too early). I never needed it in India or in NY.. but the public transport in CA sucks (for the lack of a better word). Being a geek/nerd and all, having a car was never a priority on my list.. but waiting for random ppl to reply to my car pool pleas on meetup groups was getting unbearable, plus I was missing some serious action in the Linux community as I was always too lazy to make it to the meetups using public transport... Also I was hopelessly dependent on my friends for the "mandatory" weekend outing (not that I'm complaining.. but sometimes I just used to go to get out of the house.. and do mindbogglingly boring stuff).

Now comes the question of choosing the particular car, the model etc etc. Why did I go for it? As I said earlier, I know zilch about cars, so the main things I was looking in a car were:
- Is it trendy and kewl :P
- Does it give a decent gas mileage.
- Is it sporty enough
- Its not toyota/honda
Let me explain the last point first. Toyota/Hondas are one of the best cars available in the US. Infact I came to US dreaming of getting a Honda Civic someday (just because I cleared few rounds of NFS with it :P) . Even my analysis factoring the depreciation rate, fuel efficiency, rate of fuel increase, total cost of ownership, resale value etc rated them the highest of the lot... but ever other person in US drives a friggin Toyota or Honda, and I would rather not get a car than get those cars (yeah.. call me a non-conformist if you will).

Now American cars were out (ford, chrysler, chevrolet etc).. they are supposed to be marginally better than trash cans, Italian cars were way outside my budget (ferrari, bugati etc), Korean cars were just too crappy and simple for my taste, and I was not ready for a German car yet (although I came really close to buying a BMW).. they are infamous for their maintenance cost. Indian cars in US are too expensive too (little known fact.. Jaguar is now an Indian car :)). That left only Japanese cars..

Toyota/Hondas were out of consideration (I did consider Prius for the eco-friendly factor.. but dropped it later for its shitty shape and a puny 76hp engine).. this left Acura, Lexus, Nissan and Mazda. I test drove Acura RSX and really liked it.. but was not getting a good deal on them.. and frankly the dashboard looked like an oven counter with all those gaudy knobs. Next car I considered was a 2008 Nissan Altima Coupe.. I was hell bent of buying one.. but the insurance was taking a toll on me ( who knew that new drivers with almost new black coupes are statistically predisposed to be in an accident).

I spend the better part of two days haggling/bargaining the price of that Nissan, called about 10 friends, called my dad.. and finally decided that I should not go for it.. the exasperated and frustrated dealer showed me and asked me to test drive this Mazda 6i.. and in an instant I knew that it was to be my first car. It fit snugly into my budget, had sporty looks with power to match, had decent fuel efficiency and I really felt good driving it.. finalized the deal and paper work the same day and got the car+insurance the next day.

In retrospect, I might have paid a bit more than the car was worth, but you have to understand my condition.. I had been staring at code since 8 am that day, left work at 6 pm and was haggling with the dealer for over 4 hours. At that point I had lost all the care.. yes.. I know I should have gone the next day.. but no point now.. the deed is done. And believe me, you possibly cant get a really good bargains from a person who has been trained to not give you good bargains and is in business for over 20 years.

Bottomline, I love the car.. it's everything I needed in the car.. panache, power and style (and decent fuel efficiency).. so next time you are in the Bay area and need a ride, give me a call.. (no..I'm not starting a cab service :)

Saturday, May 03, 2008

H1B issues.. the jargons and the laws surrounding it

Let me start by stating that this entry is based on my perception of H1B laws and jargons. They might not be accurate (if so, do correct me). That being said, this entry is specifically for family and friends in India, who might not exactly understand my erratic/fluctuating travel plans or my "headless chicken" rant about immigration laws which is usually high on jargon. I know they are not alone in feeling helpless halfway across the globe.. there are atleast 32,000 people with higher US degrees who might be in similar situation (Based on the tentative figures released by USCIS).

Starting with basics, keep these acronyms/jargon in mind as you go through the rest of this post (I have tailored this entry to my specific case, so I won't be going into anything that doesn't concern me.. life is complicated enough as it is):
  • F1 Visa: Just ignore the word Visa, and think of the word status. Having F1 visa means, having student status.
  • H1B Visa: This visa means that my primary purpose of stay in the US is to work for a US based firm.
  • OPT: (Optional practical training) You can think of it as apprenticeship or some sort of a project work that you do after graduating from a US university. After graduation, a year of OPT period is allotted to every student when he can work in a US based firm. Even though the student has graduated, he is still in F1 visa (i.e. he is still considered a student). It is during this period that he can apply for a change of Visas ( from F1 to H1 => student status to working status).
  • POE: (Point of Entry). This comes into picture when you apply for a change of visas (F1 to H1). If you apply for H1 under POE, then you'll have to leave the US and get your Visa application stamped at the US Consulate in another country for the visa to come into effect(Mainly your home country.. i.e. India, else you have high chances of getting stranded in a different country :) ... seriously!!)
  • COS: (Change of Status). This means that you don't have to leave the country to get your Visa stamped for the visa to be effective.. you can get it stamped whenever you want (when you are in India).
  • 1 April-1 October: H1B applications are accepted from 1 April each year till the quota of 65,000 for regular candidates and 20,000 for candidates with higher US degrees is reached. Once the visa application is accepted, it becomes effective from October 1(I think).
With those out of the way, until the last year, things progressed in following fashion for an International student with higher US degree:
  1. Secures a job while he is still a student(under F1) atleast two months before graduation.
  2. His prospective company applies for H1B Visa in advance in April.
  3. He graduates in May (taking the generic/my case in consideration).
  4. He joins the company which had applied for his H1 and starts working on his OPT(still on F1.. remember)
  5. Visa gets approved and his Visa status changes smoothly from F1 to H1. Note that he still has a good 6-7 months of OPT remaining.. but since he is no longer in F1(i.e. not a student), those 6-7 months doesn't matter now.
Since I have been know to have a knack of getting myself in highly complicated situations, Here's what happened with me. ( Note that parts of this will be exactly the same for those who didn't make the H1B lottery last year).
  1. Got a job in mid April. H1B Visa Quota already full :(
  2. Graduated in May.
  3. Joined Mailshell in June'07 (on OPT, still F1 status)
  4. Mailshell applied for my H1B Visa in April 1'08, but OPT only valid till June'08. So essentially June'08-October'08 without a valid status in US. Of course, H1B visa was applied under POE since I had to leave the country. (I hope you remember all the jargon I explained earlier). There were 32,000 applicants for a quota of 20,000.
  5. Mailshell agrees to have me work remotely from India for 4 months. ( and I booked the tickets, planned out my stay etc etc.. )
  6. Near about April 3'08, new bill passed allowing for the OPT to be extended for another 17 months (a total of 29 months now provided that Mailshell registers for some e-verify program).
  7. Another ammendment stating that OPT for students(like me), who have gap between OPT expiration dates and H1B start dates, will be extended automatically to cover the gap(provided that they get their H1Bs), comes into effect... This applied to me since I got a reciept for my application(meaning that I made the lottery and had chances of getting a Visa approved).
  8. Remember my application was filed under POE... well if it is POE, the ammendment I mentioned above wouldn't make much sense since I would have to leave the country anyway to get visa stamped. (Folks, you see the conundrum here.. to cancel the fligh tickets or not to cancel.. aaah!!)
  9. Lawyer applied for an ammendment in my application to change it from POE to COS which means that I wont have to leave the country before October...(only now I wanted to).
Now no matter how advanced US may seem to the rest of the world, its not (no offence here).. there's still lot of beareucracy and paperwork involved (although much much less than India :) ), the dhs(who manage immigration at the borders) might not have access to the updated USCIS records, and they would need papers to prove that I have the right visa to get through.. in other words, person leaving the country might as well get a one way tickets.

After talking to my lawyer, and friends ( some of whom have access to huge law firms specializing in immigration) , I was convinced that leaving country at this point would be really risky. So there goes my plans for a India trip.. (I intend to take the first flight to India in October.. On the bright side, I will be celebrating my birthday with them after 8 years)

If you think that I got the short end of the stick (which I did).. think about my friend who had to postphone his marriage!

Hopefully I explained this well enough without assuming too much about the reader while remaining within acceptable limits of verbosity :).

PS: To all Indian readers of this enty: It would be great if you could translate this article to Indian languages of your choice (need atleast hindi and tamil).

Wednesday, April 23, 2008

Tweet tweet..

If you are reading this blog and are !(family||friend) then chances are that you would have heard of the microblogging platform known as twitter. It was released about 2 years ago. I had previously rejected the idea as a ludicrous waste of time and unnecessary invasion of privacy.. but digg and slashdot have rammed the idea down my throat and I have finally given in to the idea of using twitter.

The main reason I have joined the twitter bandwagon is because I don't have enough time to update this blog, be visible on social networking websites like orkut and facebook or even keep in touch with enough friends. Twitter solves the problem by letting me broadcast a one liner to all these places with just a single IM message to twitter@twitter.com... nifty.

Twitter provides a javascript/json based script to update the status badge on blogger. This badge occupies a rectangular area and if I was forced to use it, I would have put it in the sidebar. Not only does it messes with the Feng-shui but also eats a chunk of my screen estate. People hardly even notice the sidebar (according to the stats by various analytics).

After messing about 30 minutes with the badge code, I came up with the following fully functional twitter status line(not badge) which has all the functional elements of the badge. The title links to twitter's follow me and a mouseover action would display the update time as a tool tip.

Here's the code:


<script type="text/javascript">
function twitterCallback2(obj) {
var twitters = obj;
var statusHTML = "";
var username = "";
username = twitters[0].user.screen_name
statusHTML = '<span title="'+relative_time(twitters[0].created_at)+'"><b>
<a href="http://twitter.com/codeyman">Twitter Update:</a></b>&nbsp;'+
twitters[0].text+'</span>';
document.getElementById('twitter_update_list').innerHTML = statusHTML;
}

function relative_time(time_value) {
var values = time_value.split(" ");
time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
var parsed_date = Date.parse(time_value);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
delta = delta + (relative_to.getTimezoneOffset() * 60);

if (delta < 60) {
return 'Updated less than a minute ago';
} else if(delta < 120) {
return 'Updated about a minute ago';
} else if(delta < (60*60)) {
return 'Updated '+(parseInt(delta / 60)).toString() + ' minutes ago';
} else if(delta < (120*60)) {
return 'Updated about an hour ago';
} else if(delta < (24*60*60)) {
return 'Updated about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
} else if(delta < (48*60*60)) {
return 'Updated 1 day ago';
} else {
return 'Updated '+(parseInt(delta / 86400)).toString() + ' days ago';
}
}
</script>

<div id="twitter_div">
<div id="twitter_update_list" align="left"></div>
</div>
<script type="text/javascript"
src="http://twitter.com/statuses/user_timeline/codeyman.json?
callback=twitterCallback2&count=1">
</script>




Of course, since I am not a web developer by a mile, I agree that this code might still be ugly and can still be optimized, but hey.. its smaller than the older code, doesn't do any lookups for external javascripts.

If any web dev out there could optimize it even further.. do let me know.