We’re on Twitter!

I finally gave in and got a Twitter account. Twitter is, in short, public SMS for the Web.

I’ve been posting already, including messages about OpenVMS, UNIX happenings, Sun/Oracle events, and other things of interest (including privacy issues, Internet freedom, and more).

Not everything I post on Twitter will be discussed here; however, eventually I plan to put notices of posts onto Twitter. Check it out! I’m @ddouthitt.

Getting Java Working in Chromium in Ubuntu Lucid Lynx

I recently found myself needing to have the Java plug-in working on Ubuntu. I had been using Google Chrome, and thought that installing Chromium from the standard repositories would fix it – not so.

After some research, I found this article about getting Java working on Ubuntu 9.04 with Chromium. Strangely (or perhaps not) things have not changed in Ubuntu 10.04.

The simple description is the following:

  1. Find libnpjp2
  2. Place a copy of libnpjp2 in Chromium’s plugins directory: /usr/lib/chromium-browser/plugins
  3. Make sure that libjavaplugin* is removed from the plugins directory.
  4. Restart Chromium if necessary.

In the case of Ubuntu 10.04, I found libnpjp2 to be part of Sun’s JRE (and in the sun-java6-bin package):


dgd@cor$ dpkg -S $(locate libnpjp2)
sun-java6-bin: /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386/libnpjp2.so

You can test the results by going to Sun’s Test Page.

Looking at Ubuntu’s bug lists, this bug is related to getting IcedTea Java plugins working. The Google Chromium folks noticed this as well in a bug report of their own.

The problems with IcedTea are related to the fact that the plugin is either in a unsupported plugin format, or more recently, linked against libraries that are not found when running Google Chromium.

Sun’s JDK with libnpjp2.so works just fine; I’ll stick with that.

Three Technologies We Wish Were in Linux (and More!)

Recently, an AIX administrator named Jon Buys talked about three tools he wishes that were available in Linux. Mainly, these technologies (not tools) are actually part of enterprise class UNIX environments in almost every case.

One was a tool to create a bootable system recovery disk. AIX calls the tool to do this makesysb; in my world – HP-UX – this is called make_tape_recovery. In HP-UX, this utility allows you to specify what part of the root volume (vg00) to save and other volumes. Booting the tape created from the make_tape_recovery utility will allow you to recreate the system – whether as part of a cloning process or part of a system recovery.

Another technology missing from Linux is the ability to rescan the system buses for new hardware. In Jon’s article, he describes the AIX utility cfgmgr. HP-UX utilizes the tool ioscan to scan for new I/O devices. Jon mentions LVM (which has its roots in HP-UX) but this does not preclude scanning for new devices (as any HP-UX administrator can attest).

Jon then discusses Spotlight (from MacOS X) and laments that it is missing from Linux. Linux has Beagle and Tracker, and all are quite annoying and provide nothing that locate does not – and on top of this, locate is present on AIX, HP-UX, Solaris, and others. I for one would like to completely disable and remove Spotlight from my MacOS X systems – Quicksilver and Launchbar are both better than Spotlight. In any case, all of these tools don’t really belong on an enterprise-class UNIX system anyway.

As for me, there are some more technologies that are still missing from Linux. One is LVM snapshots: while they exist in Linux, they are more cumbersome. In HP-UX (the model for Linux LVM) a snapshot is created from an empty logical volume at mount time, and the snapshot disappears during a dismount. In Linux, the snapshot created during logical volume create time (whatever for??) and then is destroyed by a logical volume delete. The snapshot operation should mirror that of HP-UX, which is much simpler.

Another thing missing from Linux which is present in every HP-UX (enterprise) system is a tool like GlancePlus: a monitoring tool with graphs and alarms (and the alarms include time-related alarms).

Consider an alarm to send an email when all disks in the system average over 75% busy for 5 minutes running. This can be done in HP-UX; not so in a standard Linux install. There are many others as well.

Personally, I think that Performance Co-Pilot could fill this need; however, I’m not aware of any enterprise class Linux that includes PCP as part of its standard supported installation. PCP has its roots in IRIX from SGI – enterprise UNIX – and puts GlancePlus to shame.

