Profile of a Spammer

Ever wonder about the people responsible for cramming your inboxes full of offers that you neither want or need? Here’s one of them — a “graying grandmother in a ‘What Would Jesus Do?’ T-shirt.”

Typically a marketer is tipped to Fox’s business by word of mouth and a deal is done on the telephone. Fox then taps into her list of 40 million e-mail addresses — 1,500 times more names than Slidell has people — for possible targets. She is paid based on how many prospective buyers she delivers to the marketer. Until recently she made a good living spamming, she says, pulling in $4,000 in a good week, $2,000 in a slow week. Some weeks produce no income.

(via /.)

The biggest cause of failure is success

Mike is doing some brainstorming on how to predict and cope with bandwidth spikes when a post or page suddenly becomes a popular destination.

When a blogger’s work becomes successful enough to, for a moment, graze the underbelly of commercial publishing, it threatens the very low-cost predicate of the publication itself.

>

Setting aside for the moment the absurdity of the situation, which is clear, it seems to me that over the past few years we’ve seen this exact phenomenon occur over and over again. I’m guessing, now that media people have integrated the blogosphere into their information gathering practices, we’ll see it with greater frequency and to more devastating effect over time.

My bandwidth as of 11/23/03As I recently discovered, this is a very real worry. I’d joked in the past about the “perfect post”, that one blog entry that suddenly exposes a site to the world and brings in all the traffic that so many people wish that they had — but actually stumbling upon that “perfect post” has made it very clear just how much of a double-edged sword that can really be.

In Mike’s ruminations on how things like this can be coped with, he mentioned something that sounded like a possibility…

…I think there is a proactive business opportunity for the right business to defray these transient bandwidth costs, probably in the form of short term ads on the sites that are experiencing the bolus. […] I will note that it might even be cooler yet if this feature enabled Google keyword ads. Maybe it should be an independent service, or a program that the keyword service provides for bloggers, who are currently more or less specifically discouraged from using it.

I applied for Google AdSense at one point, but they turned me down. While it was a bit of a bummer, it wasn’t much of a surprise, as Google doesn’t seem to want to accept most weblogs into their AdSense program. It seems that if you run a very tightly-focused weblog on a specific topic (such as PVR Blog or Daring Fireball) you’ve got a good chance of being accepted, but less-focused weblogs (such as mine, yours, the one you’re going to read next, or the other 99% of the blogosphere) will be denied. Unfortunately, the exact methodology or reasoning behind the approval/denial process is more than a little unclear.

There’s a far more serious problem with AdSense, though. The approval system is capricious, even arbitrary. It’s understandable that Google wants to make sure sites aren’t just ad farms, and it’s in everyone’s interest that quality be maintained, ideally by human verifiers. Nobody wants to see those sad Red Cross PSAs that take the place of house ads on poorly-indexed sites.

>

The human verification process at Google, though, is uncharacteristically opaque. I’d assume they factor in the ads which would run on a site before approving or denying an application, and if I take a look at , I see some of value. Ads specifically targeted to weblog software, Manhattan computer repair, New York hotels. These all seem relevant and valuable to me, but I’ve been repeatedly rejected.

>

It’s not just sour grapes on my part. Take NYC Eats, a great little niche weblog. Aaron’s brilliant little AdSense senser shows , which makes sense since the letters “NYC” by themselves cost two dollars a click. But no AdSense approval there. The problem is the wording in theprogram policies:

>

In general, we do not accept personal pages, chat sites, or blogs into the AdSense program. However, if a site contains targeted, text-based content and/or provides a product or service, we may consider it for participation.

In a perfect world (well, my perfect world, that is), of course, Google would open up their AdSense program to the weblogging world at large. While their AdSense ads might be a little random on the main page of a site due to the random nature of the main page posts not giving clear, concise keywords to work with, if a site design includes individual archive pages than each individual post should have enough keywords to target a specific ad category (my Mac-specific posts would get Mac-centric ads, my political posts would get political-centric ads, and so on).

