Category: open source

Import CSV into Ledger

Using Ledger

In my earlier post, I described Ledger, a command line tool for bookkeeping and accounting.

Although GnuCash does a good job of importing CSV data, I have been looking for a command line tool that will convert CSV data to Ledger format.


Ledger & Emacs

After only a couple of days use, I am very happy with Ledger. The type of reports I can generate are perfect for my needs.

For example

ledger -b "last year" -MA reg  "Exp.*:ATM"

shows ATM withdrawals since last year on a monthly basis with running averages.

Changing to

ledger -b "this year" -WA reg  "Exp.*:ATM"

shows average ATM withdrawals this year on a weekly basis (with running averages).

Booting the Raspberry Pi

I have verified that the Raspberry Pi can be picky about the SD Cards it likes. I was able to get it to boot using berryboot.

Multi Boot – berryboot

Raspberri Pi Installation

My Raspberri Pi arrived yesterday.


Linux System Instructions to Create Boot SD Card

  1. Download the zip file containing the image from a mirror or torrent at
  2. Verify the zip file using SHA-1
    • Filename:

    • SHA-1:


    $ sha1sum -c OK

  3. unzip
  4. determine SD card device name
    • mine is /dev/mmcblk0p1
  5. dd the image to the SD Card – change mmcblk0p1 !!!

    dd bs=4M of=/dev/mmcblk0p1

    • check progress:
      • find pid

        ps aux | grep dd

        • my pid is 4149

          $ kill -USR1 4149

          77+0 records in 77+0 records out 322961408 bytes (323 MB) copied, 45.8116 s, 7.0 MB/s

  6. Optional check what’s written to the SD card by dd-ing back to HD and comparing
  7. sync &
  8. umount SD card and insert in Raspberry Pi

git annex – manage your media the git way

Manage a Music Collection by Partial Git Checkouts (git annex)

  • This first article is what got me interested in git annex:
  • managing a music collection with git-annex
  • How is this different from creating a branch of the items you want on a particular device and checking out that branch?

Git Annex Documentation

  • git annex walkthrough link
  • I particularly like the following shell example. You can see where your stuff is stored.
# cd /media/usbdrive
# git annex whereis
whereis my_cool_big_file (1 copy)
    0c443de8-e644-11df-acbf-f7cd7ca6210d  -- laptop
whereis other_file (3 copies)
    0c443de8-e644-11df-acbf-f7cd7ca6210d  -- laptop
    62b39bbe-4149-11e0-af01-bb89245a1e61  -- here (usb drive)
    7570b02e-15e9-11e0-adf0-9f3f94cb2eaa  -- backup drive

  • This will save me a lot of time, since I currently write and run scripts remotely on different systems to inventory the contents.


git annex is a easy way to manage collections of large binary files (such as music or videos). Much easier than the method I have used with multiple branches or subdivided libraries (where each subsection is managed by a different git repository)

Data Deduplication

Even in these days of Big Data, Data Deduplication is even more needed. Common examples include contact list deduplication. Yahoo mail offers this, but it doesn’t handle two contacts that are identical except for one field. That additional field may not be even important to you or me.

I still haven’t found a contact deduplicator that I like, though bbdb does a pretty good job. Before I write something, I’m doing a survey of what is out there in the open source world, so here are some links:

“Unknown” Open Source Projects

The title of this article in IT World is ” 10 best (unknown) open source projects”

Emacs Tools

First Post Using org2blog and org-mode

I’m considering using org2blog for worpress editing.

This is the first post created in emacs org-mode and posted automatically to WordPress.

I first posted it to another blog then moved it to this one. How cool is that, considering I stayed in emacs to move the post.