Perhaps one of the biggest things missing from Linux – though not specifically related to Linux – is enterprise-class hardware: the standard “PC” platform is not suitable for a corporate data center.

While the hardware will certainly work, it remains unsuitable for serious deployments. Enterprise servers – of all kinds – offer a variety of enhanced abilities that are not present in a PC system. Consider:

  • Hot-swappable hard drives – i.e., hard drives that can be removed and replaced during system operation without affecting the system adversely.
  • Hot-swappable I/O cards during system operation.
  • Cell-based operations – or hardware-based partitioning.

For Linux deployment, the best idea may be to go with virtualized Linux servers on enterprise-class UNIX, or with Linux on Power from IBM – I don’t know of any other enterprise-class Linux platform (not on Itanium and not on Sparc) – and Linux on Power may not support much of the enterprise needs listed earlier either.

What are your thoughts?

Are MUDs and MOOs dead?

I was never one for playing with MUDs (Multi-User Dungeon) or MOOs (MUD, Object-Oriented). Yet, the retro feeling of being in a MUD or MOO is amazing, and I never have tried it before. (Note: users can program in a MOO!)

MUDs and MOOs are text-based adventures, but on a remote server and multi-user. Some are purely game oriented, and some are social – and many are both. If you liked Zork, you’ll like MUDs and MOOs – although Zork and its descendants have a more powerful language parser.

On a whim, I went for it – why not? – and logged into perhaps the oldest MOO around: LambdaMOO. I was unprepared for how much it was like Zork and the other text adventures I’ve known – and also how much it could be like being in IRC (but in a world, not a “room”).

Granted, one has to be careful – many MOOs and MUDs may not be suitable for children, and I wouldn’t look for technical assistance there – though you may find it.

If you want a fun romp, go check out LambdaMOO. You can use telnet or a graphical client like GnoeMoe (part of the Ubuntu repositories). LambdaMOO is at lambda.moo.mud.org and port 8888.

You might even find me there – or maybe not…

Apache Tomcat 7 Released

Apache Tomcat 7 was just recently announced – or more specifically, Tomcat 7.0.0.

Apache Tomcat 7 is the first release of the 7.x series, and thus the Apache Group does not recommend adopting it for business use yet. The code changes that went into Tomcat 7 are so extensive that they would like to have some real-world (but not production) testing first.

Documentation for Tomcat 7.x is available, and Tomcat 7 has its own dedicated download page as well.

Tomcat 7 is the first version to support Servlet 3.0, JSP 2.2 and Expression Language (EL) 2.2.

Java SE 6 is required to run Tomcat 7, but the JDK is not needed; since Tomcat 5.5, only the JRE is required as Tomcat comes bundled with the Eclipse JDT Java compiler to compile JSPs.

OpenVMS runs Tomcat as part of the Secure Web Server (SWS) product. HP-UX has Tomcat as well as Apache Cocoon (now at version 2.2.0 and with a 3.0 Alpha out). Ubuntu has both Tomcat 5 and Tomcat 6.

I just hope that adoption of Tomcat 7 does not follow the pattern of KDE; KDE 4.0 was roundly taken up by all major KDE platforms in spite of the warnings given by the KDE team. Yet, I expect Tomcat 7 to be more reliable than KDE 4 was.

If you have questions about Tomcat, you could always go to ServerFault and ask away. However, there is also a Tomcat-specific source – TomcatExpert.com. Why not try both?

Why Java is the Future for OpenVMS

Support for Java in OpenVMS has increased over the years, and now Java for OpenVMS on Integrity is part of the basic system, and includes Java JDK 6.0 and JRE 6.0.

Installing the Secure Web Server (SWS) – based on Apache – you also get Tomcat and Perl for free.

As long as OpenVMS remains viable, I personally expect both Perl and Java to flourish on this platform. Especially, when not using Perl for typical administration tasks, I expect that Java will be available for more powerful duties.

I would even expect to be able to put things like Stripes, Spring, or even Scala and Lift onto OpenVMS. With the portability of Java, one could potentially just copy over class files, Java archives, or even web application archives and expect things to (mostly) work.

