7 Principles of Better API Design

This morning I attended Damian Conway’s presentation on his 7 principles. This seems to be an updated presentation of his Sufficiently Advanced Technologies, with several new modules that raised great points.

Below I’ve pasted my raw notes, which will likely be only slightly helpful without the slides (which I have the copy of). But I will highlight here the main points:

# Sufficiently Advanced Technologies
# Design By Coding
# Evolve by Subtraction
# Declarative beats Imperative
# Preserve the Metadata
# Leverage the Familiar
# The best code, is no code at all

Damian of course had excellent examples to support his points, with quality progressive code so you could see the process.

Welcome to OSCON

OSCON 2006 is here. At the hotel, getting ready to have my brain stuffed tomorrow.

“!http://halls.lug-nut.com/gallery/jayce/oscon2006/OSCON06/.cache/240×320-IMG_1654.JPG (Welcome to OSCON)!”:http://halls.lug-nut.com/gallery/jayce/oscon2006/OSCON06/IMG_1654.JPG

Cruising Washington

Before heading off to OSCON, I took the weekend to visit my old hometown. I grabbed a rental car and headed off to Washington. At about Centralia I took highway 12, and headed to the coast, just missing getting to watch the sunset over the Pacific 🙁 From there I took the 101 up the west coast, stopping a could of spots before finally deciding to sleep at “Kalaloch beach”:http://en.wikipedia.org/wiki/Kalaloch. “!http://halls.lug-nut.com/gallery/jayce/oscon2006/Washington/.cache/320×240-IMG_1534.JPG (Misty Morning at Kalaloch Beach!”:http://halls.lug-nut.com/gallery/jayce/oscon2006/Washington/IMG_1534.JPG This location was chosen basically because every site before there was full, and I didn’t want to keep on going. So I managed a couple of hours of sleep in the front seat of my car, before waking up to watch the sunrise over the forest from the ocean. What a beautiful site! I did figure out my camera has trouble focusing in low light conditions with thick fog though. Understandable, but leaves most of the pictures I took in a sorry state. “!http://halls.lug-nut.com/gallery/jayce/oscon2006/Washington/.cache/320×240-IMG_1545.JPG (I see you)!”:http://halls.lug-nut.com/gallery/jayce/oscon2006/Washington/IMG_1545.JPG

From there, I went on to enjoy some nice hikes in the “Hoh rain forest”:http://en.wikipedia.org/wiki/Hoh_Rain_Forest . “!http://halls.lug-nut.com/gallery/jayce/oscon2006/Washington/.cache/320×240-IMG_1586.JPG (Clubfoot Moss On a Vine Maple over a Stream) !”:http://halls.lug-nut.com/gallery/jayce/oscon2006/Washington/IMG_1586.JPG

Continuing on, I went along the north end of the 101, through part of my old stake, Forks, Port Angeles, Sequim, etc. then broke off, crossed the Hood Canal Bridge and down into Poulsbo (Little Norway). No trip to Poulsbo is ever complete without a visit to Sluys Bakery! My favorite’s are the Cinnamon Cup (with the most amazing whipped cream cheese frosting _ever_), Pecan sticky bun, and “Rosette’s”:http://www.hormel.com/kitchen/glossary.asp?id=34130. This place is also home to “Poulsbo Bread” which you can sometimes find in stores in Utah.

A few stops to see old family friends, and some kayaking gear, and I was on my way to visit my Sister and another friend in Tacoma, where I ended up my night.

Oh yeah, and a dinner at “Famous Daves”:http://www.famousdaves.com/ , mmmmm.


So I guess I should follow up “Joe’s Post”:http://blog.josephhall.com about our party with my contributions. The food was good, the style of party was great. I agree about how nice it was to be able to taste everything without stuffing up on one food. My family came with 2 dishes, and one cheese. I’ll relate here my part, and leave “Kelly”:http://halls.lug-nut.com/kelly to discuss her part.

My main appetizer was some tasty chicken quesadillas, with (according to Alton’s Rules) a sauce and a dip. The quesadillas were straightforward flour tortillas with cheese and grilled chicken. The chicken was rubbed before cooking so it was well seasoned, but the quesadilla’s purpose was to be a tool to try out the dip and sauce.

