Interviewed about MediaGoblin on Frostcast

By Christine Lemmer-Webber on Thu 01 March 2012

I got interviewed about MediaGoblin on the excellent Frostcast of FrostbiteMedia. This happened over a month ago, but life has been intense, and better late than never in blogging it. Anyway, I talked to Jonathan Nadeau who runs the podcast, and even though FrostbiteMedia doesn't specifically say so, this episode is released under Creative Commons Attribution-Sharealike 3.0 Unported. (mirrored here)

(Your browser doesn't appear to support HTML5 audio, but I mirrored the file here.

Anyway, I've given it a few listens, and I'm super pleased with how it came out. We talk about the motivations behind MediaGoblin, the underlying architectural decisions, and even a bit of my own free software personal history. It went by really fast... hard to believe the show comes out to about an hour. (It was also my first time being interviewed on a podcast or anything of the like before, and I had some dumb self-inflicted technical difficulties. Luckily, Jonathan was very patient.)

By the way, I have a lot of respect for Jonathan Nadeau. Jonathan is not only a free software activist, but also a blind user of free software. He's also starting a nonprofit called the Accessible Computing Foundation which aims to make the life of computer users with various disabilities better by improving the state of accessibility in free software. Very cool and noble goal. There's a good interview with him on this Linux Outlaws episode. Best of luck to you, Jonathan!

Gnome 3

By Christine Lemmer-Webber on Wed 14 December 2011

Gnome shell 3.0 in overview mode

There's been plenty of discussion on the blogosphere already about Gnome 3 already, and I'm not sure this post will add much to it, but whatever. A lot of people hate it. A lot of people love it. A few people love it, but hate certain things about it, but are optimistic that things are bound to get better in the future, in which case they will completely love it. I'm in that latter camp.

Let me put it this way: I recently got a new laptop, a Thinkpad X220 tablet with a gorilla glass screen (yes I am trying to make you jealous, because this is probably the best computing purchase I have ever made in my life) and before I wiped windows and installed Debian testing on it, I decided to try out a Fedora 15 live USB key to see how nicely gnome 3 felt. I instantly began to crave that this could become my regular desktop environment. Especially in tablet mode, damn, it's really great... but even in not-tablet mode, it's still really great. But I installed Debian anyway because I'm pretty used to it, and pined for the day when Gnome 3 would become available in testing.

Sometime last month, that became available. I upgraded and never looked back.

...well, kinda.

Gnome 3 has been really great on my laptop, great enough that I eventually lost patience with my desktop (on which I was running StumpWM, which I mostly enjoyed except when I wanted to use the GIMP, which is often, but that's another post of its own that I'll never write) and upgraded that from Debian stable->testing too. For the first few minutes, I was in heaven. Then the pain points began to set in.

The main issue is that it keeps crashing on my dual monitor + nvidia setup. I did file a bug for this, but a pretty miserable one. There's no -dbg package in Debian, and I haven't had the time to compile gnome-shell from scratch to test it, so I just haven't been able to submit a decent report with a backtrace. Lame, I know. But when it crashes on my dual monitor setup (which happens once every hour or two), it usually fails to recover and makes me log out, and then I lose all my work. And then I'm sad. It turns out this isn't just the proprietary nvidia drivers either... stunningly enough I got the nouveau drivers to work on my desktop and they work pretty damned well. (Okay, the overview doesn't seem to work for me, but that still seems to be pretty good progress. Did I mention that Blender runs well with nouveau too? Pretty exciting.) That's the main reason I switched away on my desktop though... and bugs happen, I'm not meaning this post to blame developers for that, just including this for context's sake.

