Articles on Riffs and Rants
Tracking the Cosco Busan
Posted Saturday, November 10, 2007 18:48
As you probably know, on Wednesday morning a 908-foot cargo ship, the Cosco Busan, ran into one of the San Francisco Bay Bridge towers, creating the worst oil spill in more than a decade in San Francisco Bay.
There’s all sorts of questions being raised about the speed of response. In time, I suspect we’ll learn a lot. For now, speculation on just how quickly the response was mustered, whether it could have been done more quickly, and what caused any delays is just that—speculation.
Even more puzzling is how this could happen to begin with. There’s a huge opening between the bridge towers—this is not a tight fit, even for a huge cargo ship.
It just so happens that one of my sites, BoatingSF.com, tracks ship movements on the bay. Anyone who looked at my real-time ship tracking page within an hour of the accident could have seen an instant replay of the ship’s track. And it should have been reasonably simple for me to access the historical data.
My perfect storm of server data ugliness
This data comes from two AIS receivers I operate, which receive VHF signals that all commercial ships are required to send that encode their position, speed, destination, name, and dimensions. These reports, which arrive at the rate of a few per minute, are streamed up to my server, where I decode them with some custom PHP code (this predates my involvement with Ruby and Rails) and stuff them into a database. Every five minutes, a cron job extracts a summary from the database and generates an XML file. The web page has a Flash movie that reads this XML file to control the animation.
Unfortunately, for performance reasons, I don’t keep decoded position information that’s more than one hour old. I’m going to rearchitect the solution to make this possible, but when I designed this almost two years ago, it was all I could do to get it working, and other projects got in the way of further optimization.
I do archive the raw AIS data stream, so I can go back and process it later to get at historical data. Several private and government agencies have used this data for various kinds of analysis projects. Until recently, I stored this raw stream in the database.
A couple weeks ago, something went wrong, and my simplistic scheme began to torment me. My simple database configuration on an old VPS account didn’t deal well with tens of millions of records.
I had the system set up to send me an email when a database failure occurred—and I started getting 100,000 such emails a day!
There’s another article to be written here, but suffice it to say that you shouldn’t do this (and I don’t any more)—write the errors to a log file, use logrotate or somesuch to keep the files from getting too big, and then use something like logwatch to warn you when the logs have errors in them.
The fix creates a new problem
In my hurry to stop the mail deluge, I changed the code to put the raw AIS stream into a log file instead of into the database. And in the rush, I forgot that the raw AIS data lacks a built-in time stamp. So when I went to dig out the data that would show the Cosco Busan accident, I found that I had no timestamps for any of the position reports! This meant I couldn’t just look for 8:30 am Wednesday but had to analyze ship movements to find the accident.
I also had to write new code to pull the reports from the log file, decode them, and stuff them into the database for further analysis. And I wanted a different zoom region for the display, which took additional work.
About 12 hours later, I had an animation of the accident completed. It doesn’t show actual time, since I didn’t have any timestamps to work with, but it animates on the assumption that the pace of ship reports is roughly constant (which it should be).
I had expected that the ship would have been heading for the space between the towers, and veered a bit off course. The reality is that the ship was going nearly parallel to the bridge, until it turned sharply and headed straight for the center tower! And there was a tug following closely behind. Unless there was a catastrophic steering failure, which seems unlikely given that the ship continued on under apparently good control, there’s some people with a lot of explaining to do.
Next up: a new architecture
This debacle (my server’s, not the ship’s) has spurred me to begin thinking about a new architecture for the system. I want to be able to pull any past window of time, and zoom in on any region, without custom programming.
Perhaps I’ll move it over to Ruby while I’m at it. One of the reasons it too me so long to create the Cosco Busan animation is that it had been almost a year since I had touched the PHP code, and it is an ugly thing! It is hard to remember to put semicolons at the end of every line, and empty parentheses after function calls that take no arguments, and so forth, now that I’m accustomed to a language that doesn’t have such requirements.
Making it even more complex is the convoluted Flash code that creates the animation, which requires dealing in yet another language and the vagaries of the Flash timeline interface. I’m not sure I see a way out of having the Flash code, but at least I can get rid of the PHP.
North Bay Ruby Users Group Reborn
Posted Wednesday, June 06, 2007 17:52
Earlier this year, O’Reilly’s Rob Orsini and Keith Fahlgren founded the North Bay Ruby Users Group. The group has had several meetings, but the turnout has been small. Faced with lackluster attendance and a plethora of other demands on their time, Rob and Keith decided to pull the plug.
I’ve agreed to take over the shepherding of this group so we can take another shot at giving it life. With the luxury of not having a real job, I’m able to devote a little more time to it than they were able to, and with the steadily increasing interest in Ruby on Rails I think we’ll be able to build a vibrant group. We’re the only Ruby users group between San Francisco and who knows where to the north—perhaps the only group for Sonoma, Marin, Napa, and Mendocino counties!
The group meets at 7 pm on the Third Thursday at O’Reilly headquarters in Sebastopol. We welcome everyone who is using Ruby, or Ruby on Rails, or is just interested in either, to join us. We’ll order in pizza when everyone arrives. So please join us on June 21, and we’ll figure out how to celebrate Ruby, Rails, the North Bay, and the summer solstice all at the same time.
I’ve built an embryonic new web site for the group (content to come soon…). I’ve also set up a Meetup group to help publicize and coordinate the meetings; that’s the place to go to RSVP. And, finally, there’s a Google group for discussions.
Another Option: North Bay Internet Society
I’m also still organizing the thriving North Bay Internet Society, which meets on the second Thursday of each month at various restaurants. This group uses a private Yahoo group; if you’re interested, send an email to northbayinternet-subscribe (at) yahoogroups.com telling me a little about yourself and your interests. This group is focused on Internet-related ideas and entrepreneurship, rather than hard-core technology.
Building Community in the North Bay
Posted Saturday, March 03, 2007 11:28
I moved to the hills near Sebastopol, in Sonoma County about an hour north of San Francisco, almost 17 years ago. We came for the rural lifestyle and the natural beauty. The one thing I’ve missed is the technical and entrepreneurial community that thrives in our old town, Palo Alto, and in all of Silicon Valley.
For most of the time I’ve lived in Sonoma County, I’ve remained intimately involved with businesses based in the valley. Although I’ve always had an office up here, I’ve also spent a few days a month in the valley, and most of my contacts remained there.
When I decided to leave Adobe last fall, I also decided to seek out the local technical and entrepreneurial communities and get to know them better, in the hope of making new friends and forming a new venture that would be truly centered here in the redwood country. Along the way, I’ve joined a few groups and created one, and met a lot of great people.
There are many, many talented folks in Sonoma County, but they tend to be isolated, and often connected to businesses in San Francisco or Silicon Valley. I believe we can create a much stronger environment for entrepreneurs and technical people here by providing more opportunities for us to all meet each other and share ideas and dreams.
Announcing the North Bay Internet Society
After looking around for a group of like-minded folks to join, I couldn’t find one—so I decided to create one. The North Bay Internet Society (NBIS) is about to have its third meeting, and our membership has grown to a little more than 20 people. It’s a remarkable group, including several technologists, a few marketing folks, a couple people helping run established web businesses, and a few people building new web startups.
We meet once a month, over dinner, and have a couple short, informal talks and lots of discussion. I’ve enjoyed it tremendously, and I think most of the other members have as well. I’ll be surprised if the relationships forming there don’t lead to some long-term collaborations. Our discussions sometimes veer into technical issues, but our focus is on delivering value to people from the technology, rather than on the technology itself.
It was striking to me that as I asked around for people who might be interested in this new group, I kept finding new people who didn’t know any of the others in the group. This reinforced my feeling that there are a lot of people up here with common interests, but they typically don’t know each other. I hope that this group can help change that.
If you’re interested in joining us, please send me a note telling me a little about who you are, to ms (at) mslater (dot) com.
North Bay Ruby User’s Group
At about the same time, Rob Orsini (author of the Rails Cookbook) and Keith Fahlgren from O’Reilly founded NBRUG, the North Bay Ruby User’s Group. The first meeting was held a couple weeks ago, with about a dozen attendees. This is a much more technically oriented meeting, and it is focused on a single technology platform (which happens to be my favorite one!). So it is quite different from the NBIS, but equally valuable. This group meets on the third Thursday of every month at the O’Reilly campus in Sebastopol. See their web site for more information, or join the NBRUG mailing lst.
North Bay Angels
Another group I’ve become involved with is the North Bay Angels. This is a group of people interested in investing in small businesses. It has a very different character than the two groups listed above, for several reasons. First, it is focused on business, not technology, and the deals discussed run the gamut from wine to biotech. Second, it is well established (founded in 1999) and much larger (about 80 members). And finally, it is relatively expensive to join and attend, plus you need to be in a position to make at least small private investments, so it tends to be an older, more established crowd, with lots of people from the legal, financial, and real-estate worlds.
I’ve found NBA to be a great place to meet a diverse group of people interested in building (or helping others build) businesses. It also provides a wonderful peek into some of the startup businesses seeking financing. If you’re interested in becoming a member, see their web site for more information.
More North Bay Groups
I’ve found a couple other north bay groups that seem interesting but which I haven’t had time to visit yet. Among them:
There’s lots more in Marin County, but for now I’m trying to focus on groups that meet further north.
If you know of any groups to add to this list, please add a comment to this post.
I think there’s a great opportunity to make Sonoma County more of a center for web development and entrepreneurship, and I’m grateful for the chance to help move it along.
The Queen Mary 2 in San Francisco
Posted Wednesday, February 07, 2007 14:39
If you think of this as a computing blog, which it mostly is, this will seem like a wildly off-topic post. But those of you who know me know that I’m, well, obsessed with boats. Last Sunday’s arrival of the Queen Mary 2 in San Francisco was the mostly hyped maritime event I can recall in San Francisco. I’ve never seen so many boats on the bay on a winter day, and never have I see scores of boats outside the Golden Gate. It was quite a day—as much for the spectator scene as for seeing the QM2 herself.

