A Life Worth Sharing?

Quick disclaimer: I don’t know whether this post makes any sense. I’m probably using terms inconsistently. But I’m going to post it up anyway. Some musings kicked off by this post of Sacha Chua’s.

I’ve always felt self-conscious and uncomfortable about sharing what I’m thinking or what I’ve been doing. It manifests in lots of ways: not speaking up during meetings, avoiding posting comments, struggling to find an answer to “how was your day?”. It’s frustrating, because I can see the value in sharing. It’s something I want to do well and fluently, and that’s one of the reasons I’m trying to blog.

Anyway… it jumped into my head that there might be some kind of loose analogy between ‘regular sharing’ and ‘test driven development’. Given that I’m not particularly comfortable with the first, and not particularly knowledgable about the second, I don’t know whether this will make any sense, but here goes…

  • Both provide you with tight feedback loops — the first person you’re sharing with when you write something up is yourself. I guess that’s a bit like getting a test to pass in TDD.
  • Both help you to avoid ‘regressions’ — if you’ve got a permanent record of what you’ve done, what’s worked, what hasn’t, then perhaps it’s easier to get a sense for when an action you’re considering will cause problems.
  • Both offer a form of ‘documentation’. Sharing, for your life: for your actions; for your situation. It shows what you were thinking at the time.

What about the ‘design’ aspects of TDD? What might they mean in this analogy? i.e. ‘writing the tests first’ is much easier if your program is structured in a ‘testable’ way. Similarly, if you commit to sharing, then presumably, it’s much easier if you live your life in a ‘shareable’ way.

  • Being willing to share what you’ve been thinking and doing, and finding it easy to do so, suggests that you’ve been deliberate in your thinking and in your actions. It suggests that you’re aware of the context from/in which you are acting or thinking; that you’re aware of how to make that context intelligible to someone else.
  • If you know you’re going to be sharing what you’re doing, it means you don’t want to waste time; that you want to make the best of every situation. Everything is an opportunity to learn more and share what you’ve learnt.
  • It makes it even more important to avoid doing things that you might be ashamed of; even more important to bring your real self, your public self and your ‘best’ self as close together as possible.

Perhaps deliberately sharing your life and reflecting on that experience ultimately helps you to live a life that’s worth sharing?

Three things from today

I don’t have a specific topic in mind to write about, but I’d like to post something. So I thought I’d just write down three little things that made today unique.

  1. I’m fairly sure I’ve broken a rib coughing. Or at least, done a good job of bruising it. If it is broken, that’s kind of exciting – I’ve never broken a bone before!
  2. I spent a few hours today helping to ‘refurbish’ the pond at a local school – largely, that involved shifting big blocks of concrete and brick out of the area around the pond, to an out-of-the-way corner of the school yard. It was really enjoyable to be doing a bit of manual work in the sun. Feeling it now though!
  3. Had a pleasant night jamming with one of the bands I’m playing violin with at the moment. I’m trying to learn to listen more attentively to what’s going on in the band, and to make sure that I’m ‘adding’ to it, and playing sensitively. It’s quite tricky! I initially thought of trying to write a blog post about it, but I don’t really know what to say. One trick is to try to play fills during gaps in the vocals — it’s unexpectedly difficult to do, as the vocal line kind of ‘draws you in’. My phrasing tends to end up strongly influenced by phrases in the vocals. I wonder whether it’d make sense to think about ‘patterns’ (a la Christopher Alexander or the gang of four) and ‘anti-patterns’ for ensemble playing? How would I go about collating such a list?

Right… that’s good. I have a post.

Counterpoint

It’s been a long while since I’ve posted, so I thought it was about time I said something on here. I’ve been on quite a music kick lately (which I’m trying to turn into a music-and-programming kick).

Along with joining a new band (playing violin, and potentially keyboard), and preparing for a big gig with Skipped, I’ve decided that I’d like to get a better understanding of music theory, and ultimately, start composing again — to that end, I’ve started studying counterpoint.