The support for both Perl and Java on OpenVMS makes for an exciting time – and Tomcat to boot.

Share your experiences with Java on OpenVMS…

Unattended Ubuntu Installations

Michael Reed wrote a nice tutorial for Linux User and Developer about unattended Ubuntu installations. Ubuntu aso has excellent documentation on the booting process.

Unattended installations are a boon to system administrators, or anyone who needs to install systems several times a month or so.

When an installation is preconfigured – especially using the network – an administrator can start the installation then go do something else. Productivity increases dramatically. If you have many systems to install – you can start all of them and leave them to finish on their own while you complete other tasks.

An unattended installation also leads into systems being identically configured, providing for easier administration and easier debugging. If systems are hand-crafted, then replicating the system (such as hardware upgrades or restores) will be harder – or more likely, impossible.

Since Ubuntu is based on Debian, the original preseed configuration tool is available; however, the excellent kickstart (and anaconda) program from Red Hat was adapted to Ubuntu. Preseed handles more options, but kickstart offers its own advantages as well. They can be used together for installations.

A whitepaper from Canonical (Automated Deployments of Ubuntu, by Nick Barcet in September 2008) describes in easy-to-read detail all the possibilities of unattended installations with preseed and kickstart. While the whitepaper discusses these things in context of Ubuntu 8.04, it is still a valuable resource in concert with the official Ubuntu install documentation.

The files required for booting from the network are available from Ubuntu mirrors; be sure to get the right one for your architecture and Ubuntu version (this discussion assumes ix86 and Ubuntu Lucid Lynx).

An abbreviated description of the process to set up for kickstart is this:

  • Set up an HTTP server (web server).
  • Set up a DHCP server.
  • Set up a TFTP server.
  • Set up a NFS server.

Once these three servers are up, you are more than half-way there. The kickstart file will be placed on the web server for the unattended installations.

Configure the DHCP server to use the pxelinux.0 file for the boot loader, and from the appropriate TFTP server. The boot files have to be located on the TFTP server in the appropriate locations.

Make sure, too, that all of the files necessary for installation – the entire distribution – is available via NFS or via the Internet. Once the boot loader is started, and the Linux kernel is loaded, all of the packages will be downloaded from this source.

Best thing to do is to test the autoinstalls on a virtual machine if possible, a scratch machine if not – and test until the installs are clean and unattended. Do this before your boss says you need to get that install done pronto!

Check the documentation for details; I’m currently setting up Lucid Lynx and will provide complete details later.

Death via Design by Committee

I’ve always noted this in the past: those designs that are designed by a committee seem to be, more often than not, to be a conglomeration of ideas rather than something revolutionary. Smashing Magazine has an article about design by committee which seems very apt and on-target.

Examples of both design by committee and its contrast abound in the software industry, present and past. Revolutionary items written by one person include:

  • The Apple II. Designed by Steve Wozniak.
  • The Merlin Assembler. Written by Glen Bredon, and became the pre-eminent 6502 assembler.
  • BDS C. A one-man project by Leor Zolman which broke all the rules for compilers and bested them because of it.
  • Puppet. Written by Luke Kanies.
  • Linux. Written (then coordinated and directed) by one man: Linus Torvalds.
  • OpenBSD. Certainly not written by only one person – not even from the beginning – but OpenBSD has always been one man’s dream (and direction): Theo deRaadt.

Likewise, ideas that were designed by committe abound also. I love the quote from Michael Arrington of TechCrunch, from an article he wrote:

And when too many people have product input, you’ve got lots of features but no soul.

Consider these products by committee:

  • COBOL.
  • PL/I.
  • Ada.
  • CORBA.

Rod Johnson, the founder of the Spring Framework for Java, refered to this as the Complexity Industry. He spoke about the development of Java at QCon in December of 2009. Note that the Spring Framework is known for its simplicity.

If you are a Java developer, listen to Rod’s talk in its entirety; it’s wonderful. The talk about design by committee starts at about 27:00.

True revolution is done through the individual, not the committee.

For a more light-hearted look at design by committee, see this video about designing a stop sign…

Follow

Get every new post delivered to your Inbox.

Join 36 other followers