Sunday, December 20, 2009

Avatar the must watch movie of life

I have been tracking the Avatar's progress for one reason -- James Cameron, the director of Terminator and Titanic and he was telling that he has been waiting for 15 years for technology to mature. What else you want? This is must watch movie obviously. I wanted to watch in 3D and yes I did it and I just lost in Pandora -- the planet where human invaded and trying to get the precious element. Story, well, you never need one for such a visual treats. You need to watch, watch, watch so many times to enjoy the beautify of characters and places. Wow, its spellbound. I watched on normal 3D and planning for IMAX 3D. Thanks Cameron for such a wonderful movie.
These are the items I liked in the first time....
  1. 9 feet tall humanoids which express emotions cleanly on screen
  2. Beautiful forest
  3. Floating mountain and mountain in general
  4. Big huge tree
  5. Glowing things in the nature which is brilliant
and technology which brings above all.

I some how felt the characters and nature in this movie draws me back to Indian epic Ramayana.

Tuesday, December 15, 2009

Websocket client

I am looking for Websocket client, these are my requirement.
  1. Flash is painful it needs one more server running on port 883 and it will always first hit that port to get the policy file and it is not configurable however it will try to origin port next time to get policy file. What a mess!!! So I don't want Flash based solution.
  2. Java applet --- may be ok and it is also one of the ubiquitous run time and most client machine should have Java installed.
  3. I am targeting just 2 browsers (hmmm... not exactly) IE (7, 8 and 9 -- jus kidding) and Firefox. Is it possible to use proprietary browser API to work around? Safari and Chrome already supports websocket, Safari is expected to support websocket anytime soon.
Please post you comment, if you have any solution in your mind.

Saturday, December 12, 2009

Firefox leaning towards Microsoft

It is well known that Google is contributing 70-80% of the Firefox's revenue but after Chrome browser Firefox became restless. It talked inline with Microsoft about Google's Chrome Frame for IE here is more. Firefox also talked about Bing and telling it is better in terms of handling privacy. Firefox also started slowing down some of the new Html5 features like Websocket and other form elements. Websocket has been completed and lying at the whim of review board. It shows symptom of IE team and leaning towards MS side. Will Firefox be bought over by MS? May be atleast we can expect some movement from Firefox towards MS, smells like MS is enemy of Google and for Firefox?

Friday, December 11, 2009

Erlang Websocket on Mochiweb

After long sleepless night and past two days of continuous work, able to run Websocket on Mochiweb. This is going to be checked into Erlwebsockserver. I really welcome folks to try out on Google Chrome which is the only Browser, apart from Firefox --- which has Websocket in its trunk waiting for review borads blessing.

Thursday, December 03, 2009

Google and it's DNS

