Saturday, May 19, 2012

From smartphone to flip, from Tmobile to Sprint: Why did I switch?

The short answer: Ting!


Why?
Su lost her smart phone. That lead me to start searching for phones, and somehow Ting showed up! By Tucows.. Remember them? Guess not, but if you think hard you would.

Ting isn't a mobile service, but its like a software engineers approach to how a mobile provider should operate. You pay for what you use! That's it, really. Its simple. Now when you start calling people, you don't need to calculate in your head, if its Sunday or Monday, morning or evening, early evening or late evening.. Or just broad sunlight (which is really bad for the bill).

No more of that shit.

A quick comparison against my current T-mobile bill showed that I should be paying half of what I currently do for the two lines I have, for the resources I use (call, text, data). And my bills would actually look readable.

But, to switch, I'd have to buy a phone from Ting. By telling this, I think I'd probably loose half of the people reading this post who I just got excited. Its okay, I lost my excitement for a bit too, who wants to spend 500 bucks for another smart phone (anyone?). Then, I had this amazing realization..

Wait for it!

You don't need to get a freaking smartphone. No you don't.
People can live perfectly fine without it, and IMO, can run things more efficiently without it.


But really, why?

The practical reasons I had to drop smartphone from my pocket are the following:

- With a typical smartphone (iPhone, or unlocked Android) you're stuck with a GSM phone in US, you can either have Tmobile, or AT&T. Both have bad coverage, almost anywhere outside of the city you live in.

- The rest of the two networks: Sprint and Verizon charge way over the roof for their services, and give you a device which doesn't work in the rest of the world.
That's what should be called, a "smart-knife".


- The battery life of any of these smartphone is barely enough to get you through the day. When I go for camping/offroading trips, and am out of power for some days, this thing is just dead weight after the first evening.

- Because 3G doesn't work once I start driving outside the city, the GPS doesn't work. This hit us really bad last year, when we were lost finding our campsite; and we went ahead and bought a real GPS, which hasn't failed us once.

- For places where I don't have access to WiFi, but want to use my iPad, even though my Android is nice enough to become a WiFi hotspot, it becomes hot like its on fire, and dies in the next hour.

This is what you actually need.
- The thing weighs a ton. Sure I'm used to it, but it still is like carrying a rock in your pocket. - Because I have so many distracting apps on the phone, its very hard to put this thing down and out of sight. Instead of taking the time to absorb my surroundings and
 indulge, I'm just constantly checking my phone.

I think once you get rid of this obsession to have this single device which does everything, things really open up for you. Individual devices put together (GPS unit, mobile hotspot, iPod, camera) do a much better job than a smartphone ever would.


My Setup
So, what do I do? I create an account with Ting, order 2 "feature" phones with a battery life of 840 hours (standby), and which weigh like 3 ounces. They have 2 apps I like: One is calling people, and other is texting people. And they do it really well!

Does this mean I'd never use internet again? Hell no!

I'm not finished explaining my setup. On top of these two phones, I got a WiFi hotspot, which can last me 8 or so hours of continuous connection. I already have an iPad, which makes for a really great net browser with its much bigger screen estate (compared to a typical smartphone), and has a battery life similar to the WiFi hotspot -- 8 hrs or so.

Overall, I have two lasting phones which won't die on me, and with Sprint, would provide me way better coverage than T-Mobile; and a way to browse the net whenever I feel like, without worrying about getting cut off due to battery.


Experiment

The experiment is simple. Live without a smart phone. Use whatever else as needed, which means:
- Plan ahead if you want to go somewhere.
- Instead of IMing: Call people, or text them. That'd save you time anyways.
- Use pen and paper for writing notes (I already carry a Slimmy wallet, whose 3rd compartment carries some paper pieces for note taking) -- and export them to TODO / calendar whenever you have access to net etc.

That's it really. Let's see how it turns out.

Tuesday, June 26, 2007

Releasing Desktop Flickr Organizer

About

Desktop Flickr Organizer is a flickr photos organizer right on your own desktop.


Why should you be using it?

Flickr's web based organizr is slow, updates take time. You can only use it when you're online. DFO on the other hand, stores all the updates offline, and with a simple and intuitive graphical interface, allows you to be way more productive. You'll never dread having to organize sets, edit titles, descriptions and tags for the hundreds or thousands of photos you've accumulated. And you can do all this editing, when you're just trying to kill your time in train, or that long plane trip.

