I want my wiki to be a sensemaking aid – after collecting the dots, to help me then connect them and see the constellations.

One sensemaking tool in Roam and org-roam is the wiki graph – a graph (in the nodes and edges sense) of all of the notes in your wiki and their links to each other. Not quite a mind map. More of a hypertext map. I’ve been playing around with publishing this map to my public site.

2020-05-02_22-08-47_screenshot.png

Does it make sense?

While fun, I’m not yet 100% convinced with these simple graphs as sensemaking aids. The full map is pretty messy (org-roam’s at least, I haven’t seen Roam’s). From browsing around it, I don’t feel that enlightened about what I’m thinking. It did make me realise I have a few orphaned pages, but you could do that pretty easily with just a list.

That said, it definitely is interesting browsing around it – I come across pages I forgot about, and do see the beginnings of clusters of thoughts. I think visualisation, when done right, could possibly bring unexpected insights, and if nothing else, provide an alternative way of navigating around. These graphs are not there yet, but worth experimenting with.

https://i.imgur.com/XvLllye.jpg

Publishing org-roam’s map to the web

So anyway, with all that, for my Garden and Stream post-session hack and demo, I had a bit of a play with org-roam, and got it so that I can publish my wiki graph to my site, and hacked it so that you can click each node in the graph to take you to the corresponding page.

You can find it here, and there’s also a link back to it at the bottom of every page.

A couple of ways I would improve it if I carry on with it:

  • make it more visually appealing and navigable
  • break it up into a map per page, so you get a local map, too. To be seen whether this is a useful sensemaking aid or not. Maybe it would just be another useful navigational aid.

I’ll make a separate post shortly with the technical details of how I got it to work (I’m experimenting a bit with separating the overview from the technical with these things).

I don’t really like likes. On the big silos of the social industry they have become weaponised; a kind of social Taylorism, where the craft of building social relationships has been reduced to unskilled labour – just another way of automating us.

Even on the open web, where they are not designed to distract, likes are still a bit of a weak form of interaction. I think they have their place, but I want something a bit more. Something more than comments below a post, too. They’re a bit constrained – in hock to the main body of text above.

Blogchains

I came across the idea of blogchains the other day, on Tom Critchlow’s blog I believe. The word is from Venkatesh Rao, and the very tl;dr is that it’s a string of short, ad-hoc blog posts that build on a theme. That’s cool, and tied in with a wiki is kind of how I see me builing up ideas over time.

But where the idea gets really interesting (for me) is when it extends to cross-site blogchains and open blogchains. These are more open-ended, involving two or more people conversing and building on a theme, simply by posting to their blog about it and linking the posts together.  Kind of like a webring, but for posts rather than sites.

There’s definitely something to be said for the long-form, turn-based conversation. One of the best conversations I have had recently was a long email chain. And some of the thoughts that have stuck with me the most are ones I’ve written as a long reply to someone else’s open question or musings on a topic.

Hyperconversations

The blogchain thing reminded me of something Kicks wrote about a few months back – hyperconversations. It’s a chat between friends, conducted across blogs and wikis. Less formal than a blogchain – no predetermined theme.

It’s very informal and fluid. It’s completely simple: just leaving messages for each other on our sites.

The Hyperchat Modality

Conversations that last

I think what they’re both getting at, is using social software to have distributed conversations that last more than just an hour or two.

Chris wrote about the temporality of social media.

Taking this a level deeper, social is thereby forcing us to not only think shallowly, but to make our shared histories completely valueless.

Shallow conversations disappear off the timeline and out of our minds pretty quickly. As mentioned, I don’t think this is true just for Twitter and Facebook though. It’s more a problem of the medium.

Relatedly, contemporary fediverse interfaces borrow from surveillance-capitalism based popular social networks by focusing on breadth of relationships rather than depth. […] What if instead of focusing on how many people we can connect to we instead focused on the depth of our relationships?

Spritely: towards secure social spaces as virtual worlds

Not to rag on likes and reposts too much. I do them plenty. There’s a time and place for everything. And I’m not saying that I want to have to sit down and write a 500 word blog post every time I want to say hi to a friend. But! I would definitely like some more conversations that last.

