Dear DDJ,
The People's Computer Company (the original launching pad for DDJ) and its spin-off, the storefront Community Computer Center, are fast approaching 30 years of age. The exact date is a bit hard to pin down since the incorporation paperwork lagged the reality of the organization a bit.
At the DDJ 25th anniversary dinner, Bob Albrecht (aka "The Dragon") and I were chatting. After a spate of "whatever happened to so and so" we decided a repository of information about PCC alums was needed. So many pivotal people have moved on and dropped off our collective radar.
To that end, I've put together a PCC Alumni web site (http://sumeru.stanford.edu/pcc/), a sort of virtual reunion. The site features a form that lets us easily construct a minipage about PCC friends and family to be linked to their name on the alumni list. Anyone who self-identifies qualifies. We are trying to locate staff members (many of whom slipped off the radar screen ages ago), volunteers, friends, contributors to PCC publications (PCC Newspaper, Computer Music Journal, People's Computers, Dr. Dobb's Journal, Recreational Computing), subscribers, visitors to the Community Computer Center, participants in ComputerTown USA, and anyone else willing to do so to write a short essay identifying what their relationship to PCC was, and what has happened to them in the intervening years.
The site currently includes a partial list of PCC alumni but it is incomplete. Lots of people with stories to tell are missing; records are missing and memories are faulty.
The real problem is finding people after all these years. Anything DDJ readers can do to help us find missing exPCC folks is much appreciated. Questions and comments should go to me, Dennis Allison at [email protected], and to Bob Albrecht at [email protected].
Dennis Allison
Being Prepared for Intrusion
Dear DDJ,
I enjoyed the article "Being Prepared for Intrusion" by Dan Farmer and Wietse Venema (DDJ, April 2001). Noted security guru Marcus Ranum recently spoke at one of our Linux Users Group meetings on the subject of "burglar alarms," which tied in very nicely with this article. One of the alarms he mentioned was replacing "ls" with a command that did something else write to a log, send an e-mail, or even shutdown the machine. Marcus's point was "What's the first command someone usually does when they login to a machine--ls." Sure enough, Figure 3 in the Dan and Wietse's article confirmed that point again. The slides of Marcus's CALUG presentation are available at http://www.calug.com/burglar-alarms.pdf.
Randy Schrickel
BetterBASIC
Dear DDJ,
I'm looking for a betterBASIC run-time module to create standalone executable code from betterBASIC 2.18 source. I know this is very old, circa 1985. Can any DDJ [readers] help me out?
Reid Womack
Linux versus BSD
Dear DDJ,
I enjoyed the April 2001 edition of DDJ, in particular Al Stevens's well-written and interesting "C Programming" column. Al says the "only viable alternative to using Windows on the x86 platform is Linux." I am not sure what Al's exact definition of "viable" is, but he does mention some of his particular needs: a working LAN, high-end sound card support, MIDI and audio applications, dial-up support, cable modem support, and a full software development environment for network, driver, and kernel programming.
Although he briefly mentions BSD, I'd like to remind DDJ readers that the freely available FreeBSD, NetBSD, and OpenBSD operating systems are alternatives to Windows (and Linux).
In the "Letters" section of the same DDJ issue, Richard Stallman briefly explains that the operating system commonly called "Linux" is a combination of the Linux kernel and GNU software. In fact, the complete operating systems based upon the Linux kernel are made up of a variety of open source and free software beyond just GNU, such as Perl, Apache, Tcl/Tk, PostgreSQL, and XFree86.
The majority of this software considered to be for Linux-based operating systems runs on (and a lot is developed on) BSD systems. This includes the same "GUI desktops," a variety of full-featured development environments, and a full suite of utilities for networking, including dial-up and cable modem support.
The average user and some admins will not even notice any difference between BSD and Linux.
For those not familiar with BSD, here's a quick summary: The BSDs have a great lineage with over 20 years of development. Many networking technologies and implementations, including the first (and still the most popular) open-source TCP/IP implementation, were created as part of BSD. A BSD operating system includes a kernel and a full set of UNIX tools, networking utilities, and many other programs. This BSD-licensed code can be freely modified and used in proprietary and commercial software. BSD-based operating systems and code run on numerous architectures. The BSDs include a variety of other freely available software in the base operating systems, plus the BSDs offer huge collections of easy-to-install software packages. BSD is primarily considered for servers (BSD powers the most popular website and ftp server in the world). In addition, the BSDs are great for the desktop user. I appreciate that DDJ has actively promoted BSD in the past.
And I appreciate that DDJ covers Linux, open source, and free software. But, please be sure to not use catch-all terms or phrases that may cause misinformation and definitely confusion. For example, Al mentions "Linux desktop" and "Linux browser;" most likely this "desktop" and this "browser" are available for other nonLinux-based operating systems, including commercial operating systems.
Just as some believe it is wrong to call a complete Linux kernel-based operating system just "Linux," many feel it is wrong to imply and assume that Linux is the only or main alternative to Windows or the only or main operating system built upon open source and free software. Please remember that most of the community that freely provides source code does not develop their software to just be usable solely for Linux.
Readers can learn more about BSD at http://www.netbsd.org/, http://www.freebsd.org/, http://www.openbsd.org/, and http://www.bsdnewsletter.com/.
As for Al's need for audio: The BSDs do support sound cards and a variety of audio and some MIDI applications are available. Depending on the definition of "high-end," some high-end sound cards are supported. Hopefully soon, further support for high-end sound cards will be available. Due to the nature of UNIX-like operating systems in general, serious MIDI support is lacking. I understand that Al is a musician and an audio application developer, so it is possible his current sound card, audio, and MIDI needs are not currently available in Linux or BSD.
Jeremy C. Reed
Diffie-Hellman to the Rescue
Dear DDJ,
As an NRA member and new subscriber to DDJ, I was somewhat bemused to read Michael Swaine's diatribe against the NRA ("Swaine's Flames," DDJ, March 2001) in my very first issue. I'm not sure what purpose it served other than to demonstrate once more the truism that highly intelligent people often maintain ideas about the real world that float unmoored in a sea of scholarly abstractions. Since Michael takes issue with the Second Amendment, he will be happy to know that our founders included in the Constitution a means for its repeal, which he is free to pursue at his leisure. Michael says later in his column that "...the Feds aren't so dumb in classifying encryption as an armament." He may or may not be correct, but I couldn't help but chuckle at the image of him defending his home (and family?) from an intruder while brandishing...a Diffie-Hellman algorithm!?
Ashley Tate
The Future of Programming
Dear DDJ,
I enjoyed Eugene Eric Kim's article "The Future of Programming" in Dr. Dobb's Software In the 21st Century (http://www.ddj.com/articles/2000/0013//documents/ddj0013a/). Some of the statistics on reuse are interesting, along with comments he made about writing good code.
My own thoughts are that more tools may make code generation faster, but not necessarily better. My observation is that good engineers are disciplined (that's the key word). They think through what they're going to do, they take the time to look for libraries so they don't reinvent the wheel, and they comment their code knowing that it will help themselves and others in the future. Good engineers want to get a job done quickly, but may cringe at short cuts. A bright engineer with poor discipline can make a lot of work for other people, yet an average engineer that sticks to good practices may never be the hero but will produce good results without leaving a mess for someone else to clean up.
I do disagree that comments clutter code. I think Java docs are a huge leap forward. Specifications almost always get outdated from the code that represents them, making the documentation less reliable and therefore less usable. Javadocs put it all in one place, which helps me because I don't have to take the time to go somewhere else to update the documentation for the external interface. Plus, the resulting documentation is formatted nicely and gives users all they need to use the components.
Using XML (or whatever) to create smaller granularity of compilable units does seem like part of the solution to compile speed. As you mentioned, why recompile everything just because a comment or single function changed? However, using XML to separate code from documentation I wouldn't be sold on; if engineers don't have the discipline (there's that word again) to document their code now, another tool won't produce that habit.
Paul Munsey
DDJ