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)
urllib.request.install_opener(opener)
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...

Wednesday, June 17, 2009

Erlang - Why I need to learn new language?

I am in the process of learning Erlang. Why Erlang? There are couple of reasons. I need to find a language which should internet scale.
Brief about internet scale....
1. Single User application - We developed applications, say MS Office, which caters to single person. We won't bother multiple items here like how much memory it eats up, how much processor it takes, how much disk space it takes etc. Why because it runs on either desktop or laptop; in fact netbooks or palm top (windows mobile based phones, iPhone, blackberry etc) has concern on processor memory and space. Program should be responsive enough for the single user. This is one class application.
2. Minimal User Application - Next, small scale application. where few people access the system and they may not be bothering about whether it is up or restarting to make little bit faster (OS like windows XP needs restart to clean up memory leaks) so here people using are highly tolerant and not the applications as such. So it can run on any normal to medium profile hardware based servers.
3. Enterprise Scale Or Limited User Application: Normally enterprise application like enterprise email, Document Management Systems or leave systems etc will be use by limited set of folks and it is mostly intranet application accessed from local network. Normally it is developed in Java EE, .Net, RoR or Python or combinations of them. Normally Webservice or some other complex distributed programming paradigm will be followed.
4. Super scalable Applications: It is current class application pioneered by Google (Consumer email, youtube, maps), Amazon, Facebook (Chat), current Twitter kind of applications. It was unnoticed and tormented in Telecom environment. All the companies did a really hardwork to come up with their platform which is kind of unique and innovative. Infrastructure is built such a way it scales infinitesimal, internet scaling. It is tough to hit, important events make people hit the website. Recent fiasco Nokia's Ovi store broke down, Tweeter's frequent outage due to spikes. Why the concurrency is not free or not easy. It is like gymnastic or performing martial arts.... needs lots of coordination and control. It is tough and needs practice. Some of the paradigm we used to make it grow like imperative programing (Object oriented programing/ procedural programing) suffered a lot of maintaining state. It is like obese people suffering from excessive fat. It distract many thing including co-ordination. So difficult to parallelize. Ok.. Is there a simple way to over come this. Yes and no. I researched a lot. Closely following Twitter and Facebook gives many idea. First of all needs good hardware and servers. Next needs infrastructure which effectively utilizes the hardware. My desktop and Laptop has dual core (I am 2 years behind extreme computing with Quadcores) and multicore GPU. But how my programming platform effectively utilizes the cores is important point to scale. It is kind of parallel to Car which goes 0-120 miles in 6 secs. What is the use if my speed limit is 30 miles? Or I can say riding a bicycle in a express high way where I can go upto 85 miles per hr. This is exactly it is happening. My hardware is so powerful but my software is so dumb and it is not multi tasking. Or even single tasking with all the cores. It is like 4 people needs to do a job but they don't know how to split it and do the work. So one person starts and others are waiting until the guy finishes. So what is the problem when i have a computer with ample amount of power and I can't normally bother between 0.7 sec or 1.4 secs of completion. Still it is fast.... But what if millions of people access it. It will keel into halt but it suppose not to. So counting every penny is important as it amounts to lot of other things. Energy wastage, environmental issues etc.
So how Twitter or Facebook addressed this issue. They moved some of the heart of the code into Functional Programming Code. For Twitter, it is Scala and for Facebook, it is Erlang. Both are actor based shared nothing function language evolved from Alanso Chruch Lambda Calculus. Academic loves these languages.
So I am in the process of learning Erlang. I found great book Joe Amrstrong's Concurrent Programing with Erlang second edition. So far it is quite interesting. It is lean and mean from the start. It is damed concurrency and fault tolerance and high scalability in its DNA.
There is no loop. What a hell are you talking about? All i need to do is unlearn my OOPS oops!!!.
I create a looping control if i need. I don't need design pattern. I am not telling how it needs to do something. As my friend Santhosh GR said, I just needs to tell what I need. No state to maintain. Oh... how can I program with the one which doesn't have or doesn't recommend one which I used for developing even adding two nos.

