- Javascript speed
- Implementation HMTL 5 web form (though opera leads)
- HTML5 websocket
- More HTML5 related...
Tuesday, January 19, 2010
IS Google Chrome the Next Firefox
Sunday, December 20, 2009
Avatar the must watch movie of life
- 9 feet tall humanoids which express emotions cleanly on screen
- Beautiful forest
- Floating mountain and mountain in general
- Big huge tree
- Glowing things in the nature which is brilliant
Tuesday, December 15, 2009
Websocket client
- 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.
- Java applet --- may be ok and it is also one of the ubiquitous run time and most client machine should have Java installed.
- 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.
Saturday, December 12, 2009
Firefox leaning towards Microsoft
Friday, December 11, 2009
Erlang Websocket on Mochiweb
Thursday, December 03, 2009
Google and it's DNS
Friday, November 06, 2009
Load testing using tsung
Saturday, October 31, 2009
running erlang emulator shell as root on mac
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
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 (http://github.com/sendtopms/hovercraft).
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

Sunday, September 06, 2009
Internet scale Operating System (OS)
Friday, September 04, 2009
OpenId and oAuth
Tuesday, September 01, 2009
Opera and Html5
Is Java/C# dead?
HTML5 user defined tag
Saturday, August 29, 2009
HTML5 and Page Size reduction - My Perspective
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.
- New html tags so less mark up
- New media tag - video and audio so less dependency need for using media
- Websocket -- duplex communication eliminates unnecessary round trip and concise data transfer
- Improved browser performance
- Search engine friendly -- less markup to parse and no proprietary plugin to understand
- Less power usage - markup generation and Search engine content parsing
Thursday, August 20, 2009
Erlang - Fileupload
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 http://github.com/sendtopms/beepbeep/tree/master
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 https://issues.apache.org/bugzilla/show_bug.cgi?id=47485.
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)
| Chrome2 | IE8 | Firefox3.5 |
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:
Core2Duo 3 GB DDRII RAM
Gskill Falcon 128GB SSD
All the test ran on the same system.
Disclaimer:
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 http://ideamill.
| Chrome2 | IE6 | Firefox3.5 |
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....