Gears Within Gears

Seek simplicity, and distrust it.

A word on Joshua Bell and the Washington Post

Posted by Brian Guthrie Tue, 10 Apr 2007 06:54:00 GMT

I’d like to take a stab at this one.

The article is written in a breathless style, full of affected shock and dismay and artificial, strained drama. It’s predictable nonsense that follows the same template as every other cultural critic: people today are morons; everything was better in the past; the world is going down the tubes. Just look at the followup interview that the author, Gene Weingarten, did on the piece:

One of his points is that if you look at a telephone manufactured in, say, 1935, it is a work of art. It could be a museum piece. Today, phones are dreadfully ugly utilitarian things. Same thing with brooms from the 19th century. Beauty used to matter, even in the banal.

The fact that beautiful brooms existed in the 19th century does not imply that all brooms were beautiful then (they weren’t) or that there aren’t beautiful brooms today (I’m sure there are). Utility has always mattered to people who cannot afford to pay a premium for (for example) a beautiful broom, and stating that all phones “today” are “dreadfully ugly” is patently ridiculous. People remember and preserve the beautiful and forget the ugly, and this myopia leads inevitably to the conclusion that things are getting worse.

This has been true for as long as people have been recording their history, and is a feeling shared by social conservatives at every place and in every era. Humanity has done nothing except grow richer, freer, less violent, and longer-lived (despite periodic catastrophes), and people still find a way to complain about progress.

News flash: busy people at a subway station that normally bans live performance ignored a busker. Shocking: art appreciation relies on context and popularity. Dear lord.

2 comments |

Marketing Community-Based Open Source Languages

Posted by Brian Guthrie Sun, 08 Apr 2007 00:53:00 GMT

What makes a good home page for a programming language? Is the primary purpose of a web site for a small, community-driven programming language to market the language, or to provide information for the community? Can you do both?

One thing that quickly becomes apparent when you stop and take some time to compare websites for programming languages is that most of them are God-awful, at least from a design perspective. Ruby and Python both look like they were designed by someone who knows what they’re doing and has been paying attention to contemporary web design, with the caveat that Ruby only recently finished its redesign. Scheme does a nice job showing off the language via a bizarre navigation menu that nonetheless encourages new users with an FAQ only to invite them to pick an implementation (tell me again how I get started?). Haskell, another functional language, shares an affinity for lambda logos with Scheme, and yes, I understand what lambda does and why you think it’s pretty great but for the love of God show some imagination. Correspondingly, Haskell’s web site is functional but unimaginative. Speaking of ridiculous lambdas, PLT Scheme wins the award for most flagrant abuse of gradients in logo design.

Smalltalk is cluttered, busy, and confusing, Perl looks like an O’Reilly cottage industry (which I guess is what it is at this point), and Javascript doesn’t have an official site at all; it has no user community because it’s a language that people are essentially forced into using. Searching for ‘ECMAscript’ gives you back the spec and a Wikipedia article. The site for D is ugly but tells you exactly what the hell it is right there at the top, which is more than you can say for most of these sites.

To what degree does programming language popularity depend on marketing, and to what degree should it be expected to stand on its own merits? Give witness, yea, here is a flash of the news: Programming languages are no different than anything else. Features are important but no one gives a damn unless you can explain to them why they should. That’s what “marketing” means in this context: explain to someone who visits your site why they should care or (better) how to get started, immediately. Ruby informs you: get started, it’s easy, and then gives you a link, right there at the top, where you can try Ruby in your browser (courtesy of _why).

Why can’t other, purportedly better, languages do the same? If you’re enthusiastic about your niche language and contemptuous of the ‘hype’ that Ruby and Rails enjoys, go out and spend some time advertising your language/framework/widget in a way that respects and encourages new users, and then come talk to me.

1 comment |

Redux

Posted by Brian Guthrie Sat, 07 Apr 2007 04:52:00 GMT

The job search: It’s hard to tell, but I think it went well. When a blog post rhymes, I eat limes. Friday is here, and I’m drinking a beer! Let’s end this.

California was quite nice in the daytime. I flew the redeye back this morning and I’ve been napping all day as a result. JetBlue may have a lot of forward leg room, but from side-to-side it’s torture. I did meet a couple of cool people, though. To my right, this guy. To my left, director of development here. I enjoy a little schmoozing now and then.

Blog news: Upgraded to Typo 4.1. Pain in the butt. Broke some CSS. Backend seems nicer. We’ll see.

Other: I did manage to get a little bit of work done. Expect a new release of Handshake soon with some small updates (documentation, checked_self, no blame system yet).