Google public DNS
Google is known for making things (read web) fast. It tried with Google Chrome and it worked well. It’s minimalistic design in it’s various application also helps its peculiar but good indent of making web fast. Today I came to know about its public DNS, it good idea. I configured my Macbook to Google public DNS ( & after that I try to ping google itself to seek out how quick their domain name service. Before the google DNS, my ping latency was 27-35 msec, after I changed to goole DNS it became 80-120 msec. There are other factors which influence the ping latency basically I can’t trust AT&T’s U-Verse connection. I had many a times issue with slow speed and latency in the past. These are the minor thing but my major point of this posting is “How Google is going to exploit its DNS service?”,
Here is what I think,
Google is going to track which site user is actually visiting by logging DNS resolution request
It was initially the search being tracked, I once talked about URL is dead, but people still used to go to site which they frequent every day like twitter/facebook/yahoo etc and it also gives google opportunity to track everything. Yes everything and it is “the” data which is precious element to target adds and augment their application
On the otherside,
Google can identify fishing site and warn user
Track the profile of the web site and rank it based on multiple factors
Track the information which user is hunting through visiting the website
Can provide tiny url kind of service easily
It can provide application developed on google cloud (google app engine) a public access through its DNS and make cost effective etc
So Google is everywhere.

Friday, November 06, 2009

Load testing using tsung

I am trying to use tsung as load testing tool. It is written in Erlang and got advantage of spawning concurrent process easily and so it is best fit for this kind of simulation.
1. I wanted to test CouchDB Multimaster setup and to know how replication can be used reliably in real world scenario.
2. I also want to test HA proxy's TCP based load balancing using CouchDB's native client

Saturday, October 31, 2009

running erlang emulator shell as root on mac

I wanted to run couchdb under emulator but the problem with erl emulator is, it is not inheriting or obeying sudo command. I didn't plan well before installing couchdb so that it could run as logged in user. So I tried something like below to make it work on my macbook OS X (10.5.8)
1. sudo bash
2. set ERL_LIBS
3. export it
4. erl
Actual steps are
1. sudo bash (OR) sudo su
2. ERL_LIBS=/usr/local/lib/couchdb/erlang/lib --- path where couchdb is installed
3. export ERL_LIBS
4. echo $ERL_LIBS --- to verify the var is set properly
5. erl It worked finally...

Saturday, October 24, 2009

Native Erlang Interface to CouchDB

Http Client
In my application I am using couchbeam as erlang client utility. It is under heavily developed and improved by benoitc. It is one of the excellent http based couchdb erlang client.

Native Client
There is an interface which sits along with couchdb binaries called hovercraft. It looks like not maintained by its developer and it was not working as it is not retrofitted to new couchdb changes. I fixed those things by forking it (

Performance difference
It is native erlang client. So compare to any other http based erlang couchdb client it has advantage of talking to couchdb using erlang terms. So erlang->json ->erlang serialization is avoided. In my ad-hoc testing, I just had a document in couchdb and created view and accessed it through above client.
Couchbeam took 6472microsec - 7331 microsec
Hovercraft took 994 microsec - 1057 microsec.
Will this # matter? It is not humanly noticeable to find the difference but when no of request increases throughput will increase with native view but need to deal with Erlang.

Http client has advantages over native as
1. Easy to loadbalance using HAProxy or nginx or Apache
2. it is dead easy to set up Master to Slave configuration as Load is balanced in the DB request layer so Create/Update/Delete (CUD) can easily be routed to master, in case of native client, LB can be done at front end or presentation layer, but routing to master for CUD is quite complicated if it has session association and state management, but if it is designed and architected from the start it is quite simple to model. After all, native client is 6-7 times more efficient to http based client.

Saturday, September 12, 2009

Internet Scale Data Storage

Last week I read a blog from BackBlaze about their custom made peta byte storage system. It drew lot of attentions from the geek community. It is really interesting to see how they made component choices and design decisions for their storage requirement. Here is the link to the blog post

Cost comparison from various vendors is

Case design is quite interesting....

My Thoughts:
Google popularized commodity hardware and Amazon popularized low cost elastic storage and computing infrastructure. They brought in lot of real world confidence that "this kind of bold move will definitely work", Having boosted confidence by looking out those companies lot of new player going to come up with new refined low cost ideas and which will create enough trouble for big storage and other server vendors.

Sunday, September 06, 2009

Internet scale Operating System (OS)

Os should evolve from running on single system to fabric of multi system nodes. It should marry network give a seamless scalability. Virtualization is just opposite of what I am mentioning here. But OS should do virtualization too natively.
I am just thinking of intel's turbo boost ( which scales based on single or multi thread capabilities and needs.

Basic building block for network for fabric nodes + network management built in will help scale commodity hardware well.

My usecase is "buy N no of system and tell the OS that these are your siblings, children and clone", it will integrate natively with them. It might be useful to have patterns or strategy for specific use cases -- may be i term it as siblings/children/clone -- will share the load evenly/take over on non-availability/bring into work on demand etc and few other things like monitoring health of individual components should be there. With these things, OS really will ready for Internet scale. I don't know if Linux is going to go in this direction. I also read about how Google scales its infrastructure. But if Google open sources its customized Linux server used in its data center or contribute it back to linux it can happen over night. I expect this from Google and also revet its position as don't do evil. I still think if whole world can do better by exposing some of the innovative idea, it should be done immediately.

It also sounds like peer-peer built into OS -- p2p OS.

Friday, September 04, 2009

OpenId and oAuth

I am planning to implement the openid and oAuth in Erlang. There are couple of modules already there which I am going to look into however I am interested in Attribute exchange and policy extension for multi factor authentication. Current incarnation of openid has UX (User experience) issue due to URL redirections. It is addressed in Openid UI extension, So possibly the popup based solution would come into practice.
I will update this post when I figure out the issues and possible solutions.
I am interested in oAuth enforcing standard mechanism to share different resources (http).

Tuesday, September 01, 2009

Opera and Html5

Opera is really great browser but it lacks great brand value. May be because it is started its life as paid browser. I am trying opera 10, it has most of the html5 thingy like all the "input" types including "date" nice date widget is incorporated. I am not able to find "datagrid" which is discarded from html5 but I do find datalist tag is implemented in opera10. So for html5 lovers opera 10 would be the best home ground to play with new tags. Thank you opera for being industry leader to complaint with new standards. This is great effort because google chrome or apple safari -- 2 big guys behind html5 is still lacking with respect to opera. hm... most of the revenue for opera coming from Google. Did I say Google?

Is Java/C# dead?

Is Java Dead?
Almost a/an year or more back I read about "java is dead, long live java" I felt angry. I felt the author is really lunatic. But ... now I have a reason to say it should die. If you work with Java and struggled to scale for few 100 users... not even for Internet scale you will wish java should die. It looks like "Yes" for web application development. But I differ from original author. Java should die not because its bloat or not SOA ready (SOA is also declared dead by Anne Thomas Manes) but because it inherent issue with Thread and shared model. It can't even be resurrected by models like Ejb to help scale application. It is like mercury and it is hazardous to environment as you need more servers to do the same scale. May be thats the reason IBM left buying SUN.

Who is playing the Game?
Java in late 90s and till 2003 is really good as hardware vendors like Intel focused more on clock speed and tailing directly with moors law. But suddenly they realized that that route won't work and changed the rule. So rule of the game now shifted to multi core. This is the reason software developed for single core with high clock is struggling to cope up with low clock speed with multi cores.

What others Think about Java?

I also found some where in the Internet, I guess it is Steve Yegge, quoted "Java proved even pig can fly". Yes I still felt IBM and other anti MS guys made and give java a Star status. It grown to 800 pound gorilla and become useless in modern Internet scale application. Earlier I was looking to see any of the internet scale companies use Java as their underlying platform. hm... they know what they want.... No where I found a Java in use. I know how complex an Ejb is. But how much it can scale? It is worthless to provide hardware, though it is cheap, to produce sub optimal results -- even cheap will become very costly in the long run. But it is good at certain aspects. I pity on guys like Gavin King who contributed Webbeans and Seam framework which will kneel down and burry itself when 100 concurrent user access it. JCP is useless and they come up with standards when even after somsthing is obsolete, for ex, JSF came and AJAX destroyed it, JSF 2.0 finalized and Websocket and comet or more specific JQuery, Dojo, YUI/Ext Js already doing heavy lifting in the client side. So why we need to do page construction in the server side?

So what is the alternative? Yes there is emphatic answer. It is Erlang. We are in the modern world. We know how Json and REST is useFull and Soap is there to cleanse us from multi language hell. So it Amazon, Facebook, meebo and others enjoyed the power of Erlang. It is like nuclear bomb and it is so powerful concurrency and message passing actor model will help scale.

HTML5 user defined tag

One of the item lacking from html5 is defining custom tag. It should have provision to make custom tag. Tags are bound by certain parameters. It needs style to render. It needs events to react. So it is possible to provide option to create custom tag and those info related to style and events can be handled (cache etc) by browser.

Html5 should define browser contract. It already does. It have sections for UA aka user agent. So why can;t we define background process for browser? it is possible similar to iphone push notification but here each website can optionally provide API for dealing with "Push" call. Once this is ready, email app like Gmail expose API for new message. So once thats enlisted in browser -- may be by creating html application, new message will be shown similar to how out look shows in task bar but now with application short cut. Google chrome went in this direction but not with what I expected. This will make web application feature complete and compete with desktop application. This is possible as we are again into Browser war. So how is going to come up or going to complain with new standards going to win.

Saturday, August 29, 2009

HTML5 and Page Size reduction - My Perspective

AT&T network serving 16 petabytes of Data each day
This is not 100% HTML content it includes video/audio other media type content. I found based on html5 new tags, the size of the page can be reduce upto 50% of the total mark up size. What it means is using concise tags eliminate unnecessary markup like extra html tags and CSS and otherstuffs. And also two important media tags Video and Audio would reduce plugin code (it may be one time + some other extra stuffs) It would be huge boon to network. Websocket will enable easy push feature and binary data transfer which also will play friendly to payload. So ultimately new version html (html5) will need less mark up to achieve same effect and also some time less extra enabler code. Size reduction is mainly due to as I said above, Since reduction in html code to achieve same look and feel will ease the Search engine parsing -- it also saves power cost and hence environmental friendly --- connecting loose ends. One more side effect would be performance improvement on the browser as browser needs to parse, understand and apply style etc to only few elements.
  1. New html tags so less mark up
  2. New media tag - video and audio so less dependency need for using media
  3. Websocket -- duplex communication eliminates unnecessary round trip and concise data transfer
  4. Improved browser performance
  5. Search engine friendly -- less markup to parse and no proprietary plugin to understand
  6. Less power usage - markup generation and Search engine content parsing

Thursday, August 20, 2009

Erlang - Fileupload

I have been playing with ewgi --- wsgi equivalent of Python. It is spec which is above and top of particular application server likes (YAWS or Mochiweb or inets or misultin) so the application developed for ewgi can run on any server without any modification, ideally.
I have been playing with mochiweb and couchdb and using beepbeep as my application framework. Beepbeep has integration with ewgi and so for good for simple usecase. But I was not able to do file uploading. I added missing fileupload piece to beepbeep but theoretically it should work for any application running on EWGI and Mochiweb. So I forked beepbeep and added my file upload module, you can get it from here

Thursday, July 16, 2009

Apache's [HTML5 Websocket] Conundrum

Setting the Context:

I think, few days back I created a enhancement request (bug) in apache bugzilla to add new Websocket feature. I got a couple of boisterous comment and I wanted to share that to the other folks. Here is more on the issue

Here is what I felt.

Death of the product is not because of the product itself but because of the people behind them, it is because of lacking foresight and shortsighted decision making. I saw death of Netscape and Fall of IE and much more. It is not because of IE is bad but because other alternatives which are too good to omit. If anything fails to catch up with competitor quickly, it means it is manhandled by those aforementioned folks. I am able to smell that in Apache. HTML5 is huge force, it can’t be omitted. I am able to play video in iPhone Safari (without Flash), Firefox 3.5, Opera (Version 10 has more than 95% HTML5 feature implemented), Webkit is in full throttle and it carries easily Safari and Google Chrome browser future forward. HTML5 also comes up with enhancement for Server. Now ball is on Server provides’/Apache’s court. So, Apache should wake up –Why? Websocket is the next driving force for the future Web platform. I don’t want to see Apache’s omission only because of Websocket support. I am able to see quite a lot of web servers are popping up. They are expecting break through – late to market is again going to be big break through for new players (server providers) who has product with those features.

I am also able to see few websocket servers. Googling will atleast give basic minimal knowledge or Answers for the questions like “why?”. I never anticipate all folks who stalk apache are Einstein but my only concern is they should not cause trouble to Apache.

I also found another comment, quite interesting. Websocket is proposed by single guy. I am not able to understand why this is matter. If million folks come up with crappy thingy doesn’t mean that – it is good. But websocket is backed by All the heavy weights – (Google, Apple, Mozilla, Opera and Microsoft (not yet sure)) So Apache’s challenge is to track these naysayers out and shift their focus on impending standards which makes them or keeps them as leader.

Adhoc Browser Performance Testing (IE8, Google Chrome2, Firefox3.5) - Round 2 (with SSD)

This time I tried with IE8 and entirely different system again I used the same link to see the performance
(I also open/close the borwser few times to bring all the moving parts close to the heart of OS -:) )




Loading the above link button – iteration 1

0.5 sec

1.6 Sec

1.2 Sec

Loading the above link– iteration 2 (Close the browser, reload it again)

0.5 sec

1.7 Sec

1.1 Sec

Clicking GO button – iteration 1

1.9 Sec

Broken and it took 5.5 Sec to hide the table and stopped rendering the table below “Go” button. I tried compatible mode but it also didn't help.

4.3 Sec

For the kick, I checked with iPhone OS3.0 safari, It took 0.5 sec to show few rows and tool almost 3.5 minutes to render the entire page. I also checked it render all the rows. I tried to click the "Go" button, It did not work. Though it is not bad as it is not meant for this kind of load.

System used:


Gskill Falcon 128GB SSD

All the test ran on the same system.


I considered Network latencies, Network congestion etc would be same for all the browser

as it is tested on the same system. You can still use the given Link to try it yourself.

Adhoc Browser Performance Testing (IE, Google Chrome, Firefox)

I came across complex requirement. Here is that,

It is huge grid table with context menu, filter, sorting etc, no of rows goes beyond 1000 and column is more than 16. I found Ext JS’s Grid is used. It is taking almost a while to load completely. It is really slow and it feels as if CPU 100% utilized and no memory is available. I wanted to picture the problem; here is the test something similar to my requirement




Loading the above link button – iteration 1

1.6 sec

2.3 Sec

1.8 Sec

Loading the above link– iteration 2 (Close the browser, reload it again)

1.5 sec

1.8 Sec

1.9 Sec

Clicking GO button – iteration 1

3.1 Sec

25.5 Sec

6 Sec

Clicking GO button – iteration 2

3 sec

25.2 Sec

6.1 Sec

Note: I used iPhone stop watch to test it. Though it is not fair to compare when IE 8 is out, but I have to work with IE6. I am interested in last 2 rows. Even with the margin of 0.5 sec error, Google chrome and to some extend the firefox3.0 gouged the IE.

System used:

Pentium D 3.0 GHz, 2 GB of RAM

All the test ran on the same system.

There are 2 things should happen,

IE should die including IE8 or it should reinvent itself for betterment of community. Microsoft should not punish the community and enterprise. Please do Microsoft....

Erlang and SOAP Webservice

I just completed invoking SOAP Webservice from Erlang.

Here is what I did,

  1. inets:start(), This is very important without which http:request will not be succeeded.
  2. Took a shortcut: (hm.. not actually) I treated SOAP Call as Http POST call.
  3. I used Erlang http module
    1. http:request( post, URL, [{"Host" , Host}, {"SOAPAction", ""}],

"text/xml", getData ()},

[ {timeout, 5000} ], [{body_format, binary}])

    1. Used case expression to handle different condition
  1. getData() returns binary form of soap message. Here, correct payload of SOAP Request will be needed to make this request template. It returns binary form of the SOAP payload (String form can also be used)
  2. http:request would return either
    1. {ok, Result} -> Handle successful http request
    2. {error, Reason} -> Handle Errors
    3. {ok, saved_to_file}-> if you use “stream” option, this pattern will be invoked and it is optional.
  3. Result is response payload (http payload) and can be processed