I’ve found a few good resources online (though… come to think of it, I’m not sure what the copyright situation is on these… so I won’t link to them):

Of these, I think the Schoenberg will prove the most helpful, largely because in addition to providing clear ‘rules’ to follow and exercises (as also with Fux and Lehmann), he also provides a large number of examples, each of which has been analysed and annotated to demonstrate its relative strengths or weaknesses. Given that I’m trying to teach myself, I think that’s crucial.

So… what is counterpoint? My current understanding is that it refers to the ‘vertical’ or ‘harmonic’ structures obtained by ‘stacking’ horizontal (or melodic) lines on top of one another. Various systems of counterpoint lay down guidelines (often expressed as hard rules) to guide the construction of interdependent melody lines so that their combination is ‘harmonious’.

In the ‘species’ method for teaching counterpoint, typically a single line is given (the ‘cantus firmus’, or ‘fixed song’; usually one note per bar), and some number of other lines are constructed in counterpoint to it. ‘Species’ refers to various different constraints which are placed on the constructed lines. For example, in ‘first species counterpoint’, just one note is given for each note of the Cantus Firmus, while in ‘second species counterpoint’, there are two notes to each C.F. note. (Fux gives 5 species of counterpoint; I believe others have extended these in various ways).

For each species, there are various ‘rules’ that govern the notes that can be used, with reference to their surrounding context. For example, in first species counterpoint:

  • Each (vertical, or harmonic) interval between the added line and the C.F. must be a ‘consonance’ (i.e. a major or minor 3th, 6th, or 10th; or a perfect octave, fifth or unison), preferably a 3rd or 6th.
  • There shouldn’t be too many 3rd or 6ths in a row — in other words, the CF and the added line shouldn’t move in parallel for too long; our aim is to make them sound ‘independent’ of each other.

… and many other similar rules.

One way to look at these counterpoint exercises is as ‘constraint satisfaction’ problems — i.e. we need to search through the possible ordered sequences of notes, and select those that satisfy the ‘rules’ (or constraints) given (or more generally: those sequences that break as few rules as possible, or as few ‘important’ rules as possible, or balance broken rules off against other virtues). This way of looking at music composition (i.e. as a constraint satisfaction problem) has been around for a while — for example, I found this from 1990 which considers first species counterpoint from this perspective.

This seems like a nice idea for a Haskell project: firstly, to write a program to verify that a pair (or larger set) of melodic lines satisfy the constraints required of (for example) first species counterpoint; and secondly, to try to generate ‘valid’ or ‘good’ melodies according to a set of counterpoint rules.

Lots of things to learn about. I’m currently a bit confused about how harmony and counterpoint are related — from my (somewhat wandering) reading so far, it seems like there is a big difference between Renaissance or ‘Palestrina’ style counterpoint, and Baroque (and later) era counterpoint. This question at the music stackexchange site sheds a bit of light. Roughly speaking:

  • Renaissance music was (or tended to be?) ‘modal’; ‘harmony’ emerged as a kind of secondary phenomenon, through the interaction of melodic lines (satisfying various principles of consonance). Something that confused me for a while (and I still don’t quite get) is that a Renaissance ‘mode’ carries more ‘baggage’ than a modern mode — it doesn’t just involve taking a major scale and ‘shifting’ the tonic to a different degree, but also carries additional ‘information’, for example: how melodies should be constructed, and what pattern of notes constitutes a ‘cadence’ (i.e. a ‘coming to rest’). (Actually: there’s clearly more to understand here — apparently a pair of voices was important in establishing a cadence?)
  • By contrast, in the Baroque period, (what subsequently became) the concept of tonality developed. Roughly speaking, harmony — and in particular, harmonic cadences — became much more important in how music was structured. For counterpoint, this meant a stronger emphasis on voice leading, and reduced emphasis on consonance — I think dissonances became more acceptable in the context of a given harmony.

