Wednesday Feb 15, 2012

"Hard Coded" is an oxymoron

I have come to the realization that to say something was "Hard Coded" in an application is an oxymoron.  In fact, hard coding something just means that typically a developer took the "easy road" by no making some aspect of the application configurable.

 It should be called "Easy Coded".

Tuesday Mar 29, 2011

OpenPTK for Lightweight Provisioning

These days I am working at a customer that is deploying Oracle Access Manager, Oracle Directory Server, and Oracle Waveset.  The customer has many geographically separate sites running Access Manager and Directory server locally.  The work flow activities and user self service occur at a centrally deployed Waveset server at the headquarters.  However, they still want to have the ability to do some provisioning activities even when connectivity between the remote site and the headquarters is unavailable.  The best solution we have found is OpenPTK

OpenPTK stands for Open Provisioning Toolkit.  It is a framework purpose built for light weight provisioning tasks.  The architecture is loosely coupled and flexible enough to support many different types of user repositories.  For us, it is providing a great head start on development of a custom solution for this customer that will be simple to deploy, easy to maintain, and easy to use.

Check out OpenPTK when you are looking for something to supplement the enterprise identity management deployment in your enterprise.

Friday Oct 30, 2009

OpenSSO: New Article Published on SDN!

Parts IV and V of the Troubleshooting OpenSSO with Firefox Add-Ons were published this afternoon.  Take a look at the detailed HTTP traffic that is sent between the browser and OpenSSO during a typical SAML exchange using the Fedlet.  Understanding how to use Firefox Add-Ons to decipher the HTTP requests and responses will greatly help in your deployment of OpenSSO as you discover the details of how this technology works.

Troubleshooting OpenSSO with Firefox Add-Ons: Part 4, Service Provider Initiated Fedlet Single Sign-On

Troubleshooting OpenSSO with Firefox Add-Ons: Part 5, Identity Provider Initiated Fedlet Single Sign-On

I want to give Rick Palkovic a big shout out for helping get this published.  Thanks Rick!

Tuesday Mar 03, 2009

I Updated My Blackberry Software

I have owned my Blackberry for about a year now.  I just realized that I could upgrade the software on the phone!  Well, I guess I knew it was possible but never really tried before.  I run a Mac for my primary machine, so I don't have the Desktop Manager software installed (Windows only).  I do have an old laptop lying around that runs Windows XP, so I decided to give the upgrade a try.  For all you Mac users out there that have not upgraded your Blackberry, you're missing out on some pretty cool features.  My original Blackberry OS was version 4.2.  I have just upgraded to version 4.5.  The new version has quite a few features that I have enjoyed in just the first day since upgrading.


  • HTML Email capability.  No more raw HTML in my inbox.
  • Updated graphics in the Calendar
  • Better battery life? Maybe it's just my imagination, but it seems better

Check out the full list of new features on the Blackberry site.

UFS Data Recovery with UFS Explorer

I am overjoyed this evening!  I was able to successfully rescue about 200 GB of data off of a hard drive that I couldn't mount.

Originally, I thought I did a pretty good job of managing my data when I created a RAID-1 volume using the Solaris Volume Manager.  I had two identical drives in the system.  Each drive was 300 GB and had a mirror configured so that I could sustain a single drive failure without losing the data.

I awoke one morning to find that the mother board in the system had failed.  This posed a problem because it was an older mother board and finding an exact replacement was not possible.  I assume that the data was OK at this point.  I started to think about the cost of buying a new system, and I thought I could save some money by using another machine that I already had.  This turned out to be a very bad idea.

