Yet another email client – Apache James Hupa
Being a great fan of apache, i keep logging into Apache incubator and labs to check the new entries. I was always attracted to Apache James begin a possible replacement for enterprise class email servers (other contender is Qmail and Postfix). Both Qmail and Postfix being is C there is least that i can contribute. Am more comfortable with java for multiple reason, on being platform independent, array of library support and finally amazing sexy frameworks to support the development. Few of the framework that i have fallen in love with is GiWT & Spring. The shear power and flexibility of framework combined with support in eclipse makes the development/release a breeze.
Hupa, not sure how it got the name is a email client based on GiWT. In GiWT we dont write javascript but instead we write java which get compiled into browser specific java-script(If you have not tried, then give it a try its amazing and am sure with a weeks time you will fall in love with the design and architecture). I like this framework primarily i like to see java code instead of cluttered javascript (am sure this is the case with few guys in google as well). Hupa uses guice (pronounced as juice) for Dependency Injection aka DI.
All said and done i ventured out to try it out myself. First stint was with setting up the environment(since i had past experience with gwt this was relatively easy). This was a pain because of there were bits of pieces of documentation. Being a opensource project i cannot crib about this not found and that not found. So i decided to learn myself. I started looking how already logged in issues and found couple of them to be helpful, especially this one. I had problems in eclipse with java 64 bit. Finally after my usual cup of morning chai (or tea) i decide to look at it and boooom it worked.
I used google gwt eclipse plugin, maven eclipse plugin and i created my configuration and gwt hosted mode was up. I still have problem in “mvn clean package” which throws out the following error. But i suppose this can be ignored. I shall update this post when i find a answer for the same.
The following mojo encountered an error while executing: Group-Id: org.apache.maven.plugins Artifact-Id: maven-war-plugin Version: 2.1-alpha-1 Mojo: war brought in via: packaging: war While building project: Group-Id: org.apache.hupa Artifact-Id: hupa-client Version: 0.0.1-SNAPSHOT From file: D:\projects\hupa-parent\client\pom.xml Reason: Failed to copy file for artifact[active project artifact: artifact = org.apache.hupa:hupa-server:jar:0.0.1-SNAPSHOT:compile; project: MavenProject: org.apache.hupa:hupa-server:0.0.1-SNAPSHOT @ D:\projects\hupa-parent\server\pom.xml]
So in short hupa == Google GIN + Apache Maven + GWT == New generation Email Client
I have decided to move on
I have been a great google fan and naturally i used blogger as my preferred blog. But when i looked around i found that evolution of blogger is not in par with the blog industry. Probably this is because google is not making enough money like in gmail or other collaboration applications to keep blogger development going. Any way i was really impressed with wordpress for admin interface, themes, etc … The blog content editor seems pretty good and give me a kick to write more(perhaps because of default font they use). I also have decided that i will write well researched article with subject background and practical application of the same.
In this blog i will contemplate about tools, programming languages, designs, people, software architecture, open source development, agile methodologies, books, inspirational people, mystic/yogic experiences, photography, travel and list will probably go further as i explore this beautiful life.
In case you have landed here thru google or from my friends blog, feel free to drop in your comments/suggestion/expression of love. It will inspire me to write more.
SmartGWT 1.2 / GWT 1.7.0 / Eclipse Galieo
In the past when i was prototyping a new generation web 2.0 product i came across gwt and found that its awesome to work in gwt. When my client demanded more feature we decide to look at few available widget libraries. Natural choice was Ext-GWT which is a wrapper around ext-js. We used this and completed the prototype. Now came the problem with some licenses and Ext-GWT stopped its development because the lead developer moved on to different project. The different project the lead developer started working is called SmartGWT which again was a wrappert around smartclient js library. Looked like a stable and mature framework and it was indeed a mature one. Last week end i got some time to try the new smartgwt 1.2 which is the lastet release by smartgwt team. My end goal is to do a mash up and try deploying it in App Engine (aka GAE)
So far so good. Am able to a hello world !
1) install eclipse (galieo)
2) gwt maven plugin, follow this link and do as instructed
http://smartgwt.rorschach.de/index.php5/Setting_up_Eclipse_%26_Maven2
am done, few clicks my hello world is ready !
gdata copier and docs.google.com backup

