Unfortunately I’ve been running up against a wall in my previous todo list and have subsequently decided (however tentatively) that I’m going to be writing all this stuff from scratch, which irks me to no end. RSS feed readers, on-screen notification systems, local content repositories, etc. I just have to be prepared to write it all from scratch, then keep my eyes open for toolkits (at both the product and library levels) that will help me skip ahead a bit. So while I’m sketching that out, let’s keep going with the process of breaking down the initial list into more concrete requirements and todo list items.
A contact-management system that would make Harvey MacKay faint from information overload.
I’ve always wanted to tie together my flow of email with a real contact management database. Partially for a simple address book that’s not hosted on some effervescent mobile device, partially for “business networking” (something that was important to me back then and is suddenly starting to come back around) and partially to keep an eye on who I know, what I know about them, etc. Yeah, it probably sounds a little Big Brothery. But I think it would be a fascinating tool that wouldn’t require so much in the way of active maintenance effort.
Now, I could just use a CRM system. Something like SugarCRM. Just pull the thing down and slap it in to a database. So I’ll check around for something like that. (I have enough professional experience with Sugar to know it’s positively awful, so it’s definitely not a contender.)
- Notifications and ticklers (woohoo!) for the following:
- People who’ve emailed me who I’m “officially due” to contact
- Software projects and updates that I’m interested in but may not have explicitly subscribed to.
- The same thing with commercial products (books, music, movies, etc.)
- All of this to bubble up into the ticker application mentioned above as well as a “product wishlist” that’s automatically maintained and published to a well-known location so I never have to answer the question “What do you want for (insert holiday here)?” again.
Of course this feeds in to the contact management system. But here we start getting in to the interesting stuff, something I used to call the “Interest Engine”. Let’s not put the cart before the horse.
People who’ve emailed me who I’m “officially due” to contact
The unspoken component here is that I want to tie my email (and perhaps other forms of messaging) in to the contact database system so that I can see things like “you usually go a round of email with soandso every week, but you haven’t in a few weeks. Do you mean to let that slide?” etc.
This isn’t a particularly easy problem, but it’s not exactly high-end computer science either.
The key to this, and how it relates to the other sub-items in #4 is that I want to be proactively notified not only of events (Frob sent you an email!) but of peculiar gaps between events (hey, you haven’t emailed Frob in a month!)
The other three things on that list are essentially “event sources” in that they’ll take the shape of a few search engines that’ll notify me if the results change. So if I like Deadpool (and if you don’t you’re wrong) this thing should take a peek on the internet every “time interval” and see if something interesting pops up (what “interesting” means is an interesting question) and creates a similar alert.
Add to that the other items, software updates, youtube channel updates, movie releases, etc.
I have to confess, that #4 item I don’t really understand. One problem might just be that back in 2003, Amazon wasn’t SUCH a big deal and my wish list just wasn’t that well developed. But now? Now I really think that’s solidly covered. Besides, what good is maintaining a wish list (which is ostensibly for sharing) on a personal internal closed network application? So I’m officially striking #4.
So what this all comes down to for these two major-heading items is three things:
- contact management database
- Email repository
- An engine that creates custom notifications based on a variety of heterogeneous data sources, both internal and external
Fortunately the email database is something I already have and use. I created a little custom database and a few scripts that parse mbox files (from Thunderbird), break them out into individual messages, then insert them in to a relatively logical database. I’m encountering some interesting capacity issues now that it’s growing with email content bodies. But I’ll be able to manage that well enough.
The todo list:
- Roughly outline what I’m going to want in my contact management database.
- Use that outline to shop for off the shelf systems that have the flexibility, UX, and open architecture I need.
- Create a single sample of a custom rss feed off of a scraped website of some kind.
- Create a custom rss feed off of incoming emails from one or two email addresses.
Should be fun. As for the last todo list, I’m waiting on a couple resources to start coding up the custom feed management system, so this will dovetail nicely with that.