Coronavirus links round up

I’ve been gathering interesting links on the Coronavirus epidemic. Here are the ones that stand out from the rest:

Coronavirus: Why You Must Act Now – A well-circulated summary with some great graphs. The main takeaway is that the real count is far higher than what is being reported, so it is better to act now rather than wait. And that travel restrictions will at the most delay things by a few days, but social distancing is the best way to contain things.

CORONAVIRUS: LINKS, SPECULATION, OPEN THREAD – Some good graphs on mortality rates, exponential growth etc on SlateStarCodex. This is from March 2, and things are changing fast though.

Seeing the Smoke – A rationalist argues that it makes sense to prep NOW rather than wait for the slow engines of the government to move. This post inspired me to start working from home without waiting for an official mandatory recommendation from my company.

Don’t Panic: The comprehensive Ars Technica guide to the coronavirus [Updated 3/12] – ArsTechnica, as always, with comprehensive coverage.


How quickly does this virus spread, compared to other diseases? The R0 (R-naught) number gives this estimate. Ed Yong has a good explainer on what the number is estimated to be, and why it is not very easy to measure.


Persistence of coronaviruses on inanimate surfaces and their inactivation with biocidal agents – I’ve seen some forwards talk about the virus being active for only about 12 hours on surfaces. But this paper shows that it can remain infectious for up to 9 days, depending on things like the temperature and material.

I’ve seen the usual conspiracy theories doing the rounds about this being a human-engineered bioweapon. This paper, specifically was getting some traction. if any one sends that to you, tell them that the paper has already been retracted.

web2pdf – A tool to export bookmarks to PDF

Here’s a follow up to my earlier post on archiving. I spent a couple of days coming up with a quick Python app to fill my needs.

Here it is: web2pdf.

Once installed, the configuration simply expects a bookmarks.html file on the filesystem. It reads it, stores the contents to an sqlite DB and starts  saving PDF versions of each link there-in.

You can kill the script and re-run it at a later point in time and it will continue where it stopped. The output looks like this:

(pdf) bash-4.3 ~/code/web2pdf/web2pdf$ ./ 
Found 2599 links in the bookmark file
Found 2599 rows in the bookmark db
..of which 81 links are already saved
..and 2506 are pending
Hit enter to start downloading pending PDFs
Downloading | experiment-reaffirms-quantum-weirdness

There are more details in the github link. I’m not happy with how fast slow it is but I seem to be limited by the library I’m using and the use-case itself: fetching a page is trivial but it has to render it before exporting it.

As always there is more to do but it works pretty well already. It tags failed bookmarks separately in the DB in case it needs retrying later. I’ve tried to speed it up using Python3’s native async/await, but the performance improvements are not noticeable so far. I’ll try with multiprocess instead and commit whichever one works better.

The trials of a link hoarder

Early days – Pinboard and friends

I read/skim a lot of news on the internet and my current major problem is information retrieval. For a while I used a combination of Pinboard with Pocket, and later, Diigo with Pocket.

4k bookmarks on pinboard 😦

Eventually I realized that it was painfully hard to recollect something I’d come across a few months back. I don’t use too many tags and what really mattered was the full text search.

The other problem was link rot. For both reasons I wanted an archiving service that would cache the page and let me search through and see the content even if it disappeared down the line. Pinboard has one, but my next problem/solution was PDFs.


Files (PDFs) instead of links

I have a few 100 PDFs I’ve collected along the way. It would be a pain to upload each of them somewhere just to archive it. So the next option I investigated was one that would combine the two approaches. I already use Google Drive and the web interface has decent search functionality. What if I could archive my remaining bookmarks as PDFs and just dump them to my Drive?

And along the way.. Evernote

The evernote native client

The last piece is with Evernote. I started using it sometime back and have already imported my bookmarks and PDFs to it, but at this point it only has the title, tags and url for the links. It has pretty decent full text search as well. I’ve started storing a lot of other notes to it, with cross-references to other notes and links.

Where do I go from here? Evernote is actually pretty good except for the nagging fear of what would happen if it ever shut down.


So my current hobby project has two pieces to it.

  1. Import a bookmarks.html file and convert every link in it to a pdf. I’m picking python for this and have found weasyprint which seems to do the main conversion pretty well.
  2. Once I have a few thousand PDFs in my filesystem instead of links, find a nice, cross platform way to search through them. Evernote still works perfectly fine here so I’m not too keen on doing this immediately.

In summary: Evernote is cool.  The web clipper works great from browsers (not so much from the android app). The native windows client is pretty nice too, and its lightning fast to take a quick note and organize it later.

PDFs are probably going to be the main thing I’ll base my system on. I don’t have to depend on a closed-source service going down, nor do I have to worry about the source itself disappearing.

rpmerizor – create an RPM package from installed files

I’ve needed something very similar at work, so this was a neat find.
via freshcode.

rpmerizor 2.8

rpmerizor is a script that allows you to create an RPM package from installed files. You simply have to specify files on the command line and answering a few interactive questions to fill rpm meta-dat… – Changes: change shebang to use /usr/bin/env

Why the literati love Muhammad Ali

In a book that was decades in the construction, the journalist Christopher Booker argued that all stories in all literature conform to at least one of Seven Basic Plots. Ali’s life conforms to them all: Overcoming the Monster (Liston, Foreman), Rags to Riches, the Quest, Voyage and Return (Zaire and then Manila, where he fought Frazier), Comedy (“I hospitalised a brick/I’m so mean I make medicine sick”), Tragedy (the withdrawal of his boxing licence during his peak years for resisting the Vietnam draft, his imprisonment by Parkinson’s) and Rebirth (his defeat of Foreman at the age of 32).