There’s a bunch more of my pictures of the Queen Mary 2 over at my boating site, BoatingSF.com.
In case you managed not to read about this anywhere else, the QM2 is the largest passenger ship in the world. (The Freedom of the Seas has greater displacement but the QM2 still beats her in length, beam, and draft.) She’s also the largest ship ever to have entered San Francisco Bay. They had to dredge a channel to Pier 27 just for her; the usual cruise ship berth wasn’t big enough. She’s not a cruise ship—she’s an ocean liner. That is, she’s built for long passages, not for harbor-hopping. (Historical note: the idea of a cruise ship that travels among nearby ports arose after cross-Atlantic airline travel obliterated the ocean liner industry after World War II.)
The propulsion system on this beast is interesting. There’s four engine pods that hang below the ship, each with a big electric motor and a huge propeller. The rear two can be swiveled, so the ship has no rudder. Electricity comes from a plant that combines four diesel engines with two gas turbines (which are used when the load is high).
In Praise of Akismet
Posted Tuesday, January 30, 2007 09:01
The spam nightmare continues, but thanks to Akismet, it’s been reduced to a minor nuisance on this blog.
Akismet was created by Matt Mullenweg of WordPress. Thankfully, the folks who run WordPress didn’t keep this to themselves, but opened it up to all types of blogs—and even other applications, such as forums. Anything that accepts user comments should be using this.
Here’s how it works. When a comment is received on your blog, or a post on your forum, or whatever, your software first submits the comment to Akismet via it’s open API. Akismet does its magic and tells you whether the comment is spam or not. If Akismet blesses it, then your software goes ahead and posts the comment. If not, it puts it in a holding pen, where you can double-check that it is really spam before deleting it. If you’re using WordPress, you can just download the plug-in. If you’re using Mephisto (the Ruby on Rails application that runs this blog), then it is built in. There’s a wide assortment of libraries and plug-ins for other platforms as well.
Understandably, the Akismet folks don’t disclose just how they decide what’s spam, but in my experience, it has been 100% accurate. They do have a vast volume of messages to learn from: since the service started, they’ve detected a staggering 643,803,210 spam posts, and they see millions a day. A revolting 94% of all posts submitted are spam.
The spammers are getting a little more clever, but Akismet is one step ahead of them. The 20 or so posts a day I’ve been getting for male dysfunction remedies are linking back not to the site of any spam company, but instead are linking to posts on other blogs and forums where the spam has been posted. So the link is to a legitimate place, which is unknowingly hosting the spam message. These posts come in bursts of three to five, each with a different email name attached and with a slight variation of the text, but clearly they all come from the same place. Akismet has gotten them all, so you never see them, and all I have to do is do a quick daily scan of the quarantined posts and click “delete all.”
Once you’ve installed a plug-in or integrated one of the libraries, you need to get an API key. This identifies each user of the service and helps the WordPress folks monitor use of the system and control abuse. An API key is free for non-commercial bloggers (which they define as anyone making less than $500/month from their blog). If you’re a “pro blogger,” you can get a key for just $5/month, which is well worth it. Enterprise subscriptions start at $50/month for 5 blogs. Non-profits can use the service for free if they provide some back-links to help promote the service, or for half-off the enterprise prices if not.
With this service available, there’s really no excuse, other than the need to implement the API interface, for any software to be posting spam. If we can eliminate the ability to post spam, we can take the upside out of this dirty business and send the scum who post spam comments off to some other misguided pursuit.
The craigslist Anomaly
Posted Friday, January 26, 2007 09:16
craigslist is a fascinating anomaly in the world of large-scale web sites. Take a look at these numbers, as published by Craigslist with October 2006 data from Yahoo! and Alexa:
| Rank | Employees | Company |
| (page views) | ||
| 1 | 10,000 | Yahoo! |
| 2 | 90,000 | TimeWarner |
| 3 | 10,000 | |
| 4 | 70,000 | Microsoft |
| 5 | 50,000 | News Corp |
| 6 | 12,000 | eBay |
| 7 | 23 | craigslist |
| 8 | 25,000 | BBC |
| 9 | 130,000 | Disney |
| 10 | 12,000 | Amazon |
That’s not a typo for the number of employees at craigslist—while the other top-10 sites have more than 10,000 employees (most of them far more), craigslist has 23.
Now obviously this isn’t entirely fair, since most of these other businesses run much more than just a web site. But nevertheless, it is an impressive statistic.
Another thing that makes craigslist such an anomaly is its design, which can politely be called austere or minimalist—or more directly, just plain ugly. Google is perhaps the closest, but even it is relatively beautiful, and all the others on the list seem to be operating in a different design universe.