Erlang has good support for Proxy and Proxy authentication unlike python. Python is mess in this area.

Sunday, July 12, 2009

Is Apple reinventing the wheel?

I went through Apple's proposal It is great to see Apple's push for HTTP Streaming and I appreciate the effort. But devils in details. I have different thoughts here. It looks complex as it needs, server side Segmenter. As per HTTP 1.1, server can handle Chunked transfer encoding ( section 3.6.1 Chunked Transfer Coding). When server/client comes to an agreement about size/blocks of chunks, it can stream the video without even the requirement of Playlist (m3p8). It simplifies another call to obtain playlist.
Apple devised this approach for iPhone. And its safari is able to handle video playback natively. When streaming natively handled in HTTP and Html5 video tag and video tag playback execution knows to utilize http transfer encoding, it can do a streaming, we don't even need complex segmenter or intermediary. It is kind of pushing the problem from one place to another.

Saturday, July 11, 2009

Version Control - how to save my work?

I am a heavy user of IBM products, I heavily used ClearCase, it is good we can create config spec and do lot of bulk operation. But it needs separate Venture Capitalist to sponsor the software, it needs admin and huge hardware. Oops..... not good for me.
Software world come long way CVS is quite popular not only among open source geeks but many corporates uses it. Later new kid SVN came and addressed some of the shortcoming of CVS and its quickly become popular.
DVCS or Distributed version control system which born out of necessity. It addresses inherent issue with centrally managed version control system. User can locally create a copy of repository and as and when send a change to server. So latency, delay associated with centralized management and network activities for every action on files got alleviated. It follows certain lifecycle, (Mercurial)
  1. create a local repository - Clone/Init
  2. Modify the code
  3. Commit -locally
  4. repeat the step 2 and 3 as long as you wish
  5. Push the changes to the Server - If conflict due to another users modified code, you can resolve
  6. Pull from the server
  7. merge
