Archives for: 2007

Dec 13, 2007 : Mixed drinks

Last week I mixed some apple juice with my hot chocolate after lunch. I didn't make it any better, rather, it was kind of bad. So today I tried a more extreme combination in hopes of a better result: hot chocolate and Mountain Dew. Can't say it was good, but I enjoy the confusion that my mouth experiences. It tastes mostly chocolatey at the beginning of a swallow but mostly dewey by the end. I recommend it, just for the experience.

Another good mouth confuser is ketchup on ice cream.

Technorati tags:

Nov 07, 2007 : Alligators

Cherith & I saw 11 alligators up close in Brazos Bend State Park on Saturday. They were all pretty lazy which was good, since they were only a few feet away from us. Here's one:


View Larger Map

Technorati tags:

Oct 09, 2007 : ♪♫


Cherith & I are going to 5 concerts in one month. Saturday was the GR symphony; tonight was Grizzly Bear; next Tuesday is Architecture in Helsinki, in Chicago. Then Yo La Tengo at Calvin College. Finally, Spoon and The New Pornographers in Houston, TX.

I link to Architecture in Helsinki since their music is very interesting and fun, and I'm looking forward to them the most. You should listen to a bit of them.


Oh, and TicketMaster is a rip off. Tickets end up costing 40% more than listed, due to "convenience" and processing charges. At least all these bands release their music through labels that are not members of the RIAA, so I may buy some of their music.

Sep 13, 2007 : Event notifications in linux

Envious of slick Mac notifications via Growl, I looked around for similar systems for linux. There doesn't seem to be anything quite as nice, but KDE has a knotify subsystem that is used by KDE apps and easily scriptable. And Galago has libnotify (or is it libgalago?) a gtk-based system for notifications.

I wanted to have an easy way to get notifications when a build or test suite is done running, so I wrote a few simple scripts to use knotify to do so. See Putting KNotify to work for some docs and screenshots of what it looks like. Here's the docs and code:


  knotify-send [TITLE] [BODY] - create a passive knotify popup

  knotify-send heya! "look at me"

# Copyright Dave Brondsema
# licensed under Apache License 2.0

# inspired by's notify-send

if [ "$1" == "" ]; then
    echo "Usage:"
    echo "  $base [TITLE] [BODY] - create a passive knotify popup"
    echo "Example:"
    echo "  $base heya! \"look at me\""

dcop knotify default notify eventname "$1" "$2" '' '' 16 0


  knotify-done [COMMAND] [ARGUMENTS...] - runs command with args, and then runs knotify when done

  knotify-done svn up
  knotify-done ./configure && make && knotify-done make install
     (only notifies for 'make install')

# Copyright Dave Brondsema
# licensed under Apache License 2.0

# inspired by and comments

if [ "$1" == "" ]; then
    echo "Usage:"
    echo "  $base [COMMAND] [ARGUMENTS...] - runs command with args, and then runs knotify when done"
    echo "Examples:"
    echo "  $base svn up"
    echo "  $base ./configure && make && $base make install"
    echo "     (only notifies for 'make install')"

title="Completed with exit code $?"
dcop knotify default notify eventname "$title" "$body" '' '' 16 0
Technorati tags:

: Programmer's Day

Programmer's Day is today, the 256th day of the year. Sorry I couldn't give you guys more advance notice so you could do nice things for me :) ... but I just found out today.

Aug 13, 2007 : Family vacation in N Carolina

Jul 23, 2007 : BarCampGrandRapid2 recap