Here are a bunch of references I’d like to follow up at some point:

Anyway… a bit of a ‘brain dump’ post. As I learn more about counterpoint and music theory, I’ll hopefully be able to organise future posts more coherently. I’m quite excited by the whole area at the moment though! I’m also looking forward to having a go at ‘formalising’ my understanding in code.

Where’s the motivation?

I’ve been a bit disappointed in myself for the last few days — I’ve found it really difficult to motivate myself to do the tasks I’ve been setting for myself. The one thing I have forced myself to do is the ‘bare minimum’ for my beeminder tasks. I’m feeling a bit uncomfortable about sitting at the very cusp of ‘going off the road’ though.

For example: I’m writing this blog post with just 1 hour to go before it’s due. And I’m only writing it because I ‘have to do something’. At least I have not fallen into the trap of lying to Beeminder!

Anyway: that’s not really what I wanted to write about. Looking at my ‘must do’ tasks from the last couple of days, I note that I haven’t actually done them. It’s a sharp change from the first week or so using Beeminder — initially, I just got in and did things right away.

Now I’m finding two things:

  1. I’m finding it really hard to come up with ‘must do’ tasks to actually do; I’m also finding it hard to judge whether they’re important, whether they’re ‘doable’ in a day, etc.
  2. I’m finding that I don’t do the must-do tasks I’m setting myself.

The thing about them is, they should ideally fit into Covey’s second quadrant — the important but not urgent tasks that I ‘want’ to do (for some sense of ‘want’), but would put off.

Anyway. What are the things my recent tasks have had in common? The first is that for all of them, I’ve really struggled to work out what to put onto my list — in each case, it’s taken me 10 minutes or so just to ‘decide’ (though I don’t think I actually have ‘decided’ in each case…) what to put on. The second is that they have involved contacting people — either the contact from JD, or from TSK — or completing tasks that I’ve already struggled with. They’ve also been at least partially related to finding work.

Contacting people is a biggy — I do struggle with it. But it doesn’t really make sense why! When I think about contacting people in the abstract, I get quite enthused about it — meeting new people, learning new information, perhaps getting good advice or getting on the road to interesting new experiences. But when it comes down to actually doing the contacting, I get stuck… I get scared. I find it really aversive. Why?

One thing I’ve noticed is that often times I don’t have a completely clear reason for contacting someone. I’ve also noticed that the social nicety of who should be contacting who sometimes gets in the way.

This is all really about the job search thing. It’s the elephant in the room of my life at the moment. I need to start trying to earn some money; I need to start exploring options for work. But I’m somehow not motivated to do so. You’d think hitting our last 1000 quid would do it…

Right… what can I do about all this stuff? Is this something I can apply the ’20 hour’ rule to? (and have I really managed to get anywhere with that so far?).

What is it I’m going to do about it?

  • Just keep plodding away — there is anxiety, there is self-disappointment, there is confusion. But I can look at each of those things, acknowledge them, and then just plod away.
  • Have another ‘flush out’ of everything. Declare bankruptcy! There’s a lot of cruft in my system at the moment. Do I need to take some hard decisions? For example: what should I do about Akorn? Should I push to get the scraper panel / alert system to a useable state, and then bow out gracefully?
  • Try to structure my time more like a job. Somehow. I’m not sure that’s a good idea — what I need is more external structure. Even if that external structure is internally developed! Some kind of social pressure. Am I hanging out with the right people for the kind of direction I really want my life to take now? Do I want to go down the ‘volunteer arty type’ route? It’s hard to see how that could be viable long term. But I just don’t have a clear picture of myself. This is what TSK was saying: need to run experiments. In my case, I really need to latch on to some structure.

And now… how could I have improved this blog post? It’s pretty rambly. Would be nice if there was a coherent idea in it — but I’m writing for myself. That’s what I need to remember.