But another thing, the Gnome developers currently seem to be unconvinced that persistent notifications are a needed feature because they clash with the primary design philosophy of Gnome 3, which is that the shell shouldn't interrupt you from whatever you're working on. I can understand this theory, but the fact is that it's simply wrong. I need to treat my IMs like a queue... if I miss a message from a coworker, I need to respond to it. And to respond to it, I need to know it's there. The fact is, sometimes when I am hyperfocused on my task (when the goal of gnome shell is succeeding), I will miss the subtle hints of messages, and I need to come back to them at some point. Anyway, there's an extension for that, but it requires gnome-shell 3.2, and Debian testing only has 3.0 in testing at the time of writing. Which means I'm back to pining for a gnome-shell Debian release. I think this is a bigger deal than the developers are acknowledging, and it's something that should be provided by default; 3 of my coworkers switched to gnome shell then switched away to XFCE largely because of this issue. That's a pretty big deal, and I think it's something that should be addressed part of Gnome core, as not everyone will learn how to install extensions (not everyone will in Firefox either).

But here are a few counterpoints to that: extensions do exist, and they seem to be capable of doing a hell of a lot (even including providing a tiling window manager if you're willing to run a modified mutter). And people who are doing the most complaining like "Gnome ruined everything! We had a perfect desktop! It's all dead because the Gnome developers killed the free software desktop!" I wonder how many of these people were around for Gnome 2.0, which was also not a perfect desktop either. In fact, around Gnome 2.0 I also switched away from Gnome in frustration, experimented with a bunch of different window managers, and eventually came back somewhere around 2006 and was surprised to find that everything was just so damned... pleasant. I think the same thing is going to happen to Gnome 3 also. In fact it already is. And I think this guy put it right: thanks to extensions, and given some time, plenty of users can be frog-boiled into loving the change in desktop paradigm. That is, assuming that the developers and designers can come to be convinced that walls users are running into are real walls. And they probably will.

One last thing, and this might be rude. I've had a number of friends who have been involved more closely in GNOME than I am complain that there's a large amount of cliquishness in the GNOME world, and even between separate parts of the contributor teams (developers and designers not really talking and working directly together?). I don't really know if that's true for sure, I don't work directly on GNOME, but I trust the friends who have said it, and I've certainly seen plenty of other projects do this at least. I've felt pretty strongly that avoiding this kind of cliquishness in MediaGoblin has been a big win for us. I hope it isn't true for GNOME, and if it is, that they can work on trying to avoid that. But maybe I'm just talking out of my ass on this one. I would prefer that I was. But if not, hopefully people can realize that in-crowds in projects are not the way to go.

Anyway, a sure sign that Gnome 3 is the future for me at least is that when I am using XFCE on my desktop, I do keep moving my mouse to the upper left corner and being sad when nothing happens. I keep using my laptop more because Gnome 3 is working there. And I keep refreshing the status of Gnome 3.2 in Debian page. Given enough time, and assuming the developers can take the needs of their users seriously, I do think Gnome 3 is the free software desktop that most people will come to love.

Or, at least, ten years in the future when contributors kick off Gnome 4, I think Gnome 3 will be the desktop that everyone will be upset at being taken away and replaced with something else.

Don't Repeat Myself

By Christine Lemmer-Webber on Wed 14 December 2011

Today I went in for an exploratory surgery... a very minor outpatient procedure. Actually, I've never undergone surgery before. As the anesthesiologist put me into sedation, I handed the book I had been reading over to Morgan (one of if not the first programming books I had ever picked up, which was on C, and which I decided was time to seriously revisit). Morgan said to me, "Basically, you'll go to sleep before you know it, and then you'll wake up, they'll tell you it's over, and you'll be like 'What, already?'"

As I sat in the surgical room and started to space out, I was still thinking about coding, and my thoughts about coding must have started to shift over to MediaGoblin and its community. Suddenly I was at my computer. I started writing a blogpost, full of all the things I've been thinking about and have learned by working on the project over the last many months; my thoughts on community, releases, communication, everything. I ran it through ispell-buffer. I was super pleased with it. I was ready to commit it and push it over to my site.

Then I woke up to a nurse telling me, "That's it, we're done, you can wake up now!"

"Damnit," I mumbled. "Now I have to write that whole damned thing all over again."

In Memoriam: Matt DeSpears

By Christine Lemmer-Webber on Tue 06 December 2011

Today I received a call from my friend Miles telling me that one of our mutual close friends, Matt DeSpears, passed away by taking his own life. It's hard to pick the appropriate words to describe how I feel upon hearing this news. "Shattered" and "devastated" are words that come to mind, and yet even though I feel like I am both of those things I don't feel that I have fully processed it yet. How do you describe losing one of those people who you just take for granted as a constant in your life?

I don't really feel like I am thinking completely clearly, but I feel compelled to write. And I feel like Matt deserves a proper tribute. And maybe the most appropriate time to give that tribute is right now, when I am most overwhelmed with emotion.

Matt, like many of the people I know and love, was a misfit. I don't mean this in a negative way: the people I love most in life are misfits (and I consider myself one of the biggest misfits of all). Being misfit means your character is likely to develop into something unusual, and the most unusual people are often the most beautifully interesting. Matt was even more misfit than most, and I loved him dearly for his unique character. There will never be another Matt. But being a misfit also means that it's harder to fit into the rest of the world, and that was especially true for Matt.

I met Matt at an alternative school called Kradwell, which I transferred to in my junior year of high school (as I was nearly failing out of school due to my social issues and trouble coping with my attention deficit disorder). I quickly came to love Kradwell. At Kradwell, my social problems vanished. I used to joke with people: nobody makes fun of you for being a freak at Kradwell because at Kradwell, everyone is a freak. Instead of resenting how weird I was, I came to embrace it. I met many friends there, all strange in their own wonderful ways. One of the friends I met was Matt.

Matt DeSpears photo from Kradwell yearbook
Photo of Matt DeSpears from the Kradwell yearbook

It took a while for Matt and I to become friends. Matt had a certain amount of awkwardness that was high even by Kradwell standards. But eventually I did come to know him, and one time I invited him over to a get-together at my house. I don't really remember the details, but I remember that day becoming a day when he became more integrated into the group of friends I was meeting at Kradwell. It was also around the time that my group of friends at Kradwell became integrated with my older group of friends from childhood. Without any realization, we formed a close knit group of friends that had continued to be strong even until this day, which my wife and I now call the Milwaukee Crew. I came to love this group of people, not just individually, but as a group: bonded through a mutuality of friendship and antagonism. It had that kind of dynamic to it that you can't force into being, that just develops, and you come to enjoy. Whenever I've come into Milwaukee, the Milwaukee Crew would assemble... or whoever of us were around. Morgan would sometimes remark about how resilient our group of friends were, still meeting together and making the same old jokes, expecting the same quirks... I thought it would last forever...

As I said, Matt was more awkward than most, but underneath that shell of awkwardness was a true warmness. Matt had a very fuzzy and puppy-dog like personality to him when you knew how to reach it. The truth of the matter was, Matt just wanted to be loved. I guess that's true for everyone, but even more so than for most people, that's how I think of Matt.

Matt also loved to antagonize people. We all did, but there was this certain flavor of antagonism in Matt that's really hard to describe. I remember Jay driving Matt and saying "Which way should we turn, Matt?" and Matt said, "Pope." "No seriously, which way do we turn, Matt?" "Pope." "No seriously, we're about to pass the light, which way do we turn?" "Pope." Maniacal laughter ensues, as Jay drives through the intersection yelling with frustration. (Edit: Apparently it was a highway off-ramp, the next intersection wasn't for miles, and I wasn't even in the car. But the memory has been strong enough in our group that I've remembered it as if I was.)

It might be hard to understand how that could be lovable, or even entertaining, but maybe you just weren't there. For years, we've groaned about this story, but behind the groan was a fondness for the memory, for the dynamic that unrolled between our friends.

There are other things, too, that I remember fondly, that seem like they will never be able to happen in the same way again. All night LAN parties playing CounterStrike, with Jay and Matt getting angry at each other over some tidbit. Playing a prank on Matt so we made it so that every action on his computer elicited the noise "whoop-da-doop-da-doop!" and watching him getting angry as he couldn't turn the noise off. Later (after it was disabled), he became obsessed and in love with that noise, as we all did. It's just one of those inside jokes that all of us became obsessed with that nobody else could understand the meaning behind.

I also remember that Matt became obsessed, as a few of us were, with an MMORPG that existed before that term existed called Graal, which was basically Legend of Zelda in 2d online. Believe it or not, this proprietary game partly led me to become obsessed with the idea of free software as it was completely scriptable, and for a time, anyone could run their own server which meant that anyone could build their own universe. Then they took the ability to run your own server away and I became angry and... hm, that's a topic for another blogpost. The real point is, after a good number of us stopped playing, Matt continued playing the game, caught up in that online social world. We used to antagonize him about it, and then he asserted that he stopped playing the game altogether. Later, Miles and Jay would sneak across the side of his house and take a photo of him playing the game. He was furious. But eventually he came to laugh about it, as we all did. Filed into another memory of fondness in the Milwaukee crew. And there was something about that game that seemed to reflect something interesting about Matt, maybe about all of us. The promise that you could build your own universe, and the ability to escape into another one that wasn't as painful as your own. Matt became an administrator on the server. One day Matt had shown me that he had built an entire trading card minigame inside the game itself that had a bit of a following, even a fansite. He had never programmed anything else in his life. He just did it. I don't remember Matt ever doing anything else like that before.

Miles or me vs Jay in the robot suit
This is either Miles or me chasing Jay in a cardboard robot suit. I think it's Miles. Regardless, it captures the spirit of the times and the crew.

I could go on into infinity listing off fond memories, and I'm a bit tempted to, but I think maybe I shouldn't. But here are a few of the ones I remember the most fondly:

  • Creating cardboard robot suits and beating each other with plastic bats to the confusion of our neighbors.
  • Hanging out at The Node, a coffee shop for nerds we all loved (until sadly they shut it down) and playing Risk. One day after a particularly serious defeat, I "whoop-de-doop-de-doop"'ed Matt while doing a dance. Nobody else in the coffee shop knew what I was doing or why I was making a fool of myself. But we all understood.
  • Driving around and talking about our relationships, or sometimes lack thereof. Cheering each other up as friends, dropping by to say hello.
  • Jay and Miles stopping by to order the most complex sandwich they could order at the sandwich shop Matt was working at.
  • Matt's wonderfully strange vocal intonation somehow becoming a manner of speaking that everyone in the crew adopted.
  • Various shenanigans at Kradwell.
  • Matt's bizarre obsession with the Pope, Battle Pope, and BatPope.
  • After I had moved away out to Barat College, Matt, Miles and Jay driving all the way down to my dorm completely unannounced, picking me up and making me come along with them on some adventure. At the time, I acted like it was an inconvenience even though I truly appreciated it. And of course I really appreciate the memory now.
  • Hanging out on our private web forum which was entirely full of inside jokes and shenanigans. "Nice" and "Shut up Wesley" being inside jokes that were tossed everywhere on there.
  • As members of the group began to disperse, doing various get-togethers in Milwaukee or Appleton nonetheless. Beating each other senseless with styrofoam pool noodles even though that doesn't make any sense because we're supposed to be adults here.
  • My bachelor party, which was also a LAN party. We were hoping it wouldn't be one of the last time we ever got to do one of these types of things again, but knew that it probably was.
  • Matt being one of the ushers at my wedding, with Jay as my man of honor, Miles as one of the groomsmen (the others were siblings). Several other members of the Milwaukee crew (Claire, Dani, Fatch (Jon), Corinna, Jeni... and I am probably missing a couple others) weren't in the wedding party but were in the audience.

Matt, Miles, myself, and Jay at my wedding
Matt, Miles, myself, and Jay (in order) at my wedding

I think, more than anything, I am sad that in all of our get togethers there just won't be a Matt anymore to recollect with. There will just be an empty seat and a memory of Matt. It seemed like it would last forever, be a constant in my life, and yet now it will never be the same.

A couple weeks ago I was going stir crazy from living in DeKalb. Those of you who know me personally know that DeKalb is not exactly my favorite place to be, but we're here because of Morgan's grad school program which I am supportive of (and we can do because I have the good fortune of working remotely as a programmer). I decided to go to Milwaukee to visit friends and family for Thanksgiving and even take a few days off to work on some of my own projects. Right before I left the car broke down... but we decided that it was important enough to blow the money on a rental car so I could get out of town.

While I was there, I tried to assemble the crew, but it didn't happen as it usually did. I had the chance to meet most people individually, at least. Matt and I had scheduled to go out and meet one night, but for reasons I won't go into I did something I never did: I got so frustrated over some detail that I canceled. Thankfully, we agreed to go out and get breakfast at George Webbs the next morning.

We talked about relationships, life, work, the usual. It was a good catch up. Matt wasn't upset that I had refused to meet with him the previous night, or he didn't show any animosity. After we got breakfast we went to American Science and Surplus and walked around and looked at various things. I considered buying several things but didn't. Matt bought a keychain container for his medication. It was a nice and quiet walk through someplace that we both cherished. I was a glad we had that opportunity to get together for it. Afterwards Matt suggested I meet his father, as I had never met his parents strangely in the more than ten years I'd known him. We walked in, his father was preoccupied but said hello, Matt and I shrugged, he grabbed an iced tea from the fridge, and I drove him home. Prairie Home Companion played on the radio, which I love, and Matt had never heard. It unusually wasn't a good episode, not even the part with Guy Noir, Private Eye, and I felt bad that I didn't give Matt the opportunity to appreciate this show I really enjoyed. But he didn't mind. I dropped him off, we cheerily waved goodbye, and I drove home thinking I was glad we had that opportunity to hang out before I left.

Today I received a call from my friend Miles. He asked me to make sure I was sitting, which I was, and then told me that he had just heard from Matt's nephew. Matt had gotten into a fight with his girlfriend, swallowed a bottle of pills, and passed away.

Matt was a strange and wonderful person. Like many of us strange people, he suffered from depression and various other issues. I also in many times in my life, have suffered from depression, and have come close to attempting suicide on several occasions. I am glad I have not done so, as I probably would have become the same thing to others that Matt will be now: a dearly loved friend who is no longer there, an empty chair at a coffee table in a gathering of friends and family. I will miss Matt dearly. He was a great friend.

I want to say one more thing in this post before I close it out. Matt had a son whom he rarely got to meet in this life. If that person ever reads this, I want you to know several things about your father. First: he regretted not being able to be a better father and blamed a lot of this on himself. Family issues can become complex, as they were here, and at one point Matt thought he should finish school before he was more supportive, and then that never seemed to finish, he wished he could move down and be with you, and that never seemed to pan out. But he wanted to be there for you, he just didn't know how to get to that point. Second: your father loved you. He would show me pictures of you, he would talk about you, and he wanted nothing more than to figure out how to be there for you, and the fact that he wasn't was a great source of sadness and guilt for him. But when he spoke of you there were moments of inner pride and happiness that I never saw otherwise. And I wish that things could have worked out so you could have gotten to know your father and loved him as I did. He was a wonderful man, in his own curious way. Third: he would have wanted you to be happy, to do good things, to enjoy life. There's nothing he would have wanted more than that.

And to all others: if you know someone who is awkward or strange, be nice to them, embrace them; they need it. And if you yourself are strange or weird, don't be afraid of this, learn to love it.

Matt, I will miss your strangeness, your wonderfulness, your kindness, your friendship. Around the coffee table of my heart, there will always be a seat for you.

Edit: I tried to incorporate some text earlier into this post to make it clear that I don't think Matt's girlfriend was to blame. I honestly don't think she was. I haven't always gotten along with Matt's girlfriend in the past, but when I met with Matt for breakfast he expressed to me, "I know you guys don't like hanging out with her, but I love her, and she makes happy. I'm happier now than I have been for a long time." And I agreed... he did seem happier than he had been in a long time. This is partly added to the surprise of this news. I spoke with Matt's girlfriend and heard her side of the story. I didn't think she was to blame before, and I especially don't now. Couples' fights happen... and Matt was close to the edge for a long time. This event is going to be hard on a lot of people, but probably especially it'll be hard on Jackie. Please don't put any more grief on her shoulders than she is already going to have to bear.

Switched blog to PyBlosxom

By Christine Lemmer-Webber on Sat 03 December 2011

It seems like it was just a few months ago that I switched my blog over to Zine. Well, actually it was a little bit over a year ago, but I've barely blogged since then. :\

Actually the fact of the matter is that I thought that by switching from my homerolled blog to Zine that I'd feel less frustrated about running my blog because it wouldn't just be some homerolled software that I was running, and I could contribute back to some larger project if I wanted to. But Zine turned out to be unmaintained basically, I wasn't really interested in spending time contributing to it, and most significantly, I didn't enjoy using it. Not because it's bad software, I just didn't enjoy blogging in it, the same way that when I blog in Wordpress for work I just don't enjoy it. But lately I've been blogging for MediaGoblin (well, a lot of the actual writing is done by Deb Nicholson). http://mediagoblin.org is actually done using PyBlosxom (a project maintained by friend and fellow MediaGoblin contributor Will Kahn-Greene) and I've come to realize I really enjoy writing in a plaintext site/blog setup I can just keep in git.

So I switched over. However, I already had the site using Jinja2 templates for Zine and Ventriloquist (something simple but semi-neat I should really write about) so I figured that why not shave a whole herd of yaks and add a Jinja2 renderer plugin to Pyblosxom. So I did, and actually... I'm fairly happy with it. I also think this plugin could maybe be a cool direction for PyBlosxom, but... more on that later maybe?

In the meanwhile, most of the site is ported over, some embarassing things are cleaned up, and a few things are now also missing. Namely, comments and tagging. Tagging should be back soon, but I'm not too sure about when comments will be back. Oh well, nobody was commenting on here anyway. (I have the old comments stashed away on my hard drive but they aren't on here yet for now either.)