no comments |

Well, I'm here

Posted by Brian Guthrie Thu, 05 Apr 2007 04:47:00 GMT

So I’m out in California tonight and tomorrow for An Interview. I’ve never been any farther west than Florida before, and so far… well, it looks a lot like Boston’s Rte. 128 belt, to be honest. I used to read way too much Wired Magazine in high school and I remember, if you can believe this, dreaming about Silicon Valley and the brave new pioneers out there forging crazy new Internet services. So even if nothing comes of The Interview, I’m tickled just to be able to visit.

Unfortunately I probably won’t be able to get out much. I’ve always wanted to see San Francisco but there’s not really enough time to make it from Mountain View (cough) to there and thence to San Jose in time to catch the red-eye back to Boston. I’ll be flying in just in time for Friday classes, where by ‘just in time’ I mean ‘six hours early’.

I had hoped to get some studying done tonight but I’m pretty beat. Apparently there was a screwup with the reservation. I arrived at the checkin desk for JetBlue only to find that, although they had me down for a ticket for San Jose to Boston, there was no such reservation for the other direction. After twenty increasingly frantic minutes on the phone with the travel agent they managed to scrounge up a seat for me, with only minutes to spare before the flight had to leave. Naturally the flight was subsequently delayed for an hour. Har har.

Study, you say? Yes, I brought textbooks in my suitcase. I’m That Guy.

3 comments |

Will people pay $.30 extra for high-quality DRM-free music?

Posted by Brian Guthrie Wed, 04 Apr 2007 04:43:00 GMT

Of course they will, and The Economist’s skepticism baffles me:

For years, I have been hearing avid downloaders claim that people are basically willing to pay for music but aren’t because the music industry is screwing it up—overcharging for their product, and crippling it with DRM. This is true at some level; I would snap up a Porsche at £1.20, but that is not an indictment of the firm for refusing to sell one to me at that price.

Ever since I have had enough disposable income to purchase music, rather than download it, I have made a point of doing so. This means that I had converted from a downloader to a buyer before I entered college in 2002. The iTunes Music Store is all about impulse and immediacy to me, and I’ve (occasionally) unwisely taken advantage of it, knowing full well the dangers of lock-in. For me, the promise of higher-quality, DRM-free songs at a mere 30% markup is a no-brainer.

I suppose this means that I’m not what they would describe as an “avid downloader.” But I would go one step further and claim that, for those who are, digital music has always been chiefly about convenience. I predict that the existence of a legal DRM-free method for obtaining the same, weighed against the threat of arbitrary and capricious lawsuits, will be enough to tip the scales.

As for the analogy: a Porsche is not a song; they do not cost the same to manufacture, they are not manufactured in the same way, they are not sold in the same way, and they are not governed by the same laws. The price given (£1.20) does not bear any resemblance to the cost to produce a Porsche.

Let’s turn the premise on its head. If it cost $50,000 to produce a Porsche, and the company charged $200,000 for the same car, and that car came with an arbitrary restriction (can’t go any faster than 100 MPH, say), and then no one bought the car, you would rightly point out that the company is overcharging and underdelivering. The onus falls upon the company to readjust their business model, and their choice to (for example) sue the living daylights out of their customers rather than re-examine their assumptions about the market is certainly worth an indictment or two.

But if the grand experiment fails, and people continue to download music for free despite being offered the chance to compensate artists for it, I don’t expect I’ll shed many tears for those involved. The music market is oversaturated with would-be stars. The “recording artists” most heavily promoted by the industry are the most God-awful. There is little to admire in the industry’s predatory business practices. For truly dedicated musicians, micropatronage is now widespread, and live music venues certainly aren’t going anywhere. The real victim here is copyright law, which Congress and the content holders have abused recklessly in their desperate attempts to maintain the status quo in an industry in grave need of change. Luckily, free-market alternatives exist.

no comments |

Comment paradise lost

Posted by Brian Guthrie Mon, 02 Apr 2007 06:22:00 GMT

In the process of cleaning out spam I accidentally removed a bunch of valid comments. (Bad UI, Typo! Stupid human, Brian!) Sigh. I dug through the default sqlite database for this thing and it looks like the comments were legitimately removed, not just marked for deletion. The database isn’t backed up anywhere. Clearly I am a super genius. If anyone has any bright ideas, let me know in the comments, which I will try not to subsequently delete.

Maybe Wordpress is everything it’s cracked up to be. Typo has been a bit of a disappointment. It crashes occasionally too, and I’ve glanced at the logs but I haven’t nailed down the reason yet.

4 comments |

