Security through obscurity

As I have now become a father I've started to think about what information I have online. If you look through the photos I have online you should be able to answer the following standard security questions about my son:

  • Mother's maiden name
  • City where you were born
  • Name of first pet
  • (future) Name of first school

So what is my responsibility as a parent? Should I hide all this data to help my son avoid buzz words like identity theft? Or, is it safe to assume that in the future someone will realize this is a bad idea and come up with better identification schemes for people?

Whatever the answer, I would hate to make my pictures less available for friends and family. Older family members really couldn't figure out a password, much less remember it. I have no way to identify them. I've already configured my robots.txt file to not allow indexing of the photos. I think that I'll have to start 'sunsetting' the photos, not leaving photos older than 5 years up for public viewing. This way when he's 18, most of those questions will be unanswerable. Unfortunate the means that have to be taken to support a system that is woefully inadequate.

posted on Thu, 29 Dec 2005 at 12:51 | permanent link

New dad

I'm happy to say that we have a little baby boy now. His name is Nicolas, and I have pictures up here.

Nicolas sleeping       Nicolas in car seat

Having a newborn is a little like programming with closed source software, you have no real clue of why it's doing what it's doing.

posted on Tue, 27 Dec 2005 at 14:24 | permanent link

About Inkscape

In the Inkscape project we've had a tradition of having unique about screens for every release. This tradition goes back into the Sodipodi days, and shows how the program has progressed. I thought it would be fun to have a collection of all the about screens, as many users are new to Inkscape. So, I'm now announcing the Museum of Inkscape About Screens. I'm not sure that it is truly historic, but it is fun!

posted on Sat, 10 Dec 2005 at 18:26 | permanent link

Laptop Essentials

As we are introducing a new laptop into the family it made me think of the things that you need when you have a new laptop. For us, there are definitely these two that aren't the typical computer things which are very important.

Sleeve Case picture A laptop sleeve is important because of how the laptop gets used. I despise specialized bags, preferring to go with a standard backpack, and then protecting the laptop with a sleeve. The ones made by WaterField Designs are by far the best I've ever seen. They've got a neoprene inside and a protective nylon outside that makes the entire sleeve durable, yet soft to the laptop. We're now on our third, and I can say that all of them are still in really great shape. I prefer the vertical one because it sits in a backpack nicely and I can pull the laptop out while leaving the sleeve in the middle of all my papers and books.

Another very important item is a keyboard cover. Perhaps it is just because my laptops get more pressure than others, or that screens are getting larger, but I always get oil from the keyboard into the screen. That problem is now solved with Radtech's keyboard covers which are thin enough to fit between the screen and the keyboard, but yet protect them from each other too. A happy screen makes a happy programmer.

posted on Sat, 10 Dec 2005 at 17:39 | permanent link

Translating Custom XML

Inkscape, like other projects, uses some custom XML files for configuration of various things throughout. In some of those cases, the XML contains strings that are user visible, and thus must be translated. So, I set off on a path to do this. Knowing that intltool could help (and was designed for it) I knew it was possible, but didn't know how. It's simple, but I couldn't find anyone to tell me, hopefully those who come behind me will find this page in their Google search.

The specific files that I'm talking about are called INX files, which define extensions to Inkscape. These files define technical aspects like how to execute the functionality, but also descriptions, names of file types, and GUI strings to be displayed in dialogs. A mix of content, but with some of it being placed for direct user interaction. In Inkscape CVS there is a directory that contains most of the INX files.

To get the strings out of the XML files, they must be put into the POTFILES.in file in the /po directory of the tree. Inside this file commands can be given to intltool for how to handle the translation, and the individual files. The commands to intltool are surrounded by brackets [ ] and removed for gettext. To specify that a file is XML the following should appear before its listing in POTFILES.in: [type: gettext/xml]. This tells intltool to convert this file, an xml file, into a header file that gettext can understand before running gettext on it. You can see how this is done in Inkscape's POTFILES.in.

In order to mark which strings should be translated intltool uses an underscore ('_') at the beginning of the attribute or the name of the tag. So something like <mytext>Text</mytext> would get converted to <_mytext>Text</_mytext>. Or <mytag attr="text"/> would be converted to <mytag _attr="text"/>. Those strings are then pulled out of the XML file, and placed in the po files for translation.

Now, you have some choices. Intltool will support merging those translations back into the XML files by making a set files each with a different language inside of it. I did not do this. Because I had control over the XML parser, I changed it to handle the underscores on various tags and attributes, and run those through the standard _( ) function in C. This works well for Inkscape, but might not work for other users, especially if you have restrictions on changing the way the XML is parsed.

All in all, I hope this saves someone from reading through source code, tons of Google searchers, and some guessing. Oh, the though of doing this without the source code, ewww.

posted on Wed, 07 Dec 2005 at 19:21 | permanent link