Anyway, that's it for now. Now I'd better write a whole bunch more blogposts so that this blog doesn't become one of those crappy blogs where people just blog about (not) blogging. I guess it already kind of is...

GNU MediaGoblin

By Christine Lemmer-Webber on Thu 05 May 2011

I'm going to keep this brief. Or rather, the original content brief. We've launched a project called GNU MediaGoblin (yes, it's an official GNU project) which is going to save the internet from media hosting homogenization.

Well, hopefully! It all depends on how well we can organize ourselves, work hard, and organize our contributors. Anyway, read the announcement post. Sound interesting? We could use your help.

Here's some more info:

So far I've spent the last month putting down infrastructure, but we just announced the project this week and are getting a lot of interest. The founding team is a pretty solid group of people I think, and we've got a number of people interested in contributing. Again, we could use more. This weekend I'll spend a bit of time making it easier to get involved.

Lastly, here's our mascot goblin:

MediaGoblin logo

I think he's pretty cute. By the way, if you contribute to the project and do a copyright assignment to the FSF, I will probably make a cool unique goblin dedicated to you. Copyright assignment on this project is not mandatory, unless you want the goblin. :)

Since announcing on Monday we're already starting to get quite a bit of press. See:


... and since I had an interview last night, more is coming. I'm kind of stunned, honestly. I want to say "not bad for a project that just announced itself this week" but that understates the amount of surprise I have here. We've got some cool people jumping on the project (we could use more!), a fair amount of infrastructure for a project that's just barely launching, and a lot to organize. You can check out and run the code and there isn't a lot there from a user perspective (a lot more from a dev perspective) but hopefully soon we will be so beautiful you just won't be able to resist. We're still kind of running on hopes and dreams here, and hopefully those hopes and dreams can become true. It'll be a lot of hard work, but I think we can do it. At the very least, we need to try!

Comment on this post on identi.ca!

Me, elsewhere on the internet

By Christine Lemmer-Webber on Thu 05 May 2011

I have a huge backlog of blog entries I've been meaning to write about interesting things I've done recently, but haven't written because I often feel like I should be doing interesting things instead of just writing about them. Luckily most of the things I've done online recently have some sort of interesting web presence, so I'm just going to link to a bunch of them and call it a day:

First, conference stuff:

Next, even though I've been mostly silent here, I haven't been at work (well, I should be doing more work blogging, but anyway). On the main Creative Commons blog I've written the following:

That last one (the plaintext legalcode) was actually a side effect of something even more exciting: Using CC0 for public domain software, and CC0 compatibility with the GPL. I didn't write this blogpost (Mike Linksvayer did) but I was heavily involved in this process. For about half a year we had on and off conversations with the FSF (particularly Brett Smith) about GPL compatibility. At this point there had been nothing clearly marked about CC0's acceptability for software or whether its fallback license was GPL compatible, and for a tool that's all about internationalizing the public domain this seemed completely crazy (well to me, anyway). I made the assertion that getting CC0 on the FSF's free software licenses list and being noted for GPL compatibility would be the gold standard, and I am very happy that this is exactly what we achieved. Honestly, keeping the website running, maintaining our tools, etc is pretty great, but I think this may be one of the most important achievements I've made while working at Creative Commons. (As a side note, I think this means maybe that CC0 is now the only legal option for something that is simultaneously both free culture and free software (like some game assets) without dual licensing?)

I've also written up some more technical posts on CC Labs:

I've also been doing quite a bit of work on Tube doing python scripting and the like. I'd like to write more on this soon. Maybe I'll guestblog over there eventually.

Oh, and of course, even though I'm usually silent here, I am in no way silent on my identi.ca microblog.

That's all for now, or rather, all I'm going to bother to post. There's actually something much more exciting I'd like to mention, but I'll do that in the next post.

Update: There's another reason I haven't posted much. A while ago I switched my blog over to Zine and thought it was a great move because at least I wouldn't be maintaining my own blog software anymore. But Zine is now also unmaintained, and I haven't set up any sort of spam filtering system, which means at any time I have about 1000 unfiltered mostly spam comments to go through, and every time I think about blogging I get exhausted thinking about filtering through those comments. I had a crappy accessibility-breaking captcha on my old blog, but at least it worked. Until I figure out a better solution, and frankly I'm too busy to probably do that immediately, I've taken a tip from Bradley Kuhn's blog and am just going to use StatusNet's great comment threading as my comment thread. :) If you want to comment, you'll have to use something OStatus enabled. For now.