The ‘sauce’ was actually just a store bought salsa. I can’t find a link for it, but “Meza” brand fire-roasted garlic salsa, which occasionally is available at “Costco”:http://www.costco.com has quickly become my favorite store-bought salsa. It’s not all that hot (although a hit of sauce can help that), but it has this amazing garlic flavor that really makes it stand out on it’s own, more than well worth it.

The Dip was the part I made that really stood out (imho). I started my caramelizing an onion with some fresh garlic (out of my garden). After I had gotten almost the color and crust I wanted, I hit it with some sherry cooking wine, and recaramelize some of the nice crusties back. I then mixed this with a basic cream dip base (mayo, sour cream, lemon juice, salt, pepper), and some crusties from cooking the chicken. Tasty.

As for our weird cheese, we actually just picked up a bit of Jarlsburg, because my wife claimed she had never heard of it.

Now Kelly can blog about her customized fresh raspberry/blueberry/strawberry cobbler!

Freeside Schwag

At HostingCon, Ivan was passing out the new “Freeside”:http://www.sisd.com/freeside T-shirts.



It’s fun to have a shirt to a GPL project that I’m actually a developer on, not just for a tool I use.

And if you are interested in learning about good, open source, enterprise quality billing infrastructures, drop me a line, or join us on IRC.

Hooting It Up

While I’m not much of a baseball fan (actually, I really dont’ care for the game), on Friday my family and I went to a “Orem Owlz”:http://www.oremowlz.com game. It was quite enjoyable to watch the game as a family. The stadium they have is pretty nice, and our seats were great. It’s small enough that really any seat would be good.

For the price, I’d recommend most anyone to take their families out to the local ball game sometime. It’s relatively cheap, it’s a nice place, and some great weather. This coming from a guy who really doesn’t like the game, and yet still had a fun time. I love the idea of supporting the small town, local teams. The players really seem to try harder (vs overpaid major league folks), and the game of course is right in front of you.

As you can see, the kids were ecstatic.


Poker attack

This week I noticed a rather interesting change in the stats on this site. Right towards the end of my vacation, where I had gone just over a week without any new posts, I began getting a large surge in traffic. A very *large* surge.

This traffic has a couple of interesting things to note about it. During the week preceding the upswing, I noted quite a few comment spam attempts mostly from Texas poker sites. Then this large swing in hits began, and most had referrer sites coming from a long list of texas poker sites 🙂

It was interesting to watch this heavy increase in traffic after almost exactly one week from my last post, all now including a referrer from sites that had been attempting comment spam. After I began posting again, the traffic quickly began to slow down to normal levels.

My biggest peeve, is I now have windows/IE as my top os/browser hitting my site 🙁 what a lame stat.

My best guesses at what they are doing:

* They noticed that the comment spam wasn’t arriving, and changed what they sent thinking they could bypass security
* They thought the spam was in and were following up with hits causing google/alexa/etc to then reindex the page (especially on popularity as part of their SEO.

The interesting part I find is in their waiting for a week of inactivity to follow up with their very noticeable barrage. Is that the standard preying on abandoned blogs?

Plug REALM systems presentation

I didn’t get a chance yesterday to post about this, but I would like to thank Thayne for giving a very interesting “PLUG”:http://www.plug.org presentation on Wednesday.

Thayne showed off the “Realm Systems”:http://www.realmsystems.com _K9_ unit. This slightly large thumbdrive is actually a quite nifty little device. Inside it’s a PPC 400mhz chip, with memory and a fingerprint scanner that allows you to basically take over a computer for your needs. A portable device that keeps your applications and data ready to use any other computer as your host terminal. Read on for some interesting things we saw…

Javascript tabs

I saw some code for a “very clean tab library”:http://www.barelyfitz.com/projects/tabber/ that I thought I’d share out. Looks like a nice clean implementation, MIT license. Works great in safari

Missing Planet

Hrm, since updating my site, I don’t seem to be picked up by the “planet”:http://www.openclue.org/ut . At first, I had a problem where my personal rss feed wasn’t displaying, and then it was in reverse order (whoops). I’m hoping with a new post, and everything squared away, it’ll redo the feed correctly.