Trip to London

Had a good couple of days up in London. I went up to catch up with TSK for dinner, and to stay the night at my cousin’s place and meet his girlfriend. Not too much to say really. Left Southampton mid-afternoon on Monday; spent the afternoon riding around on a Boris-bike. Stumbled across a big rally being held in support of the protests in Brazil. Had a good chat to one of the guys at it; he said it was triggered off by a 0.20 Real (?) rise in the price of bus fares, but that was really just an excuse: resentment and distain for corrupt politicians had been simmering for a long time. I should learn a bit more about what’s going on there. I also kind of wish I’d asked for a bit of face-paint — I might not have anything to do with Brazil, but it would have been nice to support them!

Really enjoyed catching up with T. She offered some really good work advice; in particular, perhaps trying to volunteer with 38 degrees (or some other organisation) for a couple of days each week. She thought there was a good chance they might fund travel up to London. The key thing was to try to get experience working in an office, with people, under good and active management. To take on ‘experiments’ with work that might teach me something more about what I like and what I don’t like. I’ve been inching up on that general idea for a while. To some degree, I’m already doing it, but I think I need to start taking it more seriously. Anyway, T was well, and it was really great to see her. She also suggested a book, “The Lean Startup” — I might try to find that in the library.

After that, the evening was spent playing music at C’s place. Lots of new instruments to try out, and of course, the piano. It was also great to meet N. I was a bit frustrated by my inability to play Ravel’s toccata any more — I guess it’s not surprising. It was probably on the ‘too hard’ side for me when I was actively practicing it, so having not done so for 2 years, I couldn’t exactly expect to be able to play it!

Spent today largely playing the piano again. I sight-read through Debussy’s “L’isle joyeuse” (obviously, at about 1/10th tempo); really enjoyed doing that. Then spent a few hours improvising, either on “Spain”, “Aint necessarily so”, “Summertime”, or just bashing around. Felt like I made a bit of progress with that — really enjoyed mucking around with bluesy riffs in the Gershwin pieces, and also fooling around with augmented, symmetric diminished and lydian flat 7 scales on dominant 7ths. It’s great how ‘jazzy’ it instantly sounds!

Trip back to Soton was pretty uneventful. I was a bit annoyed to realise that I’d misunderstood how the bike hire scheme worked, and had been charged £8. But live and learn, I guess.

Topped off the couple of days with a surprisingly productive skipped rehearsal. Spent most of it working on “Market Dance”, in particular, on the percussion breakdown section.

Righto… that’s the end of that rambly blog post. I quite like the idea of mixing in posts like this with more ‘focussed’ posts.

Jam Session – Report…

Well… I’m back from the jam. It was a fun night on the whole; some really great moments (the highlight for me being an epic performance of ‘Sinner Man’). Really nice people, and after the initial awkwardness, a friendly atmosphere.

So what worked? The improv game idea, to be honest, was a bit of a flop. I think it was good in one way: it showed that we were up for a bit of madness, and I think broke the ice. But that was really just the clapping game — the ‘music’ idea didn’t really work. I think it was just a bit too challenging. I would love to get together with people willing to practice it and see how we go, but for people who just signed up for a bit of a fun jam night, it was probably a bit difficult.

It was good having the computer and projector available; we made use of that in the second half of the evening; it meant that people could easily join in, and we weren’t limited to songs that someone could remember.

Perhaps something I need to keep in mind is that ‘something’ needs to go on for a little while before it’s obvious whether or not it’s working — I tend to get a bit anxious and shut things down earlier than they necessarily need to.

I think the big highlight of the night was the people — there were a bunch of really great people who came along, and made it a great night. I was really pleased to meet a couple who’d just moved to Southampton from the North — they were really great. Good musicians, and a lot of fun. It was also great to have L and J there; great enthusiasm. And then, of course, the usual gang; I think I felt substantially more comfortable, and was able to convince myself to keep going partly because they were around.