So who’s up for a blogchain, or a hyperconversation?

Getting events out of the silos seems like a hot topic this year, with plenty of IndieWeb and Fediverse activity around it. The COVID-19 pandemic might be changing the nature of events for the foreseeable, but there’s still plenty happening online.

A couple of weeks ago at IndieWebCamp London, Jamie led a session about owning your RSVPs: https://indieweb.org/2020/London/OwnYourRSVPs

Inspired by the session, my day 2 hacking revolved around events and RSVPs. The plan was to try indie-fy my event discovery a bit, and also try and decouple myself from Meetup a little for events there. I want to get a feed of upcoming events that I might be interested in in my social reader, and RSVP to them on my own site.

Continue reading “Indiewebifying events and RSVPs”

I’ve been off social media for a few weeks. I don’t think I really missed it; I don’t think it missed me that much, either. Logging back in to the Fediverse, everything seems much as it was.

I think I’d like to read one of those popsci histories in 20 years from now, of what happened with social software. Like I used to read about the early days of the Internet. Heck, this time I might even know some of the people in the book.

So December was busy. I moved properly into Lancaster. I moved out of London in September and was staying with family for a few months nearby. I am really liking being in Lancaster so far. I am renting a small terraced house for a fraction of the price of a cupboard in London. I feel solvent again. I can see the Lake District from the park. I work from home.

There’s a real alternative culture here in Lancaster I’m finding. I’m joining the makerspace around the corner from me, and I went to an electronic music open mic night that was absolutely banging. There’s like 3 vegan/vegetarian cafes.

There’s a workers co-op in town selling all the hippie produce I tend to buy. There’s a music co-op. There’s an eco co-housing place not too far away. The next town along is Preston, with all its Preston Model shenanigans going on.

The North-West is a wild place if you’re interested in the history of labour and capitalism. And now it’s a bit of a lightning rod of fucked-up late-stage class politics. At least Lancaster is one brick that has stayed red as the Red Wall is falling down.

I feel back to my roots, but I am far from being a Workington Man. Let’s see how things transpire. I want to be close to my family for a while. And while I’m here, let’s make the most of it. To paraphrase the saw – if you can’t change your town, then change your town.

With the monumental fuckup of the recent election, I feel like a local, community focus is the best place to focus and make a difference for the short-term.

What would be ideal, I think, is if all information could be represented as “cards”, and all cards could be easily threaded. Every book, every blogpost, every video, even songs, etc – all could be represented as “threaded cards”. Some cards more valuable than others.

twitter threads solve the fragmentation problem – @visakanv’s blog

I like this idea. It’s a bit like what TiddlyWiki goes for I think. Or FedWiki. Little cards joined together. I’m not getting that so much with my current wiki setup – the finest grain is a page, which I’m thinking is a bit too big. I have quotes, but they’re kind of stuck in a page – not really reference-able outside of that. My thoughts themselves are just a mash.

To some extent however I would like to push back against everything becoming bite-sized. Is every paragraph a self-contained digestible thought? Let’s not lose sight of the long-form idea, the slow-burner. An album is not just 12 singles. But, if cards are a means to forming threads, then that’s OK I think.

(h/t to Kicks for sharing that link)

I’m reflecting on my information strategy and how to improve it at the moment. Here’s the intro post to that, giving a bit of context.

In this particular post I’m going to chat specifically about discovery, AKA using the Intertubes to find out about interesting things. I can’t help but call my strategy for this my discostrat, apologies for that. I’ll talk a bit about how I’ve had it set up for a while, and some recent tweaks I’ve made to it, and maybe some ways I want to improve it more.

Photo by Vale Zmeykov on Unsplash

Continue reading “My Discovery Strategy, v0.2”

I’ve gradually shifted away from Twitter and Facebook over the past few years, migrating to the open alternatives of the IndieWeb and the Fediverse as replacements. I really like them both, both going some way towards providing the things that I want from social media (and being online in general), while removing some of things that I don’t want.