If they don’t want to do that, though, what if Google set up an agreement with TypePad (or other for-pay hosting sites) in which, in order to offset the cost of bandwidth spikes, Google AdSense ads could be (semi-)automatically added to a site when they reached a certain bandwidth point (90% of their available monthly bandwidth per their agreement, for example)? Each auto-generated template could include code something along the lines of <$MTAdSense><!-- include "/ads/google/adsense.inc" --><$/MTAdSense$> that would be automatically triggered by the TypePad servers when bandwidth exceeded whatever the cutoff point was. Any revenue generated by clicks on the ads would automatically be siphoned to TypePad and applied to offset the costs of the extra bandwidth usage during the spike.

There could even be a toggle in the TypePad preferences that allowed a site author to insert a “registration key” if they were accepted by the Google AdSense program that would enable the AdSense ads on a full-time basis. In this case, Google would send any revenue to the site author as per their usual setup, instead of sending it to TypePad.

Just an idea. Workable? I haven’t got a clue — barriers include the coding of the feature (while I’m no program-level coder, it doesn’t strike me as being too terribly difficult of a feature to enable), inclusion of the feature into already-existing weblogs (not difficult for TypePad Basic, Plus, or Pro levels using the auto-generated templates, Pro levels using advanced templates would need to add the requisite code themselves), and — most importantly (and possibly most difficult) — Google and TypePad (or, of course, whatever other hosting service that might be interested) negotiating the partnership. Still, if it could be worked out, I think it could be useful and beneficial to the blogging community at large.

Rebuilding djwudi.com

This is going to be my repository for keeping track of what I do to install and configure the djwudi.com server. As such, it’s likely to be filled with all sorts of geeky bits of no interest to anyone except me. Feel free to ignore it. :)

20031015 2315: Install OS X 10.2

The first bit is fairly obvious.

Installation options: all localization options, extra applications, etc. are off. I’m installing merely the core OS and the BSD subsystem. As this is now going to be a dedicated server, rather than a combination server and workstation, I don’t need the extra goodies such as iTunes, iPhoto, yadda yadda yadda.

20031015 2352: Reconfigure home network

Apartment Network

Something’s going goofy here. The G5 sees the ‘net fine, the G3 suddenly isn’t. Odd — it did last night after a fresh system install with the same settings. Going to have to track that down soon — hopefully it’ll cure itself after a reboot, as I’ve got some more installations to go. In the meantime, my current network setup is shown in the graphic.

[Update:]{.underline}

Figured out the ‘goofyness’. When entering the DNS servers, make sure you get all the numbers entered correctly. It helps.

20031016 0019: Install developer tools

All options (including the BSD SDK, which is off by default) are on.

20031016 0054: Install all necessary software updates from Apple

Installing: IE 5.2.2 Security Update, Mac OS X Update Combined 10.2.8, QuickTime 6.3, Safari 1.0, StuffIt Expander Security Update 7.0, and Java 1.4.1.

Not installing: iMovie 3.0.3, iPhoto 2.0, iPod Software 1.3, iPod Software 2.0.1, iTunes 4.0.1, or iCal 1.5.1.

20031016 0202: Fine-tune initial setup

Adjust all system prefs to taste (Energy Saver needs to be set to never go to sleep), enable file sharing, web sharing (Apache), SSH access, and FTP access, verify that the webserver is responding (it is, though nothing’s there yet), nod in satisfaction, yawn, and go to bed.

20031016 2319: Set up and configure sendmail

