Beginning to not like Ubuntu

I am beginning to not like the Ubuntu Linux distribution. I needed Ruby and Ruby on Rails the other day and it required many more packages than, for example, Red Hat or plain Debian required. I needed the packages
  • rdoc
  • irb
  • libyaml-ruby
  • libzlib-ruby
  • ri
  • libopenssl-ruby
  • ruby1.8-dev
  • build-essential
  • sqllite3
  • libsqlite3-dev
Plus, the Ruby Gems package was ancient and so I needed to install this from source.

Today I needed vncserver, but after installing the RealVNC package -- called "vncserver" -- I and was unable to get it to use the ~/.vnc/xstartup. (And it did not know about the default location for Ubuntu X11 fonts either.) So I switched to tightvncserver and all was well. Perhaps if I knew some of the philosophy behind the Ubuntu packaging decisions I would be less at a loss for why stuff does not work. But I don't want to know this stuff. Sigh.

Windows XP for an old T20

In a past posting I wrote about finding the right OS for an old IBM Thinkpad T20. In the end I abandoned Linux and installed Windows XP. I don't want to be a system administrator but even with Ubuntu I felt like I had to be. The many hours of trying Linux distributions did teach me that 1) Damn Small Linux is fantastic and 2) Windows XP is a fast and capable OS on low end machines. However, with that said, I think the T20's has extraordinarily well designed and matched hardware.

Physical connection to the past

Reading the introduction to the cooking book Melody of India Cuisine I was given pause by the opening sentence: "Mom and I started dabbling on our book twelve years ago on the model 1960 Underwood typewriter, the same typewriter my Dad had used to type his Ph. D. thesis." Given the book's publication date, the typewriter had been with them for 24 years. How many tools with personal history or significance do I still have? The IBM PC Jr and TurboPascal that I wrote my first compiler with? The Macintosh II Symantic THINK C++ IDE that I wrote Sextant with? Perl 4 that I used writing Mesa/Vista. To keep these tools would be silly. How do you retain this physical connection to the past?

Red Chair Studio assistant wanted

Red Chair Studio, Chris's other self, is looking for a assistant for 5 to 8 hours a week working here in her Peace Dale, RI studio. She is looking for a detail oriented and flexible person with sewing skills to help with production and shipping. Call Chris at 401-258-0817.

The software IDE and the non-software technical team

I very much like integrated development environments (IDE). Like most engineers, I suspect, I scratch a little while using them because they don't work just the way I want. However, the productivity increase is enormous in comparison to the small irritations. Yesterday, I watched the View Case Study: USDA Maximizing Collaboration with NetBeans and Codebeamer presentation. CodeBeemer adds to the NetBeans IDE development collaboration features like revision control, issue tracking, discussions, etc and all surfaced and integrated in the NetBeans approach to information design and use.

This posting is not, however, about software development but about other non-software technical groups outside of the software industry. Do these groups know about these rich tools? I would really like to see a print shop or an archeologist's dig or a municipal planning department use these tools. Perhaps the leap from the common ecology of Word documents + Excel spreadsheets + remote file system is too big a one.

Does anyone have experience with non-software teams using software IDEs to manage their work and materials?

Discontinuing a long running script

Looking at a bash script I wrote yesterday I see that I did not give the user a way of discontinuing the processing's long run. The user's only resort was to kill the process. Killing a long-running script is never good action. Where was the script in it's process coordination? Is clean-up needed? If so, from where and how? It would be better to let the script exit at a good discontinuation point.

To this end, I would like to write the script

. Logger.sh
. Continuance.sh

CONTINUANCE=$(continuance $(basename $0))

for f in ...
do
   if [ -e $CONTINUANCE ]
   then
       info Processing $f
       ...
   else
       warn Process discontinued before completion
       exit 1
   fi
done
or
. Logger.sh
. Continuance.sh

C=$(continuance $(basename $0))

while [ -e $CONTINUANCE  ]
do
   ...   
done

if [ ! -e $CONTINUANCE  ]
then
    warn Process discontinued before completion
fi
Where the call to "continuance" creates a temporary file, sets up a HUP trap to delete the file, and prints the instructions
2008-08-11 13:58:26 INFO To discontinue processing 
send "kill -HUP 31788" or remove the file 
/tmp/u-continuance-ITexo31793
The function is very simple
function continuance {
    f=$(mktemp -p /tmp $1-continuance-XXXXXXXXXX)
    trap "rm -f $f" HUP
    info To discontinue processing send \"kill -HUP $$\" or remove the file $f
    echo $f
}

Invisible streetlights


I have been following the South Kingstown Parks' department's plans for changing the Peace Dale Village Green. One of the change components is that the department wants to install is "period" lighting along the pathway between the Guild and Kingston Rd. Few people like the idea for reasons historical, safety and aesthetics.

Today I found the most interesting design in Jongoh Lee's invisible streetlight. The light is little more than an artificial branch with a few leaves embeded with LEDs. Fantastic!

Lee's design does not solve the Green's lighting issues, but seeing this kind of innovation gives me confidence that there is a creative solution out there. Just got to keep looking.

On to Git

I was not looking forward to learning Subversion SCM. It just looked too complicated. The basic manual is a few hundred pages. Thank goodness that Git is taking over the SCM world. I can move on from CVS, an old and fond friend, to something that actually works for distributed development.

In my search for Git introductions I found Getting into SCM with Git. Worth reading.