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.

Moved to teh Deklabbs (DeKalb)

By Christine Lemmer-Webber on Sat 11 September 2010

About a month ago Morgan and I left our wonderful apartment in Andersonville, Chicago, IL and moved most of our things to our new apartment in DeKalb, IL (or as my friend Miles calls it, "the Deklabbs", a nonsense name that's just silly enough to stick). Morgan has started a graduate studies and teaching assistanceship program at Northern Illinois University, and since I telecommute, there was no real reason not to make the move. Meanwhile my good friend Lunpa is currently moving into our old apartment in Andersonville. Oh Andersonville, I miss you.

The Dekalbbs aren't too bad of a place to live. It's a small college town, has a nice food co-op, etc etc. Except that I really don't know much of anyone. I've only found one other person in the area who is interested in programming and free software, and it's unclear if I can attend the university GLUG except as a presenter. In Chicago, my group of friends (aside from people I met at college and work) WAS the free software community.

Which all and all means I'll probably be back now and then to attend usergroups. After all, teh Deklabbs is only about two hours away from Chicago, and I have several friends who have offered me couch-space if I need somewhere to crash. Chicago, you haven't gotten rid of me quite yet.

Overall, DeKalb is not bad so far. It's a small, quiet, beautiful town, not too far from Chicago... oh and the rent is cheap. The rent is so cheap.

Vegan Strawberry Vanilla Rose Black Tea Shortbread Cookies

By Christine Lemmer-Webber on Fri 25 June 2010

I've never foodblogged before, but today I am compelled to start. For today is Morgan's 25th birthday, and in honor of that I've created something so delicious it must be shared with the world. Behold:

Vegan strawberry vanilla rose black tea cookies

Morgan's favorite tea is Celestial Seasoning's Vanilla Strawberry Rose Ceylon Black Tea. Also, Morgan alleges that her "favorite food group is cookies". (I'm pretty sure she's confused, as last time I'd checked cookies weren't a food group, but I guess I won't argue the point on her birthday.) I figured that a good gift this year would be to combine her two favorite tea with her favorite, *ahem*, food group. The result? Strawberry vanilla rose black tea cookies!

I adapted the recipe from the recipe for shortbread cookies from the excellent Vegan Cookies Invade Your Cookie Jar's shortbread cookie recipe (so yes, these cookies are vegan too). I'm actually no good at baking, but these came out perfect, even despite the fact that I accidentally spilled a little bit of water into the dough (I had to bake them for a few minutes longer and I added about two tablespoons more flour to the mix, but they turned out just fine). I'm going to assume you aren't going to spill water into your cookies, so here's the recipe without that detail. (A good portion of the text is from VCIYCJ, which is a good book so far and is really what makes the recipe so awesome and idiot-proof.)

Strawberry Vanilla Rose Black Tea Cookies

Ingredients:

  • 1 cup non-hydrogenated margarine, slightly softened
  • 2/3 cup sugar
  • 1 teaspoon pure vanilla extract
  • 1 1/2 teaspoons rose water
  • 2 cups all-purpose flour
  • 1/3 cup cornstarch
  • 1/4 cup dried strawberries, chopped, plus a dozen or so whole ones for decorating
  • 1/4 cup loose black Ceylon tea (or 1/3 cup if you want a stronger tea flavor)

Instructions:

  1. Preheat oven to 350°F. Lightly grease a large cookie sheet.
  2. In a small bowl, sift together flour and cornstarch. Set aside.
  3. In a spice mill or small coffee grinder, grind the tea until it becomes a fine powder.
  4. In a large bowl, beat the margarine and sugar together with an electric beater or even a standing electric mixer. Scrape the sides of the bowl frequently with a rubber spatula and beat the mixture until very light and creamy, about 5 minutes. Stir in the vanilla and rose water.
  5. Add half of the sifted flour and cornstarch to the beaten margarine mixture, using the rubber spatula to fold in the flour first so that it doesn't fly all over the place when using the mixer beaters. Beat until mostly combined, then add the rest of the flour mixture along with the tea powder and chopped strawberries, using the spatula as before. Continue to stir until all the flour and cornstarch are absorbed and dough is crumbly yet soft and moist.
  6. Knead dough together with hands for about one minute. Roll golf ball sized portions of the dough in your hands. Put a whole strawberry on top of each and press gently with your hand onto the greased cookie sheet.
  7. Bake for about 10-14 minutes, until the shortbread begins to puff and the edges begin to turn a golden color.
  8. Remove from oven and allow to cool on cookie sheet for about 5 minutes. Then use a spatula to transfer cookies to cooling rack to complete the cooling process.

And you're done! Delicious cookies await!

Patent Absurdity

By Christine Lemmer-Webber on Sun 13 June 2010

So, it's a bit strange writing about this since the film I'm about to talk about has been out for two months. I'm talking about Patent Absurdity, directed by Luca Lucarni, sponsored by the Free Software Foundation and with animations by... me!

Actually, it's kind of surprising that I haven't written about this sooner, considering the first several months of the year this is mostly what I did in my non-work hours. Unfortunately I sustained a wrist injury right around the release that stopped me from doing any typing outside of work hours up until just a couple of weeks ago (it's healing but I still need to wear braces). Anyway, that's a separate story, probably worth its own post.

The film gives what I think is a really solid and enjoyable to watch introduction to what software patents are, their history, and the dangers they pose to the entire software ecosystem. It elicited a very positive response when released at Libre Planet 2010, and everyone I know who has watched to it has spoken highly of it. It could be that sample's response has to do with the type of people I tend to associate with, but anyway... I'm convinced that it's a good and fairly accessible film (accessibility being something something that these kinds of productions don't always end up being).

So there actually four types of animations in the film. There are some very simple graph animations, a moving timeline of software patent history, a "wargames"-type animation (what's featured on that poster there), and an ending sequence that I won't spoil here. Of all of these the wargames sequence seemed to elicit the strongest reaction from people, which is good because that's also the piece that involved the most effort. All of the animations involved Inkscape and Blender in some form, but the wargames animation also made use of Blender's new Python API, which is awesome.

In fact, just this thursday I gave a talk on Blender and Python in Patent Absurdity at ChiPy. (Thanks to Carl Karsten for doing awesome video recording, as usual. :)) Giving a talk on the Python API in Blender at ChiPy is something I've wanted to do for a couple of years, so it was great to finally do it. And the audience reaction was very positive. As you can see in the video, there were a lot of questions, and I got a lot of positive feedback (and even more questions) after the talk ended. Suffice to say I'm rather happy with things.

Oh yeah, and I've also released the Patent Absurdity animation sources along with a full README (HTML export here). While Patent Absurdity is released as CC BY-ND 3.0, I've released all the data (including the Blender and Inkscape files) for the animations as free culture under CC BY-SA 3.0 and the Python files as free software under the GNU GPLv3. So in case you wanted to see how those things work, you are fully free to modify, distribute and tinker with them... free as in freedom. :)

1st year anniversary (and an upcoming move)

By Christine Lemmer-Webber on Mon 31 May 2010

Yesterday was Morgan and I's first year anniversary. One year ago, we were married.

Not much more to say I guess. Being married isn't much different than living together before marriage, except that now it's clearer that we're in this together for the long haul.

As evidence to that sort of thing... a little over a year ago I mentioned that we may be moving. It's no longer a "may be moving" thing... I'm happy to say that Morgan got into grad school at Northern Illinois University, so we're moving to DeKalb, Illinois. There are a lot of things I'm going to miss about Chicago, most especially my friends and the marvelous tech scene here (marvelous enough that almost all of my friends in Chicago are part of the tech scene here). But no need to get terribly weepy-eyed... I'll actually be back fairly frequently for usergroup meetings and the like. Plus, there are a few things to look forward to in DeKalb... like really, really cheap rent.

Here's to many more happy years to come. :)

Switched blog to Zine

By Christine Lemmer-Webber on Mon 31 May 2010

So I just switched this entire blog over to Zine. I'm pretty excited about the move... I've spent a good chunk of time reading through Zine's guts, and I've liked what I've seen so far. The code is clean, the plugin system looks pretty nice, and it was really easy to move my data over.

Prior to this I'd been running my own homerolled blog on here. Nothing fancy, just your bare-bones Django blog. When I originally wrote that thing I had just redesigned Dustycloud.org to be a kind of more permanent home to my projects, and I knew I needed a blog. At that point, I couldn't find anything else that seemed like the kind of thing I wanted and was also written in Python and Django (at that point, I wanted this entire site to be Django-only). Well, time has passed, and I'm running and writing framework-free or not-necessarily-Django WSGI applications, and it turns out there is a blogging system that really truly resembles the kind of system I want, so I've made that switch. Aside from having generally nice looking internals, Zine uses Jinja2 for templating (my favorite templating system!) and permits reStructured Text based posts (which is what most of the posts in my old blog used). Anyway, it only took me a couple of hours to move both my data and templates over. It feels nice to know that if I put effort into making a bugfix or enhancement, that bugfix or enhancement could affect more users than just me.

Anyway, apparently I overlooked one thing in the transition... if your RSS reader shows all my posts as new again, that's why. Also, the proper feed link is no longer /blog/feed/ but rather /blog/feed.atom, so consider updating your links. I've added a redirect, so if you don't it shouldn't be a problem, but it's nice to use the *correct* link.

Edit: Sorry especially for the spamming caused by the switch of permalinks, planets. :(

Prosody is a nice XMPP server

By Christine Lemmer-Webber on Sun 07 March 2010

Up until recently I was using ejabberd for my XMPP server on dustycloud.org. It worked pretty well, was easy enough to set up, etc. Unfortunately it was also a total memory hog, sucking up more than 120MB of the memory on my tiny VPS. Given I was running the smallest Linode server possible (actually, I just upgraded to the second smallest today, which was pretty painless) this was making it rather difficult for me to add new services and sites.

After a very helpful conversation on identi.ca, I decided to make the switch to Prosody. I'm glad to say it was quite painless: after installing the .deb off their site, making a couple lines of changes to their bundled config file, and running their ejabberd2prosody.lua script, things are running smooth. Prosody only takes about 15 megabytes of memory (including what's cached). Nice!

One word of advice: ejabberd2prosody.lua isn't bundled with Prosody's .deb files currently, so you have to run it from source. The "migrated database" that it creates is set up relative to the script's own path it seems, so you'll have to move the database it creates out of the source directory into /var/lib/prosody. After I figured that out, everything was smooth!

Things I've been doing lately

By Christine Lemmer-Webber on Sat 06 March 2010

I've actually been writing quite a lot and doing some rather interesting things. Unfortunately, I haven't really found much time to update here, so here's a brief recap of stuff:

As for that last one, there's no "real" prize for winning a Blender weekend challenge other than suggesting the title of the next contest, but this may be one of the thing I am most proud of anyway, because I think the final product came out really well. It is the first piece I've finished in Blender that I feel really happy with. More importantly, I redid the piece a bit after the contest. We got it printed and Morgan framed it, and we gave it to my father for Christmas. This was important to me, as my father is the one who got me interested in cartooning and animation at an early age in the first place.

image

There's an even much bigger thing I've been working on that's almost ready for public viewing and consumption, but it's not ready for viewing yet. But I promise I'll blog here when it is instead of waiting for an overwhelming blogpost. :)

In the meanwhile, my identi.ca account is where it's at.

N900 and the State of the Free Phone

By Christine Lemmer-Webber on Mon 23 November 2009

After a long period of waiting, Morgan and I both were able to pick up our Nokia N900 phones. We've both been waiting for these for a long time, and I'm happy to say that acquiring the device spoiled my weekend in the sense that I had plenty of things I had scheduled to do but found myself unable to do because there was too much to explore on the device. As for the phones themselves, I'll summarize briefly (then go into details later): usability wise the N900 phones are an absolute joy; free software wise the phones are not completely ideal but are mostly quite good and in that sense are probably your tentative best bet. (That last statement is quite loaded... I'll qualify it as I go.)

