A little bit of complex design in phone "Level" applications

Modern smartphones have a lot of sensors; for example, they oftenhave sensors that will report the phone's orientation and when itchanges (which is used for things like 'wake up the screen when youpick up the phone'). One of the uses for these sensors is for littleconvenience applications, such as a "Level" app that uses theavailable sensors to report when the phone is level so you can useit as a level, sometimes for trivial purposes .

For years, this application seemed


My ideal Linux source package format (at the moment)

I've written recently on why source packages are complicated and why packages should be declarative (in contrast to Arch style shellscripts), but I haven't said anything about what I'd like in asource package format, which will mostly be from the perspectiveof a system administrator who sometimes needs to modify upstreampackages or package things myself.

A source package format is a compromise. After my recent experienceswith dgit , I now feel that the bestoption is that a source package is a VCS repository


Linux distribution packaging should be as declarative as possible

A commentator on my entry on why Debian and RPM (source) packagesare complicated suggested looking at ArchLinux packaging, where most of the information is in a single fileas more or less a shell script ( example ).Unfortunately, I'm not a fan of this sort of shell script or shellscript like format, ultimately because it's only declarative byconvention (although I suspect Arch enforces some of those conventions).One reason that declarative formats are important is that you cananalyze and understand what


Expiry times are dangerous, on "The dangers of SSL certificates"

Recently I read Lorin Hochstein's The dangers of SSL certificates ( via , amongothers), which talks about a Bazel build workflow outage caused byan expired TLS certificate. I had some direct reactions to this butafter thinking about it I want to step back and say that in general,it's clear that expiry times are dangerous, often more or lessregardless of where they appear. TLS certificate expiry times arean obvious and commonly encountered instance of expiry times incryptography, but TLS certificates aren't


Why Debian and RPM (source) packages are complicated

A commentator on my early notes on dgit mentioned that they found packaging in Debian overly complicated(and I think perhaps RPMs as well) and would rather build and shipa container. On the one hand, this is in a way fair; my impressionis that the process of specifying and building a container is rathereasier than for source packages. On the other hand, Debian and RPMsource packages are complicated for good reasons.

Any reasonably capable source package format needs to contain anumber of things. A source package


Python 2, GNU Emacs, and my LSP environment combine to shoot me in the foot

So I had a thing happen :

This is my angry face that GNU Emacs appears to have re-indented myentire Python file to a different standard without me noticing and Ididn't catch it in time. And also it appears impossible in GNU Emacsto FIX this. I do not want four space no tabs, this is historical codethat all files should be eight spaces with tabs (yes, Python 2).

That 'Python 2' bit turns out to be load-bearing. The specificproblem


We should probably write some high level overviews of our environment

Over on the Fediverse, I shared an old story that's partly about(system) documentation ,and it sparked a thought, which is that we (I) should write up abrief high level overview of our overall environment. This should probably be one level higher than an end of service writeup , which arefocused on a specific service (if we write them at all). The reasonto do this is because our regular documentation assumes a lot ofcontext and part of that context is whatour overall


Some notes on using the Sec-CH-UA HTTP headers that Chrome supports

A while back, Chrome proposed and implemented what are called useragent hints ,which are a collection of Sec-CH-UA HTTP headers that can provide you with additional information about the browserbeyond what the HTTP User-Agent header provides. As mentioned, only Chrome and browsers derivedfrom Chromium (or if you prefer, 'Blink') support these headers,and only since early 2021 (for Chrome; later for some others).However, Chrome is what a lot of people use.


Moving local package changes to a new Ubuntu release with dgit

Suppose, not entirely hypothetically, that you've made local changesto an Ubuntu package on one Ubuntu release, such as 22.04 ('jammy'),and now you want to move to another Ubuntu release such as 24.04('noble'). If you're working with straight 'apt-get source' Ubuntusource packages, this is done by tediously copying all of yourpatches over (hopefully the package uses quilt )to duplicate and recreate your 22


Early notes about using dgit on Ubuntu (LTS)

I recently read Ian Jackson's Debian’s git transition ( via ) and had a reaction :

I would really like to be able to patch and rebuild Ubuntu packagesfrom a git repository with our local changes (re)based on top ofupstream git. It would be much better than quilt'ing and debuild'ing.dsc packages (I have non-complimentary opinions on the Debian sourcepackage format). This news gives me hope that it'll be possiblesomeday, but especially for Ubuntu I