Recent changes to this wiki. Not to be confused with my history.

Complete source to the wiki is available on gitweb or by cloning this site.

bad macchiatobin review
diff --git a/hardware/server/marcos.mdwn b/hardware/server/marcos.mdwn
index fe6fc247..d32a0a8b 100644
--- a/hardware/server/marcos.mdwn
+++ b/hardware/server/marcos.mdwn
@@ -220,7 +220,9 @@ requirements (8+GB):
 The [Macchiatobin](https://macchiatobin.net/product/macchiatobin-single-shot/) is interesting because it has a DDR4 socket so
 it supports up to 16GB of ram, but has features I don't need for a
 home server, like three SFP 10Gig-E ports... Could still be
-interesting for a SAN if I ever upgrade the network to 10G. 269$-369$.
+interesting for a SAN if I ever upgrade the network to
+10G. 269$-369$. That said, someone on IRC had a very bad experience
+with it: the capacitors were broken and they refused to take it back.
 
 The [Beelink](http://www.bee-link.com/Beelink-MiniPC-TV-BOX-65-1.html) is also interesting: Intel N3450 4GB DDR, 64GB SSD.
 

fix markdown links
for some reason, references don't mix well with `code` blocks,
although inline works. go figure.
diff --git a/services/mail.mdwn b/services/mail.mdwn
index eb68f3d7..c9b8e4e4 100644
--- a/services/mail.mdwn
+++ b/services/mail.mdwn
@@ -291,14 +291,11 @@ fallback, in `main.cf`:
     smtpd_tls_security_level = may
     smtp_tls_security_level = may
 
-See the [`TLS_README`][] and [`smtp_tls_security_level`][] for more
+See the [`TLS_README`](http://www.postfix.org/TLS_README.html) and [`smtp_tls_security_level`](http://www.postfix.org/postconf.5.html#smtp_tls_security_level) for more
 information.
 
-[`smtp_tls_security_level`]: http://www.postfix.org/postconf.5.html#smtp_tls_security_level
-[`TLS_README`]: http://www.postfix.org/TLS_README.html
-
-This patch is required to disable TLS when a [`content_filter`][] is
-configured (see [`FILTER_README`][] and below).
+This patch is required to disable TLS when a [`content_filter`](http://www.postfix.org/postconf.5.html#content_filter) is
+configured (see [`FILTER_README`](http://www.postfix.org/FILTER_README.html) and below).
 
     diff --git a/postfix/master.cf b/postfix/master.cf
     index b0ed875..6329c70 100644
@@ -315,8 +312,6 @@ configured (see [`FILTER_README`][] and below).
              -o myhostname=delivery.anarc.at
      submission inet n       -       -       -       -       smtpd
 
-[`FILTER_README`]: http://www.postfix.org/FILTER_README.html
-[`content_filter`]: http://www.postfix.org/postconf.5.html#content_filter
 Without this patch, local delivery would hang during my tests.
 
 MTA-STS
@@ -453,11 +448,8 @@ address.
                                     reject_rbl_client zen.spamhaus.org
 
 
-In other words, make sure that [`permit_sasl_authenticated`][] is
-added to [`smtpd_recipient_restrictions`][].
-
-[`smtpd_recipient_restrictions`]: http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions
-[`permit_sasl_authenticated`]: http://www.postfix.org/postconf.5.html#permit_sasl_authenticated
+In other words, make sure that [`permit_sasl_authenticated`](http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions) is
+added to [`smtpd_recipient_restrictions`](http://www.postfix.org/postconf.5.html#permit_sasl_authenticated).
 
 Then you need to hook Dovecot SASL authentication into Postfix and
 make sure it is not offered in cleartext:
@@ -616,7 +608,7 @@ References
 ----------
 
  * Koumbit [PostfixConfiguration](https://wiki.koumbit.net/PostfixConfiguration#Postfix_client_SASL_configuration)
- * [`TLS_README`][]
+ * [`TLS_README`](http://www.postfix.org/TLS_README.html)
  * [`SASL_README`](http://www.postfix.org/SASL_README.html)
 
 Delievery and retrieval over SSH

more background on Onyx
diff --git a/hardware/tablet.mdwn b/hardware/tablet.mdwn
index 0acf454c..baf75e58 100644
--- a/hardware/tablet.mdwn
+++ b/hardware/tablet.mdwn
@@ -88,6 +88,16 @@ Otherwise similar to the Glo HD. Retail price around 180$CAD.
 Onyx
 ----
 
+[Onyx][] make all sorts of (e-ink) tablets, from big to small, mostly running
+Android. They [publish some of their source on GitHub][], mostly as a
+"GPL-compliant dump mode", but it's still better than nothing. The
+also have a neat [community forum][]. They are based in China so
+products will ship from there.
+
+[Onyx]: https://en.wikipedia.org/wiki/Onyx_Boox
+[community forum]: http://bbs.onyx-international.com/
+[publish some of their source on GitHub]: https://github.com/onyx-intl/
+
 ### Onyx Boox Max 2
 
 The [Onyx Boox Max 2](https://onyxboox.com/boox_max2) is an awesome creature:

thanks, and response
diff --git a/blog/2019-10-16-bus-factor/comment_2_2391621f66a0297cde17d07316684693._comment b/blog/2019-10-16-bus-factor/comment_2_2391621f66a0297cde17d07316684693._comment
new file mode 100644
index 00000000..57362d77
--- /dev/null
+++ b/blog/2019-10-16-bus-factor/comment_2_2391621f66a0297cde17d07316684693._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="""comment 2"""
+ date="2019-10-17T23:22:00Z"
+ content="""
+Excellent comment and insight, thank you so much for this.
+
+I would only one thing, and it's a thing that someone else mentioned on IRC: they said the problem also exists in their corporate job. And indeed, I feel that, in my corporate experience, there's also strong specialization and the bus factor must be near one.
+
+The difference there is that there are resources (ie. money) to hire and train people when trouble comes...
+"""]]

Added a comment: Audition culture, exploitation, and the failure of "the market"
diff --git a/blog/2019-10-16-bus-factor/comment_1_8e2bfe6b686106ab3ac95eebec23011a._comment b/blog/2019-10-16-bus-factor/comment_1_8e2bfe6b686106ab3ac95eebec23011a._comment
new file mode 100644
index 00000000..2113b268
--- /dev/null
+++ b/blog/2019-10-16-bus-factor/comment_1_8e2bfe6b686106ab3ac95eebec23011a._comment
@@ -0,0 +1,24 @@
+[[!comment format=mdwn
+ ip="37.191.180.161"
+ claimedauthor="Paul Boddie"
+ subject="Audition culture, exploitation, and the failure of "the market""
+ date="2019-10-17T21:31:11Z"
+ content="""
+There's an [interesting comment](https://lwn.net/Articles/801951/) on that LWN article that sums up a lot of the problem here: it is easier for \"open source companies\" to string people along, question people's commitment or expertise, and to have them constantly auditioning for work that they will never be hired to do. And yet, such practices are almost celebrated in certain \"open source\" communities.
+
+What does that have to do with single-developer projects, you might ask? Well, sometimes these projects come about by people following their own intellectual curiosity and sharing the results with others; sometimes these people buy into the folklore about \"scratching itches\"; but often such things are also done so that people can demonstrate competence and to indicate a strong interest in a particular technological domain.
+
+Having code to show can be a very useful thing when trying to further your career, get hired, and so on, provided that the entity doing the hiring can be bothered to take a look at it. But the world being what it is, it can also help to have connections: people who can profess familiarity with you, your work, your collaborative skills, and so on. Unfortunately, unless those people recognise the value of your project, you'll ultimately have to go and work on their projects instead.
+
+(It can happen that people stumble across independent projects and wish to contribute or improve them, and this has even happened with some of mine. It can also happen that people working for large companies are only interested if you change the licence to something permissive so that they can freeload.)
+
+Since another popular \"open source culture\" pastime involves playing the zero-sum game and trying to get other people to abandon their projects and to contribute to yours (recalling a conference where someone practically went round talks telling speakers to contribute to different projects in that person's own portfolio), it is likely that you will end up either sticking it out in the hope that your own projects remain viable or just going with the flow.
+
+Going with the flow means working on something potentially less rewarding than your own projects in the hope that the outcome will generally be more positive. But it risks being like work without actually getting paid for it. People may prefer to just accept that their own projects are regarded as hobbies by everyone else, but at least they might still enjoy them.
+
+Which leads us back to that commenter. It certainly seems that companies promote contribution to their projects as a way of getting hired: if you do enough interning or auditioning, eventually they might reward you with a position. In communications I have had, such things have been implied, suggested or even actually stated: keep up with your efforts and maybe there is an opportunity to be had.
+
+You don't have to be a prize-winning economist to realise that with enough people wanting to get ahead, there is little incentive for that reward to be granted. The eager brushing off of volunteer effort is also a familiar story in the Free Software realm amongst organisations and projects alike.
+
+All in all, you end up with under-resourced independent projects and potentially over-resourced corporate projects with a handful of under-resourced projects somehow managing to get funded by companies who probably wonder when they can get away with de-funding them. This is presumably \"the market\" doing its thing, to hell with the impact it has on the people involved.
+"""]]

s/python/gtk
diff --git a/blog/2019-10-16-bus-factor.mdwn b/blog/2019-10-16-bus-factor.mdwn
index 0558f896..409de6d2 100644
--- a/blog/2019-10-16-bus-factor.mdwn
+++ b/blog/2019-10-16-bus-factor.mdwn
@@ -11,7 +11,7 @@ any of those projects.
 Now that I have a full time job, I feel the pain. Projects like
 [Gameclock][], [Monkeysign][], [Stressant][], and (to a lesser extent)
 [Wallabako][] all need urgent work: the first three need to be ported
-to Python 3, the first two to Python 2, and the latter will probably
+to Python 3, the first two to GTK 3, and the latter will probably
 die because I am getting a new e-reader. (For the record, more recent
 projects like [undertime][] and [feed2exec][] are doing okay, mostly
 because they were written in Python 3 from the start, and the latter

link to more reflections
diff --git a/blog/2019-10-16-bus-factor.mdwn b/blog/2019-10-16-bus-factor.mdwn
index 059926f6..0558f896 100644
--- a/blog/2019-10-16-bus-factor.mdwn
+++ b/blog/2019-10-16-bus-factor.mdwn
@@ -53,7 +53,13 @@ But unless economics of technology production change significantly in
 the coming decades, this problem will remain, and probably worsen, as
 we keep on scaffolding an entire civilization on shoulders of
 hobbyists that are barely aware their work is being used to power
-phones, cars, airplanes and hospitals.
+phones, cars, airplanes and hospitals. A [lot][] [has][] [been][]
+[written][] on this, but nothing seems to be moving.
+
+[written]: https://medium.com/sustainable-free-and-open-source-communities/we-need-sustainable-free-and-open-source-communities-edf92723d619
+[been]: https://www.vice.com/en_us/article/43zak3/the-internet-was-built-on-the-free-labor-of-open-source-developers-is-that-sustainable
+[has]: https://staltz.com/software-below-the-poverty-line.html
+[lot]: https://onezero.medium.com/the-internet-relies-on-people-working-for-free-a79104a68bcc
 
 And if that doesn't scare you, it damn well should. As a user, one
 thing you can do is, instead of wondering if you should buy a bit of

try to fix link and typo
diff --git a/software.mdwn b/software.mdwn
index 41ce91d8..8a77e96a 100644
--- a/software.mdwn
+++ b/software.mdwn
@@ -21,12 +21,10 @@ Je suis impliqué dans le projet [Monkeysphere](http://monkeysphere.info/) qui v
 Feed2exec
 ---------
 
-J'ai écris un lecteur de fils RSS nommé [feed2exec][] afin de
+J'ai écrit un lecteur de fils RSS nommé [feed2exec](https://gitlab.com/anarcat/feed2exec) afin de
 connecter des fils RSS avec n'importe quoi: courriels, Twitter,
 Mastodon, téléchargements, etc.
 
-[feed2exec]: https://gitlab.com/anarcat/feed2exec
-
 Wallabako
 ---------
 

our bus factor is one
diff --git a/blog/2019-10-16-bus-factor.mdwn b/blog/2019-10-16-bus-factor.mdwn
new file mode 100644
index 00000000..059926f6
--- /dev/null
+++ b/blog/2019-10-16-bus-factor.mdwn
@@ -0,0 +1,82 @@
+[[!meta title="Theory: average bus factor = 1"]]
+
+[Two][] [articles][] recently made me realize that *all* my free
+software projects basically have a [bus factor][] of one. I am the
+sole maintainer of every piece of software I have ever written that I
+still maintain. There *are* projects that I have been the maintainer
+of which have other maintainers now (most notably [AlternC][],
+[Aegir][] and [Linkchecker][]), but I am not the original author of
+any of those projects.
+
+Now that I have a full time job, I feel the pain. Projects like
+[Gameclock][], [Monkeysign][], [Stressant][], and (to a lesser extent)
+[Wallabako][] all need urgent work: the first three need to be ported
+to Python 3, the first two to Python 2, and the latter will probably
+die because I am getting a new e-reader. (For the record, more recent
+projects like [undertime][] and [feed2exec][] are doing okay, mostly
+because they were written in Python 3 from the start, and the latter
+has extensive unit tests. But they do suffer from the occasional
+bitrot (the latter in particular) and need constant upkeep.)
+
+Now that I barely have time to keep up with just the upkeep, I can't
+help but think all of my projects will just die if I stop working on
+them. I have the same feeling about the [packages I maintain in
+Debian][].
+
+What does that mean? Does that mean those packages are useless? That
+no one cares enough to get involved? That I'm not doing a good job at
+including contributors?
+
+I don't think so. I think I'm a friendly person online, and I try my
+best at doing good documentation and followup on my projects. What I
+have come to understand is even more depressing and scary that this
+being a personal failure: that is the situation with everyone,
+everywhere. The LWN article is not talking about silly things like a
+chess clock or a feed reader: we're talking about the Linux input
+drivers. A very deep, core component of the vast majority of computers
+running on the planet, that depend on that single maintainer. And I'm
+not talking about whether those people are paid or not, that's
+related, but not directly the question here. The same realization
+occured with OpenSSL and NTP, GnuPG is in a similar situation, the
+list just goes on and on.
+
+A single guy maintains those projects! Is that a fluke? A statistical
+anomaly? Everything I feel, and read, and know in my decades of
+experience with free software show me a reality that I've been trying
+to deny for all that time: it's the average.
+
+My theory is this: our average bus factor is one. I don't have any
+hard evidence to back this up, no hard research to rely on. I'd love
+to be proven wrong. I'd love for this to change.
+
+But unless economics of technology production change significantly in
+the coming decades, this problem will remain, and probably worsen, as
+we keep on scaffolding an entire civilization on shoulders of
+hobbyists that are barely aware their work is being used to power
+phones, cars, airplanes and hospitals.
+
+And if that doesn't scare you, it damn well should. As a user, one
+thing you can do is, instead of wondering if you should buy a bit of
+proprietary software, consider using free software and donating that
+money to free software projects instead. Lobby governments and
+research institutions to [sponsor only free software
+projects][]. Otherwise this civilization will collapse in a crash of
+spaghetti code before it even has time to [get flooded over][].
+
+[get flooded over]: https://en.wikipedia.org/wiki/The_Year_of_the_Flood
+[sponsor only free software projects]: https://publiccode.eu/
+[bus factor]: https://en.wikipedia.org/wiki/Bus_factor
+[articles]: https://who-t.blogspot.com/2019/10/libinputs-bus-factor-is-1.html
+[Two]: https://lwn.net/Articles/801767/
+[feed2exec]: https://gitlab.com/anarcat/feed2exec/
+[undertime]: https://gitlab.com/anarcat/undertime
+[packages I maintain in Debian]: https://qa.debian.org/developer.php?email=anarcat@debian.org
+[Monkeysign]: https://monkeysign.readthedocs.io/
+[Stressant]: https://stressant.readthedocs.io/
+[Gameclock]: https://gitlab.com/anarcat/gameclock/
+[Wallabako]: https://gitlab.com/anarcat/wallabako/
+[Linkchecker]: https://github.com/linkchecker/linkchecker/
+[Aegir]: https://www.aegirproject.org/
+[AlternC]: https://alternc.org/
+
+[[!tag debian-planet python-planet python software debian]]

managed to get bookworm to work, but it's not so nice
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 109c2d3f..b31d0dea 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -115,8 +115,13 @@ Calibre is...
       doesn't seem to), but fails to load certain ebooks (book #1459
       for example)
     * [Bookworm][] looks very promising, not in Debian ([[!debbug
-      883867]]), but [Flathub][flathub-bookworm].  same problems as
-      GNOME books finding my books (ie. it can't).
+      883867]]), but [Flathub][flathub-bookworm]. scans books on exit,
+      and can take a loong time to scan an entire library (took 24+
+      hours here, and had to kill `pdftohtml` a few times) without a
+      progress bar. but has a nice library browser, although it looks
+      like covers are sorted randomly. search works okay,
+      however. unclear what happens when you add a book, it doesn't
+      end up in the chosen on-disk library.
     * [Buka][] is another "ebook" manager written in Javascript, but
       only supports PDFs for now.
     * [coolreader][] is another alternative, [not yet in Debian

add more of the soundcraft line
diff --git a/hardware/audio.mdwn b/hardware/audio.mdwn
index a48b5926..472de8ee 100644
--- a/hardware/audio.mdwn
+++ b/hardware/audio.mdwn
@@ -96,10 +96,18 @@ XLR and 4 stereo in (for 12 mono in). Only the first two lines have
 inserts. Builtin sd-card recorder with, apparently, 14/4 (14 in, 4
 out) USB support.
 
-The [Soundcraft EPM8][] is very interesting: 430$, with two stero
-output buses and inserts on all 8 XLR/TRS lines. No USB, for that you
-need to bump up to the [Signature 12MTK](https://www.long-mcquade.com/54582/Pro-Audio---Recording/Mixers/Soundcraft/Signature-12MTK-12-Channel-Mixer-with-14-in-12-out-USB-Interface.htm) at 730$ that has 14/12
-USB.
+The [Soundcraft EPM8][] is very interesting: [430$ at L&M][], [360$ at
+steve's][], with two
+stero output buses and inserts on all 8 XLR/TRS lines. No USB, for
+that you need to bump up to the [Signature 12MTK](https://www.long-mcquade.com/54582/Pro-Audio---Recording/Mixers/Soundcraft/Signature-12MTK-12-Channel-Mixer-with-14-in-12-out-USB-Interface.htm) at 730$ that has
+14/12 USB. They also have the equivalent [EFX8][] with a built-in
+effects module, [640$ at L&M][], [540$ at steve's][].
+
+[540$ at steve's]: https://stevesmusic.com/en/soundcraft-efx-8.html
+[360$ at steve's]: https://stevesmusic.com/en/soundcraft-epm-8.html
+[640$ at L&M]: https://www.soundcraft.com/en-US/products/efx8
+[EFX8]: https://www.soundcraft.com/en-US/products/efx8
+[430$ at L&M]: https://www.long-mcquade.com/5620/Pro_Audio_Recording/Mixers/Soundcraft/EPM8_-_8X2_Channel_Mixer.htm
 
 Behringer had a bad reputation over a decade ago, and it seems that
 reputation is still around. They do provide a cheap alternative
@@ -122,7 +130,7 @@ ALSA, but it might be better to just use an analog mixer and feed the
 signal from each unmixed track into an USB audio interface like
 [this](https://www.long-mcquade.com/87374/Pro-Audio---Recording/Audio-Interfaces/Presonus/Studio-68-6-In-8-Out-USB-Audio-Interface.htm), instead of trying to shove everything into a single device.
 
-[Soundcraft EPM8]: https://www.long-mcquade.com/5620/Pro_Audio_Recording/Mixers/Soundcraft/EPM8_-_8X2_Channel_Mixer.htm
+[Soundcraft EPM8]: https://www.soundcraft.com/en-US/products/epm8
 
 There was a lenghty conversation on the [Ardour forums](https://discourse.ardour.org/) about this
 topic, see:

more notes about the note
diff --git a/hardware/tablet.mdwn b/hardware/tablet.mdwn
index e0d9a011..0acf454c 100644
--- a/hardware/tablet.mdwn
+++ b/hardware/tablet.mdwn
@@ -146,6 +146,24 @@ slightly more reasonable:
    TIFF, BMP, WAV, MP3
  * 600$USD
 
+Downsides:
+
+ * [Android 6](http://bbs.onyx-international.com/t/android-upgrade/1827) (!)
+ * Kind of janky Android version: had to hack around to get f-droid
+   installed and the "settings" display is non-standard. but i could
+   get into "developer mode" at least...
+ * [Some compatibility problems with the annotation system](http://bbs.onyx-international.com/t/annotations-with-pen-with-pressure-not-displayed-in-pdf-viewer/1441)
+ * Difficulties syncing with linux at times, [MTP compatibility
+   problems](http://bbs.onyx-international.com/t/onyx-note-pro-not-visible-as-mtp-on-debian-10/1811)?
+ * [Shitty reseller in Canada](http://bbs.onyx-international.com/t/unexpected-delays-and-customs-fees-when-ordering-from-good-ereader/1423) but buying from boox.com seems fine
+   so far
+ * No external sd card
+
+I ended up buying *two* of those (one for a teacher and one for me!
+;), so I guess that means I'm happy with it. My biggest gripe about it
+is the old Android release and weird OS, but the reader is in
+generally excellent.
+
 reMarkable
 ----------
 

some experiences with readers (mupdf and atril failures, mostly)
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index cd4c85ad..109c2d3f 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -112,7 +112,8 @@ Calibre is...
    here:
 
     * [Atril][], MATE's version of [Evince][], supports ePUBs (Evince
-      doesn't seem to)
+      doesn't seem to), but fails to load certain ebooks (book #1459
+      for example)
     * [Bookworm][] looks very promising, not in Debian ([[!debbug
       883867]]), but [Flathub][flathub-bookworm].  same problems as
       GNOME books finding my books (ie. it can't).
@@ -136,7 +137,10 @@ Calibre is...
       provides a .deb). It depends on older Firefox releases (or
       "[Pale moon][]", a Firefox fork), see also the [[firefox]]
       XULocalypse for details
-    * [MuPDF][] also reads ePUBs without problems and is really fast
+    * [MuPDF][] also reads ePUBs and is really fast, but the user
+      interface is extremely minimal, and copy-paste doesn't work so
+      well (think "Xpdf"). it also failed to load certain books (e.g.
+      1359) and warns about 3.0 ePUBs (e.g. book 1162)
     * [Okular][] supports ePUBs when `okular-extra-backends` is
       installed
     * [plato][] is another alternative reader for Kobo readers, not in

make a new section on metadata
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 5192ebac..cd4c85ad 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -11,12 +11,19 @@ TL;DR: I'm considering replacing those various [Calibre][] compnents with...
    [Atril][] or [MuPDF][] on the desktop?
  * ebook-editor: [Sigil][].
  * collection browser: [Liber][]? see also [[services/bookmarks]]
+ * metadata editor: no good alternative.
  * device synchronisation: [git-annex][]?
  * RSS reader: [feed2exec][], [wallabako][]
  * ebook web server: [Liber][]?
 
 [git-annex]: https://git-annex.branchable.com/
 
+My biggest blocker that don't really have good alternatives are:
+
+ * collection browser
+ * metadata editor
+ * device sync
+
 See below why and a deeper discussion on all the features.
 
 Problems with Calibre
@@ -211,6 +218,26 @@ Calibre is...
    online articles. See also [[firefox]] (Zotero section) and
    [[bookmarks]] for a longer discussion of that problem.
 
+ * a **metadata editor**: the "collection browser" is based on a lot
+   of metadata that Calibre indexes from the books. It can magically
+   find a lot of stuff in the multitude of file formats it supports,
+   something that is pretty awesome and impressive. For example, I
+   just added a PDF file, and it found the book cover, author,
+   publication date, publisher, language and the original mobi book id
+   (!). It also added the book in the right directory and dumped that
+   metadata and the cover in a file next to the book. And if that's
+   not good enough, it can poll that data from various online sources
+   like Amazon, and Google books.
+   
+   Maybe the [work Peter Keel did][] could be useful in creating some
+   tool which would do this automatically? Or maybe [Sigil][] could
+   help? [Liber][] can also fetch metadata from Google books, but not
+   interactively.
+   
+   I still use Calibre mostly for this.
+
+[work Peter Keel did]: https://seegras.discordia.ch/Blog/life-with-calibre/
+
  * a **device synchronization tool** : I mostly use Calibre to
    synchronize books with an ebook-reader. It can also automatically
    update the database on the ebook with relevant metadata

problème réseau
diff --git "a/services/r\303\251seau.mdwn" "b/services/r\303\251seau.mdwn"
index 879888ac..24388a46 100644
--- "a/services/r\303\251seau.mdwn"
+++ "b/services/r\303\251seau.mdwn"
@@ -5,7 +5,12 @@ Update: ipv6 and dns work better with new router. see good test page: <http://en
 Problèmes connus
 ================
 
- * <del>le réseau [[IPv6]] est intermittent</del> semble être résolu avec teksavvy
+ * le réseau [[IPv6]] est intermittent, <del>semble être résolu avec
+   teksavvy</del> nope, IPv6 tombe environ une fois par mois (à
+   vérifier), cliquer sur "reconnect" de l'interface `WAN6` dans le
+   GUI règle le problème. selon [ce bout de code](https://github.com/openwrt/luci/blob/e712a8a4ac896189c333400134e00977912a918a/modules/luci-mod-network/luasrc/controller/admin/network.lua#L169-L176), il suffirait de
+   faire un `env -i /sbin/ifup %s >/dev/null 2>/dev/null` où `%s` est
+   l'interface réseau. à tester.
  * <del>la qualité de la bande passante varie avec les conditions météo</del> semble être résolu avec le VDSL
  * certaines requêtes DNS échouent, voir [[DNS]] pour les détails
  * le reverse DNS IPv6 ne fonctionne pas, voir mon [review the TSI](https://www.dslreports.com/forum/r30473265-Review)

add toc
diff --git a/hardware/monitor.mdwn b/hardware/monitor.mdwn
index cc492edf..4b29ad00 100644
--- a/hardware/monitor.mdwn
+++ b/hardware/monitor.mdwn
@@ -1,3 +1,5 @@
+[[!toc levels=2]]
+
 [Monitors](https://en.wikipedia.org/wiki/Computer_monitor) are devices that display information visually. They can
 include speakers and other connectors like USB. They were connected
 through [VGA][] connectors for the long time, but that has generally

Added a comment: Or an epub to HTML converter plus lynx…
diff --git a/software/desktop/calibre/comment_14_2c5c0cfd7d55143e984d8b6efd81db3f._comment b/software/desktop/calibre/comment_14_2c5c0cfd7d55143e984d8b6efd81db3f._comment
new file mode 100644
index 00000000..fd51f261
--- /dev/null
+++ b/software/desktop/calibre/comment_14_2c5c0cfd7d55143e984d8b6efd81db3f._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ ip="89.1.20.66"
+ claimedauthor="mirabilos"
+ url="http://www.mirbsd.org/music/free/"
+ subject="Or an epub to HTML converter plus lynx…"
+ date="2019-10-10T16:40:32Z"
+ content="""
+I wrote this small shellscript for myself…
+
+http://www.mirbsd.org/cvs.cgi/contrib/hosted/tg/unepub?rev=HEAD
+
+… which unzips an EPUB file and converts the toc.nxc into an index.htm which I can then use with lynx (the standard text mode webbrowser).
+"""]]

Added a comment: Finally, someone says it!
diff --git a/blog/2019-10-06-native-apps-matter/comment_3_d8c3805fa8d311666364a2bb75597cd8._comment b/blog/2019-10-06-native-apps-matter/comment_3_d8c3805fa8d311666364a2bb75597cd8._comment
new file mode 100644
index 00000000..4b30fba4
--- /dev/null
+++ b/blog/2019-10-06-native-apps-matter/comment_3_d8c3805fa8d311666364a2bb75597cd8._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ ip="89.1.20.66"
+ claimedauthor="mirabilos"
+ url="http://www.mirbsd.org/music/free/"
+ subject="Finally, someone says it!"
+ date="2019-10-10T16:36:54Z"
+ content="""
+Thanks, much appreciated. I’ve been trying to get this point across for ages…
+"""]]

more latency notes
diff --git a/blog/2018-05-04-terminal-emulators-2/comment_2_f550f0e759d53438e60f6df5e3b28b59._comment b/blog/2018-05-04-terminal-emulators-2/comment_2_f550f0e759d53438e60f6df5e3b28b59._comment
new file mode 100644
index 00000000..219c91e0
--- /dev/null
+++ b/blog/2018-05-04-terminal-emulators-2/comment_2_f550f0e759d53438e60f6df5e3b28b59._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="""Dan Luu's Terminal Latency"""
+ date="2019-10-10T13:30:14Z"
+ content="""
+I don't know how I managed to write this article without quoting *this* specific article from Dan Luu. I somehow managed to see Luu's [terminal latency](https://danluu.com/term-latency/) post, but I just missed the [input latency](https://danluu.com/input-lag/) one. It's just such an eye-opener: we keep on thinking computers get faster and faster while, in reality, they are getting *slower*. The Apple 2e, one of the first personal computers ever built in 1983, had a 30ms input latency. A Thinkpad Carbon X1 laptop running Linux had, in comparison, 170ms input latency. That's just crazy.
+"""]]
diff --git a/hardware/monitor.mdwn b/hardware/monitor.mdwn
index d2aff83c..cc492edf 100644
--- a/hardware/monitor.mdwn
+++ b/hardware/monitor.mdwn
@@ -50,7 +50,7 @@ Full gamut
 Normal
 ------
 
- * [Viewsonic VP2768](https://www.viewsonic.com/us/monitors/shop/professional-monitors/vp2768.html#specs)
+ * [Viewsonic VP2768 27" WQHD 14ms GTG](https://www.viewsonic.com/us/monitors/shop/professional-monitors/vp2768.html#specs)
  * [Dell 27" WQHD 144Hz 1ms GTG TN LED G-SYNC Gaming Monitor
    (S2716DG) - Black](https://www.bestbuy.ca/en-ca/product/dell-dell-27-wqhd-144hz-3ms-gtg-tn-led-g-sync-gaming-monitor-s2716dg-black-s2716dg/10409157) (bestbuy: 450$)
  * [DELL 27" 2ms 144Hz AMD FreeSync Gaming Monitor DisplayPort, HDMI,
@@ -58,6 +58,51 @@ Normal
    computers: 270$)
  * [Dell U2419H 24" Ultrasharp LED Monitor 1920 x 1080 - IPS](https://www.canadacomputers.com/product_info.php?cPath=22_1195_700_1103&item_id=133314):
    (Canada computers: $320, special order)
+ * [Philips Moniteur 276E8VJSB 27 po, IPS 4K UHD 3840 x 2160, 60Hz,
+   5ms](https://www.bureauengros.ca/products/2939812-fr-philips-moniteur-276e8vjsb-27-po-ips-4k-uhd-3840-x-2160-60hz-5ms) (BEG: 380$)
+
+Note on latency
+---------------
+
+Latency might seem like a trivial concern for a non-gamer, but it
+actually matters. In their [Typing with pleasure](https://pavelfatin.com/typing-with-pleasure/#output-latency) article, Pavel
+Fatin explains that even 1ms delays matter. In my [[terminal emulators
+review|blog/2018-05-04-terminal-emulators-2/#latency]], I argue that
+we should follow the GNOME HIG that sets the bar at 10ms. Considering
+that my main work tool (Emacs) has a mean *input* latency of around
+5ms, adding 5ms latency to the *output*, just through the monitor, is
+unacceptable.
+
+So I'll set the bar, arbitrarily, at 2ms, but ideal this would be 1ms
+or below. 
+
+Keep in mind that the best total input latency for a computer is
+currently at 30, with the Apple IIe, [according to Dan Luu](https://danluu.com/input-lag/). But
+that takes into account the entire processing cycle, which includes
+input, processing and output, if we adhere to Fatin's vocabulary. The
+benchmarks I performed in my blog post concern only the *processing*
+side of things, as we don't physically bash on the keyboard to
+generate those keypresses. In other words, assuming a 2ms latency in
+the monitor and 5ms in Emacs, what we actually have is:
+
+| Source | Latency | Notes |
+| ------ | ------- | ----- |
+| Input  | 14 ms   | Fatin, section 2.1, avergge |
+| Emacs  | 5 ms    | Anarcat, section 1, rounded mean |
+| Screen refresh | 8 ms | Fatin, section 2.3, average with 60Hz monitor |
+| Pixel response | 2 ms | Assumption, above |
+| Total  | 29 ms |
+
+So *in theory*, with a 2ms monitor and best conditions in Emacs, we
+should rival the Apple IIe input latency. In practice, considering
+Luu's results, it's very likely that I'm missing some numbers here and
+latency is actually much higher.
+
+In any case, that's way beyond the 10ms objective, so it makes sense
+to reduce the monitor latency if possible. In fact, when looking at
+this, one has to wonder if the [[keyboard]] would be a better place to
+look for latency improvements. After all 7 ms spent in debouncing
+seems pretty horrible...
 
 Resources
 =========

more notes abouve vimium and tridactyl
diff --git a/software/desktop/firefox.mdwn b/software/desktop/firefox.mdwn
index d2e90c68..c026869e 100644
--- a/software/desktop/firefox.mdwn
+++ b/software/desktop/firefox.mdwn
@@ -83,10 +83,17 @@ I am testing those and they might make it to the top list once I'm happy:
    good enough for my purposes.
  * [Livemarks](https://addons.mozilla.org/en-US/firefox/addon/livemarks/) (no deb, [source](https://github.com/nt1m/livemarks)) or [Awesome RSS](https://addons.mozilla.org/en-US/firefox/addon/awesome-rss/) (no deb,
    [source](https://github.com/shgysk8zer0/awesome-rss)) - replace the [Live bookmarks removal](https://support.mozilla.org/en-US/kb/live-bookmarks-migration)
- * [tridactyl](https://github.com/tridactyl/tridactyl) - to use the web browser without the mouse. was
-   [pulled out of AMO][] for a policy violation, might return but in
-   the meantime, i'm trying out [vimium][]. also see the [builtin Firefox shortcuts][]
-
+ * [tridactyl][] - to use the web browser without the mouse. was
+   [pulled from AMO][] for a policy violation, might return but in the
+   meantime, i'm trying out [vimium][], which has the major problem of
+   not entering the "edit mode" (where keybindings are not effective)
+   in text areas, or at least in etherpad. tridactyl has its own
+   annoyances though, like <kbd>C-f</kbd> being bound to "page
+   down". this can be disabled with `:unbind <C-f>`. also see the
+   [builtin Firefox shortcuts][] and the `pentadactyl` entry in the
+   XULocalypse section below
+
+[tridactyl]: https://github.com/tridactyl/tridactyl
 [builtin Firefox shortcuts]: https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly
 [vimium]: https://github.com/philc/vimium
 [Multi-account containers]: https://github.com/mozilla/multi-account-containers/
@@ -190,7 +197,7 @@ And here are the replacements I have found:
  * [web developer](https://addons.mozilla.org/en-US/firefox/addon/web-developer/): ported
  * [vimperator][]: a few [vimperator alternatives][] have popped
    up. [tridactyl][] was the most prominent one, but was also [pulled
-   from AMO][] for a policy violation. [vimium fx][] and [vim-vixen][]
+   from AMO][] for a policy violation. [vimium-ff][] and [vim-vixen][]
    seem like the only working alternatives right now, although the
    vimperator folks say they lack some features, I couldn't figure out
    which. [pentadactyl][] is the father to all of those, but seems to
@@ -202,7 +209,7 @@ And here are the replacements I have found:
 [vim-vixen]: https://github.com/ueokande/vim-vixen
 [vimfx]: https://github.com/akhodakivskiy/VimFx
 [pentadactyl]: http://web.archive.org/web/20171019152504/http://5digits.org/pentadactyl/
-[vimium fx]: https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/?src=search
+[vimium-ff]: https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/
 [salsa key]: https://addons.mozilla.org/en-US/firefox/addon/saka-key/
 [pulled from AMO]: https://github.com/tridactyl/tridactyl/issues/1800
 [vimperator alternatives]: https://github.com/vimperator/vimperator-labs#end-of-life-and-alternatives

another local provider
diff --git a/hardware/laptop.mdwn b/hardware/laptop.mdwn
index 30986b1b..8deac924 100644
--- a/hardware/laptop.mdwn
+++ b/hardware/laptop.mdwn
@@ -487,5 +487,6 @@ Fournisseurs
 * [Encan Dépôt](http://www.encandepot.com/) - same, across the street
 * [mike's computer shop](https://www.mikescomputershop.com/) - cheap canada seller
 * [canada computers](http://www.canadacomputers.com) - famous toronto computer shop?
+* [CIPC](https://cipc.com/) - another local shop!
 
 [[!tag research]]

fix markup
diff --git a/software/desktop/calibre/comment_12_7fb6eea9ecee3af73a888dd95069e318._comment b/software/desktop/calibre/comment_12_7fb6eea9ecee3af73a888dd95069e318._comment
index 72b9992d..16387790 100644
--- a/software/desktop/calibre/comment_12_7fb6eea9ecee3af73a888dd95069e318._comment
+++ b/software/desktop/calibre/comment_12_7fb6eea9ecee3af73a888dd95069e318._comment
@@ -4,15 +4,17 @@
  date="2019-10-09T17:03:35Z"
  content="""
 Yeah, I noticed some problems with Calibre as well, in 2013.
-https://seegras.discordia.ch/Blog/life-with-calibre/
+
+<https://seegras.discordia.ch/Blog/life-with-calibre/>
 
 I've written some software then, mainly to speed up extraction
 of epub-metatags by a factor of 100(!), but it's grown into 
-a veritable zoo of scripts. You can find them on my 
-https://github.com/Seegras/ site. Mainly:
-- https://github.com/Seegras/epub-meta
-- https://github.com/Seegras/metatags
-might be helpful. 
+a veritable zoo of scripts. You can find them on [my site](https://github.com/Seegras). Mainly:
+
+* https://github.com/Seegras/epub-meta
+* https://github.com/Seegras/metatags
+
+... might be helpful. 
 
 In any case, your posting helped me too, if for not other reason
 than I know now that atril can read epubs; but hopefully this 

move comments to right post
diff --git a/blog/2019-10-08-libreoffice-pdf-batch/comment_3_7fb6eea9ecee3af73a888dd95069e318._comment b/software/desktop/calibre/comment_12_7fb6eea9ecee3af73a888dd95069e318._comment
similarity index 100%
rename from blog/2019-10-08-libreoffice-pdf-batch/comment_3_7fb6eea9ecee3af73a888dd95069e318._comment
rename to software/desktop/calibre/comment_12_7fb6eea9ecee3af73a888dd95069e318._comment
diff --git a/blog/2019-10-08-libreoffice-pdf-batch/comment_4_b7456d39f03e9e2ad870e946778c0afd._comment b/software/desktop/calibre/comment_13_b7456d39f03e9e2ad870e946778c0afd._comment
similarity index 100%
rename from blog/2019-10-08-libreoffice-pdf-batch/comment_4_b7456d39f03e9e2ad870e946778c0afd._comment
rename to software/desktop/calibre/comment_13_b7456d39f03e9e2ad870e946778c0afd._comment

response
diff --git a/blog/2019-10-08-libreoffice-pdf-batch/comment_4_b7456d39f03e9e2ad870e946778c0afd._comment b/blog/2019-10-08-libreoffice-pdf-batch/comment_4_b7456d39f03e9e2ad870e946778c0afd._comment
new file mode 100644
index 00000000..79c1e347
--- /dev/null
+++ b/blog/2019-10-08-libreoffice-pdf-batch/comment_4_b7456d39f03e9e2ad870e946778c0afd._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="""git-annex"""
+ date="2019-10-09T17:04:35Z"
+ content="""
+Re. git-annex, nothing special. I had some hacks to make it ignore the .db file, because Calibre would be really upset if it can't open (ie. write) to the database. But now with "unlocked mode", it's not really a problem anymore.
+"""]]

add comment i got by email, after approval
diff --git a/blog/2019-10-08-libreoffice-pdf-batch/comment_3_7fb6eea9ecee3af73a888dd95069e318._comment b/blog/2019-10-08-libreoffice-pdf-batch/comment_3_7fb6eea9ecee3af73a888dd95069e318._comment
new file mode 100644
index 00000000..72b9992d
--- /dev/null
+++ b/blog/2019-10-08-libreoffice-pdf-batch/comment_3_7fb6eea9ecee3af73a888dd95069e318._comment
@@ -0,0 +1,27 @@
+[[!comment format=mdwn
+ username="Peter Keel"
+ subject="""Calibre replacements"""
+ date="2019-10-09T17:03:35Z"
+ content="""
+Yeah, I noticed some problems with Calibre as well, in 2013.
+https://seegras.discordia.ch/Blog/life-with-calibre/
+
+I've written some software then, mainly to speed up extraction
+of epub-metatags by a factor of 100(!), but it's grown into 
+a veritable zoo of scripts. You can find them on my 
+https://github.com/Seegras/ site. Mainly:
+- https://github.com/Seegras/epub-meta
+- https://github.com/Seegras/metatags
+might be helpful. 
+
+In any case, your posting helped me too, if for not other reason
+than I know now that atril can read epubs; but hopefully this 
+calibre issue leads to more epub-related software packaged for
+debian.
+
+lucidor, btw., was nice, but it's ancient. Not worth porting
+anymore.
+
+BTW: you're managing your books in git-annex? How does that work
+exactly? I'm interested to read another blog-posting about that ;).
+"""]]

response
diff --git a/blog/2019-10-08-libreoffice-pdf-batch/comment_2_1bd2e99a6b1199068b709dc6612dfcfe._comment b/blog/2019-10-08-libreoffice-pdf-batch/comment_2_1bd2e99a6b1199068b709dc6612dfcfe._comment
new file mode 100644
index 00000000..5ba04f8c
--- /dev/null
+++ b/blog/2019-10-08-libreoffice-pdf-batch/comment_2_1bd2e99a6b1199068b709dc6612dfcfe._comment
@@ -0,0 +1,49 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="""alternatives"""
+ date="2019-10-09T14:50:46Z"
+ content="""
+> Is that not precisely the idea of unoconv? plus it converts to many other formats and handles the headless server very nicely...
+
+[unoconv][], sure, why not. [Someone][] also suggested
+[lloconv][]. There's also [Pandoc][] that could probably do this as
+well.
+
+The thing is none of those have file manager integration. Plus, it's
+extra software to install. I want the simplest possible instructions,
+targeting novice Linux users, which means as little (commandline, in
+particular) work as possible. Installing new packages is therefore
+superfluous.
+
+By the way, I suspect the above instructions I made *do* reuse
+existing Libreoffice instances if they are already running. I might be
+wrong, but it seems faster with than without... 
+
+Without LibreOffice running:
+
+    ===> multitime results
+    1: libreoffice --headless --convert-to pdf impots.ods
+                Mean        Std.Dev.    Min         Median      Max
+    real        1.726       0.061       1.671       1.695       1.876       
+    user        1.258       0.050       1.208       1.244       1.362       
+    sys         0.226       0.023       0.180       0.231       0.257
+
+
+With LibreOffice running:
+
+    ===> multitime results
+    1: libreoffice --headless --convert-to pdf impots.ods
+                Mean        Std.Dev.    Min         Median      Max
+    real        0.411       0.033       0.367       0.398       0.468       
+    user        0.014       0.006       0.005       0.013       0.022       
+    sys         0.012       0.007       0.001       0.012       0.023
+
+So thanks everyone for the recommendations, those are very useful
+tools! But I think LibreOffice's builtin commandline is fine for this
+purpose for now.
+
+[Pandoc]: https://pandoc.org/
+[unoconv]: http://dag.wiee.rs/home-made/unoconv/
+[lloconv]: https://gitlab.com/ojwb/lloconv
+[Someone]: https://framapiaf.org/@boutil/102928777691782064
+"""]]

fix tag typo
diff --git a/blog/2019-10-08-libreoffice-pdf-batch.mdwn b/blog/2019-10-08-libreoffice-pdf-batch.mdwn
index f72146e3..0bb3b4f0 100644
--- a/blog/2019-10-08-libreoffice-pdf-batch.mdwn
+++ b/blog/2019-10-08-libreoffice-pdf-batch.mdwn
@@ -37,4 +37,4 @@ file (or anything supported by LibreOffice, really) into PDF.
 Now I wonder if this would be a useful addition to the Debian package,
 anyone?
 
-[[!tag debian-planet hack pdf planet-python debian]]
+[[!tag debian-planet hack pdf python-planet debian]]
diff --git a/tag/planet-python.mdwn b/tag/planet-python.mdwn
deleted file mode 100644
index aaab89f8..00000000
--- a/tag/planet-python.mdwn
+++ /dev/null
@@ -1,4 +0,0 @@
-[[!meta title="pages tagged planet-python"]]
-
-[[!inline pages="tagged(planet-python)" actions="no" archive="yes"
-feedshow=10]]

Added a comment: Why not unoconv?
diff --git a/blog/2019-10-08-libreoffice-pdf-batch/comment_1_8cef74cc8613d5ab8f65b9f568256b12._comment b/blog/2019-10-08-libreoffice-pdf-batch/comment_1_8cef74cc8613d5ab8f65b9f568256b12._comment
new file mode 100644
index 00000000..4342faee
--- /dev/null
+++ b/blog/2019-10-08-libreoffice-pdf-batch/comment_1_8cef74cc8613d5ab8f65b9f568256b12._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ ip="88.144.55.174"
+ claimedauthor="Anonymous coward"
+ subject="Why not unoconv?"
+ date="2019-10-08T21:02:54Z"
+ content="""
+Is that not precisely the idea of unoconv? plus it converts to many other formats and handles the headless server very nicely...
+"""]]

creating tag page tag/planet-python
diff --git a/tag/planet-python.mdwn b/tag/planet-python.mdwn
new file mode 100644
index 00000000..aaab89f8
--- /dev/null
+++ b/tag/planet-python.mdwn
@@ -0,0 +1,4 @@
+[[!meta title="pages tagged planet-python"]]
+
+[[!inline pages="tagged(planet-python)" actions="no" archive="yes"
+feedshow=10]]

creating tag page tag/pdf
diff --git a/tag/pdf.mdwn b/tag/pdf.mdwn
new file mode 100644
index 00000000..ca55ed8f
--- /dev/null
+++ b/tag/pdf.mdwn
@@ -0,0 +1,4 @@
+[[!meta title="pages tagged pdf"]]
+
+[[!inline pages="tagged(pdf)" actions="no" archive="yes"
+feedshow=10]]

libreoffice batch hack
diff --git a/blog/2019-10-08-libreoffice-pdf-batch.mdwn b/blog/2019-10-08-libreoffice-pdf-batch.mdwn
new file mode 100644
index 00000000..f72146e3
--- /dev/null
+++ b/blog/2019-10-08-libreoffice-pdf-batch.mdwn
@@ -0,0 +1,40 @@
+[[!meta title="Tip of the day: batch PDF conversion with LibreOffice"]]
+
+Someone asked me today why they couldn't write on the [DOCX][]
+document they received from a student using the pen in their [Onyx
+Note Pro][] reader. The answer, of course, is that while the Onyx can
+read those files, it can't annotate them: that only works with PDFs.
+
+[Onyx Note Pro]: https://onyxboox.com/boox_notepro
+[DOCX]: https://en.wikipedia.org/wiki/Office_Open_XML
+
+Next question then, is of course: do I really need to open each file
+separately and save them as PDF? That's going to take forever, I have
+30 students per class!
+
+> *Fear not, shell scripting and headless mode flies in to the rescue!*
+
+As it turns out, one of the [Libreoffice parameters][] allow you to
+run batch operations on files. By calling:
+
+    libreoffice --headless --convert-to pdf *.docx
+
+[Libreoffice parameters]: https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters
+
+LibreOffice will happily convert all the `*.docx` files in the current
+directory to PDF. But because navigating the commandline can be hard,
+I figured I could push this a tiny little bit further and wrote the
+following script:
+
+    #!/bin/sh
+    
+    exec libreoffice --headless --convert-to pdf "$@"
+
+Drop this in `~/.local/share/nautilus/scripts/libreoffice-pdf`, mark
+it executable, and voilà! You can batch-convert basically any text
+file (or anything supported by LibreOffice, really) into PDF.
+
+Now I wonder if this would be a useful addition to the Debian package,
+anyone?
+
+[[!tag debian-planet hack pdf planet-python debian]]

link to other shortcuts
diff --git a/software/desktop/firefox.mdwn b/software/desktop/firefox.mdwn
index 27773f4a..d2e90c68 100644
--- a/software/desktop/firefox.mdwn
+++ b/software/desktop/firefox.mdwn
@@ -85,8 +85,9 @@ I am testing those and they might make it to the top list once I'm happy:
    [source](https://github.com/shgysk8zer0/awesome-rss)) - replace the [Live bookmarks removal](https://support.mozilla.org/en-US/kb/live-bookmarks-migration)
  * [tridactyl](https://github.com/tridactyl/tridactyl) - to use the web browser without the mouse. was
    [pulled out of AMO][] for a policy violation, might return but in
-   the meantime, i'm trying out [vimium][].
+   the meantime, i'm trying out [vimium][]. also see the [builtin Firefox shortcuts][]
 
+[builtin Firefox shortcuts]: https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly
 [vimium]: https://github.com/philc/vimium
 [Multi-account containers]: https://github.com/mozilla/multi-account-containers/
 

promote browserpass, display-anchors and url-to-qrcode
diff --git a/software/desktop/firefox.mdwn b/software/desktop/firefox.mdwn
index 3eb62c3b..27773f4a 100644
--- a/software/desktop/firefox.mdwn
+++ b/software/desktop/firefox.mdwn
@@ -24,14 +24,25 @@ or have used in the past.
 
 I have those extensions installed and use them very frequently:
 
+ * [browserpass-ce](https://addons.mozilla.org/en-US/firefox/addon/browserpass-ce/) ([[!debpkg webext-browserpass desc="debian
+   package"]], [source](https://github.com/browserpass/browserpass)) - super fast access to my passwords. use
+   some magic mumble-jumble message passing thing which feels a bit
+   creepy.
+ * [display anchors](https://addons.mozilla.org/en-US/firefox/addon/display-_anchors/) (no deb, [source](https://github.com/Rob--W/display-anchors))
  * [GhostText][] (no debian package, [#910289](https://bugs.debian.org/910289), [source](https://github.com/GhostText/GhostText))- "It's all text" replacement
  * [uBlock Origin][] ([[!debpkg webext-ublock-origin desc="debian
    package"]], [source](https://github.com/gorhill/uBlock)) - making the web sane again
- * [uMatrix][] (no debian package, [#891859](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=891859), [source](https://github.com/gorhill/uMatrix)) - making the web
-   somewhat safe again
+ * [uMatrix][] ([[!debpkg webext-umatrix desc="debian package"]],
+   [source](https://github.com/gorhill/uMatrix)) - making the web somewhat safe again
  * [Wallabager][] (no debian package, [source](https://github.com/wallabag/wallabagger)) - to YOLO a bunch
    of links in a pile outside my web browser that I can read offline
    thanks to [Wallabako](https://gitlab.com/anarcat/wallabako/)
+ * [URL to QR Code](https://addons.mozilla.org/en-US/firefox/addon/url-to-qrcode/?src=search) - (no debian package, [source](https://github.com/smoqadam/url-to-qrcode-firefox-addon)) after
+   kicking out that proprietary spyware (!! see below), I found about
+   6 different alternatives (this one and [1](https://addons.mozilla.org/en-US/firefox/addon/qr-code-util/), [2](https://addons.mozilla.org/en-US/firefox/addon/fxqrl/), [3](https://addons.mozilla.org/en-US/firefox/addon/ffqrcoder/),
+   [4](https://addons.mozilla.org/en-US/firefox/addon/qrify/), [5](https://addons.mozilla.org/en-US/firefox/addon/qr-coder/) - what is wrong with you people??) This is the most
+   popular, reviews are mostly positive, seems to be working offline,
+   has a free license, and source is available. Super simple too.
 
 [Wallabager]: https://addons.mozilla.org/en-US/firefox/addon/wallabagger/
 [uMatrix]: https://addons.mozilla.org/firefox/addon/umatrix/
@@ -48,11 +59,6 @@ Ideally, all of those should be packaged for Debian.
 
 I am testing those and they might make it to the top list once I'm happy:
 
- * [browserpass-ce](https://addons.mozilla.org/en-US/firefox/addon/browserpass-ce/) ([[!debpkg webext-browserpass desc="debian
-   package"]], [source](https://github.com/browserpass/browserpass)) - super fast access to my passwords. use
-   some magic mumble-jumble message passing thing which feels a bit
-   creepy.
- * [display anchors](https://addons.mozilla.org/en-US/firefox/addon/display-_anchors/) (no deb, [source](https://github.com/Rob--W/display-anchors))
  * [Multi-account containers][] (no deb, [source](https://github.com/mozilla/multi-account-containers/)) - kind of
    useful, but also a bit strange: impossible to assign an existing
    tab to a container, UI is very clikety (can't open a
@@ -60,12 +66,6 @@ I am testing those and they might make it to the top list once I'm happy:
    on the "+" tab button to choose container.
  * [Open in Browser](https://addons.mozilla.org/en-US/firefox/addon/open-in-browser/) (no deb, [source](https://github.com/Rob--W/open-in-browser)) - reopen the file in the
    browser instead of downloading
- * [URL to QR Code](https://addons.mozilla.org/en-US/firefox/addon/url-to-qrcode/?src=search) - (no debian package, [source](https://github.com/smoqadam/url-to-qrcode-firefox-addon)) after
-   kicking out that proprietary spyware (!! see below), I found about
-   6 different alternatives (this one and [1](https://addons.mozilla.org/en-US/firefox/addon/qr-code-util/), [2](https://addons.mozilla.org/en-US/firefox/addon/fxqrl/), [3](https://addons.mozilla.org/en-US/firefox/addon/ffqrcoder/),
-   [4](https://addons.mozilla.org/en-US/firefox/addon/qrify/), [5](https://addons.mozilla.org/en-US/firefox/addon/qr-coder/) - what is wrong with you people??) This is the most
-   popular, reviews are mostly positive, seems to be working offline,
-   has a free license, and source is available. Super simple too.
  * [Smart HTTPS](https://addons.mozilla.org/en-US/firefox/addon/smart-https-revived/) (no deb, [source](https://github.com/ilGur1132/Smart-HTTPS)) - some use [HTTPS
    everywhere](https://www.eff.org/https-everywhere) but i find that one works too and doesn't require
    sites to be added to a list. nowadays, https URLs match http URLs

sort software list and add details
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 1cfc7db5..5192ebac 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -104,33 +104,38 @@ Calibre is...
    ebook-readers, on different platforms, that can replace Calibre
    here:
 
-    * [Atril][], MATE's version of Evince, supports ePUBs (Evince
-      doesn't)
-    * [MuPDF][] also reads ePUBs without problems and is really fast
-    * [fbreader][] also supports ePUBs, but is much slower than all
-      those others
-    * Emacs (of course) supports ebooks through [nov.el][]
-    * [Okular][] apparently supports ePUBs, but I must be missing a
-      library because it doesn't actually work here
+    * [Atril][], MATE's version of [Evince][], supports ePUBs (Evince
+      doesn't seem to)
+    * [Bookworm][] looks very promising, not in Debian ([[!debbug
+      883867]]), but [Flathub][flathub-bookworm].  same problems as
+      GNOME books finding my books (ie. it can't).
+    * [Buka][] is another "ebook" manager written in Javascript, but
+      only supports PDFs for now.
     * [coolreader][] is another alternative, [not yet in Debian
       (#715470)][]
-    * [lucidor][] also looks interesting, but is not packaged in
-      Debian either (although upstream provides a .deb) and depends on
-      older Firefox releases (or "[Pale moon][]", a Firefox fork)
-    * [koreader][] and [plato][] are good alternatives for the Kobo
-      reader (although koreader also now has builds for Debian)
+    * Emacs (of course) supports ebooks through [nov.el][]
+    * [fbreader][] also supports ePUBs, but is much slower than all
+      those others, and turned proprietary so is unmaintained
+    * [Foliate][] looks gorgeous and is built on top of the ePUB.js
+      library, not in Debian, but [Flathub][flathub-foliate].
     * [GNOME Books][] is interesting, but relies on the GNOME search
       engine and doesn't find my books (and instead lots of other
       garbage). it's been described as "basic" and "the least mature"
       in [this OMG Ubuntu review][]
-    * [Bookworm][] looks very promising, not in Debian ([[!debbug
-      883867]]), but [Flathub][flathub-bookworm]
-    * [Foliate][] looks gorgeous and is built on top of the ePUB.js
-      library, not in Debian, but [Flathub][flathub-foliate]. same
-      problems as GNOME books finding my books (ie. it can't).
-    * [Buka][] is another "ebook" manager written in Javascript, but
-      only supports PDFs for now
+    * [koreader][] is a good alternative reader for the Kobo devices
+      and now also has builds for Debian, but no Debian package
+    * [lucidor][] is a Firefox extension that can read an organize
+      books, but is not packaged in Debian either (although upstream
+      provides a .deb). It depends on older Firefox releases (or
+      "[Pale moon][]", a Firefox fork), see also the [[firefox]]
+      XULocalypse for details
+    * [MuPDF][] also reads ePUBs without problems and is really fast
+    * [Okular][] supports ePUBs when `okular-extra-backends` is
+      installed
+    * [plato][] is another alternative reader for Kobo readers, not in
+      Debian
 
+[Evince]: https://wiki.gnome.org/Apps/Evince
 [flathub-bookworm]: https://www.flathub.org/apps/details/com.github.babluboy.bookworm
 [Buka]: https://github.com/oguzhaninan/Buka
 [flathub-foliate]: https://www.flathub.org/apps/details/com.github.johnfactotum.Foliate

more notes about bookworm
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index baf15123..1cfc7db5 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -123,12 +123,15 @@ Calibre is...
       engine and doesn't find my books (and instead lots of other
       garbage). it's been described as "basic" and "the least mature"
       in [this OMG Ubuntu review][]
-    * [Bookworm][] looks very promising
+    * [Bookworm][] looks very promising, not in Debian ([[!debbug
+      883867]]), but [Flathub][flathub-bookworm]
     * [Foliate][] looks gorgeous and is built on top of the ePUB.js
-      library, not in Debian, but [Flathub][flathub-foliate]
+      library, not in Debian, but [Flathub][flathub-foliate]. same
+      problems as GNOME books finding my books (ie. it can't).
     * [Buka][] is another "ebook" manager written in Javascript, but
       only supports PDFs for now
 
+[flathub-bookworm]: https://www.flathub.org/apps/details/com.github.babluboy.bookworm
 [Buka]: https://github.com/oguzhaninan/Buka
 [flathub-foliate]: https://www.flathub.org/apps/details/com.github.johnfactotum.Foliate
 [Foliate]: https://johnfactotum.github.io/foliate/

fix link and link to mail
diff --git a/blog/2016-05-12-email-setup.mdwn b/blog/2016-05-12-email-setup.mdwn
index 8eccc342..fb23f2e5 100644
--- a/blog/2016-05-12-email-setup.mdwn
+++ b/blog/2016-05-12-email-setup.mdwn
@@ -1,5 +1,7 @@
 [[!meta title="Notmuch, offlineimap and Sieve setup"]]
 
+Update: some of this configuration changed. See [[services/mail]].
+
 I've been using Notmuch since about 2011, switching away from Mutt to
 deal with the monstrous amount of emails I was, and still am dealing
 with on the computer. I have contributed a few patches and configs on
@@ -636,7 +638,7 @@ Critical parts are:
 
 The other settings should be self-explanatory.
 
- [Offlineimap]: http://www.offlineimap.org/
+ [OfflineIMAP]: http://www.offlineimap.org/
  [isync]: http://isync.sourceforge.net/
 
 RSS feeds

another answer
diff --git a/software/desktop/calibre/comment_11_fa465e23e6c4369a0aa81de3ae6dc875._comment b/software/desktop/calibre/comment_11_fa465e23e6c4369a0aa81de3ae6dc875._comment
new file mode 100644
index 00000000..05dbe2e9
--- /dev/null
+++ b/software/desktop/calibre/comment_11_fa465e23e6c4369a0aa81de3ae6dc875._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="""comment 11"""
+ date="2019-10-07T13:34:10Z"
+ content="""
+> This appears to be an awful lot of effort to migrate from an open-source project. Perhaps that effort could be applied to helping out with the migration to Python3?  They have a working Beta now: https://github.com/kovidgoyal/calibre/pull/870
+>
+> You don't have to be a Python developer.  It would be helpful just having some willing beta-testers provide some feedback.  
+
+I actually *am* a Python developer. If Python 3 was the only problem with Calibre, I would totally and enthousiastically go that route. But as I explained in the blog post, there are other problems here.
+
+Also, there's only so much time in the day. I am already involved in another major Python 3 conversion in a program we salvaged from being abandoned by its maintainer ([linkchecker][]) and it's basically taking all of my free time at that level right now. I have my own programs I need to port to Python 3. So, sorry, but I don't have (free or paid, actually) time to offer to the Calibre community right now. But you should know that I did contribute quite a few times in the community (bug reports, security backports and patches). My experience then wasn't as great as I would have liked and I prefer not to get involved anymore.
+
+ [linkchecker]: https://github.com/linkchecker/linkchecker/
+
+> Either way, thanks for providing a roadmap of comparable software.  I personally don't want to switch from Calibre, but seeing the alternatives is always helpful for finding ways to improve.
+
+Thanks! That's the spirit with which I'm writing this. I might end up continuing to use Calibre myself too!
+"""]]

remove duplicate comment
diff --git a/software/desktop/calibre/comment_10_6a5852087614c10cc4e8934212fe74c3._comment b/software/desktop/calibre/comment_10_6a5852087614c10cc4e8934212fe74c3._comment
deleted file mode 100644
index aa4d498e..00000000
--- a/software/desktop/calibre/comment_10_6a5852087614c10cc4e8934212fe74c3._comment
+++ /dev/null
@@ -1,14 +0,0 @@
-[[!comment format=mdwn
- ip="71.136.138.224"
- claimedauthor="Jim Sorenson"
- subject="Replace vs Fix"
- date="2019-10-07T06:13:38Z"
- content="""
-This appears to be an awful lot of effort to migrate from an open-source project. Perhaps that effort could be applied to helping out with the migration to Python3?  They have a working Beta now: https://github.com/kovidgoyal/calibre/pull/870
-
-You don't have to be a Python developer.  It would be helpful just having some willing beta-testers provide some feedback.  
-
-Either way, thanks for providing a roadmap of comparable software.  I personally don't want to switch from Calibre, but seeing the alternatives is always helpful for finding ways to improve.
-
-- Jim
-"""]]

Added a comment
diff --git a/software/desktop/calibre/comment_11_4775bdfd0e135631f8076c52af31ac45._comment b/software/desktop/calibre/comment_11_4775bdfd0e135631f8076c52af31ac45._comment
new file mode 100644
index 00000000..3aeea379
--- /dev/null
+++ b/software/desktop/calibre/comment_11_4775bdfd0e135631f8076c52af31ac45._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ ip="132.206.154.8"
+ claimedauthor="mvc"
+ subject="comment 11"
+ date="2019-10-07T12:58:41Z"
+ content="""
+I have only used the latest stable fbreader Android app, which is proprietary but still actively maintained, and for me \"just works\". When the project went closed source in 2015 a free software fork targeting Android was created, but I've never tried it: https://gitlab.com/axet/android-book-reader
+
+The free app's bookshelf view was a little annoying, but as I said I was happy to give the developer a small sum of money for the \"premium\" version with a better collection viewer.
+
+I'm not surprised that PDF reflowing would be impossible in the general case for a multicolumn document, but I'm hoping they'll come up with something workable for some of the lengthy books I want to read that were only available in PDF format from the local library. At least I can borrow the physical books if needed!
+"""]]

Added a comment: Higher quality YouTube is DASH-only
diff --git a/blog/2019-10-06-native-apps-matter/comment_2_c34776c405292a5222db913af4560d18._comment b/blog/2019-10-06-native-apps-matter/comment_2_c34776c405292a5222db913af4560d18._comment
new file mode 100644
index 00000000..0da5bbd6
--- /dev/null
+++ b/blog/2019-10-06-native-apps-matter/comment_2_c34776c405292a5222db913af4560d18._comment
@@ -0,0 +1,49 @@
+[[!comment format=mdwn
+ ip="213.219.166.29"
+ claimedauthor="Frans"
+ url="https://fransdejonge.com"
+ subject="Higher quality YouTube is DASH-only"
+ date="2019-10-07T08:09:01Z"
+ content="""
+Unless something changed recently, VLC is limited to 720p. That won't truly affect any conclusions, but for a completely fair comparison you'd have to take down YT to 720p, specifically in mp4 so any potential hardware acceleration can do its job on the browser too. On Chromia you might have to flip a flag to enable that at all.
+
+Alternatively and for a better video viewing experience, you can download or pipe better quality video/audio with youtube-dl.
+
+```
+$ youtube-dl -F \"https://www.youtube.com/watch?v=tyOHcXKlyU8\"  
+[youtube] tyOHcXKlyU8: Downloading webpage
+[youtube] tyOHcXKlyU8: Downloading video info webpage
+WARNING: Unable to extract video title
+[info] Available formats for tyOHcXKlyU8:
+format code  extension  resolution note
+249          webm       audio only DASH audio   60k , opus @ 50k, 6.30MiB
+250          webm       audio only DASH audio   86k , opus @ 70k, 8.18MiB
+140          m4a        audio only DASH audio  131k , m4a_dash container, mp4a.40.2@128k, 15.53MiB
+251          webm       audio only DASH audio  164k , opus @160k, 15.87MiB
+160          mp4        256x144    144p  109k , avc1.4d400c, 24fps, video only, 6.70MiB
+278          webm       256x144    144p  118k , webm container, vp9, 24fps, video only, 11.36MiB
+242          webm       426x240    240p  229k , vp9, 24fps, video only, 13.57MiB
+133          mp4        426x240    240p  294k , avc1.4d4015, 24fps, video only, 12.39MiB
+243          webm       640x360    360p  401k , vp9, 24fps, video only, 22.38MiB
+134          mp4        640x360    360p  579k , avc1.4d401e, 24fps, video only, 22.12MiB
+244          webm       854x480    480p  703k , vp9, 24fps, video only, 32.00MiB
+135          mp4        854x480    480p  809k , avc1.4d401e, 24fps, video only, 31.22MiB
+136          mp4        1280x720   720p 1125k , avc1.4d401f, 24fps, video only, 46.40MiB
+247          webm       1280x720   720p 1242k , vp9, 24fps, video only, 53.06MiB
+248          webm       1920x1080  1080p 2642k , vp9, 24fps, video only, 152.24MiB
+137          mp4        1920x1080  1080p 3770k , avc1.640028, 24fps, video only, 161.78MiB
+43           webm       640x360    medium , vp8.0, vorbis@128k, 83.67MiB
+18           mp4        640x360    medium  460k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 55.23MiB
+22           mp4        1280x720   hd720 1428k , avc1.64001F, mp4a.40.2@192k (44100Hz) (best)
+```
+
+If I right click on a YouTube video and click \"stats for nerds,\"  I find that it typically prefers to send VP9 with Opus. The Opus stream (251) provides the best audio.
+
+In my case, to match what YouTube sends to my browser I have to use something like this:
+
+```
+$ youtube-dl -f 248+251 \"https://www.youtube.com/watch?v=tyOHcXKlyU8\"
+```
+
+Play that back in VLC or mpv and you'll find it uses a lot more CPU. By contrast, force YouTube to use 720p with H.264 for hardware acceleration and it'll use less. The difference should still be pronounced, mind you, but not quite by an order of magnitude.
+"""]]

Added a comment: Replace vs Fix
diff --git a/software/desktop/calibre/comment_10_6a5852087614c10cc4e8934212fe74c3._comment b/software/desktop/calibre/comment_10_6a5852087614c10cc4e8934212fe74c3._comment
new file mode 100644
index 00000000..aa4d498e
--- /dev/null
+++ b/software/desktop/calibre/comment_10_6a5852087614c10cc4e8934212fe74c3._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ ip="71.136.138.224"
+ claimedauthor="Jim Sorenson"
+ subject="Replace vs Fix"
+ date="2019-10-07T06:13:38Z"
+ content="""
+This appears to be an awful lot of effort to migrate from an open-source project. Perhaps that effort could be applied to helping out with the migration to Python3?  They have a working Beta now: https://github.com/kovidgoyal/calibre/pull/870
+
+You don't have to be a Python developer.  It would be helpful just having some willing beta-testers provide some feedback.  
+
+Either way, thanks for providing a roadmap of comparable software.  I personally don't want to switch from Calibre, but seeing the alternatives is always helpful for finding ways to improve.
+
+- Jim
+"""]]

Added a comment: Replace vs Fix
diff --git a/software/desktop/calibre/comment_9_21f2ff88eed237f7b995d831cc4024ce._comment b/software/desktop/calibre/comment_9_21f2ff88eed237f7b995d831cc4024ce._comment
new file mode 100644
index 00000000..6a4ac3a3
--- /dev/null
+++ b/software/desktop/calibre/comment_9_21f2ff88eed237f7b995d831cc4024ce._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ ip="71.136.138.224"
+ claimedauthor="Jim Sorenson"
+ subject="Replace vs Fix"
+ date="2019-10-07T06:10:44Z"
+ content="""
+This appears to be an awful lot of effort to migrate from an open-source project. Perhaps that effort could be applied to helping out with the migration to Python3?  They have a working Beta now: https://github.com/kovidgoyal/calibre/pull/870
+
+You don't have to be a Python developer.  It would be helpful just having some willing beta-testers provide some feedback.  
+
+Either way, thanks for providing a roadmap of comparable software.  I personally don't want to switch from Calibre, but seeing the alternatives is always helpful for finding ways to improve.
+
+- Jim
+"""]]

Added a comment: video acceleration
diff --git a/blog/2019-10-06-native-apps-matter/comment_1_e58b9d616608b35a80c260d7d531c6ed._comment b/blog/2019-10-06-native-apps-matter/comment_1_e58b9d616608b35a80c260d7d531c6ed._comment
new file mode 100644
index 00000000..1ae6d2a0
--- /dev/null
+++ b/blog/2019-10-06-native-apps-matter/comment_1_e58b9d616608b35a80c260d7d531c6ed._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ ip="72.239.24.37"
+ claimedauthor="deccelerator"
+ subject="video acceleration"
+ date="2019-10-07T05:47:00Z"
+ content="""
+Isn't this because VLC can take advantage of VA-API for hardware accelerated decoding? Where as Firefox has no support and Chromium requires an out-of-tree patch.
+"""]]

so much software out there
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 7ba83d15..baf15123 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -119,7 +119,22 @@ Calibre is...
       older Firefox releases (or "[Pale moon][]", a Firefox fork)
     * [koreader][] and [plato][] are good alternatives for the Kobo
       reader (although koreader also now has builds for Debian)
-
+    * [GNOME Books][] is interesting, but relies on the GNOME search
+      engine and doesn't find my books (and instead lots of other
+      garbage). it's been described as "basic" and "the least mature"
+      in [this OMG Ubuntu review][]
+    * [Bookworm][] looks very promising
+    * [Foliate][] looks gorgeous and is built on top of the ePUB.js
+      library, not in Debian, but [Flathub][flathub-foliate]
+    * [Buka][] is another "ebook" manager written in Javascript, but
+      only supports PDFs for now
+
+[Buka]: https://github.com/oguzhaninan/Buka
+[flathub-foliate]: https://www.flathub.org/apps/details/com.github.johnfactotum.Foliate
+[Foliate]: https://johnfactotum.github.io/foliate/
+[this OMG Ubuntu review]: https://www.omgubuntu.co.uk/2017/07/best-ebook-reader-app-ubuntu
+[GNOME Books]: https://wiki.gnome.org/Apps/Books
+[Bookworm]: https://babluboy.github.io/bookworm/
 [Pale moon]: https://www.palemoon.org/
 [plato]: https://github.com/baskerville/plato/
 [koreader]: https://github.com/koreader/koreader/

clarify what lucidor actually is (a firefox extension)
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 7190138e..7ba83d15 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -115,10 +115,12 @@ Calibre is...
     * [coolreader][] is another alternative, [not yet in Debian
       (#715470)][]
     * [lucidor][] also looks interesting, but is not packaged in
-      Debian either (although upstream provides a .deb)
+      Debian either (although upstream provides a .deb) and depends on
+      older Firefox releases (or "[Pale moon][]", a Firefox fork)
     * [koreader][] and [plato][] are good alternatives for the Kobo
       reader (although koreader also now has builds for Debian)
 
+[Pale moon]: https://www.palemoon.org/
 [plato]: https://github.com/baskerville/plato/
 [koreader]: https://github.com/koreader/koreader/
 [Okular]: https://okular.kde.org/

many comments, many answers
diff --git a/software/desktop/calibre/comment_8_42a4785ddbcc3729cc5499aa9f75299e._comment b/software/desktop/calibre/comment_8_42a4785ddbcc3729cc5499aa9f75299e._comment
new file mode 100644
index 00000000..0a350f74
--- /dev/null
+++ b/software/desktop/calibre/comment_8_42a4785ddbcc3729cc5499aa9f75299e._comment
@@ -0,0 +1,83 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="""many comments"""
+ date="2019-10-07T03:18:43Z"
+ content="""
+Hi everyone! Thanks for the many comments! I'll respond to the last few all together...
+
+***toton re okular***: thanks! that's what i was looking for, and I
+confirm it works. I updated the article accordingly
+
+***monkey re git-annex***: git-annex might provide the faceted search
+functionality that Calibre provides but, to be honest, my luck with
+git-annex metadata has been hit and miss. It kind of works, but for
+large collections, it's slow as it needs to rebuild the worktree every
+time you "search" something. And the user experience is really not
+that great: I often get confused between git branching commands and
+git-annex metadata commands, so much so that I quickly have no idea
+what's going on anymore...
+
+***john re Kindles***: honestly, I don't consider Kindles as part of
+my workflow. I completely boycott Amazon as a company for various
+reasons aside from the ebook problems, but specifically their attitude
+regarding contents on their devices has been problematic, to say the
+least. I understand it was to respond to a copyright litigation, but
+they did delete Orwell's 1984 and Animal Farm from every Kindle device
+out there. They are also very aggressive in creating hurdles for us to
+work with their devices, as you aptly described.
+
+So while they are shiny and enticing, hardware-wise, I don't consider
+them as part of my use-case model. So yes, I'm digging in my heels and
+I focus on standard contents: the hardware providers that do *not*
+follow that model shouldn't be encouraged with our wallets. I know
+it's not very helpful to the large number of Amazon users, but then
+again, I don't feel like going out of my way to help you people
+either. ;)
+
+(And, generally, **people shouldn't feel the need to defend Calibre or
+apologize for defending it**. Again, I have used Calibre for almost a
+decade (probably around 7 years now, according to the first bug
+report), and I feel *grateful* for the services it has given (and
+still is!) giving me. So I didn't mean to write this as an attack on
+Calibre, but mostly as an exploration of how parts (or all) of it
+could be replace, if that's needed for people. It's maybe unfortunate
+that I started with a rather critical section, but I felt it was
+important to explain why I was considering this in the first place,
+And, I have to be honest, I kind of had a chip on my shoulder with
+Calibre for a while, having dealt with it through the Debian LTS
+security work and numerous bug reports.)
+
+**mvc re fbreader**: so I've tried fbreader again and again, and I can
+never get used to it. It's installed on my phone, as a PDF reader, and
+I also have it on this laptop. Neither works very well. The phone
+version has this weird "bookshelf" browser that looks like a an wooden
+bookshelf, which is not very useful but does looks pretty. Similarly,
+the user interface on the desktop is ... really confusing to me. There
+a bunch of small buttons on top without any labels... Kind of hard to
+use.
+
+The desktop version of fbreader here taks over 30 seconds to
+start. When I finally managed to find how to tell it where my book
+collection is, it crashed after a few seconds of walking the tree,
+with an epic segfault ([[!debbug 941886]]):
+
+    oct 06 23:17:13 angela kernel: FBReader[16757] segfault at 8 ip 00007fb8e62800a2 sp 00007ffd84099070 error 4 in libzlcore.so.0.12.10[7fb8e626f000+54000] 
+    oct 06 23:17:13 angela kernel: Code: 8b 7c 24 30 48 8d 43 30 48 39 c7 74 05 e8 e6 06 ff ff 48 8b 7c 24 10 48 83 c3 10 48 39 df 74 05 e8 d3 06 ff ff 48 8b 44 24 08 <48> 8b 78 08 e8 05 f0 fe ff 48 89 ee 48 89 c7 e8 aa 01 ff ff 48 8b 
+
+I was able to workaround the problem and I *do* have a library browser
+now, so that's pretty cool. I also like that there's an easy way to
+add books in there...
+
+It also looks like fbreader is severely out of date in Debian
+([[!debbug 765039]]): it has been shipping version 0.12 forever now,
+while upstream is at 0.99. Which version are you using? Even then,
+that version is over 3 years old now, and it seems fbreader turned
+proprietary in 2015...
+
+As for PDF reflows, I have found this generally never works. I have
+*never* found PDFs to be *reflowable*, that's just basically an
+impossible problem to solve, especially with LaTeX-like, scientific,
+two-column articles. The best, for this, is to just read the PDF on a
+bigger screen, and for that those bigger e-readers are just great,
+albeit expensive.
+"""]]

Added a comment: fbreader has a collection browser & device sync'ing
diff --git a/software/desktop/calibre/comment_7_06dae7ff884d9d42484d6080b0e089cd._comment b/software/desktop/calibre/comment_7_06dae7ff884d9d42484d6080b0e089cd._comment
new file mode 100644
index 00000000..e65f80ae
--- /dev/null
+++ b/software/desktop/calibre/comment_7_06dae7ff884d9d42484d6080b0e089cd._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ ip="107.190.36.196"
+ claimedauthor="mvc"
+ subject="fbreader has a collection browser & device sync'ing"
+ date="2019-10-07T02:50:13Z"
+ content="""
+Thanks for the info on Calibre; it seemed overengineered to me and you've just confirmed that. That said, I haven't used it since discovering fbreader.
+
+fbreader has a fine collection browser, although on mobile you have to pay a small amount to get the version of the app which shows cover images (I did this only to support the developer). If you're willing to use Google Drive it also does device synchronization; you upload at https://books.fbreader.org and then can download to any device. It also reads several formats (epub, mobi, fb2, CBR, PDF...), so no need for conversion. My main complaint is that it doesn't reflow text in PDFs, which is annoying when reading on the small screen on my phone, but that feature's on the short-term roadmap.
+
+I know this app is less useful to people who want to use an actual ereader and/or don't want to store their books with Google, but for others it's worth considering.
+"""]]

Added a comment: Another perspective
diff --git a/software/desktop/calibre/comment_6_755401e4d6296d02f014fa0368ecaf65._comment b/software/desktop/calibre/comment_6_755401e4d6296d02f014fa0368ecaf65._comment
new file mode 100644
index 00000000..8012ad3a
--- /dev/null
+++ b/software/desktop/calibre/comment_6_755401e4d6296d02f014fa0368ecaf65._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ ip="96.44.142.194"
+ claimedauthor="John Goerzen"
+ url="https://changelog.complete.org"
+ subject="Another perspective"
+ date="2019-10-07T01:53:45Z"
+ content="""
+Hi,
+
+Thanks for writing this.  So I have a Kindle, which doesn't support ePub at all.  I have used Calibre at times over the years; the organization it imposes over a collection is very good, but the formatting changes in makes and the things it does during \"synchronization\" are not.  I have mostly stopped using it because it is too cumbersome, though I do invoke ebook-viewer manually from time to time.  Critically, though, Calibre does provide mobi-to-epub conversion and better support for the newer formats Amazon keeps burdening us with than most other tools.  So if I were to switch to another tool, I'd have to start with Calibre and the other tool would be useful only for reading things on a PC screen (a thing I only do occasionally with ePub-type books) and not at all useful for reading things on my Kindle (a thing I do often).
+
+This is not a defense of Calibre; I know of its quality problems first-hand, but just to say that anything that is ePub-centric is totally unhelpful to a large segment of people.
+"""]]

Added a comment: git-annex metadata
diff --git a/software/desktop/calibre/comment_5_8a0d7b8c032e0b890b571386104e5b90._comment b/software/desktop/calibre/comment_5_8a0d7b8c032e0b890b571386104e5b90._comment
new file mode 100644
index 00000000..07a84ae2
--- /dev/null
+++ b/software/desktop/calibre/comment_5_8a0d7b8c032e0b890b571386104e5b90._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ ip="73.223.196.139"
+ claimedauthor="Pig Monkey"
+ url="https://pig-monkey.com"
+ subject="git-annex metadata"
+ date="2019-10-07T01:15:52Z"
+ content="""
+I've often thought that one of these days I should write a script that would parse through Calibre's `metadata.opf` file for each book and add it to the git-annex metadata of the ebook file. This would allow you to do all sorts of browsing, filtering and searching with git-annex's own powerful tooling, which is probably better than anything we could do today with Calibre itself (assuming you don't need a GUI).
+
+But the problem is getting the metadata in the first place which, as you pointed out, is one of the things that Calibre does pretty well. For my video collection, I wrote [metamovie](https://github.com/pigmonkey/metamovie/) to pull down metadata of movies and television shows from IMDB and store it as git-annex metadata. I suspect that it wouldn't be too difficult to hack together a similar script, using something like Google Books or Goodreads as the source. The difficult part is probably the search. With movies there is a single canonical entry, but with books you may have dozen of editions. Choosing the right one (or the one with the richest data, even if it doesn't exactly match your edition) could be a bit tricky.
+"""]]

Added a comment
diff --git a/software/desktop/calibre/comment_4_332d247445d56fdc66711a3de031fcf0._comment b/software/desktop/calibre/comment_4_332d247445d56fdc66711a3de031fcf0._comment
new file mode 100644
index 00000000..410f053b
--- /dev/null
+++ b/software/desktop/calibre/comment_4_332d247445d56fdc66711a3de031fcf0._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ ip="109.190.84.43"
+ claimedauthor="tonton"
+ subject="comment 4"
+ date="2019-10-07T00:36:13Z"
+ content="""
+For okular on Debian, the epub plugin is in the okular-extra-backends package.
+Can't tell you if it works fine (I don't use ebooks) but I can open epubs.
+"""]]

backtrack a little on python 3 support
Calibre 4 does support py3, it is plugins that are missing.
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index eeb52fe4..7190138e 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -54,11 +54,27 @@ However, it has had many problems over the years:
    mounting partitions][] which upstream refused to fix properly even
    after a [LWN article][] came out about it.
 
- * **No support for Python 3**. because of this, Calibre was [removed from
-   Debian in 2019][] ([[!debbug 936270]]). Now a there is [port in
-   progress][], but the author infamously claimed it wasn't necessary
-   to port to Python3 because he could [maintain Python 2 himself][]
-
+ * **Incomplete Python 3 support**. because of this, Calibre 4.0 was
+   [removed from Debian in 2019][] ([[!debbug 936270]]). Now a there
+   is [port in progress][] which is going well: only the plugins and
+   the ebook-viewer are blocking progress right now. In the past, the
+   author infamously claimed it wasn't necessary to port to Python3
+   because he could [maintain Python 2 himself][], but it seems he
+   backtracked on that position since then.
+
+Update: a previous version of that post claimed that all of Calibre
+had been removed from Debian. This was inaccurate, as the [Debian
+Calibre maintainer pointed out][]. What happened was [Calibre 4.0 was
+uploaded to Debian unstable][], then [broke][] because of missing
+Python 2 dependencies, and an [older version (3.48) was uploaded in
+its place][]. So Calibre *will* stay around in Debian for the
+foreseeable future, hopefully, but the current latest version (4.0)
+cannot get in because it depends on older Python 2 libraries.
+
+[broke]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=941802
+[older version (3.48) was uploaded in its place]: https://tracker.debian.org/news/1069605/accepted-calibre-400really348dfsg-1-source-into-unstable/
+[Calibre 4.0 was uploaded to Debian unstable]: https://tracker.debian.org/news/1069411/accepted-calibre-400dfsg-1-source-into-unstable/
+[Debian Calibre maintainer pointed out]: https://mastodon.social/@norbu/102918222761204651
 [LWN article]: https://lwn.net/Articles/465311/
 [legendary security bug about how Calibre handled mounting partitions]: https://bugs.launchpad.net/calibre/+bug/885027
 [in my experience]: https://lists.debian.org/87muy0usv1.fsf@curie.anarc.at
@@ -66,7 +82,7 @@ However, it has had many problems over the years:
 [port in progress]: https://github.com/kovidgoyal/calibre/blob/63f1996/README.python3
 [removed from Debian in 2019]: https://www.preining.info/blog/2019/10/rip-for-now-calibre-in-debian/
 
-The latest issue (lack of Python 3) is the last straw, for me. While
+The latest issue (Python 3) is the last straw, for me. While
 Calibe is an awesome piece of software, I can't help but think it's
 doing too much, and the wrong way. It's one of those tools that looks
 amazing on the surface, but when you look underneath, it's a monster

creating tag page tag/silly
diff --git a/tag/silly.mdwn b/tag/silly.mdwn
new file mode 100644
index 00000000..0b7da737
--- /dev/null
+++ b/tag/silly.mdwn
@@ -0,0 +1,4 @@
+[[!meta title="pages tagged silly"]]
+
+[[!inline pages="tagged(silly)" actions="no" archive="yes"
+feedshow=10]]

silly benchmark
diff --git a/blog/2019-10-06-native-apps-matter.mdwn b/blog/2019-10-06-native-apps-matter.mdwn
new file mode 100644
index 00000000..73cd3c2f
--- /dev/null
+++ b/blog/2019-10-06-native-apps-matter.mdwn
@@ -0,0 +1,47 @@
+[[!meta title="This is why native apps matter"]]
+
+I was just looking a web stream on Youtube today and was wondering why
+my CPU was so busy. So I fired up top and saw my web browser (Firefox)
+took up around 70% of a CPU to play the stream.
+
+I thought, "this must be some high resolution crazy stream!  how
+modern! such wow!" Then I thought, wait, this is the web, there must
+be something insane going on.
+
+So I did a little experiment: I started `chromium --temp-profile` on
+the stream, alongside `vlc` (which can also play Youtube
+streams!). Then I took a snapshot of the [top(1)][] command after 5
+minutes. Here are the results:
+
+[top(1)]: https://manpages.debian.org/top
+
+      PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
+    16332 anarcat   20   0 1805160 269684 102660 S  60,2   1,7   3:34.96 chromium
+    16288 anarcat   20   0  974872 119752  87532 S  33,2   0,7   1:47.51 chromium
+    16410 anarcat   20   0 2321152 176668  80808 S  22,0   1,1   1:15.83 vlc
+     6641 anarcat   20   0   21,1g 520060 137580 S  13,8   3,2  55:36.70 x-www-browser
+    16292 anarcat   20   0  940340  83980  67080 S  13,2   0,5   0:41.28 chromium
+     1656 anarcat   20   0 1970912  18736  14576 S  10,9   0,1   4:47.08 pulseaudio
+     2256 anarcat   20   0  435696  93468  78120 S   7,6   0,6  16:03.57 Xorg
+    16262 anarcat   20   0 3240272 165664 127328 S   6,2   1,0   0:31.06 chromium
+      920 message+  20   0   11052   5104   2948 S   1,3   0,0   2:43.37 dbus-daemon
+    17915 anarcat   20   0   16664   4164   3276 R   1,3   0,0   0:02.07 top
+
+To deconstruct this, you can see my Firefox process (masquerading as
+`x-www-browser`) which has been started for a long time. It's taken 55
+hours of CPU time, but let's ignore that for now as it's not in the
+benchmark. What I find fascinating is there are at least 4 chromium
+processes running here, and they collectively take up over 7 minutes
+of CPU time.
+
+Compare this a little over *one* (1!!!11!!!) minute of CPU time for
+VLC, and you realize why people are so ranty about everything being
+packaged as web apps these days. It's basically using up an order of
+magnitudes more processing power (and therefore electric power and
+slave labor) to watch those silly movies in your web browsers than in
+a proper video player.
+
+Keep that in mind next time you let Youtube go on a "autoplay Donald
+Drumpf" playlist...
+
+[[!tag web performance silly debian-planet benchmark]]

link to mastodon
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index aedc6572..eeb52fe4 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -224,3 +224,6 @@ easier to run Calibre headless, in a virtual machine or remote server
 for extra isoluation, for example.
 
 [[!tag blog debian-planet python ebook python-planet python archive wallabako git-annex wallabag]]
+
+Update: this post generated some activity on Mastodon, [follow the
+conversation here or on your favorite Mastodon instance](https://social.weho.st/@anarcat/102917682883043910).

another thing
diff --git a/software/desktop/calibre/comment_3_dfbfbefc7fb07f0079e9f2d140d0fc2a._comment b/software/desktop/calibre/comment_3_dfbfbefc7fb07f0079e9f2d140d0fc2a._comment
new file mode 100644
index 00000000..07331174
--- /dev/null
+++ b/software/desktop/calibre/comment_3_dfbfbefc7fb07f0079e9f2d140d0fc2a._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="""already used tools"""
+ date="2019-10-06T23:50:44Z"
+ content="""
+Another thing to understand about this list of tools is that I already use a lot of those. I already:
+
+ * use Sphinx and Sigil to work with eBooks
+ * manage and synchronize my library across multiple devices with git-annex
+ * read PDFs with Evince (which Atril is derived from)
+ * read RSS feeds with another feed reader
+
+It's not like I'm hell-bent on causing the Calibre people pain here. :) It's just that I found too many problems with the software, and now it's possibly going away so I'm looking at alternatives. I thought I could share this with the community, if you don't like the answers, you're free to talk a walk elsewhere and keep on happily using Calibre, blissfully unaware of any problems I might be ranting about here. :p
+"""]]

update: played with liber a bit
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index ae42db07..aedc6572 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -153,7 +153,17 @@ Calibre is...
    solving that problem. The [Liber][] web server, however, does
    provide similar search and metadata functionality. It also supports
    migrating from an existing Calibre database as it can read the
-   Calibre metadata stores.
+   Calibre metadata stores. When no metadata is found, it fetches some
+   from online sources (currently Google Books).
+
+   One major limitation of Liber in this context is that it's solely
+   search-driven: it will not allow you to see (for example) the
+   "latest books added" or "browse by author". It also doesn't support
+   "uploading" books although it will incrementally pick up new books
+   added by hand in the library. It somewhat assumes Calibre already
+   exists, in a way, to properly curate the library and is more
+   designed to be a search engine and book sharing system between
+   liber instances.
 
    This also connects with the more general "book inventory" problem I
    have which involves an inventory physical books and directory of

Added a comment: maybe
diff --git a/software/desktop/calibre/comment_2_9740d0d91d893fcdb7ec4f05a967877a._comment b/software/desktop/calibre/comment_2_9740d0d91d893fcdb7ec4f05a967877a._comment
new file mode 100644
index 00000000..b3f6c613
--- /dev/null
+++ b/software/desktop/calibre/comment_2_9740d0d91d893fcdb7ec4f05a967877a._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="anarcat"
+ avatar="https://seccdn.libravatar.org/avatar/741655483dd8a0b4df28fb3dedfa7e4c"
+ subject="maybe"
+ date="2019-10-06T23:25:58Z"
+ content="""
+maybe you're right. maybe the result will be too complex and buggy and will not be useful. but the reality of the problem now is that Calibre 4.0 is not going to make it to Debian until it's ported to Python 3. And even if it does, I have enough serious concerns about the security of Calibre to never want to use it again. It would need to go through a full audit, with a significant overhaul of its design and architecture, for me to ever trust it again.
+
+I strongly doubt that the tools I have enumerated in my review will be as buggy and insecure as Calibre. Maybe I'll be proven wrong, but so far, many of those tools have proven to be well maintained and perform extremely well.
+
+I feel it's definitely worth a try.
+
+(I am also unsure as to which package you're refering to when you say \"now that well maintained\"...)
+"""]]

Added a comment
diff --git a/software/desktop/calibre/comment_1_2f5d6d59af2c27902fbe63b240dd5410._comment b/software/desktop/calibre/comment_1_2f5d6d59af2c27902fbe63b240dd5410._comment
new file mode 100644
index 00000000..bfc46a41
--- /dev/null
+++ b/software/desktop/calibre/comment_1_2f5d6d59af2c27902fbe63b240dd5410._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ ip="190.244.169.52"
+ claimedauthor="Carlos"
+ subject="comment 1"
+ date="2019-10-06T23:02:24Z"
+ content="""
+> Calibre is a complex piece of machinery, and it's therefore buggy.
+
+So you're going to replace it with 6 or 7 pieces of machinery, some of them complex, some of them buggy, some of them now that well maintained.
+"""]]

fix broken link
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 2f87b971..ae42db07 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -115,7 +115,7 @@ Calibre is...
 [Atril]: https://tracker.debian.org/pkg/atril
 [ebook-viewer]: https://manpages.debian.org/ebook-viewer
 
- * an **ebook editor**: Calibre also ships with an [ebook-editor][]
+ * an **ebook editor**: Calibre also ships with an [ebook-edit][]
    command, which allows you to do all sorts of nasty things to your
    ebooks. I have rarely used this tool, having found it hard to use
    and not giving me the results I needed, in my use case (which was
@@ -127,7 +127,7 @@ Calibre is...
 
 [Sphinx documentation system]: http://www.sphinx-doc.org/
 [Sigil]: https://sigil-ebook.com/
-[ebook-editor]: https://manpages.debian.org/ebook-editor
+[ebook-edit]: https://manpages.debian.org/ebook-edit
 
  * a **file converter**: Calibre can convert between many ebook
    formats, to accomodate the various readers. In my experience, this

mupdf is awesome
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index ce4f940c..2f87b971 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -8,7 +8,7 @@ Summary
 TL;DR: I'm considering replacing those various [Calibre][] compnents with...
 
  * ebook-viewer: using a Kobo or other ebook reader, possibly
-   [Atril][] on the desktop?
+   [Atril][] or [MuPDF][] on the desktop?
  * ebook-editor: [Sigil][].
  * collection browser: [Liber][]? see also [[services/bookmarks]]
  * device synchronisation: [git-annex][]?
@@ -90,7 +90,7 @@ Calibre is...
 
     * [Atril][], MATE's version of Evince, supports ePUBs (Evince
       doesn't)
-    * [MuPDF][] also reads ePUBs without problems
+    * [MuPDF][] also reads ePUBs without problems and is really fast
     * [fbreader][] also supports ePUBs, but is much slower than all
       those others
     * Emacs (of course) supports ebooks through [nov.el][]

add toc
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index f22153d4..ce4f940c 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -1,5 +1,7 @@
 [[!meta title="Calibre replacement considerations"]]
 
+[[!toc levels=2]]
+
 Summary
 =======
 

s/archiving/archive
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 9a753f8d..f22153d4 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -211,4 +211,4 @@ limited exposure to other security issues. It would also make it
 easier to run Calibre headless, in a virtual machine or remote server
 for extra isoluation, for example.
 
-[[!tag blog debian-planet python ebook archiving python-planet python ebook archive wallabako git-annex wallabag]]
+[[!tag blog debian-planet python ebook python-planet python archive wallabako git-annex wallabag]]
diff --git a/tag/archiving.mdwn b/tag/archiving.mdwn
deleted file mode 100644
index 3359884e..00000000
--- a/tag/archiving.mdwn
+++ /dev/null
@@ -1,4 +0,0 @@
-[[!meta title="pages tagged archiving"]]
-
-[[!inline pages="tagged(archiving)" actions="no" archive="yes"
-feedshow=10]]

add ebook
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index d36c7227..9a753f8d 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -211,4 +211,4 @@ limited exposure to other security issues. It would also make it
 easier to run Calibre headless, in a virtual machine or remote server
 for extra isoluation, for example.
 
-[[!tag blog debian-planet python ebook archiving python-planet python archive wallabako git-annex wallabag]]
+[[!tag blog debian-planet python ebook archiving python-planet python ebook archive wallabako git-annex wallabag]]

creating tag page tag/archiving
diff --git a/tag/archiving.mdwn b/tag/archiving.mdwn
new file mode 100644
index 00000000..3359884e
--- /dev/null
+++ b/tag/archiving.mdwn
@@ -0,0 +1,4 @@
+[[!meta title="pages tagged archiving"]]
+
+[[!inline pages="tagged(archiving)" actions="no" archive="yes"
+feedshow=10]]

creating tag page tag/ebook
diff --git a/tag/ebook.mdwn b/tag/ebook.mdwn
new file mode 100644
index 00000000..bc890e05
--- /dev/null
+++ b/tag/ebook.mdwn
@@ -0,0 +1,4 @@
+[[!meta title="pages tagged ebook"]]
+
+[[!inline pages="tagged(ebook)" actions="no" archive="yes"
+feedshow=10]]

turn this into a blog
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 677c97b3..d36c7227 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -1,49 +1,58 @@
-[Calibre][] is amazing software: it works on Windows and Linux, and allows
-one to manage ebooks on your desktop and a multitude of ebook
-readers.
-
-[Calibre]: https://calibre-ebook.com/
+[[!meta title="Calibre replacement considerations"]]
 
 Summary
 =======
 
-TL;DR: I'm considering replacing those various Calibre compnents with...
+TL;DR: I'm considering replacing those various [Calibre][] compnents with...
 
  * ebook-viewer: using a Kobo or other ebook reader, possibly
    [Atril][] on the desktop?
  * ebook-editor: [Sigil][].
  * collection browser: [Liber][]? see also [[services/bookmarks]]
- * device synchronisation: git-annex?
+ * device synchronisation: [git-annex][]?
  * RSS reader: [feed2exec][], [wallabako][]
  * ebook web server: [Liber][]?
 
+[git-annex]: https://git-annex.branchable.com/
+
 See below why and a deeper discussion on all the features.
 
 Problems with Calibre
 =====================
 
-It has, however, had many problems over the years:
+[Calibre][] is an amazing software: it allows users to manage ebooks
+on your desktop and a multitude of ebook readers. It's used by Linux
+geeks as well as Windows power-users and vastly surpasses any native
+app shipped by ebook manufacturers. I know almost exactly zero people
+that have an ebook reader that do *not* use Calibre.
+
+[Calibre]: https://calibre-ebook.com/
+
+However, it has had many problems over the years:
 
- * Calibre's inclusion inside Debian has been bumpy in itself, it
-   ships embedded libraries ([[!debbug 872595]], [[!debbug 704977]],
-   [[!debbug 684229]], [[!debbug 555352]], [[!debbug 555368]],
-   [[!debbug 700838]], most fixed in Debian), sometimes with security issues
-   ([[!debbug 873660]], [[!debbug 787085]])
+ * Calibre is a **complex** piece of machinery, and it's therefore
+   **buggy**. It manages to simultaneously ship with **embedded
+   libraries** ([[!debbug 872595]], [[!debbug 704977]], [[!debbug
+   684229]], [[!debbug 555352]], [[!debbug 555368]], [[!debbug
+   700838]], most fixed in Debian) and also suffer from the **NIH
+   syndrome*. For example, it implement its own web framework instead
+   of reusing stuff like requests or flask.
 
- * There are numerous security issues in Calibre. For example, it can
+ * There are **numerous security issues in Calibre**. For example, it can
    execute arbitrary code while fetching news ([[!debbug 873795]]) or
    plugin updates ([[!debbug 640026]]), it would phone home ([[!debbug
    584334]], fixed in Debian), allowed arbitrary file access via
    crafted files ([[!debbug 853004]], [[!debbug 608822]]), arbitrary
    code execution in bookmark data ([[!debbug 892242]]), and XSS vuln
-   ([[!debbug 608822]]). Some of those issues have been fixed upstream
-   but, [in my experience][], it's clear that upstream does not take
-   security seriously at all. The best example is probably the
-   [legendary security bug about how Calibre handled mounting
-   partitions][] which upstream refused to fix properly even after a
-   [LWN article][] came out about it.
-
- * No support for Python 3. because of this, Calibre was [removed from
+   ([[!debbug 608822]]), or even insecure embedded libraries
+   ([[!debbug 873660]], [[!debbug 787085]]). Some of those issues have
+   been fixed upstream but, [in my experience][], it's clear that
+   **upstream does not take security seriously**. The best example is
+   probably the [legendary security bug about how Calibre handled
+   mounting partitions][] which upstream refused to fix properly even
+   after a [LWN article][] came out about it.
+
+ * **No support for Python 3**. because of this, Calibre was [removed from
    Debian in 2019][] ([[!debbug 936270]]). Now a there is [port in
    progress][], but the author infamously claimed it wasn't necessary
    to port to Python3 because he could [maintain Python 2 himself][]
@@ -57,10 +66,10 @@ It has, however, had many problems over the years:
 
 The latest issue (lack of Python 3) is the last straw, for me. While
 Calibe is an awesome piece of software, I can't help but think it's
-too much, and the wrong way. It's one of those tools that looks
+doing too much, and the wrong way. It's one of those tools that looks
 amazing on the surface, but when you look underneath, it's a monster
 that is impossible to maintain, a liability that is just bound to
-cause problems in the future.
+cause more problems in the future.
 
 What does Calibre do anyways
 ============================
@@ -89,7 +98,11 @@ Calibre is...
       (#715470)][]
     * [lucidor][] also looks interesting, but is not packaged in
       Debian either (although upstream provides a .deb)
+    * [koreader][] and [plato][] are good alternatives for the Kobo
+      reader (although koreader also now has builds for Debian)
 
+[plato]: https://github.com/baskerville/plato/
+[koreader]: https://github.com/koreader/koreader/
 [Okular]: https://okular.kde.org/
 [lucidor]: http://lucidor.org/lucidor/
 [coolreader]: http://list.xmodulo.com/cool-reader.html
@@ -140,17 +153,17 @@ Calibre is...
    migrating from an existing Calibre database as it can read the
    Calibre metadata stores.
 
-   This bridges with the more general "book inventory" problem which
-   also includes physical books and online articles. See also
-   [[firefox]] (Zotero section) and [[bookmarks]] for a longer
-   discussion of that problem.
+   This also connects with the more general "book inventory" problem I
+   have which involves an inventory physical books and directory of
+   online articles. See also [[firefox]] (Zotero section) and
+   [[bookmarks]] for a longer discussion of that problem.
 
  * a **device synchronization tool** : I mostly use Calibre to
    synchronize books with an ebook-reader. It can also automatically
    update the database on the ebook with relevant metadata
    (e.g. collection or "shelves"), although I do not really use that
    feature. I do like to use Calibre to quickly search and prune books
-   from by ebook reader, however. I might be able to use `git-annex`
+   from by ebook reader, however. I might be able to use [git-annex][]
    for this, however, given that I already use it to synchronize and
    backup my ebook collection in the first place...
 
@@ -159,9 +172,9 @@ Calibre is...
    continously generating new ebooks based on those feeds and I would
    never read them, because I would never find the time to transfer
    them to my ebook viewer in the first place. Instead, I use a
-   regular RSS feed reader (I ended up writing my own, [feed2exec][])
-   and when I find an article I like, I added it to [Wallabag][] which
-   gets sync'd to my reader using [wallabako][] (another tool I wrote)
+   regular RSS feed reader. I ended up writing my own, [feed2exec][])
+   and when I find an article I like, I add it to [Wallabag][] which
+   gets sync'd to my reader using [wallabako][], another tool I wrote.
 
 [Wallabag]: https://wallabag.org/en
 [wallabako]: https://gitlab.com/anarcat/wallabako
@@ -172,7 +185,7 @@ Calibre is...
    supports acting as an OPDS directory, which is kind of neat. There
    are, as far as I know, no alternative for such a system although
    there *are* servers to share and store ebooks, like [Trantor][] or
-   [Liber][]
+   [Liber][].
 
 [Liber]: https://git.autistici.org/ale/liber
 [Trantor]: https://gitlab.com/trantor/trantor
@@ -186,5 +199,16 @@ different computers, but I never used that feature.
 So there you go. It's a colossal task! And while it's great that
 Calibre does all those things, I can't help but think that it would be
 better if Calibre was split up in multiple components, each maintained
-separately. I would love to use *only* the document browser for
-example.
+separately. I would love to use *only* the document converter, for
+example. It's possible to do that on the commandline, but it still
+means I have the entire Calibre package installed.
+
+Maybe a simple solution, from Debian's point of view, would be to
+split the package into multiple components, with the GUI and web
+servers packaged separately from the commandline converter. This way I
+would be able to install only the parts of Calibre I need and have
+limited exposure to other security issues. It would also make it
+easier to run Calibre headless, in a virtual machine or remote server
+for extra isoluation, for example.
+
+[[!tag blog debian-planet python ebook archiving python-planet python archive wallabako git-annex wallabag]]

push tl;dr: on top
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 6218ec05..677c97b3 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -4,6 +4,21 @@ readers.
 
 [Calibre]: https://calibre-ebook.com/
 
+Summary
+=======
+
+TL;DR: I'm considering replacing those various Calibre compnents with...
+
+ * ebook-viewer: using a Kobo or other ebook reader, possibly
+   [Atril][] on the desktop?
+ * ebook-editor: [Sigil][].
+ * collection browser: [Liber][]? see also [[services/bookmarks]]
+ * device synchronisation: git-annex?
+ * RSS reader: [feed2exec][], [wallabako][]
+ * ebook web server: [Liber][]?
+
+See below why and a deeper discussion on all the features.
+
 Problems with Calibre
 =====================
 
@@ -173,14 +188,3 @@ Calibre does all those things, I can't help but think that it would be
 better if Calibre was split up in multiple components, each maintained
 separately. I would love to use *only* the document browser for
 example.
-
-Summary
-=======
-
- * ebook-viewer: using a Kobo or other ebook reader, possibly
-   [Atril][] on the desktop?
- * ebook-editor: [Sigil][].
- * collection browser: [Liber][]? see also [[services/bookmarks]]
- * device synchronisation: git-annex?
- * RSS reader: [feed2exec][], [wallabako][]
- * ebook web server: [Liber][]?

summarize way forward
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index f20018e7..6218ec05 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -173,3 +173,14 @@ Calibre does all those things, I can't help but think that it would be
 better if Calibre was split up in multiple components, each maintained
 separately. I would love to use *only* the document browser for
 example.
+
+Summary
+=======
+
+ * ebook-viewer: using a Kobo or other ebook reader, possibly
+   [Atril][] on the desktop?
+ * ebook-editor: [Sigil][].
+ * collection browser: [Liber][]? see also [[services/bookmarks]]
+ * device synchronisation: git-annex?
+ * RSS reader: [feed2exec][], [wallabako][]
+ * ebook web server: [Liber][]?

git-annex as file sync alternative
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index 7cc3db33..f20018e7 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -134,7 +134,10 @@ Calibre is...
    synchronize books with an ebook-reader. It can also automatically
    update the database on the ebook with relevant metadata
    (e.g. collection or "shelves"), although I do not really use that
-   feature.
+   feature. I do like to use Calibre to quickly search and prune books
+   from by ebook reader, however. I might be able to use `git-annex`
+   for this, however, given that I already use it to synchronize and
+   backup my ebook collection in the first place...
 
  * an **RSS reader**: I used this for a while to read RSS feeds on my
    ebook-reader, but it was pretty clunky. Calibre would be

zotero/wallabag/bookie status updates
diff --git a/services/bookmarks.mdwn b/services/bookmarks.mdwn
index 1d5050b1..486c86dd 100644
--- a/services/bookmarks.mdwn
+++ b/services/bookmarks.mdwn
@@ -7,22 +7,12 @@ Current alternatives
 
 Those are either just dead recently, or are still considered.
 
-Bookie
-------
+I'm currently using Wallabag to index my bookmarks and sync some
+articles to my ebook reader with [Wallabako][]. I am using Zotero for
+an inventory of my physical book collection and
+[[software/desktop/calibre]] for my ebook collection.
 
-Then I discovered Bookie, installed by a friend on <https://lib3.net/bookie>. It is pretty impressive: it keeps snapshots of pages and imported my whole bookmark collection *really* fast. Bookie is written in Python.
-
-The downsides?
-
- * not packaged in Debian (WNPP: [[!debbug 744306]])
- * [list of bugs i filed](https://github.com/bookieio/Bookie/issues/created_by/anarcat)
-  * [broken link in RSS search and weirdness in some links](https://github.com/bookieio/Bookie/issues/455)
-  * [read/unread status missing](https://github.com/bookieio/Bookie/issues/454)
- * [fetches favicons from Google](https://github.com/bookieio/Bookie/issues/453)
- * [doesn't integrate with regular bookmarks](https://github.com/bookieio/bookie-chrome/issues/3)
- * [weird duplicate tags issue](https://github.com/bookieio/bookie-chrome/issues/4)
- * [no private bookmarks](https://github.com/bookieio/Bookie/issues/187)
- * [no federation support](https://github.com/bookieio/Bookie/issues/10)
+[Wallabako]: https://gitlab.com/anarcat/wallabako
 
 Wallabag
 --------
@@ -34,9 +24,13 @@ Wallabag supports read/unread status and favorites, and also remember your readi
 Downsides:
 
  * not packaged in Debian (WNPP: [[!debbug 734753]])
- * not installed yet (!)
- * site is currently down (may 15th 2014, [archive.org mirror](http://web.archive.org/web/20140301211138/https://www.wallabag.org/))
  * written in PHP
+ * no tag intersection in searches
+
+See also all the [issues i commented on][] ([and in the app][]).
+
+[and in the app]: https://github.com/wallabag/wallabagger/issues?utf8=%E2%9C%93&q=involves%3Aanarcat
+[issues i commented on]: https://github.com/wallabag/wallabag/issues?utf8=%E2%9C%93&q=involves%3Aanarcat
 
 Zotero
 ------
@@ -125,3 +119,23 @@ Status.net
 ----------
 
 While using SemanticScuttle, I did a brief and feeble attempt at using the [Status.net](http://status.net/) bookmark support, which completely failed basically because I [couldn't import](http://status.net/open-source/issues/3596) my already huge bookmark collection.
+
+Bookie
+------
+
+Then I discovered Bookie, installed by a friend on <https://lib3.net/bookie>. It is pretty impressive: it keeps snapshots of pages and imported my whole bookmark collection *really* fast. Bookie is written in Python.
+
+The downsides?
+
+ * not packaged in Debian (WNPP: [[!debbug 744306]])
+ * [list of bugs i filed](https://github.com/bookieio/Bookie/issues/created_by/anarcat)
+  * [broken link in RSS search and weirdness in some links](https://github.com/bookieio/Bookie/issues/455)
+  * [read/unread status missing](https://github.com/bookieio/Bookie/issues/454)
+ * [fetches favicons from Google](https://github.com/bookieio/Bookie/issues/453)
+ * [doesn't integrate with regular bookmarks](https://github.com/bookieio/bookie-chrome/issues/3)
+ * [weird duplicate tags issue](https://github.com/bookieio/bookie-chrome/issues/4)
+ * [no private bookmarks](https://github.com/bookieio/Bookie/issues/187)
+ * [no federation support](https://github.com/bookieio/Bookie/issues/10)
+
+Update: bookie kind of died. The upstream project is dead and the main
+hosting service shutdown. My friend converted his instance to Wallabag.

move zotero details to the bookmarks page
diff --git a/services/bookmarks.mdwn b/services/bookmarks.mdwn
index 94fce803..1d5050b1 100644
--- a/services/bookmarks.mdwn
+++ b/services/bookmarks.mdwn
@@ -45,6 +45,25 @@ I'm using Zotero for my book collection, so I figured i could use it for my book
 
 The [Zotero dataserver][] was also too difficult to setup, and without a Debian package ([[!debbug 709925]]).
 
+Finally, Zotero is in an uncertain state because of the
+[[software/desktop/firefox]] XULocalypse, so I'm looking for
+replacements. Possible options include:
+
+ * [xapers](https://finestructure.net/xapers/)
+ * [pubs](https://github.com/pubs/pubs)
+ * [papis](https://github.com/papis/papis)
+
+This also overlaps with bookmarking software like:
+
+ * [Turtl](https://turtlapp.com/)
+ * [reminiscense](https://github.com/kanishka-linux/reminiscence)
+ * [bookmark-archiver](https://pirate.github.io/bookmark-archiver/)
+ * [Wallabag](https://wallabag.org/)
+ * [Buku](https://github.com/jarun/Buku)
+ * [Shiori](https://github.com/RadhiFadlillah/shiori)
+
+... and archival software in the [[WARC ecosystem|services/archive]].
+
  [Zotero dataserver]: https://www.zotero.org/support/dev/dataserver_setup
  [bug #15]: https://github.com/zotero/zotero-connectors/issues/15
 
diff --git a/software/desktop/firefox.mdwn b/software/desktop/firefox.mdwn
index e12f352d..3eb62c3b 100644
--- a/software/desktop/firefox.mdwn
+++ b/software/desktop/firefox.mdwn
@@ -149,23 +149,13 @@ hard to use or simply irrelevant.
    down, but it often fails to notice when a site is down or think
    it's down when it isn't. Replaced with [View Page Archive &
    Cache][].
- * [zotero](https://www.zotero.org/) is in a bad shape in Debian. The "XUL" extension is
-   gone from Zotero 5.0, and the 4.0 extension will stop working
-   because upstream will drop support in 2018. Debian is scrambling to
-   package the newer version that is only standalone
-   ([#871502](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871502)). Right now I'm using the standalone binary from
-   upstream but I'm looking at alternatives like:
-    * [xapers](https://finestructure.net/xapers/)
-    * [pubs](https://github.com/pubs/pubs)
-    * [papis](https://github.com/papis/papis)
-   This also overlaps with bookmarking software like:
-    * [Turtl](https://turtlapp.com/)
-    * [reminiscense](https://github.com/kanishka-linux/reminiscence)
-    * [bookmark-archiver](https://pirate.github.io/bookmark-archiver/)
-    * [Wallabag](https://wallabag.org/)
-    * [Buku](https://github.com/jarun/Buku)
-    * [Shiori](https://github.com/RadhiFadlillah/shiori)
-   ... and archival software in the [[WARC ecosystem|services/archive]].
+ * [zotero](https://www.zotero.org/) is in a bad shape in Debian. The
+   "XUL" extension is gone from Zotero 5.0, and the 4.0 extension will
+   stop working because upstream will drop support in 2018. Debian is
+   scrambling to package the newer version that is only standalone
+   ([#871502](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871502)). Right now I'm using the <del>standalone binary from
+   upstream</del> flatpak but I'm looking at alternatives, see
+   [[services/bookmarks]] for that more general problem.
 
 [it's all text!]: https://addons.mozilla.org/en-US/firefox/addon/its-all-text/
 

split device sync in a separate bullet point
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index de94ca9d..7cc3db33 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -118,22 +118,24 @@ Calibre is...
    * allows downloading and editing metadata (like covers) easily
    * track read/unread status (although that's a custom field *I* had
      to add)
-   * synchronize books with an ebook-reader, automatically upddating
-     the database on the ebook with relevant metadata (e.g. collection
-     or "shelves", although I do not really use that feature)
 
    Calibre is, as far as I know, the only tool that goes so deep in
    solving that problem. The [Liber][] web server, however, does
    provide similar search and metadata functionality. It also supports
    migrating from an existing Calibre database as it can read the
-   Calibre metadata stores. It does not, as far as I can tell, support
-   synchronizing your books to an ebook reader.
+   Calibre metadata stores.
 
    This bridges with the more general "book inventory" problem which
    also includes physical books and online articles. See also
    [[firefox]] (Zotero section) and [[bookmarks]] for a longer
    discussion of that problem.
 
+ * a **device synchronization tool** : I mostly use Calibre to
+   synchronize books with an ebook-reader. It can also automatically
+   update the database on the ebook with relevant metadata
+   (e.g. collection or "shelves"), although I do not really use that
+   feature.
+
  * an **RSS reader**: I used this for a while to read RSS feeds on my
    ebook-reader, but it was pretty clunky. Calibre would be
    continously generating new ebooks based on those feeds and I would

fix broken links
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
index f8d0cf24..de94ca9d 100644
--- a/software/desktop/calibre.mdwn
+++ b/software/desktop/calibre.mdwn
@@ -12,7 +12,7 @@ It has, however, had many problems over the years:
  * Calibre's inclusion inside Debian has been bumpy in itself, it
    ships embedded libraries ([[!debbug 872595]], [[!debbug 704977]],
    [[!debbug 684229]], [[!debbug 555352]], [[!debbug 555368]],
-   [[!700838]], most fixed in Debian), sometimes with security issues
+   [[!debbug 700838]], most fixed in Debian), sometimes with security issues
    ([[!debbug 873660]], [[!debbug 787085]])
 
  * There are numerous security issues in Calibre. For example, it can
@@ -75,6 +75,7 @@ Calibre is...
     * [lucidor][] also looks interesting, but is not packaged in
       Debian either (although upstream provides a .deb)
 
+[Okular]: https://okular.kde.org/
 [lucidor]: http://lucidor.org/lucidor/
 [coolreader]: http://list.xmodulo.com/cool-reader.html
 [not yet in Debian (#715470)]: https://bugs.debian.org/715470
@@ -156,6 +157,12 @@ Calibre is...
 [Liber]: https://git.autistici.org/ale/liber
 [Trantor]: https://gitlab.com/trantor/trantor
 
+Note that I might have forgotten functionality in Calibre in the above
+list: I'm only listing the things I have used or am using on a regular
+basis. For example, you can have a USB stick with Calibre on it to
+carry the actual software, along with the book library, around on
+different computers, but I never used that feature.
+
 So there you go. It's a colossal task! And while it's great that
 Calibre does all those things, I can't help but think that it would be
 better if Calibre was split up in multiple components, each maintained

getting tired of calibre
diff --git a/software/desktop/calibre.mdwn b/software/desktop/calibre.mdwn
new file mode 100644
index 00000000..f8d0cf24
--- /dev/null
+++ b/software/desktop/calibre.mdwn
@@ -0,0 +1,163 @@
+[Calibre][] is amazing software: it works on Windows and Linux, and allows
+one to manage ebooks on your desktop and a multitude of ebook
+readers.
+
+[Calibre]: https://calibre-ebook.com/
+
+Problems with Calibre
+=====================
+
+It has, however, had many problems over the years:
+
+ * Calibre's inclusion inside Debian has been bumpy in itself, it
+   ships embedded libraries ([[!debbug 872595]], [[!debbug 704977]],
+   [[!debbug 684229]], [[!debbug 555352]], [[!debbug 555368]],
+   [[!700838]], most fixed in Debian), sometimes with security issues
+   ([[!debbug 873660]], [[!debbug 787085]])
+
+ * There are numerous security issues in Calibre. For example, it can
+   execute arbitrary code while fetching news ([[!debbug 873795]]) or
+   plugin updates ([[!debbug 640026]]), it would phone home ([[!debbug
+   584334]], fixed in Debian), allowed arbitrary file access via
+   crafted files ([[!debbug 853004]], [[!debbug 608822]]), arbitrary
+   code execution in bookmark data ([[!debbug 892242]]), and XSS vuln
+   ([[!debbug 608822]]). Some of those issues have been fixed upstream
+   but, [in my experience][], it's clear that upstream does not take
+   security seriously at all. The best example is probably the
+   [legendary security bug about how Calibre handled mounting
+   partitions][] which upstream refused to fix properly even after a
+   [LWN article][] came out about it.
+
+ * No support for Python 3. because of this, Calibre was [removed from
+   Debian in 2019][] ([[!debbug 936270]]). Now a there is [port in
+   progress][], but the author infamously claimed it wasn't necessary
+   to port to Python3 because he could [maintain Python 2 himself][]
+
+[LWN article]: https://lwn.net/Articles/465311/
+[legendary security bug about how Calibre handled mounting partitions]: https://bugs.launchpad.net/calibre/+bug/885027
+[in my experience]: https://lists.debian.org/87muy0usv1.fsf@curie.anarc.at
+[maintain Python 2 himself]: https://www.mobileread.com/forums/showthread.php?t=293242
+[port in progress]: https://github.com/kovidgoyal/calibre/blob/63f1996/README.python3
+[removed from Debian in 2019]: https://www.preining.info/blog/2019/10/rip-for-now-calibre-in-debian/
+
+The latest issue (lack of Python 3) is the last straw, for me. While
+Calibe is an awesome piece of software, I can't help but think it's
+too much, and the wrong way. It's one of those tools that looks
+amazing on the surface, but when you look underneath, it's a monster
+that is impossible to maintain, a liability that is just bound to
+cause problems in the future.
+
+What does Calibre do anyways
+============================
+
+So let's say I wanted to get rid of Calibre, what would that mean
+exactly? What do I actually use Calibre for anyways?
+
+Calibre is...
+
+ * an **ebook viewer**: Calibre ships with the [ebook-viewer][]
+   command, which allows one to browse a vast variety of ebook
+   formats. I *rarely use* this feature, since I read my ebooks on a
+   e-reader, on purpose. There is, besides, a good variety of
+   ebook-readers, on different platforms, that can replace Calibre
+   here:
+
+    * [Atril][], MATE's version of Evince, supports ePUBs (Evince
+      doesn't)
+    * [MuPDF][] also reads ePUBs without problems
+    * [fbreader][] also supports ePUBs, but is much slower than all
+      those others
+    * Emacs (of course) supports ebooks through [nov.el][]
+    * [Okular][] apparently supports ePUBs, but I must be missing a
+      library because it doesn't actually work here
+    * [coolreader][] is another alternative, [not yet in Debian
+      (#715470)][]
+    * [lucidor][] also looks interesting, but is not packaged in
+      Debian either (although upstream provides a .deb)
+
+[lucidor]: http://lucidor.org/lucidor/
+[coolreader]: http://list.xmodulo.com/cool-reader.html
+[not yet in Debian (#715470)]: https://bugs.debian.org/715470
+[nov.el]: https://github.com/wasamasa/nov.el
+[fbreader]: https://fbreader.org/
+[MuPDF]: https://mupdf.com/
+[Atril]: https://tracker.debian.org/pkg/atril
+[ebook-viewer]: https://manpages.debian.org/ebook-viewer
+
+ * an **ebook editor**: Calibre also ships with an [ebook-editor][]
+   command, which allows you to do all sorts of nasty things to your
+   ebooks. I have rarely used this tool, having found it hard to use
+   and not giving me the results I needed, in my use case (which was
+   to reformat ePUBs before publication). For this purpose, [Sigil][]
+   is a much better option, now packaged in Debian. There are also
+   various tools that render to ePUB: I often use the [Sphinx
+   documentation system][] for that purpose, and have been able to
+   produce ePUBs from LaTeX for some projects.
+
+[Sphinx documentation system]: http://www.sphinx-doc.org/
+[Sigil]: https://sigil-ebook.com/
+[ebook-editor]: https://manpages.debian.org/ebook-editor
+
+ * a **file converter**: Calibre can convert between many ebook
+   formats, to accomodate the various readers. In my experience, this
+   doesn't work very well: the layout is often broken and I have found
+   it's much better to find pristine copies of ePUB books than fight
+   with the converter. There are, however, very few alternatives to
+   this functionality, unfortunately.
+ 
+ * a **collection browser**: this is the main functionality I would
+   miss from Calibre. I am constantly adding books to my library, and
+   Calibre does have this incredibly nice functionality of just
+   hitting "add book" and Just Do The Right Thing™ after
+   that. Specifically, what I like is that it:
+   
+   * sort, view, and search books in folders, per author, date,
+     editor, etc
+   * quick search is especially powerful
+   * allows downloading and editing metadata (like covers) easily
+   * track read/unread status (although that's a custom field *I* had
+     to add)
+   * synchronize books with an ebook-reader, automatically upddating
+     the database on the ebook with relevant metadata (e.g. collection
+     or "shelves", although I do not really use that feature)
+
+   Calibre is, as far as I know, the only tool that goes so deep in
+   solving that problem. The [Liber][] web server, however, does
+   provide similar search and metadata functionality. It also supports
+   migrating from an existing Calibre database as it can read the
+   Calibre metadata stores. It does not, as far as I can tell, support
+   synchronizing your books to an ebook reader.
+
+   This bridges with the more general "book inventory" problem which
+   also includes physical books and online articles. See also
+   [[firefox]] (Zotero section) and [[bookmarks]] for a longer
+   discussion of that problem.
+
+ * an **RSS reader**: I used this for a while to read RSS feeds on my
+   ebook-reader, but it was pretty clunky. Calibre would be
+   continously generating new ebooks based on those feeds and I would
+   never read them, because I would never find the time to transfer
+   them to my ebook viewer in the first place. Instead, I use a
+   regular RSS feed reader (I ended up writing my own, [feed2exec][])
+   and when I find an article I like, I added it to [Wallabag][] which
+   gets sync'd to my reader using [wallabako][] (another tool I wrote)
+
+[Wallabag]: https://wallabag.org/en
+[wallabako]: https://gitlab.com/anarcat/wallabako
+[feed2exec]: https://feed2exec.rtfd.io/
+
+ * an **ebook web server** : Calibre can also act as a web server,
+   presenting your entire ebook collection as a website. It also
+   supports acting as an OPDS directory, which is kind of neat. There
+   are, as far as I know, no alternative for such a system although
+   there *are* servers to share and store ebooks, like [Trantor][] or
+   [Liber][]
+
+[Liber]: https://git.autistici.org/ale/liber
+[Trantor]: https://gitlab.com/trantor/trantor
+
+So there you go. It's a colossal task! And while it's great that
+Calibre does all those things, I can't help but think that it would be
+better if Calibre was split up in multiple components, each maintained
+separately. I would love to use *only* the document browser for
+example.

more notes on the remarkable, generally negative
diff --git a/hardware/tablet.mdwn b/hardware/tablet.mdwn
index c3bc1b5f..e0d9a011 100644
--- a/hardware/tablet.mdwn
+++ b/hardware/tablet.mdwn
@@ -167,14 +167,32 @@ The [reMarkable][] seems promising:
  * 500$USD
 
 [FCC teardown]: https://fccid.io/2AMK2-RM100/Internal-Photos/Internal-Photos-1-3549283
+
 Downsides:
 
- * based on a deprecated version of Android or "Codex, a custom
-   Linux-based OS optimized for low-latency e-paper"
- * software has very negative reviews
- * requires a custom pointer to draw
+ * based on yet another custom Linux distribution called "Codex, a
+   custom Linux-based OS optimized for low-latency e-paper" - which
+   means it will be (needlessly) difficult to write extensions to it
+ * software has very negative reviews - highlights don't follow
+   reflows, generally doesn't seem ready
+ * requires a custom pointer to draw, although it seems there are
+   [compatible pointers][], this FAQ seems to say they might [damage
+   the screen][] - how fast do those wear out anyways?
  * only ePUB and PDF support
  * no backlight?
+ * can it still be used without the "remarkable cloud" stuff?
+ * [battery life may be shorter than expected][]
+ * [disastrous review][]: no metadata display, bad transfer
+   experience, no in-book search, no table of contents, poor ePUB
+   support (everything is plain text, no footnotes), fragile pen, no
+   landscape mode
+ * there's a [desktop app][] but support for Linux was dropped in 2018
+
+[desktop app]: https://remarkablewiki.com/tips/client
+[disastrous review]: https://medium.com/@dmytro_poremskyi/nothing-remarkable-about-the-remarkable-paper-tablet-a-disastrous-reading-experience-200153c43a64
+[battery life may be shorter than expected]: https://remarkablewiki.com/faq/battery_life
+[damage the screen]: https://remarkablewiki.com/faq/nibs
+[compatible pointers]: https://remarkablewiki.com/tech/stylus
 
 There's a [library to write applications for it](https://github.com/canselcik/libremarkable) (here's also an
 [development tutorial](https://dragly.org/2017/12/01/developing-for-the-remarkable/)) which is a good sign, but then why write

price updates
diff --git a/hardware/tablet.mdwn b/hardware/tablet.mdwn
index e6186529..c3bc1b5f 100644
--- a/hardware/tablet.mdwn
+++ b/hardware/tablet.mdwn
@@ -106,7 +106,7 @@ The [Onyx Boox Max 2](https://onyxboox.com/boox_max2) is an awesome creature:
  * Wifi 2.4GHz, Bluetooth
  * 4100mAh battery
  * includes cover case, stylus
- * 
+ * 750$USD, now 700USD
 
 Downsides:
 
@@ -119,7 +119,10 @@ Downsides:
 
 Update: the [Onyx Boox Max 2 Pro](https://onyxboox.com/boox_maxpro)
 just came out with an update on the e-ink technology (Mobius) and a
-more powerful processor.
+more powerful processor. 850$USD
+
+Another update: there's also the [Max
+3](https://onyxboox.com/boox_max3) now at 860$USD.
 
 ### Onyx Boox Note Pro
 
@@ -148,6 +151,8 @@ reMarkable
 
 The [reMarkable][] seems promising:
 
+ [reMarkable]: https://remarkable.com/
+
  * "paper feel"
  * launched by a member of the KDE community
  * 10" display (177 x 256 x 6.7mm / 6.9 x 10.1 x .26 inches)
@@ -158,7 +163,10 @@ The [reMarkable][] seems promising:
  * wifi
  * includes stylus
  * 3000mAh battery
+ * [FCC teardown][]
+ * 500$USD
 
+[FCC teardown]: https://fccid.io/2AMK2-RM100/Internal-Photos/Internal-Photos-1-3549283
 Downsides:
 
  * based on a deprecated version of Android or "Codex, a custom

driverless printing link
diff --git a/services/print.mdwn b/services/print.mdwn
index 507fbdcf..a1def7fd 100644
--- a/services/print.mdwn
+++ b/services/print.mdwn
@@ -55,10 +55,12 @@ Améliorations possibles
 =======================
 
 Les Mac ont particulièrement de la difficulté à parler au serveur
-d'imprimante, qui ne marche pas du tout. Normalement, le "driverless
-printing" devrait rendre cette configuration plus facile: il devrait
-être possible, grâce à ce mécanisme, d'offrir les imprimantes aux
-clients sans qu'ils aient besoin de configurer de "driver".
+d'imprimante, qui ne marche pas du tout. Normalement, le "[driverless
+printing][]" devrait rendre cette configuration plus facile: il
+devrait être possible, grâce à ce mécanisme, d'offrir les imprimantes
+aux clients sans qu'ils aient besoin de configurer de "driver".
+
+[driverless printing]: https://wiki.debian.org/CUPSDriverlessPrinting
 
 Le message d'erreur, dans Mac OS, est "l'imprimante ne répond pas". Il
 semblerait que la solution se trouve soit dans l'[émulation

plus de notes sur le driverless
diff --git a/services/print.mdwn b/services/print.mdwn
index a2dc7acb..507fbdcf 100644
--- a/services/print.mdwn
+++ b/services/print.mdwn
@@ -59,3 +59,9 @@ d'imprimante, qui ne marche pas du tout. Normalement, le "driverless
 printing" devrait rendre cette configuration plus facile: il devrait
 être possible, grâce à ce mécanisme, d'offrir les imprimantes aux
 clients sans qu'ils aient besoin de configurer de "driver".
+
+Le message d'erreur, dans Mac OS, est "l'imprimante ne répond pas". Il
+semblerait que la solution se trouve soit dans l'[émulation
+Airprint](https://wiki.debian.org/CUPSAirPrint) ou [IPP Everywhere](https://wiki.debian.org/CUPSIPPEverywhere), pas clair. Dans les deux cas, ça
+semble mal supporté par CUPS, ce qui est étrange vu que CUPS est un
+projet de Mac OS au départ...

mise à jour: imprimante maintenant sur marcos
diff --git a/services/print.mdwn b/services/print.mdwn
index 03878183..a2dc7acb 100644
--- a/services/print.mdwn
+++ b/services/print.mdwn
@@ -2,6 +2,9 @@ J'ai une imprimante ou deux. Auparavant, [[hardware/server/mafalda]]
 était un serveur d'impression CUPS mais il a été remplacé par
 [[hardware/server/plastik]] car il a un port USB.
 
+Configuration du service 910n
+=============================
+
 Le nouveau serveur utilise le [service p910n de OpenWRT][p910n] car le
 serveur CUPS n'est pas disponible sous la version OpenWRT que j'ai
 installé, présumément parce que j'ai une version "LEDE" du
@@ -19,13 +22,40 @@ ce qui semble, pour l'instant, fonctionner.
 
 [p910n]: https://openwrt.org/docs/guide-user/services/print_server/p910ndprinterserver
 
-Configurer l'imprimante sur une nouvelle machine devrait être
-automatique: elle devrait auto-détecter l'imprimante partagée sur
-`curie`.
+Configuration du serveur CUPS
+=============================
 
-Pour configurer `curie`, il faut ajouter une nouvelle imprimante de
-type "AppSocket/HP JetDirect" avec l'URL
+Mais après, chaque machine doit configurer "CUPS" parler à
+plastik. Pour configurer `curie`, il faut ajouter une nouvelle
+imprimante de type "AppSocket/HP JetDirect" avec l'URL
 `socket://plastik.anarc.at:9100`. On entre ensuite le nom de
 l'imprimante (`HP-LaserJet-1012`) et on la partage, puis on choisit le
 driver `HP LaserJet 1012 hpijs`, qui est disponible dans le [package
 printer-driver-hpijs](https://tracker.debian.org/printer-driver-hpijs).
+
+Maintenant que `curie` n'est plus à la maison, j'ai configuré `marcos`
+de la même façon, et j'ai marqué l'imprimante comme partagée
+également.
+
+Configurer de clients CUPS
+==========================
+
+Configurer l'imprimante sur une nouvelle machine devrait être
+automatique: elle devrait auto-détecter l'imprimante partagée sur
+`marcos`.
+
+Curieusement, sur `angela`, bien que l'imprtimante soit détectée, elle
+me demande de choisir un pilote. `HP LaserJet 1012 Printer - IPP
+Everywhere™`. 
+
+Mais a priori, il n'est pas nécessaire d'installer l'imprimante, elle
+devrait apparaître magiquement dans les dialogues CUPS.
+
+Améliorations possibles
+=======================
+
+Les Mac ont particulièrement de la difficulté à parler au serveur
+d'imprimante, qui ne marche pas du tout. Normalement, le "driverless
+printing" devrait rendre cette configuration plus facile: il devrait
+être possible, grâce à ce mécanisme, d'offrir les imprimantes aux
+clients sans qu'ils aient besoin de configurer de "driver".

removed
diff --git a/blog/2018-04-12-terminal-emulators-1/comment_5_d88343198a02f9c27c21173fe0be64e1._comment b/blog/2018-04-12-terminal-emulators-1/comment_5_d88343198a02f9c27c21173fe0be64e1._comment
deleted file mode 100644
index 8b73628d..00000000
--- a/blog/2018-04-12-terminal-emulators-1/comment_5_d88343198a02f9c27c21173fe0be64e1._comment
+++ /dev/null
@@ -1,9 +0,0 @@
-[[!comment format=mdwn
- ip="117.26.229.20"
- claimedauthor="zincesas"
- url="http://www.zincesas.com/"
- subject="zincesas"
- date="2019-10-05T04:26:22Z"
- content="""
-<a href=\"http://www.lurioaddl.com/nhl-jerseys-detroit-red-wings-13-pavel-datsyuk-charcoal-cross-check-fashion-jerseys-nfla_uk\">nhl jerseys detroit red wings 13 pavel datsyuk charcoal cross check fashion jerseys</a> <a href=\"http://www.secureorb.com/adidas-yeezy-boost-350-buy-online-free-nikeh_dk\">adidas yeezy boost 350 buy online free</a> <a href=\"http://www.susanlew.com/nike-air-jordan-5-low-unit-afoot_en\">nike air jordan 5 low unit</a> <a href=\"http://www.babilisim.com/nike-air-pegasus-83-grey-suede-cfoot_en\">nike air pegasus 83 grey suede</a> <a href=\"http://www.ftlsubsea.com/nike-kobe-9-elite-release-date-excel-kdf_en\">nike kobe 9 elite release date excel</a> <a href=\"http://www.lewislist.com/white-blue-black-under-armour-curry-2.5-uk-shoes-niken_dk\">white blue black under armour curry 2.5 uk shoes</a>
-"""]]

Added a comment: zincesas
diff --git a/blog/2018-04-12-terminal-emulators-1/comment_5_d88343198a02f9c27c21173fe0be64e1._comment b/blog/2018-04-12-terminal-emulators-1/comment_5_d88343198a02f9c27c21173fe0be64e1._comment
new file mode 100644
index 00000000..8b73628d
--- /dev/null
+++ b/blog/2018-04-12-terminal-emulators-1/comment_5_d88343198a02f9c27c21173fe0be64e1._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ ip="117.26.229.20"
+ claimedauthor="zincesas"
+ url="http://www.zincesas.com/"
+ subject="zincesas"
+ date="2019-10-05T04:26:22Z"
+ content="""
+<a href=\"http://www.lurioaddl.com/nhl-jerseys-detroit-red-wings-13-pavel-datsyuk-charcoal-cross-check-fashion-jerseys-nfla_uk\">nhl jerseys detroit red wings 13 pavel datsyuk charcoal cross check fashion jerseys</a> <a href=\"http://www.secureorb.com/adidas-yeezy-boost-350-buy-online-free-nikeh_dk\">adidas yeezy boost 350 buy online free</a> <a href=\"http://www.susanlew.com/nike-air-jordan-5-low-unit-afoot_en\">nike air jordan 5 low unit</a> <a href=\"http://www.babilisim.com/nike-air-pegasus-83-grey-suede-cfoot_en\">nike air pegasus 83 grey suede</a> <a href=\"http://www.ftlsubsea.com/nike-kobe-9-elite-release-date-excel-kdf_en\">nike kobe 9 elite release date excel</a> <a href=\"http://www.lewislist.com/white-blue-black-under-armour-curry-2.5-uk-shoes-niken_dk\">white blue black under armour curry 2.5 uk shoes</a>
+"""]]

trying vimium
diff --git a/software/desktop/firefox.mdwn b/software/desktop/firefox.mdwn
index 983fd698..e12f352d 100644
--- a/software/desktop/firefox.mdwn
+++ b/software/desktop/firefox.mdwn
@@ -83,7 +83,11 @@ I am testing those and they might make it to the top list once I'm happy:
    good enough for my purposes.
  * [Livemarks](https://addons.mozilla.org/en-US/firefox/addon/livemarks/) (no deb, [source](https://github.com/nt1m/livemarks)) or [Awesome RSS](https://addons.mozilla.org/en-US/firefox/addon/awesome-rss/) (no deb,
    [source](https://github.com/shgysk8zer0/awesome-rss)) - replace the [Live bookmarks removal](https://support.mozilla.org/en-US/kb/live-bookmarks-migration)
+ * [tridactyl](https://github.com/tridactyl/tridactyl) - to use the web browser without the mouse. was
+   [pulled out of AMO][] for a policy violation, might return but in
+   the meantime, i'm trying out [vimium][].
 
+[vimium]: https://github.com/philc/vimium
 [Multi-account containers]: https://github.com/mozilla/multi-account-containers/
 
 Those should probably not be packaged in Debian until they make it to
@@ -193,6 +197,24 @@ And here are the replacements I have found:
  * [uMatrix][]: ported
  * [Wallabager][]: ported
  * [web developer](https://addons.mozilla.org/en-US/firefox/addon/web-developer/): ported
+ * [vimperator][]: a few [vimperator alternatives][] have popped
+   up. [tridactyl][] was the most prominent one, but was also [pulled
+   from AMO][] for a policy violation. [vimium fx][] and [vim-vixen][]
+   seem like the only working alternatives right now, although the
+   vimperator folks say they lack some features, I couldn't figure out
+   which. [pentadactyl][] is the father to all of those, but seems to
+   have disappeared off the internet. [salsa key][] is one without
+   vi-like keybindings. [vimfx][] also did not survive the
+   XULocalypse.
+
+[vimperator]: https://github.com/vimperator/vimperator-labs
+[vim-vixen]: https://github.com/ueokande/vim-vixen
+[vimfx]: https://github.com/akhodakivskiy/VimFx
+[pentadactyl]: http://web.archive.org/web/20171019152504/http://5digits.org/pentadactyl/
+[vimium fx]: https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/?src=search
+[salsa key]: https://addons.mozilla.org/en-US/firefox/addon/saka-key/
+[pulled from AMO]: https://github.com/tridactyl/tridactyl/issues/1800
+[vimperator alternatives]: https://github.com/vimperator/vimperator-labs#end-of-life-and-alternatives
 
 Those are the extensions I was using for which no replacement exists:
 

finish note on ikiwikihosting
diff --git a/services/wiki.mdwn b/services/wiki.mdwn
index 1b97a2d0..917b7b3a 100644
--- a/services/wiki.mdwn
+++ b/services/wiki.mdwn
@@ -184,7 +184,15 @@ upstream release in Debian stable (debian/3.20190228-1)
 I am now considering a switch to [[hugo]] because of the constant
 churn in keeping those patches updated seemingly forever.
 
-ikiwiki-hosting was *also* upgraded. The 
+ikiwiki-hosting was *also* upgraded. The following patches were
+dropped:
+
+ * [hsts](https://ikiwiki-hosting.branchable.com/todo/strict_transport_security/) - merged upstream
+ * [bugs/controlpanel_crashes_when_ikisite-wrapper_fails/](https://ikiwiki-hosting.branchable.com/bugs/controlpanel_crashes_when_ikisite-wrapper_fails/) - not
+   critical
+
+We're now running upstream (`0.20180719-1`), which hopefully still
+works.
 
 2017-06-19: major upgrade
 -------------------------

move the album and pagedown features downwards
diff --git a/services/wiki.mdwn b/services/wiki.mdwn
index ceca1ac2..1b97a2d0 100644
--- a/services/wiki.mdwn
+++ b/services/wiki.mdwn
@@ -165,43 +165,6 @@ To apply this patch set:
     git diff $release..admonitions doc/style.css | ( cd /usr/share/ikiwiki/basewiki ; sudo patch -p2 --dry-run ) &&
     git diff $release..admonitions doc/style.css | ( cd /usr/share/ikiwiki/basewiki ; sudo patch -p2 )
 
-### New feature: markdown WYSIWYG!
-
-I have also tried out the [[!iki todo/pagedown_plugin]]:
-
-    git co pagedown
-    git show ce1e63c IkiWiki | ( cd /usr/share/perl5 ; sudo patch -p1 )
-    git show ce1e63c doc/style.css | ( cd /usr/share/doc/ikiwiki/html/ ; sudo patch -p2 )
-    git show ce1e63c doc/style.css | ( cd /usr/share/ikiwiki/basewiki/ ; sudo patch -p2 )
-    git show ce1e63c doc/style.css | ( cd /usr/share/ikiwiki/themes/actiontabs/ ; sudo patch -p2 )
-    sudo cp /usr/share/doc/ikiwiki/html/style.css /usr/share/ikiwiki/themes/night_city/ikiwiki.css
-    git show ce1e63c templates | ( cd /usr/share/ikiwiki/; sudo patch -p1 )
-    git show ce1e63c underlays | ( cd /usr/share/ikiwiki/; sudo patch -p2 )
-    cd /usr/share/ikiwiki/pagedown/ && sudo make
-
-And it's freaking awesome, we have somewhat WYSIWYG now! Just enable
-the `pagedown` plugin in your wiki.
-
-Update: I don't actually use this. It's yet another patch and no one
-really uses the GUI anyways, as far as I can tell.
-
-### New feature: album plugin
-
-I am experimenting with the [[!iki plugins/contrib/album]] plugin.
-
-[[!format txt """
-anarcat@marcos:ikiwiki$ git diff  3.20130904.1 IkiWiki | ( cd /usr/share/perl5 ; sudo patch -p1  )
-patching file IkiWiki/Plugin/album.pm
-anarcat@marcos:ikiwiki$ git diff  3.20130904.1 templates/ | ( cd /usr/share/ikiwiki/; sudo patch -p1 )
-patching file templates/albumitem.tmpl
-patching file templates/albumnext.tmpl
-patching file templates/albumprev.tmpl
-patching file templates/albumviewer.tmpl
-"""]]
-
-Not good enough, I ended up going with a static gallery generator, see
-[[blog/2018-03-19-sigal]] for details.
-
 2019-10-02: major upgrade
 -------------------------
 
@@ -211,7 +174,9 @@ dropped:
  * [[!iki todo/toc-with-human-readable-anchors]] (merged upstream)
  * [[!iki todo/fix_javascript_load_ordering/]] (merged upstream)
  * [[!iki todo/hide_add_comment_button_in_print/]] (merged upstream)
- * album plugin
+ * the album plugin was totally removed, it's just not good enough. I
+   don't use it and ended up going with a static gallery generator,
+   see [[blog/2018-03-19-sigal]] for details.
 
 Still carrying 5 patches, which were all rebased to the latest
 upstream release in Debian stable (debian/3.20190228-1)
@@ -337,6 +302,39 @@ All the patches above were applied but the magic-mime problem.
 
 The changes cover this [changelog](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=debian/changelog;hb=031ccf618e2fdf50e65ab3a9bffcc7f48c4c2547#l175) between versions `3.20130904.1` and `3.20120725`.
 
+Around this time, the album and pagedown plugins were installed.
+
+### New feature: markdown WYSIWYG!
+
+I have also tried out the [[!iki todo/pagedown_plugin]]:
+
+    git co pagedown
+    git show ce1e63c IkiWiki | ( cd /usr/share/perl5 ; sudo patch -p1 )
+    git show ce1e63c doc/style.css | ( cd /usr/share/doc/ikiwiki/html/ ; sudo patch -p2 )
+    git show ce1e63c doc/style.css | ( cd /usr/share/ikiwiki/basewiki/ ; sudo patch -p2 )
+    git show ce1e63c doc/style.css | ( cd /usr/share/ikiwiki/themes/actiontabs/ ; sudo patch -p2 )
+    sudo cp /usr/share/doc/ikiwiki/html/style.css /usr/share/ikiwiki/themes/night_city/ikiwiki.css
+    git show ce1e63c templates | ( cd /usr/share/ikiwiki/; sudo patch -p1 )
+    git show ce1e63c underlays | ( cd /usr/share/ikiwiki/; sudo patch -p2 )
+    cd /usr/share/ikiwiki/pagedown/ && sudo make
+
+And it's freaking awesome, we have somewhat WYSIWYG now! Just enable
+the `pagedown` plugin in your wiki.
+
+### New feature: album plugin
+
+I am experimenting with the [[!iki plugins/contrib/album]] plugin.
+
+[[!format txt """
+anarcat@marcos:ikiwiki$ git diff  3.20130904.1 IkiWiki | ( cd /usr/share/perl5 ; sudo patch -p1  )
+patching file IkiWiki/Plugin/album.pm
+anarcat@marcos:ikiwiki$ git diff  3.20130904.1 templates/ | ( cd /usr/share/ikiwiki/; sudo patch -p1 )
+patching file templates/albumitem.tmpl
+patching file templates/albumnext.tmpl
+patching file templates/albumprev.tmpl
+patching file templates/albumviewer.tmpl
+"""]]
+
 2013-09-08? Migration à ikiwiki-hosting
 ---------------------------------------
 

upgrade ikiwiki to buster
diff --git a/services/wiki.mdwn b/services/wiki.mdwn
index f499e8c9..ceca1ac2 100644
--- a/services/wiki.mdwn
+++ b/services/wiki.mdwn
@@ -128,37 +128,41 @@ On any given upgrade, the following patches need to be applied:
 
 ### bugfixes
 
-There are two patches left:
+I still carry those patches on top of ikiwiki:
 
- * [[!iki todo/toc-with-human-readable-anchors]] (merged, not released) and [[!iki plugins/contrib/i18nheadinganchors]]
- * [[!iki bugs/footnotes-look-weird]]
  * [[!iki todo/git-annex_support]]
- * [[!iki todo/admonitions]]
+ * [[!iki plugins/contrib/i18nheadinganchors]]
  * [[!iki plugins/contrib/bootstrap]]
-
-I dropped the [[!iki bugs/notifyemail fails with some openid providers]] patch because of the impeding doom of OpenID.
-
-To apply this patch:
-
-    cd src/ikiwiki
-    release=debian/3.20170111
-    git rebase $release dev/git-annex-support
-    git diff $release..dev/git-annex-support | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run )
-    git diff $release..dev/git-annex-support | ( cd /usr/share/perl5 ; sudo patch -p1 )
-    git rebase $release toc-id-recycle
-    git diff $release..toc-id-recycle | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run )
-    git diff $release..toc-id-recycle | ( cd /usr/share/perl5 ; sudo patch -p1  )
-    git rebase $release i18n-headinganchors
-    git diff $release..i18n-headinganchors | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run )
-    git diff $release..i18n-headinganchors | ( cd /usr/share/perl5 ; sudo patch -p1  )
-    git rebase $release bootstrap
-    git diff $release..bootstrap | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run )
-    git diff $release..bootstrap | ( cd /usr/share/perl5 ; sudo patch -p1  )
-    # not sure about that rebase
-    git rebase $release admonitions
-    git diff $release..admonitions IkiWiki/Plugin/admonition.pm | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run )
-    git diff $release..admonitions IkiWiki/Plugin/admonition.pm | ( cd /usr/share/perl5 ; sudo patch -p1 )
-    git diff $release..admonitions doc/style.css | ( cd /usr/share/ikiwiki/basewiki ; sudo patch -p2 --dry-run )
+ * [[!iki todo/admonitions]]
+ * [[!iki bugs/footnotes-look-weird]] (not a patch on core per se, but
+   a modification to the stylesheet, as [many others](https://anarc.at/bootstrap.local.css))
+
+To apply this patch set:
+
+    cd src/ikiwiki &&
+    release=debian/3.20190228-1 &&
+    git rebase $release dev/git-annex-support &&
+    git diff $release..dev/git-annex-support | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run ) &&
+    git diff $release..dev/git-annex-support | ( cd /usr/share/perl5 ;    sudo patch -p1 ) &&
+    git rebase $release i18n-headinganchors &&
+    mv /usr/share/perl5/IkiWiki/Plugin/i18nheadinganchors.pm{,.orig} &&
+    git diff $release..i18n-headinganchors | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run ) &&
+    git diff $release..i18n-headinganchors | ( cd /usr/share/perl5 ; sudo patch -p1  ) &&
+    diff -u /usr/share/perl5/IkiWiki/Plugin/i18nheadinganchors.pm{,.orig} &&
+    rm /usr/share/perl5/IkiWiki/Plugin/i18nheadinganchors.pm.orig &&
+    mv /usr/share/perl5/IkiWiki/Plugin/bootstrap.pm{,.orig} &&
+    git rebase $release bootstrap-plugin &&
+    git diff $release..bootstrap-plugin | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run )
+    git diff $release..bootstrap-plugin | ( cd /usr/share/perl5 ; sudo patch -p1  )
+    diff -u /usr/share/perl5/IkiWiki/Plugin/bootstrap.pm{,.orig} &&
+    rm /usr/share/perl5/IkiWiki/Plugin/bootstrap.pm.orig &&
+    git rebase $release admonitions &&
+    mv /usr/share/perl5/IkiWiki/Plugin/admonition.pm{,.orig} &&
+    git diff $release..admonitions IkiWiki/Plugin/admonition.pm | ( cd /usr/share/perl5 ; sudo patch -p1 --dry-run ) &&
+    git diff $release..admonitions IkiWiki/Plugin/admonition.pm | ( cd /usr/share/perl5 ; sudo patch -p1 ) &&
+    diff -u /usr/share/perl5/IkiWiki/Plugin/admonition.pm{,.orig} &&
+    rm /usr/share/perl5/IkiWiki/Plugin/admonition.pm.orig &&
+    git diff $release..admonitions doc/style.css | ( cd /usr/share/ikiwiki/basewiki ; sudo patch -p2 --dry-run ) &&
     git diff $release..admonitions doc/style.css | ( cd /usr/share/ikiwiki/basewiki ; sudo patch -p2 )
 
 ### New feature: markdown WYSIWYG!
@@ -175,7 +179,11 @@ I have also tried out the [[!iki todo/pagedown_plugin]]:
     git show ce1e63c underlays | ( cd /usr/share/ikiwiki/; sudo patch -p2 )
     cd /usr/share/ikiwiki/pagedown/ && sudo make
 
-And it's freaking awesome, we have somewhat WYSIWYG now! Just enable the `pagedown` plugin in your wiki.
+And it's freaking awesome, we have somewhat WYSIWYG now! Just enable
+the `pagedown` plugin in your wiki.
+
+Update: I don't actually use this. It's yet another patch and no one
+really uses the GUI anyways, as far as I can tell.
 
 ### New feature: album plugin
 
@@ -191,6 +199,28 @@ patching file templates/albumprev.tmpl
 patching file templates/albumviewer.tmpl
 """]]
 
+Not good enough, I ended up going with a static gallery generator, see
+[[blog/2018-03-19-sigal]] for details.
+
+2019-10-02: major upgrade
+-------------------------
+
+Upgraded the entire server to buster. The following patches were
+dropped:
+
+ * [[!iki todo/toc-with-human-readable-anchors]] (merged upstream)
+ * [[!iki todo/fix_javascript_load_ordering/]] (merged upstream)
+ * [[!iki todo/hide_add_comment_button_in_print/]] (merged upstream)
+ * album plugin
+
+Still carrying 5 patches, which were all rebased to the latest
+upstream release in Debian stable (debian/3.20190228-1)
+
+I am now considering a switch to [[hugo]] because of the constant
+churn in keeping those patches updated seemingly forever.
+
+ikiwiki-hosting was *also* upgraded. The 
+
 2017-06-19: major upgrade
 -------------------------
 
@@ -223,6 +253,8 @@ Upstream did a security update in Jessie from
 did reapplied the git-annex and admonition patches since those are
 still useful.
 
+I dropped the [[!iki bugs/notifyemail fails with some openid providers]] patch because of the impeding doom of OpenID.
+
 2016-05-08: security upgrade
 -----------------------------
 

apt-forktracer and other yolo
diff --git a/services/upgrades/buster.mdwn b/services/upgrades/buster.mdwn
index 0d8c77d9..be8d9706 100644
--- a/services/upgrades/buster.mdwn
+++ b/services/upgrades/buster.mdwn
@@ -17,7 +17,7 @@ Procedure
 
         : reset to the default locale
         export LC_ALL=C.UTF-8 &&
-        sudo apt install ttyrec screen debconf-utils apt-show-versions deborphan &&
+        sudo apt install ttyrec screen debconf-utils apt-show-versions deborphan apt-forktracer &&
         sudo ttyrec -e screen /var/log/upgrade-buster.ttyrec
 
  2. Backups and checks:
@@ -31,7 +31,8 @@ Procedure
         dpkg --audit &&
         : look for dkms packages and make sure they are relevant, if not, purge. &&
         dpkg -l '*dkms' || true &&
-        /home/anarcat/bin/backup-$(hostname)
+        /home/anarcat/bin/backup-$(hostname) &&
+        echo End of Step 2
 
  3. Perform any pending upgrade and clear out old pins:
 
@@ -45,15 +46,16 @@ Procedure
         dpkg -l 'linux-image-*' &&
         : look for packages from backports, other suites or archives &&
         : if possible, switch to official packages by disabling third-party repositories &&
-        apt-show-versions | grep -v /stretch | grep -v 'not installed$' &&
+        apt-forktracer &&
         echo End of Step 3
 
  4. Check free space, see [this guide to free up space][] and
     download packages:
 
-        sed -i 's/stretch/buster/g' /etc/apt/sources.list /etc/apt/sources.list.d/* &&
+        sed -i 's/stretch/buster/g' /etc/apt/sources.list $(ls /etc/apt/sources.list.d/*) &&
         apt update && apt -o APT::Get::Trivial-Only=true dist-upgrade && df -h &&
-        apt -y -d upgrade && apt -y -d dist-upgrade
+        apt -y -d upgrade && apt -y -d dist-upgrade &&
+        echo End of Step 4
 
 [this guide to free up space]: http://www.debian.org/releases/buster/amd64/release-notes/ch-upgrading.en.html#sufficient-space
 
@@ -96,6 +98,9 @@ Those are presumably harmless, so this might be a better call:
 
     apt-show-versions | grep -v /buster | grep -v 'not installed$'
 
+Update: the first incantation was updated to use `apt-forktracer`
+instead.
+
 Notable changes
 ===============
 

do not hardcode curie as the backup hostname
diff --git a/services/upgrades/buster.mdwn b/services/upgrades/buster.mdwn
index 1dbf024e..0d8c77d9 100644
--- a/services/upgrades/buster.mdwn
+++ b/services/upgrades/buster.mdwn
@@ -31,7 +31,7 @@ Procedure
         dpkg --audit &&
         : look for dkms packages and make sure they are relevant, if not, purge. &&
         dpkg -l '*dkms' || true &&
-        /home/anarcat/bin/backup-curie
+        /home/anarcat/bin/backup-$(hostname)
 
  3. Perform any pending upgrade and clear out old pins:
 

removed
diff --git a/blog/2018-04-12-terminal-emulators-1/comment_5_73c0769fe70c2a0a79b60980c5c45250._comment b/blog/2018-04-12-terminal-emulators-1/comment_5_73c0769fe70c2a0a79b60980c5c45250._comment
deleted file mode 100644
index a0dad9f3..00000000
--- a/blog/2018-04-12-terminal-emulators-1/comment_5_73c0769fe70c2a0a79b60980c5c45250._comment
+++ /dev/null
@@ -1,9 +0,0 @@
-[[!comment format=mdwn
- ip="140.237.31.52"
- claimedauthor="tabscore"
- url="http://www.tabscore.com/"
- subject="tabscore"
- date="2019-10-01T20:25:36Z"
- content="""
-<a href=\"http://www.cascadem.com/boston-red-sox-cap-for-sale-2016-knithat_uk\">boston red sox cap for sale 2016</a> <a href=\"http://www.contibag.com/adidas-x-18.3-womens-white-blue-pink-shoes-kdf_en\">adidas x 18.3 womens white blue pink shoes</a> <a href=\"http://www.rivieraua.com/new-york-rangers-knit-hat-pom-dogs-hatrm_dk\">new york rangers knit hat pom dogs</a> <a href=\"http://www.backbearz.com/nike-phantom-vision-ic-all-grey-shoes-bnike_en\">nike phantom vision ic all grey shoes</a> <a href=\"http://www.mrstickee.com/nike-mercurial-vapor-black-green-pink-shoes-kda_en\">nike mercurial vapor black green pink shoes</a> <a href=\"http://www.soukherb.com/elite-jason-worilds-womens-jersey-pittsburgh-steelers-93-road-white-nfl-nflrp_dk\">elite jason worilds womens jersey pittsburgh steelers 93 road white nfl</a>
-"""]]

Added a comment: tabscore
diff --git a/blog/2018-04-12-terminal-emulators-1/comment_5_73c0769fe70c2a0a79b60980c5c45250._comment b/blog/2018-04-12-terminal-emulators-1/comment_5_73c0769fe70c2a0a79b60980c5c45250._comment
new file mode 100644
index 00000000..a0dad9f3
--- /dev/null
+++ b/blog/2018-04-12-terminal-emulators-1/comment_5_73c0769fe70c2a0a79b60980c5c45250._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ ip="140.237.31.52"
+ claimedauthor="tabscore"
+ url="http://www.tabscore.com/"
+ subject="tabscore"
+ date="2019-10-01T20:25:36Z"
+ content="""
+<a href=\"http://www.cascadem.com/boston-red-sox-cap-for-sale-2016-knithat_uk\">boston red sox cap for sale 2016</a> <a href=\"http://www.contibag.com/adidas-x-18.3-womens-white-blue-pink-shoes-kdf_en\">adidas x 18.3 womens white blue pink shoes</a> <a href=\"http://www.rivieraua.com/new-york-rangers-knit-hat-pom-dogs-hatrm_dk\">new york rangers knit hat pom dogs</a> <a href=\"http://www.backbearz.com/nike-phantom-vision-ic-all-grey-shoes-bnike_en\">nike phantom vision ic all grey shoes</a> <a href=\"http://www.mrstickee.com/nike-mercurial-vapor-black-green-pink-shoes-kda_en\">nike mercurial vapor black green pink shoes</a> <a href=\"http://www.soukherb.com/elite-jason-worilds-womens-jersey-pittsburgh-steelers-93-road-white-nfl-nflrp_dk\">elite jason worilds womens jersey pittsburgh steelers 93 road white nfl</a>
+"""]]

removed
diff --git a/blog/2018-04-12-terminal-emulators-1/comment_5_8fc46462ea49408e739eb62595777ae2._comment b/blog/2018-04-12-terminal-emulators-1/comment_5_8fc46462ea49408e739eb62595777ae2._comment
deleted file mode 100644
index a35e6ef5..00000000
--- a/blog/2018-04-12-terminal-emulators-1/comment_5_8fc46462ea49408e739eb62595777ae2._comment
+++ /dev/null
@@ -1,9 +0,0 @@
-[[!comment format=mdwn
- ip="140.237.31.52"
- claimedauthor="escortcv"
- url="http://www.escortcv.com/"
- subject="escortcv"
- date="2019-09-28T09:20:01Z"
- content="""
-<a href=\"http://www.lauracepas.com/air-jordan-13-retro-playoffs-black-varsity-red-white-vibrant-yellow_01-bnike_en\">air jordan 13 retro playoffs black varsity red white vibrant yellow_01</a> <a href=\"http://www.nobilisuk.com/fox-racing-sun-hat-uke-hatri_dk\">fox racing sun hat uke</a> <a href=\"http://www.pavincia.com/adidas-ultra-boost-2.0-white-reflective-kdg_en\">adidas ultra boost 2.0 white reflective</a> <a href=\"http://www.escortsun.com/the-thai-version-2014-brazilian-world-cup-soccer-jerseys-spain-team-13-juan-manuel-mata-home-red-jerseys-long-sleeve-nfla_uk\">the thai version 2014 brazilian world cup soccer jerseys spain team 13 juan manuel mata home red jerseys long sleeve</a> <a href=\"http://www.hollinsfh.com/nike-kobe-8-home-nikec_dk\">nike kobe 8 home</a> <a href=\"http://www.zincesas.com/atlanta-hawks-5-josh-smith-red-swingman-jersey-dnfl_en\">atlanta hawks 5 josh smith red swingman jersey</a>
-"""]]

Added a comment: escortcv
diff --git a/blog/2018-04-12-terminal-emulators-1/comment_5_8fc46462ea49408e739eb62595777ae2._comment b/blog/2018-04-12-terminal-emulators-1/comment_5_8fc46462ea49408e739eb62595777ae2._comment
new file mode 100644
index 00000000..a35e6ef5
--- /dev/null
+++ b/blog/2018-04-12-terminal-emulators-1/comment_5_8fc46462ea49408e739eb62595777ae2._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ ip="140.237.31.52"
+ claimedauthor="escortcv"
+ url="http://www.escortcv.com/"
+ subject="escortcv"
+ date="2019-09-28T09:20:01Z"
+ content="""
+<a href=\"http://www.lauracepas.com/air-jordan-13-retro-playoffs-black-varsity-red-white-vibrant-yellow_01-bnike_en\">air jordan 13 retro playoffs black varsity red white vibrant yellow_01</a> <a href=\"http://www.nobilisuk.com/fox-racing-sun-hat-uke-hatri_dk\">fox racing sun hat uke</a> <a href=\"http://www.pavincia.com/adidas-ultra-boost-2.0-white-reflective-kdg_en\">adidas ultra boost 2.0 white reflective</a> <a href=\"http://www.escortsun.com/the-thai-version-2014-brazilian-world-cup-soccer-jerseys-spain-team-13-juan-manuel-mata-home-red-jerseys-long-sleeve-nfla_uk\">the thai version 2014 brazilian world cup soccer jerseys spain team 13 juan manuel mata home red jerseys long sleeve</a> <a href=\"http://www.hollinsfh.com/nike-kobe-8-home-nikec_dk\">nike kobe 8 home</a> <a href=\"http://www.zincesas.com/atlanta-hawks-5-josh-smith-red-swingman-jersey-dnfl_en\">atlanta hawks 5 josh smith red swingman jersey</a>
+"""]]

more rsync quirks
diff --git a/blog/2019-07-07-rsync-oneliner.mdwn b/blog/2019-07-07-rsync-oneliner.mdwn
index 0a7f4028..354ad22d 100644
--- a/blog/2019-07-07-rsync-oneliner.mdwn
+++ b/blog/2019-07-07-rsync-oneliner.mdwn
@@ -19,9 +19,12 @@ The common answer is "just use `-av`":
  * it won't transfer hardlinks, ACLs and other extended attributes
  * it might break if `/etc/password` is not synchronized across hosts
 
+The full one liner
+==================
+
 The answer, *of course*, is instead the very intuitive:
 
-    rsync -PaSHAX --numeric-ids --info=progress2 A/ B/
+    rsync -PaSHAXx --numeric-ids --info=progress2 A/ B/
 
 <span/><div class="note">
 If you don't trust the filesystem time and files sizes, also throw in
@@ -30,6 +33,9 @@ much slower. (A better hashing algorithm could be [SHA-2](https://en.wikipedia.o
 [Meow](https://mollyrocket.com/meowhash), obviously.)
 </div>
 
+What does it do?
+================
+
 Those flags mean:
 
         -P                          same as --partial --progress
@@ -38,6 +44,7 @@ Those flags mean:
         -H, --hard-links            preserve hard links
         -A, --acls                  preserve ACLs (implies -p)
         -X, --xattrs                preserve extended attributes
+        -x, --one-file-system       don't cross filesystem boundaries
             --numeric-ids           don't map uid/gid values by user/group name
         -c, --checksum              skip based on checksum, not mod-time & size
 
@@ -46,6 +53,13 @@ Keep in mind that `-H` is expensive, which is why it's not included in
 `-a` by default, as the manpage explains.
 </div>
 
+<span/><div class="important">
+Also be careful around `--sparse`: it does what it says it does: if it
+finds a file with nulls in it, it *will* write those as sparse
+blocks, which means you might create sparse blocks where there weren't
+any before. There doesn't seem to be a sane way to deal with this.
+</div>
+
 Unrolling some of those, this actually means:
 
         -r, --recursive             recurse into directories
@@ -68,6 +82,9 @@ files across servers that might not share the same UID space. This is
 especially important when restoring from backups because you might be
 creating `/etc/passwd` along the way (!).
 
+What's with progress2?
+======================
+
 The last bit, `--info=progress2` is not directly documented in the
 manpage, at least not in the `--info` section. Strangely, there's some
 information in the `-P` flag where it says:
@@ -77,14 +94,41 @@ information in the `-P` flag where it says:
 
 I found this was extremely useful during large transfers because, by
 default, `-P` (or, more specifically, `--progress`) shows progress for
-*each* individual file. That's fine if you transfer large files, but
-for large *transfers* (with a large *number* of files), that's much
-less useful and possibly incredibly noisy. `--info=progress2`,
-according to `--info=help`, does instead:
+*each* individual file (only). That's fine if you transfer large
+files, but for large *transfers* (with a large *number* of files),
+that's much less useful and possibly incredibly
+noisy. `--info=progress2`, according to `--info=help`, does instead:
 
     PROGRESS   Mention 1) per-file progress or 2) total transfer progress
 
-... which I admit is not much clearer.
+... which I admit is not much clearer, but basically, it gives you an
+overview of the entire transfer. Of course, `--progress` and
+`--info=progress2` overlap with each other, so you *will* want to
+remove the `-P` option (and re-add `--partial`) to get the clean,
+one-line-only output. It looks something like this:
+
+            542,054   0%   23.48kB/s    0:00:22 (xfr#4, to-chk=1000/867646)   
+
+In the above, you have the following space-separated fields:
+
+ 1. size of the files transfered so far (in bytes, above is around
+    500KiB)
+ 2. the percentage of the known files that represents (zero percent)
+ 3. the current transfer rate (23.48 kilobyte per second)
+ 4. the time passed so far (22 seconds)
+ 5. the number of files transfered so far (4 files)
+ 6. the number of files to be transfered over the number of files
+    found so far
+
+The last pair of numbers are confusing: the left side is the number of
+files remaining to be checked, and the right side is the number of
+files found *so far*. both numbers can rise as rsync works
+incrementally. when the transfer is complete, this will show 0/N,
+where N is the total number of files found). All this is [well
+explained in this StackExchange post](https://unix.stackexchange.com/questions/215271/understanding-the-output-of-info-progress2-from-rsync#261139).
+
+Other similar uses
+==================
 
 Note that this is similar to how at least one backup system runs its
 test suite, against, interestingly, rsync. Indeed, [bup](https://github.com/bup/bup/) [uses
@@ -93,6 +137,9 @@ original. They use the also super-intuitive `-niaHAX` (maybe with
 `-c`), which I find slightly less intuitive than *my* ordering, which
 sounds like <del>"fax"</del>[pacha](https://fr.wikipedia.org/wiki/Pacha_(titre)) in french.
 
+Conclusion
+==========
+
 So there you go. `-PaSHAX` is now your new best friend. And don't
 forget the *obvious* `--numeric-ids` (and not `uids`, they talk
 about groups too) and `--info=progress2` (*grrr*) and *maybe*
diff --git a/blog/2019-07-07-rsync-oneliner/comment_2_f934ea73ae37171742be1b689fd878eb._comment b/blog/2019-07-07-rsync-oneliner/comment_2_f934ea73ae37171742be1b689fd878eb._comment
new file mode 100644
index 00000000..81e03a16
--- /dev/null
+++ b/blog/2019-07-07-rsync-oneliner/comment_2_f934ea73ae37171742be1b689fd878eb._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="""one more note"""
+ date="2019-09-27T00:02:17Z"
+ content="""
+
+I update the post to add more details about `--info=progress2`. I didn't realize this at first, but it kind of conflicts with the `--progress` argument as the latter kind of jumbles up the output of the former.
+
+I also added a warning about `--sparse`, which still confuses the hell out of me.
+
+Oh, and I added `-x` to avoid crossing filesystems. I generally do that as I often sync filesystems with rsync and don't want to descend in `/proc` and so on. You will, of course, want to be careful around that as well if you want to transfer multiple filesystems: just call rsync multiple times.
+"""]]

removed
diff --git a/blog/2018-04-12-terminal-emulators-1/comment_5_209c2e2bc460e6c62f9e72334a32ad50._comment b/blog/2018-04-12-terminal-emulators-1/comment_5_209c2e2bc460e6c62f9e72334a32ad50._comment
deleted file mode 100644
index 09bcc220..00000000
--- a/blog/2018-04-12-terminal-emulators-1/comment_5_209c2e2bc460e6c62f9e72334a32ad50._comment
+++ /dev/null
@@ -1,9 +0,0 @@
-[[!comment format=mdwn
- ip="140.237.29.55"
- claimedauthor="soukherb"
- url="http://www.soukherb.com/"
- subject="soukherb"
- date="2019-09-24T06:54:05Z"
- content="""
-<a href=\"http://www.lauracepas.com/air-jordan-13-retro-playoffs-black-varsity-red-white-vibrant-yellow_01-bnike_en\">air jordan 13 retro playoffs black varsity red white vibrant yellow_01</a> <a href=\"http://www.nobilisuk.com/fox-racing-sun-hat-uke-hatri_dk\">fox racing sun hat uke</a> <a href=\"http://www.pavincia.com/adidas-ultra-boost-2.0-white-reflective-kdg_en\">adidas ultra boost 2.0 white reflective</a> <a href=\"http://www.escortsun.com/the-thai-version-2014-brazilian-world-cup-soccer-jerseys-spain-team-13-juan-manuel-mata-home-red-jerseys-long-sleeve-nfla_uk\">the thai version 2014 brazilian world cup soccer jerseys spain team 13 juan manuel mata home red jerseys long sleeve</a> <a href=\"http://www.hollinsfh.com/nike-kobe-8-home-nikec_dk\">nike kobe 8 home</a> <a href=\"http://www.zincesas.com/atlanta-hawks-5-josh-smith-red-swingman-jersey-dnfl_en\">atlanta hawks 5 josh smith red swingman jersey</a>
-"""]]

Added a comment: soukherb
diff --git a/blog/2018-04-12-terminal-emulators-1/comment_5_209c2e2bc460e6c62f9e72334a32ad50._comment b/blog/2018-04-12-terminal-emulators-1/comment_5_209c2e2bc460e6c62f9e72334a32ad50._comment
new file mode 100644
index 00000000..09bcc220
--- /dev/null
+++ b/blog/2018-04-12-terminal-emulators-1/comment_5_209c2e2bc460e6c62f9e72334a32ad50._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ ip="140.237.29.55"
+ claimedauthor="soukherb"
+ url="http://www.soukherb.com/"
+ subject="soukherb"
+ date="2019-09-24T06:54:05Z"
+ content="""
+<a href=\"http://www.lauracepas.com/air-jordan-13-retro-playoffs-black-varsity-red-white-vibrant-yellow_01-bnike_en\">air jordan 13 retro playoffs black varsity red white vibrant yellow_01</a> <a href=\"http://www.nobilisuk.com/fox-racing-sun-hat-uke-hatri_dk\">fox racing sun hat uke</a> <a href=\"http://www.pavincia.com/adidas-ultra-boost-2.0-white-reflective-kdg_en\">adidas ultra boost 2.0 white reflective</a> <a href=\"http://www.escortsun.com/the-thai-version-2014-brazilian-world-cup-soccer-jerseys-spain-team-13-juan-manuel-mata-home-red-jerseys-long-sleeve-nfla_uk\">the thai version 2014 brazilian world cup soccer jerseys spain team 13 juan manuel mata home red jerseys long sleeve</a> <a href=\"http://www.hollinsfh.com/nike-kobe-8-home-nikec_dk\">nike kobe 8 home</a> <a href=\"http://www.zincesas.com/atlanta-hawks-5-josh-smith-red-swingman-jersey-dnfl_en\">atlanta hawks 5 josh smith red swingman jersey</a>
+"""]]

new packages, from curie
diff --git a/software/packages.yml b/software/packages.yml
index 6cf4e347..c44bc3d7 100644
--- a/software/packages.yml
+++ b/software/packages.yml
@@ -85,6 +85,7 @@
     tags: desktop
     apt: name={{item}} state=installed
     with_items:
+      - afuse
       - anki
       - apksigner
       - arandr
@@ -129,6 +130,7 @@
       - mpd
       - mumble
       - mutt
+      - muttprint
       - ncdu
       - needrestart
       - needrestart-session
@@ -307,6 +309,7 @@
       - po4a
       - puppet
       - puppet-lint
+      - puppet-strings
       - pv
       - pypi2deb
       - python
@@ -339,6 +342,8 @@
       - quilt
       - rename
       - reprotest
+      - r10k
+      - ruby-rspec
       - sbuild
       - shellcheck
       - sloccount
@@ -470,6 +475,7 @@
       - intel-microcode
       - ioping
       - ipcalc
+      - ipv6calc
       - iperf3
       - iptraf
       - libnss3-tools

removed
diff --git a/blog/2005-11-23-comment-la-tunisie-censure-linternet/comment_18_4901199b5008253caf8acde4e5255a37._comment b/blog/2005-11-23-comment-la-tunisie-censure-linternet/comment_18_4901199b5008253caf8acde4e5255a37._comment
deleted file mode 100644
index 596e709e..00000000
--- a/blog/2005-11-23-comment-la-tunisie-censure-linternet/comment_18_4901199b5008253caf8acde4e5255a37._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- ip="112.51.193.5"
- claimedauthor="long sleeve flower girl dresses uk"
- url="http://www.roostercole.com/long-sleeve-flower-girl-dresses-uk-dressh"
- subject="long sleeve flower girl dresses uk"
- date="2019-09-18T20:55:21Z"
- content="""
-<a href=\"http://www.gibbsorganic.com/ted-baker-amabel-bodycon-floral-dress-dressh\">ted baker amabel bodycon floral dress</a> <a href=\"http://www.pampaflowers.net/dark-purple-floral-dress-dressh\">dark purple floral dress</a> <a href=\"http://www.trancelater.net/womens-floral-dress-size-12-dressh\">womens floral dress size 12</a> <a href=\"http://www.malatyapi.com/anne-klein-floral-dress-dressh\">anne klein floral dress</a> <a href=\"http://www.paradiseawards.net/womens-floral-dress-size-6-dressh\">womens floral dress size 6</a> <a href=\"http://www.uscampvictory.net/floral-dresses-ladies-dressh\">floral dresses ladies</a>
- <a href=\"http://www.roostercole.com/long-sleeve-flower-girl-dresses-uk-dressh\" >long sleeve flower girl dresses uk</a> [url=http://www.roostercole.com/long-sleeve-flower-girl-dresses-uk-dressh]long sleeve flower girl dresses uk[/url]
-"""]]

Added a comment: long sleeve flower girl dresses uk
diff --git a/blog/2005-11-23-comment-la-tunisie-censure-linternet/comment_18_4901199b5008253caf8acde4e5255a37._comment b/blog/2005-11-23-comment-la-tunisie-censure-linternet/comment_18_4901199b5008253caf8acde4e5255a37._comment
new file mode 100644
index 00000000..596e709e
--- /dev/null
+++ b/blog/2005-11-23-comment-la-tunisie-censure-linternet/comment_18_4901199b5008253caf8acde4e5255a37._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ ip="112.51.193.5"
+ claimedauthor="long sleeve flower girl dresses uk"
+ url="http://www.roostercole.com/long-sleeve-flower-girl-dresses-uk-dressh"
+ subject="long sleeve flower girl dresses uk"
+ date="2019-09-18T20:55:21Z"
+ content="""
+<a href=\"http://www.gibbsorganic.com/ted-baker-amabel-bodycon-floral-dress-dressh\">ted baker amabel bodycon floral dress</a> <a href=\"http://www.pampaflowers.net/dark-purple-floral-dress-dressh\">dark purple floral dress</a> <a href=\"http://www.trancelater.net/womens-floral-dress-size-12-dressh\">womens floral dress size 12</a> <a href=\"http://www.malatyapi.com/anne-klein-floral-dress-dressh\">anne klein floral dress</a> <a href=\"http://www.paradiseawards.net/womens-floral-dress-size-6-dressh\">womens floral dress size 6</a> <a href=\"http://www.uscampvictory.net/floral-dresses-ladies-dressh\">floral dresses ladies</a>
+ <a href=\"http://www.roostercole.com/long-sleeve-flower-girl-dresses-uk-dressh\" >long sleeve flower girl dresses uk</a> [url=http://www.roostercole.com/long-sleeve-flower-girl-dresses-uk-dressh]long sleeve flower girl dresses uk[/url]
+"""]]

i3 config
diff --git a/software/desktop.mdwn b/software/desktop.mdwn
index bb7f11e2..63cb7c9f 100644
--- a/software/desktop.mdwn
+++ b/software/desktop.mdwn
@@ -16,6 +16,8 @@ closer to what I had with [awesome][] all the way back then.
 One nice thing with i3 is the way it handles external monitors:
 they're just other workspaces.
 
+You can review my [[i3 configuration here|i3.conf]].
+
  [i3]: http://i3wm.org/
  [Awesome]: https://awesomewm.org/
 
diff --git a/software/desktop/i3.conf b/software/desktop/i3.conf
new file mode 100644
index 00000000..a6f23782
--- /dev/null
+++ b/software/desktop/i3.conf
@@ -0,0 +1,308 @@
+# i3 config file (v4)
+#
+# Please see http://i3wm.org/docs/userguide.html for a complete reference!
+
+# TODO:
+#
+# * use Xresources for colors (see below)
+#
+# * assign certain clients to certain windows, to bootstrap session
+#   properly: https://i3wm.org/docs/userguide.html#assign_workspace
+#
+# * consider focus_on_window_activation urgent
+#   https://i3wm.org/docs/userguide.html#focus_on_window_activation
+#
+# * make default layout be "large window on top with two small windows
+#   below", like in Xmonad, instead of "just two large windows". i
+#   still have trouble adjusting to the "hierarchical container"
+#   configuration - way too geeky abstraction that is not really
+#   necessary...
+#
+# * initialize 9 empty layouts? wmii used to be uninitialized, maybe
+#   that's just a matter of habit...
+#
+# * i miss "alt-shift-enter" from xmonad, which would bring the
+#   focused window in the primary workspace/container. alt-shift-space
+#   (float this window) is a good alternative
+#
+# * volume keys can't be held to continuously adjust volume
+#
+# * sticky mode for writeroom-mode
+#
+# * consider xautolock + i3lock + nice image?
+#
+# * i3 doesn't respect $PATH set in ~/.shenv from .xsession? look for
+#   /home/anarcat/bin/ once this is fixed.
+#
+# * resize keybindings are weird: "up" should move the *boundary* up,
+#   not shrink/grow, because that's context-specific
+#
+# * use variables (or a theme?) for colors, that way they can be
+#   reused in (say) demenu or whatever
+#
+# * add nicer icons in the status bar, using font awesome, e.g.
+#   https://extendedreality.wordpress.com/2014/11/20/i3-tips-n-tricks/
+#   that's in taffybar now, but anyways...
+# 
+
+# left "windows" key
+set $mod Mod4
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+font pango:DejaVu Sans Mono 10
+# Before i3 v4.8, we used to recommend this one as the default:
+# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+# The font above is very space-efficient, that is, it looks good, sharp and
+# clear in small sizes. However, its unicode glyph coverage is limited, the old
+# X core fonts rendering does not support right-to-left and this being a bitmap
+# font, it doesn’t scale on retina/hidpi displays.
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# guess vertical vs horizontal orientation based on screen size
+default_orientation auto
+
+# going to workspace 3 twice brings me back
+workspace_auto_back_and_forth no
+
+# wait before canceling urgency to see which window warned
+force_display_urgency_hint 500 ms
+
+new_window pixel 1
+
+# start a terminal
+bindsym $mod+Return exec i3-sensible-terminal
+
+# kill focused window
+#bindsym $mod+Shift+q kill
+# xmonad backwards-compat
+bindsym $mod+Shift+c kill
+
+# start dmenu (a program launcher)
+bindsym $mod+d exec dmenu_run
+
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindsym $mod+j focus left
+bindsym $mod+k focus down
+bindsym $mod+l focus up
+bindsym $mod+semicolon focus right
+
+# alternatively, you can use the cursor keys:
+#bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+#bindsym $mod+Right focus right
+
+#bindsym $mod+Tab focus right
+#bindsym $mod+Shift+Tab focus left
+
+# this unfortunately doesn't work
+#bindsym $mod+Tab focus next
+#bindsym $mod+Shift+Tab focus prev
+
+# https://gitlab.com/anarcat/scripts/blob/master/i3-focus
+bindsym $mod+Tab exec /home/anarcat/bin/i3-focus next
+bindsym $mod+Shift+Tab exec /home/anarcat/bin/i3-focus prev
+
+# move focused window
+bindsym $mod+Shift+j move left
+bindsym $mod+Shift+k move down
+bindsym $mod+Shift+l move up
+bindsym $mod+Shift+semicolon move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+h split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# switch to workspace
+bindsym $mod+1 workspace 1
+bindsym $mod+2 workspace 2
+bindsym $mod+3 workspace 3
+bindsym $mod+4 workspace 4
+bindsym $mod+5 workspace 5
+bindsym $mod+6 workspace 6
+bindsym $mod+7 workspace 7
+bindsym $mod+8 workspace 8
+bindsym $mod+9 workspace 9
+bindsym $mod+0 workspace 10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace 1
+bindsym $mod+Shift+2 move container to workspace 2
+bindsym $mod+Shift+3 move container to workspace 3
+bindsym $mod+Shift+4 move container to workspace 4
+bindsym $mod+Shift+5 move container to workspace 5
+bindsym $mod+Shift+6 move container to workspace 6
+bindsym $mod+Shift+7 move container to workspace 7
+bindsym $mod+Shift+8 move container to workspace 8
+bindsym $mod+Shift+9 move container to workspace 9
+bindsym $mod+Shift+0 move container to workspace 10
+
+bindsym $mod+Right workspace next
+bindsym $mod+Left workspace prev
+bindsym $mod+Escape workspace back_and_forth
+

(Diff truncated)
link to xmonad page
diff --git a/software/desktop.mdwn b/software/desktop.mdwn
index 15a5790b..bb7f11e2 100644
--- a/software/desktop.mdwn
+++ b/software/desktop.mdwn
@@ -200,3 +200,4 @@ Older setups
  * [[wmii]]
  * [[sawfish and rox]]
  * [[gnome2]]
+ * [[xmonad]]

sync up my xmonad config
diff --git a/software/desktop/xmonad.hs b/software/desktop/xmonad.hs
index 00b99048..80556854 100644
--- a/software/desktop/xmonad.hs
+++ b/software/desktop/xmonad.hs
@@ -268,12 +268,13 @@ myConfig = defaultConfig {
     } `additionalKeys` [
     ((noModMask         , xK_Pause), spawn "xscreensaver-command -lock")
   , ((noModMask         , xK_Print), spawn "snap")
-  --, ((noModMask         , xK_XF86AudioLowerVolume), spawn "amixer set Master 2-")
-  --, ((noModMask         , xK_XF86AudioRaiseVolume), spawn "amixer set Master 2+")
-  --, ((noModMask         , xK_XF86AudioMute), spawn "amixer set Master toggle")
-  , ((0                 , 0x1008ff12 ), spawn "pactl set-sink-mute 0 toggle")
-  , ((0                 , 0x1008ff11), spawn "pactl -- set-sink-volume 0 -2%")
-  , ((0                 , 0x1008ff13), spawn "pactl -- set-sink-volume 0 +2%")
+  -- xK_XF86AudioMute
+  , ((noModMask         , 0x1008ff12 ), spawn "pactl set-sink-mute 0 toggle")
+  -- xK_XF86AudioLowerVolume
+  , ((noModMask         , 0x1008ff11), spawn "pactl -- set-sink-volume 0 -2%")
+  -- xK_XF86AudioRaiseVolume
+  , ((noModMask         , 0x1008ff13), spawn "pactl -- set-sink-volume 0 +2%")
+  -- other controls are directly in audio clients (e.g. gmpc)
   , ((modm              , xK_Return), spawn $ XMonad.terminal defaultConfig )
   , ((modm              , xK_F12   ), xmonadPrompt      myXPConfig     )
   , ((modm              , xK_F2    ), spawn "rofi -show ssh" )

Archival link:

The above link creates a machine-readable RSS feed that can be used to easily archive new changes to the site. It is used by internal scripts to do sanity checks on new entries in the wiki.

Created . Edited .