Installing GrapheneOS on a Pixel Device

As you may know, I like trying out alternative operating systems. I bought a Pixel 6 device and installed GrapheneOS on it. The web installer instructions are pretty easy to follow, and I was able to do it in less than an hour. It took longer to do the Android updates it recommends doing before installing GrapheneOS.

The initial screen is bare. If you just needed to do messaging and calls, it would get the job done. It is possible to install a sandboxed version of Google Play. It works pretty much the same, although I found that some apps that rely on the wifi network or cross-app verification do not work. For example, Nextcloud Notes can not be used with the Nextcloud app authentication because of the sandboxing. The same is also true of apps like Orbi, Sonos, et al that cannot access what they need outside the sandbox. So, I’m either not using these apps or using alternatives.

It also flashes when booting that the operating system has changed, but it doesn’t present a problem. You just have to wait a few more seconds for the phone to boot.

Overall, if you need a flawless experience. I’d stick with the stock OS. If you can deal with a few things not working for better security, or at least worth trying it out, you might want to consider trying it. It is possible to go back to the stock OS later, and it could provide a useful learning experience.

Guest WiFi using a QR code

On my home network I have guest WiFi configured and when guests come round they need to know the password. Happily there’s a way to make this trivial: WiFi QR codes.”

-John Graham-Cumming, “Guest WiFi using a QR Code.jgc.org. July 12, 2022.

Easy enough. I used SecScanQR on F-Droid.

  1. Click Generate.
  2. Select Text.
  3. Type in the following replacing <SSID> and <Password>: WIFI:S:<SSID>;T:WPA2;P:<PASSWORD>;H:false;;
  4. Click Generate.
  5. Click Save, or Share to your printer.
  6. Put the QR code in a frame and hang it.

Blog Diet: A Starter List For Your RSS Reader (Updated Spring 2022) by Warren Ellis

“People keep asking me where I find stuff, or where to start with an RSS reader.

I exported my subscriptions, and damn, there are a LOT of dead blogs out there. I’m actually shocked at how much of my list is now gone. (And how many sites have shut off their RSS!) Here is a selection of blogs from the list of ones I think are still active. Like I say, it’s just a bit of my active subscriptions list, but maybe you’ll find something you want to follow.”

-Warren Ellis, “Blog Diet: A Starter List For Your RSS Reader (Updated Spring 2022).” warrenellis.ltd. April 22, 2022.

Here’s a list of “best” free RSS Readers for 2022. I’ve talked about RSS Readers a bit here in the past and suggested some places to start. I’m used Nextcloud News, newsboat, and flym. I like newsboat quite a bit, but I find I don’t check it as much as if it is in a mobile app. YMMV.

Smol Pub

Smol Pub is tiny blogging service.

– Web interface and CLI to manage your posts.
– Accessible from Web, Gemini and Gopher.
– Storage for your images.
– Write custom CSS for web.
– Attach your custom domain with SSL.
– Export your posts.
– No JavaScript, ads, or tracking technology.

On the back of My Writing Advice post from yesterday, a suggestion. If you want a low stakes online venue to just start a daily writing practice, Smol Pub would fit the bill. It’s $5 to get a key to start using it. Try it out. It’s nothing complicated, and you could try it for 30 days (or longer) and see if it works for you.

I find WordPress easy to use. But, there is a bit of a noodling period, particularly in the beginning, where you mess around with templates and so forth. There are templates on Smol Pub too, but it looks like it is much easier to set-up.

Linux: Importing Keys from OpenKeychain (and Elsewhere) into GnuPG

Every now and again, I have to transfer my GPG keys to a new machine and I always forget how to do it. So, I figured I’d write a few notes to remember in the future.

Key detail: when you do a full back-up, it will export a file in the format: backup-YYYY-MM-DD.sec.pgp. You will also be given a password in the form of XXXX-XXXX-XXXX-XXXX-XXXX-XXXX. The password is a series of uppercase letters and numbers. So, at a command prompt in Linux, type:

$ gpg2 --decrypt backup_YYYY-MM-DD.sec.pgp | gpg2 --import

When you are prompted for the initial password, make sure to use the one in the format above and include the dashes. After, you will be prompted for the private key password(s) that have been backed up in order to import them.

