October 17, 2007: Hanging with Nicklin

First thing this morning I finished reading Peopleware. What an excellent book. I am very happy that I read it and it was quite short too even with the extended second edition portions added in at the end.

Last night before going to bed I was able to bid on and win an old 1983 Tandy Radio Shack TRS-80 Model 100 laptop. I have been wanting one of these for a long time. My plan is to mount it into a shadowbox and put it up on the apartment wall as “technology art.”

I got into the office nice and early this morning. I had hoped to have been able to have gone to Borders on my way in this morning but I discovered that when I get to work early they are closed. So I hope to hit them over lunch instead. They are very close.

I did bring some magazines with me today and I managed to read them on the train. When I have disposal magazines, like eWeek, that works out well because I carry them in just one direction unlike a book that I take back and forth.

Work was busy this morning. I came into the office to discover that my office was all set to be moved. Today is my last day in my new office that I love so much 🙁 I am currently on the tenth floor with a window in a nice, quiet environment where I can easily work and think. DeMarco and Lister would be proud. Tomorrow I work from Warren. On Friday my office is being relocated down to the noisy and warm eighth floor where no one gets a window. So I will have to work from home on Friday so that I am able to get anything done. I can’t go into Warren because of the late night work and the early shuttle runs.

At lunch today I decided to walk up to Borders to pick up a book for the commute home. It is probably just under a mile round trip from here to Borders which means that I will walk about three miles today. I picked up Kent Beck’s Test Driven Development By Example.

John Nicklin got dropped off at Newark Penn Station just a minute before my train pulled in there.  So we met out front and we walked over to the Robert Treat Hotel on Military Park where he is staying tonight.  We got him checked in and then we walked back to Eleven80.

Minutes after we arrived some friends who were stopping by for the evening came bearing dinner from Food for Life.  They were over to use our computer and Internet access to do some online homework or something university related.  Dominica and Oreo got home just minutes later and we had dinner on the early side.

We hung out for a while.  I got stuck working quite a bit this evening, though, which was horrible timing.  We ran out to the Key Club to hang out for a while.  I got paged and had to run back to the apartment for a while and do some work.  Then I returned to the Key Club for a little while before we headed for home to turn in for the night.  I had to stay up and do a little last minute work before the night was over.

John is heading back home tomorrow afternoon on the train.  We are planning on getting breakfast before I go into the office.

Automounting the “NET” Directory on OpenSuse 10

In the Linux world, using the AutoMounter (autofs) to automatically mount remote NFS filesystems is relatively uncommon. However, in the Solaris universe this is the status quo. One of the most common uses of the automounter is what is known as the /net filesystem.

Many Linux users who have not spent time in the UNIX world may never have come across this and are often unaware that it even exists. It is, however, extremely important for even home users who have multiple UNIX (or Windows with NFS) fileservers and who want to make accessing those resources as easy as possible. For small businesses it goes far beyond simple convenience.

If you are used to Solaris than you probably know that /net functionality is enabled by default. In Linux the functionality is usually present and provided by the vendor (Novell and RedHat both build this in) but it is generally disabled by default. So all we have to do is enable it to turn it on and this is very simple.

Note to Novell and RedHat: Linux users would love /net mounting to be enabled by default. I suggest enabling this and putting a note in /etc/auto.master explaining how to disable. Or, better yet, make it configurable and obvious through Yast or Sysconfig.

Automounting behaviour is controlled by the configuration file /etc/auto.master. Within this file are pointers to other files that control groups of automount points. By default in OpenSuse 10.x there are several configuration file pointers that are commented out but ready for you to use. They look like this:

#/misc /etc/auto.misc --timeout=60
#/smb /etc/auto.smb
#/misc /etc/auto.misc
#/net /etc/auto.net

It is the final line that we are interested in. The file /etc/auto.net (which is wildly different than its Solaris counterpart) contains a BASH script that hands the automounting in the /net directory. You do not need to make any modifications to /etc/auto.net. Be sure not to make it non-executable as you will need it to “run” in order to complete your mounting tasks.

So, simply delete the # from in front of the #/net /etc/auto.net line in our /etc/auto.master file and restart the automount daemon and we should be good to go.

/etc/init.d/autofs restart

Now you can easily mount NFS shares on your other hosts. It is as easy as moving into the /net directory. Here is an example:

cd /net/hostname/exportedspace/home/myhome/stuff