What all does it provide?

1. Uploading and downloading of photos. You can download selected photos or the entire sets.
2. Edit information attached to photos; delete photos from stream.
3. Add/Remove tags associated with photos.
4. Create new sets, edit set information, add/remove photos from sets, delete sets.

More about it on its homepage http://code.google.com/p/dfo

Friday, April 13, 2007

अब तुम हिंदी में ब्लोग कर सकते हो

कभी सोचा है कितना fundoo होता अगर आप "Haal kaisa hai janaab ka" टाईप करते और वह अपने आप जादू से "हाल कैसा है जनाब का" में convert हो जाता? हमने आज वह संभव कर दिया है अपने नए blogger transliteration feature से। अब आप अपने विचार, अनुभव, और तो और अपने पसंदिदा bollywood गाने भी publish कर सकते हैं।

Transliteration option को enable कर आप हिंदी के शब्द टाईप कर सकते हैं, उनकी अंग्रेजी धव्नी के समान शब्द लिख कर, और अपनी आंखों के सामने आप इन अंग्रेजी शब्दों को देवनागरी में बदलते देखेंगे। और तो और, आपको अंग्रेजी शब्दों से हिंदी शब्दों कि mapping भी नहीं याद करनी पड़ेगी। इसका मतलब आपको WeiRD UpPerCasEing कि चिंता करने कि ज़रूरत नहीं सही हिंदी spelling के लिए। बस वैसे ही टाईप कीजिये जैसे कि आप करते हैं, अपने style में, और गूगल को आपका मन पढ़ने दीजिए। ह्म्म्म, लगभग। हमने जाना कि सबका हिंदी शब्दों को अंग्रेजी में लिखने का अपना अलग तरीका होता है -- इसलिये हमने एक personalization mechanism डाला है जो आपका लिखने का तरीका याद रखता है। एक बार ठीक किया, और अगली बार से आपको वह शब्द सही मिलेगा।

हम प्रष्ट्भूमी में machine learning technology इस्तेमाल करके आपको सबसे उत्तम transliteration देते हैं। इस तरह से, आप अपने लिखने और अपने आप को express करने पर ध्यान दे सकते हैं, ऐसी भाषा में जो आपके दिल के पास है। तो हो जाइए creative, इसे try कीजिये, और यहाँ discuss कीजिये। हमें उम्मीद है आपको इसे इस्तेमाल करने में उतना ही मज़ा आएगा, जितना कि हमें इसे बनाने में आया है!

नोटिस: ये translation लेखक मनीष ने गूगल कि original post से अपने हिंदी भाईयों के लिए किया है, इस उम्मीद में कि यह useful होगा। यदि इस translation में कुछ गड़बड़ हो तो लेखक क्षमा याचना करता है।

Friday, February 02, 2007

New Flickrfs release v1.3.9

After some long time, I again had a chance to work upon my favourite filesystem after reiserfs, flickrfs. This release doesn't add nice cool features, this one is targeted towards robustness, resource utilization and efficiency. The previous versions of flickrfs had various issues, namely:
  • Slow internet connection, time-outs or other errors, would grind flickrfs to a halt; forbidding it to download information about sets, and stream.
  • If the number of images grow, in order of thousands, flickrfs would start consuming tons of RAM and eventually swap space; and would literally make my old thinkpad R40 crash.
  • Retrieval of full metadata information for each image was time and network resource consuming, and mostly not required.
  • Sometimes flickr response would return error, even if the uploading of image succeeds, making flickrfs generate false error report; and confusing the end-user, who would then end up uploading the same image twice. (confusing huh? ;-))
  • For developers, a.k.a. me, flickrfs code was huge, all in one file, with lot of boilerplate code sections.