The primary competitors against the N900 in the free software space are the OpenMoko phones (Freerunner, and to a lesser extent the 1973), the android phones (G1 & Droid), and the Palm Pre.

Going over these briefly, the OpenMoko phones are by far the most free in every respect (I even have one, the 1973). I'd like to say that I thought the project was not dead, but considering production has ceased and the community seems largely exhausted, I am afraid it may be. There is some chance that production will start again, and maybe OpenMoko as a company will itself rebound and begin production of a new model based on sales of its WikiReader. But at the moment, I am not crossing my fingers. At worst, I do not think the time and resources were a bad investment: it demonstrated interest in a free software friendly phone and I suspect that the FreeSmartphone.org project was partly the inspiration for ofono (both are d-bus based). And though the hardware and software stacks both have issues, you can now use the one of these devices as a phone. But for the moment, the OpenMoko phones look to have a very uncertain future, and so (unfortunately) I would not put them in my "best bet" category.

Then there's the Android phones (or more specifically, the developer G1). The version you buy in a store is actually locked down to where you don't have root access, however it is possible to buy a G1 developer version (which is more expensive in the short term but cheaper when you factor in not being tied into an unnecessarily expensive plan), though you have to register as a developer first. Like the N900, the phone is not entirely ideal as in terms of providing a free software environment as it does come bundled with some proprietary pieces, but also like the N900 and Maemo, these devices and Android are still mostly free software at their foundation. There is a fundamental difference between Maemo and Android, however: aside from the Linux kernel, there is very little on the Android platform that may resemble what you have on your desktop... Google has developed a completely separate stack that is built on a Java VM for Android, and so in that sense Android is on its own little free software island: very little free software can be shared and come in, and very little free software can come out and be shared with the general free software desktop. Despite this, it is still a mostly free software platform, and before the N900 was publicly announced Morgan and I were on the verge of buying a couple of the developer versions.

