Showing posts with label Infotainment. Show all posts
Showing posts with label Infotainment. Show all posts

Wednesday, May 18, 2016

Takeaways from RedisConf

I have been using Redis as a swiss army knife database, both at work, and for hobby projects. So I decided to attend RedisConf this year. Low cost of entry, more tech talks than marketing spiels, and a chance to meet Salvatore Sanfilippo, the creator of Redis, were the big draw to the event.
The event was a great introduction to upcoming and lesser used redis features (used by me that is). It was a fun and eye opening window into a lot of different domains and use cases. When all you sell is cheese, the concept of sour cream is interesting..
Some that blew my mind were:

  1. IoT: Prior to this conference, I had a limited understanding of it's use-cases. IoT, to me, was just using a web-controlled device. A light-bulb, or a smart fridge, that'd ping me if the milk ran out etc. I.e. a very Silicon Valley centric first world problem solver.

    The use-cases that Laura Merling provided in her talk, just blew me away:
    • Disney MagicBands: When you navigate your way through disney parks, your hotel automatically knows that you are coming, your door automatically unlocks & most importantly, if you get dangerously close to a moving ride, the ride adjusts itself (can stop) to get you out of harm's way!
    • The oil & gas industry: The oil rigs generate a lot of real time information on the equipment’s performance and health — pressure, temperature, flow rates and multitudes of other variables. IoT based solutions provide real time analytics for predictive and preventative measures. This link explains this further.
    • Factory safety: Remember the incident, when an automotive factory robot arm crushed a factory operator into a metal plate. This happened because the robot arm mistook the person as another part of the machinery. There have been around 26 deaths in the past 30 years in US alone. This number, although low, can be further brought down by judicial use of IoT tech (just like Disney's magicBand).
    • Home Automation: Home automation industry is fairly nascent right now. There is an app to control the lights, another one to control your locks, another one for your TV and so on. There needs to be push from the consumers for tighter integration of products for arbitrary control. E.g. to turn down the volume of the music system if someone is sleeping in the other room, or turn on the lights when the doors are unlocked, and so on.

  2. Distributed systems & the rise of DevOps: There were couple of talks by companies like Netflix and Scopely. The amount of data served and generated by companies these days is monumental.

    Avram Lyon from Scopely gave a behind the scenes look at the data usage. He talked about a simple mobile game where the goal is to hit oncoming zombies with some objects. His game has a modest 100,000 users active at any given time. To generate insights into the game (E.g. People in California like to throw rocks at zombies, whereas people in New York like to hurl trash-cans at them, or that no-one seems to like throwing hammer at zombies), the amount of data generated and recorded is huge. This is used to provide the development and marketing teams with actionable intelligence. Few TBs of data is not huge by today's standards, and conventional databases are ill-suited for this endeavor. Redis, along with it's other supporting actors lends well to this use-case.

    The conference was filled with 2-4 member teams who had set up massively scaled systems within 5-6 months using FOSS(kafka, spark, redis etc) on el-cheapo AWS cluster. Horizontal automatic scaling being the key takeaway. One doesn't need to be a star programmer to build these systems. The architecture has matured enough that systems can be deployed with minimal effort (relatively).

    Another emergent database concept was Eventual consistency. Unlike traditional database systems, that dictate that the view of the databases need to be the same for everyone, eventually consistent databases are like.. meh, it's not the end of the world if are able to access the new season of "House of Cards" few minutes after someone else. Heuristics are further tied to extrapolate behavior of the system to get massive scalability. Amazon, Netflix etc have this kind of systems. Take a look at this to get more detailed view.

  3. Hardware advancement: Traditionally, Redis has been used as a memcached replacement. Something that sits in-front of traditional sql databases. Apps like Twitter et al would store the hot keys in a massively distributed redis cluster (in order of TBs) and would later save these to some backend stores. This adds another layer of complexity. With the advent of flash memory, the backend stores typically now sit on flash memory. However, the newer NVDIMMs & NVMs perform orders of magnitude better than flash memory at just 1/10th the price of RAM. With the closing gap between RAM & Flash, the functionality and scalability of Redis is increasing by leaps and bounds.

  4. Redis Modules: Usual databases are just dumb datastores. Their main utility is to store the data efficiently in the memory and provide an easy way to retrieve it. All the intelligence to consume that data goes into the client code. Salvatore announced that starting 4.0, Redis would support loadable modules that can be used to offload client functionality to Redis. You could use this to keep track of counter rates or a running average or use simple ML algos to automatically classify the images being saved on the DB or apply some sort of filter on them. The possibilities are endless.
Smaller advancements in hardware typically bring in much bigger change in software, that exponentially and radically changes the application development paradigm.

About a decade ago, a simple classifier on an MPI Beowulf cluster took few weeks to implement. These days, I could use a python ML classifier to do the same thing in just few hours.

As complicated technology becomes more pervasive, the entry points to the tech itself gets easier, which further paves way for more complicated technology. Redis has already enabled a lot of industries, which are further revolutionizing everything from healthcare to robotics.
We live in interesting times.


Friday, September 11, 2015

Mosh: The ssh client replacement you probably didn't think you needed.

I had to take a breather after writing the heading to avoid giving an over the top introduction to Mosh (mobile shell), but it deserves nothing less. It is a relatively new software (2012) from the well known MIT AI labs. Mosh is based on a new protocol SSP (State Sync Protocol), that runs over UDP instead of TCP. It does all the session management at the higher levels, which makes the connection incredibly robust. Few places where Mosh really shines on my setup (Mosh+Tmux):

1. When moving between networks (Wireless to Wired to VPN at home), the connection automatically migrates to the new IP. This wouldn't have been possible if TCP had been used. Consequently, my shell connectivity to servers stay up... No more banging the keyboard when ssh session abruptly freezes, or me trying to clear up a ssh terminal after the computer resumes from sleep. The terminal comes back up at the same place no matter what the network situation is. Its Magic!! I'm running tmux within mosh and the difference between local and remote machines has completely blurred.

2. Mosh has predictive typing! When typing on a ssh client, your keystrokes are relayed to the server, and displayed to you when it appears on the pseudo terminal at the remote end. This works great when you are working on a network with low latency, but try working from a slower connection from home, or god forbid, the caltrain, a coffee shop or from an airplane using the gogo inflight connection, there is a very significant delay between when you type and when the letters appear on your screen, which makes any sort of remote work next to impossible. Mosh gets around this issue by showing you what you type, bunching the updates to your screen in a low latency setup and later syncing the updates to your screen in background (e.g. if you type an 'i' in vi command mode, it should not show up, but it will show up when the network is very very laggy, however it will be erased when the state is synced from the remote server).

3. Mosh uses SSH protocol to communicate, so it automatically uses all the SSH configurations and writes to ssh logs. All one needs to do is call "mosh ", just like ssh. One doesn't need to muck with _any_ configuration files.

One important distinction between ssh and mosh is that ssh is a set of protocols whose utility goes well beyond providing a secure shell. It allows tunnelling, file transfer, X forwarding etc. None of those things are supported in mosh. Mosh was only meant to be a more robust shell.

That being said, Mosh hasn't been battle tested the way ssh has (specifically OpenSSH), but the design looks sound and simple with a relatively small attack surface, which gives me a lot of confidence in using it.

Go try it out.. and let me know what you guys think.

Tuesday, September 07, 2010

A new era in technology..

If you have tapped the pulse of the tech industry, you would have smelled the winds of change. This is an exciting time to be in the bay area.. rarely does anything makes me come out of my blogging slumber (blame it on twitter). 

Let me list a few facts to start with and then we'll extrapolate the trends (just google them to verify):
  • Intel bought Infineon's wireless division.
  • Newer Android smartphones sport 720p hdmi ports, 1GHz processor, 20GB memory (more or less), 512MB memory, some have a separate graphics processor. A phone with a dual core processor will be a reality before the end of this year.
  • Google is pushing forward on web apps, use case of these is still not obvious.. they don't really believe that someone will open a browser and then click on a button rather that type the web address. 
  • Google is working with Verizon and Motorola to push out new android phones.
  • Google worked with Verizon to support net neutrality *excluding* wireless networks.
  • IP TV/Hulu is becoming more and more popular.
Clearly all the big wigs are in on this (whatever this is).. everyone except Microsoft that is. Google has positioned itself as the next Microsoft.. not by coming up with a new OS and trying to displace Windows from the computers, but by just making Windows irrelevant. Android is now what Windows was 20 years ago.. By making Android freely available to the hardware vendors as the kitchen sink mobile OS that can run on any hardware (by totally leeching off Linux, but that's not the point here), Google has made sure that Android will go farther than what WinMo or iOS can ever dream of.

Most of you reading this blog will agree that the phones we have now are more powerful than the first computers we owned (even if that was just 10-12 years ago).. ofcourse we don't need a 1GHz processor to make phone calls or play small games.. where is this all going?

I believe that smartPhones ( or lets call them just phones because single purpose phones might soon be in museums) are set to displace our computers and even our cable connection. Why would we need a cable connection if we can view all the content online? and if we can view the online content on TV?! Why would we need an internet connection if our phones are connected via 4G(in a not too distant future). What if when connected our phones to our television sets and desktop environment were to magically appears?!

Let me describe a device that has been cooking in my head (not too radical). This device is an android phone.. just a run off the mill evo or droid. As soon as you connect it to your TV (via some micro usb dock), you desktop automagically appears.. running android or some variant of chromeOS. You can run android apps or some apps that are not suited on a cellphone like google Docs, photoshop etc. I'm guessing Google will be releasing a web app store just for this platform. Open the verizon Vcast app or some app from one of the network houses to watch streaming television (maybe via some sort of "tv" mode).. Throw in a bluetooth keyboard/mouse if you wanna use it like a regular computer. Once 4G becomes prevalent, this sort of device can easily be as pervasive as a toaster.

Google has positioned itself well.. It owns the whole content delivery mechanism and if Google and Verizon's recent proposal is accepted, it's own content will get preferential treatment. In one fell swoop it would have monopolized multiple markets.


Intel knows this very well.. it also knows that majority of its revenue comes from desktop market, so it acquired Infineon to get itself in the mobile game. It went a step further and acquired McAfee. If android's market penetration reaches the same level as that of MS Windows.. it will unfortunately suffer the same fate.. which is.. become the main target for malware/viruses etc. Acquiring McAfee was just a logical step to ensure that it has a safe ride when android has its "Windows 95/Windows Me" phase :) .. plus since more and more of our data is moving onto the cloud, cloud security is still a new and emerging market.


Well.. all you can do now is grab some popcorn and enjoy the ride.. some day you'll be telling your kid about computers that just sat on a desk or that needed a separate bag.

Monday, August 10, 2009

The Buildbot Experience..

I've had been pushing myself to submit a patch to buildbot and then write a post about it, but days,weeks and months have passed by and I haven't even read the source code (let alone writing some of my own).. well what can I say, I've been incredibly lazy (the word "busy" can be substituted here.. but that would be a lie). Let me spread some buildbot love rather than just be yet another leach.
Now what is buildbot? According to the website:
The BuildBot is a system to automate the compile/test cycle required by most software projects to validate code changes. By automatically rebuilding and testing the tree each time something has changed, build problems are pinpointed quickly, before other developers are inconvenienced by the failure. The guilty developer can be identified and harassed without human intervention.
It's a build/test automation system that can run on a variety of platforms. Well there are a variety of free and commercial apps out there which do the same. I chose it because it was relatively light weight and was written in python (an impressive list of clientèle was a factor too).

As the relatively small company (note "small" here just means employee strength) where I work in grew; software maintenance, integration and the task of porting the code to all the platforms and then testing them just became an incredibly arduous task. We already had a semi-agile system in place and were using version control, but it was just not enough. In a small firm, even a single dev day spent on anything other than coding/design is a day wasted (and we devs are known to be lazy and don't really like doing the same things again and again).

Our product is supported on many different platforms, ranging from the ancient(linux 2.2, mac 10.2, Sun Sparc 5.8 etc) to relatively new ones(freebsd7, macosx-universal, windows 2008 etc) totaling to about 13 different platform. Commercial systems were out of the question because none of them supported all the platforms that we had, so were any .NET based ones (not possible for *nix systems) and we preferred python based system over java because our test bed was completely in python and we just didn't think that adding another language to the mix would be a good idea in the longer run. Setting up buildbot on the newer systems was a breeze (just apt-get/yum/portage etc was good enough in most of the cases, a rare recompile on some others). The older systems and Windows were a bit messy (big surprise there!). Some of the systems didn't even have python (or had a really old version), let alone twistd (a buildbot dependency). After 3 days of hushed cursing, head banging and a lots of ugly hacks, I got buildbot to run on all of the *nix platforms. Windows kind of made me feel completely handicapped because once the install failed, I had absolutely no idea how to get around the situation. I ended up setting up a proxy Linux system for windows (credit for the idea goes to one of my colleagues), which identified itself as a windows machine and just did the needed compilation over ssh on Windows (using VS2008).

Once the crude system was setup, we started adding bells and whistles. Every svn update now triggers a build on all the 12 different platforms, sends emails to a group of people who want to be notified if something is broken and to the person who broke the code. Another process triggers a nightly builds which updates the code,does a clean build, run a set of core regression tests, creates a package(tagged with date and revision number) and posts the status on a pretty page. The status page (html and css) was also hacked to list the tests that failed on particular machines. It also uploads the package to a different repository which can then be used by the QA team. Later some more hacks were done to maintain just a small history of packages (nightly builds, not the production builds) and then some (idiosyncratic to the product)... Check out Google Chrome's buidbot page.. now imagine that for 12 different platforms!!.

We did get the obvious benefits:
  • no integration downtime.
  • no downtime to port the product to different OSes.
  • continuous integration made the development process more robust/agile.
There were some not-so-obvious benefits too:
  • Since creating a package on all the platforms just involved clicking a button on the web interface, debugging->packaging->testing cycle was made a lot faster as the QA didn't have to wait for developer to create the package (who would normally try to include all the fixes in a package before creating a package), which means faster feedback on the remaining issues/builds, which means a happy PM :)
  • Automating build across different platforms meant that all the platform specific hacks would have to be cleaned up, which meant a more elegant build process, which lead to faster build time and did point to some issues that were being overlooked.
  • The green color signals a "pass" on the buildbot status page. Surprisingly we(all the devs) find it rewarding to see a green on the status page with our names beneath it, I think I can safely say that our productivity has gone up and our favorite color is "buildbot green" :) .
The whole system works so well and has relieved me of so much of repetitive/boring work, that I was guilty of using it for free. And since I am a poor developer, all I could do was offer some CPU cycles on my home machine (did that for about 4-5 months, until the summer heat forced me to switch off my PC) and offer my help to write some code (which I'll get around to doing one of these days).

On a totally unrelated note, I'll be taking a trip to Europe (Paris, Zurich, Munich, Prague, Brussels, Brugge, Amsterdam), so drop me a line if you've been to any of these places and would like to recommend me something that I should not miss.

Saturday, March 21, 2009

Some Sci-fi love

Sci-fi and fantasy as a genre have few patrons, the rest however are non-appreciative, or just downright insulting.

I not only love the out worldly experience that can only be communicated by these genres, but also the profound depth and messages these deliver. Yes, it's not real and yes it can never happen, but when has that stopped it from being communicative of human values.

I'm making a case for sci-fi movies like The Matrix trilogy, The Watchmen and television shows like Battlestar Galactica. Let me tell you by saying that I'm a big.. I mean really big fan of these shows, so it really grind my gears when people just go and watch these for special effects or just dismiss them as "kids category". The beauty of these genres is that they are the only ones successful in mixing socially relevant messages with entertainment. Others don't even come close..

Today BattleStar Galactica aired its final episode and I was in tears (yes geeks do cry, you just need to know how to make them cry). On the cover it deals with a race of humans (preceding our own, but somewhat still futuristic) in conflict with cylons (androids, which are almost humans), but at it's crux it spotlights human nature, both its dark and bright side, and tries to stretch the morally grey area in the middle to include everyone of its audience. The show was carefully engineered to instill hate against the cylons into the audience, the show then had the "good guys" commit justifiable crimes against the cylons, like torturing/suicide bombing (socially relevant ones at present), which although as I said, were justifiable but unethical, thus making its audience a part of the show. Its shows like these that make you introspect and helps you discover yourself.

BSG presented me with same moral dilema as The Fountainhead, and hands down, has been the best thing I ever saw on the tube. If you can look past the FTL drives, the dilithium crystal, the mental projection of cylons, i.e. all the jargons that alienate some people (mostly non-geeks), the message conveyed is pretty strong, you just need an eye to spot it out. This message is ofcourse hidden, if it wasn't, it would be a documentary. At some level, sci-fi/fantasy movies are documentaries after you peel the onion. Plot in these movies/tv shows is so thick, that it almost pains me to find people talking about it at a totally superficial level.

Take Matrix: The Revolution, the last fight sequence, when Neo is walking amidst darkness, rain and hundreds of Smith copies, and fights one of them at the end. The fight ends with Neo fighting Agent Smith and ending the war between the man and the machines, but how many of you noticed what the director wanted you to see? The song in the background was ancient Vedic hymn "Asatoma Sadgamaya", which signifies the victory of good over evil, the multiple copies and the darkness signified multiple faces of evil in dark times and the song itself points to the fact that Neo had already won the war by making his choice and knew the outcome. The choice, that architect was advocating in most of second sequel. The movie worked on so many levels, and each time I see it, I discover a previously uncoverd hidden meaning in the movie.
Coming back to BSG, well, that is the only sci-fi piece I know of that married belief, faith and science. It talked about angels & daemons, about gods, about prophecy, while still being mostly a sci-fi show.This show made some startling plot twists by projecting one of its main protagonist as a real angel, while couple of others as some sort of agents of "God", who play major role in turn of events. It tried to perpetrate the existence of destiny, of hope, of human values.. kudos to the BSG team, when they could have just got about same TRP ratings, had they shown a nonsensical, visual effects loaded series.

Watchmen, is another such movie. I read the book about two years ago, and I must say that although I don't really like the casting (except Silk Spectre ofcourse), it conveys the real essence of the book (not what Harry Potter movies did to the books). The book is more detailed, of course, but movie comes quite close. It makes you see the world from the eyes of the demented comedian, the omniscient Dr Manhattan, the genius..yet human Veidt, the idealist Rorschach, the observer Night Owl. I really love how the actions of each superhero is justified by their portrayed viewpoints, and forces the reader/viewer to agree with writer.

Sci-fi has come a long way from "Attack of Mars" to BSG/Matrix, it deserves prime time... definitely more than the mind numbing reality shows and soaps. Isn't it time the kirks, spocks, jon shephards, adamas, starbucks,trips, gaetas,McCays etc got more attention than "gossip girl" or Simon Cowell?

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

Saturday, March 01, 2008

Lens Fetish

I think its time I introduced you to my new love.. Canon Rebel XT. I had iffy affairs with couple of point and shoots and one really prehistoric film camera but there was something always missing in our relationship. I purchased this camera at a black friday sale last year and have never looked back since. I know I know.. she is not as good looking as Nikon D200 or as smart as Canon 5D.. but she gets me and I know that we are meant for each other. We had couple of lenses, filters, a tripod and a remote control together.. we are really settled now for some time.

Jokes aside.. I am still an amateur photographer.. infact I can safely say that I know most of the theory that goes into photography (after reading few books, manuals, articles and watching some videos)... but still suck at executing them. Exceptional photographs take a lot of patience, skill and time. If I take a 100 pictures in a day.. only 5 to 10 of them are worth keeping (which eventually make it to my flickr page). I have the most inexpensive gear that one can get and all individual items are less than $200 (thats dirt cheap if you ask any photographer)... This does mean that I have compromised alot on the build and optical quality of the lenses, but come on.. you don't learn drifting on a BMW with traction control :P .. and hey thats just my way of looking at things. Am showcasing two of my favorite pics to add credibility to my self proclaimed "amateur" photographer status.. the mistakes in these will be obvious to a seasoned professional.

A lot of my friends are into photography at some level and often ask me about it. Since SLRs are not cheap and the hobby isn't really meant for casual photographers who just buy cams and toss them aside for "occasions", they are wary about getting into it. Here are my two cents to those who are just planning on purchasing an SLR (from a point of view of a hobbyist.. not a professional):
  • If you never owned a camera before, DONT buy an SLR. Get a point and shoot.. experiment for atleast an year before getting into it.
  • Decide on the brand: Canon, Nikon, Kodak, Olympus, Sony etc etc.. its really important that you do your research before choosing a brand. Lenses are more expensive than the camera itself, so even if you go for a low end camera, you will eventually buy some decent lenses and quite obviously lenses meant for one brand are not compatible with others. (There are convertors, but you dont want to go down that road).
  • Dont buy a high end professional camera.. go for the inexpensive one first. I say this for two reason: Firstly, higher end SLRs are heavy and huge.. you dont want one strapped around your neck all the time.. unless you are making money off your pics. Lower end SLRs like Canon Rebel XT are lighter.. though it still takes some time to get used to the fact that you cant shove it in your jeans pocket; Secondly you might not wanna go all the way.. believe me, photography gets to the point where you have to get into science and physics involved to get a good effect. It takes more effort than you think. Be kinder to your pocket and start with a cheaper camera.. if you are not able to take good pictures with a cheaper SLR, an expensive one wont do you any good.
  • Buy a good tripod, but don't go overboard. Bogen Manfrotto 728B is perfect for beginners.
  • Be a flickr group regular.. atleast be a passive listener there. The information and help you can get from people in these groups is phenomenal.. Find out a group that gels with your needs. You can find many experienced professional to help you with your problems.
  • Read, read, read.. Read manuals, articles, tutorials on anything related to photography.
  • Learn to use a photo manipulation software like Gimp or Photoshop.. and no, picassa wont do.
  • Keep clicking.. I cant belabor the point enough.. probably the first few hundred, even thousand photos you click from your SLR will be worse than those clicked using a point and shoot.. don't give up hope.
  • Explore pictures on Flickr, look around for photographs.. see their EXIF information. Set those values on your camera and try reproducing the shot. I find this the best way to learn.
Also accept the fact that a decent picture of you will never be taken once you get good behind the camera :)