Monday May 12, 2008

CommunityOne JavaOne Summary

I attended JavaOne (and CommunityOne) last week. I was basically "drinking from the fire hose". There were more sessions to attend then what I had time for. The Technical Sessions and Labs are on-line so I have no reason to not review the ones I missed ... except for time. I was focused on a few specific topics:

  • opensolaris
  • NetBeans
  • RESTful web services
  • AJAX enabled user interfaces


The first opensolaris distribution (2008.05) was relased. The use of LiveCD for installation made things very simple and easy. There's a lots of new features, besides the new installer. The most obvious new features include a new user interface (gnome based), ZFS root filesystem and a new package management system. I downloaded the latest release (1.6) of Sun xVM VirtualBox for my Mac and installed the opensolaris distribution. very cool!


Release 6.1 added more support for technologies that I've been researching: ajax frameworks and RESTful web services. I was't going to upgrade from 6.0 until I attended sessions during NetBeans Day (part of CommmunityOne). Check out the new features on the NetBeans site. During lunch I installed 6.1. It installed just fine. I had it use my 6.0 preferences. The only plug-in I had to manually add was "JAX-RPC" for a legacy web service project that I have.

NetBeans has come a long way from when I first used it three years ago. The performance, integration with App Servers (Glassfish), editor features, and collection of plugins has made this an awesome tool. I'm not the only one who must think so ... I've been seeing less-and-less of Eclipse on people's laptops and used within the Vendor booths.

NetBean 6.1 Download

RESTful web services:

One of the features on the roadmap for Project OpenPTK is a RESTful web service. My personal observation is that the RESTful tools are almost there. The spec JSR-311 JAX-RS: The JavaTM API for RESTful Web Services, is in review and Jersey is available for testing. I starting writing RESTful-type Servlets from scratch and it's a lot of work ... I'll let the RESTful tools make this easier.

AJAX enabled user interfaces:

There's lots of choices (maybe too many). I've not made a decision. But, since Java is my first language i'm leaning toward the options that don't require me to learn something new like Ruby, PHP, or JavaScript (I do know a little JavaScript). I liked what I saw from the jMaki client-server framework for building Ajax enabled applications. I also like Project Woodstock which is focused on developing the next generation of User Interface Components for the web, based on Java Server Faces and AJAX.

Other observations:

The most widely used OS by the presenters was MacOS X, second was Solaris/Linux and third was Windows (at least for the sessions I attended). I've noticed that the laptop of choice for JavaOne attendees (most likely developers) is shifting to Apple. I'll estimate that 50% of the people I noticed made Apple MacBook (Pro)'s. Last year that number was about 25%-30% and two years ago it was around 10%-15%.


Here are my notes from each day:

Monday Oct 15, 2007

Mysql to Postgresql