Comment on this post on identi.ca!

Gonna speak on Blender at PyCon 2011

By Christine Lemmer-Webber on Sat 19 February 2011

Are you going to (the US) PyCon this year? I am! And I'm pretty excited about it, since I will also be presenting on Blender's new Python API!

The talk lineup looks really great this year. If you're planning to go, and you read this, maybe consider contacting me; maybe we could say hello, potentially having one or more interesting conversations!

Urinal model

By Christine Lemmer-Webber on Tue 15 February 2011

In December Rob Myers contacted me about a commision of making a urinal in Blender as CC BY-SA 3.0. He wanted to get it 3d printed via Shapeways, etc. I agreed to it with moderate enthusiasm. Most of the things I do are more gobliny or monsterish. But, I figured, Rob Myers is such an awesome free culture advocate and a good friend, it would be a challenge to do something different, and that it would be pretty awesome to see a model of mine 3d printed. Besides, how long could an object that looked so simple take?

Well it ended up taking about 5 times longer than I expected. But the results, I thought, were pretty good:

urinal render

As usual, I neglected blogging about cool things once I'd done them, but Rob Myers pushed it all over the place. First a post on his blog called Freeing Art History: Urinal. Then he uploaded it to Thingiverse and... super cool... BotFarm (from the MakerBot people!) printed one. It looks super cool. Click that last link. Click it!