Having set the context, I will continue on Erlang later.... It also brings me how Java going to survive? It looks like its current state it is not fit into "Internet Scale". This is same for C# and other imperative languages. Their core is thread. Is thread is bad? It looks, sounds and feels bad. Why because thread are, at least in current state, not able to scale across multiple cores. Java is faster on single core processor with high clock speed compare to multi core highly effective modern processor. It degrades shabbily beyond quad cores and Intel has 6 core already and going to launch 8 cores and AMD story also the same. But Java, Java 6 came 2 years back and 7 still in pre beta. So time and growth of hardware and software are looking north and south.

Tuesday, May 12, 2009

Universal Architecture

I like to give a name for something which gives or solves following issues...
1. Benefiting to most user
2. Something which should be available to everybody like food, water and shelter
3. To be available irrespective of where you are... at least Earth as of circa 2009.
What are the service we can provide?
1. Internet
2. Voice or Video communication
3. ??
Who would resist, Telecom service provider and who else?
Here is How?
1. Like GPS or more than GPS, launch 10s of GEO SYNC satellites specifically for Internet connectivity or use it for multipurpose.
2. Provide connectivity
3. Since VOIP and video OIP etc will kill Telecom player or they will transform into related service.
I just expressed my thoughts about this almost 2 years back to my friends and later I found Japan launched Satellites for Internet service and British also following... It seems not bad idea.

Is Wolframalpha a threat to Google?

I read some juicy thingy about Wolfram|Alpha. Yea it sounds too good. And I wish that it should make success.
The reasons....
1. Search is the "Start" button of web as OS, as URL is dead.
2. Most noisy results end up
1. Wasting lots of peoples time -- may be contrived to CO2 emission
2. Lots of CPU and network will be wasted to do search again -- collectively it will be equated to CO2 emission and lots more...
3. Change in the confidence of user, frustration getting right information etc
I am not denying the Server workload to give such a nearly correct results. Evidently, correct/trusted information is always costly.
So, lets welcome to be born baby. It gives us manly feeling - like "If i ask somthing tell me the truth and stand firmly on what you provided", all ladies please execuse me.... Here is the page http://www.wolframalpha.com/index.html


What kind of search do we need?

I was thinking about how could google search can be improved.... Many of us familiar with semantic search. I am thinking about user sourced semantic search, yes this is, for sure, my idea. I was thinking this from long back. Probably knotting multiple familiar technologies and drawing similarities to them and come up with something. It is like GOF came up with design pattern or Ward Cunningham influenced Design pattern which he got influenced from Alexander (Civil Architect). I will explain how.... here you go...
People do search and click on the link... if they didn't find the relevant information they move on and to next page or try to refit the query. So here is the catch. If the move on and click any link, it means earlier page had just noicy result that should be eliminated. Is it correct it does in the first attempt? No, don't trust single person. From my young age if I want to ask a route to some place, which I like to go, I normally ask more than a person.
There are 2 reasons,
1. person who answered could have lied
2. Double check will make sure that probability of error reduced. So if both person points two different directions, you need to be very careful. Ask few more....
So this is thingy I developed when I was young.
So why can't it be applied to search?

Monday, April 27, 2009

Cloud computing

I have been researching Cloud computing for quite some times. Using Amazon S3 for few applications, piloting google for corporate and exploring force platform, Ms Azure. The value proposition it gives is lot but it varies based on what we want to do with.
Some of the Aspects to be considered,
  1. Security
  2. SLAs
  3. Environment
  4. Platform
  5. Standardization
  6. Transforming old thoughts to new paradigm
  7. Itegrating with existing application
  8. I will explore all these aspects as and when I get time......

iPhone after 3G

iPhone lived upto its hype even though it lacked lot of features (but OS 3.0 has got missing features). iPhone is a kind of gifted because it is deprived of lots of notable features but people made it great product as if telling a person "you are good" continuously make them good.
Ok, then what should be the hardware upgrade for next release? Probably I would think OLED should be very important to stay par with competition (Nokia, Samsung et al has got OLED display long back). Apple suppose to serve niche market and it should have that. What if it has one more inch big in width - it makes reading web pages very easy and OLED makes thin form form possible and it can still retain its weight and can increase battery size/capacity. Support HD and wirelessly stream video, if not through HDMI etc to other device. It should also allow easy integration with other devices. It should evolve as platform. It should not be an example of child protecting the bird in its hand by squeezing it. The world will turn soft when it is very open, and it turn hard if it is closed - History so far telling this truth.