It’s far from perfect yet though. In this post (and more to come probably) I’m reflecting a little bit about my ‘information strategy’ – how to get the stuff I want from the big ol’ world wide web. I am mostly inspired to start on this by reading Ton’s thoughts on information strategies, as well as a vague feeling I have that while I get a lot out of the web, it comes with plenty of pitfalls and its usage can in fact to be to my detriment if unchecked and unmanaged.

As I’m more into the IndieWeb, I guess I’m kind of looking at all this through an IndieWeb lens, but the Fediverse is a bit part of it too for me. Sometimes you hear it referred to as ‘the open web’ as a catch-all.

What I want from the web

I’m totally guilty of being technology-focused (including in this post already…), but I think for reviewing my information strategy it’s better to try to start from a question of ‘where do you get your info from and what do you do with it’ rather than ‘what technology do you use’. So in a really high-level sense, what I want to get from spending time online is:

  • discovery (finding out about interesting things)
  • writing & reflection (producing not just consuming, posting publicly about things I’ve read or seen, and having to think about it before I do)
  • discourse & learning (getting others’ perspective on things, having my horizons expanded and my views challenged)
  • relationships: I think the ‘social’ part of social media should mean forming long-lasting bonds with people, not just being ephemeral blips on each others’ radars

I also want to give back and contribute to a healthy ecosystem – so I want to share helpful information with others, and contribute to others’ discussion and reflection. Good info is good praxis.

What I don’t want

I want to spend my time well, basically. With intention.

So that means avoiding:

  • staring at a screen excessively, doing the zombie scroll of doom trying to get the next hit of information or interaction
  • FOMO
  • information overload
  • filter bubbles
  • feeding of corporate beasts

Discostrat

This post originally also included me delving into my discovery strategy, but with the preceding waffle it started to become a huge post, so I’ve farmed off the discovery bit into a separate post – coming soon (UPDATE: here it is).

I also hope in upcoming posts to think out loud about the other pieces – of ‘reflection’, ‘discourse’ and ‘relationships’. I’m assuming this will all evolve over time, too, so they might actually be different topics by then. Which is where personal knowledge management and a wiki comes in, but that’s also for another day…

Yesterday was the Festival of Maintenance in Liverpool. I went along and thoroughly enjoyed it. Lots of interesting talks and nice people. The theme was basically the maintenance of things, sometimes purely engineering-focused (e.g. bridges and potholes and data), and sometimes with a pretty lefty alternative economics, post-growth, social care focused thread running through it too.

It was at The Fashion Hub, a really awesome space in the old fashion district of Liverpool, with the excellent DoES makerspace just upstairs.

It was chock full of interesting things. I have loads of notes that I hope to digest and probably microblog about over the coming days, but a quick note of a few themes that formed for me:

education

Students need to learn more about maintenance and repair, not just how to make new things. Tom of Holland mentioned how textile repair used to be in most textbooks, but no more. Civil engineer Mujib Rahman mentioned how students come into university wanting to know how to build things, and with less interest on how to maintain things.

maintenance as care

I’ve thought before how social care can be kind of be seen as a form of maintenance in a fairly abstract sense. But I liked the point made by Juliet Davis about how maintaining something for someone can be seen as an act of care for the person, too.

patterns of maintenance

Common themes seemed to arise throughout the day – e.g. the importance of monitoring in maintenance. Chris Adams mentioned during the panel discussion that a pattern language of maintenance could be a useful resource – I agree. The ODI have just released their pattern catalogue of collaborative data maintenance, but there could be scope for a general pattern catalogue of maintenance techniques and considerations.

I’ve been reading through the first chapter of The Little Schemer, and following along in Emacs (specifically: spacemacs).

I jotted down a few notes on getting set up to do this.

First off you’ll need to install a Scheme implementation. There’s a few of them out there. This Reddit thread has some useful discussion on the pros and cons of each of them.

As I’m on Linux and using Emacs, I went with Guile.

To install on Linux Mint, you just need:

sudo apt install guile-2.2

At this point, you could simply fire up Guile and work within the REPL there, if you wanted.

I want to write my Scheme in Emacs, and then send it to the REPL from there. The preferred Emacs package for that seems to be geiser. In spacemacs, geiser comes included with the scheme layer, so all you need to do is add that layer into your config and you’ve got geiser (and some other handy scheme bits and pieces).