BarCampGrandRapids2 was a lot of fun. I didn't get to engage quite as much as I'd've liked since I was one of the organizers, but it still went really fun and was good to meet lots of people and hang out with friends. I particularly enjoyed Calvin's and Kyle's presentation on YUI CSS and Design Eye for the IT Guy (lots of good resource links there). Hopefully I'll post some notes about my presentation on Facebook/Myspace (I said "spacebook" a few times when I was tired.. not during the presentation) and the need for open systems and protocols for social networks. Finally, I want to list off a few new people that I met. I don't know why, but I feel like doing it.

  • Anthony Oliver (xamox) - Google Summer of Code participant, hacking Drupal; also had some interest in RDF & FOAF
  • Bill Warters - from Wayne State and applying some very recent technology (yahoo pipes, grazr, simile timeline) to help faculty
  • Zach Dennis - Ruby dev, currently
  • Sean McMillan (reaper\umich/edu) - interested in a tool that could post to multiple blogs/social networks
  • Matt Michielsen - interested in lots of things, seemed to grok what I was saying about Konfidi, PGP, DKIM, SPF, etc
  • Greg Clark - bright underclassman working with Jeremy Frens on a RoR project
Technorati tags:

Jun 27, 2007 : Awesome Instrument: the Theremin

The theremin is an electronic instrument that you play without touching: the position of your hands are measured by antennae which control the volume and pitch of the speaker sound. Very crazy stuff... I've wanted one since I heard of them, and after watching this video I really want one:

Technorati tags:

Jun 21, 2007 : The Future of Java

Last night I gave a presentation at the Grand Rapids Java Users' Group titled "The Future of Java". If anyone is interested, you can view the slides in PDF or OpenDocument (with some notes) format. The topics I covered were:

  • Java 6
    • Swing
    • Scripting
  • JRuby
  • Scala
  • Consumer JRE
  • JavaFX
  • Java 7
    • Properties
    • Closures
Technorati tags:

Jun 18, 2007 : Does google toolbar uses hCard microformat for addresses?

It appears the the google toolbar (at least for IE) will find addresses in webpages that are marked with the hCard microformat and use it in a "Look for Map" button. I haven't tried to test it, and I can't find anyone talking about it on the web. But it sure seems to work that way. It may (also) use some other heuristics, I don't know. Does anyone know more about this?

Technorati tags:

Jun 16, 2007 : BarCamp Grand Rapids 2

no, it's nothing (inherently) about drinking. It's a fun geeky get-together that I'm helping organize again this year. Here's the announcement with all the info:

Rule #1 of BarCamp: you DO talk about BarCamp.

We're proud to announce our second BarCamp (dangerously close to being "annual"). BarCamp is a technology & design unconference where the campers (you) determine what's on the schedule. These ad-hoc unconferences are intense events with discussions, demos, and a chance to interact with fellow attendees. Anyone with something to contribute or with the desire to learn is welcome and invited to participate.

WHEN: Friday evening, July 20 and Saturday, July 21

WHERE: Calvin College, Grand Rapids, MI

COST: Free! But everyone is encouraged to present something and be involved, even if you're never given a talk before.

WHAT: So far, topics ranging from opensource business to the JQuery Javascript library to next generation communications. Ultimately each camper has an opportunity to help determine the content.

You can register and find out more information about BarCamp Grand Rapids at, or about BarCamps in general at

Technorati tags:

Jun 10, 2007 : Lasagna Drive

Tonight when I first read a street sign, I thought it said Lasagna Drive. Why aren't streets named after food? I'd rather live on Banana Ave or Syrup Blvd, than Spring Meadow Creek or some quaint crap like that.

: Goodbye, Midland

This weekend our whole family was in Midland for Chloe's high school graduation open house. It was the last time I'll be in Midland in the foreseeable future, since my Mom is joining my Dad in Houston very soon. I'll miss Midland, but not terribly. I'll miss the friends I have who are still there. Not much else to say, but thought I'd write something rather than nothing, at least for posterity's sake.

Jun 06, 2007 : 100% height iframe

So <iframe height="100%"> doesn't make an iframe fill all the remaining portion of a window like you might expect. I found several places where people showed how they got it to resize with javascript, but those didn't work for me. The DOM properties that they used were frequently the "page" height (e.g. 250px for a short content page, 1300px for a tall page that has scrolling) or something else wrong. Here is what works for me (in Firefox 2 and IE 7) to make an iframe be as high as possible without causing the main window to have scrolling:

<head>Test Page</head>
<h1>Check out the cool page below</h1>
<p><a href="/">Go back home</a></p>

<iframe id="frame" src="" width="100%" frameborder="0" marginheight="0" marginwidth="0"></iframe>
<script type="text/javascript">
function resizeIframe() {
    var height = document.documentElement.clientHeight;
    height -= document.getElementById('frame').offsetTop;
    // not sure how to get this dynamically
    height -= 20; /* whatever you set your body bottom margin/padding to be */
    document.getElementById('frame').style.height = height +"px";
document.getElementById('frame').onload = resizeIframe;
window.onresize = resizeIframe;

Hopefully this may help someone in the same situation.. your mileage may vary.

Update 10/4/2008: Eric P. noted a while ago that you need a doctype, and Ernest E. reminded me that I needed to update my example.

Technorati tags:

May 22, 2007 : Scents

The smell of Meijer lemon sandwich cookies reminds me of my road trip out west. They, PB&J, and canned food sustained me for quite a while.

May 17, 2007 : New homepage content for my website

My homepage now sports an overview of what I've written lately, listened to lately, bookmarked lately, and coded lately. (It used to just redirect to my main blog page). There is also a link to browse all the "feeds" I read (over 200 now). I plan to add latest photos to it eventually (have to do some work on my gallery first), and sometime I will give a whole new theme to the site.

For the technically inclined, I wrote a simple PHP script that uses the SimplePie feed parser to pull & display the various feeds. There are feed icons next to each section if you want to subscribe. For the feed browser ("what I read"), I'm pointing the grazr widget at my OPML file -- which actually is dynamic and pulls the OPML file from my feedreader service (currently so that I can have an elegant permanent URL for it and also so I can remove one private feed that I wish to keep hidden.

Technorati tags:

May 07, 2007 : to be an old man

I've wanted to be an old man for a while. Perhaps it started with the "Michigan State Grandpa" tshirt that I bought (my friend Brian got one too) while visiting a friend at MSU several years ago. Or perhaps when Cherith starting saying to me: "You've got rice in your beard, old man!" The advantages of being an old man are great: you can be weird and looney, or just plain grouchy and people write it off: "he's just an old man". You also get to have a big gray beard. And years of "wisdom" to yell at little'uns by. Now today the internet was out at my apartment for a while so I went for a jog. I haven't done that in a while and now my legs are sore. And weak, especially when trying to stand up from sitting. So I feel like an old man since I have trouble even standing myself up. Also today, I got the results from my MRI on my elbow (I fell on it before winter and it hurts when pushed straight in certain ways) and it turns out nothing is wrong really. Everything is normal; I just have to live with it (which isn't too bad). I forget how it came up when I was talking about it at work, but Drew concluded it makes me like an old man.

Step by step I'm working towards my goal. Pretty soon I'll age past you all!

Apr 02, 2007 : First release of a PGP plugin for SpamAssassin

Mail::SpamAssassin::Plugin::OpenPGP is a SpamAssassin plugin that validates PGP signed email. It also adds some mail-specific validation: it requires the From: address to be one of the addresses on the signer's key, and that the Date: is close to the date of the signature.

It's only version 1.0.0 and I'm not even using it myself (yet), but it passes 17 functional/acceptance tests. I'd appreciate any feedback.

The code is available via CPAN of course, and also through Konfidi's SVN repo: browse

Technorati tags:

Mar 21, 2007 : word fun

After spoonerisms, portmanteaux are my favorite form of word play. They are a combining of multiple words into one. For example, a weirdalfternoon is an afternoon spent listening to Weird Al. Unfortunately, linguists no longer use the word "portmanteau" but call them "blends". That's dumb, because its a terribly boring name for such a fun thing.

