Google – The OS re-defined…

8 07 2009

So finally after all the rumors, speculation and denials – it’s out there in black and white – Google has announced the Google Chrome OS .
This has led to a flurry of speculation of course the biggest being the impact on Microsoft (check out this cartoon by Federico Feini:-) )
google_vs_microsoft
The details are :-

  1. It would be a custom version of the GNU/Linux kernel.
  2. The software architecture is simple — Google Chrome running within a new windowing system on top of a Linux kernel.
  3. It would initially be targeted for use in netbooks.
  4. It is different from the Android Mobile OS which was designed to target various devices (and form-factors) from phones and set-top boxes to netbooks. The Google Chrome OS would be for people that spend a lot of their time on the internet and will target power computers.
  5. Plan to release in the middle of 2010.
  6. It would be open-source so expect code for developers to play sometime soon.

I am for one am going to follow this with much interest and keep my fingers crossed that it works out. If this is anything like Google Chrome – I would be willing to install it and give it a fair shot at becoming my default OS. that being said there is still a long way to go and quite a bit of competition too – especially given that it’s going to be a flavor of Linux, which we know does not suffer from a lack of flavors :-)

I noted in a post at the beginning of the year that Google had pulled the plug on several projects. It was named Google hunkers down.

Well it looks like that was just a breather – a clearing of the slate for the big guns – Google is back !!

Oh and by the way – Google Apps (GMail, Google Docs, Google Calendar and GTalk) is out of beta :-) This seems more to satisfy the paying customers than any new release of functionality :-)

PPS :





Google Wave looks awesome

21 06 2009

Check out the Google Wave – this is AWESOME stuff and when it comes out could transform your social media universe completely. You simply have to see the video (it’s a little long) to believe it – instant messaging that’s truly instant, collaboration in real-time…. here is an abridged version of the unveiling -

The application UI is written using HTML 5 (canvas element, video element, geolocation, App Cache, etc) and will render in the mordern browsers. This of course implies Firefox 3.5, Google Chrome etc

The other reason why I think it’s so cool is that Google is borrowing a page from Microsoft and involving developers. The Google Waves are extensible and the communication protocol used is open source , there are APIs available for developers as well as a sandbox environment where developers can try out their code. You can even set-up your own Google Wave server – which is really cool when you start thinking of enterprises and the possibilities of collaboration there…  It’s insane I tell you -  the only catch is – it’s not available yet.  It’s in private beta – you can sign up to be informed when it goes public – wonder when mere mortals like me can play with it.





What is Adobe Flash,Flex and AIR?

20 03 2009

I think ever since the internet started becoming a platform for business, people have been working on ways to enhance the limitations of HTML.  One way to do this was to get the user to download and install extensions to the basic browser platform that had the capabilities to run the code used to create regular user interfaces. Adobe introduced the Flash player which was essentially an animation and video platform with some development features (Adobe Flash uses a language called Actionscript) .

As the concept of Rich Internet Applications started getting more traction and mind share with the advent of AJAX based technologies – Adobe introduced the AIR platform and the Adobe Flex framework.

The AIR (Adobe Integrated Runtime) platform is a cross platform runtime on which one can deploy applications built using Adobe Flash, HML, AJAX or Adobe Flex on the desktop. Thus AIR is a means by which the developer of an RIA application can extend their presence on to the computers desktop and become independent of the browser.

The Adobe Flex Framework is a bit like Microsoft XAML or Mozilla XUL in that it is uses an XML based language (called MXML) that you use to describe your user interface. You can use in conjunction Actionscript to create applications Flex is an Adobe framework that leverages the Adobe AIR and Adobe Flash run-times. While the framework itself is open source (it’s not free though), the underlying run-times that it targets are proprietary (though I believe they now support the WebKit HTML engine as well which is an open source run-time). Both AIR and the Flex Framework are freely available, Adobe sells an eclipse based tool called Flex Builder that lets easily build powerful applications using the Flex Framework.