This version v1.3.9 of flickrfs tackles all these issues (also see features list):
  1. Robustness - Flickr operations, as in, interactions with flickr server are now fail-safe. flickrfs handles the URLError exceptions thrown by the operation, checks its result, and retries the operation multiple times in case of failure. Thus, even if connection is lost temporarily, flickrfs would continue its operations unaffected.
  2. Efficiency - flickrfs retrieves the sets information in parallel, background threads. Hence, the directory structure is created quickly, allowing users to start working. If some sets couldn't be retrieved the first time, they'd be taken care of when *syncing* kicks in. Secondly, full metadata information of images would only be retrieved when asked for; though they'll always be listed in the directory. Its just like the way flickrfs handles images.
  3. Resource Saving - flickrfs would now store the image information in Berkeley db database, instead of storing it in memory. Let come millions of images, flickrfs would still consume only negligible amounts of RAM; regarding hard disk space, it would be in 10s of Megabytes; not an issue for today's computers.
  4. Refactoring of code - Developers, again a.k.a. me, the code is now divided into 3 different files and... wait! hmm.. you shouldn't care about it. Just know that its more beautiful :-).
So, just give it a whirl. I'm sure you'd like it. More about flickrfs on its homepage.

Friday, December 01, 2006

Lost memories : Tech Talk by Guido in Google

Some time back there was a tech talk in Google given by Guido about Python 3000. I blogged live from the talk, but never came around to publishing it publically. So, here's it, copying as it is.
---------------
"Hi, I'm Guido. Creator of Python Programming Language. I joined Google last december, and its great working here."

Idea behind Python 3000:
- Dun design a new language.
- Lot of bug fixes, even old ones from 90~91.
- Dun become Perl 6

Concerns:
- backward compatibility
- migration of code from 2.x to 3.x

Process:
- Certain python features from 3.x will be provided to 2.x as well
- Development of 2.x and 3.x will go parallel
- 2.6 - certainly, 2.7 likely, beyond 2.9 never!

Features:
- All string unicode by default
- dict.keys(), range(), and zip() won't return List
- keys() shd have iterator
- Drop <> as alias for !=
- Redesign I/O library. Currently based upon C I/O library. Core dump in C is fine, but not in Python. Need to know how many bytes are already buffered, while doing I/O (?).

NOT going to DO:
- change hash, keys to attributes - dict.keys() to dict.keys
- have programmable syntax / macros
- change look and feel of language
- add radical new features (can always do it later!)

Migration:
- Use pychecker to do an 80-90% job - but can't do it with certainity.
- warns about doomed code - like dict.keys().sort() (Note, dict.keys() is no longer a List. Its an iterator. Do I agree with Guido on this? Probably not!).

Some operations:
- In 2.x -> x//y will return float, not x/y!
- In 3.x -> If x and y are Integers: x/y will return float.
- Say "if key in dict" rather than dict.has_key()


Cleanup:
- Kill classic classes. Classic classes will no longer exist in 3000
- Exceptions must derive from BaseException
- Remove last differences b/w int and long
- Scenario: Suppose you have a sub module named sys, whenever, you say "import sys", it will utilize the sub module, rather than the python library.
3.x - When you say "import sys", it will always get python library. To utilize your sub module named sys, you need to say "import .sys"
- Kill ancient library modules

Minor changes:
- exec becomes function again
- [f(x) for x in S] is a syntactic sugar for list(f(x) for x in S)
- kill raise E,arg in favor of raise E(arg)
- print no longer a statement!
- print x,y,z becomes print(x,y,z)
- print >> f, x, y, z becomes print(x,y,z, file=f)
- alternative to skip the space/newline:
- print (format, x, y, z)?
Why not f.print(x,y,z):
- some file types dun have print method. they have write method.

Inequalities:
- x == y. If x is completely diff type than y, return false
- x < y. has a random decision based upon location in memory, but its problamatic in jython, where objects can move in memory.
- Raise TypeError exception

Check PEP245/246 - take an object to the type, so that the return object is either the same type, or at least behaves as that type.

References
- Read PEP 3100 for a much larger laundry list.
- follow the list: python-3000@python.org
- artima.com/weblogs
- range() no longer returns list, use xrange
- bytes and str instead of str and unicode
- bytes have some str-ish methods like b1.find(b2), but not others like b1.upper()

I/O Stack:
- C stdio has problems:
- dunno how many bytes are in the buffer

Lambda lives!
- Last year Guido wanted lambda to die!
- lambda has hard core following of people, who tried convincing.
- We still dun have a better version, even after an year of trying!
- lambda lives!

Quotations by Guido (including random jokes):
- "I had no life, so I created Python!"
- "To start developing a great software, you'd be having no life outside!" (i lost the essence! :()
- "I'm going to believe my gut feeling on this, and its getting bigger!"

Python Sprint @ Google
Aug 21 - 24. Where: NY, and MV
What: Hack Python 2.6 and Python 3000, 2.5 bug fixing

Update: Ola pointed out that the video is available on Google Video.

Sunday, November 19, 2006

Thousands of mails? You need a powerful Genie!

My home doesn't have internet connection. Though this is generally fine, because I spend most of my time in office, enjoying Google's bandwidth and food. But, lately, I had couple of problems with my health leading me to spend time in my room. Its crazy spending time in a dark dungeon (hi friend!) like room, no T.V., no internet connection, with just a standalone computer and myself. Gossip magazines, which btw I am fond of, talking about Brad Pitt, sexy Angelina Jolie and their (almost always?) newly adopted kids is fine for some time, but then it has its limits. It was then that this idea occured to me, of pushing some of my online interests offline. Totally not a new idea; but isn't it true, that you get them, only when you really need them.

This was the time when I thought of installing Thunderbird, to download and crank upon the thousands of mails I need to browse through while at work. Thunderbird is open source, and a great mailing client, but my love for easy on RAM command line stuff just doesn't seem to like it. This also removes out Evolution. PLUS, I always wanted to be able to mail my attachments without having to open up firefox, login to Gmail, and waiting for the file to be uploaded to the server. Nautilus send can serve the purpose, but again, its not command line. My first intuition was to use libgmail, and write up a script to send mails. But then, it has limited usage. That's when, the age-old powerful client showed up to my mind, there is Pine, there is Elm, but there is nothing like Mutt. So, serving my old love for Gentoo (replaced practically by Ubuntu, but it can never even come close in terms of documentation. hmm.. shd I add yet?!), I browsed through its docs to configure Mutt with Procmail, Fetchmail, and msmtp. Took some time, to configure it exactly, but things worked up fine. And I got myself a Genie!

Know that, I had to download 27,000 mails over one long evening and night, when I replaced my mailing solution for Google internal mails, with Mutt. However, somehow the number of mails I get now, just doesn't seem to be enough for what I'm capable of! And talk about it, just a week back, I was complaining about the huge volume of mails I've been getting.

Edit, Addition: My initial intuition for Mutt was to just use it for reading mails occasionally, and send attachments. But then, there is something more to it. There is no doubt that web-based clients are portable, but the problem is that almost all of them take their own loading times, when showing mails. Its not that this is wrong or unexpected, but when you have so many mails which you need to just browse for your reference, the time adds up. On the other hand, desktop based clients download these mails in the background, and provide you with a smooth and quick browsing experience. Very productive! So, I have decided to give Mutt a shot as my sole email client. It would be interesting to try it out for a couple of weeks, and see if it suits well. As it goes, I'll keep you posted on my experiences with Mutt.

Sunday, November 12, 2006

Printing beautiful code

While writing beautiful code is an art, printing it beautifully is a frustation. I've long been bugged by this problem, and interestingly Dr. Google has been silent about my query. So, here's my search results for the world:
Use enscript, which is installed by default on linux systems.
$ enscript --help
will show you a whole list of options to choose from. If you're as lazy as me, just rely upon the configuration which I found most useful:
$ enscript -2rGC --color -Ec code.c
The options passed along with what they do is as follows:
  • -2 : 2 columns. To have single column, you can use -1. Use --columns=NUM, if you want to specify more than 2 columns.
  • -r : landscape view.
  • -G : cool fancy looking header, which includes file name, page number and creation time.
  • -C : print line number in front of each line.
  • --color : colored output
  • -Ec : formatted using C syntax. Though enscript supports various coding syntaxes, which range from Java to Python to Tcl etc., it is not intelligent enough to understand which language is the code written in, so you need to pass this flag. For e.g. To get the code formatted using python syntax, use -Epython.
By default, the output will be sent directly to a printer. However, you can retrieve a postscript output by specifying '-p filename.ps' flag.
$ enscript -2rGC --color -p testing.ps -Ec code.c
That's it! Enjoy code reading!

Wednesday, September 20, 2006

Interesting discover about pys60 v1.3.1

To store a list of names in the database against a key, I use marshal.dumps(list). I got an interesting error while doing this:

len(l)
128
>>> db['check'] = marshal.dumps(l)
Traceback (most recent call last):
File "", line 1, in ?
File "C:\system\libs\e32dbm.py", line 145, in __setitem__
self._dbset(key,value)
File "C:\system\libs\e32dbm.py", line 100, in _dbset
self._execute(u"INSERT INTO data VALUES (%d,'%s','%s')"% (hash(key),sqlquote(key),sqlquote(value)))
UnicodeError: ASCII decoding error: ordinal not in range(128)


If the length of the list is 127, it stores fine in the database. Strange, huh? No! Doing, a db['check'] = unicode(marshal.dumps()) doesn't work either.

Workaround?
db['check'] = ';'.join(list)
list = db['check'].split(';')

Sunday, September 17, 2006

Symbian, Python and ubuntu

My fyp deadline is coming and I didn't work on my fyp for a long time now. Realizing that this is a do or die situation here, I finally started setting up my nokia phone for hacking.
So, I borrowed Nokia 6620, which has 2nd edition of s60 (way better for hacking than 3rd). My first aim was to connect btconsole to my laptop, so that I can execute and test my code on the fly. This console creates an interactive shell for you on the pc, and the actual commands are run live on the mobile. Very handy for quick testing.

My attempts at getting Windows XP to work with btconsole went all in vain and caused much frustation. "socket not found", to "Connection Refused" errors, I got them all repeatedly. After all this trying, I thot of giving linux a shot (which I love to do anyway). My laptop doesn't have a bluetooth, so bought one for 45USD, quite expensive by very powerful; and that was the only one available at RadioShack anyway. After quite some attempts and struggling through random how to's online, I finally found my way to connect to my mobile through ubuntu (Dapper). Makes sense to document the precious pearls, for myself in future, and for others who won't like to be frustated as well. So, here goes:

1. Install bluez-utils, cu, gnome-bluetooth packages.

2. Restart ur bluetooth service.
$ sudo /etc/init.d/bluez-utils restart

Scan for other devices
$ hcitools scan
This will be able to locate ur mobile, and provide you the address which you need from now on.
Also, pair up your device w/ the pc, by going to Tools->Connection->Bluetooth. In options, add a new paired device. It will search and then be able to find ur laptop.

3. Check if your mobile supports OBEX based message transfer.
$ sdptools browser

... verbose output ...
Search for "OBEX File Transfer", and note down the channel (say 3), and rfcomm port (say 3).
In /etc/bluetooth/rfcomm.conf, add a section
rfcomm 3
{
bind yes;
device 00:02:EE:6D:0E:58; #replace with your address
channel 3;
comment "OBEX File Transfer"
}

Also, another section
rfcomm0 {
bind no;
device 00:02:EE:6D:0E:58; #replace with your address
channel 1;
comment "Hacking on Nokia 6620";
}

4. Restart bluetooth service:
$ /etc/init.d/bluez-utils restart

Bind to your mobile
$ sudo rfcomm bind /dev/rfcomm0
$ sudo minicom -m -s
This will open up a configuration editor. The only thing to do is to set the name of the device to connect to as /dev/rfcomm0. Save the new configuration as the default configuration and invoke:
$ sudo minicom -m

{Shamelessly copied from [1] }
Minicom is now ready to talk to your phone! Type in `AT' and the program will respond with an `OK'. Say you wish to make your phone dial a number. Just type:
atdt 1234567;
There are many other AT commands you can experiment with; try googling for say `mobile phone AT commands' or something of that sort! After you have finished with your virtual serial port manipulations, you should run:
rfcomm release /dev/rfcomm0

to `release' the serial-bluetooth link.
{ Copying finished }

5. Now, time to connect to btconsole:

$ sdptool add --channel=1 SP // add service. Note that this channel is the rfcomm0 channel.
$ sdptool browser local // view the current services if you want to confirm it
$ sudo rfcomm listen /dev/rfcomm0 1 // listen on channel 1, bind to /dev/rfcomm0
This command would block the terminal. In other terminal, run
$ sudo minicom -m

You shd be able to connect to your mobile device now.

>>> 2+2
4

Yeah! Python works. :)
This information is a mix match of various howto's + forums. Adding references to the ones that are still open in my window.

References:
[1] http://pramode.net/articles/lfy/mobile/pramode.html
[2] http://discussions.forum.nokia.com/forum/printthread.php?t=63435

Sunday, June 25, 2006

Tidbits from Google.com

New set of ramblings on Google:
1. Naan at Indian cuisine is hard to bite, their cheese curry is delicious.
2. Mexican and Italian food rocks! Nachos with salsa sauce and cheese, and italian vegan pizza
3. Google scooter is fast and fun!
4. The huge monitors on the desk are productivity boosters.
5. Nap on Massage chair is refreshing.
6. I have huge desk space, friends in other bldgs are crying for space :D. My bldg totally rocks!
7. Showers in restroom, comfortable chairs to sleep off, and electric toilet seats which maintain seat and spray water temperature, so that you feel extra comfortable while answering your natural call ;). I just need my toothbrush now to start living in Google.
8. Color printer is useful for printing photos from flickr, and hanging around your desk. Makes environment colorful.
9. Ergonomic keyboard and mouse
10. The best one: Starbucks Iced Mocha Frappuccino bottles all filled up in the fridge. Drink as much as you want for free! I'm loving it =).

Tagline: Google Rocks!

Monday, June 12, 2006

Latex snippets: Add image, wrap long lines in table

Using Latex to create an interim report to submit for my FYP. Its pretty useful, though today I got caught in a weird error. When trying to include an image, using \includegraphics, it showed me:
Undefined control sequence. \includegraphics