Solaris 10 Install on SunFire V100

Installing Solaris 10 on the SunFire V100 UltraSPARC server is very easy and straightforward. However, if you install the “Core” version of the distribution there are some surprises out there. So I decided to document my own installation procedure as well as subsequent “setup” steps that I use to get the server into a reasonable working state.

Installation:

For my purposes I find that the CD-ROM based installation process is quite adequate.  Solaris 10 is available as a free download from Sun.  Only the first CD needs to be downloaded and burned to complete a “Core” install.  Be sure to choose the Sparc option for the V100.

I suggest using the “Core” installation option for machine destined to be used as servers as it is extremely minimal and takes the approach of forcing you to individually install packages that you will use instead of expecting you to remove or disable packages that you are not going to use.

Post Installation Steps:

Once we have the system installed and restarted we can log in and begin adding in the necessary packages to make the system truly useful. Since we are installing from CDROM the easiest thing to do is to continue working from the CDROM. If you have first installation CD out of the drive replace it now and let’s set up our system to always have our CDROM available to us.

On the SunFire V100 the CDROM is attached as the slave on the secondary IDE controller. Therefore we know that it will be located at /dev/dsk/c0t3d0s0 which makes our lives much easier. First we must make an appropriate mount point and then we can mount the CDROM device there. We will do this with a simple, temporary mount command and then we will show how to add this to the /etc/vfstab in order to make the mount permanently available which will save time and effort in the future.

# mkdir /mnt/cdrom
# mount -F hsfs /dev/dsk/c0t3d0s0 /mnt/cdrom

This creates the mountpoint at /mnt/cdrom which is a very convenient place for it and then mounts the cdrom device to that location. The “-F hsfs” option tells your system that the mount will use the High Sierra File System which is the CDROM filesystem. To make a permanent mount we would add the following line to the /etc/vfstab configuration file:

/dev/dsk/c0t3d0s0 - /mnt/cdrom hsfs - no -

This vfstab entry will not cause the CDROM device to be continually mounted but it will allow you to mount the CDROM in the future by simply using the following easy to remember command:

# mount /mnt/cdrom

Now that we have mounted our CDROM device we should have access to our installation CD which was, in my case, Solaris 10 8/7 CD #1. If this is still in the drive then we should be able to install some much needed software – the SSH server – with the following command:

# pkgadd -d /mnt/cdrom/Solaris_10/Product/ *ssh*

This provides our SSH server software which will, once we get it configured, allow us to access the server remotely without the use of the LOM. We will also want to install SSH client software so that we are able to establish SSH, SCP and SFTP sessions out or away from our Solaris server. This software is located on the Solaris 10 8/7 CD #2. Also on the second CD is the SUNWbash package which provides the BASH shell. You will definitely appreciate having BASH installed once you have worked with it for any length of time.

# pkgadd -d /mnt/cdrom/Solaris_10/Product/ *ssh* SUNWbash

Once you have SSH available as both a server and as a client the machine will be ready for use as a blank slate where networking services can be added as you need them.

The Fallacy of Bonuses

In business, people love to talk about bonuses.  “Bonuses are an incentive for employees to work harder.” you hear people say.  But are they?  Let’s take a critical look at this “motivational” practice.

Thinking that bonuses are a path to employee efficiency shows a great lack of corporate empathy by management for the workers.  It represents a disconnect between those who organize the work and those who actually perform it.

Management often thinks that since bonuses are “bonus” money – above and beyond salary – that employees must be delighted to receive them.  But what they forget is that the non-management employees spend a lot of time thinking about their monetary compensation and they are more than aware that that bonus is simply salary that was withheld until the end of the year.  It isn’t “extra” money but salary paid in an irregular fashion – it is an integral part of their total compensation package.

What employees all know, and management seems to not understand, is that employees are never empowered enough to make decisions or to work hard enough to significantly impact a company’s bottom line in such a way as to noticeably change their own bonus.  This seems so obvious that one has to wonder how any management student could ever get away without knowing this instinctively.

Employees seldom get to work in any environment that they deem to be that in the best interest of their own efficiency.  How many more employees would choose to work from home or from the corner office?  Employees don’t determine which projects they work on or who their team members will be.  The management decides the “big scope” items.  Employees are tasked with more specific jobs.  A factory line worker at Ford isn’t allowed to exclaim that “Automotive profit margins are down so I am going to work on making video games instead of assembling fuel injectors.”  Those decisions are left to others.  Non-management employees are not in a position to make decisions of a scale that can affect their bonuses in any meaningful way.