Most if not all of the following commands need to be executed as root. All usernames, domain names, and variables listed below as are I set them for my server. If anyone else is going through this page as a reference, your variables will need to be adjusted for your system.

  1. Start sendmail automatically at system boot^1^.
    • Edit /etc/hostconfig: change MAILSERVER=-NO- to MAILSERVER=-YES- and set HOSTNAME=-AUTOMATIC- to HOSTNAME=djwudi.com
  2. Make sendmail play nice with Mac OS X’s permissions^2^.
    • cp /usr/share/sendmail/conf/cf/generic-darwin.mc /etc/mail/config.mc

    • Create the following script, save as /etc/mail/update, and make it executable (chmod g+x /etc/mail/update or chmod 654 /etc/mail/update):

      #! /bin/sh
      
      if [ /etc/mail/config.mc -nt /etc/mail/sendmail.cf ]
      then
          echo Regenerating sendmail.cf
          m4 /usr/share/sendmail/conf/m4/cf.m4 /etc/mail/config.mc > /tmp/sendmail.cf
          mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf.old
          mv /tmp/sendmail.cf /etc/mail/sendmail.cf
          /System/Library/StartupItems/Sendmail/Sendmail restart
      fi
      
    • Edit /etc/mail/config.mc and add the following line just after define(PROCMAIL</code>&hellip;: <ul> <li><code>define(confDONT_BLAME_SENDMAIL’, `GroupWritableDirPathSafe’)

    {=html}
    <!-- -->

  3. Run the update script:
    • ./update
  4. Tweak netinfo per Apple’s suggestions^2^.

    • niutil -create . /locations/sendmail
    • niutil -createprop . /locations/sendmail sendmail.cf /etc/mail/sendmail.cf
  5. Define hostnames to accept incoming e-mail for^1^:

  6. Edit /etc/mail/local-host-names and add:

    djwudi.comgeekmuffin.comhanscomfamily.com

      </li>
      <li>Restart sendmail:
        <ul>
          <li><code>ps -ax | grep sendmail</code></li>
          <li><code>kill -HUP xxx</code> (where <em>xxx</em> is the process ID of whichever sendmail process ends with <code>-q1h</code>)</li>
        </ul>
      </li>
    </ul>
    
  7. Set e-mail aliases^1^.

  8. Start NetInfo Manager.

  9. Unlock it.

  10. Click on / > Aliases.

  11. Create a new folder (leftmost button or, in the menus, Directory > New Subdirectory).

  12. Rename the new directory webmaster.

  13. Insert a new property (in the menus, Directory > New Property).

  14. Download and build the IMAP server^1^.

    • curl ftp://ftp.cac.washington.edu/imap/imap.tar.Z > imap.tar.Z
    • uncompress imap.tar.Z
    • tar xf imap.tar
    • cd imap-2002e/
    • make osx SSLTYPE=nopwd SSLDIR=/usr SSLCERTS=/etc/sslcerts
    • mkdir -p /usr/local/bin
    • cp imapd/imapd /usr/local/bin/imapd
  15. Configure the IMAP server^1^.
    • Set up the security certificate:
      • mkdir -p /etc/sslcerts
      • openssl req -new -x509 -nodes -out /etc/sslcerts/imapd.pem -keyout /etc/sslcerts/imapd.pem -days 3650
      • Follow the prompts and insert the correct information when required.
    • Set OS X to answer to IMAP requests over SSL port 993.
      • Edit the /etc/inetd.conf file and add the following line at the end of the file:
      • imaps stream tcp nowait root /usr/libexec/tcpd /usr/local/bin/imapd
      • Restart the inetd daemon:
        • ps -ax | grep inetd
        • kill -HUP xxx (where xxx is the process id of inetd)

At this point, sendmail works for sending messages from the server, and I can log into the IMAP server and check my messages using Mail.app on my G5. Unfortunately, I can’t figure out how to send mail from a machine other than the server — any settings I use result in errors of one sort or another. For now, I’m going to stick with what I have, and come back to tackling IMAP at another day.

20031017 1039: Continue to configure mail services

  1. Allow djwudi.com to catch mis-addressed email^2^.
    • Edit /etc/mail/config.mc and add the following line just after where we added ‘DONT_BLAME_SENDMAIL’ earlier:
    • define(LUSER_RELAY',local:djwudi’)
    • Rebuild and restart using the update script (./update)
  2. Allow relaying from trusted hosts^2^.
    • Edit /etc/mail/access to include my G5 by adding the following lines:
      • 216.231.44.207 RELAY
      • dsl231-041-022.sea1.dsl.speakeasy.net RELAY
    • Compile for use with sendmail:
      • makemap hash /etc/mail/access < /etc/mail/access

And that solved my problem from last night where I couldn’t send mail from my G5. Rock on — I’m learning things bit by bit. Fun!

20031017 2137: Finalize tweaking sendmail (for the moment)

  1. Tweak the sendmail update script to ease work down the road^2^.

  2. Add the following two ‘if/fi’ commands to the script shown above (20031016 2319 item 2). Running the final script will then check to see if the sendmail.cf, aliases, or access files have been updated since it was last run, and if they have, it will rebuild and restart sendmail.

    if [ /etc/mail/aliases -nt /etc/mail/aliases.db ]
    then
        echo Updating aliases
        newaliases
    fi
    
    if [ /etc/mail/access -nt /etc/mail/access.db ]
    then
        echo Updating access
        makemap hash /etc/mail/access < /etc/mail/access
    fi
    
      </li>
    </ul>
    

20031017 2206: Set up user accounts.

If you don’t know how to do that without bulleted and numbered steps, you probably shouldn’t be reading the rest of this webpage. ;) In any case, there are now user accounts for myself, dad, and Kirsten on the server.

20031017 2235: Start tweaking the webserver.

  1. Enable SSI^3^.
    • Remove the # characters (uncomment) the following two lines in the /etc/httpd/httpd.conf file:
      • # AddType text/html .shtml
      • # AddHandler server-parshed .shtml
    • Find the Directory directive for /Library/Webserver/Documents and add Includes to the end of the Options line.
    • Save httpd.conf and restart Apache.
  2. Enable PHP^4^.
    • Edit the /etc/httpd/httpd.conf file and uncomment the LoadModule and AddModule lines that handle PHP.
    • Add the following two lines (I added them just underneath where we uncommented the SSI AddType lines):
      • AddType application/x-httpd-php .php
      • AddType application/x-httpd-php-source .phps
    • Save httpd.conf and restart Apache.
  3. Allow serving SSI and PHP files by default along with HTML^5^.
    • Edit /etc/httpd/httpd.conf, find the DirectoryIndex line, and add index.php and index.shtml to the end of the line. Now, when no filename is specified, Apache will default to each choice in order — first looking for index.html, then index.php, then index.shtml.
  4. Things that I’m not going to play with yet, but will come in handy later: Custom Error Pages, .htaccess information, and password protecting directories are all covered in the document referenced at footnote 5.

20031018 0013: Back up a bit and go for better upgrades!

Well, here’s a nice find. I was poking around for other good Mac OS X apache/perl/php/sql etc. resources on the ‘net, and happened across Server Logistics, who offer pre-compiled OS X .pkg installers for Apache 2 (rather than 1.3.27), PHP4 with more added extentions, Perl 5.8.0 (rather than 5.6.0), [mod_perl 1.99_07], MySQL 4.0.15, and a few other packages that I probably don’t have a need for.

So, it looks like my next step is upgrading all of those packages. At least I discovered this while I was still fairly early on in the installation and configuration process!

[Update:]{.underline}

Okay — all of the above listed software packages have been installed on the server.

20031018 0211: Install MovableType

  1. Download MovableType^6^.
  2. Install MovableType following the provided instructions^7^.

20031018 1432: Whoops

Well, during the MovableType install process, I realized that I needed the DBD::mysql perl module installed to allow MovableType to talk to the MySQL database. A few hours of playing then convinced me that the one downside to the Server Logistics MySQL package was that it used non-standard installation locations, which caused issues with getting DBD::mysql installed. I fought with it for a while, until I got to the point where it was easier to just give up.

My next approach was to remove the Server Logistics MySQL package, and replace it with another one that I’ve used in the past^8^. However, that installation apparently didn’t like some of what was left over after removing the prior installation, and it told me to kiss off. Not in so many words, of course, but that was the result.

So, just to be on the safe side, I’m starting over. OS X is re-installing (again) now, and I’ll go through everything I’ve detailed above (again). At least this time it’ll be easier, as I won’t have to muddle my way through figuring it all out again. I’ll set everything up the same way I had been, only using the MySQL package I’m more familiar with instead of the new one that caused me issues.

Ah, the joys of geekdom…

20031019 1258: Starting over again

So, I started over. Yesterday got OS X installed and updated. Today so far, I’ve installed the OS X developer tools, and set up and configured both sendmail and imapd. This all goes much faster since I thought to write it all down the first time!

Now I’m at the point where, the first time through, I started tweaking the webserver setup, only to get distracted partway through by finding the Server Logistics packages. This time, I’m going to start by installing their packages (except for the MySQL package), then install MySQL from the package I’m more familiar with, then continue on and see where things go from there.

20031019 1451: Last few installs before MovableType (I hope)

  1. Install lynx^9^.
    • The downloadable installer puts lynx in /usr/local/bin/ rather than /usr/bin/, and isn’t seen by the default shell after an installation. I solved this by creating a symbolic link to lynx (ln -s /usr/local/bin/lynx /usr/bin/lynx).
  2. Install wget^11^.
    • Same caveats as with lynx.
  3. Install ncftpget^12^.
  4. Update CPAN^10^.
    • perl -MCPAN -e shell
    • Follow the questions at the prompts. All defaults should be acceptable.
    • Once setup is done, at the CPAN prompt, type install Bundle::CPAN
    • After CPAN updates, type reload cpan
    • (Optional: at the CPAN prompt, type r to get a list of installed modules that have been updated. For any modules that you want to update, just type install [module name] to update them to the most recent versions.)
    • At the CPAN prompt, type install Bundle::DBI
    • At the CPAN prompt, type install Bundle::DBD::mysql
  5. Install Image::Magick^13^.
    • Well, that doesn’t seem to work (at least according to mt-check.cgi). Moving on…
  6. Install Fink^15^.
  7. Install NetPBM^14^.
    • Well, this is nice. The OS X binary package for Fink now comes with a GUI application for managing Fink packages called ‘Fink Commander’. Using that, installing NetPBM was a single-click operation, and I’m now installing the Fink package for Image::Magick also, to see if that works any better than my first attempt did. One way or another, I’ll have image manipulation available for MovableType!
    • Image::Magick threw a fit because I don’t have an X11 window manager installed. No biggie, I’ll just go with NetPBM.

20031019 1636: Install MovableType

  1. Download MovableType^6^.
  2. Install MovableType following the provided instructions^7^.

Footnotes/References

  1. O’Reilly Network: Setting up a Site Server with Jaguar
  2. O’Reilly Network: Configuring sendmail on Jaguar
  3. O’Reilly Network: Apache Web Serving with Jaguar, Part 2
  4. O’Reilly Network: Apache Web Serving with Jaguar, Part 3
  5. O’Reilly Network: Apache Web Serving with Jaguar, Part 4
  6. MovableType.org: Download
  7. mtinstall – Installing MovableType
  8. Marc Liyanage – Software – Mac OS X Packages – MySQL
  9. Lynx text based web browser
  10. Installing Perl 5.8 on Jaguar (scroll down to ‘Testing Your Installation with CPAN’)
  11. Apple – Downloads – Unix & Open Source – wget 1.8.1
  12. NcFTP Software: Download
  13. Marc Liyanage – Software – Mac OS X Packages
  14. Fink – Package Database – Package netpbm
  15. Fink – User’s Guide – Install

People Powered Democracy

The American Prospect has an excellent article looking at just why Howard Dean’s campaign is so successful:

When the history of this past week in the Democratic primaries is written, the relative impact of MoveOn.org, Meetup.com and “smartmobbing” technology on Dean’s ability to raise such an unexpected sum will all feature prominently.

But reading the threads on the message boards at BlogforAmerica.com — the official Web log of the Dean campaign, where donors discuss their reasons for giving and for backing Dean — it quickly becomes obvious that the single most important factor in Dean’s stunning fundraising numbers is the most old-fashioned weapon in any campaign’s arsenal: message.

[…]

On Dean’s blog , the message-board threads have acted as constant, ongoing, real-time focus groups for everything the governor says and does. The campaign takes it all in. Plenty of ideas adopted by the campaign start out on the threads of the Dean blogs, say Dean campaign aides, and the Dean for America Internet team is constantly updating and modifying the site in response to the posts. To follow the blog is to watch the campaign unfold in real time with a startling level of intimacy and transparency; it is to enter a freewheeling, unending conversation where thousands and thousands of Dean’s supporters chew over every aspect of his campaign and strategy, message and image, policies and past record.

In this world, whatever the mainstream press is saying about Dean’s role as the campaign’s angry candidate is rejected. His supporters say that they are drawn to him because they find his message inspiring, upbeat, honest and forward-looking — and because it makes them feel strong again.

A quick summary of the main themes Dean’s supporters returned to again and again during yesterday’s “Deanathon” online fundraising drive shows that they believe his message is more about patriotism and hope than it is about disaffection or rage. Admittedly these comments all come from true believers. But when was the last time any Democratic candidate generated true belief?

[…]

Most of all, these people seemed to be supporting Dean because other people they know and trust are supporting Dean. The Internet campaign magnifies the voices of friends and relatives above the voices of the famous or the powerful.

[…]

Today Howard Dean has demonstrated to his doubters — and they are legion — that he is not just the angriest man in the race. To his supporters, he is also the most optimistic Democratic candidate running. And after raising more than \$7.5 million from them in the last quarter, he has a right to be.

(via mathew Gross)

MoveOn primary results

I just got this in my e-mail box:

Dear MoveOn member,

The votes are counted, the exit polls are complete, and the results from the MoveOn primary are in. Over 300,000 MoveOn members have cast votes — a turnout bigger than the election turnout in many states — and news outlets from CBS to Reuters have covered the story as it unfolded this week.

The MoveOn primary has allowed hundreds of thousands of ordinary voters to speak at a time when usually only pundits, pollsters, and wealthy donors have influence. Now it’s time to put our money where our mouth is. The end of this month — June 30th — marks a key deadline for candidate fundraising: candidates will truly sink or swim based on whether they show that they can raise money.

Since no candidate received more than 50% of the vote, we’re encouraging everyone to support the candidate they voted for. That’s why we’ve attached a fundraising appeal from Howard Dean (the candidate who you voted for) below, and that’s why we strongly encourage you to give what you can — from \$20 to \$2,000 — TODAY.

You can give to Howard Dean’s campaign online right now at: http://www.deanforamerica.com/moveonfordean

So how did the candidates do? The statistics below are only a part of the picture: perhaps the most significant fact is that virtually all of the candidates would have the enthusiastic support of a majority of MoveOn members. Taking back the primary process for ordinary people is an important goal, but the vote made clear that we’re ready to defeat Bush no matter who the Democratic nominee is.

As a result of the primary, well over 100,000 people have joined a presidential campaign or contributed to one. We’re already building a movement to defeat Bush in 2004.

Here are the vote totals:

>

>

>

>

>

>

>

>

>

>

>

>

>

BRAUN 7021 2.21%
DEAN 139360 43.87%
EDWARDS 10146 3.19%
GRAHAM 7113 2.24%
KERRY 49973 15.73%
KUCINICH 76000 23.93%
GEPHARDT 7755 2.44%
LIEBERMAN 6095 1.92%
SHARPTON 1677 0.53%
OTHER 6121 1.93%
UNDECIDED 6378 2.01%
  317647 100.00%

The complete results, along with some analysis, are available on our website at: http://moveon.org/pac/primary/report.html

It’s been an amazing week for MoveOn.org PAC. Every Democratic presidential campaign has invested time and energy into the primary. The national news media have covered the process with gravity. Together, we’ve begun to shift the balance in how these choices get made — from wealthy benefactors and snarky pundits to ordinary, active citizens. Thank you.

Sincerely, –Carrie, Eli, Joan, Peter, Wes, and Zack The MoveOn Team June 27th, 2003

P.S. For links to all of the candidates’ donation pages, go to: http://www.moveon.org/pac/cands/

Very interesting — and congrats to Dean! 43% of the vote is certainly nothing to look down upon!

Dean’s statment on the results can be found here.

Newly Digital (Back in the Day, redux)

Adam Kalsey has started a project he calls Newly Digital — a collection of stories about when people first discovered computers, got online, and so on.

In that vein, I’m updating and reposting my “Back in the Day” post from roughly a year ago, to contribute to the project. Enjoy!

The first computers I can remember playing with were the Apple II‘s that my elementary school had. Before long our friends the Burns had one of their own that I got to play with, while my babysitter picked up a Commodore 64 that gave me my first look at the BASIC programming language.

Eventually, my family got our first computer — an Osborne 1. This was a beast of a machine. 64k of RAM, a Z-80 CPU, two 5.25″ floppy drives, and a 5″ monochrome 80×40 greenscreen, all packed into a case the size of a suitcase that weighed about 30 pounds. The keyboard could be snapped up against the face of the computer, allowing it to be carried around — one of the first, if not the very first, “portable” computers! It ran CP/M (a precursor to MS-DOS) — aside from fiddling with the machines at school or at my friends’ houses, my first real command-line experience! There was a 300 baud modem available for the Osborne 1 computer, however my family didn’t get one until years later (when those of our friends who had also had Osborne 1 computers were giving them to us as they upgraded, allowing me to cannibalize parts from two machines to keep one running).

I first got online sometime in 1990, with the first computer I bought myself — an Apple Macintosh Classic with no hard drive (the computer booted System 6.0.7 off one 3.5″ floppy, and I kept MS Word version 4 on a second floppy, along with all the papers I typed that year), 1 Mb of RAM — and a 2400 baud modem. Suddenly an entire new world opened up to me. After a brief but nearly disasterous flirtation with America Online at a time when the only way to dial in to AOL from Anchorage, Alaska was to call long distance, I discovered the more affordable world of local BBS’s (Bulletin Board Systems).

I spent many hours over the next few years exploring the BBS’s around Anchorage, from Ak Mac (where most of my time was devoted) to Forest Through the Trees, Roaring Lion, and many others that I can’t remember the names of at the moment. I found some of my first online friends, many of whom I conversed with for months without ever meeting — and many that I never did meet. Most of the Mac-based boards used the Hermes BBS software, which shared its look and feel with whatever the most popular PC-based software was, so virtually all the boards acted the same, allowing me to quickly move from one to the other. After springing the $300 for an external 100Mb hard drive (how would I ever fill up all that space?!?) I downloaded my first ‘warez’ (bootlegged software), at least one of which had a trojan horse that wiped out about half my hard drive. I discovered the joys — and occasional horrors — of free pornography. I found amazing amounts of shareware and freeware, some useful, some useless. It was all amazing, fun, and so much more than I’d found before. In short — I was hooked.

After I graduated from high school in 1991, I had a short-lived stint attending UAA (the University of Alaska, Anchorage). One of the perks of being a student was an e-mail account on the university’s VAX computer system. In order to access your e-mail, you could either use one of the computers in the university’s computer lab, or you could dial into their system via modem. Logging in via modem gave you access to your shell account, at which point you could use the pine e-mail program. However, I soon learned that the university’s computer was linked to other computers via the still-growing Internet!

I thought BBS’s were a new world — this Internet thing was even better! Suddenly I was diving into ftp prompts and pulling files to my computer from computers across the globe. Usenet readers introduced me to BBS-style discussions with people chiming in from all over the world, instead of just all over town. I could jump into IRC (Internet Relay Chat) and have real-time conversations with people in other countries. The gopher protocol was essentially a precursor to the World Wide Web, textual information pages linked to each other by subject. I was fascinated — more information than I had dreamed of was at my fingertips.

By the time I left UAA and lost my student account, the ‘net had started to show up on the radar of public consciousness, but still at a very low level — it was still fairly limited to the ‘geek set.’ That was enough, however, to have convinced some of the local BBS systems to set up primitive (but state of the art at the time) internet links: once a day, generally at some early hour, they would dial into a special node on the ‘net and download a certain set of information, which the BBS users could then access locally. It was slow, time-delayed, and somewhat kludgy, but it worked, and it allowed us to have working e-mail addresses. It wasn’t what I’d had while at the university, but it was certainly better than nothing.

Within a few years, though, the ‘net suddenly exploded across public consciousness with the advent and popularization of the World Wide Web. Suddenly, you didn’t have to do everything on the ‘net through a command line — first using NCSA Mosaic, and later that upstart Netscape Navigator you could point and click your way through all that information — and some of the pages even had graphics on them! It was simplistic by today’s standards, but at the time it was revolutionary, and I joined in that revolution sometime in 1995 with my first homepage.

Since then, there’s been no turning back. My computers have been upgraded from that little Mac Classic to a Performa 600/IIvx, from that to a PowerMac 6100, then on to a 6500, through an original Revision A iMac, and now consisting of a Blue and White G3, a custom-built PC (the first Windows-based PC I ever owned), and currently a Dual 2.0Ghz PowerMac G5, and currently a 27″ iMac, and now a 27″ Retina 5K iMac, and now an M1 Mac mini desktop and M2 MacBook Air. My website has grown as well over the years, passing through several intermediate designs to its current incarnation hosted off my G3 through the UN*X-flavored goodness of Mac OS X.

To quote Jerry Garcia, “What a long, strange trip it’s been.” I’m only looking forward to seeing where it takes me from here.

Meme proposal: YAAMR

A proposal for the ‘net community at large, and for Microsoft, in an effort to make complaints about/criticisms of Microsoft and its software easier to collect and analyze, with the intent of letting any concerned party at Microsoft sift through them at will for subjects relevant to their area of expertise.

Requirements: a weblog with an active RSS feed.

Methodology: The methodology from the user end is simple: include the acronym ‘YAAMR’ (for Yet Another Anti-Microsoft Rant) in the relevant weblog post; preferably in the title, though including it in the body should work also.

On Microsoft’s end, the process is also simple: create a Feedster search for ‘YAMMR’. Then, as Feedster allows one to subscribe to an RSS feed of a specific search, the MS employee could then subscribe to that RSS feed in their newsreader of choice.

End result: a real-time, constantly updated feed of issues that MS would do well to pay attention to, in order to improve relations with their current user base.

It goes without saying that this same method could be used for other companies or organizations also, requiring only the selection of a convenient acronym or set of keywords that could be used to trigger Feedster’s search results.


I don’t really expect this to get picked up, or put into practice. But I like the idea. Maybe it’d be more useable for smaller companies? In any case, there’s potential here, I think…

More random ideas connected with this: perhaps a Movable-Type powered site, with different categories for different companies or organizations (or one site for a specific company, with categories for the various software packages). These categories would be set up as TrackBack ping receivers for rant posts.

For instance, a hypothetical ‘www.microsoftrants.com’ could have categories for Word, Excel, PowerPoint, etc., then posts about issues with the software could ping the corresponding category. MS employees in the various software groups could subscribe to RSS feeds for the categories, enabling them to keep an ‘ear to the ground’ of what the ‘common user’ faces when using their software.

Hrm. Ideas? Questions? Comments? Words of wisdom?


I think I’ll toss this one out to the LazyWeb community. It’s not really a ‘problem to be solved’, as such, except that I don’t really have the resources (budget) to set this up on my own, and I don’t even know that the idea would catch on (not to mention that as I’m not an ‘A-list’ blogger [or even B- or C-list…probably somewhere around Q-list, I think…], there’s no gaurantee anyone would ever see this proposal otherwise). Better to toss it out to people more integrated with the various tech communities to see if any of them want to pick it up and play with it.

tail -f access_log

A geek-fascinating look at traffic as a new weblog is discovered.

I’ve only ever run web sites on Apache or one of its ancestors, and this lineage of web servers has always written its statistics into a file named access_log. I think anyone who’s running a Web site, or who cares about the Web, ought to, on a regular basis, spend some time watching the access_log in real time.

Too often we get this image of the Web as a vast well-oiled machine, with glossy browser screens in front and masses of gleaming software in back. Watching the access_log is like a window into the side lobby of the legislature, or a tour of the fermentation vats at the brewery.

(Via Dave Winer)