Competitors in this space include Microsoft Silverlight and it’s Mono counterpart Moonlight, Mozilla’s Prism project and Sun’s JavaFX.

A predecessor to all these frameworks you might want to consider is OpenLaszlo. It is open source framework I came across a couple of years back that was already supporting flash and I believe now they support a wide variety of platforms.

Another interesting open source project in this space is Curl which is an MIT project





Books Ahoy !

25 02 2009

I am a bookworm – this is not a particular new or startling revelation to anyone who knows me. This particular love affair was fanned by my father who has a fetish for collecting things – books are one of these things :-) Over the years I have read a lot of books… I read comics and novels and magazines and newspapers. I read encyclopedias and almanacs and whole lot of Readers Digest – I love their condensed books. I am the type of guy who will read the backs of cans or the small print in advertisements while waiting in lines :-)

Once I left college and entered the software industry – I became fascinated by the internet and awed  by the amount of information that was available. As my life became more and more nomadic (I was a software consultant) I found it difficult to carry around books (stupid international travel regulations restricting baggage to 30Kgs !) and buying books everywhere I went, while tempting, was way too expensive. Instead the addictive power of Google and broadband connections drew me to the flickering glow of the computer/laptop monitor.

Then suddenly blogging and RSS became mainstream and all of a sudden I was facing information overload. Bombarded by news items, article, opinions, rants, podcasts (I think podcasts a brilliant for certain situations – more here) and video blogging – there weren’t simply weren’t enough hours in the day to keep up!  I started feeling the computer and the broadband connection becoming a leash tethering me the glowing screen. I missed being able to lie on my back and or curling up on a couch with a book.  I bought a laptop and then a PDA (this was back before the iPod and way before smart-phones). Neither were satisfactory solutions – the laptop was too cumbersome, I was scared of dropping it and the battery life sucked. The PDA had more potential but had neither a big enough screen nor satisfactory software.

Last year I moved back home to Trivandrum (Kerala, India) – I looked at all the shelves lined with familiar classics from my childhood and promptly started reading them again (the lack of a reliable broadband internet connection played a part as well I admit). I found some of my colleagues at work shared my love for books and got recommendations, which I blended with my own list of books I wanted to read.   Then I went to the local bookstore and bought some books (actually I bought a whole lot of books) :-)

It feels good to be back reading books – I have broadband but it is not un-limited so I am more picky in what I use it for (software and media downloads mostly). I think I manage to grasp and read more using a book – I think the fact that unlike the computer there are no distractions or options helps one focus more and get deeper into the experience.

The price of books in India is a pleasant surprise compared to international book prices :-) There are few hard-covers and the books aren’t published using high quality paper but I can live with that. The only thing I miss is access to some of the comics/graphic novels I had when I was in America :-(  I have heard of  the Kindle from Amazon and I think it’s brilliant – it is however – still a long way away from replacing a books.

PS: I have signed up for an online bookshelf called Readernaut check it out – you can signup if your are interested :-)

I am on Shelfari as well





Darwin gets a thumbs up from the catholic church

13 02 2009

Here is the link – Vatican buries the hatchet with Charles Darwin

It’s over a hundred years too late but then this is the Vatican – it takes them awhile to get around to things :-)   I wonder what parents and school teachers will be telling their kids ;-) I can imagine the conversation -

Adult:  Remember that intelligent design stuff we were spouting about – turns out we were wrong after all.  My bad !
Kid: OK… Whatever you say…  Can I go and play now ?

Man, wonder what the die hard intelligent design folks will do – convert or accept the Vatican?
I’m going to grab some popcorn and watch the fireworks :-)





A Linux for every trade…

12 02 2009

While puttering around the internet the other day I came upon this software AptonCD and while going through it – a set of light bulbs went off in my head and I actually had an idea ! I was so excited by this that I thought I’d blog about it :-)

