Monday, December 31, 2007

Stop coding already

I am sorry to say this to myself, and it is a sad way to end the year, but I've to give up on decent projects for a few months. The next few months are 'while true: study' months for 12th standard students, since the exams supposedly decide your life. Which means most of the time my mind is just looking forward to not thinking and unfortunately programming is thinking, even if it is fun. So its time to not commit to the SVN repo for some time.


Friday, December 21, 2007

How bug reporting should be

Amarok has the best way of reporting a bug. Whenever Amarok crashes it
launches a KMail compose window with full debug information filled in and adressed. Which means you just click send. This is way better than having to go to the project's bug tracker and create an account - the worst part - and then submit a bug. I wish all of KDE ( and others ) went this way.

Saturday, December 08, 2007

Ricochet is now on 22bits, get the beta

You can get the beta as well as information about Ricochet from its 22bits project page

Introducing Ricochet

I've finally finished the game I was working on.

World, meet Ricochet.

Ricochet is a tile based game in which you use various kinds of mirrors to guide a photon from the launcher and switch on all the switches.
After a lot of segfaults and architecture changes due to my intermediate knowledge of C++, it finally seems to be bugfree.
The only thing left to do is add a help, add more levels and make a few small changes, after which it will be released. For now enjoy the screenshots.


Level with blocks still in dock:

Energised photon:

Sunday, November 25, 2007

Unfortunate misses suck

Isn't it absolutely heart wrenching how certain situations come up to essentially prevent you from meeting/talking to certain people at certain important times. I can't say what this is about, but I had to get this frustration out.

The stupid network connection had to be down for the 5 minutes which were actually important. I hate it... dammit!

Saturday, November 24, 2007

No, my code is not stagnating

Though it does seem like that, since I haven't posted about any development in weeks.

I've been working on a game in C++/SDL and its taking some time since this is the first time I'm building something with levels and passcodes and stuff. It's not going to be anything extraordinary, but it will take about 2 weeks more.

Monday, November 19, 2007


This is a abstract piece of art which I've been working on in bits and pieces for a while. It doesn't mean anything, but I first imagined it as wires and silicon chips.

Made in Inkscape and Gimp. There is a blue version which was the original, the white is simply by changing the layer type to Value in Gimp.

Sunday, November 18, 2007

It's starting to get cold

Winter has finally arrived in Mumbai. After a cyclonic depression had made the october-november period a wet and sticky one, I finally woke up yesterday to the first real cold day. Of course the temperature is in the 20s, above normal perhaps for temperate zoners, but that's cold here at the equator. And a very good respite too.

Tuesday, October 23, 2007

22bits redesign

22bits has a new look. I haven't departed much from the original layout, the only difference is the color change. The new theme may be too bright for some, but it sure stands out! I really liked its simplicity and clean appearance. Here's a pic.

22bits new theme

Sunday, October 21, 2007

Ambigram: Arctic Monkeys

One of my favourite bands. Just love Brianstorm and Fluorescent Adolescent.

This was made in a really free flowing style, but it has some problems with the legibility, especiall the c in Arc.

Ambigram: Hoplite

I've been trying to improve the P for 5 days. Hoping someone can enlighten me...

What is a Hoplite?

Tuesday, October 16, 2007

Monday, October 15, 2007

Saving the environment: Stop being so indifferent

This post is part of the Blog Action Day initiative.

Since I'm a kid without much writing experience or points to contribute to saving the environment, I've just decided to concentrate on one of my pet peeves.

In India, a new subject called Environmental Education was introduced 2 years ago. Unfortunately like all things in Indian education it is a theoretical, boring and booking subject on which we actually have to write an exam!.

Furthermore the stuff we have to learn is something to which urban children can't relate much. We have Sustainable agriculture, Biodiversity and stuff like that.

As global warming and environmental destruction edges closer and closer I think it would be far better if the subject was redesigned as a more practical one, where we clean up around the school and place recycling bins and plant trees and stuff.

The core issue governments have to tackle today is not knowledge but indifference. For some reason developing countries have this in abundance. Due to years of colonialism and the bad governance, and general apathy to the common good, people are highly self centred. Compassion and selflessness has to emerge from every individual, only then can we save the planet, not by forcing children to write an exam, it puts them off even more. What is needed is gruesome images of destruction and damage, because for some people shock is the only way to invoke change.

I'm still glad that there are still a lot of people in the world who care, and maybe saving this place isn't just a dream after all.

It's time to get practical!

The least people can do is to
  • Stop throwing trash on the street - There is nothing worse than an educated man/woman spitting or throwing papers on the street.
  • Walk when you can - Don't take a car to go to the gym to exercise. Why hurt the planet when you can walk to the gym and fitter.
  • Live life not money - Ok this is unrelated to environment but just improving your life and your mindset is another human set on the right track, and the Earth needs more humans on the right track.
Um... well that's it. And yeah I'm already following my pointers. :D

Saturday, October 13, 2007

Art: Cup and Saucer

The idea is from, but it's done in Inkscape, took about 15min. Really cool isn't it?

Thursday, October 11, 2007

Tuesday, October 09, 2007

PJ: Hunger

Q. Who do you call if you want to know more about Hunger?

A. Domi. Because "Domi knows Hunger Helpline".

(Dominoes Hunger Helpline)

PS. Please don't hurt me. :p

Friday, September 28, 2007

Not much content here

I'm finding it quite hard to blog these days since I haven't got anything I really want to post about.
I've got my exams from next week so I haven't been hacking on any specific program, just messing around with some game physics like gravity, collisions and messing about with vectors.

Thursday, September 20, 2007

Wanna learn a language. Try Mango