Once you’re in a scheme file, run M-x run-geiser, choose guile from the dropdown, and that’ll start up the Guile REPL and allow you to send parts of your file to it for evaluation. C-x C-e for example will send the sexp before the cursor.

I’ve just gotten ProtonMail email working in mu4e in emacs via IMAP, with ProtonMail’s Bridge application and mbsync.

Most of these moving parts are new to me, so I’m not sure if what follows is 100% accurate or correct. But in case it’ll be of help to others (and to me in 3 months) here are the steps I needed and the resources I used to get it up and running.

ProtonMail Bridge

To get an IMAP client working with ProtonMail, you also need to set up a separate app called Bridge. I haven’t looked that much into the nitty-gritty of it, but I think the main point of Bridge is to keep the end-to-end encryption when using ProtonMail with IMAP – i.e. so the encryption continues all the way until it reaches your mail client. I think Bridge functions as a local IMAP server (and SMTP server) that you point your client apps at, and Bridge does all the encryption/decryption locally before communicating with ProtonMail’s servers.

To be honest, given the caveats around the utility of ProtonMail’s encryption (e.g. that it only really works end-to-end if it’s two ProtonMail users communicating), setting up the Bridge is a bit of an extra annoyance that I imagine would put plenty of people off. But anyway kudos to ProtonMail for making it so at least you can use IMAP.

It’s probably not too hard to set up on Windows or MacOS. But the Bridge app on Linux is beta, so it’s a bit extra work. You have to email ProtonMail to get access to it first of all, then they send you a bunch of instructions to set it up. On Debian derivatives, it’s basically just installing a deb file, but first with a bunch of steps for verifying the provenance of that deb.

Then you run ProtonMail Bridge and set up your account in there, same as on the other platforms. That’s easy enough.

mbsync

So that’s all fine and dandy. Next step is to point your IMAP client at ProtonMail Bridge. There’s instructions on the ProtonMail site for using Thunderbird with Bridge on Linux, which is probably the easiest next step if you’re happy to use Thunderbird.

I wanna use mu4e in emacs though. Because emails are predominantly text, and anything involving a fair amount of text manipulation I would prefer to do in emacs.

So to use mu4e, you need your emails in Maildir format. I don’t know much about what this is. From what I’ve seen I’m guessing a file-based, Unix-y way of storing mail. Possibly better/more efficient, possibly just historical intransigence. I dunno.

mbsync is a utility to sync between IMAP and Maildir. I gotta say, any project still knocking around on sourceforge I immediately expect to be dead as a dodo. But mbsync kept on coming up when coming across recent-ish reddit posts about ProtonMail and IMAP, so it seems to be an OK choice for the syncing. Another option is offlineimap.

On Mint, I installed mbsync with:

sudo apt install isync

So then you need to configure mbsync to point at an IMAP server, and to map your IMAP folders to your Maildir folders. This goes in your .mbsync config file.

This reddit post has a handy minimal guide of how to set up your mbsync config… or at least it would, if it hadn’t been posted on ghostbin and ghostbin hadn’t gone kaput. Luckily though someone made a copy of it in a gist on github.

I’ll copy it here too for posterity:

IMAPAccount protonmail
Host 127.0.0.1
Port 1143
User USERNAME_HERE@protonmail.com
Pass PASSWORD_PROVIDED_BY_BRIDGE
#Alternatively you can enter a command to retrieve your password
#PassCmd "gpg2 -q -d ~/.authinfo.gpg | awk 'FNR == 1 {print $8}'"

SSLType NONE

IMAPStore remote
Account protonmail

#You can change .mail to something else
MaildirStore local
Path ~/.mail/
Inbox ~/.mail/INBOX/

Channel inbox
Master :remote:
Slave :local:
Patterns * !"Drafts" !"All Mail"
Create Slave
#Expunge Both
SyncState *

Group protonmail
Channel inbox

I actually got an error with that as is, something about unknown section keyword 'SSLType'. You need to delete the blank line before SSLType NONE.

I also found a different .mbsync that was helpful, posted on pastebin. Copying below:

IMAPAccount protonmail
Host 127.0.0.1
Port 1143
User YOURMAILHERE
#Here you enter a command to retrieve your password
PassCmd "gpg2 -q -d ~/.authinfo.gpg | awk 'FNR == 1 {print $8}'"
SSLType NONE
#SSLVersions SSLv3
#SSLVersions SSLv3
#CertificateFile /etc/ssl/certs/ca-bundle.crt
 
IMAPStore pm-remote
Account protonmail
 
MaildirStore pm-local
Path ~/.mail/
Inbox ~/.mail/INBOX/
 
Channel pm-inbox
Master :pm-remote:
Slave :pm-local:
Patterns "INBOX"
Create Both
Expunge Both
SyncState *
 
Channel pm-sent
Master :pm-remote:"Sent"
Slave :pm-local:"sent"
Create Both
Expunge Both
SyncState *
 
Channel pm-trash
Master :pm-remote:"Trash"
Slave :pm-local:"trash"
Create Both
Expunge Both
SyncState *
 
Channel pm-spam
Master :pm-remote:"Spam"
Slave :pm-local:"spam"
Create Both
Expunge Both
SyncState *
 
Group protonmail
Channel pm-inbox
Channel pm-sent
Channel pm-trash
Channel pm-spam

This one has a few other folders mapped, and with a pm prefix, which is probably useful if you’re also syncing other accounts (but maybe there’s a better way of doing that).

I don’t know what Create, Expunge, and SyncState do.

Once configured, you should be able to sync with

$ mbsync protonmail

At this point we should be able to read emails in mu4e.

mu4e

I’m using spacemacs, for which there’s a mu4e layer, so I just added that to my list of active layers in .spacemacs config. This promptly gave an error when refreshing the config, something to do with maildirs. Commenting out the line

mu4e-maildirs-extension

in .emacs.d/layers/+email/mu4e/packages.el sorted it out. Haven’t looked into exactly what it does, so will have to go back and figure out some other solution at some point.

OK, now I could start mu4e with M-x mu4e… and got another error:

error in process sentinel: Database empty; try indexing some messages

Don’t know why, but running:

mu index --maildir=~/.mail

sorted that out. And mu4e worked, woohoo!

smtpmail

To also send mail via ProtonMail from within mu4e, a bit of extra config is needed for the smtp side of things.

The previously mentioned ghostbin/gist had all the details for that, copying again:

Create a file ~/.authinfo with the following contents:

machine 127.0.0.1 login USERNAME_HERE@protonmail.com port 1143 password PASSWORD_PROVIDED_BY_BRIDGE
machine 127.0.0.1 login USERNAME_HERE@protonmail.com port 1025 password PASSWORD_PROVIDED_BY_BRIDGE

This should be secured so the password isn’t included in plaintext in the authinfo file, there’s more info on that in the gist.

Note that the email domain doesn’t need to be protonmail.com – I used my custom domain and it works fine.

mu4e config

The same mini-tutorial also has some handy (and I think required) mu4e config:

(setq mu4e-maildir "~/.mail"
    mu4e-attachment-dir "~/downloads"
    mu4e-sent-folder "/Sent"
    mu4e-drafts-folder "/Drafts"
    mu4e-trash-folder "/Trash"
    mu4e-refile-folder "/Archive")

(setq user-mail-address "USERNAME_HERE@protonmail.com"
    user-full-name  "YOUR_NAME")

;; Get mail
(setq mu4e-get-mail-command "mbsync protonmail"
    mu4e-change-filenames-when-moving t   ; needed for mbsync
    mu4e-update-interval 120)             ; update every 2 minutes

;; Send mail
(setq message-send-mail-function 'smtpmail-send-it
    smtpmail-auth-credentials "~/.authinfo.gpg" ;; Here I assume you encrypted the credentials
    smtpmail-smtp-server "127.0.0.1"
    smtpmail-smtp-service 1025)

Tweaking

With all that, everything seems to be just about working – now I just need to get used to using mu4e. But I’m liking it already – much quicker to navigate around emails and to write responses.

I also need to figure out if all of the mbsync mappings are correct, for things like Archives, Spam and Trash folders.