Author Archive


Me and MeshU up in Toronto

2008-06-03 / 07:22 / dave

Avi’s blog post reminded me that I never summarized my trip to MeshU. In a word: good.

Or in several words…

Prelude

I left Pittsburgh in a shiny new rented Sebring and drove to Toronto in about 5 and a half hours. The only events of interest were 1) realizing I had no washer fluid and 2) a small delay at the Peace Bridge for Victoria Day.

Tron I got parked ($10 CDN/night) and checked in to the Neill-Wycik, which exceeded it’s Hostels.com reviews. The room was a dorm single in a suite, though the other rooms seemed empty. I only saw one other person and only for the 2 seconds it took her to go from her room to the bathroom.

The roof offered some Victoria Day firework watching, unfortunately underwhelming compared to the Zambelli’s work. Then back to the room & free Wi-Fi to check if the post-conference weather would be good for camping. Not only was the weather looking dodgy, but I had forgotten my AC Adapter.

Tuesday morning

If I had to come up with a complaint of the Neill-Wycik, it would be the inability of the curtains to stop sharp rays of sunlight from stabbing me in the eyes. I woke up right around sunrise and spent some time reading Black Dogs. I considered showering, but since the plan was to drive straight from the conference to Tobermory and sleep in the car, it didn’t seem worth it. Plus I didn’t shave or bring business cards so I figured professionalism was right out the window. They’re lucky I wore pants.

Neill-Wycik disposes of trash proper Before going I checked all the drawers to make sure I didn’t forget anything. I’m not sure if it’s official Neill-Wycik policy, but there was a random porn DVD in a desk drawer. Feeling that this was the ultimate souvenier, I took it. This comes up later in the story.

I walked the few blocks to the MaRS center. The sign-in and breakfast (fruit & carbs) was in an open area immediately adjacent to the conference rooms. I found a table and “networked.” It was an interesting mix of designers, technical-ers, and entrepreneurs. They did a quick and–from where I was sitting–unintelligible intro and then we were off.

Beyond relational

I decided to see Avi Bryant’s “Beyond Relational Storage” talk based on the strength of his blog and Seaside.

I wasn’t disappointed: his talk was awesome (my notes).

He covered a bunch of alternate data storage strategies (SimpleDB, in memory, Prevayler, etc.), took questions, and then gave us a sneak-peak of MagLev (which has blown-up the blog world since it’s official debut at RailsConf).

Aftwerwards there was a small talk at my table. My neighbor was Markus, the CEO of Palomino System Innovations. They make a CMS, but mostly I was interested in their custom XML store.

Interlude

I was planning on running to Best Buy over break, but my laptop seemed to be doing ok in real ultimate power-saving mode so instead I made some calls.

Thorncrest Outfitters strongly–as in “we won’t rent you a kayak”–spoke against my proposed paddle to Flowerpot Island in Five Fathoms Marine Park. They proposed a one-day river kayaking trip, which sounded far less exciting.

Blue Heron affirmed that they take campers to Flowerpot Island but warned that the boat might be canceled since the weather called for rain and high winds.

Designing

Iterative Design Strategies w/ Daniel Burka One of the breakfast webbies, Angie (I think, I didn’t get a business card) was excited about Daniel Burka’s “Iterative Design Strategies” talk (notes) so I thought I’d check it out. I had planned to go see Reg’s talk, but, while neither designer or manager, I’m closer to designer. Or at least I occasionally make a user interface that isn’t a command line.

Daniel’s talk was “I sat on the floor” crowded. I liked his case study of his redesign of the Digg comment UI, but otherwise I wasn’t the right audience. It was basically Agile for designers. A good idea, but not something I need. It is however the only talk I took a picture of.

Lunchtime networking

Lunch was notable for the company. I sat with some current/recently matriculated students: Julie, Andrey, Andrew & uhm… the tall woman with the blond hair whose name I have forgotten. Pete Forde from Unspace was also there facilitating the conversation and unashamedly flogging Ruby Fringe, which sounds interesting but is too expensive for me & too non-work related for my employer.

