Senator Ashdown

I've known of Pete Ashdown for probably close to fifteen years. I've been a customer of his since the fall of 1994.

I just discovered today that Pete is going to run for Senate and campaign against Orrin Hatch.

I did some volunteer work for Hatch's 1988 campaign when I was in High School. I voted for him in 1994 and, more reluctantly, in 2000. (As I've previously written elsewhere, in 2000 Hatch narrowly avoided facing a challenger in a Republican Primary.)

I'm enthused and excited about Pete's candidacy. We need more technologically savvy politicians. We need more politicians who've succesfully started their own small businesses. Pete will definitely be getting my vote next year. And I plan on getting involved in his campaign.

— Michael A. Cleverly

350 comments | Printer friendly version

Eating your own dog food

I'm back in Austin, TX for another two days of Vignette training, this time for "Portal System Administrator" training.

Newer releases of Vignette's portal product (7.2) come with an OEM version of the Autonomy search engine. The instructor was not sure whether it was available for the prior release (7.1) or not. I decided to see if I could find out for sure by searching Vignette's website.

The first thing that jumped out at me was that Vignette's search results advertise that they are powered by Thunderstone, and not Autonomy.

And the Autonomy website doesn't appear to even have any search capabilities at all. Luckily there is always Google to the rescue.

I guess neither company has fully learned the virtues of eating your own dog food.

— Michael A. Cleverly

415 comments | Printer friendly version

The flight of the urban bats

Just returned from watching the nightly takeoff of what is apparently the largest urban bat colony in America.

There are 1.5 million bats living under the Congress Avenue Bridge in Austin. One of the facts I wasn't previously aware of (until reading some of the informational signs near the bridge) was that mother bats can eat their own body weight in misquitoes and other insects each night.

— Michael A. Cleverly

351 comments | Printer friendly version

Caveat Emptor: Counterfeit e-Tickets

Having built an online ticketing website (with fairly advanced—even today, let alone five years ago—reserved seating features), I was naturally quite interested in security guru Bruce Schneier's post about stupid people purchasing fake concert tickets.

Apparently at a recent U2 concert in Boston scalpers sold duplicate copies of e-Tickets for up to $2,000 each. (Wow. I doubt the biggest U2 fan I know personally would have paid even a tenth of that.)

The first person in the door with the e-Ticket wins. Everyone else is left out in the cold. It's surprising people would trust a total stranger to part with large sums of money for what might very well be just a worthless sheet of paper.

— Michael A. Cleverly

335 comments | Printer friendly version

Snit's Not Incr Tcl hits a major milestone

Wow, Will has been busy this week: First a new version of Notebook, and now Snit has reached the version 1.0 milestone!

Snit is my personal favorite Tcl OO-extension—the delegation model just feels so naturally Tcl-ish to me.

Now, I wonder if Ramble version 0.5 might be just around the corner? My kids sure hope so... :-)

— Michael A. Cleverly

443 comments | Printer friendly version

Beginning to think about nstcl 2.0

Inspired by Snit reaching v1.0, I've started to think about what could go into a version 2.0 of nstcl.

nstcl 1.2 has proven itself fairly stable. It replicates a lot of AOLserver and OpenACS APIs faithfully. Literally faithfully. The database APIs are typically the main reason people use nstcl, in particular the db_* commands, since you don't have to mess around with database handles or result sets, etc.

But under the hood, in version 1.2, the db_* commands are all built on the same ns_db and ns_set primitives from AOLserver that the original db_* commands in OpenACS use.

It works, but given that the ns_db commands merely wrap Tcl extensions for each particular database, I suspect there is effeciencies that would be achieved by writing the db_* commands directly in terms of the C-based database extensions, instead of in terms of ns_db, which in turn wraps the C-based database extensions.

Aside from performance enhancements, I don't have a lot else in mind—it's a fairly mature and feature complete package. However, I'd love to hear any suggestions anyone might have for additional enhancements beyond speed improvements for the database API.

— Michael A. Cleverly

348 comments | Printer friendly version

Recycled Knowledge

