My Ideal Kolab

We live in the age of the Internet. Here is how I would like to see some of my favorite software libre Internet applications grow.

Combine Tiny Tiny RSS and Kolab/Roundcube. This would allow for reading news feeds from any browser and also from SpaRSS, with read and unread items synchronized. Perhaps audio broadcasts could be supported as well, synchronizing AntennaPod with browser based listening.

Combine the Kolab Notes Android application with AnkiDroid, giving the latter a libre network service to synchronize with.

Email parsing, calendar event creation, and spreadsheet-like math capabilities on the calendar. These I’ve been trying to do a little something about with my finctrl project and cashflow calendar posts.

Featured on Hacker Public Radio

This fall I wrote a script to find random libre licensed songs on Jamendo (as opposed to what I’ve started calling the “fractional freedom” -NC and -ND licenses). Downloading 35 songs, I listened to them during my commute.  Leaving the ones I thought I would enjoy listening to again marked as unread, I made several passes through the list. The final cut left only 8 songs, for an acceptance rate of 23%. I added introductions and stitched them together during ConleyCon 6 in San Diego, using the Sound Recorder application on my phone and Audacity on my laptop. Hacker Public Radio episode 1928, was published on the Web about a week after ConleyCon 6! I wish I had known a little more ahead of time exaxtly what to include (Title, Author, Source, License) in the show notes and how I could input them, but Klaatu of HPR helped fill them out my fumbling first time and now I know what to do for the next edition!

finctrl Goes Live

After working on many prototypes, setting up cgit, receiving permission from my employer to publish, presenting the idea at ConleyCon 2015, and finally switching from shell scripts to Python, I am pleased to present the first code commit to “finctrl”, my attempt at automating financial control. Please find the repository at http://212.47.237.237/git/finctrl/. It currently works by downloading email notifications of transactions from a “Cashflow” IMAP folder and parses them assuming the winter 2015 coastal24.com format. Support for additional input and output formats will hopefully follow soon. (I’ve got shell scripts for Chase; it should be quick and easy to port that to Python, but making a generic framework may take significant work.)

Setting Up Cgit on Debian

In order to publish the source code for the personal finance scripts I’ve been working on, I needed to set up a git repository. I don’t want to use a proprietary service like Github to publish my libre software. So until the project is popular enough to justify inclusion into an umbrella project like GNU or Kolab, I figured I’d host it myself on my inexpensive Scaleway ARM server.

I like content addressable networks, and it would be really neat to host the git repository on something like IPFS. But my experience to date with IPFS is that it’s not production ready. So for now, cgit via HTTP seems to be the path of least resistance.

The process of setting up cgit on a Debian server wasn’t as well documented as I had hoped. So here is a brief, after-the-fact writeup to hopefully improve the available documentation. I wasn’t exact in recording my steps, so there may be typos or omissions. Please let me know if you find any and I’ll try to quickly fix them.

First, I installed Apache and cgit. (If both were equally easy to deploy, I might prefer nginx to Apache, but the cgit Debian package ships an Apache configuration file, making it the easier-to-deploy option.)

sudo apt-get install apache2 cgit

Next, I needed to enable CGI. This is an essential step that I didn’t see documented in many of the blog howtos that my searches found, but it was mentioned on the excellent Arch Wiki article.

cd /etc/apache2/mods-enabled
ln -s ../mods-available/cgi.load

The last essential configuration step was to enable the cgit configuration file.

cd /etc/apache2/conf-enabled
ln -s ../conf-available/cgit.conf

This is optional, but I edited the default configuration to use /git/ instead of /cgit/. Restarting Apache was necessary to have the configuration changes take effect.

service apache2 restart

Here is the result: http://212.47.237.237/git/. I may try to set up covlibre.net DNS to point to that one day, but the static IP should suffice for now.

Featured on PepperCarrot.com

I made a puzzle out of one of David Revoy‘s excellent Pepper and Carrot libre web comic illustrations a while back and wrote in to the author. Here is his post about my libre licensed Pepper and Carrot puzzle. (Apologies for the poor picture quality–it’s what we had on hand.)

I regret to say that my little boy has since slobbered and munched on the pieces so much that, while they held up for a long time, at least one of them has come apart (and another piece is missing). I had a few copies made with the foreknowledge that the first one would eventually be lost, destroyed, or both. I’ve already given one away and now I plan to hand out the other to friends with kids as well. So I guess I’ll have to make a new one with a different picture for the replacement. Suggestions welcome.

My Inter Planetary File System

I’ve long found peer-to-peer networking interesting. Some time ago, I realized that in the context of peer-to-peer networks, libre licensed content has a compelling advantage over proprietary content. Sharing libre licensed works on a peer-to-peer network is clearly legal, while the situation for proprietary content is murky at best.

So, to experiment with a new (at least to me) peer-to-peer network, IPFS, I’ve set up node on my recently rented Scaleway (ARM-based) private server. You can find a few libre licensed songs I like at the link below. If it works out, I’ll add more down the road.

Update: The server is crashing. I’m not sure if the IPFS code, libraries, ARM Go port or what is to blame. Until further notice, the following URL is probably unreachable.

http://gateway.ipfs.io/ipns/QmaFrTsJm6fs2JQnb34e52AdzCA9C2Kxn6gjZEx3RXBNzk

I also wonder how difficult it would be to resurrect or build upon the DebTorrent effort, this time using IPFS. While I must admit ignorance on the details of how IPFS compares to BitTorrent, from what little I’ve read, IPFS uses many of the good ideas from BitTorrent while providing better backwards compatibility with the ubiquitously supported HTTP.