Then there's the Palm Pre... I have heard this mentioned repeatedly as a free software option, but looking at it I don't see much worthwhile. As far as I can tell, the core of WebOS is itself proprietary, and while the system may be running the Linux kernel, it has at least as many blobs as the G1 and the N900 do, on top of having some sort of disturbing phone-home unfeature that sounds like a privacy nightmare. You also have to jailbreak the device to gain root access, and although Palm seems okay with this, jailbreaking as a requirement does not seem like a good first state considering other phones that don't require such an absurd step. Despite this, some freesmartphone.org hackers are considering the device as a possible option for an FSO port. However, that's the best this device has going for it free software wise to the best of my knowledge. Unless the FSO pulls through with a good port to the Pre, I don't consider it much of a free software option.

Now to the N900 and Maemo 5. Briefly on usability and aesthetics: it certainly holds up in this regard. I've felt that every aspect of the device felt really well thought through and comfortable from a user perspective, and Morgan seems to think the same. This is good in several senses: it means that the device is likely to have broad enough of appeal to be sustainable as in terms of sales (which matters to free software enthusiasts as it means the device and hopefully similarly free successors are likely to continue to be produced) and it also shows that a device with broad appeal based on primarily free desktop components is possible. Maemo 5 uses GTK, Clutter, Hildon, and QT for interface rendering, as well as D-Bus, PulseAudio, Telepathy, and many other components behind the scenes, all pieces that you probably are running if you have a free software desktop running on your machine. This means that existing free software applications are more likely possible to run natively or be ported to run without extrordinary difficulty. This isn't a perfect scenario: getting an application to look native on the device will likely require significant modifications for many programs, introducing a risk of forking. Even so, assuming both the N900 and the Android phones were to suddenly be discontinued, a GNU/Linux desktop user will have felt more benefits and less loss in terms of the free software surrounding the N900 than the Android phones.