Steps 5 and 6 involves the communication to the server. Others are done locally.

There few options in choosing DVCS,
1. Mercurial
2. Git
3. Bazaar

I am using Mercurial (Bitbucket's service) almost from 2007. It has good tortoiseHg GUI which integrates natively with Windows Explorer (Microsoft).
Git and Bazaar also suppose to be good and it is based on personal taste and difference over what it offers is minor but may be matter to choose one from another.

Google uses Mercurial for its Google Code. But it uses Git for Android. Sun Microsystem uses Mercurial extensively for Open Solaris, Netbeans etc. Mozilla also uses Mercurial.
Git is used for Linux kernal and lot of others.

Github is most popular hosting service which offers Git repository. Bitbucket is offering mercurial. There are quite few offers dvcs repositories for few bucks. It is really good for startups to use these (Cloud Service) service.

Python 3.0 AmazonS3 with Proxy Authentication

I just choose Python to do prototyping for Amazon S3. I just used 3 lines of http client module and viola, done with uploading. This is the same for URL Query String authentication. Just needs to know how Amazon wants their signature in the URL. Python almost built everything in.

I hit a wall, my POC whizz-banged when I need to fiercely encounter proxy. Devil is details. Yes, proxy needs to be authenticated. Since I used Python 3.0 I never able to find a suitable open source module to elegantly handle Proxy Authentication. I tried with socket and used CONNECT method pass through proxy but some how I was not able to send a proper HTTP bits past proxy. It looked like somewhere malformed.

I again went back to Url-lib with user id and password passed as part of the url itself (http://USER_ID:PASSWORD@http_proxy_url:PORT).
Below method prepares the proxy,

self.proxyURL = http://USER_ID:PASSWORD@http_proxy_url:PORT
def prepareProxy (self) :
proxy_handler = urllib.request.ProxyHandler({'http': self.proxyURL})
proxy_auth_handler = urllib.request.HTTPBasicAuthHandler()
opener = urllib.request.build_opener(proxy_handler, proxy_auth_handler)
return opener
Then, opener can be used to fire a http request.

Another issue is, url opener is not http1.1 complaint. It didn't allow me to use HTTP PUT request. After a long goolging I found, it is possible by extending Request object,

I used something similar as below,

class PutRequest(urllib.request.Request):
def __init__(self, url, data=None, headers={}, origin_req_host=None, unverifiable=False):
self._method = 'PUT'
super().__init__(url, data, headers,
origin_req_host, unverifiable)

def get_method(self):
return self._method

All the 2 parts baked together, I am able to use python3.0.

Note: Amazon has its own python API but it didn't allow me to upload in blocks. It is current implementation needs to read the entire file and send it as binary data which is very in-efficient and not possible for bulk data.

Friday, July 10, 2009

iPhone HTTP Streaming

I saw an article about how iPhone OS 3.0 Safar handles Video. It is cool, it is now supporting HTML5 video Tag. Safari understands the <video /> or <object /> tag and launches the Quick Time player. I am able to move the scrubber bar. It is kind of cool. The codec supported is not Ogg Theora, it is H.264, please visit Apple site for more.
This will unleash lots of possibilities. Custom streaming or TV Streaming or whatnot - quite possible just with HTML5 and Http Server, may be Erlang will be the language to support needed scalability.
I checked the Video capabilities by converting the video into ".mov" format and created small html page with video tag. Safari understood the video tag and displayed the play button. Once I touch (click) the play button, it launched Quick time iPhone player and it played the Video. I am also able to move scrubber, it felt like a full streaming.

Technology brings Eventual Transparency

Earlier one of my blog post (Item 9), I said technology will bring Transparency- Eventual Transparency. Thats true. We never know who or which eye (Camera) is watching. Web has the power to remember. It never forgets. It replicates like Virus or Cancer and linked as never before - But it is good for people/community/country as it brings Transparency. The reason for this post is Google's CEO Eric Schmidt relflected My Thoughts in one of his Interview before ( I am not able to locate the Video, may be if i found I will update it later).

It is him, Mr.Eric Schmidt, is victim of the SOT (Same old technology). Yes, he is caught using Blackberry as his mobile device not Android (Nothing wrong but credibility will go down, credibility is directly related to accuracy of the data (it may be in any form).

Wednesday, July 08, 2009

Google Chrome OS

My 2 Cents on Google OS (Chrome OS)
It definetly going to game changer and how? Google started experimenting offline web through Google Gears. It then become standard as part of the HTML5. Standardization of Offline capabilities tells that it is very important feature everybody needs. MySpace utilized Google Gears and it is able to offload 20-30% of the load to the browser (read Offline sync).
So what is my Windows usage normally,
  1. I check news - especially Tech News, politics and world news
  2. I check emails
  3. I blog
  4. I document (I mean I create documents for official or personal)
  5. I watch video and listen to music
  6. Connect to TV or secondary monitor
  7. Instant messenger
  8. Video/Photo editing
Items 1 - 4, can be easily done, most of the time, in web. Without web all the above doesn't make sense. And 99.9% of the time people buy computer to connect to web. As Sun optly put "Network is computer".
Offline document editing, needs little bit of OS support. Office documnets should be opened through web browser and it has muscle to understand it (Java Script code). So if google is able to come up with simple idea of opening documents stored in the local file system, they can easily replace native word document editor. Or, in the open source world, open office already very capable, If google is able to bring more efficient version of open office, thats it. 90% of the problem solved. It also stongly ring the death knell to Microsoft's cash cow, office suite.

Google indeed has good photo editing (glorified picasa) and drawing tool (Sketchpad). So they just needs to spin the threads to make all this available.

Why Google needs OS?
Yes Google needs it. Because, Microsoft instigated it. It is trying hard past couple of years to invade Google's Search business. Its Bing and its forefathers taught Google that, if Microsoft is able to capture 20-30% seach engine market, what would be left for Google? It is obvious for Google that it would go into OS business. They got a great momentum from Android. Yea, smart phone is kind of fledgling market but Netbook is also kind of very much in the early stage. So targetting Netbooks and Smarbooks (Microsoft doesn't have product for ARM) , it will make a good enough dent in Microsoft OS market. So, I bet even 1% market share is 1% loss to Microsoft. Google knows OS, they very much successful in server class Linux machines. So, they will bake Linux into very much palatable format. I am eagerly awainting to see its coming.

I also able to see fumes and smokes all over the net.
  1. Eric Schmidt should step down from Apple Board or
  2. Microsoft will not allow Google to make Chrome OS Survive blah blah.
I am thinking half glass full in Google's case. Here is why,

For Eric Schmidt Step down fumes, here is my thoughts...
  1. It is that Google released Android which competes against Apple
  2. Google is going to release Chrome OS to compete against Mac OS
I am not thinking it is not really a good reason, because, It is same as Google has gmail and Apple has MobileMe; Google has Chrome and Apple has Safari etc etc. So, in theory, if you work on computers, you will find multiple applications/Components which is manufactored by varous companies. So whats wrong with it? It is good for Consumer and competition is good for ecosystem. More over, the space/people with which Apple address is ultimately different. But if they fail to innovate, they will perish. I guess, Android, in few years, going to make iPhone what Microsoft's Windows made Max OS in 90s (It is not because of best OS but because of strategy- seperating harware and OS apart and making harware partner to grow). But I don't think Apple will let this happening this time. Current market trend is Mac is gaining on Windows due to failure of Vista. So if you look at the space which Google Chrome OS addresses is Netbook and above (may be Notebook and Desktop) is different and Apple is not into that. But I want Google to go against Apple territory. It is good because, Apple will open up its iPhone OS because of Android or innovate more which will make on par or more with Andriod( I am thinking few years down the line) I still believe, they are holding the Google to stop releasing muti-touch feature in Android. I like Eric should step down from Apple and up Google's throttle to innovate more.

Microsoft should be having big troubles. It can't be give it Windows 7 free after all it is one of the cash cow for Microsoft. So whatever way it goes, it affects Microsoft as Google has gained lots of loyal user and customer and they ready to jumb in if Google release Chrome OS.

If Google executes well like how Firefox did with Browser, Microsoft surely will be in big trouble.
But it is very well possible with Google. The big advantage already with Google is 1) ARM - Chrome OS will run on ARM 2) Partners - Since it is always best to use free and best OS to make Netbook/Notebook so they will gain % benefit. Android also did the same. Who will hesitate to buy a computer which is $$ less and which has all the functionality they want?.

