Yak Shaving

Ignite Madison

As I recently mentioned, I will be speaking at Ignite Madison on February 12th, 2014, and since the organizers are smart people and want everything to go smoothly, they had all the presenters meet to go over their progress in preparing for the event. This is a really good idea, because it lets everyone meet each other before the event, and get a glimpse at what each person’s presentation looks like, even if they are still in-progress, and pretty much all of them were. (But hey, we still have a week!)

When it was my turn to practice, I said that I had to do quite a bit of yak shaving before I could work on my slides, and since no one was familiar with the term, I had to explain it. I basically said “It’s the work you need to do before you can do the work you need to do.” I cited one of the participants who said that before he built something, he had to build a workbench. (Obviously! Any yak shaver would agree.) As for me, before I could get my slides started I had to find an Ignite slide template, and then I had to find an Ignite Madison logo, and scale it down, and clean it up, and drop it into the template, and once that was all done I could totally start my slides.

So anyway, these best definition(s) I found for yak shaving were on the Wikitionary:

Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.
I was doing a bit of yak shaving this morning, and it looks like it might have paid off.
A less useful activity done to consciously or unconsciously procrastinate about a larger but more useful task.
I looked at a reference manual for my car just to answer one question, but I spent the whole afternoon with my nose buried in it, just yak shaving, and got no work done on the car itself.

So yeah… yak shaving. There’s a few interesting citations for the term as well. And even more interesting is Joi Ito’s realization that yak shaving is pretty much his job. Damn! I guess I should add “yak shaving” to the old resume, eh?

Hmmm, now where was I? Oh yes! Come hear 10 makers talk about making, and help out some kids in need. It’s a win-win-win situation! You can buy tickets to the event and all proceeds will be donated to Big Brothers, Big Sisters of Dane County.


DokuWiki Yak Shaving


Yak Shaving is described as “any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you’re working on” or something like that.

I’m not 100% sure this would be considered yak shaving, but I’m working on something that requires random pages to be served from DokuWiki, just like the built-in function that MediaWiki has. (I used to use MediaWiki, but switched to DokuWiki, and like it much better. We also use it for the Milwaukee Makerspace wiki.)

There is a random page plugin for DokuWiki, which did not work. So I took the existing code, poked at it a bit, mainly by comparing to other plugins that did work and making simple edits, and got it working. (YMMV obviously.)

Because I’m a believer in “doing the right thing” and helping other people in their quest to not reinvent the wheel and stay DRY, I figured there was more to do…

So I emailed the original author of the plugin. I’ve not gotten an email back yet. Also, he (or she) appears to be French, and I’m a stupid American who can’t read French. (I’m not even sure why I mentioned that part.)

Anyway, I was happy that I fixed something so I figured I’d toss it on the old GitHub in case someone else was looking for a random page plugin for DokuWiki that (seems to) work.

Oh, and not content to not mention something I did, I posted the link on Google+, which was picked up by Nils Hitze who mentioned it to Andreas Gohr, who happens to be the author of DokuWiki (who I follow anyway, because he’s a RepRapper too) and he suggested I adopt the (possibly orphaned) plugin.

tl;dr → I fixed the Random Page plugin for DokuWiki. You can grab it from GitHub.

Also, this is how the f’ing Internet works!