Spoonerisms, my favorite, are simply an interchange of letters/sounds among words in a phrase. For example, "wild turkey" is said as "tiled wurkey" (written as you pronounce it). You can get more tricky (and fun!) by exchanging vowels or consonants in the middle of words, or exchange more than two sounds: "Chinese Gourmet Buffet" becomes "binese chormet guffet" (say that three times fast!) and "drugs & alcohol" becomes "hugs & dracula"

Technorati tags:

Mar 12, 2007 : FOAF Whitelisting project

The Semantic Web Education & Outreach (SWEO) Interest Group of the W3C has announced that it is supporting the FOAF Whitelisting project as one of its community projects. The discussion for that project is happening on the foaf-dev mailing list. I'm there discussing how their ideas for the project do or don't match up with Konfidi's. It seems like I'm starting to understand their ideas better, and mentally I'm slowly letting myself give up perfectionism and idealism, so that we can take advantage of all the existing relationship data on the web. We'll see how it goes, and if Konfidi & FOAF Whitelisting merge into one project or not.

Technorati tags:

Mar 03, 2007 : God uses Greasemonkey (or, modelling Christianity with HTTP)

At work (the IS dept at a Christian university) a few weeks ago, our lunch discussion came to whether God could both love and hate someone at the same time. I said that if the person is saved by Christ, God sees Christ -- not the person -- when he looks at him. Drew said "it's like a hard link!"

On the web, it'd be like a permanent redirect. But only when God tries to resolve a Christian's URL does he get redirected to the URL representing Christ. "The LORD does not look at the things man looks at. Man looks at the outward appearance, but the LORD looks at the heart" (1 Sam 16:7). So how would that work? The difference in how the person's URL resolves depends on the viewer, so something has to be done at God's end. We came up with the idea that God must use Greasemonkey with script that applies URL redirections.

I couldn't find any Greasemonkey scripts that did URL redirection (just lame javascript redirects which is not good enough). So here's how I think Christianity could be modeled in HTTP:

Let's say represents me (technically, it is an RDF document about me, but I'll avoid getting into RDF). will be the URL representing Christ. When God requests he needs to get:
HTTP/1.1 301 Moved Permanently

This is assuming that a person once saved can never fall from salvation. If it's the contrary, then instead of a 301 Moved Permanently, there'd be a 307 Temporary Redirect

Probably be the best way for God to achieve this would be with a local proxy that rewrites some responses to be 301/307 instead of their original response value. Of course, only God would know how his proxy works; none of us know if other people are saved by Christ or not.

Some definitions, for the less technically inclined:

hard link
like a file shortcut, but better
Universal Resource Locator; aka web address. It can represent anything, not just provide a webpage
A firefox extension that lets users install scripts that change the functionality of certain webpages
HyperText Transfer Protocol. The underlying protocol that web browser & servers use to request & transfer webpages
Technorati tags:

: long tooltip text in firefox

For those of you that read xkcd which uses long title tooltips on each comic (or any other comic that does it, like Falling Fifth) you must check out the Long Titles extension for Firefox! It's great!

Technorati tags:

Feb 27, 2007 : twins

If I ever have twins, and they're a girl and a boy, I'm going to name them Chickpea and Garbanzo.

Feb 17, 2007 : Blogs & news feeds

