Hacker News new | past | comments | ask | show | jobs | submit login
Pimutils: The coreutils of personal information management (pimutils.org)
164 points by pabs3 on Nov 26, 2020 | hide | past | favorite | 29 comments

There's a large set of these developed over the years, though I couldn't compile a comprehensive list without taking some time.

Contact management (lbdb), numerous task managers, calendars, Emacs org-mode, vimwiki, schedulers, and more.

remind, calendar, and taskwarrior come to mind.

2/3 of these Perosnal Information Management tools were featured on a recent "my desktop" set up from noted command-line user Hund[1]. Bunch of other great console tools here too, if folks are interested.

Makes me think a bit of one of the original-ganger XML namespaces, pim/space[2]. Spaces for your personal information management. There are very old threads for this, going way back.

I'd say Atom Publishing Protocol came close. We think of Atom as an RSS competitor, but it was part of a broader general information organization & manipulation effort with Atom Publishing Protocol, which included more about ways to manage & append & write information, into feeds, which existed in collections, across workspaces[3].

Tim Berners-Lee is still hard at work, trying to distill out a useful, general means of wrangling one's & other's information. The team seems to have just released Inrupt, their implementation of the Solid specifications for linked data[4]. Which is helping power some of the latest BBC & NHS & NatWest (a bank) systems[5].

Personally I think Personal Information Management is a wonderful white whale for folks to chase. We can land it, & it will make a huge difference to all if we do. As for where we are now, I rather enjoy the JSON-LD & SOLID & Linked-Data world, think there are great specs there, for building better general systems atop, and hope we can start to rebalance some of the questions of control over computing & data with these more general systems.

[1] https://hunden.linuxkompis.se/2020/11/13/my-desktop-november...

[2] https://www.w3.org/ns/pim/space

[3] https://tools.ietf.org/html/rfc5023#section-8.1

[4] https://news.ycombinator.com/item?id=25211816

[5] https://money.yahoo.com/nhs-data-creator-sir-tim-110816726.h...

I've been looking for a kanban tool for which I can own the data (self hosted), and preferably that the data is a human manipulated format (Markdown ideally).

Does anyone know of something like that? I haven't found a satisfactory solution so I've been building one, but I keep feeling like I'm wasting my time and that there must be something else available. In any case I am planning on releasing it as a desktop app and mobile (Android, iOS) at some point. Right now I just use Syncthing to sync across devices - you just point the app to a directory of Markdown files.

There are a few single file kanban scripts that store in your browsers local storage.

https://github.com/linuxcaffe/tw-kanban-js https://greggigon.github.io/my-personal-kanban/ -- I use this sometimes

Taskell is exactly what you're looking for! https://taskell.app/

It's a bit fresh and needs to be fully fleshed out, but it's functional!

Why are certain techies obsessed with human-manipulated format? Did you grow up with 1980s computers?

CalDav/CardDAV is widely supported by lots of FOSS tools, and https://packages.debian.org/sid/radicale is very easy to set up as a server. You can host it behind a Tor hidden service if you are worried about hackers. https://github.com/infinity0/droid-hacks/blob/master/pages/s...

BASH and CSV ok? I've used this kanban.bash [0] and it works well enough.

[0] https://github.com/coderofsalvation/kanban.bash

Kanboard: https://kanboard.org/

Easy installation. Can be run locally using a php web server.

NextCloud may have just the right apps available for you, as add-on on top of your self-hosted storage.

I like and use nullboard. https://nullboard.io/preview

Simple, and easy to use. I use the color version to track things easier.

possibly a candidate for an Ask HN post - I don't use one so can't recommend but "self hosted kanban" does produce some pretty clear top results.

I use taskwarrior and time warrior for keeping track of my tasks and the amount of time that I’m doing, and have task warrior set up so that it’s the first thing I see when I log into my home server.

I do use khal and sync it with my google calendar. I haven’t figured out multi-calendar sync just yet (work/personal/wife), but, it’s on my list.

