Sunday, December 07, 2008

Twitter Train Traffic

I still haven't quite talked myself into using Twitter but I suppose I'm inching towards it.

Today I ran across a really cool use of the service, but one that also shows the flaw in its enforced brevity: Swiss rail delays are posted at

This is a great idea, and apparently the PR folks at Burson-Marsteller had something to do with it. The only problem is that the cornerstone of Twitter is a 140-character limit on posts ("tweets" to the kids).

So you get things like this:

Zwischen Ramsei und Langnau auf der 
Linie Burgdorf - Langnau ist die
Strecke für den Bahnverkehr un...
#sbb #cff #ffs
...which translates loosely as "Between Ramsei and Langnau on the Burgdorf-Langnau line, train traffic is un..."

Of course you could always hire a programmer to condense all that into txt-ese bt nobdy likes u thn. Or you could break it into multiple "tweets," but that breaks the paradigm.

Instead, I think Twitter should allow longer "tweets" in cases where all of the following conditions are met:

  1. The twitterer is a robot.
  2. The information is also available elsewhere (i.e. it's not someone just asking for special Twitter treatment).
  3. The feed is clearly a public service.
  4. Information would clearly be lost at 140 characters.

Traffic reports of all kinds would qualify. Updates from your political party, television show, or church would not.

Saturday, November 29, 2008

Giving up on a local WordPress install on Mac.


WordPress is nice, but setting up a local instance in a nonstandard environment is more trouble than it's worth. WordPress was designed for shared-hosting environments that have a classic "LAMP" application stack preconfigured (Linux+Apache+MySQL+PHP). It was specifically not designed to run on a wide variety of server environments.

Fortunately, for the kind of work I want to do (blog template design) there are acceptable workarounds. But this latest encounter with the MySQL and PHP ecosystems has left me, once again, sorely tempted to just build my own blogging system.

Read on if you want to geek out on some of the details. If you just want the conclusion, it is: use a standard virtual machine (VM) or set up a sandbox blog in a shared environment. Either one of those will work well enough, and the VM approach is probably the closest you'll get to a "safe" install. Unless you're being paid for the setup time, I strongly advise against trying to make it work locally in anything but a stock configuration.


A while ago I set up a blog with a friend of mine: Migratorium. It's an outlet for our travel writing, or at least it will be.

It runs on WordPress in a shared-hosting environment over at Dreamhost: bang, meet buck, at least for small projects. I really like the WordPress user interface, but even with great templates like veryplaintxt I quickly became frustrated with the design possibilities.

In short, you have to learn some PHP (painful but not so hard) and the arcane, under-documented WordPress templating system (ditto) in order to do any meaningful design. Since I already know HTML, CSS, Perl, and Template Toolkit, I thought I'd be much happier building my own sites using those technologies. And it would keep me away from PHP, which I dislike, and MySQL, which I abhor.

Then I thought about setting up an RSS feed. No biggie, just another afternoon. Then I thought about setting up a decent editing UI. No biggie, just another weekend. Then I thought about making it easy for my non-computer-geek friends to use. Uh-oh... that started to sound like real work.

So I decided to make at least one serious effort to teach myself enough WordPress Templatese to either do serious design in that ecosystem or give it up from an informed position. And for that I need a local copy of WordPress in which to hack the templates.

Technical Goals

I'm doing this on an Intel Mac running the latest version of Leopard (OS X 10.5.5 as of this writing). I use lighttpd as my local web server and would prefer to use that, but I will use the built-in Apache if I must. I have MacPorts installed, but I would prefer to run this under the system default PHP. I also want this to run on SQLite if at all possible, since I want to hack templates, not databases.

Trying to Get There

  1. I checked Google first.

    Oh-oh. The first thing I found is that only MySQL is supported, as WordPress doesn't have a database abstraction layer. That's a shame, but it seems like an absolute.

    There is one plug-in that gets you close: PDO, but its limitations make it sound just about as onerous for my purposes as MySQL itself.

  2. Install MySQL

    OK, let's see if this can be done with minimal exposure to MySQL. 2 tablespoons has some instructions for getting MySQL running under MacPorts. That almost worked, but not quite. Following more info under the comments I found I had to set the socket file in /opt/local/etc/mysql5/my.cnf:

    socket = /tmp/mysql.sock
    socket = /tmp/mysql.sock
    I also had to create the run directory:
    sudo mkdir -p /opt/local/var/run/mysql5
    Now I was able to start the system, but everything complained about the socket file location. I fixed that in my aliases in .bash_profile:
    # evil mysql is required for local wordpress
    alias mysql5='mysql5 --socket=/tmp/mysql.sock'
    alias mysqladmin5='mysqladmin5 --socket=/tmp/mysql.sock'
    alias mysqlstart='sudo /opt/local/bin/mysqld_safe5 &'
    alias mysqlstop='/opt/local/bin/mysqladmin5 -u root -p shutdown \
    Backgrounding your startup command with & is a Very Bad Practice but it seems like that's what mysqld wants; I may be using the wrong command altogether. Also note that you will almost certainly have to set that socket location explicitly in other commands/configs as well. Once you have the above aliases in effect don't forget to set your MySQL "root" password (not to be confused with the system root password). Press RETURN at the Password prompt, or enter whatever the previous password was.
    mysqladmin5 -u root -p password MYSECRETPW                

    At this point I'm able to connect to the database server with mysql5 and issue some simple commands, so I consider it done-ish after about two hours of work. Further tweaks will be listed below.

  3. Pour another glass of tasty Basque wine; do not give up yet!

    This little exercise is already confirming my various prejudices against MySQL and PHP and all sloppy engineering everywhere in the universe. But man, I do love that editing UI. Must... persist! Thank you Xarmant Txakolina!

  4. Install PHP from source. Ouch.

    I'd actually gotten far enough to have the PHP running, more or less, though without valid HTTP headers and without a successful database connection. And then I hit the php-cgi wall. Turns out you have to install from source, the standard install doesn't work properly with lighttpd.

    Fortunately Simplistic Complexity had a helpful blog post.

    Unfortunately that doesn't work with MySQL installed via MacPorts.

    I tried a few of the obvious tweaks to the make process and realized I would have to reinstall MySQL. And that's where I hit the wall.

Hitting the Wall

Having spent most of the day on this and gotten very close, I had to ask myself: Is it worth it to push on through?

Since I make software for a living I'm always tempted to put on my Big Fat Engineer's Hat and complain about the quality gaps in whatever piece of software I'm pounding my head against at the moment. But that wouldn't be even close to fair in the WordPress case: here is a product I really like as long as I don't have to look under the hood; and its content-management UI is frankly more usable than any equivalent thing I've ever built, and even if it is finicky on the server side I think the proof of its value is in the client experience.

I love WordPress for its content-management UI, and there's no special reason why its installation prerequisites or developer documentation should be tailored to my needs. If I cared that much I could contribute to the project, or fork it, or write my own.

So in the interest of fairness to a justly popular blogging system, and also in the interest of my own sanity, I gave up on my little snowflake of a local WordPress installation.

Instead, I'll try it their way and see if I can make some headway with the templates. A lot of generous people have given a lot of their time to this open-source product, and I still hold onto the hope that I can more easily beef up my WordPress templates than use (or write) a different blogging system.

To be continued (perhaps virtually).

I think the most sensible thing to do now is install a VMWare image with a recent version of WordPress. It looks like rPath has one.

That has the advantage of still being more or less "local" even if a bit resource-intensive; and if it doesn't work, it's always possible to just set up a sandbox WordPress account with an obfuscated URL.

I'll be sure to update the blog with the results of that operation when I have time for it.

Wednesday, November 26, 2008

Heavy web dev: TechCrunch is a 2MB page.

One of the blogs I read all the time is TechCrunch: it covers the high-tech startup scene.

You could argue that it's more than a blog since it's a full-fledged business with multiple partner sites and paid writers, but I still think of it as a blog because if its focus on immediacy. Everything is reported fast and off-the-cuff, with even the more ponderous, essay-like posts obviously written in haste.

As I was looking at it today I started wondering how big, in terms of data size and bandwidth, a site like that is. The answer: almost two megabytes for the home page.

Folks, that is a lot. Yahoo's front page, which also takes a long time to load and is also full of Flash adverts, clocks in at 445K today. The chart view on Google Finance, which has light ads but very heavy (and feature-rich) Flash, is 680K.

I'm not trying to pick on TechCrunch here: the fact is that the acceptable size of any web page has grown phenomenally in the last year or so. As an iPhone user and a Web developer I find the trend worrisome.

Of course you want to make the page as rich as possible for the user, and of course you want to maximize your ad revenue. But you have to balance that against a fundamental aspect of usability: if the page takes too long to load, or puts too great a burden on low-power devices, you are leaving a lot of potential users out in the cold.

For my part, I plan to take page size and load time very seriously in my next Web project. I doubt I'll be able to hit my Web 1.0 gold standard of 15K per page, since a decent JavaScript toolkit and a bit of Google Analytics already breaks the 100K barrier, but it's still an important consideration.

(As for TechCrunch specifically, they're very good about publishing a full RSS feed. I read that on my phone most of the time, and read the site a bit during the day since there are often embedded videos and links to other heavyweight sites that aren't as usable on a mobile device.)

Saturday, October 11, 2008

Hungarian iPhone data cost

It seems the iPhone is finally available in Hungary.

The bad news is that the local T-Mobile goonery thinks it's a good idea to bleed the heavy users for data charges.

This is so short-sighted it's comical: you have the one and only revolutionary convergence device in your stores, and you're trying to make an extra buck (Forint) on any unsuspecting schmuck who uses it as intended.

Being more than fair, let's look at the option with the most data, which will cost you about $90 plus tax, more or less what you would pay in America.

That gives you 4GB "data traffic" included in the price -- so we should probably assume that includes all data, Web and Mail and app and SMS and GPS and whatever else might touch the network, in both directions. Go over that and it's 0.1 HUF per 10 kilobytes.

Honestly, I think I wouldn't hit the 4GB border in a month, and I probably use my iPhone on the 3G or Edge network a bit more than average for a late-30s professional but probably a lot less than a teenager would (WiFi doesn't count towards the limit).