By a serendipitous chain of blogs (Beginning: 1 -> 2 -> 3 -> 4 -> 5 -> 6 = End; six degrees of seperation?) I discovered John Cowan's Recycled Knowledge blog.

A lot of the posts on this blog are simillar to the sorts of things that my siblings and parents would (could) sit around the dinner table talking about for a couple of hours on a Sunday afternoon/evening. I recommend exploring this site... it's a keeper.

— Michael A. Cleverly

445 comments | Printer friendly version

Business email cliches

From: michael@cleverly.com
To:   gentle.reader@blog.cleverly.com
Date: Jun 7, 2003 8:02 PM
Subj: Business email cliches

I just wanted to make a suggestion: let's touch base after you've had a change to read the post linked to in the subject above. If you could read it sometime today that would be great. Going forward we should discuss it by leaving comments. And once you've commented, we'll go from there.

— Michael A. Cleverly

326 comments | Printer friendly version

Covered entities and HIPAA: where do employees fit in?

Bruce Schneier thinks that HIPAA, the U.S. medical privacy law has been gutted. The brouhaha is over details regarding an as-of-yet unreleased Department of Justice advisory opinion reported in the New York Times [tedious registration required].

Before buying the idea that the fix is in, read Jeff Drummond's (of HIPAA Blog) first take on it:

There are basically 2 schools of thought here. Washington State's US Attorney (along with my friend AUSA [Assistant US Attorney] Pete Winn) feel that you don't have to be a covered entity to be guilty under HIPAA. There is some precedent to that in federal jurisprudence, that basically goes along the lines that you can't do something through a surrogate that would be illegal for you to do, nor can the surrogate do something through or on behalf of another party if it were illegal for that other party to do it. I think it's a tenuous argument, but I'm not an appellate lawyer (especially not a federal criminal appellate lawyer -- good God, isn't HIPAA boring enough?).

The other school of thought is that HIPAA explicitly applies to covered entities, and to covered entities only. Can a non-covered entity violate a law that does not apply to it? I think this is the better argument... Of course, there's some benefit to covered entities if they can scare their employees with potential jail time for violating the company's HIPAA policies...

As a policy matter, the second school of thought seems fairer to me. And Congress could choose to expand the definition of "covered entities" to all employees of today's covered entities by passing ammended legislation, I would think.

The HIPAA Blog post concludes on a related tangent:

Which brings up another good point: even if HIPAA doesn't apply, State laws might. Other federal laws, such as the identity theft laws, might also apply (remember, the big damage and potential big money in HIPAA breaches isn't the medical information; it's the social security numbers, account numbers, credit card numbers, mothers' maiden names, and other things that allow identity theft or credit card or bank scams).

