Good, Bad, and Great Solutions!
When it comes to IDE+App. Server, you have at least 2 options for building Java EE-based applications:- Use the Eclipse IDE for Java EE + JBoss Application Server. [Good]
- Use the Eclipse IDE + GlassFish Application Server. [Good]
- Use the NetBeans IDE + GlassFish Application Server. [Great]
- Use the NetBeans IDE + JBoss Application Server. [Bad]
- Other Non-OSS/commercial options that I don't care about.
I don't really recommend using the NetBeans IDE along with the JBoss Application Server, as NetBeans thinks JBoss is not fully Java EE 5 complaint, and disables all those injection features. For instance, you can't have "@EJB" annotation in your application client code.
I'm using and will suggest the NetBeans IDE + GlassFish combo for Java EE 5 development as the IDE is well integrated with the GlassFish tools. For instance, I can directly invoke the GlassFish Verifier to validate my annotations and other descriptors.
Go NetBeans!
( Nov 18 2009, 05:18:32 AM PST ) Permalink Comments [0]
A TechTalk on Java and Innovation
Last week, I gave a tech talk on Java and innovation in BMS Institute of Technology, Bangalore. It was a great experience to meet the the students again and interact with them on their projects and problems.I demo'ed Java-based JOGL games, NetBeans IDE, and many other interesting technologies.
( Nov 17 2009, 04:07:20 AM PST ) Permalink Comments [0]
Qik on Rails
This is one Ruby-on-Rails application that is worth liking. Qik allows me to stream my video live over the internet with a very simple to use mobile application.
Qik also lets you share your videos with other social web sites. The app. works perfectly on my Symbian phone.
Keep shooting. Keep sharing. Try out Qik today.
( Oct 23 2009, 07:54:53 AM PDT ) Permalink Comments [0]
Tech Talk @ GCC Bangalore
I had the privilege to go to the Garden City College, Bangalore this week and talk about Java, Java FX, NetBeans IDE, and the OpenSolaris OS. I thoroughly enjoyed talking with the students about various OSS and initiatives from Sun Microsystems.
Out of all the topics I covered, the one topic that invoked a lot of interest is the game development in Java. I talked more about JOGL and JOAL (my favourites).
( Oct 15 2009, 06:22:21 AM PDT ) Permalink
An Open Compression Challenge
Been a while...I just hosted my compression code at Barred Archiver.I'm posting a challenge here if anybody can get a better bps for the artifacts mentioned on the site with any other archiver.
Happy coding!
( Sep 20 2009, 09:13:53 AM PDT ) Permalink
Finally Twitting
Finally, I have started twitting after been infused with several doses of "twitting-benefits" by my friend and technologist Kunal Deo. I was a horrible blogger and I'm damn sure going to be an equally horrible twitter. But who gives a rat's tail, I'm going to twit, twitter (or whatever it is called by any other silly name that looks as unintuitive as 'writing'). I'll twit more with links on Java, parsing, algorithms, opensolaris, and stuff( Jul 05 2009, 09:28:45 AM PDT ) Permalink
Symbian S60 3rd Edition
I started liking the Symbian platform after using the Samsung's i550w Smartphone. The phone is based on the popular S60 platform and you can easily extend your OS with other cool applications. You can run you Ruby and Python scripts. You can even setup a whole personal Web Stack on your mobile.Some screenshots of the S60 platform. A lovely and neat interface:
You can install your favorite Java/S60 application:
You can test your Python and Ruby scripts right on your phone:
Well organized menu items:
Use Dr. Jukka tools to debug your applications:
And I love the PyS60 terminal for running scripts:
This is one mobile platform that I would recommend to everybody even though the 3rd edition is very particular about security and signed applications.
First time when I tried using the GPS, the satellite fixation took some time as I didn't use the phone's GPS+ option. I was on the road waiting for the phone to connect to some satellites for the time I thought it could have easily connected to Neptune and Mars as well. But then it is OK. In India, you don't need GPS. You just ask around for directions!
( May 17 2009, 11:29:11 PM PDT ) Permalink
Web Development on OpenSolaris OS
I wrote this wiki page to provide information on how you can quickly set up your web development environment on OpenSolaris 2009.06 Preview Release.Read on...
( May 04 2009, 01:50:35 AM PDT ) Permalink
Will the real Manager please stand up?
Traditionally management focused on numbers and people. Modern management puts people in the epicenter and value their integrity more than their intelligence and energy. As Warren Buffet says, if you hire somebody without integrity you really want somebody dumb and lazy. Henry Ford once exclaimed "Whenever I ask for hand a brain also comes attached". That is basically us. The best performers are people who know enough and care enough to manage themselves.How do you manage such people that are high-performing individual-contributors? When people become managers, they realize the fact that they are almost taken hostages by the system and people. This is because management creates performance 'through' others. And when there is little cooperation from people, management achieves little or nothing. Joan Magretta in her book 'What Management Is' exclaims that for knowledge workers, who, by definition, know more about their jobs than their bosses do, supervision is a very special kind of hell.
GE's Jack Welch when speaking to his executives once said "Look around you: There are five fewer managers than there were last year. One was fired for the numbers, four were fired for values". What values were Welch talking about? - The shared belief that constitutes the organizational culture. A good manager is the one who imbibes these values into their people. It doesn't matter whether they are mediocre or highly skilled, whether they have high energy or silently achieving targets. What matters and what people like Welch, Packard, Dell, and Ford never believed is that a 'real' manager knows that performance of the group depends on the contributors that are stubbornly individual and each of whom needs to feel valued.
( Mar 15 2009, 01:15:24 AM PDT ) Permalink
Another Sunny Day has Come and Gone Away...
..Let me go home. It has been 2 days now in the Sun Tech Days 2009 - Hyderabad and I'm already feeling worn out. It was my privilege to interact with some 1000+ odd (really odd) crowd. I had my own share of fun, laughter, serious pep talks, being-pushed-out-of-my-pod moments, which in a way is the characteristic of Tech Days and I love every bit of it.
Pic - Myself, Jacob, Paromita, and Geetha Nazare.
Pic- A strange pod setup that allows the crowd to breath down your neck while you are demo'ing!
I was fortunate enough to meet some brilliant developers from Oracle, Progress, TCS, Infosys and more. Jacob Royal, my pal has an extensive blog entry on the things that we did. Read on.
( Feb 19 2009, 08:42:23 AM PST ) Permalink
Text Juggling with BWT
The most fascinating use case of the BW Transformation is the ability to scramble and recover text data by doing complex block sorting techniques. There are many text compressors already using BWT but there aren't many BWT based text scramblers.I built a simple no-brainer tool based on Swing that can be used for scrambling (muddling) text data. You muddle a block of text using forward BWT to obtain a non-readable text block and a muddling key. You can use this key to do the reverse BWT and get the original block of text.
The above screen shot shows the tool in action. To run this JNLP based application, you need to have the Java browser plug-in.
Launch the Muddler Application
( Feb 11 2009, 08:50:44 AM PST ) Permalink
Wiki to DocBook XML
There is currently good amount of interest in the DocBook community to design a tool that can do a wiki to DocBook conversion. There are some tools that are already available that targets a specific wiki format and support all or most of the wiki syntax. However, I could not find a tool that can handle complex conversion cases like section-dangler handling, support for multiple semantic outputs, loosely coupled with the Wiki engine (non-wiki plug-in) etc.So I got a rough edged tool that could do simple to complex conversions of Wiki files to DocBook XML V5. I have added support for both Confluence and JSPWiki markups.
Check out the converter.
Conversion of the wiki content to a more structured format like the DocBook XMLs sure excites many technical authors who want to keep the Wiki as the preferred authoring medium.
( Jan 07 2009, 09:15:01 AM PST ) Permalink
Sun Web Stack Demo at FSFS Conference
I had the privilege to talk to some 500 odd developers in the Free Software Free Society conference held at Kerala this week.
I talked about OpenSolaris OS, DTrace, ZFS and showed how OpenSolaris OS can be used as a viable development platform. I spent a lot of time in demonstrating DTrace in particular as that was more of a crowd puller (later I realized based on the many DTrace-for-Linux? inquiries). One of the killer features that took the audience by surprise is the new Time Slider using automatic ZFS snapshots.
However, Sun Web Stack could be the only reason you need to migrate to OpenSolaris OS for developing AMP based applications.
( Dec 10 2008, 06:47:36 AM PST ) Permalink
OS Upgrade for the rest of us
Ubuntu's distribution upgrade is...what can I say?...class..rocks and just suites dummies like me.
If only Snap Upgrade does the same thing for OpenSolaris, I will be just as glad.
( Oct 21 2008, 02:49:15 AM PDT ) Permalink
Finally, An Exclusive Place for Students
Student Central is up.If you are a student, this site will give you a starting point on Sun.
Check it out today!
( Sep 19 2008, 09:51:31 AM PDT ) Permalink
A Day with Students
I had the privilege to visit NIT Durgapur campus last week to talk about Sun technologies to the students. The seminar went quite well. There were 2 sessions. The first session in the morning was attended by students from various colleges near Durgapur. There were around 200-250 students. I talked about OpenSolaris, VirtualBox, Java, JavaFX, Solaris Containers, and other such cool stuff. Lot of questions were asked on Zone administration. I talked about zones and showed them basic zone administration and introduced them to Branded Zones. All of them registered for SDN.The second session was more of a compact crowd comprising only NIT students. I was excited to know that they are already working on projects like crossbow. They were interested in knowing more about VirtualBox. So most part of the session, I showed them VirtualBox VM creation, VDisk management, and showed how WindowsXP can be started and used inside Solaris. They were amazed. I took that a chance to introduce them to different flavors of Solaris and told what is best for them.
I also talked about SDN, Curriki, Sun Certification, and the growing skills gap among students. More than the students, it was a great learning experience for me as I had a chance to interact with some of the young and brilliant minds. Thanks to NIIT guys for organizing this event.
( Sep 11 2008, 08:36:54 AM PDT ) Permalink
Compressing Text Data Using BWT
Text data can be more efficiently compressed by following certain semantics of block sorting and run length encoding. It all started with a research paper 'A Blocksorting Lossless Data Compression Algorithm' by M.Burrows and D.J. Wheeler, sometime in 1994. The algorithm they proposed was so elegant and easy to adopt that it was implemented in every second compression program.But there was no pure Java implementation primarily because of the performance expectations of compression algorithms. So here is my Java implementation of the BWT algorithm, called BAR (BWT Archiver).
Here is the doc explaining what I'm trying to do, which is a slight modification of the BWT recommendation:
I do RLE -> Forward BWT -> MTF -> RLE -> ENT(Huffman)
Reverse ENT(Huffman) -> RLE -> MTF -> Reverse BWT -> RLE
Surprisingly, here is the comparison results:
For Three Musketeers (http://onlinebooks.library.upenn.edu/webbin/gutbook/lookup?num=1257)
Tools Orig. Size (Bytes) Comp. Size(Bytes) Bps (Bits/Symbol)
WinZip 1,349,189 503,693(Best Compression) 2.986
WinRAR 1,349,189 416,342(Best Compression) 2.468
BAR 1,349,189 371,442 2.202
For Large Corpus (http://corpus.canterbury.ac.nz/descriptions/index.html#large)
Tools Orig. Size (Bytes) Comp. Size(Bytes) Bps (Bits/Symbol)
WinZip 11,159,482 3,331,499(Best Compression) 2.3882
WinRAR 11,159,482 2,837,133(Best Compression) 2.0338
BAR 11,159,482 2,602,030 1.8653
Download the jar file and try it out:
java -jar Bar.jar -c input.txt output.barI have made some tweaking to make Bar work off nio. But still performance can be improved.
( Jul 10 2008, 01:28:01 AM PDT ) Permalink
Best SOA/Web Services Book - Finalists
My book on Composite Application Design moved into the finalists category of SOA Readers Choice Award's Best SOA/Web Services Book. This is a big surprise. Thank you community.( Jul 08 2008, 10:50:23 PM PDT ) Permalink
Tracing PHP Applications
In my previous post, I showed how you can run the NB-bundled sample PHP application, AirAlliance. When you are developing PHP applications in Solaris/OpenSolaris, you can use DTrace to debug your applications.I have written a short write-up explaining how you can trace the AirAlliance sample application. using DTrace in OpenSolaris 2008.05. But the information is applicable to any PHP application you run on Solaris/OpenSolaris.
Read on.
( Jun 30 2008, 01:01:19 AM PDT ) Permalink
Creating Hibernate Apps in NetBeans
Full support for Hibernate will be available from NetBeans IDE 6.5. But If you are using NetBeans IDE 6.1, you can still create Hibernate based web applications using NetBeans.I have posted a short tutorial here.
You need to download the latest development build of NetBeans to try out some cool features like reverse engineering, auto creation of POJO, map files, and a really neat HQL editor.
( Jun 24 2008, 10:48:09 PM PDT ) Permalink
PHP Sample Application in NetBeans 6.1
My first PHP sample application for NetBeans has been integrated into the 6.1 nightly build. I wrote this app. mostly to highlight PHP semantics and the OOP part of PHP, but an interesting side effect is that I started appreciating NetBeans 6.1 PHP code aid capabilities.
So try out this app. today:
1. You need to install the 6.1 Nightly Build.
2. From Tools > Plugin option install both PHP(if not already installed) and PHP Samples modules.
3. Create a MySQL DB by name 'AirAlliance'.
4. Create New Project > PHP Samples > AirAlliance.
5. View Readme.html file under the project dir.
Run the SQL dump script from the SQL sub dir. to populate the table schema and sample records. Run the project and browse around.

Use NetBeans 6.1 for your PHP development. Know more about PHP support for NetBeans from this page.
( Apr 25 2008, 06:53:30 AM PDT ) Permalink
Workaround for VBox-Indiana Nic Issue
In my earlier entry, I posted an issue with using Indiana Preview2 as guest OS with VirtualBox due to pcn driver restrictions. The network gets disabled. Alan shows you how you can get an open source driver alternative that works just great. But why the pain? You can use VirtualBox's multiple NIC simulation feature to simulate a different and supported type.
Under Settings > Network, choose Intel PRO/1000 adapter type to simulate a e1000g0 driver in Indiana instead of the default PCnet type. And you are done.
( Apr 03 2008, 11:26:41 PM PDT ) Permalink
At OpenSource Mela
I gave a short demo to our internal Sun guys on NetBeans DTrace plug-in showing them a sample PHP app. and how to identify some performance bottlenecks. Here is a pic.
I'm the hostile guy in the picture (second from right). Thank you Vasanth for the pic.
( Mar 25 2008, 04:28:41 AM PDT ) Permalink
GUI based Package Manager for OpenSolaris
Have you checked out OpenSolaris Developer Preview 2? If not, download the 1 CD installer and try it out. If you are data-phobic like me, try out OpenSolaris from VirtualBox, a safe type 2 hypervisor.I tried running OpenSolaris Developer Preview2 as a guest OS from my SXDE /08. It was amazingly fast. My only issue was with the VirtualBox's simulated nic. Due to some licensing issues the pcn driver will not work. But you can get the ae driver as explained by an excellent entry from Alan here.
For managing packages in OpenSolaris you can use the pkg tools or try out the new GUI based package manager that gives you a true Ubuntu experience when it comes to managing packages. Well almost. This piece of software is fully functional and you can test it now before the actual release.
Here are some quick steps to get you started using this GUI in OpenSolaris:
- Get SVN - pkg install SUNWsvn
- Get the source tree -
svn co svn+ssh://anon@svn.opensolaris.org/svn/jds/ipsgui ipsgui - Run make and make install under ipsgui sub folder.
- Install Packages - Go to ips-gui/packages/
and run
pkgadd -d . SUNWipkg-gui SUNWipkg-gui-data (Accept the defaults). - Execute packagemanager.
I became little more adventurous and installed Apache Web Server through this tool.
Try this neat tool today!
( Mar 24 2008, 07:39:07 AM PDT ) Permalink
Tracing PHP Function Call Time Using DTrace
In NetBeans, you can use the DTrace plug-in to analyze the performance of your PHP applications. A DTrace provider for PHP that adds probes to function entry and exit points has been available through Cool Stack. The support is also provided through Web Stack, if you are using SXDE 1/08.To get started, follow these tutorials:
1.Configure NetBeans for DTrace.
2.Get PHP DTrace Extension.
Once you are done with the steps provided in the above articles, start your Apache web server and check the probes.
bash-3.2# dtrace -l | grep php 17952 php1895 dtrace.so php_dtrace_execute function-entry 17953 php1895 dtrace.so php_dtrace_execute_internal function-entry 17954 php1895 dtrace.so php_dtrace_execute function-return 17955 php1895 dtrace.so php_dtrace_execute_internal function-return 17956 php1896 dtrace.so php_dtrace_execute function-entry ...... ......
I'm running a simple PHP application that has some function calls. Go to the DTrace window in the NetBeans IDE and start the
php_flowtime.dscript.

Here is my output. The output shows which function is being invoked and the invoke time.

My example has only a few SOAP calls. If you have a complex application with DB calls, this script will be useful to analyze the performance bottlenecks in your application.
( Mar 06 2008, 02:46:31 AM PST ) Permalink
Using Netbeans on Solaris
In my experience with interacting with the community in the recent Hyd. tech days, I could find many instances wherein the community is clueless about Web development on Solaris OS. While I could show them some demos of theSo I have a short writeup posted in NetBeans Wiki, so you can get more information about getting started with NetBeans based web development on Solaris OS.
Read the tutorial
( Mar 02 2008, 09:51:41 PM PST ) Permalink
Sun Tech Days 2008 - NetBeans Pod
I gave some cool demos today in the NetBeans pod in Sun Tech Days that happened in Hyderabad. The crowd were enthusiastic most of the time and a little obnoxious some times. Obnoxious to the point of looking under your desk for any goodie. Overall it was a very good response. I started showing some Web Stack demos on 1/08 and showed them how NetBeans can be used for PHP and Ruby development.The questions from the group can be mostly classified under SOA capabilities, Mobile development and performance. Almost everybody asked me to compare NetBeans IDE with Eclipse IDE. After repeating again and again for some 55 times I conceded by saying 'Choose the IDE that fits your requirement. Never get influenced by the NetBeans site or the evangelists'. That said, guys grow up. Use NetBeans IDE. It rocks like nobody's business. This one particular person got curious when I showed him some PHP demos. He wanted to know if there are any cake like framework support. After seeing the demo, I believe, he went back happy. I know he already made a decision. Because there are not much of open source PHP IDEs available today.
The part of the day I liked was when I got to talk about Solaris specific features that NetBeans boasts off like the DTrace plug-in. I showed the crowd how they can trace packages loaded by any Java application using this plug-in. Many were interested and wanted to use but they have no option to try it out, since they develop applications on Windows. Again, grow up guys. It was overall an exciting experience to talk with the students and the community and find out what they are looking for in an IDE.
I happened to be in the same pod (NetBeans) for last year's Tech Days. I still remember not many guys were impressed with NetBeans. This time, NetBeans really came around with its 6.0 release, which some students claim is best suited for their needs than any other similar development tool. End of the day, when I was loosing my air, Roumen came and bailed me out. Tomorrow it is going to be another day but I won't compare NetBeans with Eclipse.
( Feb 27 2008, 05:32:54 AM PST ) Permalink
Morbid Priest
Over the weekend, I gave some final touch up to my FPS game 'Morbid Priest' The storyline is not that great. You can download and try the game. It is a 2MB file and sorry....it is a Windows executable coz I don't know how to compile it to other platforms as I'm using DirectX based effects.
Note the black fog in the camera view. It disappears as the sprite moves towards the fog. The DirectX fog is used to hide ugly monsters that pounce on you when you move.

You are the last survivor in your clan. You are trapped in the death chamber. You should collect all the 4 holy rocks to survive and tell the story to others. The sprites used in this game are freely available in the internet.
BTW, the walls and the floors have lot of blood and charred remains of flesh. If you are wondering, I don't believe in 'green blood'. For phantom sake, grow up. One more thing-All sprites are 2D images. It just gets rotated when you move. Since they always face you, they look like a 3D object.
( Jan 31 2008, 01:15:04 AM PST ) Permalink
Nimbus Look and Feel For Linux
One facet that I like most on SXDE is the L&F (Nimbus). It is a look-and-feel designed by Sun for the Java Desktop System and set as a default L&F on SXDE. Nimbus is just adorable and neat on your desktop giving your desktop a clean and professional look. Fortunately if you are running Linux, you can still get this L&F.1. Get the theme from http://www.gnome-look.org .
2. Use dpkg -i to install the debs. Or use a package manager like GDebi.
It works on Ubuntu-Gutsy. It may work on all Deb distros.
Here is a snapshot:
( Dec 17 2007, 10:10:03 PM PST ) Permalink
Hello NetBeans, this is PHP!
Do you know that you can use NetBeans to build web applications using PHP? PHP plug-in is an extension to the NetBeans IDE that enables you to perform web based development on NetBeans. While there are several PHP IDEs available in the market today, NetBeans PHP plug-in offers the same functionalities offered by other IDEs and then much more. Here is a short note to quickly get you started with NetBeans PHP plug-in in Solaris.What do you need?
1. Solaris OS
2. NetBeans 6.1 Nightly Build
3. Apache 2.2 and PHP 5.2.4 (Get the CoolStack)
After installing the NetBeans 6.1 nightly build, Go to Tools > Plugins > Available Plugins

Select PHP plug-in and click Install. Follow the screens and restart the IDE.
After installing CoolStack, start httpd. Make sure Apache is running by pointing your browser to http://localhost.
In the Services tab select Web Servers > Add Host and select Local Web Server.

Then, provide the correct path to Apache 2 configuration file.

Enter a valid Document Root for Apache2 [Accept the defaults].

After finishing with the configuration, you should see Apache2 connection under Web Servers as shown below:

For creating a new PHP project, select File > New Project and select PHP Project from the PHP category.

Provide a target server for your PHP project.

In your PHP code, type phpinfo(); to get the PHP configuration information.

OK, now is my simple PHP code:

You can right click the project and select Run Project to view the output on a browser. There are also NetBeans modules for PHP Debugging.
Check out the NetBeans PHP Wiki for more information.
( Nov 28 2007, 02:45:54 AM PST ) Permalink Comments [4]