Wednesday, July 01, 2009

Web application one more capability

When I started heavily using Google documents probably from early 2006 or early (I am not remembering the exact date) it is kind of awesome. It is because, it enables power of collaboration, ie true collaboration. Most of the time, in my company, I am not alone preparing documents. Mostly multiple people will be working together, we normally use microsoft office and we will pass among ourselves and in the end we could have had more than 10 copies that sits and occupies dangerouly our measely corporate mailbox. So it address many problems,

True collaboration. We can always, instantaniously see the updates - so we modify and do the changes in no time and updated version sits in the same place with all the revision history intact. So beautiful.

Other tangible and intangible benefits There is no mailbox (inbox) cluttering, awesome no need to clean up mailbox. So all the documents need not be culled out and moved to network drive or backup or Document management system. So, it eliminates,
  1. Backup media
  2. conserve the mailbox
  3. saves the history
  4. And accessing the documents is now straight forward as its location is standard
  5. Location transparency or ubiquitous access
There is the tradeoff as we need to deal with sterile HTML and its associates.

No need to install Office desktop application - This is the best thing
But I have been having a problem. If all the documents stored where it (Google docs or Zoho Docs) actually want to. But if I have a local copy of Microsoft Office document, how can I seamlessly integrate? I can do it by uploading them into Zoho or Google docs, but it is again not seamless.... So what is my expectation?