Recently I unified my blog & news feeds from home and from work and check them all via I'm currently subscribed to 154 feeds, and yes, I do read/scan them all. You can see what I'm subscribed to here (OPML browser via

Feb 06, 2007 : no heat

My heater isn't working tonight :( so I have cuddle up next to my computer. It should be fixed tomorrow, though.

: keychain gpg-agent pinentry problems

I use keychain to setup my ssh-agent and gpg-agent sessions so that it remembers my passphrases and I don't have to retype them every time I use them. But recently I was getting this error:

Error: Problem adding (is pinentry installed?); giving up

Digging into /usr/bin/keychain I found that it was having trouble running gpg --use-agent --no-tty --sign. Running that directly gave me this error:

gpg: problem with the agent - disabling agent use
gpg: Sorry, no terminal at all requested - can't get input

The problem turned out to be ~/.gnupg/gpg-agent.conf had an old entry pinentry-program /usr/bin/pinentry-gtk which didn't exist any more. Change that entry to /usr/bin/pinentry or delete it altogether. Note: you'll have to restart gpg-agent (killall gpg-agent && eval `gpg-agent --daemon`) for changes to gpg-agent.conf to take effect.

Hope this helps somebody, since none of my googling found this solution.

Feb 01, 2007 : turkey wad

Now that I've thoroughly disgusted some of you.... "turkey wad" is a phrase that my family and I actually use. I think the general meaning is the same as "dork". Has anyone else heard this phrase? Google only reveals a few myspace comments with this meaning. Parents, sisters, any idea where we got this from? My guess is from Mom's side of the family.

Jan 22, 2007 : shoes

I found out that my right shoe has a deep crack in the bottom. This makes my whole day quite uncomfortable if I step in any wet sloshy snow in the morning :(

Jan 20, 2007 : Headlights

I owe my faithful non-techie readers something a little more interesting, before I do any more esoteric posts.

So I was driving a long ways in the dark the past few days, on my way to and from the conference in Ohio. Other drivers headlights in my sideview mirror can be really bright and annoying when everything else is dark. And then there's some people who have helicopter search lights strapped to the front of their truck! I'm surprised I can still see. It'd be cool if the side view mirrors could switch modes like the rear view mirror for nighttime driving, but nope. I used to hold my hand in front of the mirror to block the light, but that gets tiresome quickly :) So here's my trick: I can turn my side view mirror up far enough that it doesn't reflect anything from behind me! It works great, just remember to watch your rearview mirror and maintain situational awareness (I like that phrase, but never get to use it!). And don't be surprised when you drive under a bridge. You'll see the bridge in your mirror and it seems kinda odd at first.

P.S. politics post is still on its way

P.P.S. when I get around to doing some website upgrading (realistically, several months away) I will set up my blog so that you can easily filter out the tech posts and just read the good stuff :)

Jan 19, 2007 : Multi-threaded optimization?

At CodeMash today, the keynote was about Microsoft's upcoming LINQ technology that allows you to integrated SQL-ish query language into your .NET code. Or IronPython code. And query native objects (e.g. process) and query XML. Datasources are extensible, and functionality of the query engine is extensible. Pretty cool. I hope an RDF implementation is written, to bring RDF to all the .NET developers. I feel like there is probably a huge chasm between .NET developers and RDF advocates, however.

Update: Hartmut Maennel has developed a RDF driver for LINQ (see his previous two posts, too). After thinking about this more, a SPARQL driver would be better, except that there aren't many SPARQL servers.

One of the nice features about "declarative intent" programming in a query (as opposed to programmatically looping through a list and checking for matches), is that the query engine can do optimizations for you, like leveraging multiple processors/cores (which will be very important in the future, since that is the future of computing hardware). It made me wonder, though, if standard algorithms like Java's Collections algorithms take advantage of multithreading. Does anyone know? I sure hope it does or will soon.

Technorati tags:

Jan 18, 2007 : CodeMash conference

Bruce Eckel is giving the lunchtime keynote right now :) And there is a challenge to get 500 CodeMash blog entries on technorati (blog post aggregrator) before the end of the conference. So here's my contribution to help get one of the coordinators to shave his head.

The first keynote was about Domain-Specific Languages. DSLs make it easier for end-users or business-analysts to read & verify your code, and maybe even right some. Dynamic languages that can support them pretty directly. In the statically-typed world (which I prefer), there are tool factories fro DSLs that are being developed. That means a tool to generate a language, AST tools for it, refactoring support, and content-assist in an editor. Sounds exciting.

Posts on politics & headlights later. I want to pay attention to this keynote :)

Technorati tags:

Next Page >>

Next Page >>

<<  2007  >>
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec




Syndicate this blog XML

powered by