Sydney S. Weinstein, CDP, CCP is a consultant, columnist, lecturer, author, professor, and the President of Myxa Corporation, a consulting and contract programming firm specializing in databases, data presentation and windowing, transaction processing, networking, testing and test suites, and device management for UNIX and MS-DOS. He can be contacted care of Myra Corporation, 3837 Byron Road, Huntingdon Valley, PA 19006-2320, or via electronic mail on the lnternet/USENET mailbox syd @ Myxa.com (dsinc!syd for those that cannot do Internet addressing).
Tired of organizing your Audio CDs? Really dislike some songs so much you want to pretend they were never even on the CD? Want to sing along and see the lyrics displayed for each song as it plays? Turn your computer into one of the world's most expensive CD players. All it takes is Motif, UNIX, a SCSI-2 CD drive, and xmcd from Ti Kan <ti@bazooka.amb.org> as posted in comp. -sources. unix Volume 21, Issues 63-75. While the program does not pipe the audio back across the SCSI bus to the computer for processing, it does control the playing of audio CDs using the computer's CD-ROM drive and with your audio system providing the amplification and speakers (i.e., you still connect the audio out of the CD-ROM drive to the audio in of your stereo).
So what can this multi-thousand-dollar CD player do? At this price you'd expect stop, play, pause, next/previous track, next/previous index, fast forward/reverse with audio sample and eject. Any CD player can do that. What does using your computer add?
xcmd requires X11R4 and Motif 1.1 or later (works fine with X11R5 and Motif 1.2) and an ANS1 C compilation environment. It runs on many UNIX systems and supports many of the CD-ROM vendors' extensions for playing audio CDs. However, xcmd does require that the CD-ROM drive support the SCSI-2 specifications for audio-based commands.
- Direct track access
- Volume control
- Shuffle (random) play
- Repeat play
- Sample: play a few seconds of each track
- A->B play: repeat play a selectable point A to point B
- Eject inhibit
- Track program: play the tracks in custom order
- CD Database: store CD titles/track titles in a database, and associate each disk with a play program; display the current playing title/track information along with arbitrary text associated with each disk and/or track, such as band information, and lyrics (note you must enter this information yourself)
- Track/index/time display
Calendars and More for X
Another highlight of the comp. sources.x group: Peter Collinson <pc@hillside.co.uk> contributed xcal, posted as Volume 21, Issues 76-83. xcal is a calendar program that generally sits on your screen, displaying the current date. Hitting the left button in the date window displays a strip showing the current month with one line per day. The daily details from each day's detail file will be displayed in the strip so you can see what you have to do on each day. You can edit daily details by poking at the appropriate day and getting an edit window. Daily details can contain times, which can trigger screen alarms. xcal supports alarms that fire to display a message or to run a command at a particular time. A top-level button on the date strip gives you access to a memo pad where you can store things that you should be doing. This panel also shows all the current day's information so a single button click can be used to see all of the day's appointments. Using a derivative of pcal, xcal can generate PostScript-formatted calendars from its files.Paul Falstad <pf@z-code.com> contributed xmine, an X11-based version of the popular PC game Minesweeper, posted as Volume 21, Issue 24. The object of xmine is to place flags on mines without exposing them. While xmine is mostly Xlib-based, it does require Motif libraries for its menus. Patch 1 appeared in Volume 21, Issue 84 to fix a resizing bug.
Another of the more unusual clocks is t3d from Bernd Paysan <paysan@informatik.tu-muenchen.de> as posted in Volume 21, Issue 86. Time 3D is a clock that uses flying balls to display the time. The balls move and wobble around to give you the impression that your graphic workstation, with its many XStones, is doing something.
A version of an X routing program that supports pop-up confirmation of each display creation was contributed by Michael Patton <MAP@BBN.com> in Volume 21, Issue 89. xforward l.0a is an enhancement of Version 1.0 obtained from DEC CRL. xforward provides a user-level X11 forwarding service which can be useful if there are IP network topologies that provide non-transitive routing (e.g. routers that implement policy packet screening). Clients request to display on a fictitious display. When the open request is received by xforward it pops up a query on the user's real display asking for confirmation, and if granted, xforward passes data for that connection between the fictitious display and the real display. xforward supports multiple display connections and timeouts on the connections to close idle displays.
Andrew Myers <andru@tonic.lcs.mit.edu> contributed version 3.1 of xsokoban as Volume 21, Issues 98-104. xsokoban is a tricky puzzle game with 90 difficult levels to solve. Improvements in this version include color, built-in score display, extensions to the mouse-based user interface and of course, bug fixes. The goal of xsokoban is to push all the round objects into the score area of each level.
UNIX Security
With all the recent break-ins on the Internet, UNIX security is a hot topic. Gene Spafford <spaf@cs.purdue.edu>, a long-time security expert on the Internet has contributed tripwire-1.1 to comp.sources. unix, posted as Volume 27, Issues 147-172. Quoting Gene: "With the advent of increasingly sophisticated and subtle account break-ins on Unix systems, the need for tools to aid in the detection of unauthorized modification of files becomes clear. Tripwire is a tool that aids system administrators and users in monitoring a designated set of files for any changes. Used with system files on a regular (e.g., daily) basis, Tripwire can notify system administrators of corrupted or tampered files, so damage control measures can be taken in a timely manner."Tripwire is a file integrity checker, a utility that compares a designated set of files against information stored in a previously generated database. Any differences are flagged and logged. When run against system files on a regular basis, any changes in critical system files will be spotted and appropriate damage control measures can be taken immediately. With Tripwire, system administrators can conclude with a high degree of certainty that a given set of files remain free of unauthorized modifications (if Tripwire reports no changes).
Christoph Pleier <pleierc@informatik.tu-muenchen.de> contributed distributed-c-2.1 as Volume 27, Issues 174-192. The Distributed C Development Environment is a collection of tools for parallel and distributed programming on singleprocessor, multiprocessor, and distributed UNIX systems, especially useful on heterogeneous networks of UNIX computers. The Distributed C Development Environment consists of a compiler for a distributed programming language, called Distributed C, a run-time library, and several useful tools. distributed-c-2.1 allows the the use of simple pointer types even on loosely-coupled systems. Dynamic structures such as linked lists or trees are passed between processes by passing the anchor of the dynamic structure. The run-time system automatically allocates heap space and copies the complete structure.
cron is the UNIX time-based scheduler used for running periodic commands to maintain the system. Paul Vixie contributed a new version (3.0) of his vixie-cron. Paul states: "It is essential that all systems using any previous version of this cron be upgraded, since there are three major security holes in all previous versions." Besides this, the other major difference between this and previous versions is support for the BSD-4.3 style/etc/crontab file with the extra field between the time specification and the command, to support a single crontab file for multiple user IDs. vixie-cron appeared as Volume 27, Issues 196 and 197 with patch 1 in Issue 206.
FTP from C
Oleg Orel <orel@oea.ihep.su> has written a simple C interface for the FTP protocol. This interface implements
FtpConnect(host), FtpLogin(user,passw,acct), FtpGet(File), FtpDir(filespec), FtpDebug(handler), FtpFullOpen(remote or local, read or write), FtpError(handler)and many other functions. It was posted in Volume 41, Issues 34-38 of comp. sources.misc.Still working on your morse code? morse is a morse-code practice utility for workstations containing audio hardware or running the X Window system. Contributed by Joe Dellinger <joe@montebello.soest.hawaii.edu>, morse appeared in Volume 41, Issues 43 and 44. morse can play what is typed, generate random text, and run at various beep frequencies and words per minute. It even supports a type-along-with-the-morse mode in which you are corrected automatically as you type.
Bram Moolenaar <mool@oce.nl> has contributed vim, an improved version of the UNIX text editor vi, posted as Volume 41, Issues 50-71. This version of his vi clone adds multi-level undo, command-line history, improved command-line editing, command type-ahead display, command-to-display yank buffers, ability to edit binary files, line-wrapping that can be switched off, a filename stack, customizability for understanding error messages from any compiler, display of current file name in window title, on-line help, and more. New features in version 2 include a wrap option to switch line wrapping on/off, an adjustable filename completion scheme more like other programs, automatic detection of CR/LF line separators, new abbreviation processing, a :make command for quickly jumping to errors, and many changes to make it more vi-compatible. In addition, the MS-DOS version uses BIOS calls for screen output, so ansi.sys is not required.
Youki Kadobayashi <youki-k@is.aist-nara.ac.jp> contributed wwfs, the WorldWide File System, or Waku-Waku File System, a massively distributed file system built upon existing anonymous ftp services. The key components of WWFS are the following: a daemon called "csd" (a multi-protocol hub for distributed filesystems), NFS-FTP gateway software, and an Internet file cache. wwfs requires no kernel modifications and supports migration from HTTP and Gopher protocols. Patches to add wwfs support to NCSA Mosaic are included. wwfs can be found in Volume 41, Issues 86-107.
On the patch front: The dist utility I wrote about before is still undergoing development and many new modules have been posted. The patches are: Patch 15, Volume 41, Issue 45; and Patch set 16-22, Volume 41, Issue 112-118. All patches are contributed by Raphael Manfredi <ram@acri.fr> and require Perl to execute.
mailagent, a flexible mail filtering and processing package received patch set 3-4, Volume 41, Issues 47-48 and patch set 5-6, Volume 41, Issues 124-125. "Mail Throwers" as they are often called are very useful utilities to pre-sort and handle much of the mundane electronic mail you receive.
All Quiet
In case you didn't notice, things have been pretty quiet on the net over the winter. No postings at all appeared in comp.sources.reviewed or comp.sources.games, and the rest of the groups were pretty quiet. Perhaps the spring thaw will thaw out more than just the weather.
Previews from alt.sources
Not as much new stuff appeared in alt.sources either, but here are just a couple of highlights of what's to come in the mainstream groups:Michael Lazarou <michaell@cogs.-susx.ac.uk> posted nem-1.0 on December 13, 1993 in two parts. nem takes a list of files and classifies them by looking at their Name, file Extension and Magic number (first two/four bytes). nem supports the grouping of several different magic numbers into the same file type. It can recognize compressed files and uncompress just the first part of the file to tell you what the uncompressed file would be.
A programmer extensible printf clone was posted by Heiner Marxen <heiner@drb.insel.de> on December 15, 1993 in 7 parts. His clone supports more conversions than printf and allows run-time mapping to add additional conversion functions.
Robert Joop <rj@rainbow.in-berlin.de> is beta trialing version 1.6 of psfilt, his ASCII-to-PostScript filter. It's a filter to turn various kinds of text into PostScript. psfilt understands C, C++, Perl, plus source makefiles and their comments. psfilt also understands different character encodings and special characters, and produces documents that conform to the document structuring convention comment format. psfilt was posted on January 2, 1994 in 12 parts with patches posted on January 4, 1994.