I need something like file association to the web application. I mean, how in OS image or text or word documents are associated with specific and special purpose application the same way I should be able to associate my office doc to google or zoho or any other future service provider.

How is can be accomplished?
I am just drawing the lines between already available technologies and technique.....
  1. Firefox we can associate Email to Gmail or Yahoo or anybody else - but it is something different as the email address is redered in the html page but our docs is in local file system. Or I can think of browser will not only associated with HTML but also docs (already it can do image, probably video and audio after HTML5) and more in future. So we need to some how associate it to browser to specific web application which is capable of handling the tasks. So there should be browser handshake and web application handshake. It is easy and do-able.
  2. How can I save the document back to where I read from? There are multiple approach. We can leave it to browser as it knows where it read from so it can save it back. It is kind of complex as it needs to know multiple things like other extra elements which "web application" added to render the document and other things which I am not able to think now. Second option is just thinking in line with Opera - It recently released a feature which makes browser as local http server. Ok good. And if we combine "Web application" and browser's http cababilites and thinking RESTful way, we can save the documents back. So it is kind of mash up in highlevel but it is ultimately do-able. Probably when we think more there may be better way to do that.

Tuesday, June 30, 2009

HTML 5 Application Shortcuts

Google chrome has options to create web application as shortcuts. Google chrome calls it "Application Shortcuts". Why can't enhance the functionality of application shortcuts? Why can't we make it as standard somehow?

