Sunday, August 17, 2008
Another car related stupidity..
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..
Monday, July 14, 2008
got Wheels!!
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
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).
- Secures a job while he is still a student(under F1) atleast two months before graduation.
- His prospective company applies for H1B Visa in advance in April.
- He graduates in May (taking the generic/my case in consideration).
- He joins the company which had applied for his H1 and starts working on his OPT(still on F1.. remember)
- 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.
- Got a job in mid April. H1B Visa Quota already full :(
- Graduated in May.
- Joined Mailshell in June'07 (on OPT, still F1 status)
- 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.
- Mailshell agrees to have me work remotely from India for 4 months. ( and I booked the tickets, planned out my stay etc etc.. )
- 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).
- 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).
- 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!!)
- 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).
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..
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> '+
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.