Saturday, January 27, 2007

Converted from Windows XP to Ubuntu Linux

I'm now running Ubuntu Linux 6.10 (Edgy Eft) on my Dell Inspiron 6000 notebook computer. I have named this computer Mercury (as opposed to Pericles, the Ubuntu web server that I've been writing about thus far.)

There were a couple pieces of hardware that I had to tinker with in order to get it working or optimized:
  • Wireless: BCM4318 AirForce One 54g 802.11g Wireless LAN Controller
  • Graphics: Intel Mobile 915GM/GMS/910GML Express Graphics Controller
Here is a list of the software I'm running on the system so far. This list isn't exhaustive, but basically includes things I frequently use and things that I had to deliberately install:
  • Gnome (desktop environment)
  • Mozilla Firefox (web browser)
  • Evolution Mail
  • Kopete (with MSN, Google Talk, Yahoo! Messenger, AIM, ICQ, and IRC connections.)
  • Tomboy Notes (a Wiki-like sticky note applet)
  • gnubiff (a tray notification tool to make a penguin dance if I have any email.)
  • xmms (music player)
  • Totem xine (movie player)
  • Codecs for virtually all Windows and Macintosh audio and video formats and full DVD playback.
  • wine (a windows API replacement layer to support a few windows apps that I still use.)
  • VirtualDub (a GPL'ed video manipulation program for Windows. I run this through wine.)
  • Internet Explorer 6 (I use this to test the websites I develop for my business. It also runs through wine, and I installed it using the very convenient IEs4Linux script.)
  • vmware player (I have it set up to boot off of a 6GB raw SCSI partition, with the MBR and other partitions mapped to zero so they cannot be affected by the virtual machine. I use this to run a few design tools that I don't have functional Linux equivalents for yet.)
  • Compiz (eye candy for Linux.)
I will be following this up with a series of posts to explain how I have already (or will yet) accomplish any non-trivial configuration tasks.

Friday, January 26, 2007

Using Standard Dates

Working on a project recently, I received feedback from another team member that "all date formats, whether for entry or exhibit, should be in a readable & usable format, i.e. mm/dd/yyyy." Although offense was probably not intended, I was extremely disappointed and even a bit insulted by this request, as I had taken care to represent date formats in a consistent, readable, and usable way throughout the project, or at least to choose tools that did so by default.

While not strictly an "Open Software" issue, I think usability issues and internationalization issues are often in the interests of Open Software advocates, so I thought I'd take a bit of time to discuss the ISO Date Format, why it is important, why and where you should consider using it and teaching other people about it.

For those who have not been officially introduced to it yet, the international standard (iso) date format is:

YYYY-MM-DD

YYYY is the year on the Gregorian calendar, MM is the month from 01 to 12, and DD is the day of the month from 01 to 31.

For example, 2007-01-26 represents the 26th day of January, 2007.

Prior to standardization, common ways to represent this date are numerous, including:
  • 1/26/07
  • 26/1/07
  • 07/1/26
  • 26.1.2007
  • 26-JAN-2007
  • 26-January-2007
Each of these included variants with either slashes, hyphens, or periods. Sometimes the usage of a particular one of these formats focused around a geographic location, such as the M/D/YY which was somewhat prevalent in the United States, and other times they would focus around groups with special interest or profession.

The trouble with nonstandard dates is that they cannot be interpreted in a consistent manner. It becomes especially problematic when the day of the month is less than 12, and the month is rendered numerically, making the month and day field entirely indistinguishable.

[Tip: In addition to being more legible, the ISO format also has the benefit of being able to be sorted chronologically in its raw format by any alphanumeric sorter, such as in a spreadsheet.]

With the advent of the Internet era, we now have instant communication around the globe. The ISO date format is an absolute must in order to achieve effective and expected communication in regards to dates.

There are still some places where it would be appropriate to use other date formats, for example:
  • In a localized or personalized formal invitation such as a wedding or graduation announcement where a verbose format such as "Tuesday, the first of January, two thousand eight" would be appropriate.
  • In any educational material instructed someone how to interpret legacy date formats, or for use in examples to teach someone how to read ISO date format compared to their historic format.
  • In a dynamic environment (such as a preferences page) where the reader (not the publisher) has specifically requested their date to be presented in a non-standard format.
  • Interoperation with legacy applications or that are unable to be upgraded at the time. Even in this case, ISO should also be supported so that you do not become the reason the other application is unable to be upgraded, and visible representations outside of these legacy communications should be translated back into the standard format.
Anything other than these examples only serves to create confusion as the ISO date format comes into greater use.

When the opportunity presents itself you should not be shy, but be prepared to teach others about using the ISO date format, especially if you or they are in an industry where they transact business or correspondence on the Internet. Only a few moments of explanation can save them much confusion or embarrassment that could result from misinterpreted dates or missed appointments.

For more information on ISO 8601 date format see:

Monday, January 8, 2007

Ubuntu Edgy Eft Xvnc Disconnect Problem

Diagnosis of Problem:

I installed the Automatic Updates on Ubuntu Edgy Eft recently, sometime around January 06 (2007-01-06), and after a reboot, my Xvnc running through xinetd stopped receiving connections. It disconnects immediately after connecting, or immediately after receiving the password. Log files turn up almost nothing, there is a "xinetd[nnnn]: warning: can't get client address: Transport endpoint is not connected" error showing up in /var/log/daemon.log and /var/log/syslog and upon telnetting to the vnc port I received nothing but RFB 003.008 (the usual VNC protocol greeting) followed by an immediate drop of the connection. xinetd does pass the connection to VNC, we know this because the greeting is given, but an examination of the running processes will not show Xvnc in the list because it closes immediately after opening.

Running Xvnc server manually with the appropriate options and connecting to it with vncviewer resulted in a gray screen (so-called "root-weave") with an X or a watch cursor on it, and the gdm (Gnome) session never starts.

The Solution:

Temporary solution: This happened because of an upgrade in the vnc4server package. Run synaptic package manager, search for vnc4server, click on it, go to Packages, Force Version and choose the previous version. Downgrade to the previous version and you should be alright for now. Wait until the next version comes out before you attempt to update this package again.

How I Found the Solution:

It took me many hours, but I found the answer on https://launchpad.net/ubuntu/+source/vnc4/+bug/78282

The person who first reported the bug incorrectly listed the date of the upgrade as 2006-01-06 (happy new year feranick).

I hope this helps! Drop a comment to let me know if this post eased your pain.