Friction

I keep telling myself: if only there was zero friction in the act of writing — if thinking and writing were somehow almost the same, say — I’d write more frequently, and people in general would as well. I’d like to have better input methods than the ones we have available, in particular when I’m on my phone. I find writing on the phone awkward and at times frustrating to the point I want to give up. Perhaps this is because I’m not young enough to have grown up with touch interfaces around me, or perhaps it’s because I know how pleasant it is to touch type on a “proper” keyboard, to which extent the keyboard can almost disappear when you get into a groove.

Friction is also the reason why I spent some time choosing the “right” blogging engine and writing scripts to make writing and publishing posts “easier” (for my definition of easier). In a sense this is part of my personality; I try to automate or polish away any friction because I find it annoying, and I want things to be simple and regular in the day to day. This is how I ended up with a job in IT; it was part of wanting to know how computers and networks work, part being lazy and having the impulse to automate away friction. It turns out these are assets and enough to land you a job. But it can also become yet another form of procrastination. In programming lingo, yak shaving.

2019-01-26

TODO for tomorrow:

  • Study Machine Learning for four hours — it’s quite a bit but I need it to attend a workshop next week.
  • Put one Pomodoro of work into a short story idea I came up with today.

It’s hard to write — I’ve been meaning to write here for close to ten days but I never seem to get round to it. I travelled, I then had lots of work, I felt tired. Of course these are excuses to a point, but I hold no grudges against me I guess; it’s just kind of hard. Although I do find the time to brush my teeth and take showers, so perhaps I should find the time to write for just five minutes or so a day. It’s just trying harder.

Now I’ve had the idea of titling my posts after the date in which I write them, and keep an actual sort of diary here. I know, it’s not a new idea at all, that’s essentially what a blog is, but up to now I had thought about this blog as more of a collection of ideas and random occurrences than an actual diary in this structured sense.

Minsky’s Society of Mind

I just started reading Marvin Minsky’s “Society of Mind”. It’s a classic in the field of AI, from what I’ve read about it. I’ll try to post notes and potentially commentary about it in this page.

One thing I like so far is that it does not shy away from touching on the most philosophical or profound, and sometimes mentions the Big Questions — although it also makes it clear that answering those is not in scope for the work, and may even be impossible.

The agents of the mind

Minsky characterizes the mind as essentially a distributed system made of simple parts that run simple programs — agents. Agents can be subordinate to others, which yields a tree (he implies there’s some further interaction that could turn this into a graph, but doesn’t go into much detail for now). I liked how he pointed out that every agent, and in particular the base ones, should be simple; if one ends up with an agent that seems “smart”, one has only succeeded in hiding consciousness/intelligence in yet another black box.

Easy things are hard

This part is classic; I’ve gotten the same idea from elsewhere (perhaps Wikipedia, perhaps some talk) so it’s become sort of canon (or a cliché?). The core idea is that one tends to underestimate the complexity of things that are relatively intuitive, like movement, and overestimate others like analytical thinking. Many intuitive behaviours are actually the crystallized form of a very complex behaviour that one acquired (in many cases painfully) during childhood. This also goes for basic reasoning that one now thinks about as “common sense”.

Conflict and bureaucracy

He points out further that the agent tree is shaped in many forms like a human bureaucracy — say, a company. The implied hierarchy of agents has a part in resolving conflict. He also makes a case of pointing out that the reader is probably part of such a bureaucracy, and is thus another sort of agent:

Which sorts of thoughts concern you the most - the orders you are made to take or those you’re being forced to give?”

Memory

Memory is the base for cooperation between agents; when “on the same level” agents collaborate on something (which requires a sort of graph, as mentioned above), memory comes into play. It basically seems to store parameters for the agents that have to run.

German

German is harder than I thought it would be. Sincerely, I think at some level I honestly thought I’d just pick it up without having to study it properly — that was the case with English, and I reasoned (dumbly, I know now) that it couldn’t be much harder now that I knew English and had that as a base.