Even in companies that make concerted and sincere efforts to give their employees real decision making power the employees are still shackled by the scale of the company.  Even a small corporation of one thousand employees shows that the actions of any one employee can only have a minimal personal impact.

The reason that people choose to work for large companies is because of the mediating factor that size allows for.  A large company can make large profits or lose large sums of money from year to year but still will have the resources to pay its employees the same from year to year.  Employees are largely protected from market variations and upheavals.  They take little risk and they get compensated very conservatively.   This is the value that large corporations bring to the table when shopping for employees.  Bonuses, when used by large companies, show that companies have forgotten this value and think that their employees will be happier taking risks.

Many people are happy to take risks.  These people are generally entrepreneurs.  Small companies and start-ups have very small staffs where individuals are able to impact the profitability of the company and the individuals can know each other and decide together to succeed or fail.  They are a single team that makes choices together.  They take huge risks but because they do they can also reap great rewards.  This is a calculated risk that makes sense.

When a company pays a good bonus the employees will generally be happy.  Some will think about the fact that this is salary that they earned throughout the year and was withheld so that the company could use it to make more money during the year but many will not.  But when a company does not pay a good bonus – then employees immediately think about how they were not in a position to impact the company’s profits and they blame management for having failed to do its job and then taking the losses out of the powerless employees’ wages.  And this is exactly what has happened.

Bonuses are a means by which managers and companies hedge against losses.  Instead of paying employees what they are worth, they tie the employee’s wages to the company’s performance so that on good years employees get paid market value (one hopes) and on bad years the employees suffer so that the company doesn’t have to spend as much on the labor that it has already consumed.

Any employee who has ever been paid a small bonus is acutely aware of this situation.  I have personally never worked for a company that has paid bonuses and yet just hearing about a company which works in this way makes me shudder and think of middle managers trying to lessen the damage caused by their own incompetence.

Bonuses have no real upside to employees and very little to businesses themselves.  The initial benefit to a company is obvious – reduced operational expenses during times when the company performs poorly.  But in the long term this causes the company to compensate poorly and lose staff capable of moving around easily in the marketplace.  Those who stay are disgruntled and, most likely, under-qualified.

Never tie one person’s motivation to another person’s performance.

October 16, 2007: Nicklin Comes to Newark

I am working from home today.  My schedule this week is all weird.  Originally I was schedule to be in Warren tomorrow but that has been changed until Thursday.  And today I am home.  I think that my home day is more likely to switch to Tuesdays rather than Thursdays just because Thursdays normally work better for going out to Warren.  We will see.  It will take a while for me to get used to the new commute.

Oreo was very happy laying in the sun all day.  He just hopped up on the loveseat that was turned around on Friday evening and now faces the desks.  He really likes being able to lay there and watch me work but have the comfort of the soft chair and the sunlight.

When I wasn’t working on work today I worked on my Java homework that was due this Thursday.  But later in the day my professor pushed off the due date until Saturday.  As it was it was originally due yesterday and so has been delayed twice now.  Pheww.

Dominica got home and cleaned as much as she could.  John Nicklin was originally scheduled to arrive in Newark around midnight tonight but at four thirty he was able to walk onto an earlier flight in Chicago and arrived in Newark long before eight.

John took a cab up to Eleven80 and Dominica gave him a tour while I did some phone support and tried to wrap things up for the evening.  I met them down on the second floor going through the lounge area.  Then we walked over to Scully’s Publick House on Clinton Street.  Scully’s is actually directly one block over from our back door on Commerce but you have to walk around the block to get there because there is a fence blocking us for going straight down the alley.

We ate a nice dinner at Scully’s.  Dominica really likes that place.  She is very happy to have some additional variety in our eating locally.  She tried the fish fry tonight but it was beer battered tilapia which was a little weird and she didn’t like it very much.

After dinner we were all very tired.  John had been going since three in the morning and had flown from Baltimore to Chicago and then out to Newark later in the day.  So he caught the shuttle back to his hotel and Dominica and I headed off to bed.

While doing some research today I learned about hagfish.  Hagfish are insanely disgusting and yet interesting.  There is a great video on YouTube of a anaesthesized hagfish’s “slime” reaction.