I learnt through Lifehacker
about new site Mango which aims to make language learning free, quick and easy. So I just played around with it for a few minutes and it seems to be really good.
The first thing I really liked was the password less login. You basically just register with your email id and use that as the login. It's really annoying when a site which doesn't hold any of your private information requires a password.
Created in flash, it requires flash 9. But the interface is quite snappy and quick loading, without unnecessary bloat.
I tried the french lessons, and apart from loading quickly they were of high quality. On of the coolest things is that each phrase is colourcoded and anchored. So you can click on a specific phrase to hear it again. The slides constantly make you remember what you just learnt a few minutes ago, but that tends to get a bit repetitive and should perhaps be spaced out wider.
Overall Mango is really good for a beta. I look forward to learning something from it.

Wednesday, September 19, 2007

Counterintuitive Writer Page Preview icons

I just came across this UI malfunction in OpenOffice Writer's Page Preview mode.

Notice how the next and previous icons represent two things. In the context of turning a page the icons are in their right positions, the one to the left turns back the page, the one to the right moves to the next page. But most users will probably notice the arrows first. And in that context the arrows are in the wrong position. Is it just me or does this confuse everyone?

Friday, August 31, 2007

Tetrablocks and Login Win32 versions

I forgot to post this but Windows executables of both Tetrablocks and Login have been uploaded to 22bits. Compiling them on Windows was a bit of a nightmare. Tetrablocks has got all of its text drawing code removed since I couldn't get SDL_ttf to link. So you won't see the score or the game over message when playing it on Windows.

Wednesday, August 15, 2007

ColourCode: 1.0 Released

I'm quite pleased to announce the release of version 1.0 of ColourCode. You can download and know more about it from the ColourCode homepage. Please leave your feedback and bugs in the comments

Thursday, August 09, 2007

ColourCode: Some thoughts about the future

Before I write about the possible future of ColourCode, let me get a few things out of the way. First today I fixed an extensionless file bug, and you can now force languages in ColourCode.

Now that thats out of the way, I was just thinking about how much interest I still have in ColourCode. I mean writing it was a lot of fun and gave me some new insights into design but I don't feel the same interest I had in parsing and analysing language files, that I had when I began ColourCode. Then it was a new challenge, now its really piling up and intruding in other plans I have. Also I am now officially in the 12th standard, which in India means a really tough exam at the end of the year, and a hundred other entrance tests. My computer time has dropped to just 1.5 hours a day, not enough to do everything. So this version of ColourCode will be the last for a long time ( atleast till the end of March ). I will continue fixing any bugs found, but there will be no new features. So please forgive me.

Thanks a lot for being a user of ColourCode, and check out my other projects.

Tuesday, August 07, 2007

ColourCode: 1.0 almost done

ColourCode is done. It now has support for PHP and HTML which it didn't have before. Perl support will probably get in before the stable release. This version has been bumped to 1.0. I think I've made a really good project and that it deserves the 1.0 tag. PDF support will not enter the 1.0 release but is on track for 1.1.

All that is left now is testing some highly tweaked files. All the standard test files I've been using are passing well. Also I need to write some documentation about implementing custom language handlers and formatters.

You can download today's development build which fixed all known bugs - colourcode-20070807.tar.gz

Please leave your comments. For usage see the usage.html file under the docs folder.

Monday, July 30, 2007


Language support

ColourCode now has support for C# and Javascript, completing support for the original language set. I'l be adding Perl and HTML soon enough.


On the C based languages front there is a small logic error in the multiline comment system. I am currently trying to iron it out.

Snippet feature dropped

I've decided to drop the snippet feature since its not universal (doesn't make sense in PDF) and since CSS is now dynamically generated, giving the CSS data to the user and having him embed it will be quite annoying. So you can ofcourse embed the file in your HTML since its valid. You'll just need to remove the DOCTYPE declaration and the head section, move the style to your head and remove the end body and html tags. But its best if you just use the pages by themselves, perhaps linking to them.

Note: Nightly builds are now updated everyday at the homepage. So you can always check out the developments yourself.

Saturday, July 28, 2007

Ambigram: Magic is Might

Here's my newest ambigram based of the engraving on the statue in the Ministry of Magic. Its a bit jagged but I've been working on it for two days and thought that it's about time it went online. Harry Potter fans should note that this is merely artwork and that I'm in no way against Muggles and other races.

Thursday, July 26, 2007

ColourCode: Almost done

In the last two days ColourCode has reached a stage where I can say that it is finally ready for release. Everything apart from implementing language handlers is done. PDF support might not be added. It all depends on how patient I am in releasing it. Meanwhile you can download a nightly build and view demos for Ruby and Python from the link above.

Sunday, July 22, 2007

Deathly Hallows: The end of an Era

Now that I'm over the initial shock of the book, its time to put my thoughts.


First of all Deathly Hallows is amazing, and to the few fans who disliked it, they are missing JKR's point of view.

Second, Deathly Hallows is dark, very dark. Not only are their constant fights and ambushes, but people close to your heart die. Remus, Tonks, Dobby, Fred, Snape and Moody. Once you finish reading and everything sinks in, the sadness of losing them will be just as heavy in your heart as the happiness of Voldemort's death.

Deathly Hallows is very well assembled. JKR has managed to unite almost every loose end. It is also very quick. DH begins with an escape from Privet Drive to the Burrow. This results in Moody's death and George losing an ear. Fred and George's humour is evident even here, where George remarks that he is saint-like (holey!). After a short hiatus of Bill and Fleur's wedding ( which nevertheless leads Harry on the path to the Deathly Hallows ), the action begins again. Harry, Ron and Hermione have to run away and try and destroy all the Horcruxes. What I really liked here was the friendship, yet the palpable strain on it due to disappointment.

