(λblog. blog blog) (λblog. blog blog)

diverging since 2008

Entries tagged "conf"

2008-06-15 21:00

Irssi is a powerful but sometimes baroque irc client that seems to be the de facto standard nowadays. One of it's downsides is that the default theme, binds and settings are pretty awful.

By default, meta-0..9qwer..io (the number row and the qwerty top row) access the first 20 windows. However for most IRC junkies this won't do, they need some way to access window numbers, say, up to one hundred. Nike has one solution for this but this is what I prefer:

for i in $(seq 0 9); do for j in $(seq 0 9); do
echo "/bind meta-g-$i-$j change_window $i$j"; done; done

This shell snippet generates commands to bind the sequence alt+g x y to window 10x+y. This doesn't intrude on the default binds so I can still access the first 20 windows with just one modified keypress, but still keeps windows up to 100 nicely in reach.

To handle other shortcomings of irssi I recommend nospambot (sadly offline, it seems) for ignoring noisy bouncing, nickserv for authenticating with NickServ, act for removing noise from the activity. I've also designed two themes for irssi: trax (.theme file) (I know it's kinda tacky, I was young and 1337 back then) and simplicity (.theme file) (Works well on both black-on-white and white-on-black terminals).

Tags: conf.
2008-06-22 22:50

As some irc acquaintances of mine already know, choosing a blog platform turned out pretty difficult for me. Actually, let me retake that, finding a blog platform that didn't suck turned out a veritable odyssey. Now it's been about a week and one national holiday since my struggles so I can hopefully recount my tale w/o resorting to tuomov-style rhetorics.

My ideal platform would be a blog compiler with some cgi to handle comments. I want to keep my posts in a darcs repo and serve static html when it's possible. Markdown support and code syntax hilighting would be bonuses. I'd like to plug in HsColour. Doesn't sound so hard right?

When discussing my plans I received two platform suggestions: blosxom and chronicle. Originally I had nanoblogger in mind but it soon turned out it just wouldn't do. I set up chronicle but started experimenting with other engines. Here's the rundown:



  • cgi, implemented in perl (ports to various other scripting languages available)


  • had to push data into blosxom's datadir with a custom makefile for two reasons:
    • wants control of the blog posts
    • no formatting support, posts would have to be in html
  • using markdown was a hassle because blosxom wants some unformatted information (title etc) in the beginning of a post file
  • wants publish date to be the same as file mtime (doesn't play well with version control...), can be fixed with a plugin
  • the comment plugin really is ugly
  • many of the plugins were dead or the authors use wordpress nowadays
  • uses home-grown template system and not, for instance, Text::Template



  • a blog compiler, comments available as a very hacky cgi add-on
  • supports markdown and html


  • the version in debian seems has outdated documentation and seems not to really support the comment plugin
  • have to do syntax colouring with a makefile

Nanoblogger, bashblogger, vee

  • blog compilers
  • want control of the posts, have own version-control-systemish thing
  • formatting with a shell pipe mostly
  • comment support ugly or missing



  • a wiki compiler, blogging available with a plugin
  • wants posts in markdown
  • (IMO ugly) git support
  • nice commenting support


  • overkill? a real mess to configure at least
  • plugins for mostly everything but not for just piping blocks through a second formatter...
  • I really don't like the way ikiwiki uses git: there's one central copy, and committing to it launches a hook that makes ikiwiki pull changes into its own working copy


(no, I didn't try it, I have enough experience with this monster already)


  • de facto standard
  • ugly as hell, wants posts written with a web cli
  • wants sql db
  • implemented in php

So here I am, back using chronicle and not that pleased with it. Ikiwiki would be perfect for the job were it not for the need to write my own plugin (I already have) and some ideological problems. Maybe I'll get around to switching to it some time in the future.

Update 2008-06-23: language

Tags: conf.
2008-07-13 22:00

I'd been looking for a lighter alternative to my 3-year-old 15.4" Dell Inspiron for a while. Wanted: something small and cute for ircingtaking notes on lectures that doesn't need a laptop bag for transportation.

Long story short, my Lenovo Thinkpad X60 Tablet from lapstars (with a student discount!) arrived this friday. I'm in love. Let me list the salient features:

  • Under 2kg
  • 12.1" SXGA+ (1400x1050) tablet display (not a touchscreen, requires a stylus like a drawing tablet)
  • Intel Core 2 Duo L7500
  • Battery life up to 8h with 8-cell battery

It's charming how everything worked basically out-of-the-box on debian. Power consumption dropped from 17 to under 10 Watts (w/o wireless) just by letting laptop-mode-tools control everything (data from PowerTOP, great tool). The only thing still unconfigured is the integrated fingerprint reader. Thinkwiki has been a great help in all this.

My other machines are named meta, pseudo and omni so the tablet became endo. In related news I made some excellent italian meatballs today, yum.

Tags: conf.
2008-07-20 20:40

(Written 2008-07-17 22:00)

Attended Pori Jazz in Pori, Finland. Highlights: Return to Forever and Bob Geldof.

Return to Forever split up 25 years ago and this gig was part of their reunion tour. The quartet played very solid traditional fusion jazz (strange, shouldn't that be an oxymoron?), improvisation interleaving seamlessly with unisonous vamps. There was tangible synergy between Stanley Clarke (bass) and Chick Corea (keyboards) during the jamming; observing the professionalism, the playfulness, the ease of it all and the joy on their faces was a pleasure. The gig wasn't a performance, it was great musicians having fun together. It was, however, a shame to see guitarrist Al DiMeola shunted into a side role in all this. It seems everything can't be healed after 25 years of growing apart. As a whole, the performance was great. I love fusion jazz and here was one of the best lineups playing it live.

I found a new friend in Bob Geldof. Firstly, I fell in love with his style the moment he entered the stage. Secondly, when the music started I immediately knew what I was looking at: a heir of the same British music tradition that spawned The Clash's reggae-punk, David Bowie's detached and angsty country glam rock, David Gilmour, Syd Barret and Ian Anderson. Bob is a punk star grown old and tired, a rock musician who found folk influences (like Anderson), and most of all, a blue storyteller. Needless to say, the gig hit me hard.

And now to the posterior part of my titular juxtaposition: modules, i.e. tracker music. I've been composing a soundtrack for a short movie project for the past few weeks. The movie itself was filmed a few months ago and edited in one all-nighter a few weeks back. First, a few words on music software:

Years ago, during my first foray into making music, I used Jeskola Buzz on windows. Buzz was an all-in-one solution: sequencer, mixer and loads of software synthetizers all in one sweet package. I've searched for a replacement that would run on linux for years -- to no avail. A few reimplementations exist nowadays but they tend to be young and flimsy, not ready for production. BEAST is just inadequate. Running soft synthetizers and a sequencer separately is just too much of a bother, but the best method I've run across. I've never digged sample-based stuff so trackers were pretty much out of the question. In the end I just stopped making music for lack of time, tools and motivation.

The soundtrack project provided me with the proper motivation so I just needed to find the tools. We needed something very acoustic and decidedly non-electronic, so I turned to the numerous freely-licensed sample libraries on the internet. I managed to cobble together an adequate set of sounds and fired up Schism tracker. I had played with Impulse Tracker years and years ago and tracker software on linux while searching for a Buzz replacement. Schism was the best of the bunch and also a reimplementation of IT so it was a natural choice. I started working and soon the tracker started feeling very natural. After a long pause I was channeling creativity into music once more. It felt great. How typical: to get over the angst and procrastination all that was needed was the proper motivation. You'll hear about the movie when it's released, which will hopefully happen at the Assembly '08 Short Film Compo.

Update: 2008-07-17 22:50 grammar

Tags: conf, culture, travel.

Finally switched from ion to xmonad. I still haven't fully adapted my workflow to the new window manager or vice versa, but I'm getting there.

ido for emacs is a great incremental tab-completing buffer switcher and file selector. Think iswitchb-mode and then some more. Another nice find are the up-line-or-search and down-line-or-search actions in zsh. They enable you to type for example sudo emacs and then browse through commands starting thus.

On a more personal note, I had my hair cut and have started packing for my impending move to Pasila. I've also been offered a chance to work at zendroid, the hottest startup in town. I'll probably have to decide between them and continuing at HIIT in a few weeks.

A couple I knew just broke up. Some of my friends are depressed. My girlfriend thinks we've wasted the summer. I myself feel as though I were slowly awakening from a very long sleep.

Additionally, you can start expecting part two in my attribute grammars and compilers series, it's well under way.

The semester is starting in a few weeks. I'm aiming at completing my candidate (bachelor for you foreigners) degree for christmas. Sadly there aren't that many interesting courses this fall, but I guess that's just good if I'm to be working part-time.

Tags: conf, life.
2008-09-18 01:10

Lately I've been studying swedish, working on my candidate's thesis and the software engineering project, working at Zendroid, founding a new student organisation and doing part-time teaching. Despite or because all of this, I've been feeling more upbeat and productive than in ages. Somehow having merely much to do is more stressful than having an abundance of tasks. I guess the diversity of projects is what's keeping me going. Also, the job is turning out to be really interesting and inspiring.

In addition to time-management skills, all this multitasking has been improving my emacs technique. I've resumed using emacsclient and keeping one master session open at all times after a few years pause. Working on a large software project once again offers an opening for all sorts of tools and tricks I'd forgotten.

Working intensively also made me switch back to ion from xmonad. A dynamic window manager just isn't enough when dealing with a plethora of windows. A tag-based one might have worked better, and of course heavily customising xmonad would've probably gotten me something I could use. But in the end ion is what I enjoy using and have many years' experience with; I've no reason to switch.

BTYL, got real stuff to do.

Tags: conf, life, work.
2008-10-04 23:10

As I mentioned earlier, Zendroid uses git. After I started as the third developer at the startup, we needed to establish real (scalable) development practices. I started looking at different open source issue trackers. Two systems that are implemented as git plugins are ticgit and git-issues, the latter being a python clone of the former ruby program.

Both projects are still in their infancy and quite unpolished, but still managed to seem promising. They track tickets that can be assigned, prioritized, commented and solved. However, they do this by using something akin to git-shelve to store ticket information in a separate branch.

This just doesn't work. Git can only operate on one branch at a time. Pushing and pulling changes to the issues branch require checking it out (involving much copying and losing changes made to the working tree (unless git-stash is used)). Also, a single commit can not both fix a bug and mark it as fixed. Of course one could keep a separate working copy with the issues branch checked, which is again not at the level of integration we would want. The tools could (quite easily) provide an interface for syncing the issue branches but although git-issues has such a thing documented, neither project implements it.

This leads to the other gripe I have with these two pieces of software. Both were inadequately documented and often threw backtraces instead of error messages. Somehow both have gotten stuck at the proof-of-concept stage, possibly because of the cumbersome separate branch model. We started looking at alternatives, briefly considering the all-so-trendy Lighthouse and totally not considering trac.

Ditz to the rescue. I had heard of the project previously but had thought it as something simple like devtodo. Not so. Ditz offers all the features git-issues and ticgit do and more. One can group tickets into bundles (releases) and annotate, comment and query them in all thinkable ways. Additionally the tickets are stored in a separate directory in the same branch as the code they refer to, and are formatted as YAML (yay!), making merging very easy and pleasant. Ditz is also well-documented and actively developed. The only problem we have bumped into is that a ticket that someone has claimed can not be "stolen" without hand-editing the ticket files.

So, that sorts out the technology side. On the human side of things we schedule tasks with dated releases. All the issues grouped into a certain release are meant to be cleared before the set date. In addition we have larger releases that roughly correspond to milestones. Ideally, all work done should be related to a ticket claimed by the developer and marked as "started". Changes to tickets are propagated in sync with code changes.

Update 2008-10-06: Git actually uses hardlinks when changing branches, so performance isn't the problem. In any case the semantic load (and ugliness) remains.

Also: I forgot to mention that we have a separate review project that contains code-review tickets.

Tags: conf, work.
2008-12-18 23:50

I'm not sure whether it's actually worthwile to pollute the internets with yet another VCS rant but here goes...


Pearls of wisdom on #haskell:

<int-e> Saizan: what advantage does darcs have, over git, for purposes of tracking the history of a wiki? darcs is all about ignoring the history.

Disregarding the wiki context (comment from a discussion about gitit, a haskell wiki engine that uses git as a storage backend), this quote sums up exactly what has been my problem with darcs. Background: I use darcs for managing my config files and for small one-man projects but for everything bigger I just fall back to git.

I'm irked by having to have a separate working copy for each branch. Firstly, this sucks because pushing all branches to a public repo needs additional effort. Also, combined with not-caring-about-history this makes forking from the past or tagging a past revision very ugly. I want my VCS to store everything and not force me to bookkeep on branches. Darcs takes branches back to the SVN age.

Git can be adapted to any sort of workflow and it'll mostly do the right thing. Darcs doesn't have any thing to adapt, and instead of doing the right thing it does nothing on most issues. I appreciate the minimalism, but just don't like the way darcs forces me to act with a large project.


Interface-wise, I love the interactive approach of darcs, but git is getting close with those -i flags. rebase -i is great for cleaning up history, commit -i and add -i are almost as nice as darcs's record. gitk is an essential tool for the non-linear development style git encourages (and darcs discourages IMO). After the initial learning curve, git is a great and consistent tool.

Tags: conf.
2009-03-02 23:30

Off-the-record is a crypto protocol implemented as a quite mature open source (LGPL) library. Its purpose is to enable trusted one-to-one instant messaging (etc.) that can be trusted at the moment it is said but can be later plausibly denied. Also, the protocol is built so that there are no long-term keys that when compromised would reveal all past communications. (This is a problem with for example PGP-type encrypted email solutions.) There are OTR plugins for irssi and xchat as well as other IM clients. If asymmetric cryptography and D-H give you that warm fuzzy feeling, this is the coolest toy since ssh.

New chiptune finds: Nullsleep and Pulselooper, both producing authentic Nintendo (NES & Game Boy) beats. Great stuff. Sadly the other releases under the new 56kbps netlabel aren't as good as Pulselooper...

Tags: conf, culture.

RSS Feed