Febuntoo News Generator

Archive for January, 2010

Máirín Duffy: Inkscape Class Day 5

by febuntoo on Jan.31, 2010, under Fedora, Uncategorized


This past Thursday morning, I taught the fifth session of an 8-session (40 minutes per session) course on Inkscape at a Boston-area middle school. (For more general details about the class check out my blog post on day 1.)

Thursday’s Class

Thursday’s class was primarily a working class.

First, we passed around a sheet for the students to write out their name, band name, and T-shirt size so EmbroidMe Chelmsford can have the correct size T-shirts ready to go. Then we passed out sheets with a calendar / schedule for the rest of the class. We’re halfway through the course – there are 4 sessions left – so the students’ due date for their design is the end of the second-to-last class on February 5th.

Then, I set out a sheet with some suggested band names that any student who was still stuck on a name could pick from. One idea for using this sheet in your own class could be to cut the band names into little squares and have students pick them out of a hat early on in the course. The students seemed to have settled on either using a band name of their choice (one student is doing the logo for a band he is actually in!) or doing ‘band’ logo using their name.

Last week, I sent Walter at EmbroidMe Chelmsford a demo design created in Inkscape for us to test out how well Inkscape-produced files work with his printing process. Some of the effects such as path clipping and blur did not come out right when he tried the SVG, so we decided to work with 300 dpi PNG exports. The shirt came out great, and I wore it to class as an example for the students, showing them the original file and finished T-shirt side-by-side. I then quickly showed the students how to set their canvas size to 13″ x 15″ so they could see the boundaries of where their designs would print on the T-shirt. One important thing I tried to remind them of is that the shirts will be heather grey, and there is no white ink, so any areas that are white in their file will turn out heather grey / no ink. You can see this in the snowcap of the Inkscape logo mountain in the test t-shirt, as I’m pointing out in the photo below:

Inkscape Class Test Shirt

The only instruction besides that was a quick run-through on linear and radial gradients. I did not have a sheet prepared for that, but I have prepared one here for your usage. Originally, I had prepared a sheet on importing Open Clip Art graphics, but as Eve and I were talking on the car ride into class we decided that it’d be better to go over gradients – getting the students working with Open Clip Art too early we feared might encourage them to lean too heavily on found art rather than hone their still-developing skills in creating their own artwork. I’ll use that material for the last day of class.

After the explanation on gradients, we encouraged the students to raise their hands as soon as they got stuck on something. By far, the most common issue that has gotten students stuck is the alpha setting in the fill dialog somehow getting turned all the way down, so when they start drawing with the calligraphy pen or shape tools, they can’t see their artwork at all. It’s the ‘alpha’ slider, not the ‘opacity’ slider (the latter they seem very comfortable with.) I’m pretty sure the stuck students were not setting the alpha in that dialog deliberately, so I am not sure how it keeps getting turned down.

Some other issues that came up:

  • A couple of students over the course of the class have gotten ‘lost’ on the canvas. We’ve instructed them to hit ‘5′ on the keyboard to get brought ‘back to center’ to find their artwork again.
  • A couple of students have gotten confused when a shape didn’t have nodes – I’ve had to remind them to convert the shape to a path first.
  • One student today had a really nice illustration of a snake that she made with the calligraphy tool, but she did it in separate strokes and was not sure how to link them together. I showed her how to hold down Shift, select the pieces she wanted to unify, then go to Path > Union to make them one shape. It was a little hard for her to ‘collect all the pieces’ but once she got them all selected she was back on track.

I don’t think these are necessarily flaws in Inkscape, just humps that beginners to the program should learn how to resolve!

I forgot to take photos of the students’ work again – I will try harder for class 6 tomorrow!

Follow Along on Your Own

We have a lot of materials this week for folks following at home.

Here’s the lesson sheet we used for class on Thursday:

Introduction to Inkscape Lesson 5

lesson 5

Here’s the other materials we handed out:

T-Shirt Size Signup Sheet

tshirt size signup sheet

Band Name Suggestions Sheet

band name suggestions sheet

Class Calendar with Deadlines

class calendar with deadlines

Here’s the sample design for the Inkscape T-shirt, both in SVG and the 300-dpi PNG Walter used to print the shirt out (the same shirt you see in this post’s photo!)

Sample T-Shirt Design SVG

sample tshirt design svg

Sample T-Shirt Design 300-DPI PNG

sample tshirt design png

As always, the OpenOffice.org source files and the outlines for the entire course are at the course page on my website – but please note that’s a rough outline; as we progress through the class I’m coming up with the more-solid lesson plans based on how far the students get each session. By the end of the course I hope to have the course page organized much better.

By the way, if you’d like to follow all the blog posts about this class at one URL without getting the rest of my feed, I’ve set up a category in WordPress specifically for these posts:

http://mairin.wordpress.com/category/inkscape-class/

Enjoy! And please do let me know in the comments if you have any questions or suggestions

This course is sponsored by

Filed under: Inkscape Class
Leave a Comment : more...

Peng Hardin: Peng’s links for Sunday, 31 January

by febuntoo on Jan.31, 2010, under Uncategorized


  • Lior Kaplan: Hamakor, the Israeli Free Software Society, calls for the annulment of Software Patents. People have been calling for the end of software patents since it’s getting (almost) to the point where it’s getting tough to determine whether a new patent contains prior art due to so many patents being granted. I found this post on Planet Debian and I’m glad to see the Israeli Free Software Society taking the lead on this.
  • MJ Ray: Get the Survey Monkey Off Your Back. I’ve long thought using surveymonkey was a pain in the rear because they (seem to) ask for so much from people who are just voting on a survey. It turns out that surveymonkey may be not just a pain in the rear but also violating UK accessibility and privacy laws.
  • Lasse Havelund: OpenOffice.org is “a piece of crap” – or is it? OOo has gotten some pretty bad press lately so Lasse did a personal recreation of a study that had a group of teenagers try their hands at word processing and presentation management tasks using both OpenOffice.org and Microsoft Office 2007, all in the name of seeing how OOo really compared. He tends to use LaTeX for his writing and hasn’t used either OOo or Office 2007 much “over the last few years.” I won’t spoil his results so you need to read his post. You may be glad you took the time to read it and you can follow his links to get more background info on the test.
  • Siegfried Gevatter: GNOME Activity Journal, and installing it on Ubuntu. I’ve been hearing about this app (formerly known as GNOME Zeitgeist) and am curious about it. Siegfried some nice info on why you’d want to use it as well as some easy steps for getting it installed.
  • Stephan Hermann: Is it just me, or… People have been kvetching about non-free software being included in distros like Ubuntu ever since it first came out. Stephan writes such a good post on the matter that I doubt I could have said it better myself.
  • DesktopLinux.com: Second Lucid Linux alpha said to offer 15-second start-ups. Eric Brown takes a good look at the latest early test release of Ubuntu 10.04, listing both the good and bad to be seen in this bleeding edge release, including some kvetching about support for some proprietary software being included (see previous link).
  • Google Chrome Blog: Over 1,500 new features for Google Chrome. Google Chrome dev Nick Baum writes about some of the new features in Chrome and includes a video walk-through for installing an extension (not one that I personally use but you may find it helpful). The post is mostly about using Chrome on a Windows-based box but some of the info is also good for Mac and GNU/Linux users, as well as users of Chromium. There’s also a great tips post on the Chrome blog about managing tabs that you may find helpful.
  • Launchpad New: ACTION: Back up old sources from PPAs. It turns out that Personal Package Archives on Launchpad are a little too popular. You may need to back up some of the packages you’ve gotten from PPAs. Jonathan Lange has some info every user of software from a PPA should have.
  • Bastian Venthur: How to find packages installed/updated yesterday? If you’re like me you take regular updates to the software you run and every now and then you find a problem has cropped up after updating. The problem is that sometimes you don’t recall what got updated to know where to start tracking down your issue. Bastian asked he readers for ways to find out which packages got updated or installed and he got some really good responses. This is one post you’ll want to add to your permanent reference/resource list.
  • Nick Mamatas: Ursula K. LeGuin to Google: Hands off my books! Not every author is satisfied with the proposed solution to the problem of Google’s plan to digitize books to make available online.
  • Carlos Garnacho: Multi-touch support in Linux/Xorg/GTK+. Apple made other OS’s jealous with their ability to use two fingers to select and modify content on their smartphones and DMPs (Digital Media Players). Now GNU/Linux users can use it, if they can resolve the dependencies, that is.
  • Steve Langasek: Ubuntu 8.04.4 LTS released. The Ubuntu devs have released the fourth maintenance update to Ubuntu 8.04 “Hardy Heron” LTS (Long Term Support). Since Ubuntu 10.04 “Lucid Lynx” will also be an LTS release this will be the last maintenance release for 8.04 LTS but there are about 70 updates in this update so if you run Ubuntu 8.04 you’ll want to take this update.
  • Mike Hommey: Feeling alone. The Electronic Frontier Foundation has an experiment to see how much info your browser lets web servers know about you. I’m kind of worried about how much information they report about me.
  • NewsAskew: Green Hornet #1 FREE! May 10, 2010… All right all you lovers of comics and Jay & Silent Bob. Kevin Smith has been lending his talents to comic books, including being the writer for the very first of the new series of Green Hornet comic books. Thanks to Free Comic Book Day you have a chance to pick it up without having to shell out any cash for it. And without risking an arrest for shoplifting!
  • Nigel Tao: The Road to One Point Zerodom. Nigel is the author of the SuperSwitcher app, and he’s glad to announce that he has a goal of getting Superswitcher 1.0 out in time for the release of Ubuntu 10.04 LTS. I. Can’t. Wait.