Spec for a tool I want written but am too lazy to make happen: journal - an append-only personal log.

Timestamps all input and appends it to a log file. Inputs can be either arguments to the command, or read from stdin if piped to.

Log file should be parseable with grep and other coreutils, but an indexed option might be useful for time range queries.

You want something like https://jrnl.sh

I’ve used this for a few years now and it’s pretty solid.

To write:

    systemd-cat -t mylogs <<< "Message"
To read:

    journalctl -t mylogs --since yesterday

Systemd logs get rotated. :)

Systemd logs get huge in practice. Binary format, also.

Still, nice hack value.

Unrelated ask: Does anyone know of a good way to filter my Outlook 365/IMAP inbox using rules running on my Linux box? I want more complex and easily maintainable rules than what I can get via Outlook.

I've used DavMail[1] to access Office365 for years.

It basically acts as a translation layer between Microsoft protocols and open protocols. I usually run it as a local systemd user service.

My only issue is with MFA. To set it up you'll need to dig through the stdout/logs to get the initial "add app"/Auth URL. After that the push notifications from the Microsoft Authenticator work as expected.

If you're not using push based MFA I'm not sure if it'll work, you might need to dig through the logs to grab the URL each time. If it was me I'd probably setup another script to sit watching the log, extract the MFA URL and send a notification with lib notify.

So yeah, a little janky to set up (yay for proprietary protocols) but you can then use whatever email client you like and manipulate it as you need.

1. http://davmail.sourceforge.net/

Yup - https://github.com/lefcha/imapfilter

"IMAPFilter is a mail filtering utility. It connects to remote mail servers using the Internet Message Access Protocol (IMAP), sends searching queries to the server and processes mailboxes based on the results. It can be used to delete, copy, move, flag, etc. messages residing in mailboxes at the same or different mail servers. The 4rev1 and 4 versions of the IMAP protocol are supported."

Two jobs ago, I had written something for this; but it was written at work, so I wasn't able to keep it. Also, it was on premises Exhange, not Microsoft's cloud. But I recall, the exchange IMAP server isn't too horrible, although a bit slow. Perl with one of the CPAN IMAP modules, plus a little bit of caching, and I could do all sorts of filters that couldn't be done in Exchange (like sorting read mail into archive folders).

I have used mbsync & notmuch to do a one time filter on my entire inbox. If you handle your emails locally, this could be a solution.

khal looks quite cool. Does anyone have some experience with it?

I have khal (calendar), khard (vcards) and todoman (todo on caldav) installed and use them occasionally. I mostly use my phone and thunderbird to manage contacts and calendars - so they don't find regular use. However, they all are really nice curses/cli tools if you live on the terminal. I don't have any complaints when I do use them. The biggest attraction though is vdirsyncer, a service used to synchronize CalDAV and CardDAV to a directory. Khal and others interface only with this directory and not directly with the server. Vdirsyncer allows you to easily backup and migrate your calendars and contacts between different servers. This is a huge relief if you consider how opaque and locked-in most calendar/contacts services are.

Looks like vdirsyncer can sync with Google calendar and contacts: see

class GoogleContactsStorage(dav.CardDAVStorage):

on https://github.com/pimutils/vdirsyncer/blob/master/vdirsynce...

Dealing with Google's version of IMAP, CalDAV and CardDAV is with the standard that everyone else follows. Every single program (mbsync, offlineimap, vdirsyncer) needs a special section on how to configure for Google alone. It causes a lot of heartache when you try to migrate.

khal is excellent. I've been using it alongside vdirsyncer for a couple of years now. I recommend aliasing 'khal calendar' to cal - a quick look at your day, and upcoming events.

I also highly recommend khard, which manages contacts.

I second these recommendations. I've been using khal and khard (plus `todoman` for to-do list management). They're all nice tools that work well in my CLI-focused workflow. And `vdirsyncer` is a key component, that syncs to my other computers and phone, via a NextCloud instance.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact