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!

Friday, April 07, 2006

Google Query: 403 Access Denied

While surfing in NTU, don't be amazed if your favourite blog can't be accessed because it goes www.sexycoder.blogspot.com, and normal Google query instead of showing you the desired results, provides you with a 403 Forbidden : Access Denied.

In their bid to block access to porn sites, Centre for IT Services or CITS has recently installed a highly inefficient filter in the firewall. This simple word matching filter forbids access to the web page if the url contains any word remotely referring to porn. This includes disallowing a normal "sexy tshirt" query in Google as the url being accessed contains 'sexy'. It even disallowed me to access a paper on sorting algorithm because the url had an 'xxx' inside it. God forbid if tomorrow CITS decides to go one step fwd, and block access to webpages if their word search filter finds inappropriate words in it.

While spending millions of dollors on Microsoft products, why can't CITS buy a decent trustworthy filter to disallow access to porn, and not to words. Or if they are incapable of doing so, spend money on hiring hackers who can, and not A grade computer engg. graduates talking financial crap all the time.

Wednesday, April 05, 2006

little coo-coo sounds prior to..

Just realized that I spend 70% of my blog reading time on engadget, which is one of the arnd 40 feeds that I'm subscribed to.
Here is the most interesting post I've come across:

Thomas Ricker at engadget about Japanese RI-Man, a robot destined to care for elderly:

...[useless stuff before punchline]...
"This allows it to perform such delicate work as lifting perplexed patients into its arms where presumably it will whisper little “coo-coo” sounds prior to crushing its victim into a liquid fuel beverage – which of course all robots will do once they obtain consciousness, right?"

-from engadget

Now, do I need any more reason to love engadget!

Saturday, April 01, 2006

Google Romance?!

Now applying advanced text mining algorithms to find the perfect match for you; Google is surely and quickly monopolizing entire computer world. Google products quickly recaped:

Internet: Google Search
Web presence (blogging): Blogspot
Online word processor: Writely
Photos: Picasa
Mail : Gmail
Chatting: Gmail Talk
Desktop: Google Desktop Search
Scheduler/Calendar: CL2
Multimedia: Google Video

What's missing is the release of an operating system by google, perceived to be a modified version of ubuntu -> Goobuntu!
And obviously a highly efficient file system for Goobuntu: GoogleFS

So, when are you releasing them Google?

Friday, March 31, 2006

Processors of future: Exponentially Dynamically

A share from a 20 min discussion with Prof. Tay Joc Cing today afternoon.

"I believe that by the end of this century, we won't need computers anymore for computation" -Tay

"Complex computations will be done by biological beings (read nano particles/molecular machines)" -Tay

"In this century, we're going to have such fast computers, where we don't have to worry about the slowness of the language we're going to use. The most complex problem for computers to process today is a problem with exponential space-time complexity. Our processor speeds are increasing linearly. We are progressing from 1GHz to 2GHz to 3, 4, and 5 GHz. So, the problem continues to be exponential. Consider a possibility of a processor whose speed can increase exponentially dynamically, it can solve a problem with exponential space-time complexity in linear time, which depending upon the problem would essentially be a constant.

Now, if each bio molecule can process fixed set of instructions, knowing that they grow exponentially and assuming that they can distribute the work to their offsprings, a biological molecular robot which can direct n such molecules to solve the problem, can become our first exponentially accelerating processor." -Manish

Thursday, March 30, 2006

Cowon A2 source code released



Fascinated by portable multimedia players (PMP), I bought Cowon A2 early this month. I'd be doing a comparison analysis later, but, for now, the biggest news. A2 has released its entire source code under GPL. Though there is no documentation/notice regarding the code on company's site, it is speculated to be the code of its firmware 1.59, while latest stable release is 1.61. The code is huge taking 467MB on hdd(80 MB in compressed .tar.gz format), with little comments/documentation, but quite clean.

Now, is this release a goodwill sign to OS community, and going to expand to other iAudio products? I don't think so. To answer, the code release was never officially announced by the company, as the post here reveals. Such a big move like this surely needs announcement and publicity, telling and inviting hackers to submit patches using the available source code. Google Desktop Search SDK, Nokia 60 series' python support, flickr, and many others are examples when the respective companies willingly announced their open source motives to engage the Open Source community. But, cowon's muteness kind of seems to indicate that the decision to release the code may not be entirely the 'open source angel dawning on the company'. And as per GPL:
Section 2 b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

where 'Program' means the section of the code licensed under GPL.
And A2 is based upon GPLed Linux kernel 2.6.5. This section may be a reason enough for the company to release its whole code under GPL.

Whether willingly or not, this move has opened up the gates of this amazing player to hackers. Though A2 gets a lots of upgrades by its dedicated developer team, it won't be long before there will be a flood of patches from hackers worldwide, jumping mainstream making cowon a2 able to play 'anything you throw at it'.

For me, for now, I'm planning a quick hack to display my name on the screen :).

Saturday, March 18, 2006

Prags draws Super Commando Dhruva

After having long forgotten about her old drawing skills, Pragyan took up her hobby back again recently. This is a sketch of my favourite comics character Super Commando Dhruva by her.
Prags draws Dhruva
She just used pencil and eraser for this. Ah! How much I love pencil sketches!

Thursday, March 09, 2006

M.A.N.I.S.H. C.Y.B.O.R.G.

----->>>>> LOOK ----->>>> LOOK

I hope you saw a change in the site. If not?!?!, you need to immediately redesign your _vision_ of life.

Thanks to Boing Boing for providing link to this cool website The Brunching Shuttlecocks. I got my own C.Y.B.O.R.G.ed name which presents itself on the blog now. How to post your cyborged name? Here are the steps:

1. Go to cyborg site -> insert your name -> choose your fav cyborg -> click on Submit.
2. Read, reread your name's definition. Call your friends to tell them what exactly your name means. Ctrl+C the html code provided.
3. Login to blogger -> Dashboard -> Edit Settings -> Template
4. Search for Begin #profile-container
5. Please _Replace_ <$BlogMemberProfile$> with the html code you had copied.
6. In the html code you just copied, replace href='..cyborg..' with profile link location. (mine is http://www.blogger.com/profile/11087998)
7. Click on Preview.
8. Whoa! Your inspirational message about yourself is gone! Dun worry! People wd be infinitely more interested in your cyborg image than your rambling about yourself.
9. Save the template -> Republish index.
10. Done! Enjoy!

Tuesday, March 07, 2006

Experiences with OpenSolaris

As most of you already know, Sun Microsystems had released Solaris's source code, under CDDL as OpenSolaris distribution. The company is very busy these days promoting Open Solaris in Universities, on the net, to create a community; and has been quite successful in doing that as well. A one-hour login to #opensolaris channel at irc.freenode.net, is enough to prove to you that there is surely a strong community working on the OS. One of their best endeavors was to kick start Solaris University Challenge.
Quite obviously, I am participating in it. Well, think of it! That's the whole point of writing this post. These are the things I've come across:

1. Couldn't get Solaris to install on my Pentium III machine, as it required more RAM than my 256MB wd provide. This is owing to Java Desktop System being quite heavy.

2. Solaris comes with Star Office 7, and Mozilla 1.7 (yup! No OpenOffice, and Firefox?!). I still can't understand the reason behind their opting against these two most popular Open Source Softwares; going with things people have forgotten or not known at all, buried in history books (or blogs :-D).

3. There is no Software Package Manager. The default one that comes is a pkgadd command. The essential packages are provided in 4th cd of Solaris, their names prefixed with SUNW (for e.g. man pages - SUNWman). I inserted the CD, and there was no automatic mounting. I tried to use my easy linux ways to mount, but no use. After finding no way to mount it, and checking online for an hour or so, got this command:

#/etc/init.d/volmgt stop
#/etc/init.d/volmgt start


There is no 'restart' option?! However, these commands restarted the volume management which is responsible for mounting the devices. Once restarted, it recognized my cd, and mounted it. So, I cd into the packages directory, and tried to install the package:
#cd /cdrom/sol_11_x86_4/Solaris_11/Product
#pkgadd -d SUNWman
pkgadd: ERROR: no packages were found in

Wao! Now what to do? So, after some searching, I came across this:
#pkgadd -d /cdrom/sol_11_x86_4/Solaris_11/Product SUNWman

And exactly opposite of my expectations, the command worked, and the package was installed!! I've no clue why on earth wd someone have a *constraint* like this one.

4. Thankfully someone has taken these problems in account, and created a centralized package system online at http://blastwave.org. You can download 'pkg-get' package, which provides similar functionality as apt-get, retrieving packages from the blastwave packages list. Though it has a very primitive way of 5-6 step installation, but it surely does _work_ after that. Helped me to install my saviour firefox, and vim editor.
#pkg-get -i vim

Ya! Solaris only has the old vi editor. For those who dun know why vim is better; imagine you can't use your arrow keys to browse thro the code, or use your backspace button to delete. Though backspace still doesn't work fine for me even in vim :(.

5. Crap fonts!

6. _Amazing kernel_. The solaris kernel code is very neat. The more I'm understanding filesystem implementation in solaris, the more I'm appreciating it. I'd like to mention here that ZFS is beyond doubt the most advanced filesystem available today.

Conclusion: Solaris/OpenSolaris is powerful Operating System with amazing kernel and fs, though its ages behind becoming a desktop OS.

Technorati Tag:

Wednesday, March 01, 2006

Too techy for lecs

Its long I have been to lectures...
Its even longer that I've gone to lecture, and listened to the prof...
Its ages I've felt bad about bunking them...

So, where does my life revolve arnd? Here are top priorities:
1. Sit in canteen, with a cup of tea, and jobless friends.
2. Check, Double Check, Check if I double checked mails, blogs and engadget while listening to music from the music server running on my _ubuntu_ machine through library computer (for those who know what I generally use _hint:gen2_, yea! I switched to ubun2!)
3. Look at my mobile, new sms, old sms, contacts, and alarm clock.
4. Work on cool projects involving C/C++, Python, Ruby, kernel; dream about working in techhie companies.

Lately I've also been calling up people to tell them about the Portable Media Player that I'm buying soon. Just to let you know, the date falls today. Enjoy 'friends' in MRT. Wao! One more reason to sustain life. I'm loving it!

Flickrfs crosses 10000 mark

Flickrfs got itself tagged by 10035 photos, an indication of how many photos are uploaded using this virtual filesystem. So, that makes 10035 photos within 4 months of its release, which calculating linearly comes to be 2508 photos per month. Isn't that great!

Another interesting news is that two people has joined as developers, R. David Murray and Fabio Spelta; both members of flickrfs-users group. Flickrfs is now undergoing major bug fixing, and thorough testing. The code is uploaded into cvs, and is available through CVS anonymous access, so you can have a quick browse through the code. Enjoy!

Sunday, February 26, 2006

The IT Crowd - First Impression

There has been a lot of buzz about UK's Channel 4 sitcom 'The IT Crowd'. The sitcom focuses on the life of a 3-strong IT Team, where a computer-illiterate becomes the head of 2 geeks, all working in an untidy basement of a 34 storey building. Its being made available on the internet for download 1 week before the original telecast on TV. Learning that, I tried to download it from the main website, but strangely was disallowed access. Reason being that I was accessing from outside UK. The second approach, of using bittorrent to download the episodes also failed, thanks to NTU proxy and firewall. Seeing no other way out, just thought of giving google videos a try, and whoa! It had all the five episodes available, along with download access. So, with lots of hopes and visualizations about the geeky stuff, I started up the download of all 5 episodes, but due to slow connection, finally managed to get only one episode 'The Red Door'.

My expectation of the geek characters was completely thwarted, when they showed 'Roy', the main geek, without any computer on his desk! The only electronics item present on his desk was a telephone. Even the room didn't seem a 'typical geek' room. On the background, there were some brand new monitors laid out very neatly, which deluded the whole concept of dark, stingly and untidy. No hanging wires, no opened up gadgets, screwdrivers, printers, anything! The comedy lacked common sense, originating from childish actions, rather than intelligent taunts. Though I liked some of the dialogues where Moss, the second geek in his 'computerized voice' talks to Jen, the IT head. Concluding the post, the show makes a good time pass, and surely will improve in the coming episodes.

Sunday, February 19, 2006

Don't rape her!

Quoted from Xenoflare:

A lot has been said about how to prevent rape. Women should learn self-defense. Women should lock themselves in their houses after dark. Women shouldn't have long hair and women shouldn't wear short skirts. Women shouldn't leave drinks unattended. Fuck, they shouldn't dare to get drunk at all.

Instead of that bullshit, how about:

If a woman is drunk, don't rape her. If a woman is walking alone at night, don't rape her. If a women is drugged and unconscious, don't rape her. If a woman is wearing a short skirt, don't rape her. If a woman is jogging in a park at 5AM, don't rape her. If a woman looks like your ex-girlfriend you're still hung up on, don't rape her. If a woman is asleep in her bed, don't rape her. If a woman is asleep in your bed, don't rape her. If a woman is doing her laundry, don't rape her. If a woman is in a coma, don't rape her. If a woman changes her mind in the middle of or about a particular activity, don't rape her. If a woman has repeatedly refused a certain activity, don't rape her. If a woman is not yet a woman, but a child, don't rape her. If your girlfriend or wife is not in the mood, don't rape her. If your step-daughter is watching TV, don't rape her.

If you break into a house and find a woman there, don't rape her. If your friend thinks it's okay to rape someone, tell him it's not, and that he's not your friend. If your "friend" tells you he raped someone, report him to the police. If your frat-brother or another guy at the party tells you there's an unconscious woman upstairs and it's your turn, don't rape her, call the police and report him as a rapist.

Tell your sons, god-sons, nephews, grandsons, and sons of friends that it's not okay to rape someone.

Don't just tell your women friends how to be safe and avoid rape. Don't imply that she could have avoided it if she'd only done/not done x, y, or z. Don't imply that it's in any way her fault. Don't let silence imply agreement when someone tells you he "got some" with the drunk girl. Don't perpetuate a culture that tells you that you have no control over or responsibility for your actions. You can too help yourself. Rape is not about sex, it's about control and power, and what kind of power comes from taking advantage of others? No power anyone should ever desire.

If you agree, repost it. It's important.


This is the most strong fabulous statement I have come across. Hats off to the author!