Anyway… on the whole, it was a good night — I think everyone had a good time. I certainly did in the second half of the evening. When I’m a bit more awake, I’ll spend a bit more time thinking about what went well, and try to build on that for next time.

Running a jam session

I’ve put my name down to help ‘coordinate’ a jam session at the Arthouse cafe this coming Friday. It’s got me thinking a bit about how to make such a session successful.

The jams at the Arthouse tend to involve people of many different skill levels, with a wide range of different instruments and interests — so it’s not as simple as picking songs out of a realbook (I think, at least… haven’t actually tried that!)

At the last session, we all (about 20 of us!!) sat around in a big circle. We typically sat in a kind of stunned silence for a little while waiting for someone to suggest something to play. Then someone would either suggest a tune, or someone would start playing, and others would join in.

On the whole, it was a reasonably fun evening, and worked pretty well. The main issues were that it took a while to get started, and had some ‘uncomfortable pauses’ during which people tried to either think of something to play, or tried to get up the courage to suggest something!

I’d like to see if we can do better though — though I’m not sure what ‘better’ is at the moment, either! What is it that makes a jam session successful? Particularly when there are a range of skills, instruments and interests?

For me, it’s probably that we had a good time, stretched ourselves a little, got into the ‘ensemble’ mood — i.e. started listening to each other and building on each others’ ideas — and managed to include everyone. Would that satisfy an advanced guitarist? Or a beginner? Or a beginner on the djembe?

Some ‘criteria’ I can think of that we might measure the success of the night on are:

  • Inclusiveness — did everyone get to play a reasonable fraction of the time?
  • Creativity — were we doing more than just the 12 bar blues or kumbaya for 2 hours?
  • Musicality and ensemble playing — were we a collection of individuals each ignoring the others, and trying to show off our own virtuoisity, or were we playing as a real ensemble, listening and feeding off each other?
  • Learning — Did we learn new things, be they new songs, new styles, new ideas; or did we polish / practice techniques

Some ideas:

  • Improv games, transferred to the ‘jam setting’.
    • “Music Mafia” i.e. each person picks someone else (or is given someone else) to ‘shadow’ — then during a piece, you have to work out who is shadowing you by trying to hear whether they play something you’ve played.
    • “circle games” where everyone has a sound, and we associate the sound with the name of the person? OR! a circle game where we all pick the same note (for drummers, just play something!) and then have to go around the circle playing the note after the person before; try to get a continuous sound. Then, to make things more challenging, could say that you can play a single step or half step higher or lower than the person before you, and try to keep the circle going without any ‘jumps’.
    • Swap instruments with someone playing something you don’t play (or guitarists, play left handed…)
  • I’ll write the chorus to a song — something really cheesy (like “There’s nowhere I’d rather be, than jamming at the Arthouse, jammin’ in G” or something), and then get people to either improvise verses, or prepare one and bring it along.
  • Get people to prepare a couple of songs they’d like to jam on — think about what makes a good jam song (perhaps: just a few chords, reasonably simple, you know the words to it) — and get them to bring them along.

Anyway: I’m interested to see how it goes. This’ll be my first time officially ‘facilitating’ a jam, so I’m curious! I’ll try to remember to note down some observations, and blog about how it went.

Deconstructing blogging

This is the second in a series of posts about learning to blog (inspired by this talk by Josh Kaufman). The approach he suggests, and which I’m sure has been suggested in much the same form many times before, is to (1) break down the skill you’d like to learn into its constituent ‘sub-skills’, (2) learn to ‘self-correct’, (3) remove the barriers to practicing, and (4) knuckle down and deliberately practice for a sufficient period of time. The key point here being ‘sufficient’ — if you’re aiming for world-expert level, 10000 hours is the figure bandied about. But if you just want to be ‘competent’, then Josh suggests much, much less time still yields really good results — he suggests 20 hours. I’m not sure where that number comes from, but it seems like a reasonable place to start. Most importantly, it feels achievable so you’re more likely to actually do it.

