End of the Semester

A Tech article with View Comments posted 24 May 2009.
Tags: , , , , , , , , ,

Whew! Another semester ends, and I am now halfway through my seminary education at Wartburg. No breather for me, though, as I’ve got a number of big projects and travel plans that are going to happen in the next several weeks.

  • Websites – I’m currently working with a task force of members of our congregation here in Dubuque to relaunch LordOfLifeDBQ.org, the congregational website. The prototype is built on WordPress and is up and available here, but doesn’t have all the content loaded in it yet. The theme is just temporary too – a talented designer at our congregation is working up a custom template for us to use. We’re also working to get content written for MovingToDubuque.org, a site designed to help IBM employees and others moving to the Dubuque area get settled in. (I’ve also got a super-secret project in the works, but if I told you what it is, I’d have to kill you.)
  • Websites, ugly and less-ugly – Work continues on my study of congregational websites in the Evangelical Lutheran Church in America and their connection to demographic trends in those congregations. Hopefully results will be available in a few weeks.
  • Hardware hackery – I just bought a Asus WL-500G Premium wireless router and a nice 640G Hitachi USB hard drive enclosure to build a cheap combination-embedded-BackupPC-FileServer-Wireless-router for church.
  • Musicality – This semester I wrote a setting for Morning Prayer for Loehe Chapel at Wartburg Seminary called “Morning Light.” Now I’m working on scoring it and will soon be releasing it under a Creative Commons license. I’ve been especially thankful for the positive reception the Benediction and Sending piece from that liturgy has received – several classmates want to use it in ordination services this summer, and it may also be used at a wedding! Of course I’m geeking out as I do this, so I’m doing the typesetting in LilyPond and constructing a full-fledged musical build system in Apache Ant.
  • Computers for Africa – Via one of our international students, I’ve been put in contact with a university in Africa that could use some second-hand computers loaded up with Linux and shipped out there. I am not sure whether this will come through or not, but it’s on the radar.
  • Family Roots – My great-grandfather (via my paternal grandmother) Otto E. Matuschka was a Lutheran pastor in Missouri, Nebraska, and Kansas from about the year 1900 on. I’ve embarked on a project to find out more about him, and via his alma mater, Concordia Seminary in St. Louis and its Concordia Historical Institute, I’ve located some records. I’m looking forward to going down to St. Louis in June and doing some more research in their archives. According to one of their archivist, other family members were pastors too – who knew? Fun fact: my classmate’s husband served the same congregation in Nebraska that Great-Grandfather Matuschka served almost 85 years prior. It’s a small Lutheran world…
  • The Great Missouri Trip – Our occasion for visiting St. Louis is a trip to St. Louis, Kansas City, and Columbia that will have me preaching at Good Shepherd, Manchester, MO on June 7th, visiting in St. Louis through the 10th, then traveling to Kansas City to visit family until the 13th, when we return to Columbia so I can preach at St. Andrew’s, Columbia, MO on June 13th and 14th. I guess I better get started on writing some sermons…
  • Paint Chips – My classmates just discovered that their little girl has elevated levels of lead. We live in the same kind of housing they do, so we’re obviously also concerned. I’ll be looking into what kind of lead exposure testing might be necessary for Anneliese, Jennifer and I in the next few days.
  • Leavin’ on a… Budget Truck? – Soon we’ll be winging driving our way to St. John’s Lutheran Church in Sterling, IL, where I’ll be doing my year-long pastoral internship / vicarage under the supervision of Pr. Mark Oehlert. It’s going to be a busy summer, but an exciting one as we accomplish a lot of interesting tasks and get ready for a year of Something Completely Different. Pray for us!
  • And much much more! – Somewhere in here I might also send out some (painfully late) birth announcements, help edit the second edition of a book, and work half-time on some cool performance-related projects for IdeaWorks. Busy? Who, me?

The Value of Community, or Why I Love Perl

A Tech article with View Comments posted 31 March 2007.
Tags: , , ,

I’ve been asked a number of times recently why I chose to use Perl to develop SAGrader, my company’s flagship essay grading product. I’ll be the first to admit that Perl tends to permit bad (unreadable, unmaintainable, overly terse) code in more ways then, say, Java. I think that those problems are mitigated by keeping to modern best practices in Perl and adhering to a coding standard, but that’s not why I love Perl. I love Perl because of the community.

SAGrader, for example, is only implemented in about 40,000 lines of code, split between actual application code, unit and acceptance tests, and HTML templates. That’s all! But if you ruthlessly reuse code from CPAN, the hub of the Perl community, you can implement computationally intelligent essay grading, a complete website to handle thousands of students, and everything else that goes on behind the scenes to make a website like SAGrader work in very little code and time. While SAGrader may only be 40,000 lines of code, we reuse almost a million lines of Perl from CPAN.

The downside of this much code reuse is that it increases the resident size of your program in memory. Frankly, memory is cheap, and programmer time, effort, and happiness is not. Perl might not be the best tool for every job, but for this job, it’s saved us (without exaggerating) man-years of time and effort.

What people really think when I talk

A Family article with View Comments posted 19 March 2007.
Tags: , ,

Blah blah blah

My friend and co-worker Nate drew me a picture today with the Mouse Gestures extension for Firefox. He says that when I talk, this picture shows what it’s like for him.

For what it’s worth, I don’t wear glasses anymore, and I don’t have a receding hair line – at least not yet. But who am I to question his artistic creativity?

Heard in the office today

A Tech article with View Comments posted 12 March 2007.
Tags: , ,

“I have a comment. In my code. That says ‘Uh oh.’ And I don’t know why.”

A new unit of measurement: the “DreamHost”

A Tech article with View Comments posted 8 March 2007.
Tags: ,

After experiencing load averages over 50 on two DreamHost servers, gummi and hyperion, I would like to define a new unit of measurement: the “DreamHost.”

One DreamHost is defined as a server running with a one-minute load average of 8.

Hence, my server has been running at between 6 and 7 DreamHosts today. But I’m getting off easy, this guy ran into DreamHost servers running at 125 DreamHosts!

I’m done dreaming – I’m having nightmares now.

Scientific proof that students procrastinate

A Tech article with View Comments posted 4 December 2006.
Tags: , , ,

SAG2 load average 03 Dec 2006

This graph, from our new release of SAGrader at work, is proof positive that students wait until the last possible moment to complete their assignments. This is the average load on the server for an assignment that was due at 11:00pm on Sunday, December 3. And, happily, we weathered the onslaught with nary a hiccup!

Reliable InnoDB hot backups

A Tech article with View Comments posted 27 October 2006.
Tags: , ,

There are number of blog posts out there that mention --lock-all-tables as a good option to backup MySQL tables with mysqldump – even InnoDB tables. Don’t do that! That option is for MyISAM tables that don’t do transactions. InnoDB has ooey-gooey transactional goodness that will take a consistant backup without locking all your tables and keeping your applications from running in the meantime. Just do your InnoDB hot backups like this:

mysqldump -u USERNAME -p --add-drop-table --add-locks --create-options --disable-keys --extended-insert --quick --set-charset --single-transaction --all-databases | gzip > OUTPUTFILE

Then viola! No nasty table locks!