Which reminds me of a semi-disturbing situation I observed recently when I got strep throat (for the second time in a row) and went to the InstaCare. They were fairly busy that evening; as I recall there were four or five other patients ahead of me to see the doctor. While sitting in the waiting area several additional patients came in. During registration (I guess they weren't in the database already; I only had to give my name and confirm my address), they had to recite all kinds of goodies like their full name, date of birth, SSN, address, phone numbers, etc.

I remember thinking that, if I were an identity thief (which I'm not!), this would be a perfect ueber-low risk location to eavesdrop at and pick up all kinds of identity information. Kind of scary!—though on a much lower scale than banks losing millions of SSNs.

— Michael A. Cleverly

707 comments | Printer friendly version

An NNTP proxy in one screenful of Tcl

One reason Tcl is my favorite language is the ease with which you can write network applications.

Consider this little NNTP proxy. I want to be able to run a local news server (so I can read news offline) and a non-GUI newsreader on my PowerBook (to access comp.lang.tcl & other groups), but my current broadbrand provider has lousy news servers as compared to my longtime ISP (from whom, unfortunately, I cannot currently get DSL thanks to qworst).

I do have a friend, however, who lives only a mile away, who can get DSL. He's tenatively agreed to host this little proxy for me. That way I can connect to a good NNTP server without having my old credentials passing clear text over the Internet.

#!/usr/bin/tclsh

proc accept {sock host port} {
    if {[lsearch -exact {127.0.0.1} $host] == -1 ||
        [catch {socket -async news.example.com 119} conn]} then {
        catch {close $sock}
    } else {
        fconfigure $sock -blocking 0 -buffering line
        fconfigure $conn -blocking 0 -buffering line
        fileevent $sock readable [list copy-from-to $sock $conn]
        fileevent $conn readable [list copy-from-to $conn $sock]
    }
}

proc copy-from-to {source destination} {
    if {[eof $source] || [eof $destination] ||
        [catch {puts $destination [gets $source]}]} then {
        catch {close $source}
        catch {close $destination}
    }
}

socket -server accept 8119
vwait forever

Actually, that should work with any line oriented protocol, not just NNTP.

The bolded items above are things you'd want to customize to your environment. You'd probably want to flush out the list of IP addresses you want to allow to connect to something beyond just 127.0.0.1 (or remove the check all together if you wanted to proxy for the whole world). You'd change where you are proxying to from news.example.com port 119 and (maybe) change the port that the daemon binds to from 8119 to something else.

— Michael A. Cleverly

349 comments | Printer friendly version

Employers who can't trust their employees vs. those who can

In "Management's role in passionate users" Kathy Sierra presents a continuum illustrating how different management approaches lead to different levels of passionate, engaged employees:

When I was at Deseret Book I helped start WLS: "work less stupid". There were many policies and procedures built up over the years (largely driven by the bean counters) that led to all sorts of inefficient, tedious, labor-intensive processes, largely because said policies and procedures were built on the premise that employees weren't to be trusted.

Let me illustrate with an example. My friend DeAnn supervises the call center that processes all direct to consumer orders (mail, phone, etc.). Customers who were members of the bookclub (a program largely obliterated by subsequent strategic marketing moves), by default, had a $50 line of credit.

This $50 credit limit was set back in the early 1980s when the price of a hardcover book was generally still in the single digits. By the time the world was approaching Y2K the price of books had gone up significantly (many paperbacks were in the double digits, and most hardcovers were around $25). The default credit limit was never adjusted for inflation.

As the supervisor, DeAnn had the authority to release invoices of people who were over their credit limit. Which turned out to be the majority of all orders.

Suppose you had 700 orders that needed credit approval. Most all of them would be approved—either they were only a few dollars above $50, or they were long time customers who'd proven to be very reliable. Maybe there would be a dozen or so orders that you wouldn't want to release (instead contacting the customer for some other form of payment). How would YOU design the system?

If you didn't trust your employees to actually review each order, or to use their time wisely if they did not have lots of busy work to do, you'd build a system like Deseret Book had: the invoice numbers of the 688 orders to be released had to be rekeyed into a series of screens one at a time to be released (instead of just deleting the dozen from the batch of 700 and releasing the batch).

It would take DeAnn and her trusted helpers up to four and a half hours a day just to release invoices. Talk about a lack of trust!

The "work less stupid" approach leveraged the power of Tcl (and in particular Expect) to massively speed up the data entry. The steps became:

  1. Log into the mainframe and "print" the credit limit exceeded report to the screen
  2. Save the buffer to a file and pull it into Excel
  3. Review orders, and delete the rows for the dozen that aren't credit worthy
  4. Run the spreadsheet through an Expect script which logged into the mainframe, parsed the spreadsheet, and then automatically (at rapid speed) simulated the typing of the necessary keystrokes to release each invoice individually

We took what had been a four and a half hour (or more) job each day of data entry and reduced the data entry part to three minutes. That's working less stupid. And that's the kind of leverage you get with Tcl & Expect.

Of course we kept it all very hush hush at the time. We were afraid if the CFO found out DeAnn would have to go back to doing things the hard way, and I might face all sorts of reprimands for having written the solution. It was a well kept secret for almost three years until finally the old mainframe system was phased out (and Deseret Book got a new CFO who wasn't such a fan of busy work). None of the bean counters ever noticed that DeAnn's typing speed (when it came to releasing orders) suddenly rocketed to the stratosphere...

I imagine some of you have stories (either about being trusted, or a lack of trust at work), so feel free to leave a comment and share.

— Michael A. Cleverly

24211 comments | Printer friendly version

Mathematics and Physics for Programmers

Since I've gotten setup for offline news reading on my PowerBook again I'm catching up on the newsgroups I used to follow.

In a rec.puzzles post the author of Mathematics and Physics for Programmers announced the publication of his book.

At the moment Amazon.com lists the availability at 1-2 months, while across the pond Amazon.co.uk has it available to ship within 1-2 days.

The book covers "commonly encountered mathematical and physics concepts such as vector motion, collision detection, angular physics, game theory, artificial intelligence, Bezier curves, etc." Sounds like a possibly good refresher, but I still have to finish studying the books I previously bought.

— Michael A. Cleverly

513 comments | Printer friendly version

I somehow managed to make this weeks Dr. Dobb's Tcl-URL!

I was very surprised to see that my post on ***= in regular expressions (one of only two I've made since getting offline news reading setup last week) made it into this weeks Dr. Dobb's Tcl-URL!.

For those unfamilliar with Tcl-URL!, it is a weekly digest summarising the best of comp.lang.tcl, the Tcl'ers Wiki and other community resources. Good reading, especially if you don't have time to follow the newsgroup & wiki closely.

— Michael A. Cleverly

346 comments | Printer friendly version

Commuting

I commute a little over thirty miles (according to Google Maps), or around five miles more than I used to before I changed jobs in March.

That's further, each way, than most people (in times past) used to travel during an entire lifetime. And if I lived in California covering that distance could easily take two hours or more each way.

Luckily the Salt Lake valley isn't like California—yet. The daily drive can be done in thirty-five minutes when the roads are empty. At rushhour it usually takes at least forty-five or fifty minutes. A particular bad accident on I-15 through Davis County could slow things down by an extra half hour.

Tonight there was a traffic light out at the intersection of two fairly major highways (Bangerter Highway & SR-201) that added at least an extra fifteen minutes. At least I don't have to worry about multiple bridges being out.

I carpool as much as possible. This helps to alleviate the stress (not always having to be the one behind the wheel), saves money and fuel, and is generally a good idea. But this week I'm on my own; my regular carpooling companion is off at a week long SANS training in Atlanta.

I can't stand to listen to the radio very much (either FM or AM), aside from KBYU some mornings. The talk on AM is shallow, repetitive, and dull. There are no more consistantly good radio stations. They all start to sound the same, and there are far too many commercial interruptions. If I wanted commercial interruptions I'd rather watch TV (which I rarely do anymore).

Maybe I should buy an iPod and use the commute time for continuous learning? If UTA ever got a decent express bus route going from Davis County to the west side of Salt Lake County, I could sleep or read news or even do some in-depth self study. But we'll probably have commuter rail before that'd ever happen.

I quite enjoy my work, but in case you hadn't guessed already, the commute is driving me crazy! Some day (perhaps once the house is paid off in ~8 years?) maybe I could have the kind of commute that Kevin Walzer has to his job (hint: he has none).

Or perhaps my company will realize that since they're already paying for my broadband connection, I could actually use it some days, and not just when it's my turn on the after hours on-call rotation...

— Michael A. Cleverly

391 comments | Printer friendly version

You are probably related to Charlemagne, cousin

You are probably related to Charlemagne. John Cowan calculates the odds at nearly 100% that, assuming you have any European ancestors, not all of your great-grandfathers who lived at the time were not Charlemagne (meaning that at least one of them was).

(The probability isn't exactly 100%, obviously, but I'm going to round since typing "99." followed by ~15,000 more 9's would take too long and make this post unreadable. If you remember scientific notation from Jr. High or High School that's 1E-15000.)

A simillar calculation should be true about Saint Olaf (though the odds would be slightly less since Charlemagne lived several generations earlier than Olaf Haraldson).

I believe Becca probably has genealogy records showing at least one line from our parents back to Charlemagne. Maybe she could post them?

— Michael A. Cleverly

350 comments | Printer friendly version

Stephen Kelson gets married

My long time friend (since Jr. High many years ago) Stephen Kelson married his sweetheart Rachel today. Though I haven't seen Stephen's parents and sister in over a decade it's almost as if none of them have aged at all. They all looked the same.

We just got home from the reception where we ran into a lot of old friends we hadn't seen in several years (despite most of them still living along the Wasatch Front). Brett Nielson (who was my roommate my freshman year at BYU) and his wife Andrea had flown in from San Antonio, TX (where Brett is doing his residency in radiology). It was great to see them too.

It's amazing how much faster time seem to go as you get older. Even though the rate of passage of time is a constant, each year the following represents a smaller and smaller fraction of your overall life.

For example, at age five the next twelve months represent a repeat of 20% of your life. At age thirty-two a mere 3.125%. Perhaps that is why time seems to speed up as we age?

— Michael A. Cleverly

343 comments | Printer friendly version

What more OSS projects need: people like Kevin Walzer

Many OSS projects produce useful code—after all, they generally begin life as a solution to some programmers specific concrete problem. ("Scratching a personal itch [of the developer]" as Eric S. Raymond famously said.) Documentation, sadly, is often an afterthought for many projects.

That is why I think projects would greatly benefit from having more people like Kevin Walzer. People who can contribute (not just) open source code, but (equally if not more importantly) superb documentation as well.

— Michael A. Cleverly

358 comments | Printer friendly version

I'm with Mrs. Seamons

Don's wife is beginning to hate marketers because "all marketing tries to do is sell you stuff that you don't need."

Don goes on to give an answer where he quotes Seth Godin ("the world's best-known marketer"—I'd quibble and say "one of the internet's well known marketers"):

Marketing is not about trickery or even insincerity. It's about spreading ideas that you believe in, sharing ideas you're passionate about... and doing it with authenticity. Marketing is about treating prospects and customers with respect, and realizing that it's easier to grow the amount of business you do with happy people than it is to find new strangers to accost.

I'm not buying it.

What Seth says, and what Don aspires to, may be true for some minority of marketers. I'd wager it's the most effective form of marketing, and the least soul-damaging for the marketer themselves. It might be what marketing should be, but it certainly isn't what it generally is in my experience.

Of course I've always been somewhat skeptical of marketing. My parents taught me as a child to realize that advertising was meant to play on my emotions. That I wouldn't necessarily be as happy with <fill in the blank toy> as the children depicted on TV. That the happy smiling beautiful people in cigarette ads in magazines weren't made happy by the cigarettes they were smoking...

I've long thought that Lucifer was the world's first great marketer.

Contrast Seth's idealism with that of another (apparent) Internet marketing guru, Hugh MacLeod, as quoted on Don's blog:

Ordinary people actually aren't that different than ad agencies i.e. they're only going to tell your story if there's something in it for them. With ad agencies, it's easy—they just want the large wads of cash.

Which jives with the first hand testimony about one local marketer/promoter, Doug Wright, that I heard from his (Doug's) wife: put a dollar bill on his tongue and he'll say [aka market, promote] whatever you want...

So, Mrs. Seamons, I agree with you.

And Don, I'm sure she loves you for many reasons above and beyond your bill paying abilities. :-)

Updated June 22 to hide Don's wife's name since she prefers to remain nameless online.

— Michael A. Cleverly

353 comments | Printer friendly version

Sometimes a job stops being right for you

David St Lawrence, as always, hits the nail right on the head:

Even the best of employers can create a losing situation while trying to add a new position to the organization.

Very rarely does the organization realize that they created a new position without analyzing how it would affect the existing organization. . . . This can even happen when an existing position is being filled, especially when the previous occupant has left the company.

He writes this in a post entitled "Sometimes a job is not right for you". My only thought is that it could just as aptly be titled: "Sometimes a job stops being right for you."

Rightness and fit in a job is not a static universal constant. As an employee you grow, your interests change, and your skills evolve. As an employer, needs, markets and strategies change (sometimes quarterly or more often)...

I know—I held a job for six years that, for five of those years, I thought I might very well retire from. Then the organization changed to the point that I realized I no longer fit.

— Michael A. Cleverly

339 comments | Printer friendly version

On the value of work and persistence

MicroISV linked to a very interesting article entitled "A working history for Brad Wardell: Why I think anyone can make it." Here is how it begins:

When I was 4 my dad left us. My mom and I moved to Michigan. I was a child who grew up in a single parent household whose mom worked for minimum wage while we lived in a small (but nice -okay mom?-) apartment trying to make ends meet. We lived amongst other poor people. And I realize this won't win me any politically correct awards but most of the people who I met who were poor were just losers. People who were too foolish or stupid to live responsibly. The woman who lived next door paid me 10 cents per bag (when I was 6 years old) to take her garbage out to the dumpster. Her money came from welfare. In the entire time we lived there, she never got a job. She had 3 kids, each from a different man. She had money for cigarettes though. Money for booze. But couldn't get a job. I'm sure she would be the first to complain that "the rich" don't pay enough in taxes.

And how it ends:

And the rest is history. By 24 I was a millionaire. And during the stock bubble, my company's valuation was ridiculously high (wish I could just stick with that number ) which fortunately coincided with my 10 year class reunion!

So what's the excuse of able bodied people who are poor? I'm not particularly intelligent. I don't enjoy working any more than anyone else (just ask my mom). But I did what I had to do. And now I pay 6 figures in income taxes of which a large percentage of it goes to other people. If I can make it, why can't others? If you are able bodied, what's stopping you?

I think Americans are very generous people. As a nation, we spend more on programs to help the poor and downtrodden than any other nation. We provide more aid to the poor of the world than any other country. And our country is rich in opportunity for those willing to work for it.

Often that work is mindnumbingly crappy but opportunity lurks for those who are persistent. Don't let pride be your downfall. I got my start taking out garbage for welfare mothers and worked my way up to painting fences in the blistering heat and so on today. If I can make it, anyone can.

In between there's a lot of interesting detail about how he taught himself how to program, worked his way through college while holding three jobs, and built up his own software company. Definitely worth reading...

— Michael A. Cleverly

358 comments | Printer friendly version

Teaching my children to talk to strangers...

I'm going to make sure Shauna and I teach our children the benefits of talking to strangers when they need help.

Bruce Schneier writes:

In Beyond Fear I wrote: "Many children are taught never to talk to strangers, an extreme precaution with minimal security benefit."

In talks, I'm even more direct. I think "don't talk to strangers" is just about the worst possible advice you can give a child. Most people are friendly and helpful, and if a child is in distress, asking the help of a stranger is probably the best possible thing he can do.

Brennan Hawkins, the eleven year old boy who was lost in the mountains for several days (and whose family, coincidentally, lives near my parents in Bountiful) might have been found sooner if he hadn't hidden from the "strangers" he saw who were out looking for him.

According to one news report:

Brennan does not remember much of the four days he was missing, his parents said. They said they do not plan to push him to talk about his time in the woods, but they have learned a few answers.

He told his parents and a friend that he would sleep in a crouch, with his sweatshirt pulled down over knees to keep warm. And the parents said Brennan probably took their advice a little too literally about avoiding strangers.

"When an ATV or horse came by, he got off the trail. When they left, he got back on the trail," Jody Hawkins said. "His biggest fear, he told me, was that someone would steal him."

Thankfully his families prayers were answered and all is well that ends well. But the rest of us can still learn from this and help our children understand that while they should be wary of a strange adult approaching them that it's better to seek out help when they need it.

— Michael A. Cleverly

338 comments | Printer friendly version

When chocolate won't suffice

I think I'd feel very cheated too if I (quite reasonably) thought I'd won $100,000 but only got a candy bar instead.

— Michael A. Cleverly

684 comments | Printer friendly version

Apparently marketing != (just) promotion

Don has two replies up to my response to his post about how his wife is beginning to hate marketers.

(Incidentally, it's kind of fun to have an inter-blog exchange. This is a first for me, and I believe it is for Don too.)

In his first response, Don wrote in part:

I DESPISE advertising that manufactures need. I think much of the advertising aimed at kids borders on the unethical.

But that's not marketing.

Not the essence of it anyway. Marketing is much more than promotion. It's also about developing products and services that meet a need, pricing them at a level the market can bear, placing them where they can be found, and staking a brand position in the market that differentiates them from the competition. The essence of all these things is facilitating the connection between buyer and seller.

I'm happy that we both despise the same thing!

I'll confess, I've never stopped to consider that product development could be considered a part of marketing. "Staking a brand position in the market" sounds like promotion to me, though. (I suspect there is some subtle difference; perhaps I'm just too obtuse to see it.)

In his second response he elaborates more:

At any rate, Michael's objection wasn't with marketing, it was with promotion. Promotion--advertising, direct, publicity, media relations and the like--is probably the most villified of the 5 P's (the other four, for you non-marketers, are product, placement, pricing and position). I believe some of that disdain is deserved. But in most cases, the problem isn't that marketers want to manufacture a need. They just want to be the one out of many choices that people make. They want to connect buyer and seller.

Of the millions of people that see a TV spot for Meier & Frank, the vast majority of them will ignore it. The rest of audience will either go to the store or wish they could. But for a retailer like M&F, whose business model depends on getting as many people into the store that they possibly can, that's the best they can do. They've got to cast as wide a net as they can. Competition and the constant need for growth compel almost all businesses to do the same.

Is there any way to distinguish the business model of Meier & Frank (casting as wide a net as possible to sell their wares, driving Don's wife to hate marketers in the process) and the sundry firms who daily seem to try to get me to enlarge various organs of my body, or buy all kinds of perscription drugs online? Aren't they too merely casting the net that their business model requires?

As a society we're suffering from information overload. I don't have time for the promotional hype. I'd be less bothered by the plain facts, without lots of hyperbole.

I still cringe when I see Deseret Book advertising; really, come on now... does their marketing department honestly believe every single title published is sure to be cherished for generations? (On the contrary, for every copy that ends up being bequeathed to a future generation, several hundred—if not more—copies end up for sale for 25¢ at Deseret Industries...)

I guess what I (and probably Don's wife) long for is just the plain facts, without the hype, without being patronizing or condescending or exaggerated—and all of that spoken with a real voice. Most companies and organizations aren't doing that in 2005.

I suspect Don will tell me that is what exactly what Seth and other marketing-thinkers are saying (if I but took the time to tune in to what they were saying; maybe we're already mostly in violent agreement?... :-)

— Michael A. Cleverly

308 comments | Printer friendly version

OTM: A web server with a "One Track Mind"

Last night I decided to sit down and write a web server from scratch. Since it seems to be reasonably feature complete at this point, I've decided to unleash it upon the world. (The only thing I can think of to add would be a GUI for those who are command-line phobic).

I've named it OTM since it is a webserver with a "one track mind." And when I say one track mind, I mean it. The differentiating feature of this web server is that it will respond to every single request the same way!

Possibilities include:

Before you laugh, I can think there of a couple of niches where this type of web server could hit a sweet spot...

  1. When you need to take a website down for maitenance, but don't want to muck with changing your regular webservers configuration—just shutdown the regular webserver and fire up OTM with a placeholder message.
  2. When you want someone to be able to snag a specific file off of your desktop quickly & painlessly.

Here's a link to the source code. Like my NNTP proxy, it is written in Tcl.

— Michael A. Cleverly

753 comments | Printer friendly version

Printing beautiful music

Sadly, I've never learned how to play the piano, or read sheet music beyond the very barest of basics. But seeing how beautifully music can be typeset makes me wish I knew more. Perhaps some of my more musically gifted siblings might enjoy this software.

— Michael A. Cleverly

287 comments | Printer friendly version

-> Next month (with posts)
-> Last month (with posts)