her.esy.fun/src/posts/0004-how-i-internet/index.org

324 lines
11 KiB
Org Mode
Raw Normal View History

2019-09-16 09:42:49 +00:00
#+TITLE: How I Internet
2019-09-27 14:43:43 +00:00
#+SUBTITLE: Some unexpected consequences of self-hosting
2019-09-16 09:42:49 +00:00
#+AUTHOR: Yann Esposito
#+EMAIL: yann@esposito.host
#+DATE: [2019-09-23 Mon]
2021-04-27 13:21:06 +00:00
#+KEYWORDS: blog self-hosting web zen minimalism
2019-09-16 09:42:49 +00:00
#+DESCRIPTION: How I protect myself against attention grabbers and many social media anti-patterns.
#+OPTIONS: auto-id:t
#+begin_notes
TL;DR: Self-hosting is not only about controlling your data, it also influences
how you consume Internet for the best.
2019-09-16 09:42:49 +00:00
- I /POSSE[fn:posse]/; Publish Own Site, Syndicate Elsewhere:
2019-09-27 14:43:43 +00:00
+ I own my data, I self-host my blog, notes, my repositories, my bookmarks, etc...
2019-09-16 09:42:49 +00:00
+ I use espial[fn:espial] for self-hosted bookmarks and notes
+ I use note-red[fn:node-red] to publish my blogs, bookmarks and notes to
twitter, sync bookmarks with pinboard[fn:pinboard]
- Enhance not only publishing experience but consumption of Internet
+ read Digital Minimalism[fn:dm]
+ Control notifications
+ Control real-time interactions
2019-09-16 09:42:49 +00:00
#+end_notes
2019-09-25 10:11:24 +00:00
The way we use Internet as changed drastically in a few years.
A popular meme about it states:
2019-09-25 10:11:24 +00:00
#+begin_quote
- toilet ⇒ 5min
- toilet + smarphone ⇒ 55min
#+end_quote
2019-09-25 14:31:47 +00:00
The book Digital Minimalism[fn:dm] is really insightful on the subject.
2019-09-27 13:55:58 +00:00
In particular the apparition of attention grabbing features that target our
"social brain".
2019-09-26 10:54:35 +00:00
One solution to protect ourselves from the problem generated by these
platforms would be to get rid of them.
But those platforms are useful.
2019-09-26 10:54:35 +00:00
My current[fn:1] personal solution is to keep the useful features of these platforms while
minimizing my exposition to most /anti-features/.
2019-09-26 10:54:35 +00:00
Everything starts by how I produce content.
It then affects how I consume Internet.
2019-09-19 21:36:20 +00:00
[fn:posse] https://indieweb.org/POSSE
2019-09-16 09:42:49 +00:00
[fn:dm] http://www.calnewport.com/books/digital-minimalism/
2019-09-19 21:36:20 +00:00
[fn:espial] https://github.com/jonschoning/espial
[fn:node-red] https://nodered.org
[fn:pinboard] https://pinboard.in
2019-09-26 10:54:35 +00:00
[fn:1] Writing this article helped me to improve a lot my workflow, and
I will continue to make my Internet usage evolve for a long time.
2019-09-16 09:42:49 +00:00
* Producing
:PROPERTIES:
:CUSTOM_ID: producing
:END:
2019-09-27 14:43:43 +00:00
I self-host many services.
2019-09-25 08:19:30 +00:00
I control my data, and then I broadcast those info to different platforms.
This is called POSSE[fn:posse].
2019-09-27 14:43:43 +00:00
** Articles: self-hosted blog
:PROPERTIES:
:CUSTOM_ID: self-hosting
:END:
First thing the classical /blog/.
It is more and more common now, to simply use micro-blogging, or commenting.
I think blog article format is important.
It is a longer form than a comment or a tweet.
But in the same time, it is not necessary to work on it as hard as for a
journal article.
2019-09-25 08:19:30 +00:00
I wrote an [[file:new-blog.org][article]] that explain the technical details behind my blog.
It also describes how I try to make it /respectful/.
2019-09-27 14:43:43 +00:00
To self-host anything, you should buy a domain name, and configure you DNS
correctly.
That is certainly the biggest blocker for non technical people.
** Code: Git Broadcast
:PROPERTIES:
:CUSTOM_ID: git-broadcast
:END:
I self-host the code of my open-source projects.
As Github is the de-facto developer social network, it is easier to find
contributor on Github than on your self-hosted repository.
Thus I sync my repositories between my self-hosted instance and GitHub.
If something goes wrong with Github, I could easily switch to my self
hosted repositories only.
This is how I configured my git repos to push to multiple URLs:
#+begin_src
git remote set-url origin --push --add <remote-url>
git remote set-url origin --push --add <another-remote-url>
#+end_src
** Bookmarks: Espial
:PROPERTIES:
:CUSTOM_ID: espial
:END:
I also wanted a tool to keep track of web pages I like and might want to
keep track of.
2019-09-27 14:43:43 +00:00
For that, I self-host [[https://espial.esy.fun/u:yogsototh][espial]][fn:espial]; an open-source, web-based
bookmarking server.
2019-09-25 08:19:30 +00:00
It is a very easy to install, this is a single binary.
Your bookmark are kept in a single sqlite file.
This is perfect if you want to keep a lot of bookmarks some private some
2019-09-25 08:19:30 +00:00
public.
But as well as I use espial I plan (I haven't done it yet) to synchronize
my bookmark from espial[fn:espial] to pinboard[fn:pinboard].
** Notes: Espial
:PROPERTIES:
:CUSTOM_ID: notes--espial
:END:
Another feature provided by espial[fn:espial] is the ability to save [[https://espial.esy.fun/u:yogsototh/notes][notes]].
2019-09-25 08:19:30 +00:00
You can generate public or private notes.
I intend to use those notes for my "micro-blogging" needs.
Useful, for just making some short remark without investing in a full blog
post.
** RSS for articles, bookmarks, notes
:PROPERTIES:
:CUSTOM_ID: rss
:END:
2019-09-25 08:19:30 +00:00
It is important for me to provide RSS feeds.
People should know when I update my content.
2019-09-25 08:19:30 +00:00
So my blog, bookmarks and note generate RSS feeds[fn:espialpr].
2019-09-25 08:19:30 +00:00
[fn:espialpr] [[https://github.com/jonschoning/espial][espial]] is written in Haskell, and I made a few pull requests to add RSS
feeds of my public bookmarks as well as an RSS feed for my public notes.
** Syndicate Elsewhere: node-red
:PROPERTIES:
:CUSTOM_ID: node-red
:END:
2019-09-16 09:42:49 +00:00
2019-09-25 08:19:30 +00:00
With those RSS, it is then quite natural to syndicate elsewhere.
For that I use node-red[fn:node-red].
2019-09-20 13:05:56 +00:00
2019-09-25 08:19:30 +00:00
This is a web-based tool that make it easy to write /flows/.
Think about it like a super IFTTT.
2019-09-20 13:05:56 +00:00
2019-09-25 08:19:30 +00:00
To give you an example, each time I save a new public bookmark, a new blog
post, a new note, I tweet it.
2019-09-20 13:05:56 +00:00
* Consuming
:PROPERTIES:
:CUSTOM_ID: consuming
:END:
Since I generate my content using my own, self-made environment, it also
2019-09-26 10:54:35 +00:00
influenced me for the best the way I consume and interact on Internet.
2019-09-25 08:19:30 +00:00
2019-09-26 10:54:35 +00:00
Before I used to read a lot of /news/ directly from my smartphone.
Most of the time using many apps dedicated to some social networks.
2019-09-25 08:19:30 +00:00
The natural presentation is an infinite scroll of content, with buttons to
engage in the social network with likes/upvotes/comments etc...
Most of the time, notifications where enabled by fear of missing a comment
or any kind of interaction.
2019-09-20 13:05:56 +00:00
2019-09-25 08:19:30 +00:00
Before explaining how I consume Internet news, I like to make a short
digression:
#+begin_quote
By writing this article I realized that, I mostly consume Internet content
via *news*.
2019-09-26 10:54:35 +00:00
More than that, now, Internet is almost synonymous to news on the Web.
2019-09-25 08:19:30 +00:00
Which is only a very small part of the Internet.
Consuming news via a social networks makes you a lot more passive.
I can remember being a lot more active on the Internet just a few years
ago.
2019-09-25 08:19:30 +00:00
This is something to keep in mind I think.
2019-09-26 10:54:35 +00:00
I will certainly write an article about that in the future.
2019-09-25 08:19:30 +00:00
#+end_quote
Here is how I consume Internet content now.
** News
:PROPERTIES:
:CUSTOM_ID: news
:END:
My entry point to news consumption are:
2019-09-20 13:05:56 +00:00
- highly selected RSS sources (for example HN posts with > 500 upvotes)
- [[https://lobste.rs][lobste.rs]]
- [[https://pinboard.in/popular/][popular pinboard.in bookmarks]]
2019-09-25 08:19:30 +00:00
- very few sub-reddit with small volume
2019-09-20 13:05:56 +00:00
- [[https://laarc.io][laarc.io]]
- [[https://fermatslibrary.com][Fermat's Library newsletter]]
I plan on generating RSS from those different sources with "smart filters".
Typically number of upvote filters for lobste.rs, laarc.io, sub-reddits,
but also number of bookmarks in popular pinboard, etc...
My preferred /Internet consumption environment/ is elfeed[fn:elfeed] inside Spacemacs.
2019-09-20 13:05:56 +00:00
I really enjoy staying inside emacs as much as I can.
This is a clean, dense, text-oriented environment.
I also use elfeed-org[fn:elfeed-org] to organize my feeds and I also take care to remove
2019-09-20 13:05:56 +00:00
feeds with too much volume.
Generally we shouldn't read more than a few articles a day.
[fn:elfeed] https://github.com/skeeto/elfeed
[fn:spacemacs] http://spacemacs.org
[fn:elfeed-org] https://github.com/remyhonig/elfeed-org
2019-09-20 13:05:56 +00:00
** Mail
:PROPERTIES:
:CUSTOM_ID: mail
:END:
2019-09-25 08:19:30 +00:00
Most of my notifications go through my email.
Social network notifications are moved inside a dedicated folder and are
not directly present in my inbox.
2019-09-20 13:05:56 +00:00
I check my social notifications once in a while.
2019-09-25 08:19:30 +00:00
So if you are waiting for an answer, sorry for the late reply, it might
take a while.
2019-09-20 13:05:56 +00:00
** Github
:PROPERTIES:
:CUSTOM_ID: github
:END:
I still get notifications on Github because I use it a lot for my work.
2019-09-25 08:19:30 +00:00
But only via email and the web interface.
2019-09-20 13:05:56 +00:00
So even for Github, I can take a few days to react.
2019-09-16 09:42:49 +00:00
2019-09-19 21:36:20 +00:00
* Conclusion
:PROPERTIES:
:CUSTOM_ID: conclusion
:END:
I described how I control my usage of social networks.
I own my data.
I am a lot less exposed to attention grabbing techniques.
2019-09-19 21:36:20 +00:00
For now I'm quite happy with the system I made, and I'll certainly improve
it in the future by synchronizing more and more services between a
self-hosted one and a social-network one.
2019-09-19 21:36:20 +00:00
I really advice anyone with sufficient tehcnical skills to do the same.
This is really worth your time.
2019-09-19 21:36:20 +00:00
For other people, I know some platform intented to be self-hosted and here
to provide a bunch of services for you.
But having a self made environment also enhance greatly the experience.
And really, self-hosting is still reserved to few people.
2019-09-19 21:36:20 +00:00
2019-09-25 08:19:30 +00:00
I think we could be inspired by espial[fn:espial] to create a simple small platform to
2019-09-19 21:36:20 +00:00
provide those feature to most people.
2019-09-25 08:19:30 +00:00
- ability to blog/micro-blog and syndicate
- ability to publish securely private info to a small group of friends and family
2019-09-26 10:54:35 +00:00
- generate RSS feeds for different groups of people
2019-09-19 21:36:20 +00:00
** Federation
:PROPERTIES:
:CUSTOM_ID: federation
:END:
2019-09-27 14:43:43 +00:00
I think I can say a few words about federated networks like Mastodon.
Somehow, Mastodon replicates the anti-features promoted by Twitter or
Facebook.
2019-09-27 14:43:43 +00:00
Furthermore I don't really like some details about the federation
foundations (ActivityPub).
2019-09-20 13:05:56 +00:00
2019-09-27 14:43:43 +00:00
As an example, I wrote a commenting system that I could easily self-host.
I first intended to use it for my blog.
But after a second though, I'm not sure comments are that positive.
2019-09-27 14:43:43 +00:00
I prefer to edit my articles with comments that people would send to me via
other communication channel, typically, my mail.
2019-09-19 21:36:20 +00:00
2019-09-25 08:19:30 +00:00
** Anti-features
:PROPERTIES:
:CUSTOM_ID: anti-features
:END:
A last note about anti-features.
2019-09-26 10:54:35 +00:00
I call /anti-feature/ a feature that provides very few or no benefit for the
user but provides a lot more benefits to the platform.
Generally it is a feature just here to make you stay on the platform and
2019-09-26 10:54:35 +00:00
many quite talented specialists work on optimizing those.
Most anti-features share the same pattern; they use /spaced random reward/:
2019-09-25 08:19:30 +00:00
#+begin_notes
*Spaced Random Reward*
Typically the few first random gifts in a new downloaded game.
2019-09-25 08:19:30 +00:00
The main way used to /hack/ your brain, is by giving it something he likes
at a random time.
Then you start to give reward with lower and lower probability.
Your brain will then be in a /search mode/ where he will /hope/ to get
another reward by staying a bit longer in the system.
#+end_notes
- *notifications* ; they are here to grab your attention when you are away
doing something else.
- *likes / upvotes / retweets / pokes...* ; those are also /Internet
reward/ but are even stronger because they also target your "social brain".
They reinforce a feeling of social approval.
More than that, we generally fall for most psychological tricks with those
and make our production oriented to short content, memes, etc...
- *infinite scrolling* ; make you brain want to look a bit more, because it
2019-09-25 14:31:47 +00:00
creates a fear to miss something.
2019-09-26 10:54:35 +00:00
- *comments* ; Unlike likes or retweets, comments are a lot more useful,
2019-09-25 08:19:30 +00:00
they can start a discussion. They still have two problems:
1. Public comment are subject to spam, troll, attacks, etc...
2. Generally comments are associated to real-time notifications, and thus
break a slower, calmer, more respectful communication channel. We are
not all meant to react instantaneously.