Thursday, December 18, 2008

Future of Technology

I had lots of idea about what would be the future of our world....
I am just regurgitating my thoughts here ....

Computing:
1. Mobile computing : Netbook will shrink in its size and it will become hybrid of mobile communicator and computer. It will usher the death of laptop/Notebook as how laptop/Notebook replaced Desktop.
2. Internet connection: It is backbone of Technology growth and it will be as fast or better then USB. LTE going to common in 2010 and it will enable loads of cloud based services.
3. Commodity computing to the internet scale : It is mastered by Google and people will start thinking in this direction. May be network harware/Software will be matured in a way that it will be easy to build such an infrastructure.
4. OLED TV: It is gorgeous to see such a beautiful display. So I would expect it to grow and steal some of the market share from LCD.
5. GPS or GIS people start utilizing in most of the services, probably like tracking parcel or flight, in future we can easily start tracking people (probably intelligence agancy can verywell do this)
6. SSD - Solid State Drive: What else will replace Mechanical Harddrive. It is obviously SSD. We will gain massive amound of IOPS, it is kind of unimaginable. SATA III (6 Gbps) will not be enough to handle, so achilles heel of computer scalability and performance will be healed but there will be someother painpoint will emerge.
7. SOA - Webservice now understood as good integration mechnism but it will not going to replace everything - that myth is busted. SOA REST is kind of light weight widely popularized by Google will join hand with SOAP. These services will have major role in Cloud computing.
8. Cloud Computing - It is kind of thing will be promoted as whole world is shrinking economically and technologically (Technology makes world flat, easily reachable kind of global village) and later will be realized as security, privacy threat and will bounce back as each palyer want to have their own cloud (commodity server computing - SSDs, low cost processor etc)
9. Transparency - I have everything unique to me is available with somebody as set of data, Media is growing and it is peeping into everywhere. What considered as private is exposed heavily so I need to change. I can't hide. What I see as secret is well know, I can't just be thinking as whole world is dark when I close my eyes. It forces people be more transparent. It is kind of welcoming factor. Afterall change is the only constant and which we need to welcome to survive. So attitude and behavior would change.
10. I am bored of thinking. I plan to grow item like this more so I will add more soon.....

Extremism:

  1. Medical: Role Of God: As per science and conscience, those things which we know - we will classify them and identify as -- if we know something, we either have complete fear or complete comfortable with them or mixed feeling of both. But if we don't know, like seeing something in the dark - it may be piece of rope but we will jump out of fear as if it is snake. So what I mean here is unknown things are normally be classified as if it is controlled and governed by God. But looking at how technologies in medical front is progressing like Cloning, Stem cells, Face transplantation, DNA decoding etc and commodity super computing which aids advancing in finding unknown things etc will make one day that life existence will be pointed and life expectancy will be controlled fully by human- so life is being controlled by God will vanish probably in some point of time in future (100/200 years from now).
  2. Computing: It is interesting to dream about computing. These are my list
1. Bandwidth of internet - In 5 to 10 years bandwidth will improve such a way that USB 3.0 will look like slow, I mean transfer rate will be so much that we will not need to maintain storage devices and commodity computing wired in a way that we will be using devices like dumb terminals and which will be like foldable, flexible and easily commutable. This will again mutate into like - walls will be build on display material and also act as energy producer.

2. One day we may use air as display media. LCD to OLED to Something to Air

3. Input method will be replaced by voice and world will not have phisically challanged people as technology advancement will actually cure any kind of disability.
4. Server: There will not be any difference in Server and Desktop or Laptop and all the feature of Server will be available to single formfactor which will be used to built server farms - cloud or sensible, networked wirelessly connected, self healing, auto powered (next incarnation of wireless power transmission)computer will emerge.
5. Software: All the application will be available through service - no need to own anything. HR/Finance or whatever will be available as service and people will have unique identity through out the world and which is like technically singular world will emerge.
6. Security: Since nothing powerful available outside the safty-net, Security is just handled using all the forms of Gene proposition of a person or biological factor of a person.