Way over yonder in the minor key

Posted by Brian Guthrie Fri, 30 Mar 2007 16:50:00 GMT

Purely for friends currently bored or easily distracted, here is me banging away on the guitar. The song is off of Mermaid Avenue, which I just bought and is excellent. Caveat: I haven’t slept in quite some time.

no comments |

Like pouring cold water on A List Apart

Posted by Brian Guthrie Thu, 29 Mar 2007 06:02:00 GMT

A List Apart, these days a shadow of its former self, writes this week about how to ruin the user experience. Apparently the best way to ruin the user experience is to, and here I get confused, require that users enable Javascript in their browser. According to ALA founder Aaron Gustafson,

The problem here is not that Lala is using JavaScript, but that they are requiring it. The reason? Well, they apparently like the idea of loading all of the content into their pages using Ajax. In their rush to cram all that Web 2.0 stuff under the hood, they’ve alienated a good portion of Web 1.0 users and a sizable chunk of the mobile market. And they’re not alone.

This bothers me on a number of levels. First and foremost, I’m skeptical of his claim that requiring that users have Javascript enabled is “like pouring cold water in a customer’s lap.” Even if there weren’t a hundred easier ways to pour water both colder and, um, wetter, startups geared towards the youth market don’t generally worry too much about the “good portion of Web 1.0 users” (what portion exactly?) that don’t have Javascript enabled. And who in their right mind browses the internet via cell phone?

I don’t disagree that relying on the availability of AJAX, or even overusing it, is very frequently a bad idea. But I don’t think it’s anything like as bad an idea as he claims it is, and it’s a poor illustration of his points. For crying out loud, it’s 2007. They chose to optimize their website for a slick, rich user experience, and it strikes me as almost bizarre that they should be singled out for that choice.

People make choices about their market all the time. I design to separate content from style whenever possible, and I generally keep my designs simple. But I’m willing to bet that brianguthrie.com (not the blog) doesn’t render properly in IE6. I own a Mac now, and I have no easy way to test for IE6 compatibility. But it doesn’t bother me a bit. Why? Because the sooner that legacy users get the idea that IE6 is broken the better.

This is a luxury and a risk that would be unacceptable on a commercial site. But my personal site exists primarily, at the moment, to connect me to my friends and to help my career. All of my friends use modern browsers (right guys?), and I’m frankly skeptical about taking a job with anyone who browses with IE6 on a daily basis. Call me crazy, but also call me fairly sure you can’t win my $5000.

I bet you didn’t see that coming.

1 comment |

Handshake released as a gem

Posted by Brian Guthrie Mon, 26 Mar 2007 05:25:00 GMT

I’ve released Handshake as a live RubyGem. After you update your gem index you should be able to get it with gem install handshake, and you can browse the RDoc at handshake.rubyforge.org. A couple of things have changed since my previous blog post, so pay attention:

  • Pre- and post-conditions now expect you to check assertions rather than return a boolean value from the block. I changed this because the project I’m working on requires some moderately complex rule-checking and trying to string together &&’s got really ponderous. This is probably an indication that there are better conceptualizations of that particular problem. I do quite dislike invariant and before/after employing different usage patterns.
  • I’ve added a few new clauses. Check the RDoc if you need more information on these.
  • I’ve fixed a lot of bugs, specifically a couple dealing with class type checking and contract inheritance.
  • Contract violation error messages have been improved. The stack traces are also slightly better but not yet up to par. To generate a proper stack trace it has to be seen as originating from the method in question rather than somewhere within the bowels of Handshake, and that’s been improved but in the worst case is still two or three levels removed from the caller.

I’ll push out another release once I have a better handle on error messages. I’m having a difficult time finding an authoritative answer to what the “best” way is of getting detailed stacktrace information. Is Binding.of_caller still broken? Will debug.rb get me what I need? Or call_stack?

ruby-contract’s default behavior is to ignore contract checking unless your application’s $DEBUG flag is set. Although I haven’t made that the default behavior in Handshake, it makes a lot of sense; a contract system would probably impose inexcusable performance penalties without some way of turning it off. And if we’re not worried about performance in the first place it seems to me like a pure-Ruby implementation of something like one of the above is preferable.

As an addendum, I should note that hoe is totally pimpin’. Hyuck hyuck.

no comments |

Inanity in the presence of kittens

Posted by Brian Guthrie Sat, 24 Mar 2007 15:54:00 GMT

xkcd, the best webcomic in the world, reveals its insightful theory about cat proximity. We must be vigilant.

no comments |

Older posts: 1 ... 4 5 6 7 8