My goal (perhaps? see below…) is to be able to write blog posts fluently and consistently. It’s not 100% clear to me that this is a ‘well-defined skill’ — but it is a goal: I want to make writing 1 post a day something that I just “do”, not something that feels like a heroic effort. So what does it take to do that? What goes in to producing content of a reasonable quality reliably and efficiently?

  • Choosing a topic
    • Brainstorming
    • Asking yourself questions
    • Topics that choose themselves — blogging what you’re learning or as you’re learning
  • Drafting the post
    • Structure
    • Avoiding editing while writing
    • Writing quickly
  • Editing the post
    • Textual tics
    • Restructuring
  • Publishing the post
    • Scheduling posts for future publication
    • Uploading to the hosting service
    • Adding categories and tags; making it ‘discoverable’

As I’m writing about this, I’m becoming less confident that ‘blogging fluently and consistently’ is my real goal — it’s something I’d like to do, but in the pursuit of something else: something like “regular reflective practice”. I think Sacha Chua’s blog is the closest model I’ve come across.

This transcript of her interview with Holly Tse is particularly useful. Some points I really like:

  • To get started, “ditch your expectations”, and “write for yourself”
  • “it’s ok to bore yourself”
  • writing about small things enables you to see the larger patterns — and eventually, to develop your own voice.
  • It’s ok to not make sense.
  • Use your blog as a way to ‘figure things out’
  • “If you don’t have at least one thing worth writing about each day, there’s more in your life that you can hack and improve.” (and I could always write about that!)
  • Ask yourself questions; some suggestions: “What did I learn today that somebody else might want to learn?”, “What do I want to do to make things better the next day?”
  • This quote: “For example, if I’m working with a particularly knotty programming problem or I’m trying to figure out a difficult decision, I’m not waiting until the end, when I’m busy and other things demand my time; I’m writing in the process of figuring things out. Then, afterwards, it’s just: Can I tidy these notes up and share them with other people? Which parts am I saving in my private notes, and which parts am I sharing on my blog? That takes five minutes, ten minutes to clean things up for other people after I’ve been writing in the process of learning.”

Some closing thoughts:

  • I’m not sure that I’ve managed to define what it is I want to achieve clearly enough to ‘deconstruct’ it yet, but I think I am making progress! This is something I expected to have trouble with — I’ve always struggled with goal-setting at the first ‘identify the goal’ stage. Do I make things too complicated?
  • That said, I have named some skills that seem useful, and I can build on those.
  • I can definitely act on some of Sacha’s suggestions:
    • I like the idea of writing while I’m learning, and then tidying my notes up into something I could post.
    • Asking myself questions: building up a nice list of questions wouldn’t be a bad way to proceed.

The first 20 hours — Learning to blog

Today I came across this talk by Josh Kaufman, about his book “The first 20 hours”. I’ve been wanting to work on my general ‘learning’ ability for quite a while, so it was nice to find. His basic premise is that while it might take 10000 hours to master a skill, if what you want is a basic competency, you can get a long way in a much shorter period of time — he suggests 20 hours, as long as you approach it in the right way.

The approach he suggests goes something like this:

  1. Deconstruct the skill
    • decide what you want to be able to do
    • look into the skill and break down into smaller and smaller pieces
    • The more you are able to break the skill apart, the more you’re able to structure and prioritise your learning
    • the more you can prioritise, the faster you’re able to do what you want
  2. Learn to self correct
    • Get 3-5 resources on what you want to learn, but DON’T USE THOSE TO PROCRASTINATE!
    • Learn just enough that you can practice and self-correct / self-edit as you practice
    • Learning effectively involves getting better at noticing when you’re making a mistake and tweaking things a little
  3. Remove barriers to practice
    • Get rid of distractions
    • The more you can remove the distractions, the more likely you’ll practice
  4. Practice for at least 20 hours
    • Getting through the “frustration barrier”
    • It’s not fun feeling stupid — by precommiting to practicing for at least 20 hours, it’s possible to overcome this initial frustration barrier, and stick with the practice for long enough to reap the reward