Saturday, November 29, 2008

My Experience with Google/TMobile G1

I bought TMobile G1 a day before thanks giving day. I bought it for couple of reasons mainly Android.
Some of the things I noticed needs more probing
1. From the browser coming back to home by clicking home button - How is the memory and opened process handled for application opened?
2. Omnibar of Chrome while entering url, if .com/org etc missed at the end doing search and listing the results but I expected somthing more like "I'm feeling lucky" in the desktop google search. Probably I could have missed something here (may be setting) but it would have been really good at the out of the box default setting.

Browsing Experience:
It comes close to iPhone but couple of minor issues. Some pages really slowly scrolled while swiping.
I also found that experience or behaviour of the system is not completely uniform across multiple applications. It is really glitch that will, i hope, be ironed out in later releases.

Google Map : I felt tough to follow while driving it is cool with compass mode, I need it give a try some more time.

Keyboard/Virtual keys: It is uneasy to use touch and keyboard as I am forced to use keyboard by thumbing the slide out and it is kind of messy. How can it be used by single hand? It is kind of worst mistake hybridizing touch and keyboard. Though OS and its responsiveness is very impressive but usability it was beaten to death.
So I returned the G1 and bought iPhone. In the end, I realized it is Google's well known secret that -release the thingy in Beta. So, I guess, not too far away, like chrome emerged from Beta - there will be a-phone or multiples but atleast a phone which will strongly carry Google's image and rivals iPhone from left, right, center will emerge. Probably HTC or Samsung will be its surrogate mother.
Harware:
I am not sure why google didn't pickup the right hardware from HTC, it already has Touch HD, it would have been tremendous success if google would have choosen good hardware. Google seems playing second fiddle with Apple iPhone.

Tuesday, September 02, 2008

My experience using Google's Chrome

