ArunRocks

Representing Anti-Monotonistic Tendencies

Q. What’s the Difference between Cloud Computing & SaaS?

A. It is the same as the difference between TV and Cable TV. TV is a technology. However, Cable TV is a business model using this technology.

Cloud Computing refers to an architecture where web applications can scale easily to any number of users. Software as a Service (SaaS) is a business model where computing software is provided in a ‘pay as you use’ model. SaaS is often built using Cloud Computing. But all Cloud Computing apps don’t use the SaaS model.

Therefore Cloud Computing != SaaS

Man in the Mirror

Have to even seen yourself briefly other than in your own reflection? Have you ever wondered if there are other people who are identical to you in appearance but nowhere related to you? There is a word for it - Doppelgänger. As per Wikipedia:

…They are generally regarded as harbingers of bad luck.
In some traditions, a doppelgänger seen by a person’s
friends or relatives portends illness or danger, while
seeing one’s own doppelgänger is an omen of death. In
Norse mythology, a vardøger is a ghostly double who
precedes a living person and is seen performing their
actions in advance.

There also a Malayalam movie called Aparan based on this concept. It is the first film of the actor Jayaram by the acclaimed Director/Writer Padmarajan. In the film, the doppelgänger truly upturns the protagonist’s life. However, there are no double role gimmicks employed. The presentation is very sensitive and gripping.

In this era of cloning, any part of your body - split hair or even saliva can be used to create an entire replica of yours. Gene therapy may soon make this a reality. Will your clone bring you bad luck as some Hollywood movies predict? Most likely, because most people wouldn’t enjoy the company of someone with exactly the same nature as yours. Even worse he or she will covet the same things you would covet. This could mean you will be competing with your clone in many spheres of your life for e.g. dating. And the winner would be, most probably, based on chance because your skills/qualities are evenly matched. A little frustrating isn’t it?

Whoever said Imitation is the most sincere form of Flattery, most certainly didn’t think of clones!

Reddit had a heated debate about the AJAX paging pattern. The debate sidetracked into the benefits of Paging. Nobody seemed to mention the excellent greasemonkey script Autopagerize which is proof that the concept works brilliantly. I find it one of the most indispensable Greasemonkey scripts available today.

The idea is simple. Assume you are reading a blog in blogspot.com. When you scroll towards the end of the blog, Autopagerize realizes that you are really interested in reading more blog posts. In other words, soon you would click on ‘Older Entries’ links. This would have caused a fresh page to load. How terribly annoying! Instead, Autopagerize will silently load the older posts in the background and seamlessly add them to the end of the page. By the time you finish reading the second page, the third page will be added to the end and so on and so forth. This results in a smooth and breezy browsing experience, which has to be experienced to be believed.

Installing Autopagerize

Autopagerize uses greasemonkey plugin and hence works only if you have Firefox installed. The steps are quite simple:

  1. Install Greasemonkey
  2. Go to Autopagerize script page and click on ‘Install this Script’ button
  3. Visit any of the supported sites e.g. stackoverflow.com or a blog like simblog
  4. If the page supports Autopagerize, a green square will appear at the top right of the page. Scroll to the end and it will momentarily turn blue to indicate that the next page is loading in the background.

Autopagerize in action

How does Autopagerize work?

Autopagerize works on all kinds of sites which have pages. But how does it manage to understand the structure of them all? The answer is the community maintained SITEINFO database which is the result of hundreds of hours of effort.

Autopagerize is turned on for a particular site if its URL matches the url property. Once the page is loaded, it searches for the next link based on the xpath provided by nextLink property. The next page’s content is identified by the pageElement property. Anything which is not part of this content is discarded. This content is then appended to the existing page either by appending as a sibling to the existing pageElement or if insertBefore is defined, it is inserted before the element identified by insertBefore property.

How to Add any Website to Autopagerize?

Note: This is not for the faint of heart. It involves opening and working with some code (to the extend of editing some regular expressions).

So you would like extend the Autopagerize experience to more and more sites? Don’t worry, you have come to the right place. For this section you would need to install the excellent Firebug plugin. Firebug’s javascript console is the best interactive XPath debugger I am aware of.

Read the rest of this entry »

Happy Onam to All!

It is the first Onam in our flat and we thought, why not go full traditional? The floral carpet took a couple of hours of dedicated effort in the wee hours of morning. So, was it worth the effort? Check it out:

Wish You a Happy Onam!

Math Behind the Scenes