I did cover this in my post on mutt, but I didn’t think to look there this time. So, I figure it deserves its own entry.

The Pandemic Cyclone

“This chart shows the daily number of new Covid-19 infections in each state over time. The y-axis is the population-normalized number of new infections per day; the x-axis is the rate of transmission (Rt). Each dot is a state or territory of the US, colored by region, and the area of the dot is proportional to the estimated number of new Covid-19 infections on that day.

https://observablehq.com/@chrisjkuch/covid-hotspots

I thought this was an interesting way to visualize the time series data.

bash: Last Day, The People Who Lived As Many Days as You

Definitions

  • bash: This is the command line, where you can run relatively simple scripted programs, available on all three major computing platforms.
  • SPARQL: On the Internet, there are repositories of information. Some of these repositories are in a format called RDF, or Resource Description Framework. Users of these repositories typically need a subset of the information contained in them. In order to get the desired information, they need a way to query these repositories in a structured way to get the information they want. SPARQL is that querying language.
  • Wikidata is an RDF repository. It is hosted by the same organization as Wikipedia, but it is subject to different rules. I do not think Notability and some of the cultural problems of Wikipedia extend to Wikidata. I’d be happy to hear if anyone is aware of problems in the dataset, since this is one of the few times I’ve worked with it.

Inspiration

Most mornings, my wife and I read The New York Times The Morning Briefing. Typically, this will include an obituary of a celebrity. If the person is less than 80 years old, my wife will say something like, “They died young.” She thinks everyone should live to be a hundred years of age.

I tend to think more relativistically. Someone died young, if they were younger than me. It got me thinking, “Is it possible to write a script to find out who lived exactly the same number of days I have lived today?”

It turns out to be fairly easy to do using bash, a SPARQL query link and Wikidata.

bash script

#!/bin/bash
# variables
BIRTHDAY=$(date -d '2000-01-01' +%s) # enter birthday in YYYY-MM-DD format
TODAYS_DATE=$(date +%s)
DAYS_ALIVE=$(((TODAYS_DATE - BIRTHDAY) / 86400)) # converts seconds to days

# Test output
# echo "birthday: ${BIRTHDAY} | today's date: ${TODAYS_DATE} | days_alive: ${DAYS_ALIVE}"

#url for sparql query of wikidata can be obtained: https://query.wikidata.org/, click link to it below
firefox 'https://query.wikidata.org/embed.html#SELECT%20DISTINCT%20%3Fperson%20%3FpersonLabel%20%3FpersonDescription%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%22.%20%7D%0A%20%20%7B%0A%20%20%20%20SELECT%20DISTINCT%20%3Fperson%20%3FpersonLabel%20%3FpersonDescription%20%7B%0A%20%20%20%20%20%20%3Fperson%20wdt%3AP31%20wd%3AQ5%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20wdt%3AP569%20%3Fborn%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20wdt%3AP570%20%3Fdied%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20wdt%3AP27%20wd%3AQ30%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20BIND(%3Fdied%20-%20%3Fborn%20AS%20%3FageInDays).%20%0A%20%20%20%20%20%20FILTER(%3FageInDays%20%3D%20'"$DAYS_ALIVE"').%20%20%0A%20%20%20%20%7D%0A%20%20%20%20LIMIT%2025%0A%20%20%7D%0A%7D%0A'

bash script output

SPARQL query

You can input the following into the Wikidata SPARQL query interface and change the perimeters. Specifically, the bash variable $DAYS_ALIVE needs to be changed to an integer to work in the query interface, e.g., FILTER(?ageInDays = 11000). You can also do ranges using multiplication, e.g., FILTER(?ageInDays < (31*365) && ?ageInDays > (30*365)), if you want people between the ages of 30 to 31.

SELECT DISTINCT ?person ?personLabel ?personDescription WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
  {
    SELECT DISTINCT ?person ?personLabel ?personDescription {
      ?person wdt:P31 wd:Q5;             # any person
              wdt:P569 ?born;            # that has a birth date
              wdt:P570 ?died;            # and a death date
              wdt:P27 wd:Q30             # that was a citizen of the United States
      BIND(?died - ?born AS ?ageInDays). # calculate days they lived
      FILTER(?ageInDays = $DAYS_ALIVE).  # match the number of days to your current number of days alive
    }
    LIMIT 25
  }
}