Of course, I learnt English when I was younger. And I did study it properly (academy and all) at some point, although I knew reasonable English before then (or so I believe). And German is more complex — it just is, with its declensions and word chains and what seem like many (too many?) grammar rules.

It could be simpler, that’s for sure. It feels as like its historical speakers just weren’t that interested in simplification. Latin speakers did — romance languages are simpler than Latin. Declensions were dealt with by late Latin speakers and were replaced with a relatively easy to grasp (to me anyway, and of course I’m biased, but to some linguists surely as well) set of propositions. Alemannic speakers, on the other hand, were just a bit too earnest and decided to keep with the old ways. Now I have to deal with it. Eventually.

Gwern

I’ve been reading this site on and off for a few years now. I don’t know much about the author, but I do know by now that:

  • He is active in lesswrong/the rational wiki, home of a bunch of weird people and Roko’s Basilisk.
  • He is into statistics and self-experimenting.
  • He seems like a very curious person. Representative of their general curiosity is their list of Open Questions.
  • His writing shows up in Hacker News often.

The site has several very long form studies, with good statistical analsys, on a wide variety of topics. The author has done self-studies on Dual N-Back (a technique that may improve working memory/IQ, although it sounds too good to be true) and nootropics (chemicals that may improve cognitive function).

About his gender: he volunteers a physical description as a ‘man’ in their Nootropics page, so I think it’s fine to talk of them as a man even if the name is regarded as a pseudonym in his Wikipedia entry — which apparently he wants to delete because of not being notable enough.

I think Gwern is interesting to me regardless of the quality of his writeups because he has interests that I would call similar to mine, and seems willing and able to go arbitrarily deep into any of them — whereas I’m more of a superficial and chaotic person. I wonder if the ability to go deep on topics is a personality trait, or just general intelligence. I feel like I’m more of a creative person usually (that’s how I’d like to describe myself), but perhaps a creative person is sometimes just someone that is not smart enough to discard bad ideas, or has enough drive and focus to research and find that they are not that original after all.

Hotels

Disclaimer: this post may be a bit cringey because it’s about privilege and how I experience it. Talking about privilege is a tricky thing, and a bit uncomfortable for all parties involved — at least when they are self aware, and I try to be that. In general I try to recognize how privileged I am, which in most respects just means I’m lucky. I don’t buy into the biased capitalist story that makes privilege — or its proxy, success — a manifestation of willpower or specialness. Having said that, I apologize if I miss the mark and end up sounding out-of-touch, here and elsewhere.

Staying in hotels is really a pretty good way of life. But in many ways it’s also a terrible thing, because it means that yet another activity that is reserved only for those with spare money is great — and that’s pretty much a constant in capitalist society. Money is a way of making sure your experiences are as good as they can be, which is essentially what all living beings care about the most. Sometimes “as good as they can be” means “it’s unlikely something will eat or kill you tomorrow” and sometimes it means “you’re in a place where you’re relaxed and you can do pretty much what you want, and tomorrow things will revert to a known-good state — don’t worry about the bed or tidying up, that stuff just happens”.

Of course in reality that stuff doesn’t “just happen” — we all know it, but it’s easy not to think about it at times, in particular when you’re travelling and focusing on the great things around you. A maid, very often underpaid — in the sense not paid enough to be able to afford the same lifestyle you’re experiencing, perhaps ever — does it for you. This is again capitalist society at its purest. The maid provides a service that is very much at the core of the value that hotels give, and yet who gets most of the money you give to hotels? The company that owns the hotel, and not the maid; the owner of the real estate, which is in a way the means of production, and not the workers that are onsite — maids, clerks, sometimes waiters and cooks. What the hotel machine (the building, and the people that work in it) produces is the experience of being in a hotel.

Today we walked through Málaga with a friend, we drank coffee, we ate well. L. worked on a university task for a while. I took a nap. I thought I would write if I had the time, and now I’m doing it. It’s a pretty good way of life. I’d like everybody to be able to have it if they want it.