There are security issues.... It should be tackled. Assume that I am creating the shortcut for my email (live/yahoo/gmail) page. If I get a new message, It should be able to notify user. It may be somthing simple like how iPhone batch notification does or Windows outlook alerts does. There are multiple things associated with it. Browser should ever run in the background or there should be an os level hook or somthing simple. It should have a way to get updates from the source application on the internet etc. So source web application can provide this capabilites. So if the browser is able to some how get the notification from the source server, it can display alerts. It may be web service (REST/JSON/SOAP what not)

It also sounds like there is some similarity(ies) with Html5 websockets or Server Sent Events but not exactly how those are desinged/indented for. These provisions will make browser grow little bit beyond what actually it does now. It will eliminate one day the purpose of native client applications. So create an application shortcut, and tell the browser what to alert/notify. It opens up lots of possibilities.
I just posted this idea to WHATWG. Let me see the feedback....

Sunday, June 21, 2009

Erlang Tools and Modules

I was trying to use Eclipse Erlide but unfortunately I am not able turn it off compiling every time I save the file. It is quite slow and will make you irritated.
So, Since I am again coming from Java factory, thought of finding answers to the following items,
  1. Need a good IDE which will be able to give me code completion, need to jump into modules without performance issue
  2. How would normally development cycle would be. How would I make a build scripts, it looks "make" is widely used tool.
  3. How would be the different kind of environment like dev, testing, production etc organized and automated?
  4. I am also started looking at best practices/modules and ways to do Unit testing, XML parsing, Logging, Instrumentation, Socket (TCP/IP) access etc
  5. CouchDB Or Mnesia based MySql or other database access.