As for distribution and packaging, the N900's default install (and current only option) is Debian-based, but not Debian itself. Unfortunately due to what seems to be a mix of hardware-specific optimization goals and a desire to separate the "flash-updatable" portion of the system from user-installed and updated sections of the system, all non-core packages are set to install in /opt/ instead of /usr/, which means that packages are pretty grossly incompatible with those directly from Debian. This is referred to as the "Opt Problem", and it is clear that many people are unhappy about it. Aside from the binary blobs, this is my biggest disappointment with the machine... I would really prefer to run vanilla Debian and have access to Debian's full repository of packages rather than having to wait for the ones I want to be ported over or port them over myself. At any rate, the machine has a slot for microsd cards, and I suspect it won't be long until it will be possible to boot vanilla Debian from there.

When the N900 phone was announced, there was an appeal directly to "software freedom lovers" which gave the impression that this phone would be yours, you are welcome and encouraged to hack it. I am glad to say that this is true. All I had to do was install rootsh and I had root access to the device... yes, real actual root access. And though I haven't done it, it also appears to be fairly easy to flash the machine. I should note that Morgan and I didn't purchase a special "developer" version of the phone either... the phones Morgan and I bought were purchased directly from the physical Nokia store here in Chicago. As I am typing this, I am simultaneously ssh'ed into the phone over my local wifi, installing packages via apt-get.

All that being said, unfortunately there are certainly a good number of components which are non-free. Nokia is upfront about what those components are but also gives some pretty stupid reasons for why. (Battery damage, really? As for safety, surely people could intentionally do much worse without needing access to the source code. That's silly.)

I really haven't talked much about using the device, mainly because my post here was concerned with freedom. All I will say is that I doubt you will be disappointed in using it... the machine feels very polished out of the box and it is clear that a lot of effort was put into making the user interface clear, intuitive, and beautiful. And it has succeeded in those regards marvelously. And as in terms of freedom, the phone is not perfect, but I am convinced for the moment that it is the best bet we have.

But hopefully Intel will show off some Moblin-enabled phone soon, and it will end up being more free software friendly than even the N900 is (which is still a huge leap forward for a mainstream phone). And at that point maybe you could swap installing Moblin on one and Maemo on the other. Because free software is awesome.

Edit: Pieter Colpaert points out that you only need to check the community updates to see that the OpenMoko community is not, in fact, exhausted. I hope that he is right. It is possible that my perspective is tainted because I have a much earlier model, the Neo 1973. Using that phone involved a lot of manual time trying to tweak things as everyone else had moved to the Freerunner (only a thousand or so of the 1973 were made, apparently), and between projects I didn't have time to figure out how to manually update alsa state files every time the freerunner community updated and broke mine. The community update post does show that there is life in the community. That said, I suspect there won't be much as in terms of new adoptions in the community until a new OpenMoko model is announced, so I fear that the OpenMoko community may be fighting brain drain. I could be wrong. I'd like to be. And I'd certainly love to hear of a new model being published. Maybe the success of these other partly free software friendly devices will raise interest in investing in a new OpenMoko device, which has always been fully free software oriented.