Well, there is a bit of geometry involved in a pookalam unless you are willing to spend a lot of time improvising. Like a good piece of engineering, a good design was essential. Here are some of the mockups made using Inkscape:

Pookalam Geometry

Pookalam Geometry2

The Sadhya this time was at Prestige Hotel. Was pretty good with 3 different kinds of Payasam. Now time to munch some banana chips ;)

This is a quick workaround for people who are using easy_install to install Python Imaging Library on Windows. Many people faced issues while doing this. I found a simple workaround for this.

You must have tried the following

Now you will need to go to your site-packages directory (typically at C:\Python\Lib\site-packages) and change one line that starts with ./PIL-1.1.6-py2.5-win32.egg to simply ./PIL and change the sub-directory named similarly to PIL

Now your imports should work :smile:

Joker in The Dark Knight

Unfortunately, there is no way to escape the tremendous hype surrounding the latest Batman film ‘The Dark Knight’. It spoils a viewer’s experience by raising the expectations to an unrealistic level. Unbelievably, just after I saw the film yesterday, I realized that even the hype couldn’t prepare me for such a fantastic experience. Christopher Nolan’s creation not only appeals to the average film goer but also to the critics establishing a new benchmark against which comic book films will be judged against. In fact, the term ‘comic book movie’ will no longer be understood as a euphemism for ‘bunch of crap appealing to the comic book fans’ anymore.

This multi-climatic, multi-layered, and multi-thematic film is an excellent cinematisation of an epic struggle between good and evil. Through excellent dialogues and almost heart stopping action sequences, the story unfolds rapidly and constantly keeps you guessing. While most action films try hard to come up with one clever climatic arc, Nolan’s Joker gives the audience a maddening parade of climatic moments one after another.

Joker - Best Villain Ever

The biggest highlight of ‘Dark Knight’ is undoubtedly the character of Joker. Though many phsychotic characters have appeared in Hollywood, Heath Ledger’s Joker is path-breaking in many ways:

  • He is an absolute. There is a no background story. He himself gives multiple interpretation of his disfigurement. No attempt is made to humanise or even demystify the character.
  • His disfigurement makes him a freak, which he further relishes and emphasizes with make-up. His unkempt and battered appearance is hardly scary, but add the body language and intonations of a psychopath and the result is disturbingly real.
  • He is arguably not an evil character simply because he has no moral compass. He master-minds situations which involve dire outcomes yet leaves the details to chance. He, in his own words, is Chaos. He proves that sanity or civility is based on the illusion of order that humans have created. The absence of order brings out the latent insanity in everyone. It is in this chaos that Joker thrives.

As Joker aptly tells Batman in a memorable scene - What would I do without you? You complete me.

Note this currently works only if you have Firefox installed

The Hindu is is one of the newspapers I have great respect for. I am allergetic to fresh newsprint, so I have no choice but to read their online edition even if I have subscribed to the print edition. But their website badly needs a redesign. However, in this Web2.0 era you are not at the mercy of the site admins to do something about it. You can improve your browsing experience in 2 steps:

  1. Point your firefox to the Greasemonkey add-on page and install the add-on. Now restart Firefox before you go to step 2. Don’t worry all your open tabs will be restored.

  2. Go to the Hindu Printer Redirect Script and click on the Install this Script button

Voila, start browsing Hindu, for example this page and enjoy the difference!

Sometimes the biggest reason people choose Linux is that they can choose to change Linux they way they want. However, majority of the people believe that no matter how much you change/customize Linux it will never match the eye candy of other desktop OSes. Frankly I never thought that the font rendering in Ubuntu can match that of OSX or even Windows.

Until I came across this tip in Ubuntu Forums. I would say this is the single biggest improvement in the appearance of Ubuntu desktop. By just one command, you can improve the font rendering of virtually every application on Linux. Check out the following screenshot after implementing this tip:

My Ubuntu desktop running Firefox, Gnome Terminal and Emacs after the font change

The command is simply:

sudo ln -sf /etc/fonts/conf.avail/10-autohint.conf /etc/fonts/conf.d/

Thanks to this tip I am still ogling at my Linux desktop :shock:

Best Dialogs of Salim Kumar

Please note that all the jokes below are in Malayalam. Salim Kumar is a Malayalam film comedian who often pairs with Dileep with a knack for witty one-liners. These jokes are mostly from the Salim kumar communities in Orkut. Many thanks to all Salim kumar fans

Salim Kumar Malayalam Comedian
»

»
Thilakkam
onnam class muthal kanjavu valichirunenkil
chalpalannu ippo english parayamayirunnu…