So how much money is that really? Let's assume you use 6GB per month, which would seem to be 50% more than T-Mobile thinks the average user would (giving them the benefit of the doubt here on ethics, even at the risk of credulity).

Let's assume they think a GB is 1000 x 1000 KB, which is incorrect but almost certainly the calculation they'd use. That means your extra 2GB are an extra 4,000MB or an extra 4,000,000 kilobytes which is 400000 10KB chunks at 0.1 HUF per.

OK, now you owe the Germans 40,000 HUF. That's about $200.00 US, a bit more than tripling your bill. For exceeding the limit by half in one month at today's (favorable) dollar rate.

This is exactly what smells bad about the arrangement. T-Mobile says 4GB is fine -- but that burns fast if you're much into YouTube, and if their prices were honest they'd be spotting you the equivalent of $400.

We know that's not the case. We know, in fact, that this is a regressive price structure directly aimed at teenagers whose parents will bail them out the first time, much to T-Mobile's benefit.

Make no mistake: business users like me won't get caught by this ruse. We're unlikely to get close to the limit, we're likely to pay attention to the contract, and we can write it off and correct the course if we go a little bit over. But the kids are not going to be so attentive, and they're also vastly more likely to spend a lot of time on YouTube and other data-intensive applications; and further, they're most likely to opt for the $50/mo plan which only gives them 2GB before the evil kicks in. That means a user in the above scenario could see a $500 monthly bill when they expected to pay $50.

