This blog post titled Beginners guide to OpenJDK contributing is a well compiled introduction to the Open JDK project and how you can start contributing to it.
January 31, 2008
Contributing to Open JDK: A Beginner's Guide
XML to HTML using XSLT, Java: Useful Links
Here are some links to resources which I found very useful while I was developing a NetBeans plug-in module, which helped me properly construct the pretty HTML from a XML file using XSLT in Java:
January 30, 2008
Build your web applications with Tapestry 5
Packt Publishing, the publishers of computer related books have released their latest book on Tapestry 5, the Apache open-source framework for creating dynamic, robust, highly scalable web applications in Java. The new book titled, Tapestry 5: Building Web Applications is a step-by-step guide to Java Web development with the developer-friendly Apache Tapestry framework.
The book based on the latest version of Tapestry Web development framework and helps you get working with Tapestry components. It builds up an example website through each the book.
The book assumes that the reader is reasonably comfortable with the Java programming language, but no knowledge of web technologies is needed. For experienced Servlet, JSP, or Struts developers, the book will show an alternative way that will allow them to raise their productivity to an incomparable level. With this book you will see that a contemporary component-based framework can be easy to learn and a pleasure to work with.
More information about the book can be found at: http://www.packtpub.com/tapestry-5/book
The Dreams of Reality: NetBeans Innovators Grants
The NetBeans Innovators Grants agenda has been announced. Read the announcement here
Here are some quick links:
January 28, 2008
Developing a Spring Framework MVC application step-by-step using NetBeans and GlassFish
Developing a Spring Framework MVC application step-by-step using NetBeans and GlassFish is a NB Community Docs contribution which guides you to develop a Spring Framework MVC application. This article has been contributed by Arulazi Dhesiaseelan.
Go ahead and check it out at the wiki!
See you!
January 27, 2008
NB Community Docs: German Documentation
Kristian Rink has contributed 3 tutorials on NetBeans in German to the NetBeans Community docs:
The Life Cycle of a Blog Post, From Servers to Spiders to Suits — to You
Wired has an article titled "The Life Cycle of a Blog Post, From Servers to Spiders to Suits — to You" which contains a nice Flash movie showing the life-cycle of your blog posts. Though, it doesn't reveal any unknown secrets, but a good quick brush-up for you, and a good source to know about it for those who are not aware of it.
Cell phones taking on many roles, transforming market, generation
This article here is a nice read on the near ubiquitousness of Cell phones.
NB Community Docs: Customizing the Look and Feel of the Netbeans IDE
Look and Feel of the Netbeans IDE is customizable using the Substance Plugin which is available for download at the http://plugins.netbeans.org website.
The NB Community Docs contribution Customizing the Look and Feel of the Netbeans IDE by Cydey shows you how you start off with the plug-in to give your NetBeans a cooler look.
NB Community Docs: Developing a HK2 module with NetBeans 6.0
HK2 for Hundred Kilobytes Kernel is a module subsystem coupled with a simple yet powerful component model to build software. It is the foundation for the GlassFish V3 application server and consist of two technologies...More
Developing a HK2 module with NetBeans 6.0 is a new NB Community Docs contribution by Rikard Thulin which shows you how you can develop the famous “Hello World” as a HK2 module using NetBeans 6.0/maven.See you there at the wiki!
Would you like to be a contributor? Its as easy as 1,2,3:
- Decide what you want to contribute- a doc, a tip or a Flash Demo
- Sign up on the wiki
- Contribute
January 26, 2008
Welcome to the Blogosphere, Abhrajit!
Abhrajit, one of my very few programmer friends, whom I really admire has finally started blogging.
He blogs here at http://abhrajit.blogspot.com on some neat cool stuffs which can often save your day!
January 25, 2008
Adventures with the Nokia E51 on Linux
This post will list my adventures with my newly acquired Nokia E51 on Linux (Ubuntu 7.04)
Interfacing the Nokia E51 with the computer can be done by:
- USB Data cable
- Bluetooth
- Infrared
The phone comes with a mini USB 2.0 port which can be connected to the USB port of my computer.
Plug-in the USB data cable to the computer and then to the phone.
You get a pop-up on your phone, asking for the transfer mode:
- PC-Suite
- Data Transfer
The Data Transfer mode is for interacting only with the Memory Card that comes with the phone. Once you select this mode, the memory card is available for access from your computer and is inaccessible from your phone.
Listed below is a slowly increasing list of things I have done with the phone:
#1.1 Connecting to the Internet- Nokia E51 as a GSM USB Modem
I shall now show you how you can use your phone as a USB GSM Modem to connect to the Internet, provided you are subscribed to your operator's data services.
- Type in $dmesg on your terminal and observe the output
- Choose the "PC Suite" mode
- Now, type in $ dmesg again on your terminal and note the output. You will notice that you see some extra lines than the previous output. In a succesful scenario, the lines will be similar to:
[ 790.120000] usb 1-2: new full speed USB device using uhci_hcd and address 3
[ 790.296000] usb 1-2: configuration #1 chosen from 1 choice
[ 790.308000] cdc_acm 1-2:1.10: ttyACM0: USB ACM device
- The hint here is the device file name 'ttyACM0'. This is the device filename which we will be using for interfacing with the phone
- Setting up connection scripts
- Copy the following scripts from http://kapsi.fi/~mcfrisk/linux_gprs.html into the directory /etc/ppp/peers:
- gprs
- gprs-connect-chat
- gprs-disconnect-chat
- Configure the gprs script as follows:
- In the file, you will see a list of device files under the heading " Serial device to which the GPRS phone is connected:".
- Uncomment the line "/dev/ttyACM0" and comment all the other lines containing device files
Reproduced below is the relevant portion from my script:
# Serial device to which the GPRS phone is connected:
# /dev/ttyS0 for serial port (COM1 in Windows),
# /dev/ircomm0 for IrDA,
# /dev/ttyUB0 for Bluetooth (Bluez with rfcomm running) and
#/dev/ttyUSB0 for USB
#/dev/ttyS0 # serial port one
#/dev/ttyS1 # serial port two
#/dev/ircomm0 # IrDA serial port one
#/dev/rfcomm0 # Bluetooth serial port one
/dev/ttyACM0 # USB serial device, for example Orange SPV
- Now, configure the gprs-connect script so that it includes the proper number to dial, the Access Point Name (APN), etc. For example, listed below is my gprs-connect-chat script that I use to connect to Airtel GPRS service:
#!/bin/sh
exec chat \
TIMEOUT 5 \
ECHO ON \
ABORT '\nBUSY\r' \
ABORT '\nERROR\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nNO CARRIER\r' \
ABORT '\nNO DIALTONE\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
TIMEOUT 12 \
SAY "Press CTRL-C to close the connection at any stage!" \
SAY "\ndefining PDP context...\n" \
OK ATH \
OK ATE1 \
OK 'AT+CGDCONT=1,"IP","airtelgprs.com","",0,0' \
OK ATD*99*# \
TIMEOUT 22 \
SAY "\nwaiting for connect...\n" \
CONNECT "" \
SAY "\nConnected." \
SAY "\nIf the following ppp negotiations fail,\n" \
SAY "try restarting the phone.\n"
~
$pppd call gprsshould start the connection attempt:
amit@ubuntu-laptop:~$ pppd call gprs
Press CTRL-C to close the connection at any stage!
defining PDP context...
rAT
OK
ATH
OK
ATE1
OK
AT+CGDCONT=1,"IP","airtelgprs.com","",0,0
OK
waiting for connect...
ATD*99*#
CONNECT
Connected.
If the following ppp negotiations fail,
try restarting the phone.
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyACM0
rcvd [LCP ConfReq id=0x0]
sent [LCP ConfReq id=0x1]
sent [LCP ConfAck id=0x0]
rcvd [LCP ConfRej id=0x1]
sent [LCP ConfReq id=0x2]
rcvd [LCP ConfAck id=0x2]
sent [PAP AuthReq id=0x1 user="9890600000" password=""]
rcvd [PAP AuthAck id=0x1 ""]
PAP authentication succeeded
sent [CCP ConfReq id=0x1]
sent [IPCP ConfReq id=0x1]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfAck id=0x0]
rcvd [LCP ProtRej id=0x0 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
rcvd [IPCP ConfNak id=0x1]
sent [IPCP ConfReq id=0x2]
rcvd [IPCP ConfAck id=0x2]
not replacing existing default route through eth0
Cannot determine ethernet address for proxy ARP
local IP address 117.99.0.87
remote IP address 10.6.6.6
primary DNS address 202.56.250.5
secondary DNS address 202.56.250.6
Script /etc/ppp/ip-up started (pid 6630)
Script /etc/ppp/ip-up finished (pid 6630), status = 0x0
The connection is now established. Please configure the nameservers in your system.
#1.2 Using the Memory Card
- Select the Data Transfer Mode
- The Memory Card is automatically mounted and shows you the files stored on your memory card, as it would do for a USB Pen-drive.

A Look behind the scenes:
The last few lines of
$ dmesgwill show something like:
[ 69.680000] usb 1-2: new full speed USB device using uhci_hcd and address 4
[ 69.856000] usb 1-2: configuration #1 chosen from 1 choice
[ 70.016000] usbcore: registered new interface driver libusual
[ 70.152000] Initializing USB Mass Storage driver...
[ 70.152000] scsi2 : SCSI emulation for USB Mass Storage devices
[ 70.152000] usb-storage: device found at 4
[ 70.152000] usb-storage: waiting for device to settle before scanning
[ 70.152000] usbcore: registered new interface driver usb-storage
[ 70.152000] USB Mass Storage support registered.
[ 75.152000] usb-storage: device scan complete
[ 75.156000] scsi 2:0:0:0: Direct-Access Nokia E51 1.0 PQ: 0 ANSI: 0
[ 75.164000] SCSI device sdb: 1000215 512-byte hdwr sectors (512 MB)
[ 75.168000] sdb: Write Protect is off
[ 75.168000] sdb: Mode Sense: 03 00 00 00
[ 75.168000] sdb: assuming drive cache: write through
[ 75.176000] SCSI device sdb: 1000215 512-byte hdwr sectors (512 MB)
[ 75.180000] sdb: Write Protect is off
[ 75.180000] sdb: Mode Sense: 03 00 00 00
[ 75.180000] sdb: assuming drive cache: write through
[ 75.180000] sdb: unknown partition table
[ 75.376000] sd 2:0:0:0: Attached scsi removable disk sdb
[ 75.376000] sd 2:0:0:0: Attached scsi generic sg2 type 0
What you see is here simply means that the memory card is now identified by the device file /dev/sdb which has been mounted on /media/your-card-name
Now you can create/edit/rename/copy/cut/paste folders/files as you would do normally.
This is a WORK IN PROGRESS. Please provide comments/suggestions.
This work may not be reproduced in any format as of now. Once completed, I shall release it in an appropriate license.
You may linkback or refer to it.
Stay tuned..........
Wanda: The GNOME Fish
GNOME Fish or Wanda, the Fish is a GNOME applet which you can add to your GNOME Desktop panel. (Right Click -> Add to Panel)
Right-Click on the GNOME Fish Applet, and go the 'Preferences' menu:
Preferences- You can name your fish- the default is 'Wanda'
- You can also have a new looking fish, if you don't like the default image
- Command to run when clicked- the default is 'fortune' (Manual). Click once on the applet and you have cool, and sometimes not so cool fortune for the moment:

I love Wanda, though I must say that its because of the interesting adages it dishes me out, which actually is 'fortune' at work.
January 24, 2008
NB Community Docs: Accessing MS Access / MS SQL from NetBeans
The NB Community Docs contribution "Accessing MS Access / MS SQL from NetBeans" show you to use NetBeans IDE with JDBC - ODBC Bridge to connect to MS Access / MS SQL Server database.
Thank you Gustavo!
NB Community Docs: Pictures Explorer
The NB Community Docs contribution "Pictures Explorer" shows you how you can write a simple plug-in module for NetBeans to browse the "My Pictures" folder on your MS Windows system.
This plug-in gives you another reason not to leave the IDE at all.
Thank you Kunal for this nice contribution!
Catching up with the NetBeans Community Docs Contributions
As the NetBeans Community Docs Co-ordinator, one of the things I enjoy is to blog here about every new contribution.
I had very limited access to the Internet for the past week which prevented me from blogging about the contributions. Now, I have to catch-up with the contributions- read them and blog about them. Its good times indeed for us here at the NetBeans Community Docs. January, 2008 has seen the maximum number of contributions.
James has got a nice graphic:
A big Thank You to all the contributors and we hope to see your contributions in the future as well!
January 17, 2008
January 15, 2008
NB Community Docs: Getting Started with NetBeans Docs
Hi all!
The NetBeans Community Docs now has a doc about itself, yes- "Getting Started with NetBeans Docs" tells a thing or two to the wannabe contributor to the NetBeans Community Docs.
So if you have the idea and are looking for guidelines to get started, make sure you visit Getting Started with NetBeans Docs
NB Community Docs: Using the Tapestry Framework With NetBeans
The NetBeans Community Docs contribution titled "Using the Tapestry Framework With NetBeans" shows how to use the Tapestry Framework with NetBeans.
Make sure, you check it out here
NB Community Docs: Using the GUI Editor
Hi all!
We have a new contribution titled "Using the GUI Editor" whose primary purpose of is to make you know how to use GUI editor(also called as Matisse) in NetBeans for developing Swing/AWT applications on the fly.
This is a good introduction to GUI designing in NetBeans for the absolute beginner.
Go ahead and check it out!
January 10, 2008
Google processes over 20 petabytes of data per day
Google processes over 20 petabytes of data per day :
Google currently processes over 20 petabytes of data per day through an average of 100,000 MapReduce jobs spread across its massive computing clusters. The average MapReduce job ran across approximately 400 machines in September 2007, crunching approximately 11,000 machine years in a single month. These are just some of the facts about the search giant's computational processing infrastructure revealed in an ACM paper by Google Fellows Jeffrey Dean and Sanjay Ghemawat.
Read on..
January 9, 2008
DNA seen through the eyes of a coder
Its amazing how almost everything can be explained so easily in terms of coding terminologies.
This article "DNA seen through the eyes of a coder" is one such article which makes it a point to see that if you love coding, and especially if you are acquainted with the Unix/Linux programming jargon- that you actually end up reading the article in one breathe
Its highly engrossing, fun and very very informative!
January 8, 2008
NB Community Docs: Introducing NetBeans Plug-in Development
Hi all!
We have this year's first contribution to the NetBeans Community Docs titled "Introducing NetBeans Plug-in Development", which shows you how you can can get started with NetBeans plug-in module development by writing a simple plug-in during the course of the article
Make sure you check it out and give your suggestions/comments!
See you!
Wikia Search : 'alpha' version
The alpha version of Wikia Search was launched on January 7, 2008 and is available at http://alpha.search.wikia.com
Here are some stories around the web:
- The Spare Design of Wikia Search
- Free the algorithm: Wikia launches open-source search engine
- Wikia Search Alpha launched
- Wikia Search Is A Complete Letdown
Since its very early days, Wikia gives you a huge scope to play a role in shaping a community powered search engine. You can be the next big role model for the community powered knowledge base of the web.
Join me on Wikia here
January 5, 2008
uudecode: Decode '.doc' files embedded into your mail
Context: I recieved a mail, supposedly containing a '.doc' attachment. However, instead of a 'separate' file, I see that for some unknown reason the file contents have been appended to the mail body and appeared something like this:
begin 644 60.doc
MT,\1X*&Q&N$`````````````````````/@`#`/[_"0`&``````````````` !
M````(@``````````$```)`````$```#^____`````"$```#____________ _
M___________________________________________________________ _
M___________________________________________________________ _
M___________________________________________________________ _
M___________________________________________________________ _
M___________________________________________________________ _
M___________________________________________________________ _
M___________________________________________________________ _
M___________________________________________________________ _
M___________________________________________________________ _
M_______________________LI<$`(V`)!```\!*_````````$```````!@ ``
MF@D```X`8FIB:J$5H14````````````````````````)!!8`+A```,-_``##
.
.
.
What you see above is the binary encoded data of the '.doc' attachment. So how do you get back the proper human readable'.doc' file?
'uudecode' to the rescue
A description of the command is reproduced from here:
The uudecode utility shall read a file, or standard input if no file is specified, that includes data created by the uuencode utility. The uudecode utility shall scan the input file, searching for data compatible with one of the formats specified in uuencode, and attempt to create or overwrite the file described by the data (or overridden by the -o option). The pathname shall be contained in the data or specified by the -o option. The file access permission bits and contents for the file to be produced shall be contained in that data. The mode bits of the created file (other than standard output) shall be set from the file access permission bits contained in the data; that is, other attributes of the mode, including the file mode creation mask (see umask() ), shall not affect the file being produced. If either of the op characters '+' and '-' (see chmod) are specified in symbolic mode, the initial mode on which those operations are based is unspecified.
If the pathname of the file to be produced exists, and the user does not have write permission on that file, uudecode shall terminate with an error. If the pathname of the file to be produced exists, and the user has write permission on that file, the existing file shall be overwritten.
If the input data was produced by uuencode on a system with a different number of bits per byte than on the target system, the results of uudecode are unspecified.
Installing 'uudecode'
On my Ubuntu 7.04 system, I installed 'uudecode' by using:
amit@ubuntu-laptop:~$ sudo apt-get install sharutilsDecoding your files
To decode your files, copy the encoded text into a file, say demo.doc and use the following command
Subsequently you will see that a new file by the name as originally desired is created. The original file name may be found out by looking at beginning of the encoded file. Here, it is '60.doc'.
amit@ubuntu-laptop:/media/sda5$ uudecode demo.doc
Then you can view the contents using OpenOffice.org or M$ Word
More Information:
January 4, 2008
Article: A Developer's First Look at Android
"A Developer's First Look at Android" introduces the recently announced Android Development platform to the developers. The article has been published in "Linux For You", January 2008
This article is only available in print, interested readers may request a personal copy of the article.
January 1, 2008
NetBeans 6.0 DVD
Hi all!
Today I received my NetBeans 6.0 DVD
Its fully loaded:
- NetBeans 6.0 for Linux, Mac OSX, Solaris, Windows
- NetBeans 6.0 Source Code
- JDK 1.6 update 3
- Selected Java Tutorial Trails
- "Java Programming with Passion" course
- A screencast demo showing NetBeans in action
- Java Platform API Specification
Classical Computer Science Texts
This page here titled "Classical Computer Science Texts" lists some of the best texts in classical computer science.
Have Fun!



