Un naufragio personal

Ángel Ortega

Decyphering the Business Card Raytracer

Already a classic (2013), but nice to re-read:


PGP Word List

"The PGP Word List [...] is a list of words for conveying data bytes in a clear unambiguous way via a voice channel. They are analogous in purpose to the NATO phonetic alphabet used by pilots[...]"


Do the Real Thing

Scott H. Young:

"Consider one person who wrote to me saying she turned down a job working in French. She didn’t feel her French was good enough yet. So instead, she planned to listen to podcasts at home every day until she was ready. You know what would have helped her get good at French? Working at the job in French."


Gopherspace in the Year 2020

Just in case you were wondering, there are plenty of Gophers out there (I'm not talking about the animal). There is even a thing called a phlog (people sharing their logs using the #gopher protocol). Not kidding.


Announcing Perl 7


  • Perl 6 went long ago to be Raku,
  • Perl 7 will be Perl 5.32+ with more modern defaults.


How To Create An IndieWeb Profile

Kev Quirk gives a primer on h-card creation:


Introducing Web3Torrent

A Bittorrent-like platform for Web pages that uses Ethereum micropayments... Is this, finally, an ORA:CLE?


50 Ideas That Changed My Life

I think "life-changing" is saying too much, but there are some useful remarks in this David Perell post:


9. Competition is for Losers: Avoid competition. Stop copying what everybody else is doing. If you work at a for-profit company, work on problems that would not otherwise be solved. If you’re at a non-profit, fix unpopular problems. Life is easier when you don’t compete. (Hint: don’t start another bottled water company).


14. The Wisdom of Paradox: Logic is the key to scientific truths, but paradoxes are the key to psychological ones. When it comes to the human condition, the deepest truths are often counter-intuitive. When you find two opposites that are both true, start exploring.


22. Goodhart’s Law: When a measure becomes a target, it ceases to be a good measure. One hospital took too long to admit patients so a penalty was given for 4+ hour wait times. In response, ambulance drivers were asked to slow down so they could shorten wait times.


23. Gall’s Law: A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.


30. Hickam’s Dictum: The opposite of Occam’s Razor. In a complex system, problems usually have more than one cause. For example, in medicine, people can have many diseases at the same time.


37. The Copernican Principle: The more we learn about astronomy, the less it seems that earth is special. It's a small part of the universe, and each human is a small part of the earth. We are all spinning through the solar system — nowhere near the beginning or end of time.


If Zoom Is Wrong, So Is Apple

Jeffrey Paul on sleazy lies Zoom and Apple try to make us swallow:

Apple (and the FBI and US military intelligence, by extension) can easily look at your photos, see the genitals of yourself and your loved ones, read your private notes, and read all of your message history, including iMessages and SMSes!


Apple, like Zoom, has danced around this, saying that your chat histories in your device backups and private notes and photos are “encrypt[ed] in transit” and “encrypt[ed] on server”.

In both cases, they’re encrypted with Apple’s keys, not yours. This is exactly the same situation as Zoom’s current encryption, and it’s exactly as unacceptable, for exactly the same reasons.

As it's said there, If Zoom is wrong for doing this, then so is Apple, and they should be subject to the same criticism, but people is always unexplainably indulgent with Apple's bullshit.


(Very) Basic Intro To Elliptic Curve Cryptography

Lane Wagner gives a brief description on how Elliptic Curve Cryptography (ECC) works:


The radix 2^51 trick

Tim McLean on Faster addition and subtraction on modern CPUs:


Presenter mode in LibreOffice Impress without an external display

Elana Hashman explains how to create X11 virtual screens:

My GPU had this capability innately, it turns out, if I could just whisper the right incantations to unlock its secrets:

ehashman@red-dot:~$ cat /usr/share/X11/xorg.conf.d/20-intel.conf 
Section "Device"
    Identifier "intelgpu0"
    Driver "intel"
    Option "VirtualHeads" "1"

After restarting X to allow this newly created config to take effect, I now could see two new virtual displays available for use:

ehashman@red-dot:~$ xrandr
Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 310mm x 170mm
   1920x1080     60.01*+  59.93  
   640x360       59.84    59.32    60.00  
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
VIRTUAL2 disconnected (normal left inverted right x axis y axis)

Nice. Now, to actually use it:

ehashman@red-dot:~$ xrandr --addmode VIRTUAL1 1920x1080
ehashman@red-dot:~$ xrandr --output VIRTUAL1 --mode 1920x1080 --right-of eDP1

And indeed, after running these commands, I found myself with a virtual display, very happy to black hole all my windows, available to the imaginary right of my laptop screen.


Implementing simple cooperative threads in C

Back in the nineties I created a collaborative multitasking library for MSDOS using the setjmp() / longjmp() functions: it had some minor restrictions that I couldn't find the time to fix so I finally got bored and abandoned it. This article describes the development of a very similar library in a very didactic way.


macOS 10.15: Slow by Design

I just can't believe this (Allan Odgaard):

Apple has introduced notarization, setting aside the inconvenience this brings to us developers, it also results in a degraded user experience, as the first time a user runs a new executable, Apple delays execution while waiting for a reply from their server. This check for me takes close to a second.

This is not just for files downloaded from the internet, nor is it only when you launch them via Finder, this is everything. So even if you write a one line shell script and run it in a terminal, you will get a delay!


Honestly, this is downright baffling. Are Apple sending the source of all my custom scripts to their server? With their stance on privacy, I wouldn’t think so, so they are likely just sending a checksum, but what are they doing with that checksum that the system couldn’t do locally?

If this is true it must be the biggest perverseness and assholery ever seen in the computing world (coming from Apple is not that all surprising, though).


Printing hard-to-print PDFs on Linux

François Marier talks about PDFs that trigger out-of-memory conditions in printers:

[The problem seems to be] transparent images, a PDF 1.4 feature which apparently requires a more recent version of PostScript than what my printer supports.

He dogged the bullet by converting some documents to DjVu:

pdf2djvu -d 1200 2002.04049.pdf > 2002.04049-1200dpi.djvu

And others to PDF 1.3:

ps2pdf13 -r1200x1200 dow-faq_v1.1.pdf dow-faq_v1.1-1200dpi.pdf


"OpenBSD in a laptop" series, mentioned in Lobsters

My "OpenBSD in a laptop" series have been mentioned in Lobsters (a link aggregation site similar to Hacker News) here and here.

Private Key Redaction: UR DOIN IT RONG

Matt Palmer said:

Because posting private keys on the Internet is a bad idea, some people like to “redact” their private keys, so that it looks kinda-sorta like a private key, but it isn’t actually giving away anything secret. Unfortunately, due to the way that private keys are represented, it is easy to “redact” a key in such a way that it doesn’t actually redact anything at all. RSA private keys are particularly bad at this[...]

A very clear explanation follows about the only really meaningful parts of a private RSA key in base64 DER format and how to rebuild a full key using only these parts, even if the rest have been redacted out, garbled or obfuscated.


One impact of the dropping of Python 2 from Linux distributions

Chris Siebenmann said:

"Everyone's insistence on getting rid of Python 2 is magically transforming all of this perfectly functional and useful Python 2 code we have from an asset to a liability."


"Functioning code that you don't have to maintain and that just works is an asset; it sits there, doing a valuable job, and requires no work. Code that you have to do significant work on just so that it doesn't break (not to add any features) is a liability; you have to do work and inject risk and you get nothing for it."


SSL Server Online Test

This site provides a free online test of SSL/TLS connections:


I was reprimanded because I had support for TLS 1.0 and TLS 1.1 still enabled for this site, so I changed the configuration lines in /etc/nginx.conf and /etc/nginx/conf.d/samael.conf to support only version 1.2:

ssl_protocols TLSv1.2;

Three wrappers to run commands without impacting the rest of the system

François Marier names 3 tools to execute other commands with lower priorities on a Linux system:

Runs at a "nicer" (i.e. lower) CPU priority (a UNIX classic that everybody knows).
Sets the I/O priority. Interesting options are -c3 (needs root) or -n7. Only useful if you are using the CFQ scheduler.
Avoids storing files into the file cache, leaving it ready for other running processes.

Example in a crontab:

0 0 * * * nocache ionice nice /path/to/backup.sh