Software

You are currently browsing the archive for the Software category.

This is one of those “in case I ever need to do it again” posts. Converting EMF files to SVG files – sounds like it should be a simple task, translating from one vector format to another. It turned out not to be.

However, in the end:

find . -name '*.emf' -exec unoconv -f svg "{}" \;

successfully converted a nested directory structure full of .emf files to have their .svg equivalents alongside. Oh, and for some reason (I don’t care why) you have to run this first:

unoconv --listener &

The key ingredient was unoconv (thankfully, Debian-packaged as unoconv), which also requires a load of openoffice and/or libreoffice stuff to make it work. There were a load of other possible ways of doing this that didn’t work, which I won’t even go into. Also, don’t even ask why I needed to do this in the first place.

Update: After I’d finished, I realised I also needed EPS. Easy conversion, not so easy command due to various shell-related complications:

find . -name '*.svg' -exec sh -c 'inkscape "{}" --export-eps="`dirname "{}"`/`basename "{}" .svg`.eps"' \;

Evolution

After many years as a dedicated user of Thunderbird as a mail and news client, along with the Lightning add-on for calendar and tasks, my list of gripes suddenly reached breaking point this week. I won’t go through them all, but here’s a small selection:

Read the rest of this entry »

I’ve never come across any fans of Google’s Android Market. Personally I despise almost everything about it. To some extent this is understandable and was always going to be the case because Google’s goals in building and running it aren’t even similar to mine as a user. That’s fair enough – my requirements aren’t typical. The other side of it though, is that it’s just crap, however you look at it.

What follows is a non-comprehensive list of what I think is crap. Some of these things everybody must agree with, while others most people probably don’t care about.

Read the rest of this entry »

I found myself in need of a C# (.NET/Mono) control for displaying and interacting with maps. I’d already implemented the same functionality in my application using an embedded browser, but that’s a horrible hack, so I decided to implement something nicer. I ended up with this:

I can hear the whining sirens of the don’t-reinvent-the-wheel police approaching already, so a couple of points about that. Yes, there are a couple of projects around already that I could have used almost off the shelf. They’re too complicated for my liking. What I’ve implemented does the basics of what I needed straight away in two small classes, contained in one file. I find this much more pleasant that having to wrangle with someone else’s 25-class monster implementation. Sometimes you can spend more time figuring out how to integrate an external module than you would just writing it yourself, and having spent all that time you still don’t understand the underlying implementation. This becomes more important when you start to extend things further down the line, which I will need to do. I’ve even done all this before, about 7 years ago, using tile data sneakily grabbed from various online proprietary mapping services of the day – I could have used that code, but I even rejected my own wheel.

Furthermore, if all you ever do is piece together other people’s ‘wheels’, you miss out on a lot of understanding, and more importantly fun. I don’t advocate reinventing wheels when someone else is paying for your time or you just need to get something done, but aside from that it’s frequently a good idea. So hopefully the don’t-reinvent-the-wheel police have now gone away to annoy someone else, and I can get back on topic…

Read the rest of this entry »

Slidetype Keyboard

Something that was bugging me about Android was the touch screen keyboard. I found it impossible to type anything with acceptable speed or accuracy. Unless you have child-sized fingertips, you’re relying on the dictionary guessing to figure out what word you mean, which is crap at the best of times, and useless if you’re not typing dictionary words. A side issue – I’ve noticed that if you *do* have child-sized fingers, it’s hard to get the touch screen to register at all, when you want it to. I don’t have child-sized fingers, of course, but my children do. When they want to press things, they have to hold their finger on the screen for a while, and sometimes it registers, sometimes it doesn’t. On the other hand, if they approach from behind and stab at the screen while you’re in the middle of doing something, it invariably registers straight away.

Anyway, before I got side-tracked by children’s fingers, I was going to say: But then I discovered the SlideType Keyboard!

Read the rest of this entry »

Stuart Langridge passed on a great idea that hadn’t occurred to me – running an FTP server on an Android phone. Although my i7500 is pretty much permanently connected via USB when I’m in the house, on account of needing to be sure the battery will be charged when I leave the house, I don’t particularly want to have to mount the USB drive and manually transfer things. Apart from requiring ME to do the work, which defeats the whole object of machines, the computer I connect it to isn’t necessarily the one I want to transfer files to/from. Also, a card can only be mounted to one device at once, so by mounting it to the remote computer, you snatch it away from the Android device, which isn’t always ideal.

Stuart tracked down an Android application called On Air, which he seems mostly happy with. I gave it a quick whirl, and didn’t like it at all. Clearly we’re all different. What didn’t I like?

Read the rest of this entry »

It’s been in the works a long time, but Facebook have finally switched on their XMPP functionality. Suddenly something like 400m users inside the Facebook walled garden are contactable from the outside world. I don’t know if this makes it the largest single deployment of XMPP – Google may be in a position to argue there, although I’ve sometimes been inclined to call their implementation almost-but-not-quite-XMPP.

Read the rest of this entry »

Samsung i7500 Reboxing

If you’re unlucky you’ll have heard of unboxing videos, where someone laboriously unpacks their latest gadget purchase, appreciatively describing each piece of cardboard and polystyrene in excruciating detail, and videoing the whole thing for the ‘benefit’ of the world. Frequently the gadget in question seems to be made by Apple, because who else but a purchaser of Apple products would do such a thing? Anyway, not to be outdone, here is my re-boxing post and photograph.

Read the rest of this entry »

There are two things I think are just plain wrong. Actually there are millions, but there are two I have in mind right now. The first is spaces instead of tab characters for indenting code. The second also involves spaces – excessive use of them like 1 + 1 = 2 when 1+1=2 is, to me, far more sensible. I don’t want to argue about either of these things, because a) this is a religious matter, i.e. I’m right and you’re wrong, and b) there’s no point, because you win anyway.

Why? Because in the interests of global harmony, code sharing, encouraging of contributions, etc, all my Python projects will now follow the PEP 8 guidelines. This doesn’t affect my contributions to other projects, since they’re always in the style required by that project (consistency always trumps religion), but it does mean that others can use and contribute to my stuff more easily, and hopefully in time I’ll get so used to seeing 1 + 1 = 2 that it won’t look stupid any more.

So, on the subject of PEP 8, a couple of tips I figured out along the way:

Read the rest of this entry »

I wanted an easy way of using images from a Zenphoto gallery in MediaWiki pages, and it turned out there wasn’t one. In fact, I had trouble finding a hard way of doing it with satisfactory results. It’s easy enough to embed external images in a MediaWiki page, if you have your MediaWiki config set to allow it, but I wanted thumbnails that clicked through to the real image. Not so easy. Hence MWZenphoto – a very basic MediaWiki extension that lets you do just that by including a simple <zenphoto> tag in the wiki markup.

Read the rest of this entry »

« Older entries