Brandon Invergo

Adaptation, Algorithms and Ambience

pyIFBabel 0.2 Released

Version 0.2 of pyIFBabel, a Treaty of Babel library for Python, has just been released. This version fixes some bugs in IFiction file handling in the previous version. However, the most significant development has been in the treatyofbabel.ifstory module, which was altogether non-functional in version 0.1. This module defines the IFStory class, which makes it simple to work with story files and their metadata information. With this, I now have what I need to integrate the new pyIFBabel functionality back into Grotesque (though I will return to pyIFBabel to implement some further features which will eventually end up in Grotesque as well).

Appointed as the New Maintainer for GNU GSRC

I’m very excited to have been appointed as the maintainer of GNU GSRC. GSRC is a system for downloading and installing the latest GNU software from source. It’s similar to BSD Ports due to being based on GAR and GARStow. I took on this job because the project covers a large portion of the functionality for a GNU/Linux distribution I’ve been thinking about which would form the underlying basis of the Coredesktop idea that’s been floating around in my head. Not to mention, I felt like volunteering some of my time to the GNU project. I think GSRC is a great system, which really exploits the advantages of GNU Make for taking care of dependencies and such (as opposed to other Ports-inspired systems which choose to reimplement even this basic functionality). GSRC has been left unmaintained for a little while, but once it gets brought up to date, I’d like to start exploring the possibility of founding a super-hackable distro based on it.

Thing of the Month: pyIFBabel 0.1

[I’ve decided to try a new project which I’m calling “Thing of the Month”. My goal is to release one thing every month. That thing can be small, like a minor update of some software, or a demo of a new song, or it could be big like a brand new software package or an album. The point is to give myself the goal of actually completing at least one thing every month, to prove to myself and the rest of the world that I’m alive. Yes, this is just a relaxed version of Jonathan Coulton’s Thing-a-Week project and all the Thing-a-Day projects out there]

April’s Thing of the Month is the first beta release of pyIFBabel, which is a Python module implementing the Treaty of Babel. The Treaty of Babel is an agreement between the developers of several different interactive fiction (aka “text adventure”; IF) authoring tools in order to provide a standardized way of identifying IF story files, as well as how to handle metadata and cover art stored in wrapper files. The official Treaty page features a C API as well as a commandline tool written in C. On the other hand, I inherited the Grotesque project with a partially complete API written in pure Python. I’ve worked hard to complete that API to support all of the story formats covered by the Treaty and to make it on par with the official C implementation. This first release represents that goal being mostly reached and ready for testing and use by other developers (this really is for a niche of a niche: developers of software utilities for interactive fiction). There’s still more work to be done and a few more features to implement but I think it’s at a good state to release to the world (“Release early, release often.”)

Pop Quiz

Fill in the blanks:

The justification for war that seemed most compelling was that ______ was on its way to building a nuclear bomb, but the evidence for this was very weak. Before the crisis over ______, Western intelligence sources had estimated it would take ______ three to ten years to build a nuclear weapon. Even if ______ could build a bomb in a year or two, which was the most pessimistic estimate, it had no delivery system to send it anywhere. Besides, Israel already had nuclear weapons. And the United States had perhaps 30,000 of them. The ______ administration was trying hard to develop a paranoia in the nation about an ______ bomb which did not yet exist.

  • a) Iraq / Kuwait / Iraq / Iraq / [George H. W.] Bush / Iraqi
  • b) Iraq / 9/11 / Iraq / Iraq / [George W.] Bush / Iraqi
  • c) Iran / Israel / Iran / Iran / Obama / Iranian

Fukushima Dawn Flyer

Lhotse has created a nice flyer for the first Cold Mountain Records release. So, if you would like to help us promote the release a bit in the real world please print it out and put it anywhere you think people would be interested! You can download the image (at a super-high quality ~35MB) here.

CMR001 Flyer

Help us spread the word!

Moving My Coding Over to Gitorious

Recently I’ve been working hard to consolidate my web presence and to reduce the number of websites on which I depend. One area where I’m a bit too spread out is programming-related sites. I have repositories on Github, Bitbucket, Sourceforge, Gitorious and Google Code. Ok, the Google Code ones are old and not used anymore. Sourceforge is just being used for Grotesque, since the project wasn’t started by me, and I find it to be not very user- friendly (“hulking” would be an appropriate term). It’s not really appropriate for little projects that may or may not go anywhere. I have a couple of private repositories on Bitbucket, which I don’t really use. So, I’ve decided to choose one site and move all my projects there.

Biopython 1.59 Released

Biopython 1.59 was released today. I had a few small contributions to this one. The main user-noticable one was that I implemented support for sequential Phylip alignment files (in addition to the already-supported interleaved format). In addition, I overhauled the tests for parsing the output of PAML programs for the Bio.Phylo.PAML module. This helped me catch and fix a few obscure bugs.

The release itself has lots of new features that are of interest. You can read the full release notes here.

Updated the Grotesque Website

After not being able to work on it for the past half-year, I’m finally getting back to working on Grotesque, a library manager for interactive fiction (aka “text adventures”).

I’m not sure that there’s any overlap between people who read this page and people who use the software. Anyway, I’ve updated the website for Grotesque (which now looks suspiciously like this website), and I’ve included a development blog in the new site so people can see how development is progressing.

You can visit the site at http://grotesque.invergo.net.

Rebuilding All Reverse Dependencies of Packages in Arch Linux With Pacman

This post is mainly a reminder for myself in case the situation ever comes up again but, of course, it could always prove useful for someone else.

Recently, updates to libpng and libtiff in Arch Linux required a rebuild of all packages that depend on them. I knew there must be a more efficient way to do this than to search the package listing on the Arch website to find all the packages that depend on these two and then to manually check which ones of those I have installed (this is what I started doing at first).

So, that’s when I put together this:

    pacman -S `cat <(pactree -lrud1 libpng) <(pactree -lrud1 libtiff) | sort | uniq`

pactree -lrud1 $1 lists all of the reverse dependencies of package $1 to a depth of one (so only the ones that directly depend on it). If you have to do this for multiple packages, you can cat together their output. Then you just sort the list and get rid of duplicates with uniq.

Introducing Cold Mountain Records

I’m very excited to announce the creation of Cold Mountain Records, in collaboration with Greg Pappas (aka zxyzxy). We’ll be using it as a vehicle for releasing our various forays in music.

Our first release is a split e.p. entitled “Fukushima Dawn”, featuring two contemplative songs each by Greg as Lhotse and by me as Yeti Quest. The e.p. will be available for download from our site on March 11, commemorating the one-year anniversary of the earthquake and tsunami in Japan, with pre-orders starting now. All proceeds from the release will go towards the on-going relief effort in Japan.

Fukushima Dawn cover