Today I downloaded google's chrome browser. It is natively integrated with google gear tightly. Address bar is now have dual role and serve as search bar too and its start of end of address bar and search is going to prevail (look at URL is dead ). Short cuts are cute and powered with Google gear - makes its awesome. "Most visited" page when I open the browser is good and resembles googly.
Featurtes
-------------
  1. Open link in a new tab : (Right Click on link - context menu) The order of Open link in a new tab is changed from both IE (Internet Explorer and Firefox) it is placed first ahead of "open in new window" it is heavily used features and causing litle bit of experience realignment issue. I did not change any setting as I used out of the box installation, though.
  2. Awesome bar/ Omnibar : It looks good and simplifies the job of using 2 different boxes for achieving the same thingy (though, it seems overstated by saying address bar and search bar are doing same job but my real world experience is saying it is singular activity, look at URL is dead....

Hm I am not covering everything in it in a single shot but describe about it frequently as and when I find it and to say something about it.

IBM's FUD about SSD claim

It is surprise to see IBM into SSD market place and its welcoming effect too. IBM's article http://www.ibm.com/developerworks/blogs/comments. I can see SSD go mainstream and also I read somewhere about IBM's reservation about using it for commodity servers, but not interested in locating them probably googling will locate that. Probably Sun shines here with ZFS and its embrace of SLC SSD. I came to this blog from storagesearch and author actually dismissed IBM's above claim as FUD(wiki for FUD). Please look at http://www.storagesearch.com/ssd.html.
Oh... I am using Google's Chrome to post this.....

Sunday, August 24, 2008

Intel's SSD

Intel and Micron teamed up and started IM flash company is an old story. Intel, the x86 processor emperor, started focusing more on SSD is great thing for consumer and enterprise. Intel is well known for setting goals high and achieving them with great dedication. As part of its SSD initiative, Intel demoed its SSD which really made wow-factor comparing existing SSDs right now in the market. It is performance numbers are really high. Intel's SSD comes with 2 catagories 1) Enterprise SSD based on Single level cell - SLC (code named X25-E and X18-E) 2) Consumer Mainstream model based on Multi level cell - MLC (Code named X25-M and X18-M), here 25 denotes form factor of 2.5" and 18 is 1.8". Both supports Interface SATA 3Gbps.
Some numbers are
For, X25-E (SLC)
  1. READ -sustained 250 MBps
  2. WRITGE -sustained 170 MBps
  3. Power consumption - Active: 2.4W Typical, Idle (DIPM): 0.06W Typical
  4. Life expectancy - 1.2 million hours Mean Time Before Failure (MTBF)
  5. Read Latency - 75 microseconds
  6. Capacity 32GB and 64GB
For X25-M (MLC)
  1. READ -upto 250 MBps
  2. WRITGE -upto 70 MBps
  3. Power consumption - Active: 150mW Typical, Idle (DIPM): 0.06W Typical
  4. Life expectancy - 1.2 million hours Mean Time Before Failure (MTBF)
  5. Read Latency - 85 microseconds
  6. Capacity 80GB and 160GB
Random write is the one all MLC SSDs are suffering today and I am not able to find data for that. But considering intel's profile, it would have addressed random write issues.

More info at http://www.intel.com/design/flash/nand/extreme/index.htm
and http://www.intel.com/design/flash/nand/mainstream/index.htm

Monday, August 11, 2008

SSD Performance

Today I saw an excellent review about OCZ 64 GB MLC SSD Disk running on Vista.
Read/Write
OCZ Core SSD read write
average STR throughput 125MiB/sec 73MiB/sec
typical random access penalty 0.43ms 246ms
idle power use ~1W
load power use <3w

7200 RPM WD hard disk
WD6400AAKS read write
average STR throughput 85MiB/sec 85MiB/sec
typical random access penalty 13.6ms 17ms
idle power use ~6W
load power use ~9W

You can follow the below link to read fully http://www.alternativerecursion.info/?p=106

However, Next generation controllers do promise the unbelievable performance. Fabless chip designing firm Indilinx pushed read and write speed to 230MB/s and 170MB/s for SLC and 200MB/s, 160MB/s for MLC SSD. So probably MLC SSDs going to blow out its HDD brothern within 6-8 months time period from now. Probably Apple's forthcoming Macbook and Macbookpro will have options for SSDs like its beautiful younger sister Macbook air. Interstingly density increase NAND will help iPhone to have more memory soon.

Saturday, August 09, 2008

Best web conferencing alternative to WebEx, MS office live - Dimdim

Now a days it is common to see huge advantage of having web conference facilities to foster and eliminate geographically distributed nature of work environment. It is also handy for presenting anything without physically present in particular location.
I am exploring best web conferencing alternative to WebEx, MS office live. Here is my findings
1. WebEx - has been there in market for long and I used it from 2003 for official purpose
2. Microsoft Office Live meeting - It is good and intended to knock off WebEx and other similar product as they have near monopoly among big enterprises.
They charges huge money for these services and I am exploring free alternative, if any.
Also the tool should be compatible with multiple platform like MS PC, Apple, Linux (opensolaris) etc.
There is a good read about multiple product here http://www.masternewmedia.org/2003/11/13/best_web_and_videoconferencing_alternatives.htm

Another type of Tool which enable access to remote desktop through internet will be very handy not only to help fix the issue remotely. There are tools to do that
1. WebEx's PCNow - 30 days trail available
2. GoToMyPC - -again 30 days free
3. LogMeIn

Open Source Collaboration Tool
I also found dimdim, it is open source. It is good that product like dimdim comes into market and make others to reduce the price or make the money realize its meaningful value. After using dimdim, i felt really good. We can share desktop, can multiple people dial-in to conference etc. It is more than sufficient to most of my activities. Good work Dimdim. You are instrumental in changing this space.

Saturday, June 21, 2008

Single Page Application

Normally web application is developed using multiple html pages. Each html page will form the entire html from start to end and flushed into and rendered by browser. What if the entire page is visualized as partial renderable unit and each rendering will be done using Ajax and updated using DOM/Css/Javascript. So we will get or think of nice MVC in the client side where Controller javascript has its job of controlling lifecycle of renderable unit called widget, view has its job of using pleasant color, layouts (all from CSS), data again as java script objects of model (probably imitated or duplicated from the server side model using javascript to java and visa versa - seam remoting will do the same) So effetivly page will get the only data its need and assembles its mark up in the client side, so no more noise html tags, only protien for the application shuttles between server and client. MVC will utilize Comet, Ajax technique extensivly to acheive the requirement.

Comet, Where and How can I use it?

What is Comet?
It is Server Push, it is also called Reverse Ajax. Please look at wikipedia comet.
If we look at where the break even for new technology occurs, then it involves multiple factors like its capabilities are properly understood and started yielding best result for the technology consumer. Industry support, required skill set all maters. Norammly it will start with bleeding edge technology savy people (risk takers) and percolate gratually to mass.

I use to hear from guys, no body will be fired off buying product(software/hardware) from IBM or Microsoft. It is really safe being with big wics and nobody will question them too. It holds true for even bringing new technology into the fold.

If we look at Ajax, in my experience, I worked with Remote Scripting in year 1999/2000 using applets/hidden Frames. I found this trick from one of IBM's article but I totally clueless to find that old article now. But how Ajax got such a phenomenal lime light in the past few years? It is because some web sites which users frequently visits implemented it and user finds it very useful. One such application is google suggest and microsoft web outlook application. Both used Ajax in a good way. So will the same trend make Comet popular? In my purview, comet will defintely make good choice for couple of use cases.
Lets look at what kind of application now implements Comet (Reverse Ajax)
Meebo, Embedded GTalk in the Gmail are very good example of this kind of technique.

Lets look at some application like
1. Dashboard monitoring, notification alert etc.
2. Stock application
3. Chat
4. Game score display application
5. Whatever application which frequently look for changes in the data from the datastore (DB Server, events, notification system or services)

These application will definitely benefit from the comet kind of technique.
DWR, GWT with comet plugin, JQuery with Comet plugin or Dojo Comet toolkit can be used to enable client side comet.
For Server Side,
Comet needs special support from Server, as it needs to address scalability via effective thread management unlike normal application. Comets need multiple open connections to the client, hence special attention needed.
Servlet 3.o spec defines new API in HttpServletRequest/Response for comet kind of interaction. Jetty has been instrumental in driving comet upto Servlet 3.0.
Glassfish has good support as it has Grizzly nio layer.

Other impact,
Comet enabled application normally needs or frequently establish connections to the server. So in corporate environment, it will normally, when it opened and kept for long, will increase the network or internet usage and will be easily increase internet usage rate and you will get caught for heavy internet usage. This will also applicable for Ajax-polling.

What should my future browser do?

I was wondering if Web browser capable of installing javascript extensions like Ajax framework on top of existing runtime (it is little bit more than js caching) with its own security and other aspects built around, we can avoid multiple downloads many a time and go on building rich internet applications without worrying too much about size of the scripts. Browser should be able to
  1. understand different versions of javascript applications
  2. use requested version and able to download like plugins if it is missing
  3. Multiple threads for processing html/js/css or dom updates
  4. use these extension across different domains, so javascript extension and html page should follow set off rules to share across.
this kind of feature will enable creative people to develop rich features and perfectly make the browser as a platform.

Thursday, June 12, 2008

Career advice

Came across nice post about career advice.
http://dilbertblog.typepad.com/the_dilbert_blog/2007/07/career-advice.html
Essentially,
Scott, Adams is saying, If you want an average successful life, it doesn’t take much planning. Just stay out of trouble, go to school, and apply for jobs you might like. But if you want something extraordinary, you have two paths:
1. Become the best at one specific thing.
2. Become very good (top 25%) at two or more things.
But he is also recommending option 2.
The first strategy is difficult to the point of near impossibility. Few people will ever play in the NBA or make a platinum album, for ex Sachin Tendulkar or me . So it is hard to getting into that category.
The second strategy is fairly easy. Everyone has at least a few areas in which they could be in the top 25% with some effort. So how easy to mix 2 or more familiar and lovely things which we normally do to become very good at it.

Thursday, May 22, 2008

URL is dead, is it?

Nearly a year back, I had a discussion with my friends in a Hotel room in Smokey Mountain. The topic was about how they inform their friends or parents about new information in the internet. I was telling them that simply tell them the information key words, for example- cooking, then they would easily searchgoogle it to find out. I really wanted them to understand that google is a desktop for modern web application as all the other sites except google, we normally end up using google search and hit the right website rather than typing it in the browser address bar. In other words web search is primary vehicle to hit the proper web site. But they didn't agree with me went on arguing that they will tell the complete url, yes something like http://.../.../... I was not able convince them because they don't want to simply agree with me. I also felt they didn't really appreciate the current internet world and information sharing etc etc... However we all are into Computers and Software development esp web based development and know very well that visiting some web sites normally starts with google or search, search become windows start button of the web world. Today I happened to see the article @ http://www.readwriteweb.com/archives/the_url_is_dead_long_live_search.php This article reflects what i felt when i discussed with my friends.

Tuesday, February 19, 2008

Solid State Drive (SSD) and Server Hardware

SSD will make big difference in Enterprise computing as it is moved beyond first generation For ex 1G SSD from MTRON 100MB/sec and write speed of >80 MB/sec ( I didn't consider other big players like TMS (Texas Memory Systems) they are niche but not viable for small and medium businesses) will itself is better compare to the mechanical platter based disks except for the price premium. Later this year 2008 Server vendor like HP, Dell, IBM, Sun Microsystem will offer server platform utilizing SSDs capabilities. We gain
1. Very fast read access
2. Better write performance
Which will make
1. High Performance
2. High reliability
3. increased Throughput
So probably hardware vendor at least should give options to go for SSD for the above reasons.

Integrating Java EE 5(JEE5), JBPM, JBoss Seam, Netbeans and Glassfish V2

Integrating Java EE 5(JEE5), JBPM, JBoss Seam, Netbeans and Glassfish V2

I have ported jboss todo example application into Java EE 5 (Jee5) running on Glassfish v2 using Netbeans 6 IDE.

Create an enterprise application called todo with todo-war and todo-ejb applications modules.

Please download the jboss –seam at http://www.jboss.com/products/seam

before proceeding to next step. Also download and install netbeans from http://www.netbeans.org/downloads

Jboss seam required jboss-seam.jar as ejb application which should be added into application.xml. But Netbeans has deployment issue when we just add jboss-seam.jar as ejb application. In order to overcome this issue, we need to create separate module in Netbeans for seam. So create jboss-seam ejb module.

Creating jboss-seam ejb module:

Click “New Project”, Click “Enterprise” and choose “Ejb Module” and name it as “jboss-seam” (You can name anything you wish)

You need to configure dependant jar files Library for jboss-seam ejb module.

To configure libraries, right click on the “jboss-seam” project click “properties” menu which opens the dialog box titled “Project Properties - jboss-seam”. Go to “Library”. In the right hand side click “Add Library” and Click “Manage Libraries”, then “New Library”. Give the name “Jboss-Seam-Lib”, click “Add Jar/Folder” button to add the jar files. Browse through {Seam Installation/unzipped Directory}/ lib

Add all the jar files except

§ jboss-seam.jar

Click “Ok” and choose “Jboss-Seam-Lib” in the “Add Library” dialog. Library “Jboss-Seam-Lib” will be listed under the “Compile” tab of the dialog box titled “Project Properties - jboss-seam”. Uncheck the check box, this will make sure that these jars will be used only for compilation. So whenever we use “jboss-seam” ejb module, these jars will not be copied. Next, we need to copy the source files from {Seam Installation/unzipped Directory}/src/main into Netbeans’ jboss-seam module under the “Source Packages” in Project view. Thus we got “jboss-seam.jar” equivalent module in netbeans.

JBPM Integration:

All the Jar files which is mentioned below will be available under the folder {Seam Installation/unzipped Directory}/ lib.

In order to run Jbpm, we need additional Jar files which I am going to explain below,

Required Jar for ear application (todo):

Right click on the EA project “todo”, click properties menu which opens the dialog box titled “Project Properties - todo”. Go to “Packaging” section under “Build”.

Create a library called “JBPMLib” (You can create a new library by clicking “Add Library” button in the right side pane and Click “Manage Libraries”, then “New Library”. Give the name “JBPMLib”, click “Add Jar/Folder” button to add the jar files )and add the following jar files.

§ jbpm-jpdl.jar

§ testng.jar

§ quartz.jar

JBPM requires Hibernate which is used as persistence framework. So create one more library for Hibernate (“Hibernate-Seam-Lib”) and add the bellow jar files

§ antlr.jar

§ cglib.jar

§ commons-beanutils.jar

§ commons-collections.jar

§ commons-digester.jar

§ commons-logging.jar

§ dom4j.jar

§ hibernate-annotations.jar

§ hibernate-commons-annotations.jar

§ hibernate-entitymanager.jar

§ hibernate-validator.jar

§ hibernate.jar

§ javassist.jar

§ log4j.jar

I also added the below jar files which is required for jboss-seam.

§ jboss-archive-browsing.jar

§ jboss-common-core.jar

§ jboss-el.jar

Once all the jars added, Click “Ok” and choose “JBPMLib” in the “Add Library” dialog. Library “JBPMLib” will be listed in “Packaging” section under “Build”. Double click on “Location in Archive” column of “JBPMLib” and edit it to “/lib”. Same way add the “Hibernate-Seam-Lib” and edit the “Location in Archive” to “/lib” and click somewhere outside to change the focus (otherwise edit will not be saved sometimes). Add “jboss-seam” ejb module by clicking “Add Project” button. Click “Ok”. This is how we added JBPM and its dependant jar files under lib location in the ear file. All other modules under the ear files will have access to the libraries (jar) under “ear/lib” folder.

Finally your Package dialog will have

  • dist\todo-ejb.jar (by default it will be added) Location in Archive: “/”
  • dist\todo-war.war (by default it will be added) Location in Archive: “/”
  • dist\jboss-seam.jar (You added recently) Location in Archive: “/”
  • JBPMLib (You added recently) Location in Archive: “/lib”
  • Hibernate-Seam-Lib (You added recently) Location in Archive: “/lib”

Deployment Descriptor Changes:

Add jboss-seam.jar as ejb module in application.xml of “todo” ear module.

Required Jar for ejb application (todo-ejb):

Configure the todo-ejb libraries by going through Project Properties,

Add following Library files

  • JBPMLib
  • Hibernate-Seam-Lib
  • Jboss-seam.jar

Note: Uncheck the “Package” Column for all the above libraries as it is added through EAR application (“todo”), otherwise it will add it into root location of ear file not under lib location.

Ejb App without Ejb: We can’t deploy ejb module without an ejb, so create a dummy stateless session bean.

Empty Seam.properties should be added to let seam knows this project is seam project.

Add the source copied from {Seam Installation/unzipped Directory}/examples/toto/src under “Source Packages”

Required Jar for WAR/web application (todo-war):

Go to the Packaging section of “Project Properties”.

Add following jar files

§ jboss-seam-debug.jar

§ jboss-seam-ui.jar

And edit “Path in ear” column and change it to “WEB-INF/ib”

Adding JBPM Config files:

We need to make following config files available to JBPM engine

  • hibernate.cfg.xml
  • jbpm.cfg.xml
  • todo.jpdl.xml

Please place these files under “Source Packages” directly. So at the end you will be able to see these files under “”.

Add the source copied from {Seam Installation/unzipped Directory}/examples/toto/resources/WEB-INF to WEB-INF

And “{Seam Installation/unzipped Directory}/examples/toto/view” to “web” folder of Netbeans.

That’s all. Run the todo application. Enjoy Business Process…