This is one of the first computer graphical demonstrations, from the year 1975 on a vector graphics display. It’s author, John Witney, is considered by many to be the father of computer graphics.

It looks like a bad early-90s screensaver now, but in 1975, this was pretty damn impressive.

Anyone who may be looking to upgrade, or install a new server and require Zend Optimizer to run Zend Encoder / Zend Guard encoded programs:

Zend Optimizer 3.3.0 is broken. It has a broken SHM setup calls in it, which cause it to execute sometimes, but abort early. This breaks ‘interactive’ mode, as well as pipes.

I have confirmed this behavior on Linux (32 bit) and Linux x86_64 bit platforms.

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b5dfbf94000
lseek(0, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
close(0)                                = 0
munmap(0x2b5dfbf94000, 4096)            = 0
ioctl(-1, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffaeb6b7a0) = -1 EBADF (Bad file descriptor)
mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b5e0189c000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b5e0199d000
read(4294967295, 0xd75cb0, 8192)        = -1 EBADF (Bad file descriptor)

Revert, or stick to Zend Encoder 3.2.8 until this is resolved.

As this new MySQL bug shows, there is a difference between supported, and cutting edge.

Many Linux administrators treat their system as though having the latest version of a program is always the best. This is not always – and is usually never true for production environments.

Yes. I am advocating “If it ain’t broke, don’t fix it.”:

The whole concept of production is for stability; that’s why you never want to run your testing-grade code on a production system. If you have security issues, release, and test this in your testing environment BEFORE you use it live.

Today, they have finally rolled out a patch into MySQL 5.0.50, InnoDB was broken for sorting in descending order in 5.0.48. I can only imagine the chaos if all administrators utilized the same ‘Linux Upgrade Path.’

I find that sometimes I revert to the older, simpler tools, despite the fact that there are many newer ones available. Why? They’re standardized. They’ll be everywhere. This means you can almost guarantee they’ll be available for you. This, as they say, is a good thing.

Such is the case of ‘xmore.’ xmore is a simple program that provides a scrolling window you can read text in on an X11 display. It’s tiny, and considered to be a core part of X.

I was a bit shocked when I discovered that the default xmore package in Ubuntu dropped core. It was having issues with the Xaw library. So, I looked around, and found a patch for Debian, and modified, then applied it to Ubuntu’s source package.

If you want to install my prebuilt (unofficial) package, it’s available, here’s how to get, and make sure it’s good:

I’ve signed my build with dpkg-sig:

%wget http://www.holwegner.com/files/xmore_1.0.1-0ubuntu2_i386.deb

You will want to get my key and add it to your keyring:

%gpg --keyserver wwwkeys.eu.pgp.net --recv-keys F8C314E3
gpg: requesting key F8C314E3 from hkp server wwwkeys.eu.pgp.net
gpg: key F8C314E3: public key "Shawn Holwegner (GPG Signing Key) <me@mydomain.com>" imported (edited to thwart spambots)
%gpg --armor --export F8C314E3 | sudo apt-key add -
OK

Now, you can check my signature; I’ve tagged this release as ‘feisty’ (Note that I have left the response of GPG here so you can ensure the values match):

%dpkg-sig -c xmore_1.0.1-0ubuntu2_i386.deb
Processing xmore_1.0.1-0ubuntu2_i386.deb...
GOODSIG _gpgfeisty 743D4D271144FB13C788D9F3B4B33515F8C314E3 1184151679

Now, install it:

%sudo dpkg -i xmore_1.0.1-0ubuntu2_i386.deb

Enjoy having a functional ‘xmore’!

However, if you want to install your own rebuild, here’s how.

#Make sure we have all of our required utilities
%sudo apt-get install build-essential wget patchutils fakeroot
#Make sure we have the headers and libraries required
%sudo apt-get build-dep xmore
#Get the source.
%sudo apt-get source xmore
Now, get my patch at https://bugs.launchpad.net/ubuntu/+source/xmore/+bug/72560/comments/6.
# Apply patch:
%cd xmore-1.0.1; sudo patch -p1 < ../path/to/saved/patch.diff
# Build xmore
%fakeroot debian/rules binary
# (Re) Install xmore
%sudo dpkg -i ../xmore_1.0.1-0ubuntu1_i386.deb
# Clean up.
# cd ..; sudo rm -rf xmore*

Remember that this will be divergent, so you’ll want to add it to a ‘hold’ so it doesn’t get overwritten next time you do an update, this can be done with:

%echo xmore hold | dpkg --set-selections

Hopefully this entry will help others plagued by the same problem I was facing.