Implementing OAuth

My third session was Leah Culver’s “Implementing OAuth” (notes). Leah started with a review of OAuth (and the difference from OpenID), explained the protocol & showed the code. A fairly good talk, though again not directly related to me.

Some of the questions coming from the front seemed strangely pointed… perhaps beacuse they were being asked by Cal Henderson. The old “plant in the audience” trick. Very clever, Leah and Cal, very clever…

And finally, Mr. John Resig

Despite the rumors that John Resig’s jQuery talk (notes) was going to be introductory, I wanted to see him talk. Plus I’ve never used jQuery, so I was ready for an introduction.

Before the talk John got some water from our table (near the front). I talked to him briefly about processing.js, which I’ve been meaning to look at for online plotting.

His talk was a quick introduction to jQuery followed by some live examples of unobtrusive prototyping against live pages. jQuery looks as good as its reputation, I’ll be trying it out whenever I have a chance / excuse.

The end of the day

I kind of wanted to go to the afterparty so I could tell Avi I liked his talk. He was busy at lunch and the only other time I saw him was at the urinal, which seemed like an awkward time. I also wanted to make up for my lack of pictures by getting photos of all the presenters giving me bunny ears. Alas it turns out the after-party was a significant distance away. Instead, I tagged along with Julie, Andrew & Andrey for some pan-asian dinner at Spring Roll.

Dinner & conversation were both good.

Then I walked back to the car.

The drive north south

Google Map directions took me North on Spadina, which seemed more than a little suspicious. Eventually I turned around got on the Gardiner Expressway. It was about 7:30 and it would take another 3 hours to get to Tobermory where I may or may not get to ride a boat to Flowerpot Island. Given the chances & the weather I just took Gardiner to the QEW and headed south.

I stopped at a Tim Horton’s to pee and pick up a tea. I figured I’d need the caffeine later.

I stopped a second time at the US border crossing.

The border guard asked me a bunch of questions. He seemed especially interested in the fact that I was only in Canada for a day. Then he confiscated my contraband oranges and bumped me to 2nd level border check. I parked in the directed spot and went inside. Some border agents checked my license and passport and asked more questions. Then they went to search the car.

I was sitting in the waiting room when I realized I had a mystery porn in the trunk. I ran through a few nightmare scenarios where it was actually child porn or something. Who would believe I found it in a drawer in a hostel? Luckily the agents came back in and told me I was free to go.

The agent didn’t have a solid reason on why I was stopped. It was probably because I spent a single day in Canada and was crossing the border at night, but I was hoping it was something like “the agent saw your trunk full of perversion.” That would at least give me a funny story. As it is I was just left with a dull feeling of violation and powerlessness. How Kafkaesque.

I gave the DVD to Casey. It’s a Japanese porn. Nothing special, and certainly not worth the stress.

Final words

I suppose I should wrap up something about the conference and how good it was to meet new and interesting people. But really, my advice is to just leave porn in drawers.


WTFOTD: Microsoft, shared drives, properties

2008-05-27 / 12:03 / dave

  1. Have an external drive with mounted to S:
  2. Have a network share mounted as S:
  3. Open Disk Management
  4. Right click the external drive and select “Properties”
  5. Be surprised when the properties for the network share come up

It looks like Microsoft looks up properties via drive letter, even when you physically click the drive in the Disk Management app. Not deadly, just surprising. Maybe this should only be a WTHeck?


Money for the MS-150

2008-05-23 / 19:13 / dave

Hey hey, it’s that time again…. TIME FOR ME TO BEG FOR MONEY! I’m riding the MS-150 in two weeks, and I have to raise $200, but I’m shooting for $300.

“Dave,” you say “why didn’t you start soliciting earlier?”. Well why don’t you just shut that yap of yours, hmm?

Anyway, all donations go to a good cause and are appreciated, both by the MS Society and by me. There’s more information at my MS-150 page.


An extremely tardy art show wrap-up

2008-05-13 / 12:51 / dave

Spaces

Casey & Jennie’s Spaces show went well. See for yourself:

Fun-A-Day

It went well. I would like to point out that despite appearances, I didn’t pee my pants. It’s just water from the slushy winter roads. Yay, Pittsburgh!

eating snacks


On Java One and shark jumping

2008-05-08 / 12:29 / dave

After reading Tim Bray’s description of Java One, I’m even more un-interested in Java (which is not to say anything bad about Mr. Bray himself). Call me cynical, but when a company spends that much money to generate hype… well, shouldn’t people just use an environment because it works? Or do all languages do this? Have I been missing the annual C extravaganza?

Anyway, yet another sign. If it weren’t for Clojure I’d uninstall the JDK altogether.

In related conference news, I’ll be at MeshU 2008 in two weeks; hopefully followed by a stop at Five Fathoms.


Ah-hah! Of course recursion can create a dependence on the global namespace!

2008-04-29 / 16:44 / dave

This works because there is a global variable, fact, that has its value set to the value of the lambda expression. When the variable fact in the body of the function is evaluated to determine which function to invoke, the value is found in the global variable. In some sense using a global variable as a function name is unpleasant because it relies on a global and hence a vulnerable resource—the global variable space.

–Richard Gabriel, The Why of Y [PDF]

(emphasis added)

On reflection, “normal” recursion relying on the global namespace is obvious. So are the potential problems:

> (define fact (lambda (n) (if (< n 2) 1 (* n (fact (- n 1))))))
> (map fact '(0 1 2 3 4))
(1 1 2 6 24)
> (define fact2 fact)
> (map fact2 '(0 1 2 3 4))
(1 1 2 6 24)
> (set! fact (lambda (n) 1000))
> (map fact '(0 1 2 3 4))
(1000 1000 1000 1000 1000)
> (map fact2 '(0 1 2 3 4))
(1 1 2000 3000 4000)
>

Never really thought of it that way before.

That’s not the main point of the paper, of course. It’s really about the derivation of the oft-asked-about Y-Combinator.


Can you figure out who sampled this?

2008-04-14 / 11:51 / dave

It should take you less than 2 seconds.

Edwin Birdsong - Cola Bottle Baby


Corporate mobs; government dons

2008-04-11 / 16:37 / dave

Writing about monopolies reminded me of a This American Life episode. The last story talks about cracking organized crime’s hold on garbage pick-up in NYC. Once the mob was gone, prices dropped… temporarily. They rose as soon as big corporations took over.

I’m not anti-capitalist–I only switched my voter registration from Libertarian a few weeks ago, and that was just so I could vote in the PA primaries–so I’m not bothered by businesses getting large and successful. But I am bothered by anti-competitive practices. Maybe the general high cost of New York City is keeping a hot-young garbage start-up from disturbing the market, but maybe it’s restrictive laws or business collusion.

When it comes to biking, I think cars have a responsibility to watch out for cyclists. This is part of a general belief that power = responsibility. When the powerful don’t exhibit that responsibility I have no problem with regulations enforcing it for them.

At risk of sounding about 20 years older than I actually am, that’s what’s wrong with America these days. The banking bailout is an example where apparently responsibility != risk. And what’s the rational for CEO golden parachutes? The excuse for ballooning executive pay is that executives get great rewards for their great risks. Getting millions to quit your job doesn’t seem very risky to me. (and yes, I understand that successful CEO’s have a rare skill, which is why I don’t mind when they get paid. It’s the high paid failures that bother me)

But I wonder if the problem doesn’t start even higher. We’re in of a costly war based on false pretenses; some of that cost due to no-bid Halliburton contracts. Torture is considered acceptable and civil rights have been eroded. A depression is likely. The national debt is huge. Other than Scooter, who has paid?

Large corporations seem to have the green-light for corruption and the government won’t intervene, let alone admit its own mistakes.

I can’t wait for the election.


Information economics

2008-04-11 / 16:01 / dave

(Here’s one from the vaults: I started writing this July 2007)

I like Reg, so I was surprised when I thought he wanted comments on his site instead of aggregators.

It turns out I misinterpreted his post. He responded to my comment:

…But yes, I do think comments on reddit and most especially links in social bookmarking sites break the web by placing them in someone’s proprietary database, instead of on the web itself…

But what happens if del.icio.us publishes a new EULA and shuts their API down? Suddenly, it’s as if all the links, all the intelligence, was locked in a box.

With “bloggers,” each individual has a lot of power over a very small part of the web, but no one entity has a lot of power over a lot of the web.

Social bookmarking sites concentrate that value in a few hands. You may not trust me. But you can trust bloggers in aggregate, and the web as a whole.

<3ing on Walmart

As long as marketing and advertising fund the web, information will be the currency (well, “attention” I guess, but information is the attractor). In an information economy, Reg is arguing against Walmart: why support a censor-loving union-busting monarchy instead of that quaint local shop?

Altruism is great, but sometimes Walmart is just easier. Gabe da Silveira nails it:

Regarding the concentration of power, that’s just an economic requirement. Most users can’t create their own websites, or run their own servers, much less write their own software.

Even if you can create your own website there are benefits to scale, not the least of which is PageRank. And used properly, an aggregator can raise all ships: the author reaches a wider audience, commenters get single sign-on and response tracking, and reddit gets content for their hungry eyeballs.

A third way

Unlike money, information is inexhaustible. Less pretentiously: why not copy the reddit comments onto your own site? Simply 1) query reddit for your stories URL 2) if found, screen-scrape comments and 3) add them to your own blog. Realistically: reddit has no API (despite the request), the HTML isn’t easily scrapable and, of course, there could–IANAL–be legal concerns.

But not all site are the same: del.icio.us and digg both have API’s and Flickr has made switching services easier by granting API keys to its competitors.

Reg points out that an API can be nullified with the flick of an EULA. A site could also disable their API or start blocking IP’s, but it’s unlikely. Economics cuts both ways: large sites grow larger by using their scale to provide value; large sites become small sites by pissing off their customers. The easiest way to piss customers is by having an inferior product. Open data isn’t as important to most people, but it will be once enough people get burned.

Interoperability is important to a specific group, namely developers. Check the furor over AppEngine. The business case for an API is that a thriving ecosystem provides the best sort of lock-in: happy customers. If restrictive policies drive away the builders of said ecosystem, why bother having an API at all? (Counterpoint: the internet swelled over the idea of coding to a closed platform. I wonder what will happen when Android phones show up?)

A monopoly would change everything. This is both worrying and… er, not worrying: closed data could be the new lock-in or maybe the internet’s low barrier to entry will keep facilitating innovation (and in turn defection).

Vote with your bits

If you care about open data there are several things you can do. In roughly descending order of difficulty: pass an open-data law, write data liberation programs (like the reddit comment-crawler) or use the meme-sharing power of the internet to organize (see: Creative Labs).

Those all require skill, or at least initiative. At the bottom of the hierarchy is the simplest: vote with your bits. In this light, Reg’s post (and those of the EFF, Larry Lessig, Cory Doctorow, Mark Pilgrim and others) form like Voltron into a digital Ralph Nader, educating the online community so we can all invest our information wisely.


Are your comments getting borked?

2008-04-11 / 14:58 / dave

Rob tried to comment got both a rejection by WP-IDS and a nice PHP error message about missing paths. Woo boy.

The error was probably caused by a configuration error that I think I fixed. But I’ve got no idea why the comment was rejected in the first place.

If the same thing happens to me let me know and I’ll try to fix things.


TDD skips the idea phase

2008-04-11 / 14:53 / dave

One of the parts I liked about The Myths of Innovation (full review) was the simple description of brainstorming:

  1. Facts
  2. Ideas
  3. Solutions

I’ve previously had some issues with TDD, and viewed in Scott’s three steps I realize it’s simply: TDD skips the idea phase.

The facts are the problem you’re trying to solve, and the solution is the end product. I guess the ideas are supposed to be the the tests & code, but that just doesn’t work for me. Maybe I need nimbler fingers but I suspect that the real problem is that code is too limiting. By nature, programming distills an abstract idea into instructions so simple that even the world’s fastest idiot–a computer–can understand them. This clear, orderly expression of ideas is too limiting for the free association that generates new ideas.

Or maybe it means that I’m not yet fluent in my language (Python) or the underlying language of programming (architectural decisions, algorithm complexity, etc.)? Perhaps being a master programming is a fluency such that it’s faster to sketch in Emacs than on paper; familiarity has certainly cut down on my need for crutches. Master level fluency also explains both the talented programmer’s obsessive devotion to their chosen language/environment and love of learning new languages. The first aids expression, like an artists well-lit studio or a gamer’s abbreviations and slang. The second expands the range of expression, like an artist trying a new medium or a gamer going outside.

But if expressing ideas in TDD requires fluency, then its purest “test&code” implementation is only useful for master level programmers. Is this an example of how agile is only for elites? (more “agile only works for elites” links welcome, I know there are more but couldn’t find them)


So what PHP security hole did that open up?

2008-04-11 / 01:56 / dave

To make playing around with Wordpress easier, I wanted to set-up a local test environment. Since Tim Altman has renewed my quest to get PHP authentication working on DreamHost, I need to run PHP via CGI.

Whew-ee.

The PHP Windows installer added some lines to httpd.conf:

ScriptAlias /php/ "c:/php/"
Action application/x-httpd-php "/php/php-cgi.exe"

After installation I could only run .php files from cgi-bin/ and only by using #!. The PHP install.txt lead me to add

AddType application/x-httpd-php .php

Which didn’t help. Luckily Apache’s logs/error.log sensibly stated

...[error] [client 127.0.0.1] client denied by server configuration: C:/php/

So now I’ve got:

<Directory "C:/php/">
    AllowOverride None
    Options None
    Order deny,allow
    Allow from all
</Directory>
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

Which works, but at the expense of allowing access to the C:/php directory. What kind of security holes does that open? I poked around in the browser and couldn’t access any of the files. Plus the Apache user also doesn’t have write access to the directory and I only start httpd right before testing. Still…

White hats: advice, please.

Black hats: mercy, please.


Need a cheap mountain bike?

2008-04-09 / 12:46 / dave

Hey-o,

My friend Jack is selling some bikes. They’re mountain bikes which are super ocol. Plus they’re cheap. Email me if you’re interested and I’ll pass it along to Jack (I don’t want to out his email address on the web).

He says:

The green Kona needs some love, but the steel frame is still in very good condition. I’ll let it go for $50.

Update: 18″ frame. Here are some specs

(click for full-size pics)
1999 Kona Hahanna, picture 1

1999 Kona Hahanna, picture 2

The white GT is in really good shape. Jess took good care of it. It’s got an aluminum frame that was the same frame that GT used on several of their higher-end bikes that year, so it would make a great bike to start with that can be upgraded as fit. It’s ready to go right now for someone looking to get started. We want $100 for it.

Update: 14.5″ frame. specs.
(click for full-size pics)
2000 GT Outpost, picture 1

2000 GT Outpost, picture 2


Scott Berkun: writes ok, talks real good

2008-04-01 / 13:54 / dave

Scott Berkun talking at CMUNot only was I lucky enough to see Scott Berkun on his recent trip to Pittsburgh (easter egg: can you find me in the–blatantly hotlinked–picture?), I got there early enough to get a free copy of his book.

The book is ok.

It’s easy to read, well researched and visually beautiful. Beyond that, I didn’t get that much out of it. Many of the lessons–innovation is the result of hard work, you seldom know what you’ll end up with, bad ideas sometimes win, human skills are important, etc.–are things I’ve already internalized. The description of the steps of brainstorming–facts, ideas, solutions–and the role of soft skills stimulated some ideas on agile development and management, respectively (more on those in another post).

The writing is entertaining enough: Berkun’s style is casual and the stories are well integrated. His sense of humor runs a little more Dave Barry–aka non sequitur–than I prefer. YMMV.

According to the dust jacket and amazon my views are in the minority. I suspect this is due to 1) the audience and 2) Juno scoring.

As a 101, the book works well. It might also be useful for those from the “traditional management” or “wait for a lightning strike” school of innovation. I’m neither of these, though I can think of a few people who would benefit from a copy.

I suspect some people review the book like Juno: it’s not deep, but who cares? It’s entertaining. It’s far from onerous: at 150 pages and with a tone like listening to your well-read friend chat, the book is easily read in a day. And the “anyone can innovate, you just have to go out there and try!” message doesn’t hurt either.

This isn’t to discount these reviews or people who liked the book. As with the humor, YMMV.

Anyway, I’m glad I read the book, but it’s probably not one that will live on my bookshelf. That’s strictly reserved for books that make me look real smart.

But as a speaker…

…Berkun is very good. He is energetic and entertaining. He interacts with the audience. He knows what the hell he’s talking about. The ideas–as in the book–aren’t terribly deep, but hey, it’s an hour long talks. If you want entertaining and deep you’re basically limited to Simon Peyton Jones. He also had about 40 minutes of Q&A which provided some of the best take-aways.

Recommended.


Kristen, world; world, Kristen

2008-04-01 / 03:00 / dave

Kristen from the side

Kristen is shown in it’s natural habitat: weather-proofed windows and dying plants.

Despite the big stack of “oh shit” spacers above the stem, I think I’ve finally got Kristen dialed in. The only thing I might change is adding a set-back seatpost, but I’ll have to ride it more before I decide.

Quick take-aways? Mountain biking is fun, Avid makes great brakes & levers, and 2.14 WTB MotoRaptors are way lighter than 2.4″ Ritchey MotoVaders. Oh, and Thomson is solid stuff.

And now for a sexy portrait:

Smile, Kristen, it's your close-up!

Gosh she sure is pretty.


Where does he get those wonderful (mp3) toys?

2008-04-01 / 01:40 / dave

I mentioned Lamaraba, but here’s where I hear about most of my other tunes:


Meta meta: LOTD is back but slowly dying

2008-04-01 / 01:24 / dave

LOTD disappeared… but it’s back. Not because I want it, but because the Wordpress hack I was using messed up paging. So I’m just not writing any new LOTD posts.

I’ve switched to storing my links under a del.icio.us tag. I’d also link to the RSS feed but something seems wrong, at least it shows up blank in Google Reader. Hopefully Venus Filters can help me clean that up when I get some free time.


Not to continue an internet meme, but holy shit it’s GWA!

2008-04-01 / 01:18 / dave

GWA pictureThe ever-awesome Lamaraba comes through with Girls With Attitude.

After stuffing my brains back in my head, all I can say is: The girls have trouble staying on beat, but that’s understandable because the beat was apparently made on a very, very ill Casio. I listened to it twice, it’s that much of a train wreck.

I know they’re only 12 or whatever, so… well whatever. It sure makes me think that Another Bad Creation was pretty damn good. Check out that beat on Iesha [Youtube].

And it’s more confirmation that The Wilcannia Mob are freakin’ geniuses.

Wilcannia Mob - Downriver

And while we’re talking about kids…


“Well,” I thought “maybe Architecture in Helsinki knows some sexy Klans members?”

2008-03-28 / 11:48 / dave

When I first heard Hear It Races I thought the lyrics were saying “hot and racist”.


Two stupid things I’ve done with my contacts lately

2008-03-28 / 11:43 / dave

  1. Reinserted a contact instead of brushing my teeth
  2. Put both contacts in one eye