It would not be hard to create a much more attractive version of craigslist, and there’s plenty of features that could be added. But why would craigslist do so? They have a very successful product, and it is not very vulnerable to attack. If a startup built a “better craigslist,” could they get traction? It would be tough, since the size of the user base is much more important than features an aesthetics.
What lessons can we draw from this anomaly? I’d propose the following:
- Providing a valuable service for free can attract a large and loyal audience. This is one case where the first-mover advantage is tremendous. You want to post your ads where lots of people will see them, which makes it hard for a new site to gain traction.
- Design is secondary to functionality, at least for sites that are delivering a simple utility, rather than entertainment. When compared to a newspaper’s classified ad section, craigslist isn’t especially ugly.
- User-generated content can form virtually the entire content of a very large site, if you choose your domain carefully.
- With user-generated content and little effort expended on design and new features, it is possible to have a lot of traffic with a very small staff.
Replicating this success is not, of course, something that any new site could rationally aspire to do. Perhaps the central reason for craigslist’s great success is that they took a function that was being done offline (classified ads) but could be better done online, and translated it quite simply to to online world. Their goals were modest, and they weren’t trying to build a huge franchise—they were simply trying to solve a problem. Ironically, this led to a huge and powerful franchise.
Today, alas, there’s not many widely performed offline tasks for which there aren’t already half a dozen online alternatives.
Amusing "First Meanings" on Google
Posted Saturday, December 30, 2006 10:00
Many English words have taken on new meanings in the digital world, often as product names. Since Google bases its search rank not on usage in traditional texts but only on usage on the web, it isn’t surprising that new meanings arrive much more quickly on Google than in dictionaries. Another interesting facet is the ads that appear, which of course typically reflect commercial interests. Here’s a few examples that I found amusing:
- Textile. Now this is a word that has been around a long time and is extremely widely used in commerce. Yet the first three results in Google refer to the somewhat obscure markup language. Over in the right column (the ads), of course, it is all about fabric.
- Mephisto. If you’re into great, though expensive, walking shoes, you probably know of the 40-year old, world-renowned Mephisto Shoes, and indeed shoe ads fill the right column. Mephisto Shoes does manage to keep first place in the Google search results. But right at number two is the site for the Mephisto blogging engine, the equally excellent (but much newer and less well known) blogging engine that this site runs on. Mephisto in the context of Mephistopheles, one of the chief demons of Christian mythology, doesn’t make the first page of results, other than in the context of the early 1980s movie of that name.
- Rails. Now here is a generic word with widespread usage and multiple meanings. Not too long ago the vast majority of associations would have had to do with railroad tracks. But 9 of the 10 results on Google’s first page refer to the three-year-old Ruby on Rails web framework (even when searching on the single word Rails). The ads are dominated by machine parts and bewildering ads like eBay’s “Rails: Whatever you’re looking for get it on eBay.”
- Mongrel. Surely there must be a million web pages about mongrel dogs. But result number one in Google’s list is the leading server for Ruby on Rails sites.
- Apple. Not until halfway down the second page of results do you get to anything about fruit. The savior is a page from Wikipedia, which I find is commonly the first site to appear in search results that reflects the more traditional meanings of a repurposed word. And no matter how many pages of listings you view, you won’t find any advertisements for fruit; no doubt this keyword has been bid far out of range for people selling things to eat.
Making Tagging More Useful
Posted Friday, December 29, 2006 14:19
Tagging has become one of the themes of so-called Web 2.0 sites. Really nothing more than free-form keywording, tagging has proven useful in many contexts. Eschewing hierarchies and controlled vocabularies, tagging reduces keywording to its essence. For many of my uses, though, I’ve been finding it it just a bit too simple.
Tag clouds
Seven years ago, the startup I led (Fotiva) built one of the first photo organizers to use tags, which Adobe brought to market as Photoshop Album. Since then, tags have become a popular organizing method on the web, not only for photos (most notably at Flickr) but also for web bookmarks (such as at del.icio.us) and for blog posts (encouraged in large part by Technorati). Rather than offering any tag hierarchy, typical usage on the web is for all tags on a site (or within a user’s account, for private tags) to simply exist in one big namespace, sorted for display either alphabetically or by popularity. A hybrid listing, sorted alphabetically with type size denoting popularity, has become known as a “tag cloud”.
Hierarchical tags
For me, this approach doesn’t scale well. With more than a few dozen tags, the organization cries out for some further structure. This is true for tags describing web pages as well as tags describing photos or blog posts, but the sheer number of photos I take, and the diversity of their tags, first made the problem acute in that context. I have tags for a dozen different types of boats, for example, and for several dozen places, and for more than 30 people; mixing those together in an alphabetical sequence is counterproductive, yet that is what sites such as Flickr force you to do. In the Photoshop Elements organizer (which is where the Fotiva/Photoshop Album code base ended up), you can have hierarchical tag categories, so I have Places > USA > California > San Francisco Bay > Angel Island, and Boats > Sailboats > Schooners. I have hundreds of tags, and without these categories they would be much harder to use.
A proposal for tag clusters
To use the tag hierarchy in this way, you have to create tags within the hierarchy. Once tags are created, you can apply them in Photoshop Elements using drag-and-drop from the tree-structured tag list.
Simply entering tags as free-text, whether they are new tags or ones you’ve used before, is widely used on the web, and it is the ultimate in simplicity. But it doesn’t provide any clear way to support a tag hierarchy. With a few dozen tags, it’s fine, but as time progresses and you have more tagged material, it becomes less effective.
For blog authors, the problem is similar but has some different twists. For this blog, I have sections and tags, but they have no relationship to one another; they are two orthogonal organizing schemes. Sections are more static than tags; they must be created independently of creating a post. Tags, on the other hand, can be freely created just by entering them when creating a post. Since blog search engines such as Technorati, as well as some photo sites like Flickr, search on the tags, it is important to have reasonably specific tags, especially if you want to associate blog posts or photos with a particular event.
So what I end up with is tags that are very specific, and sections that are very general, but no connection between them. If tags knew what sections they belonged in, then I could dispense with assigning posts to sections as well as giving them tags. I could also list the appropriate tags as an index for a given section, to provide an easier way to navigate it.
Ideally, sections should be created by clusters of tags. For example, posts tagged as ruby-on-rails or php or css should all appear in the Web Development category. The question then becomes how tags get associated with sections. Any time a new tag is used, the blog engine could prompt the user for the section to which it belongs. Potentially, sections could be inferred automatically, using an existing lexicon for reference.
I think a similar approach could work for tagging photos. It could make sites like Flickr more capable organizers, or make programs like Photoshop Elements easier to use for tagging.
I’m planning to explore a Mephisto extension along these lines. I’d love to hear about any experiences you’ve had with organizing tags into clusters or hierarchies to make them more useful.
Inspirations: Getting Real
Posted Tuesday, December 12, 2006 14:23
A little more than a year ago, I heard Jason Fried’s “Getting Real” talk at the second Web 2.0 conference. For me, it was the most valuable part of the event, and more inspirational than anything at this year’s Web 2.0 summit. Then I read the Getting Real book, and it started me on the path to a career change. (Originally sold as a PDF book, you can now buy it that way, or as a printed book, or read it free online.)
Getting Real provided a vivid description of the way I wanted to build products, even though I couldn’t have elucidated it nearly so well—and it also put into stark relief what felt so limiting about the way Adobe builds products. It inspired me to believe that I could build products on my own, that I didn’t need to raise lots of money, and that in many ways I could accomplish more, and certainly have more fun, working with one or two partners on my own that I could at Adobe.
If you’ve been in the web applications world, 37signals and Getting Real are probably old news to you, and you can stop reading now. For the rest of you, I’ll provide a quick summary.
There’s two central, revolutionary tenets of the Getting Real philosophy:
- Minimize everything that isn’t the real product. Forget specs, MRDs, and focus groups. Don’t try to understand the whole problem or design a comprehensive solution. Build the simplest thing that might work, for a problem that you understand. Get people using it, listen to their feedback, watch what they do, and iterate.
- Less is more. Provide fewer features. Write less code. Do less. Most of what you’d do that is beyond the core not only doesn’t matter much, it gets in the way.
This is not academic advise; it is a philosophy that has led to several successful products at 37signals, including Basecamp, Backpack, and Campfire. There’s free trials of all of these hosted apps available, so you can see for yourself what this design philosophy results in. The apps are sparse, and occasionally I really wish for a feature that isn’t there, but I’ve still found them invaluable. And the learning curve is measured in minutes, not days.
If you care about building better software, especially for web applications, read this book. But if you work for a big company, beware: it could end your career there.
The Spreading Spam Scourge
Posted Monday, December 11, 2006 21:45
If you thought email spam was bad enough, you should try running a web site with a user forum and a mailing list.
At BoatingSF, I have both, and they’ve become increasingly painful.
To post to the Forum, users have to register, which requires filling out one of those “human detectors” that makes you enter some oddly presented characters. (These things are called CAPTCAs, by the way, an acronym for Completely Automated Public Turing test to tell Computers and Humans Apart.) Then they have to click a link in an acknowledgment email. So every post either comes from an actual human, or from some pretty sophisticated automation.
Even so, I’m getting 3-4 spam posts a day. I suspect this is coming from some low-grade humans using some automation software, where they fill in the bits that are hard for machines to do. Or maybe there’s now software that is successfully doing OCR on the CAPTCHA, or the code has somehow been bypassed. In any case, this forum is getting far more spam posts than legitimate ones (it has been slow getting this forum going), so yesterday I reluctantly made all topics moderated. Now, I can just ignore the requests to approve the posts, instead of having to delete them, and they don’t appear for even those few hours before I get around to deleting them. So, alas, the legitimate posters now pay the price in a posting delay.
I also have an option for visitors to the site to sign up for an email list. I send out a newsletter about once a month. In reviewing the list of subscribers, I found about 100 names that were clearly spammers—email addresses that were random sequences of characters, and that now bounce. Why would they bother to do this? Because the confirmation email has my return address, because I want people to be able to communicate with me and I don’t expect people to read email that doesn’t come from a valid email address. So apparently the spammers sign up for the list to capture the return address. That address, which I have been careful never to publish anywhere else, now gets about 50 spam messages a day. Fortunately, Gmail (which hosts the mail service for my domain) is very good at trapping them.
Over at the Ruby on Rails Wiki, the once-valuable content has been overrun with spam posts that completely replace the contents of a page. This site could be made a lot more spam-resistant, but apparently the administrators have been too busy with other stuff to do so. The value of the wiki, which was at one point a key source of Rails information, has been eviscerated by the spammers.
The open nature of the Internet allows a very small minority of dishonest, unethical folks to cause a lot of hassle for everyone else. I guess it is like living in a very big city—you simply have to keep your doors locked if you don’t want stuff stolen. But surely there’s more than can be done with technology to stop these parasites.
For further reading:
- Series of articles on various types of spam and approaches to stopping them, at Wikipedia
- Project Honey Pot, an innovative approach to battling spam
- The SpamHaus Project, another organization fighting the good fight
- The (Evil) Genius of Comment Spammers, a Wired Magazine article from 2004
- SPAM, the meat product :-)
- Video of the Monty Python Skit that led to unsolicited mail being named after a meat product
Confused about spam
Posted Sunday, November 26, 2006 22:16
There’s a couple things I just don’t understand about the massive proliferation of spam.
First, who responds to these messages?
I assume someone must, or companies would stop sending it.
Do people not realize that most of these messages are blatantly deceptive? Who would want to do business with a company that uses these sorts of practices? Are people this desperate for unofficial sources of drugs to improve their erections?
It would be fascinating to see some profiles of the companies that send this spam, and the people who are their customers.
Second, why is it so hard to stop?
It seems to me that a simple, effective, and valuable solution would be to provide a mail infrastructure that collected one cent per message. Anyone who didn’t want spam could simply decline to accept mail that didn’t go through this collection process. No one would choose not to send a legitimate message for a penny, but it would destroy the economics of sending out millions of messages for a few replies. And the money that was collected would provide ample incentive to build and support the mail infrastructure.
What Happened to IBM Service?
Posted Sunday, November 26, 2006 21:34
I’ve used IBM Thinkpads for a long time. Upon leaving Adobe recently, I had to purchase my own notebook PC for the first time in many years. After asking around, and hearing that there was still no one else that matched IBM’s notebooks for quality (except perhaps Apple), I decided on a Z61t, a widescreen model with an SD card slot and better speakers, but otherwise similar to the T61 (the latest in the T series).
I’m not entirely happy with this machine and now wish I had gone for the T61 instead, but that’s another story. This rant is about IBM’s service.
Although now made by Chinese PC company Lenovo, service in the U.S. is still handled by IBM. My machine came with a keyboard that was loose at one edge and thus made too much noise. After checking the Lenovo site for warranty info, I was redirected to the IBM site to place an “electronic service call” (ESC). The web form required a full mailing address, but the form’s fields didn’t have enough characters for either the name of my street (Occidental Rd.) or my city (Sebastopol). So IBM collected a mailing address that might well not work for actual mail.
The form required an email address, but I never received any email from IBM throughout the process. They seem to have missed the idea of communicating with their customers.
Instead of giving me a phone number to call, the web site said that an IBM technician would call me. I was filling this out late at night, so added a note to please call in the morning. They called 30 minutes later, at 11:45 pm, when my household was asleep.
When I finally talked to a service rep the next day, he was pretty good. He suggested that IBM send me a replacement keyboard, so I didn’t have to send the machine back for service. He pointed me to a web page that showed how to remove and replace the keyboard. He was now about to ship a part to a truncated mailing address, but this turned out not to be a problem, as he had to enter the address into a different database anyway! When I asked about why he had to reenter the info, and why the web form had such short fields, he explained that the service call form put information into an old database, and that it was “very expensive” to convert the form and its records to the new database.
Isn’t this the sort of thing IBM is supposed to be good at?
Of course, the new keyboard didn’t fix the problem.
Later, I had a problem with the wireless range. The Z61t shows only about two-thirds of the signal level of a T43p in the same location. I braved a confusing, many-layered voice menu system and then a long hold time to get to a human instead of going back to the web form. The service tech walked me through updating of several different pieces of software, which of course had no effect (does this sound like a software problem to you?). At the end he essentially had nothing to offer, other than that I could send the machine in for warranty service, but what they would do was to reformat the disk and reinstall the OS, to be sure it wasn’t a software issue. This didn’t seem like a good option after spending three days installing software and configuring the system, so I decided to live with the mediocre wireless performance.
At one point in this process the service tech asked a question about my system configuration. I wasn’t sure of the answer, so I asked if he could verify it from the database. But oh no, that information was only in the sales database, not in the service database, and he didn’t have access to that database.
Maybe IBM isn’t doing their best, since after all supporting this computer is just fulfilling an obligation to the company to which they already sold their PC business. But these multiple, incomplete, disconnected databases and antiquated web interfaces are an embarrassment to a company that is trying to promote itself as a leader in the Internet world. And the fact that I had two problems with the machine, and they couldn’t come up with a satisfactory solution to either of them, was discouraging for a $2000 product.

