Am I the first one to figure out that google now has “customized driving directions” ? This is really cool… I always wanted to see how much longer or shorter a specific route is/can be. Now I can.
Aggregation, consolidation and information summarization
The next big thing on the internet has to be about simplicity. Internet has come to a point where its growth will become the cause of its own downfall without a dramatic change in the way it grows. Almost everyone I know has a yahoo mail, gmail and hotmail mail accounts. And now they are on linkedin, orkut and facebook too. Keeping track of your own logins,passwords, email addresses is difficult as it is, and now you have to keep up with all the new services your social network is plugged into.
I see 3 things happening in the next couple of years, some of which have already started.
- Consolidation of services – Google is slowly building a suite of applications like microsoft and yahoo. And others who don’t have a big war chest to build it themselves are getting others to build it for them (think facebook apps).
- Aggregation of services – Plaxo does a good job of syncing up multiple addressbooks and phone directories. We would be seeing a lot more of applications like these. This would also lead to more openness, and though its a little farfetched, it is possible to see microsoft,yahoo and google themselves providing an option to sync up with others. And while all this is going on, there are smaller services like symbaloo and IM aggregators like Trillian and meebo filling in the void.
- Information Summarization – This might sound new, but its already happening today. Aggregation of services by itself gives you a birds eye view of all the information flowing in, but without additional intelligence you still have to read through all your blogs and emails to understand what is going on. Using a combination of different mechanisms, like your preference settings , information clustering algorithms, NLP/NLG (Natural language processing/Generation) algorithms, it can help you cut through your daily feeds and emails swiftly.
The next big thing…
The search, Web2.0, blogging, social networking and now online television.
There are two kinds of innovation happening on the internet today. The first kind are the ones which are redefining the internet, and the second kind build over the first kind. Unlike traditionally research and innovation, its not the idea but the implementation and execution which makes or breaks a production or service in todays world.
As a hobby for the last few years I’ve played around with quite a few ideas to understand the implementation and execution complications involved in bringing ideas to life. I wrote a internet feed crawler 2 years ago, created a personalized feed reader preference detection engine using bayesian algorithm, created a IP/networking debugging tool called huntip.net, a digg like social news publication site called zoppr… and the latest experiment I had with was a service called flagthis . In my other life (at my real job) I kicked off a search product based on lucene with a fullblown Ajax interface using GWT 3.0.
I’ll be on the lookout for the next interesting idea to implement… and experiment with. Let me know if you have something interesting to share.
Color Schemes, Color Palettes, Color Theory
I’ve been off the blogging world for a few months now, but this I have to post. This is the best damn collection of color/web related sites.
Color Schemes, Color Palettes, Color Theory
Google web toolkit now completely open source
Google announced that as of today its GWT (Google web toolkit) is available under Apache 2.0 license. GWT, incase you didnt know is a java to javascript compiler which can churn out intelligent cross-browser compatible javascript code from pure java code. Switching from javascript to GWT has a bit of learning curve, but its completely possible that it will overtake most if not all the other Javascript toolkits out there.
My biggest pain point while working with other javascript based toolkits was detecting compile-time errors and debugging runtime errors. And in long run, I expect browser compatibility issues taking up significant development time to keep up with the various browsers out there. GWT like most other toolkits keeps its core code seperate from users javascript, and thus can take away some of the long term maintainance issues. But since GWT is supported by google, there is a bigger chance that this one will stay in the market much longer than others out there.
While most other toolkits expect you to write a little bit of javascript, GWT doesn’t expect you to write any. Infact GWT can even help you generate a complete HTML interface with buttons and input boxes using standard GWT widgets. And if you write your backend code in java, you will love the fact that GWT code can get compiled along with rest of your code, in background, in your favourite java editor, and will ensure that its as structured as rest of your java code base.
“101 Top 10 lists”, because I hate “Top 10″ lists
Most of the “Top 10 lists” come under the catagory of things which can’t be believed or ignored. To begin with, these are personal, regional, professional or age/gender based recommendations which can and do change from one set of people to another. And the fact that “Top 10″ means there are more contending for the higher spot, these lists get outdated almost as soon as they make it to a web page.
Now here is a list of 101 “Top 10″ lists put together which seemed to attract my attention. Notices that the list is in alphabetical order and that the author doesn’t really say that this is the “Top 101″ either.
I’m not surprised that there were so many “Top 10″ lists, but am a little curious who will come up with the “Top 1001″ next time.
Design to fail
Last night I went to an SDForum talk by two eBay architects Randy Shoup and Dan Pritchett on how they built, scaled and run their operation. The talk didn’t have anything substantially different from what I’ve heard before, but was still impressive because they were applying some of the common thinking to their operations which runs over 15000 servers any given time. [ Slides ]
Here are a few interesting phrases I took away from the talk.
- Scale out not up: Scaling up is not only expensive, it will also become impossible beyond a certain technical limitation. Scaling out, however is cheaper and practical.
- Design to fail: Every QA team I know, do a whole batch of tests to make sure all components work as they should. Rarely have I seen a team which also does testing to see whether the servers stay up if certain parts of the application fail.
- If you can’t split it, you can’t scale it: Ebay realized early on that anything which cannot be split into smaller components can’t be scaled. A good example of such operation are the “joins” on multiple tables in a database. Relying on database to do joins across a large set of tables means that you can never partition those tables into different databases. And if you can’t split it, you will have t
- Virtualize components: If they can virtualize it, and create an abstraction layer to take care of these virtual components, then rest of the application need not worry about the actual server names, database names, table names etc. The Operations team can move components around to suite scalability needs.
The Java+linux OS
This will be an interesting trend to follow. This linux+perl distribution is made up of just linux kernel and perl binaries. Rest of the tools are all written in perl shell scripts. Miguel de Icaza, the creator of mono is looking for folks to do the same with mono.
I think its a great experiment and will help validate mono as a practical alternative to other frameworks/languages on linux. But what will be even cooler (for me atleast) is if someone can create a true Object oriented shell experience like Microsoft’s powershell/monad. And incase you didn’t know, Powershell/Monad is the new shell by Microsoft using .net framework. It will probably replace cmd sometime in the future.
That being said, it doesn’t really have to be mono. Java is a perfect candidate for it as well. There was a java project related to a java based shell which I don’t think is active anymore… may be someone can revive it.
Can it be done ?