This cost structure is a direct and aggressive attempt to exploit the naive and young among T-Mobile's new customer base. To take advantage of those who want to bring the future into their pockets, and who want to pay T-Mobile a hundred bucks a month for the privelege.

Shame on you, Hamid Akhavan. You had a chance to take the moral high ground, and you're fucking your customers instead. Specifically, you're fucking your customers with families..

Tuesday, September 23, 2008

Gentil Hugel - a pleasant white wine from Alsace.

Lately I've been drinking some tasty and inexpensive white wine from Alsace, which you might remember as the place Tomi Ungerer comes from.

This is called Gentil "Hugel" - by itself a fun multilingual mix, like Alsace/Elsaß itself. A link where links do well:

The web site is actually pretty charming, with things like pictures of the hotel in Macau where they went to (presumably) sell wine.

Anyhow, this wine was imported by Frederick Wildman & Sons - a pretty reliable importer, in my experience. The single bit of marketing copy that really struck me as true (from the site) is the description of the wine as grapey.

Yes, it's very grapey. It tastes like Autumn. I recommend it. I paid twelve bucks US.

Sunday, September 21, 2008

Bank of America Online is down down down...

I'm sure it's just a minor, temporary glitch, but in these scary times it's unsettling when your online banking is unavailable without any explanation.  At least the ATM worked... um, five hours ago...

Thursday, September 11, 2008

Fun surfing: Alltop Design News

I more or less randomly stopped over at tonight and found lots of good design links to surf through. All of it very high-bandwidth stuff, but cool. I'm not sure what to make of alltop per se - besides better aesthetics, I don't quite get what they give me that the likes of Google and a couple good blogs don't already - but there you have it, variety is the life of spice.

Tuesday, September 09, 2008

I've been a loyal customer for years.
I recognized the Mobile Me rollout as a travesty from the start, but as a software engineer I knew what the problem was: technically oblivious upper management had forced the release of half-baked software over the authors' objections.
So far I've held on as a loyal customer, and I have no plans to leave. For me, the price is easily worth it -- if the software works. And I genuinely believe Steve Jobs was caught off guard by the rank incompetence of his web-app management, and has cracked the whip unambiguously.
I'm not going anywhere in 2008. But hey, Steve: you promised it would get good this year, and it's already September, and:
  • Mail I've handled on my iPhone or on still doesn't "push" to my Mac 12 hours later.
  • The "reply" function on routinely throws the web-app into a bad state ("action not allowed").
  • Sync from my Mac to to the iPhone is basically nonexistent.
Message from me to I still love you and I believe in you, even if you made a catastrophically bad call on SproutCore. But if you don't make it by January, I'm out. Sure, you might still keep my money, since $100 for non-mail sync and not changing my email address seems like a good deal to an old fogey like me, but still: I'll find my escape hatch and sing its praises to the world, and that would be sad.
You were never exactly the best, but you always cared. Please, me dot mac dot mobile sprout dot oops dot com, pleeease don't fail.

Sunday, August 24, 2008

YouTube ads for porn?

Since I don't live under a rock, I know there's a lot of crossover between pornography and YouTube. But today I saw it manifest in a brave new way.

Having followed a link from Seth Godin to I semi-accidentally clicked on this video link:

Which got me the screenshot above. Fascinating.

