We finally set up my home office. No more soldering on the dining room table or assembling computers on the living room coffee table.
Pictures and a description of my new home office of are available here.
We finally set up my home office. No more soldering on the dining room table or assembling computers on the living room coffee table.
Pictures and a description of my new home office of are available here.
Found while unpacking boxes last night:
Shown above, top to bottom, left to right:
Not shown (lost, recycled, or still buried in boxes):
Current gadgets:
Update (2024-07-26): I found the Nook, Cliq, both Nexus 7 tablets, an iPaq, and two digital cameras. Everything except the Cliq is shown below:
Those are some massive bezels!
On Friday I posted a long Site Backend article which explains how the content on this site is managed, speed and security tweaks, Hugo customizations, Apache configuration, and more.
Last week I released a browser extension for Firefox which sorts entries in Daily Kos live update articles in chronological order and adds a sort toolbar.
Install Firefox Add-On, Git Repository
Background: Several months ago I created a bookmarklet (available here) which sorts entries in Daily Kos live update articles from oldest to newest. Unfortunately the bookmarklet was difficult for people to use because:
To address these problems, I converted the bookmarklet into a browser extension. I also added a couple of features during the convdrsion.
Note: The extension isn’t Firefox-specific, but it’s unlikely I will port it to Chrome because I recommend people ditch Chrome.
This week Google announced they are moving forward with the plan deprecate Manifest V2. Despite claims by Google, this change has nothing to do with security and everything to do with hobbling ad-blockers.
Last year I switched to Firefox in anticipation of this change and in response to several other user-hostile changes,
At this point I recommend everyone do the following:
This recommendation applies even if you don’t care about ads or privacy;
the current "don’t be evil" incarnation of Google has
been a poor steward of Chrome and it’s only a matter of time before
they do something that you do care about.
Update (2024-06-27): Don’t forget that ad networks regularly serve up malware as well.
While perusing Vim scripts, I noticed that there are several Vim books. A couple of them piqued my interest:
I bought both books and I’m about 300 pages into Practical Vim. So
far it’s great. I have been using Vim for over 20 years but I still
learned a few things; for example, I did not know about the \v “very
magic” prefix for patterns.
If you buy the books from the publisher instead of Amazon you can download the eBooks as DRM-free PDF, EPUB, and MOBI files. I read the PDFs on my desktop and the EPUBs in the Kindle app on my phone (imported via Send to Kindle).
Unlike many technical books, the EPUBs render very nicely in the Kindle app. Example:
Page from “Practical Vim” rendered by the Kindle app on a Pixel 8 Pro
Update (2024-06-15): I finished both books. Practical Vim is great and I recommend it. Modern Vim is a bit of a tossup:
terminal
command, which I use regularly.To be fair, :terminal is mentioned briefly in the “What’s
Next for Vim 8” section of Appendix 1, and it was not included in a
stable release until after Modern Vim was published.
A couple of site updates:
Dark mode uses a prefers-color-scheme media
query to determine the default theme, so it
should do the right thing™ for people who have their system
configured to prefer a dark color scheme. The theme can also be set
explicitly using the “Switch Theme” icon on the right side of the menu
bar.
There is a minor refresh bug and probably a few rough edges with older content, but I will get them sorted as time permits.
Screenshot:
New dark theme active and "Switch Theme" menu icon highlighted.
I strongly prefer dark mode and have wanted to add it here for years, so this change is a big victory for me.
There’s not much to say here; the About page now has a couple of pictures.
Adding the images in a way that I was satisfied with turned out to be a lot more effort than you might expect… This site is statically generated with Hugo, the theme is a heavily-customized version of Bulma, and blog posts and articles are written in Markdown.
The features that I wanted were:
<picture>
element).title, alt, aria-label, <figcaption>, etc).In order to support everything above, I ended up copying my existing
pe-figure shortcode and modifying it to support image “carousels”
in articles.
In any case, it’s done now. Here is the result:
I just released v0.6 of fips203ipd.
fips203ipd is an embeddable, dependency-free, MIT-0 licensed, C11 implementation of the FIPS 203 initial public draft (IPD) with scalar, AVX-512, and Neon backends. The final version of FIPS 203 will become ML-KEM, NIST’s standarized post-quantum key encapsulation mechanism (KEM).
Git Repository, API Documentation, Original Announcement, pqc-forum Announcement
BACKEND command-line build parameter,
and fips203ipd_backend() functionHere are median cycle count as measured by the included bench tool for
each parameter set, function, compiler, and backend from several of my
systems.
For context, the results below are competitive with the eBATS results (kyber512, kyber768, kyber1024), although the comparison is inexact because the results were measured with different tools and because Kyber and ML-KEM differ slightly.
Median cycles by backend, Lenovo ThinkPad X1 Carbon, 6th Gen (i7-1185G7).
| Set | Function | Scalar (GCC) | Scalar (Clang) | AVX-512 (GCC) |
|---|---|---|---|---|
| kem512 | keygen | 118733 | 70770 | 17448 |
| kem512 | encaps | 126159 | 82713 | 21474 |
| kem512 | decaps | 185426 | 97722 | 25685 |
| kem768 | keygen | 172446 | 110192 | 29334 |
| kem768 | encaps | 184614 | 132385 | 32528 |
| kem768 | decaps | 234564 | 148425 | 38184 |
| kem1024 | keygen | 268327 | 176256 | 39914 |
| kem1024 | encaps | 270793 | 206497 | 45268 |
| kem1024 | decaps | 370533 | 224686 | 52523 |
Median cycles by backend, Raspberry Pi 5 (Cortex-A76).
| Set | Function | Scalar (GCC) | Scalar (Clang) | Neon (GCC) |
|---|---|---|---|---|
| kem512 | keygen | 127403 | 77030 | 53667 |
| kem512 | encaps | 132432 | 90335 | 61321 |
| kem512 | decaps | 176620 | 107868 | 73647 |
| kem768 | keygen | 197268 | 114009 | 92471 |
| kem768 | encaps | 205189 | 140042 | 104842 |
| kem768 | decaps | 265442 | 162514 | 121529 |
| kem1024 | keygen | 292543 | 180492 | 140220 |
| kem1024 | encaps | 298150 | 212488 | 155127 |
| kem1024 | decaps | 376114 | 242303 | 176042 |
Median cycles by backend, Odroid N2L (Cortex-A73).
| Set | Function | Scalar (GCC) | Scalar (Clang) | Neon (GCC) |
|---|---|---|---|---|
| kem512 | keygen | 210900 | 123675 | 89625 |
| kem512 | encaps | 216750 | 143325 | 101550 |
| kem512 | decaps | 298050 | 173550 | 122475 |
| kem768 | keygen | 325050 | 179025 | 153525 |
| kem768 | encaps | 331725 | 219900 | 173325 |
| kem768 | decaps | 444600 | 259350 | 201900 |
| kem1024 | keygen | 482625 | 285375 | 234075 |
| kem1024 | encaps | 475500 | 335025 | 256650 |
| kem1024 | decaps | 619725 | 384825 | 293250 |
Update (2024-05-16): Added cycle counts for scalar backend (clang
and gcc), added bar charts, added downloadable CSVs. The
CSVs and SVGs generated by the Python scripts in the
scripts/bench-chart/ directory of the Git repository.
Today’s solar eclipse took a healthy bite out of our solar energy production for the day. According to the details on timeanddate.com, the partial eclipse in our area lasted from 2:04 pm until 4:32 pm (Eastern).
Those times line up perfectly with the dip shown on our dashboard:
Solar dashboard with eclipse time highlighted.
Unfortunately we couldn’t find our solar eclipse glasses, so we had to fall back to ye olde pinhole method.
Update (2024-04-09): Several comments on this Ars Technica article also show dips in solar energy production.
Two new releases:
Embedable, dependency-free, MIT-0 licensed, C11 implementation of all algorithms from FIPS 202, SP 800-185, and the draft KangarooTwelve and TurboSHAKE specification.
Git Repository, API Documentation, Original Announcement
tests/cavp-tests.Embedable, dependency-free, MIT-0 licensed, C11 implementation of the FIPS 203 initial public draft (IPD). The final version of FIPS 203 will become ML-KEM, NIST’s standarized post-quantum key encapsulation mechanism (KEM).
Git Repository, API Documentation, Original Announcement
examples/2-nist-tests/.sha3.[hc].