For those of you that are MySQL users and want to check out Postgresql (it's integrated into the latest release of Solaris 8/07), take a look at the BigAdmin article I created.

Having never used Postgresql, the Solaris integration made things nice. The changes I made to some MySQL scripts was minimal.

Friday Aug 26, 2005

Using Solaris RBAC Profiles, By Example

Recently I had a need to configure the Sun Java System Identity Manager for provisioning users to Solaris. Identity Manager uses Resource Adapters to communicate with resources (Solaris). When you configure a Resource Adapter, you need to specify a userid/password that has the ability to execute user and group management commands. One of the options is to use the sudo utility. Solaris has a far better solution to this problem ... Role Based Access Control (RBAC).

I documented the process of setting up a new Solaris Role (Identity Management) and the creation of a "proxy user" (idmadm). This step-by-step process is available as an article from the BigAdmin Feature Article site.

Wednesday Aug 10, 2005

Identity Manager as a Solaris 10 SMF service

I use Solaris 10 to demonstrate the Sun Java System Identity Manager. Setting up Identity Manager on Solaris 10 was easy, it had everything I needed ... a JSP/Servlet container and an RDBMS. Solaris 10 had Apache/Tomcat and MySQL already installed.

By default, Apache/Tomcat and MySQL used traditional start-up scripts. I decided to create a Solaris 10 SMF service for Identity Manager. I ended up creating two services, one for the MySQL database and the other for Apache/Tomcat. The Identity Manager service (idmgr) has a dependancy on the MySQL service (mysql).

Documenting my Solaris 10 SMF experiences evolved from my journal "chicken scratchings" to emailed notes to finally a technical whitepaper. The whitepaper was an internal only document. Thanks to a bunch of great co-workers we got it posted as a BigAdmin Feature Article. You can get it here.

If you're thinking about creating your own Solaris 10 service, take a look at the article. It includes step-by-step instructions and manifests that can be modified for your specific service.

Monday Jun 06, 2005

Use Solaris to admin Windows

This past week I was working at a customer site. We were configuring the Sun Java System Identity Manager. We configured a solution to manage identities for the customer's employees and partners across a wide range of systems. One of the systems we provisioned to was Microsoft Window's Active Directory. As part of the project, we needed to perform various administrative tasks on the Windows 2000 Server. Typically Windows Terminal Service is used to support remote administration. Normally, I would use a Windows system and start the Remote Desktop Protocol (RDP) client to perform Window's administration. But not this time.

I use a 64-bit Athlon AMD powered laptop running Solaris 10. I've been able to accomplish most administrative tasks from Solaris 10 (less Windows admin tasks). A very cool utility was brought to my attention that changed how I would remotely admin Windows Servers. If you haven't discovered it, please check out rdesktop. The installation was simple;

  • download the tar.gz file
  • unpack it
  • run configure
  • make
  • make install

Solaris 10 included everything to build rdesktop, including gcc and openssl. The only custom part of the install involved telling the configure script where openssl was installed.

# gzcat rdesktop-1.4.1.tar.gz | tar xf - 
# cd rdesktop-1.4.1
# ./configure  --prefix=/usr/local --with-openssl=/usr/sfw
# make
# make install
# /usr/local/bin/rdesktop -g 1024x768 win2kserv

I'm now able to connect to the Windows Terminal Server and perform administrative tasks from Solaris 10. Adding rdesktop to my Solaris 10 system now gives me one less reason to run Windows.

Running Solaris (and not Windows) on my laptop has some extra benefits. Most, if not all, of the customers I visit are concerned about viruses. They get concerned when anyone connects a computer to their network. Keeping track of virus software on employee's systems is challenging enough. Worrying about what might be on a contractor's or vendor's laptop is a whole different challenge. I've been to customers where they will not allow any Windows laptops to connect (to their network) until they've been verified to be safe. I've not seen this type of concern with Solaris.

So ... to anyone that needs to access Windows Terminal Servers, add rdesktop to Solaris 10. You'll be able to remotely administer the Windows Server without having someone worry if your going to infect their network with a Windows-based virus.

Friday May 20, 2005

Updating my Open Source project

I updated my Print Directory (pd) project page today.  I added a contribution section to the webpage which includes value-added utilities, updates, and pre-packaged distributions.   If you have a chance, take a look at my open source project, I'd like to know what you think.  There are links to Print Directory under the "Project" section of the "Links" on my (this) blog page.

Creating this project under has been a great experience.  I started writing the "pd" utility before I came to Sun, Jan 1991.   I started writing it while I was working for Prime Computer (Computervision).  The Prime system's used an operation system called PRIMOS, it had a directory listing utility called LD.  My first exposure to UNIX was with SunOS 3.x on systems manufactured by Computervision (they had an OEM license to make Sun systems, I think the only one).  Using any new OS is challenging, you might know what you want to do but you don't know how to get there.  One big thing that frustrated me was UNIX's ls command.  I was use to PRIMOS's LD command.  It would (by default) display the full pathname of the directory being listed, tell you the number of FILES, show the FILES, tell you the number of SUB-DIRECTORIES and then show the SUB-DIRECTORIES.  It was visually very easy to tell which entries, in the current directory, where files (you could edit, view or execute) versus the sub-directories (which you could list).  I can't begin to tell you how many times I tried to "more" or "cat" a sub-directory or tried to "cd" to a regular file.  I suffered with this problem for a little while until I got use to adding the various options to "ls", which would somehow flag the non-regular files, making it easier (just a little) to "pick-out" the sub-directories.  This helped but I still wasn't happy ... I missed PRIMOS's LD command.

I decided to solve this problem myself with the help of a compiler.  After figuring out which system calls and library functions gave me what  I needed, I had my PRIMOS LD for UNIX.  One problem ... I couldn't use "ld", UNIX already had that two-letter command taken.  Some other trivial utility called the link-editor was named "ld".  The PRIMOS "LD" command became the UNIX "pd" command:

# pd

/   54 Entries.

13 Files.

.ICEauthority       .TTauthority        .Xauthority         .bash_history
.bashrc             .dtprofile          .esd_auth           .fonts.cache-1
.gtkrc-1.2-gnome2   .mysql_history      .profile            .recently-used

41 Directories.

.Trash              .dt                 .gconf              .gconfd
.gnome              .gnome2             .gnome2_private     .gstreamer-0.8
.idmgr              .java               .mcc                .metacity
.mozilla            .nautilus           .sunw               .vnc
Desktop             Documents           TT_DB               bin
boot                cdrom               dev                 devices
etc                 export              home                kernel
lib                 lost+found          mnt                 net
opt                 platform            proc                sbin
system              tmp                 usr                 var

There's a lot more options and features in "pd", please download the package or look at the manpage which has more output examples.

I wish I had contributed this utility to the community a long time ago.  The feedback has been great.  I got input from co-workers on how to improve the build / distribution process (I had to learn more about autoconf and automake).  The community keeps me updated on which platforms they're running the utility on.  I recently got contributions and references from people that are posting pre-compiled distributions.

I encourage everyone to consider either starting a open source project or at least contributing to one.  You'll get a good felling when you contribute and it's always a great learning experience.

Scott Fehrman


« July 2016

No bookmarks in folder


No bookmarks in folder

Ref. Material

No bookmarks in folder