I had an old Ultra 10 handy.  These machines have an IDE interface, so I thought I could simply install the drives and read the data.  Unfortunately, the BIOS in these machines is too old to recognize the large 300 GB drive.  I seems as though it rewrote the partition table when it booted, because it was only able to see about 60 GB of data (maybe more or less, it's been a while).  Anyway, I couldn't mount the file system at all.  In addition, I failed to take note that the original machine was an AMD x86 machine, while the Ultra 10 is a SPARC machine.  I don't know if that ultimately mattered.  My suspicion is that the age to the Ultra 10 is what doomed my drive.

I tried repeated attempts to manually restore the drive by guessing the drive geometry.  I didn't have it written down anywhere and so I was just going on geometry numbers posted on the drive manufacturer's web site.  All attempts were unsuccessful.  I even tried using some partitioning tools like Ranish Partition Manager, Partition Magic, etc.  None of these were able to find the data on the drive.

I had given up on restoring the data.  Then I found a piece of software called UFS Explorer.  It has a free trial download that you can use to browse your drive.  You can download files up to 64 KB for free.  Then you can register for the full version.  This software was really easy to use.  I just plugged in the drive and let it scan the contents.  It took about 3.5 hrs to scan the disk, but it has found all of my data!

The really nice part is that I just placed the drive into a hard drive enclosure and connected it to a laptop using a USB port.  This was much easier than finding desktop PC and installing the drive internally.  I was skeptical at first; thinking that the USB interface would provide too much of an abstraction from the underlying IDE interface.  UFS Explorer handled it with ease. 

I highly recommend this product for anyone that has data on a UFS drive.  Now I can breathe a sigh of relief.

Lessons Learned:

  1. RAID-1 is not a replacement for traditional backups.  Data still needs to be backed up in case of a hardware failure in the system.  This could have been much worse for me if the hardware failure had somehow corrupted my data.
  2. Backup regularly.
  3. Don't place a large IDE drive into an older Ultra 10.  I am not 100% positive, but I am pretty sure that this is what messed up the partition table and caused the drive to become unreadable.
  4. My new server still uses Solaris Volume Manager and RAID-1.  I have now added Bacula software and an external USB drive so that I can manage backups on a regular schedule.


My server now runs the ZFS file system.  I am using ZFS to create the redundant disk array.  Then I have a cron job that runs a nightly ZFS snapshot to serve as my daily incremental backup strategy.  Once per week I have another script that makes a full backup to an external USB drive.  This seems easier than the bacula solution and requires no additional software. 

Monday Mar 02, 2009


Using Twitter to notify me when my backup jobs have completed.

[Read More]

Java Code for Reading Standard Input

This weekend I needed to write a Java application that can read data from Standard Input.  The application runs as a command line application.  I searched the web for some examples of reading data from Standard Input, but I found the easiest way of doing this was to use the Apache Commons IO Library.  This library simplifies the task of reading data from an input stream and converting that data to a String.  This is exactly what I needed to make my life a little easier.  Here is a simple block of code that does the input and conversion:

String body = null; 
// Read the input from stdin
InputStream in =;
try {
    body = IOUtils.toString(; 
} catch (IOException ioe) {
    System.err.println("IO error trying to read message!");
} finally {

That's about as simple as it gets.  Now I can use this program to process data presented as Standard Input on the command line.  For example:

java -cp MyStdInReader.Main < somefile.txt


Saturday Dec 29, 2007

Configuring an Ultra 60 to use a Flat Panel Wide Screen Display

I recently decided to upgrade my display from an old 21" Sun CRT monitor to a new flat panel wide screen display. I found out that the Ultra 60 Creator graphics adapter was unable to detect the graphics modes that are supported by the new monitor. The monitor simply displayed "Signal not Supported". I figured that I needed to experiment with various graphics settings to find one that worked. Finding the information on how to do that was more challenging than I thought it would be. After some digging, I found out that "ffbconfig" is the tool that configures the Creator card. I had a remote ssh session to the server and ran the command while I watched the output on the console. Using some trial and error, I was able to find a setting that my monitor would accept. You can run "man ffbconfig" on the command line to see a list of the settings that the Creator is capable of setting:

960x680x112s (stereo)
960x680x108s (stereo)
640x480x60i (interlaced)
768x575x50i (interlaced)
1440x900x76 (hi-res)
1600x1000x66 (hi-res)
1600x1000x76i (hi-res)
1600x1280x76 (hi-res)
1920x1080x72 (hi-res)
1920x1200x70 (hi-res)

After some experimenting, I found that 1024x768x60 works on one machine that I have. Another seems to prefer 1152x900x66. I don't know why the two machines seems to work with different resolutions, but at least I have them working now.

Tuesday Apr 24, 2007

Idea for Rental Car pick up

I recently rented a car, and I was struck with an idea that could really improve customer service. Avis Preferred members can give the driver their name when they board the shuttle. The driver enters the name and transmits it to the central computer. The central computer then relays the car assignment back to the shuttle. Then the driver reads the names and slot number assignments to the customers on the shuttle.

The problem is that I have noticed these drivers typically don't speak clearly and the P.A. on the shuttle is extremely loud. Not only is it hard to hear your name and slot number called, it also makes it impossible for other guests to have a conversation on a cell phone.

Now for my big idea ...

Avis needs to allow preferred guests to register their cell phone number with their online profile. When guests land at the airport, they can use SMS Text Messaging to notify Avis of their arrival. Once the car assignment is made, the slot number can be sent back to the guest using SMS Text messaging.

I would really like to send a text message to Avis when I get off the plane, and then have my slot number before I even get on the shuttle.

So, how about it Avis? Do you really "try harder"?

Sunday Mar 04, 2007

ATM Rebate Form

Don't you just hate those fees that ATMs charge? Well, I have my checking account with Compass Bank and they will reimburse those fees! This is something that really attracted me to their bank. I do a lot of travel and so I need to use other bank's ATMs quite often. I incur fees up to $3.00 at some places. Thankfully, I just have to mail in the receipts to my bank and they will credit my account within 10 days. The only problem is that they don't offer an online form to send with the receipts. So, I have created one.

I created a form using Open Office. This is a free suite of applications that is compatible with other major office suites.

Preview the form.

Download the form.

You can see more details about ATM Rebates on the Compass Bank web page.

Thursday Mar 01, 2007

Portal Server 7.1 Released: JES 5

Portal Server 7.1 Released[Read More]

Friday Nov 03, 2006

Portal 7: New Article on SDN!

Announcing a new article on SDN titled "Administering Portals with Scripts"[Read More]

Wednesday Sep 06, 2006

Portal 7 SRA: Move SRA Server into DMZ

There are times when the Sun Portal Server and the Sun Secure Remote Access Server are configured together on the same network. Later, the SRA server is placed in the DMZ. There are some easy steps that are required to make the SRA server available after it's moved into the DMZ.[Read More]

Thursday Aug 31, 2006

Portal: Setting the JVM Proxy settings in Sun Application Server 8.1

See how to set the JVM Proxy settings in SJS Application Server 8.1 to enable external content access with URL Scraper and XML Provider.[Read More]

Wednesday Aug 30, 2006

Portal 7: Creating a new portal based on one of the samples

One of the first steps in a typical Portal 7 deployment involves creating a new portal based on one of the portal samples that is shipped with the product. There are three portals that come with Portal Server 7. This article lists the steps necessary to create a new portal based on the Enterprise Sample Portal.[Read More]



« July 2016