Today, Linux.com published my article on the Workrave desktop applet. Workrave helps prevent and treat Repetitive Strain Injuries (RSI), and I've been using it since July.
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
Summary: I am now using [email protected] as my outgoing email address and +1 (609) 997-0765 as my incoming phone number. My old email address and phone number continue to work.
Email
The stupid things people do was a frequent topic of conversation on the
night shift at my last job. My favourite co-worker, a former Human
Resources (HR) assistant, once told me people frequently use stupid
email addresses on their resumes and work applications. My co-worker
said she rarely, if ever, scheduled interviews with people who used
email addresses like [email protected] or [email protected]
even if they were otherwise highly desirable.
Avoiding using email addresses with negative connotations seems obvious, and I forgot about my friend's story -- until I sent an email I wanted taken seriously from my gnuisance.net domain.
Gnuisance is a great domain name for my personal hobby, spreading free software. I get positive comments about it all the time; even people who I buy from on eBay have commented. But a domain name with the word nuisance in it makes a terrible professional first impression.
Anticipating this dilemma more than a year ago, I setup a forwarding
address at one of my other domains, dtrt.org, that I could use for professional
communications. But when I sent that email I wanted taken seriously, I
forgot to change my outgoing email address in mutt. And I'm sure I'll forget again.
To circumvent my poor memory, I'm making my default outgoing email address [email protected]. All email to that address automatically forwards to my old @gnuisance.net address, and so I guarantee my old address continues to work; moreover, I'm happy to continue to receive your email addressed to my old address -- there is no reason to change my entry in your address book.
I've taken this opportunity to unsubscribe from most mailing lists I use. My original plan was to resusbscribe using my new address, but I've decided to delay resubscribing and see what life is like without mailing lists: the last time I wasn't active on a mailing list or USENET newsgroup, I was 12. (I just searched Google groups for posts under some of my old email addresses; I'm so embarrassed. The writings of teenagers should not be archived.)
Telephone
My cell phone is unusable at home. I don't get enough signal to maintain
a call for more than a few seconds. Finally annoyed enough to do
something, I signed up for Vonage and I activated
their simultaneous ringing feature: if you call me on my new line, +1
(609) 997-0765, both my voip and cell phone will ring. So if you expect
to call me while I'm not on the road, you should add the new number to
your phone book.
Please Ignore the Man in the Middle
Did you think of a man-in-the-middle attack while reading this post? If
so, have a cookie: you're smart and paranoid; I like that combination.
Feel free to validate this post by contacting me using my GnuPG key and my old email address.
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
I celebrated Software Freedom Day this year by giving a speech about the history, features, and costs of software freedom to an audience of about 70 people at the Philadelphia Area Computer Society (PACS). The event was co-sponsored by the New Jersey and Pennsylvania Ubuntu Local Communities. Below you will find audio recordings and a transcript of the speech; and at the very end of this article, you will find my acknowledgements.
Audio
The speech is a
44 minute long and 12 MiB Ogg Vorbis file.
The question and
answer session is a 21 minute long and 5.6 MiB Ogg Vorbis file.
Transcript
[Speech lightly edited; time codes corresponding to above Ogg Vorbis
file follow each paragraph]
Note: I will attempt to transcribe about five minutes of audio each day into this blog entry until everything, including all of the questions, are transcribed. The process should take about two weeks. Please find the first ten minutes below.
Ron Homer, President of PACS:
I want to introduce Dave Harding with [gnuisance.net] to talk about
software freedom day and free software and all that fun stuff.
{00:12}
Before [Harding gets] started: after the main meeting, in the cafeteria, you'll get a copy of the free software that we're promoting today. {00:25}
Dave Harding, keynote speaker:
He just stole my entire speech! [Audience laughter] {00:27}
``First they ignore you, then they laugh at you, then they fight you, then you win.'' Those are the words Mahatma Gandi used to describe the states of resistance to non-violent movements for change. {00:47}
This afternoon, I'd like to introduce you to one of those movements: the free software movement. The free in free software stands for freedom; it's the same free as in the terms free speech or free market. {01:00}
I'm pleased to tell you that the enemies of free software are very clearly fighting us, placing us only one step away from victory according to Gandi. But the enemies of free software have also ignored us and they've laughed us, and I want to start my speech by telling you about how we overcame those challenges. {01:20}
After you hear the history of the free software movement, you may want to join us, or you may just want to use the tools we created in order to create freedom for ourselves. Either way, I will tell you to what it means to join the free software community and I will do it as fairly as possible: I will tell you about the good parts and I will conclude my speech by telling you about the not-so-good parts. {01:40}
So now let's start with the history of the free software movement, which begins during the heyday of the microcomputer revolution. {01:50}
In 1975, the Altair went on sale. The Altair was an early microcomputer produced by a company called Micro Instrumentation and Telemetry Systems [MITS]; it was named after the original destination of the Enterprise in the classic Star Trek episode Amok Time. The Altair was a kit: you bought it and you assembled it yourself, and after you assembled it, there wasn't much you could do with it because the only way to program the Altair was to flip a set of switches on the front of it and program in machine language op-codes. {02:26}
A teenage entrepreneur saw that as an opportunity: he contacted MITS and he offered to provide them with an interpreter for the BASIC programing language. The BASIC programing language would let people program their Altair in something resembling English. That young entrepreneur, Mr. [Bill] Gates, got his deal with MITS, and MITS contacted all of their customers and said, ``we will soon be able to sell to you a copy the interpreter for the BASIC programing language'' -- which they called Altair BASIC. {03:07}
But [MITS] didn't get around to selling Altair BASIC right away; they kept telling their customers it would happen, but it never did -- something like a lot of other Microsoft products in that regard. {03:16}
But the hobbyists, the people who wanted a copy of Altair BASIC so they could use the Altair computer they had bought, became frustrated. And one of them managed to surreptitiously acquire a pre-release version of Altair BASIC. He made 25 copies of it, and he brought it to the next general meeting of the Silicon Valley Homebrew Computer Club, a group like your own, and he gave away all 25 copies--for a promise: if you took a copy of Altair BASIC, you had to come back to the next meeting with two more copies you had to share with other people. {03:55}
Soon everybody in the Homebrew Computer Club who wanted a copy of Altair BASIC, had a copy, and Mr. Gates, who was supposed to receive part of the sales revenue for every copy of Altair BASIC sold, was quite upset. He wrote a letter to the members of the Homebrew Computer Club, which was published in the next newsletter; the letter was entitled An Open Letter to Hobbyists, and in the letter, Mr. Gates called the hobbyists thieves. And he said that they shouldn't expect anyone to write software for them if they were going to continue to share software among themselves. Except he didn't use the word share, he used the word steal. {04:34}
Mr. Gate's words, and the actions of the members of the homebrew computer club, are indicative of the status of the computer industry in 1976, when he wrote his letter (and when I hear your club was found). {04:47}
The people who were a part of the homebrew computer club, were used to the computer industry and apart of a community. And they shared: all communities are based upon sharing, whether its the sharing of information or its the sharing of the tools which that community depends upon. {05:03}
Sharing had never before been a serious problem in the computer industry. During the 1950s and the 1960s, computers costs hundreds of thousands, if not millions, of dollars, and the people who bought computers expected to receive the rights to use the programs on those computers and expected to receive the source code for the programs on those computers. They needed the source code to improve the programs. So everyone had the source code in the fifties and the sixties. {05:30}
During the 1970s, and the short-lived days of the minicomputer, people shared source code often -- some of the people in this room probably shared source code through groups like the DEC User Society (DECUS). {05:42}
So the hobbyists of the homebrew computer club were used to sharing. They had been exposed to it through their college days or through their work where they worked with computers. {05:53}
On the other hand, Mr. Gates saw a business opportunity: as the number of computers went from a few thousand in the seventies to a few million in the eighties, Mr. Gates saw an opportunity to sell software. If each person who owned a computer bought one copy of software, there would be an opportunity to make a lot of money. {06:14}
But there was a problem in Mr. Gates's plan, and the problem was illustrated by the actions of the members homebrew computer club. The problem was that people who are a part of a community will share with each other. And when they're sharing a program, you're not making any money. {06:28}
Mr. Gates needed to alienate users from each other -- he needed to make them not be part of a community so that they wouldn't share And ironically, it was the invention of a member of the homebrew computer club, one of the people who could've shared Altair BASIC, that allowed Mr. Gates to alienate users from each other. {06:49}
That member of the Homebrew Computer Club was brilliant engineer Steve Wozniak, and his invention was the Apple. The first Apple was a kit, somewhat like the Altair, but the second Apple was a complete pre-assembled computer that you could buy, plug into the wall, plug into a monitor, press the power-on button, and expect it to work. {07:09}
The Apple II was targeted towards hobbyists, but hobbyists didn't buy it -- not very many of them at least. The problem was that hobbyists were quite content buying kits, going down into the basements where they could hide from their wives and their chores and assemble the computer in bliss. So the Apple computer didn't sell very well. {07:32}
What changed Apple's fortunes was the invention of a Harvard Business School undergraduate, and his invention was VisiCalc: the first spreadsheet. The spreadsheet was immediately deemed a business necessity, and 700,000 copies of VisiCalc were sold within its first few years. But VisiCalc only ran on one computing platform initially: the Apple II. So every new sale of VisiCalc was accompanied by a new sale of an Apple II computer. {07:58}
IBM executives, watching the sales figures for Apple, became quite interested in joining this microcomputer market, and they rushed to market their own microcomputer, the personal computer [(the PC)]. {08:12}
Built upon a mostly-open hardware platform, the ROMs for the IBM were soon cloned, allowing a commodity PC market to begin. As the people who were building PC-compatible computers didn't really innovate, at least initially, we had a deluge of very similar computers, and with all of these similar computers, there was only one thing they could compete upon: price. {08:42}
As the prices of PCs dropped precipitously, more and more people (like the people in this room), were able to buy their first computers. They all had the opportunity to come out and join user communities -- like PACS -- but a lot of them didn't. And they accepted for themselves self- imposed isolation from their fellow users. Because they weren't part of the community, they didn't care about sharing, and Mr. Gates found it quite easy to alienate them from each other -- to tell them that the price of getting software was that they couldn't share with each other. {09:13}
Mr. Gates used his business model to build the multi-billion dollar empire we're all familiar with today. {09:25}
Now before the microcomputer revolution, one of the most innovative computer research labs was the Massachutes Institute of Technology's Articifical Intellegence lab. The artifical intellegence lab was staffed by many of the original hackers -- hackers, being in this case, a term of great respect for someone's programing skills.
The hackers of the artificial intellegence lab did most of their programing in the lisp programing language. Lisp was a programing language ideally suited to solving artificial intellengence problems, but it also had a certain elegence, a certain grace.
The hackers at the articifical intellegence lab fell in love with lisp. They began writing programs in lisp that were unrelated to their work in artificial intellegence. One of the things they wrote was an entire operating system: written in lisp, configured through lisp, and completely based upon list. The problem was that, when they wrote this in the early seventies, there were no computers in the world powerful enough to effectively run the lisp operating sytem.
So they wrote it out on magnetic tape, and put it on the shelf, and they almost forgot about it. Until the late seventies and the early eighties when computing processor power had increased to the point when it became feasable that people could build a computer to run the lisp operating system.
Hackers began to leave the artificial intellegence lab to form companies, two comanies in particular, to build the computer to run the lisp operating system. They were very excited about it.
One of these companies was called Symbolics. Symbolics licensed a copy of the lisp operating system code from MIT and they began improving it. But they didn't give their improvements back to MIT. And the last systems programer at MIT's artificial intellence lab was quite upset about this. He had spent his own time adding features to it, working on it, and he wasn't able to see the improvements, he wasn't able to learn from them, and he wasn't able to improve the improvements himself. He saw this as a violation of his rights.
He spent about a year fighting back against Symbolics, but after a year he decided he was working on a small piece of a bigger puzzles. And he quit his job at MIT to start writing a new operating system. An operating system that would give every user of that operating system the rights to learn from the computer programs, to learn from the operating system, and to improve it.
The new operating system he decided to write was based upon an old operating system. That old operating system was called Unix. Its pronouced the same way you pronouce the word for a castrated man, but its spelled different; its spelled U-N-I-X.
And Unix was a commercial operating system from the AT&T compnay. It had some enviable features which Mr. Stallman wanted to add to his new operating system.
His new operating system was called GNU. Its spelled G-N-U. Its an acronym; its a particular type of acronymn called a recursive acronymn. It stands for Gnu is Not Unix.
[Transcription to be continued tomorrow with the MIT Artificial Intelligence Lab and the beginning of Richard Stallman's free software quest...]
Acknowledgements
I thank the members of CHLUG, RUSLUG, and LUG/IP for letting me practise
trial versions of this speech on them. In particular, I am deeply
indebted to comments from Bryan Quigley, Daniel Zuckerman, Sakuramboo,
and Chris Leyon. I thank Joe Terranova for driving me to the speech.
I especially thank Jim Fisher and the Pennsylvania Ubuntu Local
Community for inviting me and the Philadelphia Area Computer Society
(PACS) for hosting us all.
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
A mailing list has been created to encourage cooperation and information sharing between members of LUGs and other free software groups in the mid-atlantic region. This mailing list, the Regional Meta-LUG mailing list, is being graciously hosted by the Rutgers University Student LUG; to subscribe, please visit the URL below:
If you're the first member of your group to join the mailing list, please introduce yourself and your group. At this initial stage, we're particularly interested in any success stories: what has your group done to increase membership or to make the local area less hostile to GNU+Linux users?
In the future, we will begin discussing plans to host a regional conference or festival we can all participate in: something like the Ohio LinuxFest of Penguicon. If you have ideas for an event, or if you know of an existing event we can bolster, please start the discussion.
Finally, please share this announcement with the free software groups around you. All groups will benefit from increased cooperation and information sharing.
Contact
David A. Harding
New Jersey Area
[email protected]
(609) 230 9788
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
Speech Title
The History, Features, and Cost of Software Freedom
Dates
NB: If you can only attend one event, please make it Software Freedom Day. If you can attend multiple events, or if the only way you'll hear the speech is at one of the LUG meetings, I invite you to join me there. I am particularly interested in feedback from the LUG versions of this speech so that I can improve it before speaking it as the PACS Software Freedom Day keynote.
Overview
The revolution was over before Time Magazine presented the 1982
Man of the Year award to The Computer. The fight for software
freedom had just begun.
The revolution began in 1979 with the release of VisiCalc, the first spreadsheet program. VisiCalc was immediately deemed a business necessity and the only platform it was initially available for, the Apple II, sold like wildfire. Fearing Apple would dominate the new microcomputer market, IBM released its own personal computer (PC), and soon legal clones of IBM's PC created a commodity PC market that relentlessly drove the cost of computers down and made them affordable to more people every year. As access to computers increased, access to program source code disappeared, becoming the revolution's first casualty.
Before the PC revolution, most computer users were computer scientists, system programmers, and hobbyists—people who demanded the source code to the programs they used. The people in the mass migration of business users to the PC platform didn't care about learning from source code like scientists, improving software like programmers, or sharing programs like hobbyists. And before the long-time computer users could convince the new business users of the value of source code, the code was gone.
This speech traces the history of the quest for software freedom, a quest to provide everyone with access to program source code, from the beginning of the personal computer revolution to the present and explains the features people who join the quest can expect to receive and the costs they can expect to bear.
This speech is ideal for people new to free software and open source. Indeed, the subtle difference between those two terms is explained in historical context.
About the Speaker
David A. Harding is an active New
Jersey-based free software advocate. He maintains the GnuJersey.org blog aggregator and has
given more than 30 speeches at New Jersey free software groups.
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
For a good [Lockout] howto, take a look at
the fine article
written by David A. Harding.
—Thomer M. Gil, author
of Lockout
My article about the Lockout productivity enhancer was published on Linux.com today.
For the curious, I've been using Lockout, on and off, for more than two years now. I tend to use it frequently for several weeks to break out of bad habits and then I don't use it for several months until the bad habits return. I've never had a problem with it failing to unlock my system.
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
On Unix, the saying goes, everything is a file. But on Unix, there are several different types of files. A short description and tutorial on how to use each of the Unix file types follows.
Regular files
Regular files are called regular files because they are the type of
files most commonly found. A regular file holds any sort of data in any
sort of format.
Almost any general purpose program can be used to create a regular file.
Any program with a save feature almost certainly creates regular files.
To create an empty regular file, use the touch
command:
touch new-empty-file
Directories
On Unix, a directory is a file. Its a special file that contains a
simple mapping between filenames and inode numbers—much like a
phone directory contains a simple mapping between names and
phone numbers. The file name is the string of characters that helps us
humans identify and remember the file. The inode is a number that tells
the computer where to find the file on the filesystem.
Many general purpose programs can make a directory. The command to
make a directory is mkdir: mk stands
for make; dir stands directory.
mkdir new-directory
Executable files
An executable file is a program that can be run. The file itself must be
in a format recognised by the kernel. There are two common executable
file formats on modern Unix-style operating systems. Most compiled
programs on GNU+Linux (and many modern Unix style operating systems) are
in
ELF format.
The other commonly seen format is a text file that starts with a shebang
(#!) and pathname; for example: #!/bin/bash. The kernel, when it sees the shebang
as the first line of a file, runs the program on listed on the
shebang on the file itself. For example, I created a script with the
interpreter /bin/echo:
cat test #!/bin/echo
./test ./test
To create an executable file, first create a regular file (see
instructions above). Then change the permissions on the file to include
the executable bit. The command to change permissions is chmod: ch
stands for change; mod stands for mode, which is what
permissions are. In the following command, +x
stands for Add (+)
e(X)ecutable bit.
chmod +x file-to-make-executable
Device files
Special files, called device files, represent all the devices attached
to the computer. Each device connected to the computer has a special
identifier associated with it. This identifier is called the node, and
it has three parts: the type of device, the major number, and the minor
number. There are two types of devices: character and block devices.
Devices designed for random access are normally block devices;
everything else is a character device. The major number is a number,
assigned by the kernel, to a type of device. The list of
number-to-device-type mappings for each computer is in /proc/devices:
The minor number is assigned by the driver for each device. The official
list of all minor (and also all possible major) numbers is in the file
Documentation/devices.txt in the Linux source tree.
Once you know the type, major, and minor numbers, you can make the
device with the mknod command. To make a device
for the first partition on my hard drive, I would type:
mknod b 3 1 /dev/hda1
FIFOs
First-in, First-out (FIFO) files are often, more descriptively, called
named pipes. These files work just like the pipe character (|) in the
shell. One program writes its output to the named pipe, and another
program reads the output. Make FIFOs with the mkfifo command:
mkfifo new.fifo
Using FIFOs requires two programs: the first program writes to the FIFO; the second program reads from the FIFO.
Terminal 1: cat > new.fifo [Type anything, and hit enter]
Terminal 2: cat new.fifo [Anything typed in the first terminal will print here, once enter is pressed]
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
It seems to me that every application that produces audio output has a different level of loudness. For example, if I play a DVD after listening to music, the DVD volume seems too low and needs to be adjusted upwards. Then, of course, when I exit the DVD player program and start playing music, the music volume is too lound and needs to be adjusted downwards. That's bloody inconvient. Luckily, I have a script to fix the problem.
I use the aumix command to adjust the volume
level. I use the Totem movie player to watch DVDs. The script
follows:
#!/bin/bash aumix -S aumix -v90 -p90 totem --fullscreen "$@" aumix -L
The -S flag to aumix
saves the current volume settings to $HOME/.aumix. The -v flag
adjusts the main volume and the -p adjusts the
PCM volume; both are set to 90% of maximum. The --fullscreen flag starts totem in
fullscreen mode; the following argument passes all arguments given to
the script on to totem—examples below.
The -L flag to the final aumix loads the previously saved volume settings from
$HOME/.aumix. I have an intuitive name for my
script: dvd. To watch a DVD, I can call the
script a couple different ways:
dvd # then select `Play DVD' from the `File' menu dvd dvd:///dev/dvd # DVD starts playing automatically
Since my prefered music player has a command line interface, I can add
two more commands to my DVD playing script. The interface to my music
player is called mpc, and the adjusted script
follows with the new lines in bold:
#!/bin/bash mpc pause aumix -S aumix -v90 -p90 totem --fullscreen "$@" aumix -L mpc play
As you may have guessed, the entire script now pauses the music player, saves and adjusts the volume, and starts the DVD player. Then when I finish watching the DVD and exit the DVD player, the script restores the volume to the original level and unpauses the music.
Now all I need is a scriptable popcorn popper.
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
My article on the Music Player Daemon was published on Linux.com today.
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top
Formatting matters. A well formatted document, book, or letter is easier to read than the same text poorly formatted. I think this applies to email as well.
I write a lot of emails, and every time I send an email, I try to get the formatting perfect. Five rules I follow, listed below, assume plain text emails with no lines exceeding 80 characters.
Wrong Right You think that's ridiculous? You think that's ridiculous? I I stood in front of a movie theater stood in front of a movie theater in a BRIGHT YELLOW rain coat on in a BRIGHT YELLOW rain coat on a sunny day last week and... a sunny day last week and... Anyway, it seems to me that ridiculous people have a lot of fun. Anyway, it seems to me that I certainly do. ridiculous people have a lot of fun. I certainly do.CHLUG Mailing List, 29 May 2007
I don't think you and I disagree on principle. I think you and I disagree on specifics. Particularly, I think we both have different answers to the following question. How many users must want an option in the installer before that option is implemented? 5%, 25%, 90%? If the answer is that we should add an option to the installer if 5% of users want it, the result is something like the Debian installer in `expert mode.' If the answer is that we should add an option to the installer if 25% of users want it, the result is something like the Debian installer default. If the answer is that we should add an option to the installer if 90% of users want it, the result is something like the Ubuntu installer.Private correspondence, 27 April 2007
My understanding of New Jersey Coalition Against War in the Middle East et al. v. JMB Realty Corp. et al. -- 650 A.2d 757 (N.J. 1994) is that public assembly is permissable in public spaces on private property. Article About (against) the Decision: http://www.reason.com/news/show/29728.html Some Alternate Perspective: http://www.gpnj.org/LegalActivity/LitigationHistoryUntil2005.htm (About half-way down the page; search on, New Jersey coalition)Private correspondence, 28 May 2007
I run ion3 on Sarge and would like to upgrade to a more recent release (development snapshot or not) when Etch is released. Tuomo, the author of IonWM and the original bugreport, is probably correct in his assement of the flaws of megafreeze distributions[1] (like Debian), but I'm happy with Debian's implimentation of such, and I prefer that you not break Debian's release model by not distributing ion3 in Etch. [1] http://modeemi.fi/~tuomov/b/archives/2007/03/03/T19_15_26/In response to Debian Bug #413469, 10 March 2007
Presentations of any length less than an hour are welcome; suggestions for topics are also welcome. Volunteer to present a topic by sending an email publicly or privately: Publicly: address the email to this list (just hit reply!) Privately: address the email to Bryan, <gquigs@redacted> and CC Jerry, <jesran@redacted> (Jerry won't be at the meeting this month.)CHLUG mailing list, 27 April 2007
Thanks for reading,
-Dave
Please tell me your opinion of this article by contacting me via Jabber, AIM, Email, or telephone (+1 609 997-0765).
[]
top