Updated: Belenix 0.7, Ubuntu 8.04 and Sun xVM Virtual Box 1.6
My blog post Installing Belenix 0.7 with VirtualBox on Ubuntu 7.04 has been linked from the Belenix official documentation, Yay!
April 28, 2008
Belenix Documentation linked my blog post
Java client for del.icio.us using NetBeans
del.icio.us is a bookmarking service where you can save, share your favorite/useful URL's.
It has a REST API: http://del.icio.us/help/api/. Using this API you can design clients (web/desktop) to use the service. NetBeans 6.1 comes bundled with the APIs for popular web-services, which includes del.icio.us.
In this post, I shall code a simple Java console client for del.icio.us to fetch your recent posts. (For details, please refer 'https://api.del.icio.us/v1/posts/get?' at http://del.icio.us/help/api/posts)
You may download the complete NetBeans 6.1 Beta project here
Needless to say, you will need a del.ico.us account to follow this post.
- Create a new project


- Insert a method 'getPosts()' in the 'Main' class generated:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package deliciousclient;
/**
*
* @author amit
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
getPosts();
}
private static void getPosts() {
}
}
- Expand the Web Services node and hence expand the 'Del.icio.us' node to finally descend to the 'delicious.posts_get' API call.

- Once you are there, click on it and drag it onto the body of the 'getPosts()' method. You will be asked to configure the API parameters, which you can either set to your own values or leave the default values

- The method will now look like this:
private static void getPosts() {
try {
String tag = "xml";
String dt = null;
String url = "";
String result = DeliciousService.getDeliciousPostsGetResource(tag, dt, url);
System.out.println("The SaasService returned: "+result);
} catch (java.io.IOException ex) {
//java.util.logging.Logger.getLogger(this.getClass().getName()).log(java.util.logging.Level.SEVERE, null, ex);
ex.printStackTrace();
}
}
- You will observe that some new classes have been added to your project. They are classes which take care of the REST API calls to the del.icio.us service

- But before running your project and hence using the service, you will have to provide your del.icio.us account details in the 'profile.properties' file in the 'org.netbeans.saas.delicious' package. For eg.
username=amitkumarsaha
password=password
- Run the project, you should get back the the XML representation of the result.
Thus, we have seen how easy it is to design a del.icio.us client using NetBeans 6.1. Similarly the other APIs can also be explored!
API Documentation
- You can view the API documentation by a 'Right-Click' on the service name,and you will be taken to the relevant API documentation (you will need to be online for this)

Happy NetBeaning!
April 27, 2008
Indiana Release Candidate available for testing
A test image for the 2008.05 release from Project Indiana is now available. The official announcement is here.
Download via a BitTorrent from http://dlc.sun.com/torrents/info/0805rc2a.iso.torrent
Here is a 5-page review, just in case you would want to read about it before you start the download.
Happy users:
April 26, 2008
Belenix 0.7 with VirtualBox on Ubuntu 7.04
Belenix 0.7 was recently released.

I have extensively used VirtualBox to try out various Linux/Open Solaris releases. This post, more of a visual guide shows you how you can install Belenix 0.7 as a guest operating system. The host OS here is Ubuntu 7.04. (How to install VirtualBox on Ubuntu 7.04?)
This is what we will end up with:

Here we go:
- Configure a new Virtual Machine, set it up to boot from the CD/DVD ROM and mount Belenix 0.7 ISO file (or insert the Belenix 0.7 CD in your drive)

- The GRUB menu is shown:

- LiveCD starts..

- Choose the desktop environment:

- Belenix KDE desktop loading..

- Start the installer:

- Choose the partitioning method. Since I am using a VHDD here, I chose "Use the whole disk"

- After creating users, language, and time zone selection, the install process will start and it took me around 35-40 minutes for the installation to get over:

After the installation process is over, shutdown the virtual machine. Configure the Virtual Machine to boot from the VHDD, and start the VM. You should see the GRUB menu:

Now, your VM is booting from your just-installed Belenix 0.7 and you will be greeted with the login window:

Enabling NAT: Accessing the Internet from Belenix 0.7
In case you want to access internet via the connection established to your host machine, simply create a Network Adapter and attach it to NAT
Last Update: 28 April, 2008
Issues
Related:
April 25, 2008
April 24, 2008
OpenDocument API- ODFDOM
First draft of the documentation for the upcoming OpenDocument API- ODFDOM is live at http://wiki.services.openoffice.org/wiki/ODFDOM
Anybody who is interested to get more information and/or have a real-time discussion is invited to participate in our weekly IRC meeting every Friday at 9.30 AM (CEST or UTC+2 hours) <http://timeanddate.com/worldclo
April 22, 2008
Participating in Open-Source Java projects
Java is a primary language for a huge number of Open-Source projects and is the driver of a large set of Open Source Java technologies, collectively forming the Open-Source Java community
A search on SourceForge returns 16237 Java projects, Ohloh.net returns 2391 results, freshmeat returns 3211 projects. Similar figures are returned by Google code. http://dev.java.net is a dedicated host for Open-Source projects written in Java.
For Java developers who are looking to contribute to Open-Source projects, the choices are plenty ranging from widely used products such as NetBeans and Eclipse to smaller hobby projects which have been open-sourced by their developers. For those who are just getting their feet wet in Open-Source things can be overwhelming, if not difficult. My aim here is to show you some starting points which I have discovered in my very short period of being in Open-Source.
Remember: The Golden Rule of participating in any Open-Source project is that you will have to use it to go anywhere near participating. Participating doesn't always mean contributing: Use the software. If you find any bugs report the developers- flame them, if you lke the product appreciate them. Everything counts.
In the next lines of text, I shall point to you some resources which will give you an idea of the various Open-Source Java projects you can participate in:
Sun Microsystems Inc. backed Open Source Java projects
The Apache Jakarta Project
http://jakarta.apache.org/ lists open-source Java projects developed under the project
IBM Developerworks Index
IBM Developerworks maintain an index of Open-Source Java projects at http://www.ibm.com/developerworks/views/java/projects.jsp
Apache Project
The Apache Project has a large collection of Open Source Java projects.
Eclipse
Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle.
Projects hosted on Java.net
A large number of high quality projects are hosted at https://www.dev.java.net/servlets/ProjectList
These are the largest gateways to Open-Source Java projects. At the same time, most of these are HUGE projects, so huge that you might feel lost as to where you should start and how you can contribute. Do not worry, spend some time looking around, ask a few questions, use the software, think, hack it up, announce and before you know you are a proud contributor to Open Source!
In subsequent posts, I shall zoom in on some Open-Source Java projects I contribute and/or follow and/or use and chart out some ways in which you can start contributing!
See you then!
The views expressed here are entirely mine- the mistakes are entirely my responsibility and will possibly be due to my early days in Open-Source. So please let me know, so that I can improve this post and my knowledge.
Shell script to rotate a bunch of Images
#!/bin/bash
# Uses the 'convert' utility to rotate a bunch of images via some specified angle in
# clockwise
# By Amit K.Saha
# Angle is to be supplied as a command line parameter
#./Rotate.sh 90
for i in *.png
do
convert -rotate $1 $i $i
done
Shell Scipt to convert a bunch of images using 'convert'
convert is a command line tool available with ImageMagick which can be used to convert between image formats. This shell script uses it to convert a bunch of images from '.ps' to '.png'. Follow embedded instructions to customize it to your needs.
#!/bin/bash
# Uses the 'convert' utility to convert a bunch of images from one
#format to another
# the script should reside in the same directory as the images
# You need to have 'ImageMagick' installed
#(http://www.imagemagick.org/index.php)
# By Amit K.Saha
# Help taken from http://howtoforge.com/forums/showthread.php?t=4493
#to convert to/from different formats
# change 'ext' to reflect the format you want to convert "from"
# Chnage target to the format you want to convert to
ext=".ps"
target="png"
for i in *.ps
do
base=$(basename $i $ext) #to extract only the filename and NOT the extension
convert $i $base.$target
done
April 21, 2008
April 20, 2008
NetBean 6.1 Beta has Support for your favorite Web Services
Working on random stuffs in NetBeans, I chanced upon the expanded "Web Services" node in the "Services" window. I loved what I saw there:
Yes, click-and-drag support for your favorite Web Services. Writing clients (POJO, servlet, JSP and RESTful web service) for them could never be easier.
Digg it here at
http://digg.com/programming/NetBeans_6_1_Beta_Web_Services_Explorer/
BTW, I am using NetBeans 6.1 Beta- however this blog post tells that it is included in the recently launched NetBeans 6.1 RC 2
Any pointers?
April 19, 2008
opensolaris.com will probably look like this
Glynn Foster has a opensolaris.com mockup. Things are still being worked out though, but the templates, mockup looks GOOD
Of course, Order is important and hence, opensolaris.com augurs well for opensolaris.org
April 18, 2008
Sun to begin close sourcing MySQL?
Slashdot reports certain features of MySQL all set to be available only to its enterprise customers- thus indicating a first step towards close-sourcing portions of the code-base of the Open-Source database.
Links to visit:
- Slashdot article
Do not forget to read the comments, especially this - Just announced..
April 17, 2008
BBC Radio: Digital Passion Podcast
The latest episode of Digital Passion Podcast features:
- Cloud Computing
- wikicrimes.org
- miscellany..

Cloud Computing
This podcast will give you a nice introduction to Cloud Computing and related to it, the recent announcement of Google's App Engine.
Places to go would be:
NetBeans Quiz: Get Quizzing and Winning!
The NetBeans Quiz is up & running!
Time to grab some cool prizes!
How?
- Install the Quiz plugin module from the NetBeans update center in your IDE
- Answer some simple Java/NetBeans questions, submit
- Keep your fingers crossed :-)
- Participate every week
NB Community Docs in Russia
James, the NB Community Docs manager gave a short presentation on the NB Community Docs at Sun Tech Days, Russia
Check this link out
Congratulations, James, and thank you all those who have contributed to the effort!
April 15, 2008
Splitting strings using String.split(regex)
Say, you have a large string and you want to split it into sub-strings such as you can treat each as a separate each sub-string as a separate string. You can use the Java function split() (http://java.sun.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String))
String[] split(String regex)
Say, you have the string arg4="abc,def" then the following:
String[] substrings = arg4.split(",");
will return an array {"abc","def"}
Dependency hell
I first used the term Dependency hell while preparing the slides of my talk on Image Packaging System (IPS) (http://amitsaha.in.googlepages.com/ips-presentation.pdf).
A good couple of days later, I just wanted to verify whether the seemingly _correct_ term was _really_ correct or not. I wasn't disappointed (http://en.wikipedia.org/wiki/Dependency_hell)
Though it encompasses lot of other things, but I was glad to see that I was not wrong!
April 14, 2008
Observations on the Image Packaging System
Abstract
Project Indiana is an effort to create a single CD Open Solaris distribution and a top draw for its immense importance is its network centric package management system project- Image Packaging System (IPS). In this paper, the importance of this project – both technically and how it affects Open Solaris at large has been touched upon.
Keywords: Linux Distribution Model, Open Solaris, Open Source, Package Management
1. INTRODUCTION
Package Management is the ability to install and upgrade software over the network in a seamlessly integrated fashion. We have ‘apt-get’ system in Debian/Ubuntu, and the 'yum' system in Redhat/Fedora which are examples of some package management systems in popular Linux distributions.
Package Management is said to be the single biggest advancement Linux has brought to the industry [1]. This again has been the single most important factor for the phenomenal growth of Linux in the operating system scene.
1.1 WHY THIS MODEL WORKS AND WHY IS IT IMPORTANT?
Making the software easy to install, upgrade and uninstall (not necessarily in that order) over the network has resulted in single CD (and even < style="font-weight: bold;">1.2 PROJECT INDIANA & IMAGE PACKAGING SYSTEM (IPS)
Project Indiana [2] is working towards creating a binary distribution of an operating system built out of the Open Solaris source code. "Refashioning Solaris as a distro is the essence of Project Indiana—and package management is the key technology that will hold it all together" [1].
Project Indiana [2] is leaps forward in Open Solaris based distributions mainly because of its network centric package management system- Image Packaging System (IPS) [3], which is the first time in history of Solaris that a network-centric management system is made available to its users.
2. IMAGE PACKAGING SYSTEM
The image packaging system, written in Python [4] is an attempt to design and implement a software delivery system with interaction with a network repository as its primary design goal. It is a portable software packaging and delivery system intended to allow efficient, observable, and controllable transitions between known configurations of software content.
2.1 ARCHITECTURE
IPS is a network-oriented binary packaging system. Although it will have on-disk representations for versioned packages, the primary expected use for installation of software will be between an intelligent client and one or more relatively simple servers.
The project defines a client-server publication mechanism. The publication client offers up transactions on packages.
The server evaluates transactions from the publication client. Transactions that are deemed to be complete and/or safe by server are then made available to the retrieval client. The initial transport will be HTTP and HTTPS, protocols around which most sites have developed mature access policies.
The default package depot server is maintained at [6] and the client is configured to connect to this package depot server. You can set up your own IPS repositories as illustrated in [7] [9].
A simple usage scenario would be:
1. User X issues the appropriate commands to install package P from the client program.
2. The depot server checks if the package requested is present. If yes, then proceeds to install else reports appropriate message- package already installed or package not available.
2.2 INTERFACE
The IPS currently exports the following interfaces via CLI [3]:
1. retrieval client CLI,
2. publication client CLI,
3. administrative and server CLIs,
4. client metadata representations,
5. server metadata representations,
6. retrieval and publication protocol operations,
7. dynamic language API to access packaging functions,
8. an on-disk package format,
9. package metadata conventions,
10. available package constituents ("actions"), and
11. package naming and versioning conventions
2.3 APPLICATION PROGRAMMING INTERFACE FOR IPS
As of now, there is no well defined language API. However, the Python code base may be re-used to implement custom solutions.[8]
A scripting interface to IPS seems to be out of the question [5].
3. SIMPLE USAGE SCENARIO
Use Case 1: Installation scenario when the package does not exist in the repository
amit@opensolaris-vbox:~# pkg install SUNWxmv
pkg: no package matching 'SUNWxmv' could be found in current catalog
suggest relaxing pattern, refreshing and/or examining catalogs
install failed: Unable to assemble image plan
Use Case 2: Installation scenario when the package exists in the repository
amit@opensolaris-vbox:~# pkg install SUNWxvm
DOWNLOAD PKGS FILES XFER (MB)
SUNWxvmdom 0/2 0/385 0.00/6.52
4. CONTRIBUTING TO THE EFFORT
The source code may be checked out from the repository at [10]. The project is still at its infancy and in need of more developers to fix the bugs, try out the features and improve the code base.
5. LOOKING AHEAD
Winds of change are blowing over the Solaris world and Image Packaging System is going to be a definite player in shaping the future. Are the Open Solaris people trying to copy the whole model of the Linux world? No. [1]
REFERENCES
- http://ianmurdock.com/2007/07/21/how-package-management-changed-everything/
- http://opensolaris.org/os/project/indiana/
- http://opensolaris.org/os/project/pkg/
- http://www.python.org
- http://blogs.sun.com/sch/entry/pkg_1_a_no_scripting
- http://pkg.opensolaris.org/
- http://blogs.sun.com/migi/entry/create_your_own_opensolaris_ips2
- http://mail.opensolaris.org/pipermail/pkg-discuss/2008-March/002229.html
- http://mail.opensolaris.org/pipermail/pkg-discuss/2008-March/002234.html
- http://hg.opensolaris.org
- slides of the talk I gave on Image Packaging System at Haldia Institute of Technology, Haldia
- Ananth's talk on Image Packaging System (IPS)
Last Update: April 28, 2008
April 11, 2008
ODF Toolkit for Java
I have decided to discontinue my dedicated blog on ODF Toolkit for Java, basically because I was finding it difficult to manage both.
From now on, all posts on 'odf4j' will be available here on this blog.
Some related links:
April 10, 2008
Store data in a XML file using the DOM API in JAXP
Okay, if you are like me- a Java developer and think that XML is an easy solution to most of your light-weight, persistent data storage and retrieval needs, simply because of its structured nature, I shall briefly describe you how I use Java API for XML processing (JAXP)- DOM API to store and facilitate easy retrieval of data for my application.
Here it goes:
Say, I have some information which I want to store (from my application) as given in file mapping.xml
While coding up the Java class which will write the data into a XML file, the DOM approach is:
- Create the DOM representation of the data- this is the in-memory representation
- Write it to the XML file using classes from javax.xml.transform package which transforms the DOM representation into the persistent XML file
- First part deals with the scenario in which the XML file already exists
- Second part takes care of the scenario in which I am creating the XML file for the first time- this time the root element of the XML has to be created, which is the difference from the first part
String xmlFile = "mapping.xml";
File file = new File(xmlFile);
if (file.exists()) {
//then code for first part
}else
{
//code for second part
}
Here is the Java source code:
Note: arg1, arg4, arg7 are the "data" that I will store in the XML file; please
private void writeToXML(String arg1, String arg4, String arg7) throws IOException, SAXException, ParserConfigurationException {
String xmlFile = "mapping.xml";
File file = new File(xmlFile);
if (file.exists()) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// Create the builder and parse the file
Document doc = factory.newDocumentBuilder().parse(xmlFile);
org.w3c.dom.Element mddevice = doc.getDocumentElement();
org.w3c.dom.Element new_mddevice = doc.createElement("mddevice");
new_mddevice.setAttribute("name", arg1);
org.w3c.dom.Element blockdevice = doc.createElement("device");
blockdevice.setAttribute("name", arg4);
new_mddevice.appendChild(blockdevice);
org.w3c.dom.Element mountpoint = doc.createElement("mountpoint");
new_mddevice.appendChild(mountpoint);
mountpoint.setTextContent(arg7);
mddevice.appendChild(new_mddevice);
try {
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();
Source src = new DOMSource(doc);
System.out.println("Starting the XML file creation");
Result dest = new StreamResult("mapping.xml");
aTransformer.transform(src, dest);
} catch (Exception e) {
System.out.println("Stream error" + e.getMessage());
}
} else {
try {
//Create instance of DocumentBuilderFactory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//Get the DocumentBuilder
DocumentBuilder docBuilder = factory.newDocumentBuilder();
//Create blank DOM Document
org.w3c.dom.Document doc = docBuilder.newDocument();
//create the root element
org.w3c.dom.Element root = doc.createElement("raidmap");
doc.appendChild(root);
org.w3c.dom.Element mddevice = doc.getDocumentElement();
org.w3c.dom.Element new_mddevice = doc.createElement("mddevice");
new_mddevice.setAttribute("name", arg1);
org.w3c.dom.Element blockdevice = doc.createElement("device");
blockdevice.setAttribute("name", arg4);
new_mddevice.appendChild(blockdevice);
org.w3c.dom.Element mountpoint = doc.createElement("mountpoint");
new_mddevice.appendChild(mountpoint);
mountpoint.setTextContent(arg7);
mddevice.appendChild(new_mddevice);
try {
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();
Source src = new DOMSource(doc);
Result dest = new StreamResult("mapping.xml");
aTransformer.transform(src, dest);
} catch (Exception e) {
System.out.println("Stream error" + e.getMessage());
}
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
change it to suit your needs
Related:
DOM Tree Scanner in NetBeans 6.1 Beta
Say, you have created (or otherwise) a DTD file (for eg. mapping.dtd).
Right-click on it and you will see a option "Generate DOM Tree Scanner" in the pop-up menu that appears. Click on it:

What you will have is a Java class which is all set to be used to scan through your XML file which conforms to your DTD. Its Magic!
In the Java class that is generated, you will see a method:
public void visitDocument() {
.
.
.
}
This will be your entry-point to the DOM scanner.
Just create another Java class:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package softwareraidtool;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
/**
*
* @author amit
*/
public class MappingScannerDemo {
public static void main(String args[]) throws IOException, SAXException{
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// Create the builder and parse the file
Document doc = factory.newDocumentBuilder().parse("mapping.xml"); //the file you want to parse and which conforms to the DTD
MappingScanner demo = new MappingScanner(doc);
demo.visitDocument();
}catch(ParserConfigurationException pc){
}
}
}
You will have to modify the DOM scanner class to fit your needs. In its original form, it will just parse the XML file.
Here are the files:
HTH, have fun!
April 8, 2008
Quick tip: 'copy' task with Ant
Say, you need to copy a bunch of files from one location to another in your project structure after the JAR building is over. Add these lines to your 'build.xml' file: "
*copy todir="dist"#
*fileset dir="."#
*include name="*.sh"#
*/include#
*/fileset#
*/copy#
*/target#
Please replace '*' with '<' and '#' with '>'
If you know how to insert XML properly in blogger, please let me know!
April 7, 2008
Criticat: YOU can set things right
The text/comments that you see here are my own andI am not affiliated to Criticat, in anyway whatsoever. This case study has been taken up independently out of plain interest.
How often have you, as a job looker desired that you knew more about a company than is told to you by their- Websites, PR personnels or their advertisements?
How would it be to hear about a company from their current and past employees?
What if you started getting your employee's side of how they feel working in your company?
What if you had a platform to showcase your company to your prospective employees?
You may as well say that all the above features have existed in some form or the other. You could always get the insider's view of a company from someone whom you know who works there, or your friend's friend who is an employee there. With Six degrees of separation [3] ruling, this is not a distinct impossibility. Companies also have various forms of feedback mechanisms which seek to consider the employee's say in the decision making process.
What is felt wanted in most of these processes is the world of difference between the intentions and their implementation. Most current employees would not really stand up against a malpractice in his company and thus hamper his career prospects. Thus, anonymity is a major factor to ensure a fair review of a company by its employees.
Introducing 'Criticat'
All these is already possible via Criticat, (http://www.criticat.com). Criticat aims to bridge the communication gap between employee and employer and makes the corporate world more transparent.
Criticat intends to[2]:
- help the job looker to make intelligent decisions about a company
- You are correct that there isn't any friend network as of now. We might introduce it near future.
- Everyone who decides to move to a new company refers to Criticat to make an educated decision.
- Employers and prospective employees talk to each other through Criticat
- An platform where all three components employers, employee and
prospective employee can communicate openly with each other - Its a way for the employer to get live feedback from its employees instead of annual or semi- annual feedback
As is with all Social Networks, the basic idea underlying Criticat is that of peer interaction, which is highligted by the friendship networks such as Facebook, MySpace, Orkut or professional networks such as LinkedIn.
However, traditional friendship network features such as a friends network, people search is missing as of now.
Let us now see a simple use-case scenario of Criticat:
- Create an account

- Submit a new company


- Review your company


- Advice company

Issues
Ensuring the credibility
Criticat is in its nascent stages and to become a voice which is heard in the corporate world, a main area which it has to address is *credibility*. What is the gurantee that disgruntled ex-employees won't tarnish the image of a company? Why should the job looker believe in all that is written about the company? How will the employers be made to heed to the grievances against them?

Yes, Criticat urges you to "Honor the anonymity". But there needs to be a much better solution in place than just a simple "appeal". This is a challenge that Criticat has to look into very soon to be accepted as a crdible voice in the community of employers, employees, ex-employees and prospective employees.
Saving itself from spammers
To better understand the working of Criticat, i created an account for myseld and then I added my non-existent company- 'XYZ' which is now listed as the most recently reviewed company. Folks at Criticat will have to guard against this.
Ensure open-ness
Criticat, now operates in a closed atmosphere. No extensibility, no interoperability with other networks. Interoperability or features to interact with the other networks will enable its reach to a wider audience.
References:
1. Criticat- http://www.criticat.com
2. Shweta Gupta, Founder, Criticat (http://www.shwetagupta.com)
3. http://en.wikipedia.org/wiki/Six_degrees_of_separation
April 5, 2008
Package Naming in Indiana
If you have played around a bit with the Image Packaging System (IPS) in Indiana, you will observe that all packages are prefixed with a 'SUNW'. Why is that?
I fired my query to the pkg-discuss list and Shawn Walker quickly told me the reason why: "
Because Sun's official previous policy on package naming was that"
creators of packages used their company stock ticker to ensure package
names were easily identified and unique.
Now, it is because the existing packages in Indiana, etc. are imported
from Solaris Express builds that still use the old naming convention.
It will go away eventually.
You may follow the discussion here
knew that Sun's stock ticker was 'JAVA', then why 'SUNW'? Google took me to this blog post on Jonathan's blog titled "JAVA is everywhere"
Now, I am relieved that I know why.
SDN Channel Video: OpenSolaris: A Sneak Peek
Hear and see Ian Murdock speak on SDN Channel about Project Indiana on this SDN channel video here
Besides other things, he demos the Image Packaging System (IPS)
April 4, 2008
Exploring the Ant build script in NetBeans
After importing my manually coded build.xml into NetBeans, I opened it to view it in the wonderful XML editor:
Looking towards the left bottom, i notice the XML view of the build script:
You may also run any of the Ant targets by a Right-click->Run Target:
Cool!
April 3, 2008
Java Free-Form Project in NetBeans
Say, you got a small scale Java project and use Ant for your build purposes. Thus, you have the Java classes and you have the 'build.xml' file. Now, as the project size increases you feel that you need a IDE to take care of the project build and other logistics. I shall show you how you can do that using the "Java Free-Form Project" feature in NetBeans 6.1 Beta
Softwares:
- NetBeans 6.1 Beta
- JDK 1.6
- Create a "New Project" and choose "Java Free-Form Project"

- Select the directory where you existing project lives and point to the 'build.xml' and fill up other details:

- Map the project actions to targets in your Ant build.xml file:

- Choose your source folder:

- Your project structure is now ready and you can continue using them from the IDE itself

Hope that helps!
April 1, 2008
Laughing aloud with Fool's Day Jokes
Here is a list of Google's Fool's day delicacies:
Too bad, so many conflicting new features for NetBeans 7.0 ??