I participate in the Free Software Users Group, Thiruvananthapuram (Trivandrum) and one if it’s main activities is making Linux available to the general populace. As part of this activity a local company Zyxware Technologies (these really cool guys BTW) put together vending machine (Freedom Toaster) which burns various Linux distributions on CD/DVD media. This proved to be a very successful project (broadband is still limited and expensive in India so downloading distributions is quite difficult).

One of my challenges as a programmer has been around setting up the development environment. All programmers have a certain toolkit that they are comfortable with. Depending on their level of  sophistication this can be as simple as a text editor to a full blown IDE…  The challenge for me was finding and setting up equivalent tools in the Linux platform to the ones I used in Windows.

It occurred to me  that the challenge I detailed above would be a common one for anyone that is using a set of software tools for their trade.  It would also be useful to people in other professions (other than programming software) that are switching to Linux from another OS platform like Windows to get a set of equivalent tools in Linux for the ones they use in Windows. In fact there are lists out there that detail Linux equivalents to Windows tools.

So here is my idea – We could leverage AptonCD to create meta-packages that people could simply install over the base Linux distribution. These packages would be prepared separately from the base Debian install (Apt is the Debian package manager) and applied after the distribution is installed.

This is not a new idea – in fact here in Kerala we already have a custom Debian distribution that is targeted for schools – IT@School .  The twist here is that while the IT@School is a custom Debian distribution what I have in mind is more in terms of meta-packages that can be installed over a base Debian distribution like Ubuntu. We can leverage the Freedom Toaster to distribute these packages for people. The packages would be created by professionals in a trade  for other professionals who want to use Linux but are not sure how to get all the tools of their trade on it. These people can simply install the OS distribution and install the meta-package for their trade and voila – they can get to work :-)

Of course there are still challenges – Linux often has several tools for a particular task and there may be version conflicts as well. I have also not accounted for the learning curve in getting used to these tools. Nonetheless, I think this would at least give a head-start to professionals wanting to use Linux as a platform for their trade and drive adoption of Linux.

The ultimate aim IMHO is not to make everyone in the world a super-duper Linux hacker but to make people productive in Linux :-)





Prototype It!

23 01 2009

So I saw this post today – it’s by Paul Buchheit a former Googler (he is one of the founders of FriendFeed) and the lead developer of one of my all time favorite software applications – GMail (it was his 20% project at Google) and it’s about the concept of Communicating with code.

Paul writes (in his post) on the concept of  using prototypes  to communicate ideas and concepts. He talks about his work with GMail and how he threw together a prototype in order to show the idea of targeted ads in GMail – targeted ads was not a priority until the prototype showed how useful and interesting it could be. The post ends with a similar exercise that he has done using the Friendfeed API (it’s pretty cool – check it out :-) ) The reason I read this post and decided to blog about it is that it talks about developer communication – a topic that I wrote about in another post .

Communicating ideas through prototypes is a great idea – I have always noticed that people get more excited about something they can play with and try out. In fact this is old news in other industries – the auto industry, for example, spends millions to make concept cars to introduce new ideas to the public and solicit feedback Architects likewise – build scale models of their ideas to present to clients. So why don’t we adopt these ideas ? After all we are always talking about “software architecture” and “software construction” and other civil engineering analogies when we talk of software development ;-)

My experience is that when the term “prototype” comes up in software development projects most people are thinking of mock-ups. This is especially true in the web-development shops where there is a separate team of graphics designers creating HTML and image pictures of the user interface while a separate team of developers get to “build” the application from the pictures :-) I think this is a very limiting thing.Prototypes should not be limited to the user experience or to presenting and communicating new ideas. I like to make prototypes of my technical solutions to software problems. For example, if you are trying out this great new idea you had on caching data – write a prototype application – the absolute simplest application you can use to exercise your idea.  This would provide you with feedback on whether your idea is valid as well as show up gotchas or limitations in your design.  The pragmatic programmers in their seminal book – The Pragmatic Programmer refereed to these applications as “Tracer bullets”.