I have more things to post but I want to give them their own posts so if you’ll allow a  little commercial promotion, I found a great product that you may join me in wanting to buy.

Have a most excellent start of February 2010!

Leave a Comment more...

Diego E. Pettenò: Ruby-NG: The Dependency Society (or, why multi-package projects worry me)

by febuntoo on Jan.31, 2010, under Uncategorized

I’m still working hard on my free time on the conversion of Ruby packages to the new eclasses as well as improving JRuby support over the place – for this reason I might do another shameless plug – and in particular, between yesterday and today, I ended up working on a set of packages for packaging bones in Gentoo.

Why is that a set of packages? Well, I had to commit together four different packages: bones, bones-extra, loquacious and little-plugger; a subset of them wasn’t possible at all. There are two interesting things to say about these, if you care about Ruby development. The first is that I wouldn’t actually count bad for it, as what it does is mandating an interface for Gems going a step further than Hoe, Echoe and Jeweler as it encompasses testing, documentation and packaging tasks. The second thing is that it comes from the codeforpeople project which consists of what can only be called a fuckload of different and almost unrelated packages, and as far as I know it used to be manned by a single person. Not even the most friendly of the blokes, to be honest: when I asked him a couple of questions about another project – session – the one-line reply I got was a link to a (newly created) GitHub repository.

Dependency graph for Bones

So what is the problem here? Well, check out the depgraph on this page. I spoke about four packages before, but it lists four, one is not packaged and I’ll probably just package it if I’ll end up using Bones myself. Of the four packages, one is the “interface” one and is Bones itself, two are dependencies, and are generic libraries, the other two are “plugins” (extras and git) that provide optional functionalities; or at least sort-of-extra functionalities. Indeed, the extras plugin provides RSpec testing and RubyForge publishing support, which should probably be considered optional functionalities… on the other hand, if your package uses Bones, and defines the configuration keys for either, it will fail if the extras package is not installed. So much for the extras, then.

The runtime dependencies are actually quite linear: Bones needs the two libraries, and the two plugins need Bones, which is quite logical and very easy to deal with. But when you start considering the build-time dependencies you are way out of luck. All the packages including Bones itself would depend on Bones, and on the extras package (because all of them define the RubyForge project, and almost all use RSpec), for both documentation and testing purposes. Obviously, if you try to install Bones with USE=doc or FEATURES=test, Portage will bail out because of the cyclic dependencies. And I don’t think I can fix it in any way for now. To be honest, this would have been much easier if Bones itself contained what is in the extras, as at that point you would have everything in the same package, which wouldn’t then require itself.

Or would it? To be honest if you look at the development dependencies as listed within the gems, all of the Bones-managed gems will require Bones, and that is true… for Bones as well! Indeed, in the image above, the dotted lines represent the officially-listed dependencies which we’re not following (for some strange, but welcome, reason, the bones-git package is truly optional).

Somehow, it seems like many multi-package projects decided to go with similar ways of handling dependencies. For instance, take prawn, a PDF-writing gem: when I added it to Portage (as dependency of a webapp I worked on last summer), it was a single gem, depending on another gem by the same author for its testing. Now, it’s actually a simple wrapper gem for three split gems… and you most likely will need all of them for doing most non-trivial stuff. Or a much more common gem: Rails! The activerecord, actionpack, activesupport and actionmailer gems are so interdependent that I’m not surprised most projects just bundle Rails in their own sources (albeit this is very bad from the quality point of view).