»
madhya tiruvathankorile oru rajavu .peru sasi

»
KalayanaRaman
Trying to break the coconut besides the lady and the lady falls to the pool of water and SK says
‘Yenta oru shabdham ketathu???’
‘Thenga odachappo oru piece vellathil poyathaanu’

»
“njan advocate Mukundan Vakkeel. da coat-e”

»
Thilakkam
Salim Kumar: njangalkku aliyanum aliyanum koody kurachu talks nadathanundu………..cashine kurichulla talks …Casual talks…….

»
Chadikaatha chandhu
“Im Micheal Elias ,JAckson Elias,Vikram Elias”

»
Salim Kumar Malayalam Comedian
Thenkashipattanam
salimkumar to dilip:
nammal kaanaan pokunnath devootiyeyalle allathe mammotiyeyallalo.

»
Salim Kumar is reading the classifieds section in the newspaper…”Varanmaare aavashyamundu……………………AASHWAASAM KANDAAL MAATHRAM PRATHIBHALAM. Eh?? Ithu veraiy parasyamaanallaiy…oh..thetti vaayichu”

»
“Iyaal enthu pani aado e kaanickkunne…Thanne kondu njan thottallo..I ALL SO FAILED OF YOU.”

»
nee sahakarikukayanengil ee kalavara namukoru maniyarayakkam…

»
VAYARINTE VALATHU BHAGATHU KARUTHA MARUGULLA STHREE AANO EE KUTTYUDE MUMMY…..

»
Pulival kalyanam
Nammal Nalu perallathe moonnamathoral ethu ariyarythu. Nee vichal aval erangi varumo?.

»
dileep: entha ithu???
Read the rest of this entry »

Learning Pylons Through Tutorials

Web Development is now getting dominated by frameworks. After the initial hype of Rails, Python based frameworks are getting more popularity especially after the release of Google App Engine. Nobody seems to be interested in building websites using PHP, even if they are highly experienced in PHP. This could mean two things:

  1. There will be more demand in Indian IT companies for PHP skills similar to Perl scripting skills these days :mrgreen:
  2. There will be soon be a viable competitor to the immensely popular Wordpress blogging platform from the Python/Ruby world

I have nothing against Wordpress. In fact, it is one of the easiest tools to deploy. But with tools like cPanel, deployment could be no longer a deciding factor for blogging platforms.

Coming back to the topic of Python Web Frameworks, there is a multitude of options. I have used some of these framworks and found them to be ‘pythonic’ in different ways:

  • Django Well documented. Tightly Coupled and ‘Batteries Included’
  • Pylons Extremely flexibility to Plug and Play components. ‘Fun to Hack’
  • web.py Great for beginners. Entire framework ‘fits in your head’

Pylons looks most appealing to me. So far it looks like the underdog largely overshadowed by Django’s presence lacking the marketing or love it deserves. A few weeks back I would have complained about the lack of Pylons tutorials on the web. A google search brought up several links pointing to the wiki tutorial. As many have pointed out, the wiki tutorial is too long and complicated for beginners. It would easily put off a beginner. It took me quite some time to realise that the best place to start learning Pylons is the Pylons Documentation itself and the best Pylons tutorial is the Flickr Search. Going through the documentation is almost feels like reading a book with every concept explained in detail.

Pylons currently seems to the having an edge over Django for enterprise application due to its well tested interface with SQLAlchemy. Django seems to be having a fairly recent branch for SQLAlchemy integration. Pylons typically uses Python eggs and VirtualEnv for deployment which is might seem a little complex to beginners, but once you try it once it is actually quite convenient. Most of the installation can be done from the command-line and it will be nearly an independent sandbox for Pylons development. However it might take sometime to understand other aspects of using python eggs such as uninstallation and creation of new eggs. I haven’t had much success with making a portable version of my Pylons installation on Windows though :(

My favourite templating engine is Genshi because it is very designer friendly(which also means it works with the tools a Designer has, not just that it is easy for a Designer to learn). I can easily do all HTML designing directly on my Genshi templates because they are valid HTML or XML documents. Almost all of Genshi’s logic can be hidden away as attributes which is a great idea. In fact, the templates are even valid XML which makes the creation of valid HTML pages a much more natural experience. Almost all XML tools and even HTML tools like Tidy will work flawlessly on Genshi templates due to these reasons.

Once you get used to Genshi’s templates, you might even use them for static web site designing. I am sure it will save you a lot of time whenever those last minute ’sidebar redesigns for every page’ pops up.

« Previous Entries