World’s most popular operating system

Right here’s a question: What is the world’s most popular operating system? You’d probably say some version of Microsoft Windows, right? Well, you’d be wrong. The most popular operating system in the world, according to this report is ITRON.

ITRON is not your typical operating system, it is a real-time kernel for small-scale embedded systems. Simply put, it’s a small, extremely fast operating system core designed to be run on small electronic devices like mobile phones, digital cameras, music players etc. ITRON allows both hardware and software makers to use a standard base for writing applicatios. This is important as it allows them to safe the time and money that earlier would be spent reinventing the wheel. Because ITRON and it’s derivatives are firmly open source, it means that knowledgable users can write their software if they don’t like what comes as standard (although you probably won’t be reprogramming your freezer any time soon).

Of course, it’s hard to write a paragraph about an open source Operating System without talking about Linux in some way or the other. ITRON however seems more mature than the equivalent RTLinux. This is only to be expected as the roots of ITRON go back farther than Linux’s and has been designed from the ground for the purposes it serves. But there is some effort at uniting the two projects with ITRON providing the kernel and security and linux giving the rest.

ITRON while very popular (estimates say some 3 billion machines are running it) it’s still fairly out of the limelight. But it seems to me that ITRON may be laying the foundation of an operating system design which one day allows to you link all the electronic devices in your house together in one seamless network (yes including the toilet and the kitchen sink).


PowerPoint Online: Empressr, Show and Thumbstacks

The online office space is starting to mature. After word processors and spreadsheets it’s time for the presentation tool to go online. Thumbstacks was the first such service to go online and it was followed by Zoho Show some time later. Now there’s a third contender going by the name of Empressr. But Empressr will have to do a lot of work to do if it’s going to be more than a flash in the pan.

Of the three ZohoShow is the most comprehensive and the only one to offer import and export compatability with Microsoft PowerPoint presentations. Unfortunately the limit to upload is just one megabyte, meaning substantial presentations are out of scope for now. I’m not really a presentation maker, in fact I haven’t made a proper presentation in about 3 years, but there are a lot of people who do use presentations a lot. To attract these sort of people being able to import from and export to popular formats is a must (though the facility to view presentations online is quite nice). Online presentation tools still have a long way to go, but they’re getting there. Once again Zoho is strongly making their mark in the online office space and I really hope to see some major new innovations from them in the future.

How to build reliable software

    Software today may be great and it sure can do a lot of things. But there’s a catch: reliability. Face it, no software in the world is perfectly reliable. The ’98’ in a certain computer operating system name has been often touted as the number of times it crashed in an hour and even the toughest Linux or BSD based systems will fail with enough time and effort. This would be nothing more than an irritating headache if people only used computers to read email, surf the net, write documents and watch the occasional movie. But they don’t only do that, do they? Computers control some of the most precision demanding tasks humanity has engendered like controlling aircraft traffic. And the software that runs on these computers can’t afford even the smallest glitch and a full crash is out of the question. 

    A recent article which was linked on one of my favourite tech sites, OSNews, tried to present a way in which the problem of reliability can be tackled using today’s technology. The author lays the problem squarely at the feet of the way we write software today: using algorithms. Algorithms, for those who don’t know, are simply step by step instructions for completing a given task. The problem is not algorithms themselves, but the way they are inplemented in software. The author basically says that algorithmic software is bound to fail because there is no way to keep track of all the data at the same time and so a programmer constantly has to keep track of every small change that is made and how it might affect all the other data that is being used. That might work for a small program, but it certainly won’t work with big software like Operating Systems where you have thousands of programmers writing code.

     The author attempts to provide a solution and if you browse around the site, you’ll find that a system is being developed to make use of the authors strategy, which centres around making sure that everything in the software systems works according to a proper clock timing and automate updating of changed information throughout the system. Now I’m not much of a computer specialist (hell, I’m not much of an anything yet), but here’s my two cents anyway.

    The article does spark some interest, but after you go through the site, you realize that there’s really not much in the way of getting the job done. The system they are trying to develop is still in infancy and it’s hard to see how one would actually use it. To actually write the sort of programs the author talks about, you would first and foremost require a proper programming language, where the automatic signal processing that the author describes is handled implicitly by the language itself. Now, that would also require that you build a compiler or interpreter which would take the programmers instructions, as well as all the implicit instructions of the language and then translate them to something that can actually be run on a real CPU. Finally you would need a kernel capable not only of handling the hardware, but also capable of simulating the synchronous nature of the software system. in case you’re wondering what I’m talking about, let me try and explain. 

    For all the might and billions of calculations per second that our computers can do, they can still do only one calculation at a time. Even when it looks like your computer is doing a dozen different things at a time, deep down in the kernel, it’s actually plaing a delicate balancing game, sharing the CPU between all the programs asking for it. The author of the article says that a lot of the problems of faulty software are due to the fact that things don’t happen at the same time, data that is supposed be in a specific form isn’t so because it hasn’t been processed yet. Making multiple things happen at the same time and making sure that changes are reflected everywhere would solve a lot of the problems.

    Now, that’s not a bad idea in itself, but it’s the author’s solution that worries me: he wants to create a software system which will emulate a proper synchronous system. Firstly there is no real implementation of this idea, other than a few pages of theory, even though the project appears to have been around for a while. Secondly, as the comments on the OSNews report page show, the idea isn’t exactly novel and the author does not seem to have all his facts correct. Third, this person is not actually writing the software system himself. He seems to have no formal education or practical experience in computer science and seems to lack any knowledge about the mathematics behind computer programming and algorithms. Does “practice what you preach” ring a bell anyone? Finally the author seems to take no notice of other advances in computer science, like parallel processing, neural networks and cellular automata to name a few. 

    And in the end, we should remember that a lot of the unreliability of computer programs can be cured by good old hard work. The reason that the linux kernel is much more stable and secure than Windows, is simple because there are a lot more people looking for bugs and contributing code. In a wonder, the author’s idea is not bad and it might work, but it is hopelessly short-sighted and without any semblance of a working model, I’m not taking the bait. However I would encourage you to read the article and draw your own conclusions. (No, you don’t have to be a CS graduate, but some experience might be nice)