Software
Voice integration, it would be fine if it understand the voice and textify it on every place (notes, mail, sms, search - spotlight, url typing etc), probably a service running on apple or provider environment take the input and convert it to text somthing sort of google voice search. It helps very much, at least for me.
Anyway Apple will not continue to be lucky as, I feel, Android will one day throw it out of the window as microsoft did for Mac in the last decade.
Browser should support location API by integrating with GPS system and other hardware components like compass etc, this will make rich UI application history.


Sunday, February 22, 2009

Broken iPhone

It is Jan 31st, It is kind of bad day - my iPhone display got broken. It was night and I was about to attend the call and found that there was crack running horizontally from home button to top and another one from middle to right side -- kind of forming inverted "Y". I was totally clueless how it broke like that. I started exploring on how to fix it. I called up apple support and scheduled an appointment with "Genius Team" to fix it.

I went there and a "Genius" looked at my iPhone and declared it as accidental damage and looked around the phone - he never able to find any scratch or chip anywhere - it probably scratch free due to the protection of my silicon cover and screen protector. And he is unable to tell me exactly what could have caused the damage. I was trying to tell him that I never dropped and I had another pouch in the belt which i always use for carry the phone. Since it is broken that means it is accident and he gave me print out of apple's terms and conditions and which indicated "accidental" damage will not be covered and warranty. Since he is not able to find visible mark for damage, he offered me $99 replacement. He was telling me that he has 6-7 years of experience in fixing the iPhone (probably other phones as iPhone is not even 2 years old) and he was telling me that glasses never break by its own. But I asked curious question "what if some external forces like defect in assembling or cutting the glass penal or something of that sort" could have caused, for which he said it never happen. I also heard from apple customer care that he(the guy who evaluated) is "Genius" among "Genius guys" so his finds is always correct and told me he did a great favor of offering me replacement for $99. I never mind paying $200, if i damaged it.

hm.. It is waste of time talking to Apple care. So I thought of replacing by paying them.

I did a Google search to find out similar incidents. I got to know Master card has extended purchase warranty for the product purchased from Master card. So I called them and found that something of that sort is available and they asked me bunch off documents amongst repair cost is one. So I planned to schedule another meeting with "Genius" guys to get the estimation.

I went to apple store again and told them my appointment. I was searching for my earlier "Genius" guy so that I can get the estimate from him without explaining more as I had met him earlier. But this time I got allocated to another guy. I showed my iPhone and told the story and asked for estimate. Another guy at apple store who looked at my iPhone just looked at the phone and told that it will be covered under warranty as the crack is originated from "home" button. The same time couple of other Genius come and looked at and agreed that it is covered under warranty. So they replaced me freely. It is kind of surprise to me as I never expect it to be replaced.
So, ultimately,
Apple warranty will cover the cracks in the iPhone display, if it is originated or cracks run through home button.

Monday, January 05, 2009

My experience with Windows 7

I got windows 7 beta 1 build 7000 and its pretty fast, it gave first best impression. I think Ms going to control 2009 show using Windows 7 and other time sensitive initiatives like cloud and office on web (like SaaS or google/zoho doc etc)
I will try to put more information here after experiencing how it works for doing my daily activities.
Installation:
I prepared my DVD by burning windows 7 as ISO into DVD and it tool around 26 mins to do 3 steps
1. Booted with windows 7 dvd and started installation. I wiped off Vista and started fresh installation
2. After step 1, it booted and did some basic configuration
3. After step 2, it need to reboot and got beautiful desktop with breathing fish after few minutes of set up.
So it took me around 26 seconds which includes deleting Vista and formatting the disk for Windows 7 (NTFS)
My laptop is HP pavillion dv4 with intel T5600 2 GHz and 160 GB HDD. Its integrated graphics from Intel.
I liked IE 8, its now catching up with Firefox atleast in few intuitive features like find/search. I liked the find/search in browser which actually sit itself outside and doing search unblocking the content of the browser. It is kind of convenience and will help you to do like highlighting etc like Firefox. IE is really slow compare to Firefox. I just tried IE few times and it is very sluggish. Thats the experience I got I don't have real nos. Opening the browser or open in new tab is really slow. I just need to investigate, it is so slow that I need to wait 10 sec, I set home button to msn.com and it is another 10 sec wait in "Connecting".

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…