(And no, I didn't click on the porn link. Could be, um, a Trojan.)

Saturday, August 23, 2008

Psychedelic Cattle

It's morning again, and again I'm washing my shoes. This is the ritual. This is how summer passes wraithlike through San Francisco, in a barely perceptible, stubbornly sticky coat of red-brown dust. In pitchers of Radeberger, in Porta-Potties full of bats.

The word Zeitgeist, a good German word with more than a hint of the Enlightenment about it, is almost translatable, and what it can almost be translated to in English is the spirit of the times. It's one of those words we know or pretend to know if we read the New York Times on Sunday, and pretend to not know if we really like motorcycles. But if the Zeitgeist was ever a spirit of the times, it would have to be the times of a soaring NASDAQ and resurgent cocaine chic and that glorious self-delusional high of not quite winning in the Boom. Of having more than you should, but less than you could, and in any case having it all built on a tower of some flat, syrupy artisanal homage to England.

But that wasn't really the moment. Zeitgeist was full every day then, even on the fog-bitten cold nights, and everyone could always afford enough artisanal British Columbian weed to tough it out. Some of those people still go, but the easy money's gone and the people who got theirs have bought houses and acquired offspring and a habit of not taking them to bars. The Zeitgeist is a spirit, that's as clear as Everclear, but it's not the spirit of the times.

The bartenders, mostly, are still the same. The modern primitive Webmonkey addicts have moved on, and the tattoos have settled back to the honest pedigree of a drunken night out. The ugly people have sway again, and on those warm afternoons when a breeze of gorgeous hipsters wafts over the benches you can close your eyes and remember that the crowd was pretty ugly during the dot-boom as well; it was just much better off.

Now it's back to basics, in a way. Back to people who like to ride bikes; does anyone even remember the bike-messenger fashion? Back to people who like their motorcycles more than their Ducati-branded leather jackets. Back to the rest of us too, loving it and hating it at the same time, thrilled to be drinking a fine Ossi beer in the sun in a cold town, thrilled at the focus on conversation, at the constant pickup that's rarely more than a flirt, at this tiny drop of down-market European civility in such an unlikely place - and in the same heartbeat appalled at the blandness, the lack of ambition, the hesher grunts and the standing water breeding unknown tropical diseases - and terrified, always terrified of those bats.

So maybe Zeitgeist is the spirit of timelessness, or of San Francisco's way of letting a beer sit through two generations of newcomers and still drinking it. Or maybe it's just psychedelic cattle.

(I wrote this for Brice, probably over a year ago, and mailed it to him, but his e-mail was broken that day. I just ran across it again, and I don't think I posted it anywhere, so here it is. And the bats idea was from James. )

Sunday, August 17, 2008

Wednesday, August 13, 2008

Apple's movie rental service is an insult.

Lately I've been buying TV shows off iTunes. Dexter, The Wire... cool stuff, almost (but not quite) enough to make me want a TiVo or whatever the TV-watchers use these days.

Then I tried to rent a movie, just for kicks. I knew Apple had this idea that a rental is only for one day, which is straight out of 1985, but I wanted to give it a shot. Because even if the selection is clearly not aimed at people like me, the price point is: I pay $3 for a movie six blocks away, so $2.99 is a strong temptation to not take the walk, especially at night.

So I downloaded The Passenger, and watched about a third of it before falling asleep. Now, about an hour past the 24-hour mark (I was warned!) I'm lost in a confusion-profusion of shitty app development worthy of Vista Premium Super Edition.

When I enter iTunes where the movie was playing, I see it's expired. Bummer, bad business model, strong incentive to visit the Pirate Bay, but hey -- I was warned, and I ponied up my $2.99 anyway. But wait, there's more!

When I try to play the movie anyway, it sorta-kinda plays. The small preview window shows a still of what I think is the spot I left off, and the large window shows me a field of grey... but gives me the full audio. Awesome. I can spoil the plot without straining my eyes! But wait, it gets even better!

If I try to pause the movie, I'm told that stopping it is going to erase it, but that I can resume it if I like. And resuming it gives me the grey screen with the audio. Thrilling.

I finally gave up. And next time around, I'll either hit the video store or, if it's too late, maybe the Bay, or maybe -- just maybe -- pay the $10 to "buy" the movie for a single use (iTunes DRM makes it impractical to do much more, at least in my world).

It's a shame, because Apple is pretty close on this one, they just seem to have made their plans without consulting anyone who actually rents movies. Maybe they only talked to Netflix and Disney, and split what they thought was the difference.

Hey Steve, it's simple: let me watch the movie once through, no matter how long it takes, and no matter how many times I stop, start, rewind (within reason) and even quit iTunes. Let me watch it as many times as I want within 3 days of finishing the first time. Bingo, with that you will have my corner videotheque beat: they only do 3 days from the rental, and they close at 11. Of course, they have a much better selection than iTunes, but I think that's a different issue.

Honestly, it baffles me that they screwed this one up so bad. But then they completely blew the "Mobile Me" launch and I still have to wait six hours to buy an iPhone, so it does rather look like Steve's perfectionist grip is not so tight these days. Sad.

Sunday, July 13, 2008

Omega Recoil at the Fire Arts Festival

Tonight I went over to West Oakland to see the Fire Arts Festival, and particularly to see Omega Recoil's "Rat Scientists" performance.


It's a really fun bit of absurdist theater, in which giant rats in lab coats conduct experiments on "human" subjects beneath a giant upside-down Tesla coil. That's right, monkey boy: beneath an upside-down Tesla coil!

Beyond that, the amazing thing about the festival is all the fire. Fire looks really good. Really big flames look really good. But I actually didn't see much of anything that I'd call "fire art." Not because the art itself is the typical aesthetically immature Burning-Man-Outsider-Art sort of thing - of course it's that, and more power to it.

The reason is that it's "art with fire" instead of "fire art."

Ooh, what about a giant metal tricycle... WITH FIRE?

How about large-breasted women standing in front of.... FIRE?

Or maybe a big meditating Buddha made out of scrap metal.... WITH FIRE?

Or how about some flying trapeze artists, risking life and limb on a giant scaffolding... WITH FIRE?

To be fair, I did see a couple things that seemed to deserve the name Fire Art. There was one thing that seemed to be just a metal bucket with a flame in it. Assuming it didn't later turn into a whirlygig machine-art dingleberry WITH FIRE, then it's probably in the clear. And there was a guy who had a square column about a meter high, on a pedestal, with a fire in it, melting something on the outside. That probably qualifies too.

In that sense, the Omega Recoil show really stood out. It was fun, it wasn't self-important, it was frankly a whole lot more death-defying than any of the fire games, and it was actually about Electricity and the Tesla coil. (Presumably as a condition of participation, some wooden chairs caught fire while the hu-man subjects were basking in their electroshock mating ritual.)

(Disclosure: I live with John Behrens and Fearghal O'Dea, so I probably would have said something nice about the Rat Scientists even if I didn't like the show.)


The coil at rest.


Art With Fire.

Wednesday, July 09, 2008

Double your IQ or no money back.

I saw this today on Facebook. I wonder if Mr. Gate is really that smart.

Wednesday, July 02, 2008


Thao Nguyen and the Get Down Stay Down deserve as many blog posts as there are bloggers to post them, so here's one more.

I bought the two albums available on iTunes and have been listening to them a lot lately, and they continue to grow on me, especially the earlier one. There's no way I could ever stop digging "Big Kid Table" -- in addition to being awesome, it was my introduction to Thao, when I saw her perform it solo at the Utah over a year ago.

But lately I find myself listening to both albums back to back while working, and I think I have a new favorite. But it's a secret, in case I change my mind.

If you're looking for some good new music, and above all smart, witty music, check out Thao. Plus she's smokin' hot, which is always a nice complement to talent.

Wednesday, June 25, 2008

Printing with TextMate, vim and Friends.

TextMate and vim are my favorite text editors. Unfortunately, TextMate has very little support for printing. It's a nightmare, really, and unlikely to be fixed any time soon. The author simply isn't particularly interested in printing.

Fortunately, vim is really good at printing, at least to PostScript, and does syntax highlighting better than just about anything else. And fortunately, TextMate is designed to let its users easily hack together their own supplementary solutions, called Bundles.

My solution to the printing problem is, in short:

  1. Print from vim to PostScript.
  2. Convert the PostScript to PDF.
  3. Open the PDF in Preview.
  4. Do all this with the standard command-P shortcut.

First, here's the bundle item:

    [ -n "$TM_FILEPATH" ] && \
    PDF_FILE=~/Desktop/`basename "$TM_FILEPATH"`.pdf
    PS_FILE=/tmp/`basename "$TM_FILEPATH"`.ps
    vim \
        "+set number" "+syntax on" "+color slate" \
        "+set printoptions=number:y" \
        "+set printfont=courier:h9" \
        "+hardcopy > $PS_FILE" "+q" \
        $TM_FILEPATH &>/dev/null && \
        ps2pdf $PS_FILE $PDF_FILE && \
        rm $PS_FILE && \
        open $PDF_FILE

And here's a screenshot to make it even easier:

TextMate Bundle

To get this working on your own Mac, you need to install the xpdf package from MacPorts, and then find a suitable color scheme for vim printing if you don't like the default. There's a great write-up on that last bit over on the Vim Tips Wiki. Once you've installed/tweaked/tested your scheme, just replace the "slate" reference in the bundle text above.


  1. This prints in 9pt Courier, with line numbers and wrapping, because that's how I think code should be printed.
  2. Only saved files are printed; your "buffer" is not. I may change that later.
  3. It will probably break if the slate color scheme is not installed. That was the best scheme installed by default on my Mac, hence the choice.
  4. The PDF is saved to your Desktop, overwriting any like-named PDF, e.g. I like having the thing on my desktop, but I may make it clobberproof later.
  5. YMMV, it's probably buggy, and so on. If you aren't comfortable hacking UNIX, don't try this at home. I actually don't think it's good enough yet to submit to the bundle repository, so don't make any assumptions.

Friday, June 20, 2008

I want a Facebook app...

...that aggregates the notifications and "feeds" from the other, crappy, can't-be-bothered-to-try social networks I'm still on. Actually what I really want is for that functionality to be built in to the Facebook iPhone app. Because I still have a bunch of non-technical friends who joined networks like MySpace or iWiW (in Hungary) back before those networks threw their hands up and stopped caring, and I still want to know what they're up to, but I don't want to log on to those train-wreck sites to find out. (I'm lookin' at you, iWiW, selling out your home culture, and I don't mean the sale to T-Mobile. Sajnálom, de ezek a programmozók rossz gyerekek. Az üzletemberek is. You can't just screw your friends when you get a little money.) I still love LinkedIn but mostly because I like the idea of keeping business networking and social networking separate. I'm one of the few people who can see the logic of their recent $1B valuation, but they're still very vulnerable. Their viability as a business essentially depends on Facebook considering that market too small to be worth the distraction. So that's my main wish. Social networks want to be monopolies, and since we know (or think we know) that's bad for the economy we'll settle for a short list of them. My money's on Facebook, LinkedIn, and a revived Orkut (since Google can just spend its way to innovation). Meanwhile, memo to Zuck: let me give you ad feedback. I'll do it for free, just to not see ads I dislike; and I don't need to explain to you how much more valuable it will make your ad space. On behalf of everyone over 30 on Facebook, I swear this will work. Because anyone who knows me knows the following ad was a complete and utter waste, in fact borderline offensive to my sensibility. And yet I spend bushels of money online every year, much of it on random things "gaming pros" would find trivial, like books and clothes and (no, really) tennis racquets. All they need is a "this is stupid" button to motivate me (not a "close" link which is passive and will be ignored) -- and boom, you make more money. Mine is the generation of participatory permission marketing. I know how the game works, I know the technology, I know the business - and I'm willing to spend a little of my time helping you win, because I believe that better ad targeting systems are in my best interest as well. (For the record: I'm not against making a buck on video games, and I have friends who do. I'm against pretending it's something other than a simple entertainment business. Memo to head office: you're not the new Film.)

Tuesday, June 10, 2008

Welcome to the Clowd

Seth Godin just coined a brilliant new term: "the clowd."
His post is here:
As usual it's pretty insightful, and of course your privacy has been an illusion for a long time now anyway, but there's one thing I disagree with.
The clowd isn't the "crowd-cloud," it's the "clown-cloud."
Don't be afraid. The clown's afraid too.

Tuesday, May 13, 2008

Firefox: Remove from Dock

Firefox 3 Beta on Mac OS 10.5 (Leopard) is so horrifically unstable, I finally had to remove it from my Dock.
It makes me sad.  I loved the idea of Firefox, and I'm in debt to the developers in a round-about way as their once-upon-a-time best-of-breed browser helped me become a better web architect.
But now... now I'm seething.   This is a small shop making over $70 Million a year, and their software crashes several times a day.   I just can't take the risk anymore: I find I've been doing things in Firefox half-expecting it'll crash and I'll be able to recover from a page reload.  But that's often not the case, and anyway isn't this supposed to be the Future?  I don't need the Windows 98 flashbacks.
Guys (and Mitchell) - why the hate?  I always loved you, I beta-tested your browsers since pre-1.0, I fought the good fight inside major corporations for your acceptance back when you were poor... and now this-- this rat-faced crashtopia.
On the bright side:
  1. Firebug's Joe Hewitt works for Facebook and is hopefully getting rich, one of the few to deserve it.
  2. Yahoo is hiring a Firebug developer, and this has Job Security written all over it.
  3. Safari is significantly outpacing Firefox in new browser development.
  4. Opera is back from the (comfy Euro-)grave with an interesting JS debugger.
  5. Firefox 2 with Firebug on Windows XP is still stable enough I can do all my WinXP sanity-checking there (except for MSIE of course, for which I need to consult the Quirksmode Oracle every ten seconds).
So now I find myself trying to readjust to Safari as my primary browser, since Firefox is so unreliable.  And I like it fine, but for two things that have always bugged me, and for which I believe I have fixes.
First, I don't like that Safari doesn't tell me the URL of a link I'm about to click on.  I guess Apple must have asked around and found people generally don't care.  But I'm just geek enough to care, so I'm going to make it do that again.
Second, I think Apple made a horrific (and uncharacteristic) usability mistake when they decided that command-1 through command-0 (10) would open the cardinal bookmarks in the current tab, instead of doing what every other power application does and switch among the first 10 tabs.
I already fixed that in Tiger, so it's not a big deal.  But I remain slightly frustrated that Apple still doesn't quite get tabbed browsing.  I'll be sure to post the fixes back here; and Apple, my dear, if you disagree on the tab navigation item then bring it on, I love you but I'll kick your ass on this one.
That's all for now, I have another hour of playing with KeyNote before I can crash in my own right.
The palaver is (temporarily) finished.

Saturday, May 10, 2008

Lines on a Plane

It's been almost two years since Snakes on a Plane.  A good, fun, low-mental-energy B movie, and in fact a meta-movie if you know the back story.  At its heart is one very good line, delivered by the inimitable Samuel L. Jackson:  I have had it with these motherfucking snakes on this motherfucking plane!
I saw that one on the big screen and almost immediately had an idea for a fun little web project.  I spent a very long weekend tweaking some fairly complicated CSS to get just the look I wanted; and I made sure at every step that it worked in Firefox and Safari.
I figured I could just conform it to Internet Explorer at the end, with a little help from Quirksmode.  What was I thinking?  When I looked at it in IE, I wanted to cry.  Partly because I realized it would take another whole weekend to make it work, and partly because I was reminded that wed designers still have to worry about that scourge, that rat-faced imbecile of a browser.
Anyway, long story short:  I didn't make any noise about the project because I thought I'd eventually get around to making it work in IE.  But now I don't care: it's a funny little project and Internet Explorer is the devil anyway.  It still seems to work in Safari and Firefox, and is probably broken in Explorer.
The project:
Lines on a Plane - what should Samuel L. Jackson say in the sequel to Snakes on a Plane?
Check it out.  Be funny.

Wednesday, April 16, 2008

Firefox Beta 3.05 for Mac: Crash me a River.

I've been trying out the latest Firefox 3 beta (Beta 5) on my various Macs. In many ways this is a huge improvement, but in one pretty important way it's a step backwards: I now get many, many crashes per day. So many that I'm starting to have a Windows flashback. Today, for example, I can't work with it at all. Every second time (approximately) that I enter a search term in on Google, it crashes. Looks like I'll have to reinstall, which is a bummer. This is all par for the course, after all I'm voluntarily testing software. What scares me, though, is a rumor I heard that Beta 5 is the release candidate. It is very far from stable enough to be the release candidate, and I'd hate to see the Firefox Corporation damage their reputation by releasing beta software as final.

Sunday, April 13, 2008

Bank of America (BofA) Screws Up Your Taxes

Update: after wasting a bunch more time talking to robots and robot-like people on the phone, I got half an answer. The 1099-INT was, correctly, not filed for my savings account. However, what happened to the "Keep the Change" 1099, if it exists, is a mystery. I could not find any reference to it beyond the blanket statement that a 1099 gets filed on "Keep the Change" refunds. I had to file without that information. And oddly enough, as far as the savings account goes, the robot on the phone was perfectly happy to tell me what the robot on the website kept secret. So this may all come down to bugs, bugs, bugs. I bank with BofA, and in general I'm pretty happy with them. They screwed up once and charged me an incorrect late fee, but then I was too lazy to call them on it so I can't complain too much ($40 doesn't buy a lot of my time these days). But outside of that, they've been about as pleasant as you could expect from a bank. However, for a procrastinator like me, their tax service is simply horrible. It turns out that if you receive more than $10 in interest, you bank is supposed to send you a 1099-INT form. Except of course I've opted into "paperless" service from BofA, so I never get any statements etc. in the mail. Nor did I get a 1099-INT. So, doing my taxes at the last moment, I went looking for the information online. You know, electronic banking and all that. Quoth the bank:
How can I get a copy of my 1099 form? IRS 1099 forms (also called "Year-end interest-paid statements") are mailed out by the end of January. You should expect to receive your statement in early February. If you have not received your form by February 15, please contact us at the number found on your statement. Your 1099 form is not available online.
Awesome. Of course it's April 13th, two days before the deadline, and I'd really like to get this done. More specifically, I'd really like them to honor their promise of a paperless account. We're talking about a whopping $70 or so, and they can't add that up for me and present it in a "Tax Info" box by my account summary? Oh, but it gets worse. You probably wonder why I don't just add it up myself. I would, except BofA only keeps one year's worth of records. I realize disk space costs money, even if it isn't much money. But must I honestly accept that nobody at the nation's largest bank thought about the fact that one does one's taxes, at the earliest, in the 13th month? Is it really so hard to save two years' worth? Are your valued online customers not worth the extra few pennies a year? Sorry, BofA. This all fairly reeks of incompetence. You have no excuse, really, none. And you know what? You can keep your $70, I'd rather opt out of the interest than have to file for a tax extension just to get you to send me this simple bit of arithmetic. Now I have to make the odd choice of guessing (and overpaying) on my taxes, or putting them down to the wire in the hope of getting my information over the phone tomorrow, or requesting an annoying extension due to the shortsightedness of some bone-headed luddite manager at Bank of America. I'm more or less locked into BofA for payroll reasons, so I can't just ditch them. But I will certainly take a good look around this year and see if I can't find someone else to handle the rest of my banking. Someone, perhaps, who can do sums online; someone, perhaps, who can be bothered to live up to their own hype about "paperless" accounting. Maybe it's time to at least sign up for Mint, where I bet they keep your records for as long as their capital holds out. It's sad, really. They're pretty good at other things, and I didn't expect them to drop this ball so badly.

Saturday, April 12, 2008

Support the Idea Tax

The music industry is pushing for a "music tax" -- that is, they propose that essentially everyone in the US should pay to support the companies that support musicians. This is stupid on many levels, from the exclusion of non-signed musicians to the assumption that the government should shore up a very rich industry's lack of business-model agility to the notion that commercially viable musicians are somehow more "artists" than we painters. However, I have an even better idea, an extension of the same theme only with Logic on its side: the Idea Tax. It's simple. Lots of people have good Ideas. Some of those people share them freely with the world, others patent them in an attempt to intimidate their fellow-thinkers and make a buck without doing any real work. But as more and more people choose to simply share -- for example, on blogs -- less money accrues to the Idea Artists. And since the overwhelming majority of verifiable, registered Idea Artists have placed their Ideas in the care of corporations, those corporations suffer disproportionately: in short, the amount of money they make through intimidation as opposed to effort might be decreasing, and if you ask them they will happily provide statistics proving that case. No corporation, no matter how lacking in initiative or creativity or viable business models, should be forced to give up the money it takes away from the public good. So the public should make up for the difference. And the public, as they say, is us. The Idea Tax works just like the proposed Music Tax: everyone who uses Ideas, no matter what the source, puts $10 per month into a common fund. This fund is then distributed quarterly to the holders of patents, on a simple per-patent basis, so the more patents a corporation (or, in rare cases, an individual) has, the greater their share of the fund. This tax is completely voluntary. Nobody will force you to pay. The cost will simply be added to your phone bill, and your phone company will pay on your behalf. If your phone company doesn't pay it will be barred from using Ideas of any kind, so of course it will pay. (Since it's impossible to know exactly uses Ideas and who just muddles along without them, we'll just assume that people who communicate by phone use Ideas, that's close enough.) If you really don't want to pay, you can opt out for a simple, annual processing fee of $120. Support the Idea Tax: because without Ideas, you'd be dumb! For more on the music tax, see:

Tuesday, April 01, 2008

Google Blogspot UI Failure -- *sigh* business as usual.

The big G has my cookie. I'm OK with that. I figure the day they mishandle the Gookie they'll take down so many Senators nobody will notice what I was up to. But the funny thing is that they still, still screw up the Blogger UI. Shall I enter your CAPTCHA? Or shall I enter my login credentials on your blog-hosting site? Or shall I do both? Answer: to post a comment on you must do both. At least if they already have your cookie. Because Google, being itself a multi-billion-dollar robot, thinks its users must also be robots. Better check on that.

Saturday, February 16, 2008

More Apache2::Cookie hackery

It turns out I forgot one thing in my previous post. You need to explicitly load the module in apache (in your httpd.conf) or some of the stuff will fail (though some of it will work fine). What you need is this line, or its local equivalent, in your config file (I use httpd.conf, I'm so old): LoadModule apreq_module modules/ That assumes your modules are in a directory called "modules" under your ServerRoot, which in my experience is so much the common arrangement as to be effectively mandatory. That means the ServerRoot should be the real, standard server installed root directory, such as /usr/lib/apache2. Ah, but then HTML::Mason will try to cache things in your ServerRoot, which is not good; remedy that with: PerlSetVar MasonDataDir /var/whatever/cache/space So, OK, I guess I forgot two things.

Saturday, February 09, 2008

Installing Apache2::Cookie (and friends) on Ubuntu Server

Eureka! It worketh! Hopefully. After a few hours of dismal struggle, I finally got libapreq2 with its Perl libraries to install on Ubuntu Server. I need them for Apache2::Cookie, so the default apt-get install of libapreq2 didn't do it for me (don't even get me started on Ubuntu's spaghetti packaging). Anyhow, I still can't get the thing to install via cpan, and looking at all the failures in its test reports I'm not surprised. But I did get it to build from source, and pass all its tests, and install, though I haven't checked yet that it actually works (I'm naively trusting the unit tests). Here's how I got it working. 1) Get the source and unpack it, since cpan (and -MCPAN) probably won't be able to install it for you. 2) Double-check the Perl modules listed in the PREREQUISITES file. The dependencies aren't handled gracefully, so you'll want to install those before trying anything else. 3) Make sure you have the following dev packages installed, in addition to the normal packages that got your server up and running. This isn't covered in the instructions, and you'll get somewhat cryptic error messages if you don't do this stuff first. sudo apt-get install apache2-threaded-dev sudo apt-get install libapache2-mod-perl2-dev 4) Configure the Perl way (./configure failed for me) thus (the option is MANDATORY): perl Makefile.PL --with-apache2-apxs=/usr/bin/apxs2 5) Build away, from here out it was smooth sailing with just some mysterious (but presumably valid) skips. make make test # if all tests passed, then: sudo make install While I was slogging through this I was collecting some info that might be useful to the developer, and I was going to file a bug. But now that I'm through it, it seems like the bug is pretty vague ("sloppy build, possibly not cpan-compatible") unless I spend a few more hours investigating, and I don't have the hours. There are already several open build bugs and a pretty scary failure report on the testing service, so I'm hopeful that when/if this code gets out of purgatory my problems will go away too. Now it's off to the races, and hoping that the code itself is as solid as the build was shaky.

Installing apxs2 on Ubuntu Server

Ah, another happy Saturday doing sysadmin crap. I had a lot of trouble scaring this information up, so maybe a blog post will help the next person. In order to get apxs2 installed on Ubuntu (and probably Debian) you must install apache2-threaded-dev (or possibly a non-threaded equivalent). You will start to care about that if, for example, you want to install Apache2::Cookie, which depends on APR::Request, which is messy. But oh, wait, that module is broken and won't install anyway. If I figure out how to fix it, I'll probably post again for the same imagined posterity... currently the thing says my perfectly good apache2 binary is bad. Anyway, regardless of that problem, you will also be unable to install APR::Request without an apxs2 binary, and you'll have a hard time finding that on Ubuntu unless you sudo apt-get install apache2-threaded-dev (or equivalent).

Wednesday, February 06, 2008

R.I.P. Ernesto Illy

Ernesto Illy, coffee scientist and friend to espresso lovers everywhere, has died. He was 82 years old, and from the sound of it he lived them well. From Hungary through Trieste to the world, the Illy family has done well by doing good. Rest in peace, Dr. Illy. Coffee Geek obit 2005 interview Business Week obit

Wednesday, January 23, 2008

This Like That

Another little project I threw together recently: This Like That What's it do? Simple: it collects your associations, similes, counterintuitive connections. It's anonymous, but I'll delete anything too annoying (unless it's really funny). It works like this: A toothless gear is like a root canal. A root canal is like __________________. That's it. Great things can grow from simple structures. Now go enter a few, it's fun! It's at naturally enough.

TextMate Bundle Installer

In a nutshell: if you want to install new TextMate bundles with a minimum of aggravation, you need GetBundle. I was just searching for this for the third time recently as I'd forgotten the name of the relevant bundle, and it was really annoying how hard it was to find. So here's hoping the situation improves for the next person with Yet Another Blog Post about how to install TextMate bundles without mucking around with subversion and the shell. Again, folks, the TextMate GUI Bundle Installer Bundle is called GetBundle and it's on Valicode here: Enjoy!