Its pretty obvious now, that this is a valid instruction in Latex. After googling I found out that:

  1. You need to add \usepackage{graphicx} in the preamble, for this instruction to work.

  2. You need to provide complete path of the image file

  3. Don't include the extension of the image. Latex will search for it automatically. Not sure the sequence, but, I believe its .png, then .gif, ...

My code:
\begin{figure}
\centering
\includegraphics[width=150mm]{/home/username/report/fuse}
\end{figure}


Another interesting thing was to use tables which can word wrap long lines without cropping the table. I couldn't find any working example of this online, so putting it here, for reference:

\begin{tabular}{|c|p{5cm}|p{5cm}|}
topic & long line 1 & long line 2 \\end{tabular}

Saturday, June 10, 2006

Sergey Brin live

[Post delayed. Reason? laziness] So, today I attended my first weekly TGIF (thank God its friday) meet of Googlers here at Mountain View, and saw Larry and Sergey live for the first time. They're pretty cool and fun guys; much younger than people around them. One thing I noticed, Sergey had this european accent when he pronounced some words, which I initially thot, he's just having fun with; though it was constant. Anws, for us, we were quite a bunch of Nooglers, who were given weird caps to wear, and provided free access to unlimited beer ;). ah, it rhymes!

Sunday, May 28, 2006

Releasing flickrfs sync

Last year november, I released flickrfs and its awesome how popular it went in the flickr community. Currently, the flickrfs page (replaced by new site) is rated 7/10 by Google PageRank, arnd 14,000 photos have been uploaded using this fs, and flickrfs has scored 2,000 downloads. I thank all the users, and especially those who reported back the bugs, and their experiences of using this filesystem, which helped me further improve and enhance flickrfs.

Its time now to release a new version of flickrfs, and here it is. This version includes lots of bug fixes, and new functionalities, which I'm sure you'd like. Here's quick excerpt:
  • Automatic periodic syncing of flickrfs with online server.
  • Directly link photos from your stream and tags to sets, without downloading
  • Automatic resizing of photos while uploading
  • Robust Unicode Support
Do try it out!

P.S. Realized this is my 50th post, now I officially announce myself a blogger! Hope to soon make to the 100th mark :D.

Friday, May 19, 2006

Flickrfs continued

After soo long that I released the version meta alpha (I like that name), did I find time and interest to continue development. And luv you python, I did quite a lot of bug fixes, as well as 2 new enhancements to flickrfs, all in the span of 1 day. I realized that I had almost forgot how beej's flickrapi worked. The prominent bug which caused frob and token authentication failure was originating from that; and took most of my time. That fixed, unmounting became a cakewalk.

