Introducing the graphics editing project

This is going to be one of those posts that make me think “Why am I writing a post about this instead of doing it?!”. But it's late at night and I'm not really going to get anything done before the morning, so I might as well go ahead and write this up.

So, I wrote a graphic short st– No, wait, I'm going to tell this in chronological order, starting from way back in the beginning. We could have a long argument about where the beginning really is, and whether it's really a net or lattice rather than a linear story that starts at a single beginning point, but we're not going to do that, because I'm the one telling this story, and I've picked one beginning point that I like best.

It begins with me dorking around with the images from an old computer RPG called Sword Dream. Or maybe it was Yipe!. How old am I – ten? Anyway, it was basically me taking images and drawing over them or [...]

Continue reading...

I ordered a tablet; now what?

So, I asked the Internet how to shop for tablets. The internet told me, “Get a Wacom tablet. Get the cheapest Wacom tablet you can find.” So I did. I hunted around for a while and then ordered a Wacom Bamboo CTL460 pen tablet for around $50.

Wacom is notable not just for being, essentially, the name in graphics tablets, but also for the fact that they're the only [...]

Continue reading...

First progress!

I just finished the task from my last post - I wrote a C++ program to open, modify, display, and save an image file. I'm using SDL for all the image operations, which means that I can only save in .bmp format, but that doesn't really matter, and I can always go and find a better image-file-handling library later.

Now that I know I can do that, I don't really have any immediate tasks left for before I receive the tablet. Maybe tomorrow I'll figure out how to write a Haskell program that does the same thing.

While I'm talking about programming, here's a question for all you present-day readers: I know some of you are pretty tech-savvy and know exactly what I'm talking about, while some of you are not tech-savvy at all and haven't a clue what I'm talking about. I haven't really decided how much knowledge I'm going to assume. So the question is this: If you're not tech-savvy, would you be interested in me writing posts that break this stuff down into the basic concepts so you can follow along? And if you are tech-savvy, would you be interested in me writing posts that get into the details of what I'm doing?

– Eli

Minor progress on the Haskell exercise and stuff

I've been sleepy all day. Maybe I shouldn't have stayed up until 4:00 AM last night to write my last post? Heh heh.

Also, I should have mentioned this yesterday: I did go on to rewrite my little exercise in Haskell. The exercise takes an image, messes with it, saves it to a file, draws it on the screen thirty times over the course of fifteen seconds, and exits. You can look at my C++ source code and Haskell source code. They're almost exactly the same. Both consist of a quick wrapper around the SDL_Surface manipulation and a list of SDL commands to execute. Neither does much error checking. The Haskell one has significantly fewer lines, but they're about the same in file size. When I ran them, I used my avatar image from this site as the image to mess with. It looked pretty cool.

I was a little surprised at how easily I could write the Haskell code, although maybe I shouldn't have been so surprised, since I've been studying it for a while (not to mention that I'm a very fast learner). Since I love Haskell so much, I'm probably going to stick to it.

Sometime when I'm not so tired, I'm going to write a programming-101 post about C++, Haskell, and why Haskell is so much more awesome. When I say “programming 101”, I mean that I hope it will be accessible to people who don't do computer programming – but as with my posts about gender, I believe that introducing basic concepts before expanding on them is also the most effective way to communicate even with people who are already feminists / computer programmers. It makes what I'm saying be more grounded, more clear, and more precise.

Oh, and also – I have shipping information on my tablet now. The best estimate is that it will arrive June 21, which gives me an entire week to get used to Haskell programming. I think I'm going to try to port my 2D collision-detection library from C++ to Haskell. Or maybe write a cute Haskell/OpenGL game. Or both. Watch me.

– Eli


(This post is mostly a long rant about my computing woes. Feel free to skim over it.)

The linuxwacom project website says most modern Linux distributions come with Wacom tablet input drivers already enabled. Ubuntu is supposed to be included in this. So I look around on my system, and sure enough, there's already a package installed that's called xserver-xorg-input-wacom. So I plug in my tablet and try using it. Does it work? Nope!

So I download the linuxwacom drivers manually. I have to install a lot new stuff that they rely on. That's pretty normal. One of the things they need is the latest version of xorg-macros. I check on my system, and I have 1.3. I check my package manager, and sure enough, there's an update available, so I update to 1.5. Wait a minute... linuxwacom needs 1.8! And Ubuntu's “current version” is 1.5!


  1. Ubuntu

So I download and install that, manually, which isn't very difficult, just annoying. And I finish installing linuxwacom, and then restart my computer and... YES! The tablet actually works at giving input equivalent to mouse cursor input. So I go and open up some graphics-editing programs that I know are supposed to accept tablet input – GIMP and Inkscape – and sure enough, they also accept tablet input for themselves. Nice!


  1. linuxwacom

And then I spend about 15 minutes messing around in GIMP.

A stylized drawing of a person charging with a sword or something, out of a bright, open doorway.

Messing around in GIMP is pretty nice. GIMP is a bit like a canvas: You can draw on it with a variety of “tools”, and you have the extra advantage of being able to undo your actions, but [...]

Continue reading...

A few concepts I need

I made progress again on my graphics editing stuff; I have a program that takes tablet input and converts it into individual lines/strokes. That task was surprisingly easy; once again, I'm a bit unsure of what to do next.

So I just set myself a specific task: Create the software that I would want to use to write People Are Wrong Sometimes if I'd written it with this instead of on paper.

Which of course raises the question “What do I need for that?”. So I looked over People Are Wrong Sometimes from a conceptual perspective, turning the question into [...]

Continue reading...