Erlang - Mac OSX

I have been playing with Erlang on Windows7. I thought of trying with Mac OS X. I found great simple blog which worked like a charm. I installed Erlang from source and all others and it worked.
It also gave me an opportunity to play with command line utilities and tools like Make, SVN etc. This is the piece which I was not able to answer to my friend and now I am comfortable.

Erlang - Some more musing

I am able to see lot of traction and attraction towards Erlang esp. individual contributors active with Erlang. It is good sign. Language will not be success without either community support or big marketing muscle. It is clearly the web giants and startups which anticipate astronomical spike in user growth is focusing on Erlang. It is a scale which is unimaginable and reliability which is dream of architects started using Erlang. To cater such a scale an early decision is very important. Facebook chat application with 10 billion messages and 1200 per seconds and 4+ million active channels is astronomical.

Thursday, June 18, 2009

How to Buy a Mac or Better Mac than Apple? Or Mac buying tips

I very well know that Apple is great at marketting. If you give a piece of junk they will make it Wall-E. They will go public carrying junk with clean neat casuals and contrasting background, and will start telling how beautiful it is... how wonderful it is... how awesome it is .... and people will believe it. It is like "Say once" - you wont bother; "one more time"- you hesitate; "one more" -hm.. you start believing it. But good thing is most of the item they bring into public is really good at its time.
So how about if you want to buy Macbook family of product....
Best Option from best to better,
  1. Using Student and Education - Apple never believe me I am learning every day, so I am student so it will not workout for me.
  2. EBay - with 8% cashback from Microsoft. What a hell going on?. In order to promote its online service, It end up promoting its enemy. Go to Microsoft's Bing cashback (until today, it is bing but earlier it used to be "live" but now it is dead) search for macbook and you will see somewhere link to Ebay website with dollar symbol displayed near by. Click the link and get into Ebay and there you can search for Macbook of your interest and go to the Buy it now tab, from there you can pick one and buy it using paypal. Note: it is vaild only for buy it now and with Paypal.
  3. Apple authorized deallers like MacMall or Mac Connection etc which offers almost same price or $50 less based on what model you choose. There is an additional discount for AppleInsider readers, it is 3% I guess. So go to Appleinsider (scroll down on that page) and get the code and apply it in Macmall.
  4. You can buy it anytime at Apple store or Apple online. Many a times, you get advantage like getting good discount for Apple software compare to other places.
Finally, go through Mac Buyer's guide. It is greatly kept current and it tells you when apple is going to update (refresh) its product line. Apple is very infamous for punishing last day buyers.

I am Ma(c)trixed

I bought a Macbook after a long deliberation. I have been planning to do something with iPhone. But iPhone SDK is not running on my Windows. I tried to install mac on my win notebook and gave up. It is great strategy for Apple otherwise I would never have thought of buying. I had been Pro PC guy until i started working with Mac. Hm.. how am I feeling after couple of weeks of usage.... I really liked many things, for ex build quality, usability and nuance of many other things like accessibility (I just need 2 fingers to scroll, 4 fingers to see all the open window etc). It wakes up very quickly after the lit is opened. Its ready as soon as I moved the lit to comfortable view position. Overall it feels better compare to windows. But I am not going to bother what OS is actually all I need is what kind of application I am running and how it helps me to work with those apps. I am following Google's philosophy, bothering which OS is going to soon become OLD SCHOOL of thought. Hm.. But I do use notebook for otherthings like Using Java/J2ee, Python and Erlang development. I hit a bottleneck as some of the niche application needs to be compiled for Mac. I tried,
  1. FFMpeg
  2. Image Magick
  3. OCRopus
  4. Tesseract etc. I need to spend sometime to find binaries, in fact, for windows iteself. Mac hm.. I needed to compile it from source but I never tried so far.
I am also using another laptop which is Windows 7 with GSkill Falcon Solid state drive (SSD) It is fast amazingly fast due to ssd. One more thing, Mac is helping me to explore my guts into mobile computing as I am quite interested in mobile computing. Let me try somthing soon....
I am also quite impressed with Windows 7 though it is glorified Vista but better polished n shiny Vista. What the hell Microsoft is doing. It is left and right fighting with others, one side with Apple (OS, iPod, Mobile OS), with Sony and Nintendo (PS3 and Wii), with Google (gmail, mobile os and Bing, did I say Search), with Sun (J2ee). hm... I am not able to list all and how MS is getting into.. It is seperate blog or book as its entirety...