Image resizing was one thing which I wanted to implement right from the beginning. Yesterday that came true. A big obstacle was to find a simple python code, which can resize images. And quite surprisingly, I cudn't find one! The nearest thing was huge Python Imaging Library (PIL), which interestingly chucked out EXIF data from images while resizing. Now that's sad!

So, anws, I moved onto a linux solution to the prob. Imagemagick's convert command resized the photos while retaining both the sharpness, as well as the EXIF data. Integrated that as a os.system call in the fs, while allowing a dropback to original size in case the package is not installed. Though, installing it is just a 2-mins job ;).

I have posted on the flickrfs-users list to check out bugs before I release this version as a stable one. Do try it out from cvs. And as always, any feedback is welcome :).

Wednesday, May 17, 2006

Flickr's changed look

I finally went pro on flickr yesterday. Spent 5 hrs recreating all the sets I had to delete because of the 3 set restriction in normal flickr account. Creation of a flash badge showing my photos was the best part of it. It looks cool on my blog.

Today morning, to my delight, found Flickr's interface revamped. The front page now accomodates 2 photos in a row, and the sets are all moved on to the right. Organize now has tabbed browsing which allows editing of multiple sets together. Secondly, it also allows batch editing of randomly chosen photos. All the photos are by default shown in a horizontal bar located at the bottom. A mouse-over shows the date on which the photo was uploaded. While dragging photos to do batch editing, a nice message pops up on the top right side, with a cool fading effect. To remove the photo, just drag it back to the bar, which automatically fades to act like a trash.

There are links on the top, which provide access to any functionality within 2 clicks. The coolest thing I found was Explore->Calendar, which shows the month with the most interesting photos uploaded on that date. End result is an awesome calendar; which I'd surely like to buy if they put it on sale!

There is a lot interesting stuff in the new interface. Conclusion, I found the new interface to be much more usable; and obv. has more eye-candies ;). In all, flickr is utilizing AJAX to its max limits; and becoming unbeatable as an online photo sharing service.

Saturday, May 13, 2006

Call me V

"V: Voilà! In view, a humble vaudevillian veteran, cast vicariously as both victim and villain by the vicissitudes of Fate. This visage, no mere veneer of vanity, is it vestige of the vox populi, now vacant, vanished, as the once vital voice of the verisimilitude now venerates what they once vilified. However, this valorous visitation of a by-gone vexation, stands vivified, and has vowed to vanquish these venal and virulent vermin vanguarding vice and vouchsafing the violently vicious and voracious violation of volition. The only verdict is vengeance; a vendetta, held as a votive, not in vain, for the value and veracity of such shall one day vindicate the vigilant and the virtuous. Verily, this vichyssoise of verbiage veers most verbose vis-à-vis an introduction, and so it is my very good honor to meet you and you may call me V."

Quote from "V for Vendetta". I'd been searching for it since I saw the movie. Thnx Caffetteria src.

My friend just told me that it is available on the official movie website.

Thursday, May 11, 2006

Gadget Man and Google - 2

Staying in Mountain View! After spending hours on craigslisting, and sending hundreds of emails searching for the right house in San Francisco; realized its just not worth the deal. Especially since, Nasa Ames Hostel located in Mountain View came up with WiFi access. The rooms look great, and there are loads of interns staying there. It wd be much more fun being with so many interns arnd.

Gadget#1 : Finally bought Sony NC50 headphones.
Checked out Bose Quietcomfort2. The headphones were comfortable, noise cancellation was good. But, the price rated was a floated SGD 690/-. Though in US its rated USD 300/-. Conversion comes out to be SGD470/-. A direct 220 dollars difference?!! Completely insane.

Sony NC50's comfort and noise cancellation is equally amazing. I tried it in MRT for 2 hrs commute; and it cancelled out the background noises made by the train. I cud hear the person sitting next to me; though the noise from the songs he was playing on his loud mp3 player were completely removed. I checked out in buses, same result. Background noise is gone, sounds from the mobile TV in buses were effectively reduced, though you cud still hear most of it. Thirdly, I checked it out in a gaming arena. Sittig next to an FPS game, and a street fighting game; which produces most of the noise, NC50 cancelled the background noise (mostly from music and cheers) part of it. The loud bangs were audible. Turning on the music a bit higher worked though, and I was able to enjoy the music oblivious to surroundings.

