Older blog entries for brondsem (starting at number 57)

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

docs:
  Usage:
  knotify-send [TITLE] [BODY] - create a passive knotify popup

Example:
  knotify-send heya! "look at me"
code:
  #!/bin/bash

# Copyright Dave Brondsema
# licensed under Apache License 2.0

# inspired by galago-project.org's notify-send

if [ "$1" == "" ]; then
    echo "Usage:"
    full=$0
    base=${full##*/}
    echo "  $base [TITLE] [BODY] - create a passive knotify popup"
    echo
    echo "Example:"
    echo "  $base heya! \"look at me\""
    exit
fi


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

knotify-done

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

Examples:
  knotify-done svn up
  knotify-done ./configure && make && knotify-done make install
     (only notifies for 'make install')
code:
  #!/bin/bash

# Copyright Dave Brondsema
# licensed under Apache License 2.0

# inspired by http://sami.picobot.org/?p=19 and comments

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


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

Technorati tags: bashgrowlknotifynotifications

Syndicated 2007-09-14 02:17:03 from Dave Brondsema's Blog - Programming

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.

Syndicated 2007-09-13 15:21:16 from Dave Brondsema's Blog - Programming

24 Jul 2007 (updated 24 Jul 2007 at 19:05 UTC) »

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: barcampgrandrapids2facebookmyspaceyui-css

Syndicated 2007-07-24 01:01:47 (Updated 2007-07-24 18:55:46) from Dave Brondsema's Blog - Programming

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: java

Syndicated 2007-06-21 04:50:10 from Dave Brondsema's Blog - Programming

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: googlehcardmappingtoolbar

Syndicated 2007-06-18 18:09:24 from Dave Brondsema's Blog - Programming

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.

http://barcamp.org/BarCampGrandRapids2

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 http://barcamp.org/BarCampGrandRapids2, or about BarCamps in general at http://en.wikipedia.org/wiki/BarCamp

Technorati tags: barcampgrandrapids2

Syndicated 2007-06-16 20:27:01 (Updated 2007-06-16 20:27:36) from Dave Brondsema's Blog - Programming

6 Jun 2007 (updated 6 Jun 2007 at 18:04 UTC) »

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:

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

<iframe id="frame" src="http://google.com/" 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;
</script>

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

Technorati tags: iframejavascript

Syndicated 2007-06-06 16:58:41 (Updated 2007-06-06 17:13:24) from Dave Brondsema's Blog - Programming

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 newsgator.com) 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: feedslifestream

Syndicated 2007-05-18 02:34:06 from Dave Brondsema's Blog - Programming

3 Apr 2007 (updated 28 Apr 2007 at 18:05 UTC) »

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: gpgopenpgpperlspamassassin

Syndicated 2007-04-03 03:28:07 (Updated 2007-04-03 14:41:14) from Dave Brondsema's Blog - Programming

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: semwebspamtrust

Syndicated 2007-03-13 01:06:22 (Updated 2007-03-13 01:06:40) from Dave Brondsema's Blog - Programming

48 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!