I’ve recently taken a few projects out of storage (literally: the mountpoint is called “storage” :), and posted them on GitHub. So, I thought I’d take a moment to point out each one. I’m also going to get into some current projects, which will be appearing on GitHub one of these days.
This is a plugin for Inkscape. It adds “slicing”; the ability to export different parts of a vector drawing as bitmaps, for webpages. This is essentially the main feature you’ll find in web-oriented art apps like Adobe Fireworks, which makes it different from regular art apps.
I haven’t tried Inkscape or SVGSlice in years, so I don’t know if it still works. If not, it should be relatively easy to port to newer versions. It’s written for Python 2.x
This is a broadcatcher, much like Miro. It aggregates different RSS feeds of bittorrent content, and presents them as TV channels. Think of subscribing to your favourite shows, in a desktop app. Think of the apps and websites that some TV channels provide, but using independent, web standards. This is also written in Python, using PyKDE / PyQt. It’s intended for KDE 3.x / Trinity; don’t know how much work would be involved in porting it to 4.x / 5.x
This is a media player, specifically designed for audiobooks. It strives to be simple, and foolproof, using standard playlist files to describe a book, and saves your place automatically, even if you listen to multiple books at once. If you set up a symlink for the config folder, it’s possible to sync your media / bookmarks using a shared filesystem like NFS, SAMBA, or an online drive like owncloud / sugarsync / dropbox / sugarsync.
PlayaPlaya is written in Python 2.x, using GNOME + GStreamer.
This is a wordpress plugin for displaying, as the name suggests, catalogs. It supports sub-plugins for rendering in different styles. It also has a fairly nice framework underlying it for the admin forms etc.
It’s a nice, clean implementation, , if I do say so myself: you could do worse than to base your WordPress plugins on this codebase. As for the catalogs themselves, think of them as front pages, with descriptions and optional links to other pages, like order forms, or PDFs.
This is a wordpress plugin, similar to lb-catalogs in terms of framework etc. It’s used for rendering sliding panels, like these, but focuses on pretty image presentation and a usable wordpress admin page.
Another wordpress plugin, this time for displaying image galleries. Supports timed image changes with fading, etc.
My Project Euler solutions, so far. I know Project Euler asks people not to share their solutions, but like many others who post their PE solutions, I believe in treating people like adults. All you need to know is: spoiler alert.
I’ve only done a few of these up to do now; will probably get around to the rest later ;)
Coming soon(er or later)
Not just another wiki, but going beyond wikis, to something new.
Partly done, and working. Lots more to do.
A cross between GTD and other time/task management approaches, to create something very simple and usable — not just for individuals, but for teams. Think github, for tasks.
Largely done and working, but I want to modify it a lot, finish a few features, and add some new features before putting it out there.
Written in Python / Django
After years of using C, Asm, C++, PHP, Python, etc., I’m planning on learning something newer, more formal, more functional, more concurrent, and more formally, provably correct, while getting back to the raw performance and beauty of C.
As such, I’m planning to learn Rust, Haskell, or maybe Ocaml/F# (or some open source version of F#), or some combination of the above. Tried Scala, and the overhead was too high. Tried D, didn’t like the nullable references and ever shifting library APIs. Go seems to have a similar problem with library versions, and is less powerful, but looks more practical and rapid to develop modern tools with, over all. I might settle for Go, or D, but Haskell and Rust have my attention right now.
Anyway, as I learn, I’ll try to write it up, in a series of blog posts. I’ll even try to make it accessible, which Haskell types seem to have mostly avoided so far, even when trying to make things accessible ;) My monads explanation will be a LOT simpler than the usual attempts, for instance :)
Unfortunately these future goals will depend on available time once adult responsibilities are dealt with, etc. I’ll try to get to them soon :)