A key message was that “The major barrier to learning something new is not intellectual, it’s emotional” — and putting 20 committed hours into learning it, in the face of that emotional challenge, can take you a long way.

I think that learning to blog fluently might be a good ‘target skill’ on which to try out this approach — long-term, regular, consistent blogging is something I really admire, and I believe is a practice well worth developing. The combination of reflective practice, and sharing what you’re learning really appeals to me.

So over the next few weeks, I’m going to explore this idea — taking the skill of ‘regular blogging’ (I need to better identify what that means…), decomposing it, and deliberately practicing the component skills. If anyone has any suggestions on ‘sub-skills’ involved in blogging, or good resources, please let me know!

Finally, some thoughts that occurred to me while writing this:

  • Perhaps it’s worth learning to ‘enjoy feeling stupid’ — in much the same way as the kids who displayed a “growth mentality” in Carol Dweck and Carol Diener’s 1978 study seemed to. Hunt out the places where you ‘feel stupid’: perhaps those are places where rapid growth is possible, if you can identify the skill or insight that’s missing?
  • I think I often get stuck at step 1 — I look for the ‘perfect’ skill to learn, or the ‘perfect’ way to break a skill down into chunks, and obsess over finding the ‘best way’ to approach the task. Perhaps being more ‘free’ with that step, and experimenting a bit more with different ideas would be worthwhile.
  • Beeminder seems ideal for following through on learning goals as identified here — 20 hours (as Josh says) is ~45 minutes per day for a month. Easy to track.

Setting up and patching org2blog

I spend most of my time in emacs orgmode — and thanks to Puneeth Ganati‘s org2blog package, I can post directly to my wordpress blog without leaving its comforting familiarity…

Setting it up took a little bit of work, mainly because the current version of org2blog (0.5) isn’t compatible with the latest version of org-mode (8.0.3, as of writing), due to a major overhaul of org’s export ‘machinery’.

I initially followed the instructions in the org2blog github repo README, creating a local clone of the repo, adding it to my emacs load path, and adding an entry for my blog to org2blog/wp-blog-alist, using netrc to authenticate.

Activating org2blog/wp-mode initially failed, as metaweblog.el is not included in the org2blog repository, and it’s not mentioned as a dependency in the setup notes — cloning the metaweblog repo as well, and adding to the load path meant that I could activate org2blog.

However, exporting to my blog failed, with the message that org-export-html-special-string-regexps was undefined. This was slightly cryptic, as when searching through the source for org-mode, I couldn’t find any reference to that variable. Tracing back the error, it seemed that org2blog was using org-export-as-html to convert the org file to html, however, this function no longer existed after the major overhaul of the export system in org version 8.0.3. The confusing part was that the emacs installation I have (emacs24 package installed using apt-get on lubuntu 12.10) seems to include an earlier version of org-mode — and thus some of these missing symbols were still defined (though I don’t really understand why the exports were failing!). Thus: to fix, I thought I’d just update org2blog to use orgmode-8.0.3′s export API.

Turns out Peter Vasil had already done that with this branch in his org2blog fork. However, in the interest of learning a bit more about emacs, I thought I’d have a go at patching it myself — though I didn’t worry about backward compatibility.

To fix, I just needed to modify org2blog.el by:

  • adding (require 'ox) to load the org export API,
  • replacing org-infile-export-plist with org-export-get-environment,
  • replacing org-export-as-html with org-export-as 'html (with slightly different arguments), and
  • replacing org-html-do-expand with org-element-interpret-data.

And that was it, as the existence of this post indicates!