I had some time to explore gdatacopier. My idea was to figure out a way to backup docs.google.com. We in Openbravo use a lot of docs.google.com and we wanted to make sure its backed up just in case google is not reachable or if it crashes
gdatacopier is a wrapper around google api to export/import documents from doc.google.com at the moment its installed in our irc.openbravo and i used the following script to further simplify the usage.
So here we are with a way of automated backup of docs.google.com
My machine:
- Amazon EC2 Instance (type: small)
- OS – gentoo with python 2.6
steps i followed:
- emerge -av setuptools
- easy_install gdata
- download and unzip http://code.google.com/p/gdatacopier/ (i unzipped in /usr/local/src/)
- save the following in a file (say gdoc_backup.sh)
#!/bin/bash # DATE=`date +%d` DEST_DIR="/tmp/$DATE" USERNAME="USER@gmail.com" PASSWORD="PASSWORD" mkdir -p $DEST_DIR /usr/local/src/gdatacopier-1.0.2/gdoc-cp.py -u $USERNAME -p $PASSWORD --google-id all --local $DEST_DIR --export default
if you wish you can add it to a cronjob. This will make full automated backup of docs.google.com
WARNING: time it takes depends on number of documents in docs.google.com
reference:
http://code.google.com/p/gdatacopier/
Write your app in gwt and click deploy
google as usual has integrated a new feature in google eclipse plugin.
Now we can build a GWT application (no javascript hell at all) but pure AJAX app and click deploy to make it work with google.appspot.com (aka. google app engine)
this also has data access layer and seems promising.
i was thinking of one possiblity, if amazon simble DB and queueing servers can be connected we can perhaps make world class application with minimal infrastructure and at low cost …
wow … thanks google for opening up a new avenue for us !
Ex Astha get together, meeting bogi
that’s yathiraj eating button idly, green idly, pakoda, rasam vada …. rajeev is feeding him and harpeet is seeing how these south indian eat so much of food and all with sambar
Ex Astha guys met in krishna bhavan, malleswaram couple of months back !
pretty much all have moved to different profile.
kumaran with yahoo, rajeev with another startup, me & harpreet with Openbravo, mithun in dubai, yathi & ajeeth in axa, gowri with another client from italy, shilpa in US, manoj with oracle, hari & raghu with siemens, siva in sigapore, ram with a new construction company…
oooohhhh …. last year almost same time we were thinking what we can do next to save our life
Openbravo ERP, 2.50 MP3 release
so here are are with timely release of 2.50 MP
more news here
http://forge.openbravo.com/plugins/espnews/browse.php?group_id=100&news_id=141
go grab the latest version of Openbravo ERP and try it. If you question please join us in irc.freenode.net openbravo channel
taking care of my dad
Of late i have been taking an extra effort in taking care of dad. He has some health issues. He had a heart attack few years back and docs say the post attack care was not good. This we came to know when we went for a checkup. His foot developed a swelling. The reason for swelling it seems is because of edima accumulated because the liver is not working great.
Fortunately my sister-in-law she worked in the medical field and got to know of a doctor named sivakadaksham. He has a clinic in chennai and is very down to earth.
I had a brief conversation with him personnal to check the real condition. He said his heart is weak. Its pumping rate is 35% (normal is around 65%) means condition is not very good.
After this he started his course of medicine (during jan 2009). During these time all at home in panic state and but fortunately his condition improved. pumping got back to 45% which is amazing according to doctor.
Dad has a regular routine for last 40 years. He wakes up at 4, in temple at 6, back from temple at 7:30, with paper till 9, 10 he eats, 10:15 in office, 1 he is back, till 3 he sleeps, 4:30 back to office, 6 back home, watch tv till 8, eats at 8:30
this routine perhaps has helped him get a healthy body.
But off late he started complaining lack of taste in food and his food qualtity became very less. And intake of medicine was him. most of the time he was sleepy and tired (medicine effect)
I was fortunate enough to meet a suresh anna, an amazing muscial and firm believer of alopathy is organized crime helped me understand how nature can take of body if given proper diet.
Since being vegetarian we have certain limiitation. It tends to become boring and not as charming to enjoy a meal. This was a problem for me and for lot of other.
below is a recipe which is healthy and i have personally seen great results (in my dad) who could not walk a km now could walk around 3 km without complaining.
take a little time to read and understand yourbody and get youself a good diet.
Healthy Guidelines
http://docs.google.com/Doc?docid=0AZ1cvRKx4murZGZ0Zm45ZGNfNjFnc3ptenBmOA&hl=en
Grainless Recipe
http://docs.google.com/Doc?docid=0AZ1cvRKx4murZGZ0Zm45ZGNfNjBkYjY4cG1kbQ&hl=en
faster, faster and faster … how fast we can test
Over the past week i have been researching on how can deliver our smoke test faster. (for people new to smoke test: smoke test is a preliminary to further testing, which should reveal simple failures severe enough to reject a prospective software release)
Openbravo ERP is a full fledged Java based web application this means the end product is browser based UI and its need testing The natural choice of testing is selenium, contribution to opensource from thoughtworks.
Fundamentally, Selenium is a tool that let you programmatically launch a browser, drive the browser (open a url, enter some data, click on a link) and check the browser state (a section is visible, specific text is present, a widget is disabled). It is the tool of choice for many programmers for automating web testing.
Lets look at the permutation and combination of our test case.
At the minimum we have to make sure the product has to run with
1) internet explorer in windows
2) firefox in windows
3) firefox in linux
4) optional browser like opera, safari, etc ..
These days most of the browser can be installed in different operating system but we cannot assure that same version of firefox running in windows will behave the same way in linux and viceversa.
My team runs the continious integration server (we use hudson) and we have smoke test running every day for different version of Openbravo ERP (2.3x, 2.4, 2.5, etc). My goal was to figure out the bottle necks in the current smoke tests and perhaps propose a way to make it faster. At the moment we have a amazon ec2 large instance (Amazon EC2 Instances). EC2 large instance == 8GB of RAM and 2 core processor.
In the process of find out what can we do better i came across selenium-grid which claims to reduce the test time by many times.
A quick Maths (using amazon ec2 instance) is easier is better way to understand what’s the expected result.
normal scenario:
5 machines * 30 days * 2 hours * 0.10 $/hour (approx) = 30$ month, results in 2 hours
with test running parallel:
10 machines * 30 days * 1 hours * 0.10 $/hour (approx) = 30$ month, results in 1 hour
Selenium Grid, Behind the scene. Traditionally it looks like this
Selenium Grid gives the following architecture. One of the most confusing point was how many remote control (rc) we can run in a machine. Know that we can run more than one remote control (rc) in one machine.
Now that we know we can run selenium is a grid we need to know how to write the test so that it can make the best advantage of this grid. Ofcouse we can run concurrent multiple browser (ff,ie) / multiple platform (win,linux,mac) test using selenium grid with faster turnaround time.
We have heard junit test for unit testing and in most case selenium test would be written in unit test to take advantage of the reporting and other exising tool around unit test framework.
Now comes the parallel-junit. This is a api from kohsuke who is also the core developer of hudson continious framework. The framework allows JUnit tests to run in parallel. This can be configured to run in a single machine as well.
The architecture of parallel junit looks like this
Conclusion: So think parallel, write parallel junit test(s) and use selenium grid for faster test results.
references:
How Selenium Grid Works
Run the Selenium Grid Demo
Another blog about selenium
Another blog about selenium
Parallel Junit