How to get there? A just society could get there by way of automation; even without perfect automation, if a (big) hotel could work with only very few human employees organizing the work of hundreds of robots, it would probably be a fairer arrangement for the people involved. But what would the maids and the clerks, or the people that would have ended up as maids and clerks, do? Many of the people that seem to oppose the idea of the universal basic income think that people would be bored with their free time, even if a dystopia in which people whose jobs have been automated away just starve is avoided. I like to think instead that such people would, in a sense, stop to exist in a different way; freed from the burden of poverty, most people would be willing and able to pursue other pursuits, and that those would further the quality of life of humankind further. What of the all the potential thinkers and creators that are current maids and clerks? Or the unemployed due to lack of skills that society both considers crucial and failed to give them through education?

Barcelona

We just left Barcelona.

My grandfather was originally from Barcelona; I believe that his family home was in the neighbourhood of Barceloneta. After the civil war he, my grandmother (from the Catalonian country) and their young child (my uncle) left Spain for good and moved to Argentina. This was a two week boat trip back then, as I understand it, and they never went back to Spain together. My grandfather did manage to go back exactly once to see his dying father, that time by plane, and that was it.

I loved visiting my grandparents’ flat when I was a kid. My grandfather was a reserved man, but kind and cultured (is that the proper word, I wonder — there’s probably a better one, one without the layer of pretense, more familiar, but I can’t think of it now). I loved going up to his library and thumbing through his books, some of which became my favourites even before I could read them.

On this train leaving Barcelona for Malaga I thought of an image that I got used to seeing in their home, and that now hangs in my mother’s home. It’s an image of Jesus holding a book that says “Ego Sum Lux Mundi” (I am the light of the world) in Romanic style. It’s pretty well known as far as Romanic icons go — it’s got a name that slips my mind right now, but the internet connection right now is so poor I cannot really search for it in Google. It’s in the National Museum of Catalonia in Barcelona, which is just beautiful, and I saw it a few days ago; I always see it when I visit Barcelona.

My grandfather was, as far as I can tell, not a religious man. I wonder if the image could have belonged to my grandmother, but somehow it seems unlikely; she liked Catalan music and customs, but I don’t remember her having any other historic or cultural objects around. If it was his, I think, perhaps he liked it at least partly because it reminded him of Barcelona and its National Museum in Montjuic. The image comes from a church in the Catalonian countryside and was there until the early 20th century, but must have been in the museum already when my grandfather visited it.

In some ways I’m probably the way I am (a bit bookish, a bit reserved) because of how my grandfather was. Unfortunately my grandfather was, according to accounts I’ve gotten since he died, a bit of a male chauvinist. He thought women belonged at the side of a husband, and didn’t support my mother and her plans to continue her education even after they had supported my uncle’s. I like to think that he was this way because he was a product of the society he was raised in, and the education he got, and that he would have perhaps even become a different person if he were around now. But he died around in 1993, so I’ll never know.

A Chrome extension I want

I sometimes go on internet reading binges in which I branch out into what end up being hundreds of tabs. As I mentioned earlier, I have a sort of Wikipedia addiction, which doesn’t help.

I’d like to have a Chrome extension that lets me analyze my browsing history and get insights from it; perhaps even further suggested reading based on the most productive reading patterns detected.

As an example data point, I’ve just followed the following path in browsing, starting with a link to Wikipedia in Hacker News:

Kuleshow Effect -> Uncanny Valley -> Mirror Neuron -> Common Coding Theory

This is a representative example of a short but interesting (to me) reading session; exposing other similar reading flows to me would be useful. I guess my writing about this flow here is a very basic, relatively low tech version of sharing this flow with the world; it would be interesting if millions of people would voluntarily do this, in a lower effort kind of way (like installing an extension and whitelisting some sites that one reads through thoroughly). Google, Microsoft and Mozilla probably have a good chunk of this information already through their browsers (not sure, I don’t know what their default settings all are), but as far as I can tell it doesn’t get exposed to the world except through things like Google’s ranking algorithm and search autosuggest.

Anyway, I searched for an extension with this functionality for a while and I think Brancher may be pretty close to what I want. I’m unsure about their privacy policy, though — the site mentions that they show all flows in their “trending” section by default, which is a bit worrying to me; I’d be much more comfortable with whitelisting, say, wikipedia.org and whatever comes out of visiting a link in news.ycombinator.com. I will probably update this post with more information after giving it a try.

Edit (2019-01-12): I’ve removed Brancher. The implementation seems solid, and I liked their tree-based visualizations, but it felt a bit too creepy for my taste. It seems as if initially it defaulted to “all private” mode, in which every browsing “tree” and every bit of browsing information was kept private by default — makes sense to me. But recently they’ve changed their settings so even in private mode your browsing shows up in a “trending” section. They say that all Personally Identifiable Information is removed from your browsing before they do so, but they don’t say how they do this as far as I can tell, or even exactly what it means (what do they consider PII?). Companies have a history of leaking confidential information even after being anonymized, even bigger companies such as Netflix2, so I’m not ready to trust a random company with this data. My ideal extension would probably be something like Brancher but with a 100% offline mode.

Nikola

This blog is built with Nikola, a Python-based static blog/site generator in the spirit of the more well known Ruby-based Jekyll. It’s my first time using it ever, and my first time setting up any kind of internet facing website for some time. I’m liking it so far — it doesn’t get in the way much, and I can tailor the writing experience as much as I’d like. This is what the overall setup I ended up with looks like:

Setting up Nikola

Pretty straightforward:

$ pip3 install nikola
$ mkdir blog
$ cd blog
$ nikola init

nikola init asked a few questions about the blog (address, title, etc.). It also offered the option to set up a comment system and I chose disqus, although I expect I won’t be getting much in the way of comments anytime soon.

After this, you’ll get a blog root with the following interesting files:

  • conf.py, where all the blog configuration lives. You’ll need to change this to switch themes, etc.
  • posts/, a directory where each file will result in a published post (unless marked as a draft). Posts can be written in reStructuredText (which is the default) or a variety of formats. I use Markdown.
  • pages/, a directory where each file will result in a one-off page in the resulting site. Pages need to be added to a map in conf.py too.

Writing posts and keeping the blog updated

You can create a post by running nikola new_post in the blog root. But you can also just create a new .md or .rst file in the posts/ directory, as per the above.

After each change, the blog must be rebuilt with nikola build. This updates the static version in output/. Then, changes may be deployed to the configured web root (specified in conf.py, same as as everything) with nikola deploy.

I’m lazy so I ended up writing a wrapper that just rebuilds and redeploys the whole thing when something changes:

cd /home/$USER/blog
when-changed conf.py pages posts -c 'nikola build && nikola deploy'

when-changed is a Python util based on inotify, installable with pip3 install when-changed.

I then added the resulting script as a service to systemd to make sure it’s always running in the background.

Serving the static pages

As mentioned above, nikola deploy deploys the static content to the web root (/var/www/blog), which nginx then dutifully serves in flancia.org.

This blog is HTTPS only, so I set up a redirect for port 80 in nginx. I’m using letsencrypt for the HTTPS certificate.

That’s it, nothing fancy here.

Ancillary stuff

  • I use git for versioning posts and the blog scaffolding required by Nikola. I push it to a private gitlab repository from time to time as a way of backing up and being able to also write posts easily when I don’t have an internet connection.
  • I use vim for writing posts. It’s old school, but I’m still the happiest writing in vim — and in particular editing in vim. For some reason I really enjoy using vim and I otherwise don’t use it for writing nowadays, as most of my writing at work is based on Google Docs. Being able to base my writing experience on vim was the main driver towards going the full geek approach instead of using something like Wordpress or even Medium.
  • I wrote a sort of throwaway parser in Python to port my previous private diaries/idea dumps from a set of loosely structured monolithic Google docs to individual Markdown posts. I need to translate, edit and censor them, though, which is going to be the bulk of the work if I ever go that way (I’m still partially unsure about the kind of things I would like to write about here), so writing this script may have been yet another exercise in procrastination in a sense. At least it was fun.

All this is running in a $10/mo. micro dedicated server. Seems to work well enough.