Sometimes the concepts or ideas themselves are large and need a lot of programming to even build the prototype(tracer bullet). In these cases I still believe one must prototype the concept – so the question remains – how do you do this ?
Well one way would be to take the approach Paul took in building the initial GMail prototype – modify some existing code. I find sitting in front of a blank file makes the task ahead seem even bigger than it is – so I start with a piece of code to modify even if it is something as simple as a “Hello World” application.  Another good place to look is in the open source forums (though this might be a problem if you are working in a  company that does not allow open source software) – usually there is some variation on your concept that you could work with there :-) . A third option is to accumulate code, links and other resources over time that you can use to jump start your coding.

So – Happy Prototyping :-)





Google hunkers down

21 01 2009

So the Google machine is finally slowing down a bit… With the economic recession and slowing revenue growth – Google is no longer the darling tech stock that it once was. The blitzkrieg approach is showing signs of the strain and Google has been taking a long hard look at it’s core business and has started shedding some of it’s fat.

It started out with cutting the famed perks – the free food and fancy services, then it moved to cutting down the contractors and then they let go about a 100 employees.

In addition to the personnel and perks – Google has also started shutting down some of it’s products – here are some that are reaching or have reached their EOL (End of Life)

  1. Google Notebook – some of my friends really liked this one and it was good with the Firefox extension but after Google Docs and now the To-Do list in GMail it started getting less relevant. The main problem for me was – without the extension – it was just another to-do list web-site I had to remember to go to and often I needed the list when I was not anywhere near a net connection (yes – I admit it I don’t have a cell phone with a data plan).
  2. Google Video -  This one is obvious. When they bought You-Tube the writing was on the wall for Google Video and with the incorporation of video search using the universal search interface it was made even less relevant. Google has disabled the uploading of videos but is still allowing the search and viewing of existing videos. The pity is that Google Video did not have file upload limits the way You-Tube does which allowed for the upload and dissemination of some great presentations and learning videos.
  3. Jaiku – This is not going away completely – as I understand it, Googlers are planning to re-factor the code to use the Google App Engine and then release the source code.
  4. Google Catalog Search – It was started as a showcase of OCR technology. Now with Google Book Search incorporating the technology and the Google Search Wiki it’s not as relevant to Google I guess.
  5. Dodgeball – This is again an obvious one. It was a start-up purporting to provide networking and communication services to people in the same geographical areas. Google bought it but never did anything further with it and the founders of the company finally quit Google in disgust.
  6. GrandCentral – This one is still there but it has been inactive for a long while. I think the problem with GrandCentral is the lack of a clear monetization strategy that fits into Google’s business model advertising.  Besides – GTalk has video chat and voice now which might be the direction Google is taking. Recent indications only serve to reinforce this theory.
  7. Lively – This was Google’s foray into the arena of virtual worlds. I am not really a big fan of the virtual worlds concept (I think it’s way too early and limiting – it needs ubiquitous access to virtual reality hardware for the concept to make sense)  so I largely ignored this one. It seemed so did a large number of people so it’s dead. The announcement came last November itself.

All these are good steps and they portray a company that is mature enough to realize that sometimes tough steps need to be taken and pragmatic enough to take them.

Google has had an image as a naive, starry eyed dreamer – these steps will puncture that image. But, then I would rather have Google surviving the hard times at the expense of it’s naive image than it failing because of it. In the end the company makes great software and there are too many people – myself included who use it’s software every day and would miss it if it were to go away.

I can live with a few less Google Products if I can continue to get the ones that I use everyday ;-)





Setting up Ubuntu 8.04 Server on VirtualBox

2 01 2009

Yesterday, I was trying to install Ubuntu 8.04 server on my desktop using VirtualBox to set up a virtual LAMP server to play with.

VirtualBox is a virtualizer software like VM-Ware or Virtual PC. It is supported by Sun and is the the only one which is open source. It’s a pretty slick piece of software and  comes with a set of pre built host environments on which you can install various operating systems.  It has a nice intuitive user interface and pretty full featured.

So, I started off on my installation – picked Ubuntu host environment and assigned 512 MB of RAM and 10GB for the hard drive. Then I pointed it to the Ubuntu 8.04 server install ISO and off I went through the install. The install itself went off without any problems – I chose the LAMP server setup and everything went smoothly. The problem was after the install when I tried to boot up the server – I got the following error -

The kernel requires the following features not present on the CPU

0:6

Unable to boot - please use a kernel appropriate for your CPU

So I Googled around for the error and got some blog posts (oh good so I am not crazy :-) ) that I went through and I thought I’d summarize it here for reference. So here goes -
The Ubuntu 8.04 Server installation comes with a kernel that assumes that Physical Address Extension (PAE) is enabled in the processor. This is a feature in x86 and x86-64 bit processors that allow them to address more that 4GB of physical address space (which makes sense – this is a server install after all…). This feature is not turned on by default in the VirtualBox software’s virtual processor.  The simple solution is to enable this feature in the VirtualBox software – one does that as follows -

  1. Shutdown the Virtual Machine (VM) instance.
  2. Open the settings on the VM through the VM VirtualBox manager
  3. Go to  -> General -> Advanced -> check Enable PAE/NX
  4. Start your VM
  5. Check to ensure that the Virtual Machine boots properly

That’s it – many thanks to the following bloggers and their blog entries :-)

  1. Hype-Free
  2. Blog Foo




Coding, Puzzles and Mathematics

31 12 2008

Coders like to solve problems – the high one gets when one finally ‘cracks’ a problem is one that is as powerful as any drug – they are also alpha males – they don’t like to lose… :-) This powerful combination leads to the traditional image of a pale, pasty, overweight  geek in glasses sitting over a computer screen in the wee hours of the night, mumbling to themselves and ingesting caffeine by the pound.

I’m a bit like that (OK – I am not pale and I like to work in the morning but the rest is similar ;-) ) except the problem I might be solving may not even have any real world application. It might simply be a solution to a puzzle !!

This post is about coders and their love of puzzles… Most of us have heard and even experienced the classic puzzle question in interviews for development positions. There are numerous books on this topic (the classic “How Would You Move Mount Fuji? Microsoft’s Cult of Puzzle‘ is a great read) – both about the interviewing techniques as well as methods to solve them. I don’t want to get into a discussion about how good or bad the use of this technique is in interviews (I personally don’t favor them – in the wrong hands they can be horrible – like this one ;-) )

What I like to do is examine the puzzles themselves – puzzles can be of several varieties – one can spend hours and hours over them – indeed some people make it a full-time hobby. There are several puzzle competitions  – one of the most challenging being the MIT Puzzle Hunt (the wikipedia entry is very informative). You also have organization leveraging this interest by posting challenges like the FBI

However, the puzzles that interest me are the ones that have a basis in pure logic. I tend to regard puzzles with an eye to the elegance of the solution. A good logical puzzle with an elegantly simple solution is a thing of beauty – I like to go through the reasoning and try and look for extensions or extrapolations. I look at the assumptions and limitations and try to understand the thought process behind the puzzle.

They are a good way to learn, to get ideas on new approaches.  They expand you mind and  are finally but most importantly – they are FUN. I often use them as a fun way to learn new computer languages – good candidates are mathematical puzzles :-)

Here are some nice links – check them out and happy solving :-)

  1. Maths Challenges – Check out the links section where there are some programming challenges.
  2. Project Euler – Awesome site with some really cool puzzles.
  3. Delphi For Fun – The programs are in Delphi which is aversion of Pascal but it has some nice algorithms.
  4. FBI Ciphers – Ciphers are a fun type of puzzle that kind off go off in to crypt-analysis.
  5. Shine’s Take on IT – My friend Shine is reading “How would you move Mount Fuji?” and is blogging about his read.