30Boxes Review: It’s My Life Online

Time is something no one ever has enough of. Even more so in today's world of super fast food, fast cars, fast internet connections, fast money transfers etc. etc. Time Management is one lesson almost everyone should learn. Of course, how better to manage your time than with with a calendar. No I don't mean the old paper and pen affairs, I mean the new, slick Web 2.0 calendars. So here's a look at what I consider is the best calendar app out there: 30Boxes.

I've been looking for a good calendar program for quite some time now, and in the course of my searches, I've looked through a good few, both offline and online. But I never could use any of them for more than a few days due to one simple reason: usability. You see, the old pen and paper planner and calendar may not look too cool, but it's hard to get something that beats it at it's own job: keeping your schedule organized. Face it: why click half a dozen times to add an appointment, when I can scribble it into my pocket calendar in a fraction of the time? None of the desktop calendars I tried including Microsoft Outlook had quite the simplicity that I wanted. I wasn't a corporate executive who had a secretary to keep track of my appointments, I was just a student who wanted to get my homework and projects in on time. Many of the online calendars I tried weren't really that much better.

Enter 30boxes. In my opinion, 30boxes has everything right from the word Go!. When you visit their site you're presented with a sample calendar, which you can play around with and get a feel for the whole thing. Signup is easy, with just a name, password and email address required (though there are ample customization opportunities available). The whole page is dominated by, yes you guessed it 30 boxes. The centre piece is one big calendar. Though it may not look too inspiring at first, you'll soon realize how great it is to be able to skim through all your plans without the distraction of a dozen different buttons. Usability is the forte of this little service, and it will deliver you a smile. Unlike most calendars, 30Boxes doesn't need you click a dozen times to add a tiny entry and doesn't clutter the interface with useless buttons. New events can be added by just typing the name of the event and the date and time, one after the other into the "Add" box at the top. Just type and hit Enter and that's it, your calendar now has a new event added. You can even add colours or tags like "work" and "play" and anything else you might want to add, right in the Add box itself. Once added, changing or adding other information about an event is just a click away.

30Boxes uses AJAX and other Web 2.0 technologies to deliver a superb product. The interface is fast and snappy and almost everything can be accessed with a simple mouseover of the appropriate button. And since your calendar is on the net, it's a snap to share it with others. You have a choice of a variety of technologies to choose from including RSS, iCal and JavaScript or HTML buttons for your website or blog. You can assign colors and tags to your events and can search your calendar for tags or other keywords. There's also a nice to-do list which is quick and easy to manage, with the same Add box interface as the calendar itself. Students as well as busy professionals will find it very helpful, although I wish you could drag and drop from the calendar to the list and vice-versa.

    Now it would only be fair to say that there a number of other online calendas and to-do lists out there, the most popular would probably be Google Calendar and Kiko. They are good products, but Google Calendar simple lacks the slickness and Kiko's default is certainly colorful, but is a bit too cluttered for me. If you can recommend a good calendar app other than the ones mentioned, drop a comment and I'll give it a look. But if you're no-nonsense type of person who likes something that gets the job done quick without unnecessary frills, I think you'll enjoy your 30Boxes a lot. Have fun!

A Blogger’s Dilemma: Categories vs Tags

    When I first moved to WordPress a year ago from Blogger, I came because of three main reasons:

  1. Categories. I really don't know why Blogger still does not have something like this.
  2. Static Pages. As your blog goes, it's good to have a static page or two where you can link to your best posts.
  3. Greater customization and the free FTP space that my previous host was giving me.

There's really nothing to be said about the last two, but of late I've been having some issues with categories. When I first started using WordPress, I thought that it would be a great way to organize my posts. But let's face it, how many bloggers actually use categories to organize their posts as such? And how many blog readers actually use the category links in the sidebar to look through previous posts? I certainly don't. Now that's not to say that categories are useless. On the contrary, they are very useful because of a wonderful little thing called Technorati Tags. Technorati, as every blogger knows, is pretty much the Google of blog search. Using the proper tags in your post can help drive a lot of genuine traffic to your site. The good thing about WordPress is that the categories can be read as Technorati Tags. To have Technorati read a post as tagged, just place it in the right category. Simple.

    Now here's the catch. A category is permanent, and once you use a category, it adds to your category list and appears in your sidebar. It's not really so big a problem, but it can get irritating to keep track of all your categories. Sure you can organize them by using sub-categories, but whatever you do, you'll still end up having to search through a long category list. And the categories you rarely use will still hang around even you've only used it once two months ago. 

    There is a workaround, keep a HTML file of all the tags you want and manually copy/paste them into your blog post, but that's not really efficient is it? For now I think that I'll stick to categories and sub-categories.