Leave a Comment more...

Thilo Bangert: MTKII as /dev/ttyACM0 in bt747

by febuntoo on Jan.31, 2010, under Uncategorized

During summer I got interested in GPS and mapping and bought myself a mtkII based device. For these there is a java app called bt747 in the tree. However I couldn't get it to work - bt747 would not accept the device name I tried to convince it of using.

Turns out that older devices where using a USB to serial converter to provide the USB interface: these show up as /dev/ttyUSBx - with x being an integer. The device I bought is a newer generation who appear to have an on-chip USB port, which will show up as /dev/ttyACMx (x again being an integer). So, support for ttyACMx type devices is needed in BT747. See bug #281888.

It turns out BT747, being a java app, uses rxtx to provide support for serial device communication. So lets fix rxtx - see bug #301126.

Meanwhile there is also mtkbabel in portage, which is not so picky about the device names.

Leave a Comment more...

Diego E. Pettenò: LXC’s unpolished code

by febuntoo on Jan.31, 2010, under Uncategorized

So I finally added lxc 0.6.5 to the tree for all of the Gentoo users to try it if they care; on the bright side, the lxc.mount option seem to finally work fine, and I also found the problem I complained about a few days ago. It is this latter problem that made me feel like writing this half-rant post.

Half-rant because I can see they are going to great extents to improve it from release to release, but still a rant because I think it should have been less chaotic to begin with. On the other hand, I could probably be more constructive if I went on to provide patches… I’ll probably do that in the future if I free myself, but if you follow my blog you know I’m quite swamped already between different things.

Starting from the 0.6.4 release, they dropped the “initialisation” task, and just let you run lxc-start with the config file. It was definitely a nice way to do it, as the init command wasn’t doing anything heavy that shouldn’t be done on first startup anyway. It was, though, a bit of a problem for scripts that used the old method as the simple lxc-start -n myguest (the init step wouldn’t be needed after a restart of the host) would mess up your system badly, as it would spawn a new container using / as the new root… overriding your own system bootup. Thankfully, Andrian quickly added a check that refused to proceed if a configuration file was not given. This does not save you from being able to explicitly mess your system up by using / as your new root, but at least avoids possible mistakes when using the old-style calls.

So what about the 0.6.5 problem? Well the problem came to be because 0.6.5 actually implements a nice feature (contributed by a non-core developer it seems): root pivoting. The idea is to drop access to the old root, so that the guest cannot in any way access the host’s filesystem unless given access to. It’s a very good idea, but there are two problems with it: it doesn’t really do it systematically, but rather with a “try and hope” approach, and it failed under certain conditions, saying that the original root is still busy (note here, since this happens within the cgroup’s mount namespace, it doesn’t matter to the rest of the system).

At the end, last night I was able to identify the problem: I had this line in the fstab file used by lxc itself:

none /tmp tmpfs size=200m 0 0

What’s wrong with it? The mountpoint. The fstab (and lxc.mount commands) are used without previous validation or handling, so this is not mounting the /tmp for the guest, but the /tmp for the host, within the guest’s mount namespace. The result is that /tmp gets mounted twice (once inherited by the base mount namespace, once within the guest’s namespace, but it’s only unmounted once (as the unmount list keeps each mount point exactly once). This is quite an obvious error on my part, I should have used /media/chroots/tinderbox/tmp as mountpoint, but LXC being unable to catch the mistake in mountpoint (at least warning about it) is a definite problem.

Another thing that makes me feel like LXC really needs some polishing is that you cannot just run the commands from the source directory: the build system uses autoconf and automake, but the authors explicitly backed away from libtool as it’s “Linux-only” (which really doesn’t say much about the usefulness of libtool in this case). given I’m not even sure whether the liblxc library is supposed to be ABI stable or not (they have never bumped the soname, but that is suspicious), it might really be better if they used libtool and learnt out to handle it. Also, it uses badly recursive Makefiles, it would probably take just a second to build if I remade the build system as a standard non-recursive autotools package, like udev.

Oh well, let’s hope for the future releases to improve polishing, bit by bit!

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!