The Deathly Hallows are a collection of three objects (Harry's Invisibility Cloak, the Resurrection Stone (Gaunt's ring) and the Elder wand) which give the owner control over Death, although this concept is never really totally used.

The grand finale is at Hogwarts, where Harry, Ron and Hermione arrive to find the final Horcrux. Hogwarts has already revolted with an underground movement lead by Neville Longbottom and other DA members. The Room of Requirement, thought to be introduced merely as a location, assumes prime importance in the seventh book. Voldemort leads the assault (but doesn't actually fight) with Death Eaters, Aragog's descendants, Giants and his fear. Remus Lupin, Nymphadora Tonks and Fred Weasley die during the battle.

Snape gives his memories to Harry in his dying moments, explaining his connection with Lily and whose side he is really on. The memories also reveal that Harry has to sacrifice himself.

Deathly Hallows ends with a strange union between the living and the dead when Harry goes to the nether world to commune with Dumbledore, yet remains alive, tied to Earth by his blood in Voldemort's veins.

The secrets of the Elder wand and its ownership finally lead to the downfall of Voldemort.

When you finish the book an overwhelming sense of peace permeates you, yet gloom that this is the end of one of the greatest stories of all time. You also have a new perspective of Dumbledore, and his imperfections.

The Epilogue on the other hand is bad, plain bad and I expected better from Rowling. She merely completes the circle by depicting Harry and Ginny's kids getting on the Hogwarts Express nineteen years later. I was expecting something about what all the main characters did for a living, what was the state of the wizarding world, the attitude towards lesser beings. I would also have liked a bit of the immediate aftermath of the end of Voldemort, I mean there has to be a lot of cleaning up. Harry and the Dursleys meeting again would have helped.

Considering that this was the last book a decent 700-750 pages would be better, perhaps she could expand more on the fifty who died, and what the other members of the Order where doing when the trio were zooming along the countryside. A bit of contact with their friends could have really helped them.

Saturday, July 21, 2007

Finished reading the Deathly Hallows

I've just finished reading the deathly hallows ( took about 7 hours ). I'm still in a state of shock and amazement about the book. Can't think of what I should type here. Infact its so good I can't think of it as a book, it's almost real

Friday, July 20, 2007

Deathly Hallows: 10 hours to go

Its just 10 hours for DH to release worldwide, and although I'm not part of the lucky few to get their copy at 12 ( I am getting mine on Sunday ) I am excited nevertheless. Like every HP fan I've been itching to know how everything that the books have been leading up to, ends. Ofcourse it will be the end of another phenomenon and their is a certain amount of sadness.
Anyway stupid NYTimes decided to put out a few spoilers and so now I know what the Deathly Hallows really are.

ColourCode: Making progress

ColourCode has been getting along quite well for the last week. I now firmly have the basic design for my plans in working code. The language parser and handlers are coordinating well and this might just be one of the best designs I've ever envisioned.
Once the main program is in place writing language handlers and formatters for ColourCode will be really easy.
At this stage only the Ruby language handler is complete, and until I can make it work perfectly for a large amount of code, no other handlers are expected.
ColourCode 0.x will also have PDF support due to the Ruby-PDF project.

You can download a development snapshot made at the time of writing this. Most code which needs to be commented is commented.

Saturday, July 14, 2007

Harry Potter and the Order of the Phoenix from the heart

Just back from seeing the fifth movie, and I'm in such a state of euphoria, I am just gonna let my subconscious type this. Man its so awesomely, splendidly, really really great. The effects, the acting, the everything is so totally spectacular. Its short ofcourse, but they have managed to put in enough to satisfy those who have read the book. It's this really cool thing about all these epic stories, HP, LOTR, Star Wars, they so totally immerse you in their world, trapping you for a few hours in a place with no worries, make you forget about your routine life. And if you are passionate about these things like I am, then you remember everything about them. I can probably list all the spells in HP and the whole history of Middle Earth, but I can't remember half the things I learnt yesterday in math. I just can't express in words how I feel after reading/watching stuff as good as this. So I will just leave those who do feel these things like I do to enjoy them...

Thursday, July 12, 2007

The Secret Question System is insecure

Seeing that this is so obvious and easily breakable, I'm surprised sites still continue to use the secret question to recover your password. The problem is not so much in the system as in the questions chosen. A really secret question would be one which is known to you and only to you. But usually secret questions involve your mother's maiden name, or your pet or childhood hero. Now to anyone who has known you for a sufficient amount of time, and anyone who has read your profile on one of the social networking sites you are a member of, these are easily answerable. Not only does this introduce a loop-hole in the system, the secret question is often not easily changed.
The solution to the problem is simple, and one that I've been using for a few years now. The answer to the secret question should be totally unrelated to the context of the question yet memorable to you. For example, if the question is Your pet's name?, your answer would be say Thorondor ( Lord of the Rings ). That way, the chances of guessing the answer are very remote.

Friday, July 06, 2007

ColourCode: New ideas and old improvements

Now that TetraBlocks is done, its time to start working on the latest and greatest ColourCode release ever. Though the next version should be called 0.3, I might bump it up a few notches if everything works out as planned.

One of the major things I've been planning is to implement the Language Descriptors in Ruby itself rather than text files or XML. This would allow them to be more context sensitive and basically do more stuff to improve highlighting. For now this is just a vision, and I haven't really got around to even scribbling exactly what it's going to be.

Other improvements include:
  • Support for highlighting multiple files at once, or a complete directory
  • Using the optparse module to parse command line arguments
  • Decoupling of the actual highlighting code and the interface code so that ColourCode can be used as a library
  • Change the colour map from CSS to a format independent one
  • HTML line numbers are generated using an ordered list.
  • Add support for more languages.

Saturday, June 30, 2007

The sky tore open...

Today it rained in Mumbai for almost 12 hours without a break. Ofcourse this time Mumbai was a bit lucky, it was a Saturday, most people were home. Of course there has been a powercut since 10am and its back now at 6:30pm. The cable reception is still bad, so I've no idea what pain and suffering Mumbai city went through ( or not ) but it was pure fun here, playing volleyball in the rain and what not.

Tuesday, June 26, 2007

TetraBlocks: It is done

To much applause and enthusiasm (atleast by one guy) TetraBlocks is released to the world. Probably the millionth clone of Tetris, you can proudly claim your own version at the Tetrablocks page. Only available as a source archive for now, a windows executable is in the works

Saturday, June 23, 2007

Its Software for God's sake

I am so sick of magazine and newspaper technical writers thinking that the plural of software is softwares. Who hired them? If I see softwares one more time I'm going to get hontsblastophobia ( /haunts-blast-o-phobia/, noun: fear of HOw Non TechieS use Bad LAnguage when Speaking Techie - o - phobia. Remember, you heard this here first)

Wednesday, June 20, 2007

TetraBlocks:The finishing run

After having dumped the initial TetraBlocks code, the new version is coming along quite well and has proceeded especially well for the last few days. The few things left involve the deletion of lines and score keeping and putting a cap on the height. I've decided to do away with the menu and highscores system since it added for excess complexity.

Here is a screenshot of the latest developments.

PS. I play tetris quite well, but then there wouldn't be a screenshot

Monday, June 11, 2007

TetraBlocks: The first scrap

I dumped all the TetraBlocks code. Its gone. "rm -rf ". the only copy left is in the SVN repo. Need a redesign. Don't feel like blogging much these days, actually doing anything much these days. I am just empty. Don't know why!

Sunday, May 27, 2007

TetraBlocks: on freeze

TetraBlocks has been put of freeze for a few days. I've got pieces rotating and stuff, but thats it for now. Right now its time to concentrate on more generic issues like writing a small highscore and menu framework, because I know that these two things are necessary in almost any game you will ever create. So if I can get those two things done, it will save me a lot of time.

Wednesday, May 23, 2007

The problem isn't the community, its the people

After reading
Five crucial things the Linux community doesn't understand about the average computer user
I have a point myself. FIrst of all I disagreed with most of his points.

Second of all the only aim of the Linux community is NOT world domination. Sure we would love more Linux users, and more Non-Microsoft users. But not at the expense of user stupidity. Here are my two cents on why people don't want to change to Linux ( or anything new ).
  1. Change - Change, all the problems in the RealWorldTM are due to this (But more on that some other time). I have observed that there are very few humans who actually want to change. People get an OEM installed WIndows and use it. Heck, some don't even know they use Windows. So try teaching them something else. Most people are dead scared of technology.

  2. Choice - People are uncomfortable with choice, especially when they need to change to accept a different choice. In addition to that, Microsoft's hand holding has dumbed them down to a level, where, when in front of the computer, the user is reduced to an assembly line robot of click here, then here instructions. On the other hand, for the community, choice is what runs the world, it keeps them happy. The very idea that if I don't like something, then I can change it, is like a drug.
As I said before, choice and change are the cause of many problems, and it is often technology that gets blamed. The community's first aim is to solve its own problems, then others. We thrive on choice, on change, on learning new things. And as long as certain standards are followed, choice and change can coexist. And I am sure that the community will not dumb everything down into a nice packaged product, just to get the world to adopt its software. Its is people who have to change, to become the inquisitive beings they once were.

Tuesday, May 15, 2007

Ambigram Nazgul

Its a long time since I posted an Ambigram. Anyway here is Nazgul.

Microsoft's unwinnable war

RoughlyDrafted has this absolutely amazing article about why Microsoft is fighting an unwinnable war against Open Source and FOSS. A must read for anyone. It was really well thought out and presented

Friday, May 11, 2007

Thursday, May 10, 2007


...or why I never maintain my old programs much.

The reason I create some software, fix a few bugs, do a few minor version upgrades and then let it be, until someone really needs something is because, well, I like to do a lot of different projects in different fields. Now it so happens that I am still in school, now going to standard 12, which in India means bad. So I get just about 2 hours a day on the computer. Which means that any project takes atleast two months to complete. If I ever want to complete my Todo list then I have no choice but to abandon older ones, or return to them after quite a few months. That is why ColourCode 0.3 is on hold. So sorry users of my software. But if you really want upgrades, you may send me a million emails, and then I will do it, or just hack the code yourself, its open source.

I will try my best to take up maintenance of all of it as soon as this year is over.

Pixelframe feedback and what next

Some folks at YoungCoders gave me some feedback about Pixelframe. One big criticism was that the client doesn't work without javascript. So for One dot One Pixelframe will have the following changes over One dot Oh:
  • Client will work even with Javascript disabled, using static links
  • Different loading images for admin and client, to suit the theme
  • Default theme has the thumbnail bar moved to the left. This is better for usability. Also the theme is a bit darker.
The IE6 max-width problem still remains, and I will not waste time fixing it, if anybody has a patch please send it to me.

So now Pixelframe is done. What next? Well I have already started planning an Tetris clone called TetraBlocks. It will be written in C++ and SDL. Here, have a tetramino.

Thursday, May 03, 2007

Pixelframe: Almost there

So after 3 weeks of development on getting it to work in Internet Explorer, Pixelframe is ready. Testing is almost complete and after wrapping up a few loose ends it will be released. Some of the things remaining are converting PNGs to GIFs since IE has a problem with displaying PNGs, handling an unforeseen theme error, and a few look-n-feel changes. You can check out the almost working version ( uploaded at the time of writing this post ) at

Wednesday, May 02, 2007

Does the revolution begin now

Over the last two days, the HD-DVD encryption key leak has gained momentum. Now considering that most of the stories on the first few pages of Digg relate to this, and that the key is now available on a hell of a lot of sites, I surely don't need to tell you about it. But is it the beginning of a revolution?

The tech community has for long been aware of the ills of DRM and related agencies like the MAFIAA. But the general public and mass media has largely ignored the issue. I believe its time the fight for freedom goes public. What we need is to educate common people about the horrific connotations of DRM.

What would be really cool is a full page advertisement in widely read newspapers about the numbers and about DRM

Tuesday, May 01, 2007

Kubuntu 7.04: Disappointing

Yesterday I downloaded Kubuntu 7.04, expecting an amazing release from the reviews I had read. But I was very very disappointed. First let me mention that I have been using linux since 4 years and so this isn't some tale of a Windows user suddenly jumping to Linux and thinking its crap.

I have very generic hardware, and Kubuntu had no problems detecting it, except my ViewSonic widescreen which no distro has managed to get working in widescreen resolution. Most problems where due to unnecessary scripts and 'safety-nets' created for new users by the *buntu teams.

Getting started and Installation

So I burned the CD and booted from it. What takes place next is 30 minutes to go from boot to desktop. On my Pentium 4 2.4Ghz with 256mb of RAM most liveCDs do take atleast 15 minutes, but 30 was too much. The second thing was that the bootup was not stable. One of the gripes I have had with newer LiveCDs is their loading of laptop battery management modules even when running on a desktop. I would prefer a prompt asking me what kind of computer I am running and then loading the modules. So anyway, the power manager crashed on bootup. And for some reason this prevented KDE from booting properly. So I restarted the machine. This time KDE loaded but there were no icons present in Kicker. So I went to a virtual terminal and restarted KDE. This time there were no problems in starting up. But the system is slow, excrutiatingly slow. It took 5 seconds to display the context menu.
Deciding that perhaps I would get better performance if I installed it on a spare partition, I launched the installer. This took another 5 minutes. After that each of the install screens took 2 minutes to load. At the partitioning screen I was again disappointed to see that my IDE harddisks were being reported as SCSI and had the path /dev/sdxx. Assuming it was just a small bug I moved on and clicked on the 'Advanced' button on the last screen.
Since I have an unconventional setup of two harddisks, one with Windows and one with Linux I always need to specify the bootloader to install in the partition itself. This is were it really hurt. The Ubiquity installer is meant for newbies. Now if a newbie encounters the message I encountered what is he going to do, hate Linux undoubtedly.
Insert bootloader documentation here

was how it went. And below that their was a single text field to enter the boot loader location in the standard GRUB (hdx,x) format. It seems like someone forgot to check one dialog. Unsure of what to do, since I did not want to take a risk with the Windows bootloader being erased - especially due to the confusion between sdxx and hdxx in the partitioner, I rebooted, disconnected the Windows drive and started the install again. This time the bootloader location was set to (hd0, 3) and everything went fine, even though the whole process took an hour and a half.

Post install

I booted from the hard disk and after getting the Arch GRUB configured right booted into Kubuntu. The hard disk startup was fast and smooth, almost as good as Arch's. But this time kdesktop crashed. Ofcourse no harm done so I just ran kdesktop and continued to use Kubuntu. But what does a new user do. Does he know about virtual consoles, and that running kdesktop will set everything right.

Need guidance

I launched the modified Kcontrol, or so called Guidance control panel, to set up networking. I have a static IP and set it up. I launched Konqueror and tried to browse, nothing. I went back to the configuration to find that the IP had been set to something else, automatically, and that the gateway had been wiped to I tried resetting it every time. Finally sick of it I just edited the configuration files by hand and used ifconfig to launch the interface manually.
Noticing that the connection worked now, I just shutdown the computer.


Seeing that its been 3 years since the Ubuntu project was launched, I expected much better. It is highly likely that this was a stray incident, since most reviews are good. In fact it is well known to me, that me and and Ubuntu version don't mix. I have never had success with Ubuntu, ever. But what disappointed me was that the Ubuntu series is the pinnacle of Linux on the Desktop. Such experiences not only ruin it, but bring a bad name to the Linux and FOSS movement. I have given up using Kubuntu, even after taking so much pain to get it running. I hope that they improve the situation. For now I will just stick with Arch, it might not be newbie friendly, but the straight forward systems are just what is needed.

Monday, April 30, 2007

Downloading Kubuntu

For the last 3 days I have been downloading Kubuntu and now there are about 5 hours left. There are 2 reasons why I want to try out Kubuntu.
  1. I am always looking for new distros to install on my spare partition.
  2. I am hoping that the new X server and *buntu's good hardware support means that my widescreen monitor will work at its default resolution of 1440x900.
So I will do a small review tomorrow.

Thursday, April 26, 2007

To IE or not to IE

Before I begin
Statuatory Warning: The below scenes may be disturbing

Pixelframe was once upon a time chugging along just fine and I was ready for a release about the 15th of April. Then along came the world's Favourite Browser and my life ( atleast the Pixelframe dedicated process ) has become worth dropping to /dev/null. I am sogoogol sick of Internet Explorer. It took me one week to get the client working. The client has only 4 user generated actions.Now it seems like it will be two weeks to get Settings to work. Maybe I should just release Pixelframe and fix the IE bugs in a maintenance release. After all no webmaster worth his salt uses IE.

Here's the problem:
EVERY action triggers some error, if I am lucky only one, normally a dozen, due to some unsupported or badly implemented property. But it would have been fine in any decent browser. In IE it means doing the following
  1. Click on the Yes button for 'Do you want to debug?...'.
  2. Say which debugger you want even when their is only one.
  3. Kill the Microsoft Frontpage installer.
  4. In the debugger again select a debugger, when the only option is script debugger.
  5. See what the problem is and click break.
  6. Quit and again say Yes to are you sure you want to quit.
  7. Rinse and Repeat for every error.
As you can see this will slowly push any web developer of the edge. Which means I spend barely half an hour on making it to work on Internet Explorer. More than that and you will find me in the cuckoo pot. These things make me wonder if its worth writing a web application if the world's most used browser won't even support it properly.

I need a good dose of antidepressant with a dash of music...

Back in Business

I forgot to post, my computer's back for 2 days now and Pixelframe development is back on track. I have given up on the max-width property in IE, because no matter what expression() I use, it doesn't work.
As for the settings page, the style isn't getting applied, but most of the Javascript errors are ironed out. ~2 days left for it to be ready. Need to start writing the themeing docs.

Saturday, April 21, 2007


I just got a call from the computer guy. Due to a shortage in the specific component required to repair my motherboard, the repair is indefinitely delayed ( atleast another week ). Which means Pixelframe is postponed indefinitely and I am gonna brush up on reading some computer books.

Its so depressing not having a hard disk to save stuff on and things like that

Friday, April 20, 2007

Colourcode is on the front page

Not only did ColourCode get submitted to DZone, it got on the Front Page today.

Its got 279 views and 203 clicks.

Thanks to everyone who voted

Thursday, April 19, 2007

Knocked Out

My computer isn't going to be repaired atleast till next Sunday. So I am stuck just reading CSS Mastery and browsing the web. Everything is delayed. And Pixelframe still has bugs which I haven't worked on.

For my next app I want to create a simple gravity simulation. Basically their are rods and dots and you can connect two dots with a rod and build structures, all while gravity pulls down. Just to actually practically use vectors.

ColourCode got DZoned

My syntax highlighting program, ColourCode, has been submitted to DZone.

Its amazing when a 16 year old's crap app get posted there.

Thanks a lot Satish Talim of Learning Ruby.

Saturday, April 14, 2007

Scrap the Schedule

Pixelframe will not release on Sunday, nor will I be doing anything for 2-3 days. My motherboard decided to conk out today morning, so I all development has screeched to a halt till atleast Monday.


Friday, April 13, 2007

Rounded Corners

Rounded corners have become a staple of web 2.0. So I decided to write my own version. So whats special in this among all the others. Well mine is relatively customisable pertaining to the elements to round. Further it allows elements to have variable width and scales on resizing. The images used use the mountain top technique so that the same image is required, whatever the background color of the elements. Of course if you have a non-white background you will have to edit the images. To check them out see Rounded Corners on 22bits.

Pixelframe: Getting Closer

Pixelframe is getting closer and closer to finishing, in fact if Internet Explorer stops hiccoughing every now and then it will release on Sunday. Right now I have uploaded version 0.9 since the feature set is complete, only two problems are left. Both unfortunately and logically are due to Internet Explorer
  1. IE refuses to show the settings page.
  2. There are problems in IE with respect to maximum width.
As soon as these are solved Pixelframe will be released. If you know a solution to the second problem please comment. Meanwhile I will be trawling Google.

For 0.9 Demos check the following albums ( I recommend any browser other than IE for now ):
I welcome your views and suggestions.

Sunday, April 08, 2007

Pixelframe Preview

As Pixelframe is nearing completion I have uploaded a pre-alpha not as a download but as a demo. Most of the features are complete. The few remaining are sorting out bugs and writing some documentation. To see the demo with two galleries try these links
If you have comments about improvements, please post them below.

India's problems Part 1, Root- Illiteracy

This is a mindmap me and my friend ( well my friend made most of it ) made about the problems faced by India due to illiteracy. These are purely our views and opinions. If you want to disagree you are welcome to do so in the comments. The image was made in Freemind and is licensed under the Creative Commons Attribution+NonCommercial license

EDIT: Blogger has scaled the original image. For a large version go to indiaproblems.jpg

Thursday, April 05, 2007

Dynamic delegation in PHP

While working on Pixelframe I devised 2 methods to dynamically delegate tasks to appropriate functions. These methods may already be known and used but these are mine and I thought it would be good to post them. These are particularly useful for handling requests where you call a certain function/script based on one parameter ( say 'action' ) and pass the rest of the parameters to the function /script. So here goes.

Delegation to functions in the same script

//the key for the action name in _POST
define("KEY_PARAM", "action");

//set up value=>funcToCall delegation array
//add new entries for each action=>function pair
$DELEGATES = array( "next"=>"nextImage",

//check if the action we received from the request is defined
//check if the function is defined
if(array_key_exists($_GET[KEY_PARAM], $DELEGATES) &&
//get the function string
//remove this so it doesn't get passed to function, not really necessary

//call the function
call_user_func($func, $_GET);
else {
die("No such action {$_GET[KEY_PARAM]}");

Delegation to other scripts

When using this kind of delegation you should either decide a common function which IS implemented by all scripts or add your code to dynamically call the appropriate function ( say each function has the name the same as the script ).

//now replace funcToCall with script to include
$DELEGATES = array( "savechanges" => "save.php",
"changepassword" => "change_password.php",
"editpref" => "editpref.php" );

if(array_key_exists($_GET[KEY_PARAM], $DELEGATES)) {
//include the script
//assuming they are in the same directory
//here handler is the function
//now that the script is included, its available to us
else {
die("No such action {$_GET[KEY_PARAM]}.");

Well that covers it up. I hope it helps someone out there

Monday, April 02, 2007

Earth Is Dying... Unfortunately no one cares

Even with all the media buzz about global warming and related destruction by 2050 not much is actually being done about it. The main problem in my opinion is that of people. It is mainly news media which covers such issues. Unfortunately most of the world doesn't pay attention to this. The core problem with most people's lack of awareness is
  • Lack of information due to illiteracy.
  • No priority to the environment due to poverty or simple lacking morality.
  • Lack of action because most people, including educated ones rarely ever pay attention to the problems of the world. Most people are highly self concerned, stuck-in-their-daily-lives kind of people, who don't give even a penny towards the greater problems facing humanity.
  • Teenagers who lack awareness due to their sucked up lives of being cool and wasting their lives. The kind which are quite omnipresent in the west and slowly emerging the east. The ones whose only thought is destruction, and complete lack of appreciation to life and society. Its about time we stopped being lenient to them. If the majority of tomorrow's generation turns up bad then its another generation of repeated mistakes. And last time I checked, we might not have time for another generation.
Without more people, people like you and me actually trying to make a difference, no amount of money and new scientific technologies can prevent the slide down the well. For too long has mankind waited until the last possible moment and then searched for a cure. We keep pushing things ahead. There is still a chance to get us, and future generations out of this mess.
Ask yourself that even if we find a way of this planet before we die, is it right to leave after making a mess of one world, to go to another to do the same?

To educate more people about the hazards, atleast the kind of people referred to in the third point above, the following methods should be adopted:
  • Force ALL TV channels to carry environmental protection advertisements say once every half an hour. Preferably these ads should not be blockable.
  • Bring environmental education to school. The sooner it becomes a part of children's lives the better. And SHOW graphic images. Western society is sheltered in the belief that such images can cause bad effects on children, but shown in the right way these may just be the shock people need.
  • The usual implement strict laws, blah blah blah chronicled elsewhere, which I won't mention here.

PS. I know this has no relation to technology. Its just that I also sometimes write about things I feel strongly about.

April Fool

For all those who believed the post below about Google Print, you have been fooled. The Google Print service was another one of the company's elaborate April Fool's pranks.

Sunday, April 01, 2007

Google prints your mail...for Free!

Google has launched a new product. Google Print. According to their site there is no limit to the number of pages you can print. Happy printing, I just tried it out and my prints will reach me in 5 days. C'mon people do your bit for the environment and use 96% recycled

LOL thats the annual google april fool's joke

Sunday, March 18, 2007

Introducing Pixelframe

In Trac(k)ing I mentioned the "secret project" I was working on. Well I have decided its time to let the world know what it is, even though its not finished yet.

Its called Pixelframe.

Pixelframe is meant to be a lightweight image gallery. It uses PHP for the backend and my custom javascript toolkit ( called Juice ) for frontend effects and ajax requests. Juice will also be released seperately once it is done. Pixelframe is easy to setup and use and doesn't have ( and won't have ) a lot of features. It is purposely made to be featureless. For description and development status check the Pixelframe page on Google code .

For now those interested can check out the latest bug free build which has the backend almost implemented. --> Demo

Friday, March 09, 2007

Its a flatscreen

I got a new monitor. Its my first flatscreen, a 17 inch Viewsonic VA1703wb. As I am no display expert all I can say is that its good enough and saves a lot of space! Now if only I could get Xorg to support its highest resolution 1440x900

Monday, March 05, 2007


Recently I discovered the Trac SCM for project management. And its really great. Especially for lone developer projects.
  1. It has a inbuilt server, so know need to configure Apache for mod_python.
  2. Good offline documentation embedded within the project
  3. Small download size
  4. Simple setup for projects
  5. SVN browsing and good diffs
  6. Wiki feature allow TODO list maintenance
The last is particularly useful when you have been storing TODOs in your SVN commits till now :D.

So I am using Trac for both ColourCode and my secret project(soon to be revealed), and I am loving it.

Saturday, March 03, 2007

Ambigram Paranoia

Here it is, an ambigram after a Long... time. Its paranoia. And its brought to you by the all new Inkscape with Gaussian blur and more cool stuff.

OOPS: When you rotate it the shadow's in the wrong direction :(

Friday, March 02, 2007

Learning the hard way

I have come acrooss some rare occasions in programming in which the language/environment/common sense really wants you to learn after literally breaking you head. Thats what happened today in a javascript app I am doing (Shh! Its still a secret). For 2 days I have been trying to use everything I know to clean up a problem I was having with every node firing the event when only one should've been. That was until I realised it was due to this small error hiding in the corner.

window.addEventListener instead of this.addEventListener

So note to self, PAY ATTENTION

Saturday, February 24, 2007

Its back

Not much of an interesting blog post this. Its just to let readers know that 22bits has been back for a while now, and I forgot to mention it.

Monday, February 12, 2007

22bits down

For all visitors who visited my site, 22bits, I would like to apologize for an Account Suspended page. Actually there was some confusion on the part of the x10hosting system which has led to me being suspended for no fault of my own. 22bits will be up in approximately 2 days. Forgive me for the inconvenience.

Sunday, February 11, 2007

Dream Linux 2.2

The February issue of LinuxForYou included Dream Linux 2.2. The LiveCD booted really fast in comparison to other distros, perhaps because it uses a light XFCE environment.

But for its weight it sure looks amazing! A highly Macish look and feel with Engage completing the Dock. The applications installed are also a good mix of commonly used to niche ones. Overall I found Dream had taken the good points of quite a number of distros, put together a nice control panel and easy installer.

So I jumped ahead and installed it on my spare partition. Installation was quite fast with just 7 steps, including partitioning, installation, installing bootloader, which I skipped and creating the user accounts.

DreamLinux too had a common problem I've faced with LiveCDs. The non root user's password is often not set properly, which means when you boot from harddisk, you can't login. Not a nice way to start with Linux. For someone in the know its easy to do a Ctrl+Alt+F1 and change the password, but for new users it can be harrowing.

Overall DreamLinux is a really good distro. Though Arch will still remain my primary distro, since I have it customised to heavily, it is one whose progress I will watch closely. If you are new to Linux I would highly recommend it. If you are not, you already know what you need. With a little tweaking Dream could easily become a Distrowatch top 20er.

Linux preaches the Art Of Living

At Tuxme they have Sri Sri Ravi Shankar advocating his Art of Living movement. This is a whole new twist to the term 'contextual advertising'

Saturday, February 10, 2007

This Week in my life

Since I don't blog often, I have decided to blog every Saturday or Sunday about any interesting stuff that (happened to me)/(i tried) in the week.

So getting started with the wide world of the web:

Ma.gnolia as quite a number of people must already be knowing is a social bookmarking site just like
Since I have been a user for a long time, I never really tried ma.gnolia. But yesterday I took the plunge and signed up because it seems to have more features, and more tools to find good links. So for a week I am going to use Ma.gnolia instead of and see which is better

Bad, Bad Me.dium
2 weeks ago I sent in my email for a beta invite to Me.dium. Today I got the invite link. I was asked to install the plugin and register. And then the worst thing. Me.dium tells me I have to be over 18 to use it. Now how bad is that. Me.dium has a really well designed site and nifty tips. But the least they could do was tell me in bold that I had to be over 18, when I submitted my email. Its really annoying to be expecting something amazing and be denied at the last moment.

I decided to finally learn a bit of LaTeX and have some fun with it. So I installed Kile and downloaded The not so short introduction to LaTeX2e

That ends the first issue of tWiML.

Saturday, February 03, 2007

Colourcode 0.2 released

ColourCode 0.2 has been released.

In addition to the features mentioned in the previous post it now supports C# and Shellscript and Javascript.

Check it out at the ColourCode homepage

Sunday, January 28, 2007

Colourcode 0.2 nearing release

I am quite pleased to announce that ColourCode 0.2 on which I have been working for the last week is nearing release.
0.2 has the following features over 0.1
  • support for multiline comments , also when they are embedded inline
  • optionally printing line numbers
  • Support for quote escapes in strings when a backslash precedes it
ATM there are a few bugs

Also there will be support for more languages

Thursday, January 25, 2007

How cool is Alt + F2

I am always discovering new uses for the Run Command dialog of KDE. And now I learnt it can even do basic calculations, right there. Now if only it could handle scientific functions...

Game Of Life:LOGIN

I am proud to present my latest creation LOGIN or NIkhil's Game Of Life, my very own Conway's Game of Life simulator. Written in C++ using SDL. I wrote it mainly to learn SDL and because I truely enjoy life. Currently it only runs on Linux. Read the README file in the package for instructions on installation and usage.

Here is a nice pic of part of a r-pentomino cycle for your enjoyment:

Generation count in the titlebar
On the fly change in generation delay

It follows original Life rules and there is no support for reading or writing Life files.


LOGIN runs in 2 modes. One is when the program is running but the game is not. In this state you can do the following.
  • Use the mouse to activate/deactivate cells
  • Press 'r' to generate a random fill
  • Press 'c' to clear and reset the game
  • Press 's' to start the game.
When the game is running you can only do two things
  • Press 's' to stop it again
  • Press '-' to increase the speed by 10ms (you cannot go faster than 10ms per generation)
  • Press '+' to decrease the speed by 10ms (there is no limit to how slow you can go)
Note that + and - unfortunately do not work continuosly on holding them. The reason they seem contradictory is that well they control the delay. So '+' increases the delay and decreases the speed :)


Wednesday, January 24, 2007

Back to Normal

To those in the know, and now for those who don't, the reason I have been really quiet on both the web and in RealLifeTM is that I have been down with Typhoid. Nasty nasty disease. I haven't gone to school for 2 weeks now, haven't washed my hair for almost the same time and have been sleeping most of the time.
But its getting a bit better since Monday. Today I am back to normal in terms of appetite and I have been feverless for more than 24 hours now. I can start school on Monday, since Friday is a holiday too I decided to skip Thursday. Now the only downside is: Start studying again, and no football for atleast 1 more week.

Thursday, January 11, 2007

The Ozone Fix: Great Idea, No?

I've got a possibly great idea about fixing the ozone depletion problem. If it is truly good, then someone please implement it. If it just plain sucks, you may make your feelings known in the comments. Without further ado, here it goes.

The Antarctic Ozone Hole is the biggest known depletion of ozone. There are also many other spots around the world. My idea goes this way.
1)Less ozone means more Sun.
2) Sun == Free Energy
3) Energy can be used for creation.
Put up solar panels and a ozone creation plant at sites with low ozone. They use the sunlight to generate power which the plant uses to generate ozone and use some kind of system to send it up where it belongs. As the ozone goes on increasing the power decreases, but thats fine because we are going to need less of ozone. Ofcourse some external power would be required in the end to complete the process.

Now I have not evaluated the costs and the time period(~50 years should do it right?) but as the cliché phrase goes, better late than never.

Wednesday, January 03, 2007

ColourCode 0.1beta released

I am pleased to announce the release of version 0.1beta of ColourCode. ColourCode is a Ruby program to generate syntax highlighted HTML files. Currently it supports HTML, Java, C++, Ruby and Python. For more information and (not)features see the ColourCode homepage