Fri, 29 Oct 2004

Pricing That Doesn't Make Sense is Annoying

Seth Godin is trying to make a point about how people act differently when on camera.

Odd segue: Today, in anticipation of a dinner party, I stopped at a lobster seller in Chelsea Market in NYC. I asked for a six pound lobster. The pricing at the store is $9.95 a pound for small lobsters and $8.95 a pound for lobsters six pounds and up.

The lobster weighed (I'm not making this up), 5.97 pounds. For reference, that's just less than a pound by the weight of a penny. Feed the lobster a plankton and it would be six pounds.

He started to ring me up at $9.95 a pound. I pointed out the price breakdown and the guy shrugged and said, "It doesn't weight six pounds."

Two co-workers came over and with precisely the same uncomprehending grin, repeated his point. I added a penny to the scale but they weren't swayed.

So, the two questions are, "Do you think the owner wanted them to act this way?" and "Would they have acted differently if they were on camera?"

Maybe because it's obvious, but he doesn't mention the absurdity of the pricing scheme. The price for the lobster should, of course, be something like $9.95/lb for the first pound and $8.95/lb for each additional pound. Damn, it's annoying when you run into companies that have stupid pricing.

Mark Hurst describes a conversion with a Dell sales rep in which the sales rep explains that a computer without a monitor costs $400 more than the same computer with a monitor.

business | Comments | Permanent Link

Thu, 28 Oct 2004

Google Ads are Hard

We haven't had much luck with Google Ads for Postica so far. There's a lot of competition in the spam filtering market so it's hard to stand out among 10 ads for spam/virus filtering products and services on the same page.

It's frustrating having what I think is a great service, and not being able to reach potential customers. We're mostly focusing on selling through partners now, but we haven't completely given up on Google Ads yet. Here's our latest.

business » marketing » advertising | Comments | Permanent Link

Northern Trust Does Good Economic Research

The smart folks at Northern Trust publish daily economic reports that are short, informative, and full of interesting graphs.

From a recent report on the illusory nature of the recent growth in household net worth:

The rise in household net worth in recent years has largely resulted from inflating prices of corporate equities in the late 1990s, and residential real estate in the past four years. But this rise in household wealth is illusory. The true measure of an increase in the wealth of a nation is the growth in its capital stock. In recent years, growth in our capital stock has slowed and the composition of the slower growth has moved in favor of McMansions and SUVs, which do little to increase the productive capacity of our economy.

From a report titled Investment Implications of the Inevitable Rebalancing of the U.S. Economy or Making Lemonade Out of Lemons, here's a chart of the residential real estate "P/E" ratios, i.e. the ratio of market value to rental rates.

I've setup an RSS feed of their reports so I can read new ones as soon as they're released. It tracks their daily and weekly reports, as well as their economic outlook forecasts which are published monthly.

Update (11/09/2008): I've redirected northerntrust.rss to a Yahoo Pipe that aggregates Northern Trust's own RSS feeds. It does not include their press releases, however.

business | Comments | Permanent Link

Sun, 24 Oct 2004

How To Vote on November 2nd in California

I was planning on writing up a summary of how you should vote on each of the propositions on the California ballot in the upcoming election. Steve Friedl beat me to it though, and since I agree with him, in general, I'll limit my comments mostly to where I disagree and the emphasis of points I concur with.

Prop 59

Public Records. Open Meetings

Yes - public disclosure of government actions is good.

Prop 60

Election Rights of Political Parties

Yes - American elections are broken in general. The current system makes it almost impossible for third-party candidates to be elected. We really need to move to a system in which voters can vote for multiple candidates such as approval voting or even better, Condorcet voting in which voters rank the candidates.

Prop 60 does nothing to improve the situation, but, at least, keeps third-party candidates on the ballot.

Prop 60A

Surplus Property

Yes - Requires the government to pay off debt when they have a garage sale. I'd prefer they give me back my money, but this at least puts it to good use.

Prop 61

Children's Hospital Projects

No - Steve's right

The first thing I do when evaluating a bond measure is to look in the argument supporting it: if it says in capital letters "DOES NOT RAISE TAXES", I automatically vote no. This is like saying that using your credit card DOES NOT TAKE CASH OUT OF YOUR WALLET, and if they will be intellectually dishonest on this, I won't believe anything else they say either.

Politicians are idiots. They think they can borrow money without any way to pay it back.

Prop 62

Elections. Primaries.

No - I'm not opposed to open primaries. If political parties want to nominate candidates in a closed matter, they can figure out a way to do so not at public expense. I'm against 62 because it limits general elections to two candidates. (The opposition's repetitions about the Klu Klux Klan are absurd, though.)

Prop 63

Mental Health Services Expansion

No - Tax the rich to pay for others' medical problems? No thanks.

Prop 64

Limits on Private Enforcement of Unfair Business Competition Laws

Yes - This will require plaintiffs to show actual damages in order to sue for "unfair business competition". There are probably lots of things other than fraud encompassed by "unfair business competition" that shouldn't be illegal, but that will have to wait for another election, I guess.

Prop 1A/65

Local Government Funds/Revenues

Yes on both - I don't know that local government is any more fiscally responsible than state government, but I suppose they can be held accountable easier.

Prop 66

Limitations on "Three Strikes" Law. Sex Crimes. Punishment.

Yes - It doesn't get the people in prison for victim-less crimes out, but, at least, keeps me from paying as much for their incarceration. As the opponents point out, it would let out some nasty criminals who are currently imprisoned for less serious crimes, but who have already served their time for their more serious felonies. If their earlier sentences weren't long enough, sentence guidelines for such felonies should be changed. This proposition does double the sentences for sex crimes against children.

Prop 67

Emergency Medical Services. Telephone Surcharge.

No - There is already a 10% city tax on my phone. I don't want to pay 3% more. I pay for my medical care. If you came to my door saying I had to pay for your medical care, I'd tell you to get lost. If doctors aren't being paid, they should find a new job, new customers, or start a charity to raise money for them.

Prop 68

Non-Tribal Commercial Gambling Expansion

Yes - I have mixed feelings about this one. Since Indian reservations aren't really sovereign nations, in that their "citizens" are also U.S. citizens and are, as far as I know, entitled to the same tax-payer funded benefits, they should pay the same taxes imposed on the rest of us. This initiative doesn't impose the same taxes, but would collect significant revenues.

Alternatively, it loosens the restrictions on gambling, but not in a free market way, granting rights to some existing enterprises.

So, 68 gets an unenthusiastic Yes.

Prop 69

DNA Samples. Collection. Database.

No - I don't think this is terribly prone to abuse, but I don't like the idea of treating people who are arrested the same as those convicted.

Prop 70

Tribal Gaming Compacts. Exclusive Gaming Rights.

Yes - Another anti-free market initiative that gives Indians a monopoly on gambling in exchange for, apparently, unaudited tax revenue.

Prop 71

Stem Cell Research

No - Stem Cell research should be done by private enterprises using private funding.

Prop 72

Health Care Coverage Requirements

No - Employees should negotiate with employers for health care benefits that they want.

culture | Comments | Permanent Link

Fri, 15 Oct 2004

Make Pretty Charts with PHP/SWF Charts

PHP/SWF Charts is a PHP script and flash file that can build great looking charts. The flash part does all the work. The PHP script just generates the HTML tags to embed the flash file. It can generate a number of different types of charts including line, column, and pie charts.

We're using it at Postica to generate charts for our customers showing statistics on the number of spam and malware blocked, for example.

tech | Comments | Permanent Link

Thu, 14 Oct 2004

A Rare Sight Captured on Film

On page 27 of the September 25, 2004 U.S. edition of Time magazine appears a picture of the President of the United States, George W. Bush, in which he does not appear to be an idiot.

Fascinating.

culture | Comments | Permanent Link

Sun, 10 Oct 2004

Blosxom Static Rendering with Writeback Plugin

This site runs on a poor little Pentium MMX 200, so the performance of Blosxom, the software that drives the site, isn't very good. Luckily, Blosxom has a static rendering mode which allows Apache to serve flat html pages. In order to use the writeback plugin, though, POST requests to trackback an entry or post a comment must be handled directly by Blosxom.

So I set up Blosxom in a hybrid manner where new entries are rendered statically every 15 minutes, and the entire site is re-rendered every two hours to bring in comments and trackbacks to the flat pages. All POST requests are handled by Blosxom, as are requests for pages which haven't been pre-generated yet. I can also temporarily disable static rendering if I want to preview a new post without it showing up on the index pages.

My crontab

*/15 * * * * test -f /usr/local/www/xn.pinkhamster.net/.gen && /usr/lib/cgi-bin/blosxom -password=xxxxxxxxxxx -quiet=1

# regenerate all pages to pull in comments
15 */2 * * * test -f /usr/local/www/xn.pinkhamster.net/.gen && /usr/lib/cgi-bin/blosxom -password=xxxxxxxxxxx -all=1 -quiet=1

I can remove the .gen file and preview an entry by going directly to the entry's URL.

Apache Rewrite Rules

RewriteCond %{REQUEST_METHOD} !^POST [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{DOCUMENT_ROOT}/static/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/static/$1 -d
RewriteRule ^/blog(/?.*)$ /static/$1

I test for an empty query string so that Blosxom will handle the request when I want to enable autotrack. Also, if I want to preview changes to an entry that has already been generated, I can just tack something on to the query string.

It looks like this is similar to Rael's setup, but he only serves the statically rendered index pages directly from Apache and has Blosxom handle all individual entry pages.

tech | Comments | Permanent Link

Sat, 09 Oct 2004

Tivo Sucks

...a little

Neanderthal Tivo

My Tivo died last weekend. I suppose I'm not quite a typical Tivo owner. I have an old TV with just an RF input. Up until a few months ago, when I moved to Northridge, my only television source was an antenna. I had my Tivo hooked up to my TV, and had my DVD player plugged into my Tivo. My Tivo was configured to think that my DVD player was a satellite receiver.

There were a couple nice things about this setup. I could start a movie on the DVD player, and then use the Tivo remote to control it, allowing me to use the instant replay feature, for example. I could also record DVDs to the Tivo by setting up a manual recording. There are a number of downsides to such a setup, though. I couldn't watch DVDs while the Tivo was recording something. Also, a number of Tivo features didn't work correctly. Tivo stopped recording recommendations after I setup the satellite receiver (DVD player) and some of the search features stopped working. I think it would only search the satellite channel list, even though I had setup My Channels to only include a single channel from the satellite input, 100 - Pay-per-view Previews, that I used to watch DVDs on. I also couldn't take advantage of multi-channel digital audio on DVDs, though that didn't matter with my RF-only TV.

Movin' on Up

I decided to buy a stereo a few weeks ago. I've never owned a real stereo. I've had a sub-$200 bookshelf stereo for about 10 years and the CD player no longer liked playing the first three tracks of most CDs. I was thinking about getting one of those home-theater-in-a-box systems because I figured it would be good for listening to music as well as watching movies. Music is much more important to me than movie sounds effects, though, so I wanted to make sure that music would sound good on the system.

On a Sunday afternoon, I went down to Best Buy with two CDs, Idlewild's The Remote Part and Tom McRae's self-titled. First thing I learned, music sounds like crap on those little speakers that come with those home-theater-in-a-box systems. Ideally, the store would allow customers to hook up any receiver to any CD or DVD player and to any speakers. It didn't seem to work like that at Best Buy, though. So I picked up a Sony Receiver, STR-DE897, assuming it would probably sound good and that I could always return it if I had any problems. Next, I had to decide on speakers. They have a bunch of speakers hooked up to receivers and CD players that have about 6 music tracks you can choose from. After listening to the same tracks over and over, I decided on a pair of Sony floor speakers that sounded good and weren't too expensive. I found a sales guy and told him which speakers I wanted, and he said they didn't have any. Here's a recommendation for brick-and-morter retailers: If you don't have somethingn to sell, take it off the shelf. If I wanted to order something and wait a few days before taking it home, I would've bought it online from the cheapest store.

I bought the receiver since it was a pretty good deal. There was a 10% and it was an open box, so the price was about $270. Next, I went to Circuit City to check out their speakers. (I also went to Good Guys, but quickly left after checking the prices. This is my first real stereo; I'm not fanatical yet.) I spent a long time listening to different speakers and decided on a pair of Polk Audio floor speakers. It should be noted that Circuit City has a much better selection of songs in their test systems. I listened to Snow Patrol and Franz Ferdinand song a number of times. There weren't any sales people working in the audio section, so the car audio guy (he apparently doesn't know anything about audio equipment that can't easily be mounted in an automobile) wrote down the item number and told me to take it to the register. Not having learned my lesson, I was frustrated, though not terribly surprised, to learn that Circuit City only had a single speaker of the model I wanted in stock. So I went home with just a receiver.

I hooked up the receiver to my Tivo and little bookshelf speakers, and ordered the speakers I wanted from circuitcity.com. After doing lots of research trying to determine if there's any possible way for copper wires that come in fancy packaging to sound better, I went to Home Depot to buy some 16-gauge wire.

After getting the new speakers setup, I decided to get the DVD player hooked up directly to the receiver so I could watch DVDs while the Tivo is recording and see how the digital audio compared to running audio over RCA cables through the Tivo. Back at Best Buy, I bought an RF modulator and a digital coax cable. Next lesson, "digital coax" cables are the same as normal RCA coax cables, so that $12 cable is going back to Best Buy, replaced by one from the 99 cents store.

Death of a Tivo

After getting everything hooked up, and powering everything back up, I found that the Tivo had died. Black screen, green light. That's it.

Pressing the Tivo button on the remote made the green light flicker, but couldn't wake the box from it's sleep. I tried hooking everything up how it had been previously thinking that maybe the Tivo got confused when the inputs had changed, but no luck.

My Tivo is just over two years old, long out of warranty. I have paid for the lifetime service, so I definitely wanted to get it repaired, and not have to buy a new Tivo. I opened up the Tivo and found that the hard drive was spinning up, but it didn't sound like it was seeking at all. I pulled the hard drive out, stuck it in my computer, and was able to make a backup using MFS Tools. I emailed the guys at weaKnees, who sell Tivo upgrade an repair parts, and asked if I could bring it. They said it sounded like a bad power supply and that they didn't have any replacements.

I called Tivo to see how I could go about getting it repaired. I hoped that they had local authorized repair shops that I could drop it off at and, hopefully, have it back within a few days. Tivo has an obnoxious voice response system. Automated telephone systems that make you press a myriad of buttons are bad enough, but those that make you speak to them, which I'm sure the manufacturer claims is more satisfying to customers, annoy the hell out of me. After finally navigating the system to the place where I tell the system I wanted to speak to a human, I was told there was a 20 minute wait.

The tech support guy, of course, made me go through the motions of unplugging and replugging the Tivo, pressing the Tivo button on the remote, and even made me replace the coax cable between the Tivo and the TV, not convinced that the cable was OK despite the fact that the television worked fine with the Tivo unplugged and the signal passing through it.

Eventually, we got to the point where he told me I could them my Tivo and $79 and get a replacement. I suppose this is a pretty good deal for a device that's out of warranty. Seventy-nine dollars is also the amount that Best Buy charges for their four-year insurance policy (not an insurance policy in Kansas) on a Tivo. I've never worked in the insurance industry, but it sounds like Best Buy, or the insurance underwriter, would make a good profit off such policies.

FedEx Kinko's shipped my Tivo to Louisville, KY for $10.05. The best thing about the presendential debates is that I can watch them commercial-free without a Tivo.

culture | Comments | Permanent Link

Sat, 02 Oct 2004

Overcoming Procrastination

Steve Pavlina, the founder of Dexterity Software, has written an excellent article on overcoming procrastination. If you don't have time to read it right now, here are the major points to avoid procrastinating on a given task.

  1. Realize that you don't have to do it.
  2. Start on a small subtask.
  3. It doesn't have to be perfect.
  4. Do things you enjoy first.
[via Business Opportunities Weblog]

business | Comments | Permanent Link

Fri, 01 Oct 2004

Clusty Asks "Which Hat?"

Clusty, the newest next Google, asks you which hat you're wearing after you do a search by grouping related results into clusters. So you can search for eclipse, and it will give you the option of seeing results related to lunar eclipses or software.

Under Customize!, they have a blogs channel, and even a slashdot channel.

tech | Comments | Permanent Link

Correct Use of FROM Clauses

There's an interesting article by Stéphane Faroult on ONLamp about when to use subselects rather than JOINs in SQL queries. He says that only tables from which you are returning columns or those tables necessary to join such tables should appear in the FROM clause. All other tables used to limit the rows returned should appear in subselects in the WHERE clause. He rewrites


select distinct a.CUSTOMER_ID, a.CUSTOMER_NAME
from CUSTOMERS a,
     ORDERS    b
where a.ZIP_CODE in ...
  and b.ORDERED_DATE >= ...
  and b.CUSTOMER_ID = a.CUSTOMER_ID
order by a.CUSTOMER_NAME

as


select a.CUSTOMER_ID, a.CUSTOMER_NAME
from CUSTOMERS a
where a.ZIP_CODE in ...
  and a.CUSTOMER_ID in (select b.CUSTOMER_ID
                        from ORDERS b
                        where b.ORDERED_DATE >= ...)
order by a.CUSTOMER_NAME

He also gives another way to rewrite the query as an uncorrelated subquery. (Read the article for an explanation of the difference between correlated and uncorrelated queries.)

Having done almost exclusively MySQL development, I have yet to ever use subselects, but I'll definitely keep Faroult's article in mind for when I do.

tech | Comments | Permanent Link

The state is that great fiction by which everyone tries to live at the expense of everyone else. - Frederic Bastiat