xmotd: Writing Free Software

One programmer's experience developing freely available software for Linux.
Conclusions

“A work of art is never complete; the artist merely abandons it.” --Unknown

Three years (and 14 releases) later, I thought xmotd was approaching completion; i.e., every option that could possibly have been added had been. Since December 1996, however, more suggestions (which will be incorporated into version 1.15 of xmotd) were submitted, including one for running the HTML version within an Intranet and having it spawn a web browser when an URL was clicked. I should note that xmotd gained popularity when it began supporting HTML. (See Figure 3.)

Figure 3. HTML Version of xmotd

My advice to eager developers is, first, not to begin writing software without ascertaining whether a similar package exists (web space can be effortlessly searched these days); if it exists, consider extending it rather than starting from scratch. Second, write the software with full intent of incorporating user suggestions (don't ignore your users) and bug fixes following the first release (version 1.0 is never the last release). Finally, write software that keeps pace with advances in technology (e.g., Java) or face obsolescence. People will begin to use software only if it satisfies their needs and will continue using it only if it evolves to accommodate their changing needs. Persevere until the day you write software that receives the world-wide acclaim we all dream about.

Acknowledgements

Per Abrahamsen, Derek Fedak and Lars Magne Ingebrigtsen shared insights that helped shape an early draft of this article. The author's photograph comes to you courtesy of Jason Naughton whose perseverance got the Sun video camera working. The Peanuts quote is by Charles Schulz, copyright United Feature Syndicate.

  1. The significance of the short coding time is that I use a template file, which contains a skeleton X program including the necessary include statements, application defaults, accelerator and X resource structures, a main() function with XtAppInitialize() calls and more.

  2. eX refers to the defunct X Consortium (disbanded in December 1996).

  3. The Emacs editor embodies this principle to perfection: every character on the keyboard can be re-mapped.

  4. -usedomainnames may be used at sites where home directories are shared (NFS mounted) across various domains and the message of the day applies across the whole network.

  5. Insanely popular software like the Emacs editor, GNU/Linux, the GNU C compiler, Perl and the X Window System does not need a home-page—its popularity makes it ubiquitous. It will be archived on any major ftp site.

Resources

Luis Fernandes (elf@ee.ryerson.ca) is a hacker. Winning the honourable mention in Sun's Alpha Java Programming Contest was an indescribable moment of his life. His definition of fun includes hacking X and Java; listening to music (composed before 1800 and played on period instruments, in particular); reading unusually good books and generally doing anything creative.

______________________

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix