- 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
Sunday, December 20, 2009
Avatar the must watch movie of life
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....
Erlang and SOAP Webservice
I just completed invoking SOAP Webservice from Erlang.
Here is what I did,
- inets:start(), This is very important without which http:request will not be succeeded.
- Took a shortcut: (hm.. not actually) I treated SOAP Call as Http POST call.
- I used Erlang http module
- http:request( post, URL, [{"Host" , Host}, {"SOAPAction", ""}],
"text/xml", getData ()},
[ {timeout, 5000} ], [{body_format, binary}])
- Used case expression to handle different condition
- 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)
- http:request would return either
- {ok, Result} -> Handle successful http request
- {error, Reason} -> Handle Errors
- {ok, saved_to_file}-> if you use “stream” option, this pattern will be invoked and it is optional.
- Result is response payload (http payload) and can be processed
Note:
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?
Saturday, July 11, 2009
Version Control - how to save my work?
- create a local repository - Clone/Init
- Modify the code
- Commit -locally
- repeat the step 2 and 3 as long as you wish
- Push the changes to the Server - If conflict due to another users modified code, you can resolve
- Pull from the server
- merge
Python 3.0 AmazonS3 with Proxy Authentication
self.proxyURL = http://USER_ID:PASSWORD@http_proxy_url:PORTdef 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)urllib.request.install_opener(opener)return opener
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
Friday, July 10, 2009
iPhone HTTP Streaming
Technology brings Eventual Transparency
Wednesday, July 08, 2009
Google Chrome OS
- I check news - especially Tech News, politics and world news
- I check emails
- I blog
- I document (I mean I create documents for official or personal)
- I watch video and listen to music
- Connect to TV or secondary monitor
- Instant messenger
- Video/Photo editing
- Eric Schmidt should step down from Apple Board or
- Microsoft will not allow Google to make Chrome OS Survive blah blah.
- It is that Google released Android which competes against Apple
- Google is going to release Chrome OS to compete against Mac OS
Wednesday, July 01, 2009
Web application one more capability
- Backup media
- conserve the mailbox
- saves the history
- And accessing the documents is now straight forward as its location is standard
- Location transparency or ubiquitous access
- 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.
- 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)
Sunday, June 21, 2009
Erlang Tools and Modules
- Need a good IDE which will be able to give me code completion, need to jump into modules without performance issue
- How would normally development cycle would be. How would I make a build scripts, it looks "make" is widely used tool.
- How would be the different kind of environment like dev, testing, production etc organized and automated?
- I am also started looking at best practices/modules and ways to do Unit testing, XML parsing, Logging, Instrumentation, Socket (TCP/IP) access etc
- CouchDB Or Mnesia based MySql or other database access.
Erlang - Mac OSX
Erlang - Some more musing
Thursday, June 18, 2009
How to Buy a Mac or Better Mac than Apple? Or Mac buying tips
- Using Student and Education - Apple never believe me I am learning every day, so I am student so it will not workout for me.
- 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.
- 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.
- 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.
I am Ma(c)trixed
- FFMpeg
- Image Magick
- OCRopus
- 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.