But last, and most awesomely, Rob got his Shapeways urinal print, which looks super awesome. And guess what? BoingBoing picked it up! Holy cow, I'm on BoingBoing!

Anyway, the urinal.blend is available if you want to open it in Blender (also CC BY-SA 3.0 Unported licensed). Hopefully you can have fun using it (digitally or physically)! I also have some renders from alternate angles up if you want to look at those.

Anyway, sometimes when I do things, I think "maybe I should blog about or promote these things". But then I feel like they aren't that impressive, don't matter too much, and sometimes I lose enthusiasm for putting them out there (which is somewhat ironic since a good portion of my life is about encouraging other people to put things out there in a free-as-in-freedom manner). I guess maybe the biggest thing I've learned from this is that maybe I should be more confident and enthused about showing the cool things I've done. Thanks Rob, for giving me an opportunity to learn that. :)

PS: I mentioned that most of my 3d modeling involves monsters, spaceships, robots, etc, and that here was an excuse to do something different. But that didn't stop me from making a spaceshipified version. :)

Emacs appointment notifications via XMPP

By Christine Lemmer-Webber on Sun 21 November 2010

Since I've started using Emacs' appointment notifications with orgmode, I've wished that I could get notifications via XMPP. I think it's the most sensible system to use; I have it running on both my desktop, my phone, and my laptop, and the whole issue of "figuring out which device to send this notification to" has already been evaluated and solved by the XMPP community long long ago (back when everyone called XMPP Jabber, even ;)).

I initially thought I'd use a SleekXMPP bot connected to emacs via D-Bus, but then I decided that maybe I would eventually want to add more commands to this that integrated more closely with emacs, so maybe I should use emacs lisp directly. I had heard of Jabber.el but thought that it was mainly aimed at users who want a client, and that writing a bot in it would end up cluttering up my emacs with extra UI stuff I don't want. Then I was pointed at Steersman.el, and that seemed like a cleanly written bot, so I decided to give it a shot.

I was running a newer version of JabberEl than the copy of Steersman's code I looked at, so it took a little bit to figure out how to adjust for the multi-account code, but once I did that the implementation happened fairly quickly. Here's the relevant code:

;; Copyright (C) 2010  Chris Lemmer-Webber

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.

(require 'jabber)

(load-file "~/.emacs.d/emacs-jabberbot-login.el")

(defun botler->appt-message-me (min-to-app new-time appt-msg)
  "Message me about an upcoming appointment."
  (let ((message-body
         (format "Appointment %s: %s%s"
           (if (string-equal "0" min-to-app) "now"
             (format "in %s minute%s" min-to-app
                     (if (string-equal "1" min-to-app) "" "s")))
           new-time appt-msg)))
    (jabber-send-sexp
     (jabber-find-connection "thisbot@example.org")
     `(message ((to . "sendto@example.org")
                (type . "normal"))
                (body () ,message-body)))))

; I don't care when people come online to my bot's roster.
(setq jabber-alert-presence-hooks nil)

(setq appt-display-format 'window)
(setq appt-disp-window-function 'botler->appt-message-me)
(setq appt-delete-window-function (lambda ()))

Adjust "thisbot@example.org" with your bot's JID and "sendto@example.org" with who you want to send messages to. You can replace emacs-jabber-bot-login.el with whatevever you want to login with, but you probably want to setq jabber-account-list and then run (jabber-connect-all). Note that if you're connecting with a self-signed cert with Jabber.el you'll need to do:

(setq starttls-extra-arguments '("--insecure"))
(setq starttls-use-gnutls t)

I haven't yet figured how to whitelist my own self-signed cert yet, and passing in --insecure makes me feel like a monster, but it works for now. Maybe it's about time I finally got my ssl cert signed for dustycloud.org.

Anyway! It works, and I've been successfully getting appointment messages from my emacs session over IM for the last week, and it's pretty great. Next up, configuring things so that I can retrieve my agenda over IM when I request it and be able to IM myself new tasks and events.