The music quality is simply amazing, satisfying what you expect from a Sony product. I found it to provide better quality to the songs I had, than bose. Though I'm sure there wd be people who wd like to disagree.

The downside is that the music loudness is reduced. The music becomes more soft. Though my powerful mp3, Cowon A2 handled it quite well. Secondly, because outside noise is cancelled, so, dun have to maximize volume to counter noise. The volume level which didn't sound loud before, works great now! I'm listen to music at max volume, and found the headphones awesome! No crackling sounds; and music was perfect. Still, recommendation is to try it out with your mp3 player before buying.

They still have to be tested on flight. Which I'd most eagerly looking fwd to.

Pros: Great music quality, Effective noise cancellation, Comfortable, long battery life(30hrs), Value for Money (costed SGD 270/-) with no compromise on quality.

Cons: Music gets softer. Check out with your mp3 player. 2nd, Carrying bag is big. Of size of 100 CDs case.

Sunday, May 07, 2006

Gadget man and Google

Yes! I'm interning at Google Headquarters these summer vacations. From end-May to end-August; staying in San Francisco. Initially thought of staying at Mountain View, but when came to know about Google's WiFi enabled shuttle bus, commuting b/w San Francisco and MV; plans changed. Would be the best use of time to surf/read blogs while on commute everyday.

Now about Gadgets, I'm planning to buy. This is going to be a series of posts, about a number of gadgets that I'm going to buy in these 3 months. So, starting with the first one, on top of my mind.

Gadget#1
Since I bought Cowon A2, I had been vaguely thinking about buying better quality headphones to go alongwith. Now that I'd be on an 18-hrs flight from Singapore to San Francisco, decided to buy noise cancellation headphones. The best ones arnd are Bose Quiet Comfort 2, Sennheiser PXC 250, Sony MDR NC50. Out of these Sennheiser comes with a torch-size noise cancellation circuitry attached to cord, which is quite cumbersome. Especially, when I've a habit of pulling hard on cords; it may break soon. So, that's out of picture.

Sony, and Bose look more convincing. The cords are detachable. So, you can easily turn on the noise reduction, and sleep. Also, can be easily replaced even if broken; quite safe and comfortable. Their noise cancellation circuitry is located inside headphones itself; no extra box to carry arnd. The choice now is based upon the sound quality, and price. As most of the mp3s that I own are medium quality 128kbps, Bose may not sound much diffrent from Sony. The differences are more audible in 256kbps. Though, I still have to test and confirm this. Bose is obv. much more expensive than Sony.

Am going to the Bose store at Plaza Singapura, and Simlim Square today to check them out. Stay tuned to know what I bought, and the next gadget on the list :).

Monday, April 10, 2006

Say No to Quota in IIT

While Indian students overseas proudly look back at their world famous university IITs and IIMs, because of their highest intelligence levels; things may not be the same a few years downstream. A 50% quota for students from reserved categories may alter the image of these institutions forever. Till now, only the most intelligent students could make through the tough entrance examinations; but if the bill is passed, being from the reserved categories may provide you easy admission. And the 'eligible deserving' candidates may have to look forward for admission to other universities.

As absurd as the bill sounds, it also proves the high voltage politics going on in India. While giving food, shelter, educational and medical facilities to poor/reserved categories is a benefiting action, I fail to understand how providing admission to the most reputed university can help these people.

Simply put, a person who can't crack the entrace exam of these institutions, probably is not even suited for the challenging level of education provided by the institutions; and mostly would not be able to cope up with the level of stress that follows on taking up such endeavour.

Then the only way out is more quotas. 75% Quota for reserved categories to pass 1st year exams, 80% quota for 2nd year, and progressing to 100% for final year.

Such insanity can only be laughed at. And that was my first reaction to the quota system. However, as the bill is being seriously considered by the govt., we need to stand up and raise our voice against it. Most importantly, do not just assume that it would not go through.

There is an online petition being made to President against the quota bill. If you care about the Indian Education system a bit, do cast your vote here.

Saturday, April 08, 2006

Microsoft creates iPod (What if that is)

We have all seen the simple and nice packaging of iPod by Apple. Now what if Microsoft was to market the iPod.

Check it out here!


Microsoft claims that she herself created the video to share among the packaging team for fun??!!

M$, whether you created it or not, is doubtful, but anws, we surely had fun!