documentation is thoroughly hard
Documentation is good, so therefore more documentation must be better, right? A few examples where things may have gotten out of control.
more...
Documentation is good, so therefore more documentation must be better, right? A few examples where things may have gotten out of control.
more...
Why don’t unix commands have any vowels in the name? cp and mv are obviously devoweled standins for copy and move. But they’re less intuitive for new users. The user wants to copy a file. Why shouldn’t the name of the command be exactly the operation the user wants to perform?
What exactly does the user want to do? Instead of copying files, maybe I want to link two files. What does that mean? In unix, we have hard links and symbolic links. If I replace the “original” file, do I want the link to refer to the original file or the replacement? Or maybe what I mean by link two files is to combine two object files into an executable. Do we call that loading instead? ln is the name of a command, but link is the name of a concept. And sometimes the concept evolves over time. The linker is called ld because it used to be the loader. (I think.)
grep is a remarkably useful tool, but with a most unintuitive name. Why not call it find like Windows does? I want to find some text, I run find. So obvious. But some users may want to find files in the filesystem, not strings in a file. What command do they run? Probably locate.
There may be a great deal of historical accident in the names of commands (what if the inventors of awk had different initials?), but that doesn’t mean we can’t recognize the value of unique and precise identifiers.
The Solitaire cipher is perhaps the best known encryption algorithm implemented with a deck of cards. Ignoring security, it has a few drawbacks. It’s pretty complicated. I can never quite remember the rules. Sure, with practice it’s possible to memorize, but ideally we want something easy to teach. It’s also pretty slow. Even with practice, the shuffling and cutting manipulations take time.
more...
Unlike other languages which have one preferred means of signalling an error, C is a multi error paradigm language. Error handling styles in C can be organized into one of several distinct styles, such as popular or correct. Some examples of each.
more...
Of course I realize we’re stuck in a time loop. I’m not an idiot. Actually, a character on The Magicians says something similar, though with a bit more resignation, as he’s not powerful enough to change anything. The inevitability of the future, or the past, or whatever, is a recurring theme in time travel movies. Except when the theme is that things aren’t inevitable.
more...
Let’s say somebody has a blog that I’d like to read. Subscribe to even. Let’s say they have an RSS link on their page. This should be easy.
Now let’s say the blog in question is hosted/proxied/whatever by Cloudflare. Uh oh.
Just reading the blog in my browser is now somewhat hampered because Cloudflare thinks I’m some sort of cyberterrorist and requires my browser to run a javascript anti-turing test. But eventually the blog loads, I read it, click the RSS link to subscribe, see that it is in fact XML rendered in my browser, and copy the link.
I paste the link into my RSS reader, optimistically hoping to see new links arrive. But they never do. Check the logs. Seems I’m getting 503 server errors, which is Cloudflare’s way of saying, “It’s not us; it’s you. And fuck off.”
Apparently my feed fetcher is also a cyberterrorist. It’s also written in python and can’t solve browser detecting riddles because it doesn’t include a javascript engine because OMG why would fetching an RSS feed require javascript?
Now I’m somewhat less inclined to read said blog, but hey, at least the internet is being kept fast and secure from miscreants like me.
Recent events have rocked the mobile computing world to its core. OpenBSD retired the zaurus port, leaving users in desperate need of a new device. And not long before that, Microsoft released the Anniversary Update to Windows 10, but with free space requirements such that it’s nigh impossible to install on cheap 32GB eMMC equipped devices such as the HP Stream series, leaving users searching for a new lightweight operating system. With necessity as both mother and father, the scene is set for a truly epic pairing. OpenBSD on the HP Stream 7.
more...
Normally I don’t look at the source for HTML emails, but sometimes I end up scrounging around for some important data that didn’t survive the conversion to plaintext. And so that’s how I stumbled upon these gems.
<!--
The phone number module is hidden on Mobile.
20150122 [JAMES] - Add left-to-right direction to phone number td so phone number shows correctly for right-to-left languages
20150219 [YVONNE] -Updated variables for Venere - added 1px orange birder for Venere
20151019 [YVONNE] - Removed ATde_AT from TUV logic
20160831 [GREG] - Remove Phone Number for VN
//-->
<!--
/*------------------
Email Change Log
------------------*/
140515 [JAMES] - Launch Functionality
141126 [JAMES] - Apply exclusion logic for emergency emails M_BZ_OFC
150213 [JAMES] - Switch to Partners Tool data for localisation
160531 [GREG] - Switch from MHotel_Hcom_Destination DE to HCOM_MHotel_Destination
-->
I’m not sure which is more disturbing. The decision to embed version history in every email they send, or the inconsistent date formats, or the strange mix of HTML, C, and C++ style comments. Using -- is a particularly poor choice of decoration within an HTML comment, by the by.
I’m also having a fun time imagining staying at a hotel 50 years ago, then receiving a follow up letter spattered with white out covering up various notes from the marketer to the secretary. “Insert reference to upcoming holiday here.”
The doas utility comes with man pages, both for the doas command and the doas.conf config file, but some people prefer a touch more narrative in their documentation. So here is the official doas mastery book. Or pamphlet, anyway.
more...
The last few models of Thinkpads are sadly devoid of indicators. How do you tell if caps lock is on? Type something and see if it matches expectations. If it happens to be the lock screen, loltastic. More importantly, how do you know if AC power has accidentally been disconnected and the battery is running low? The red dot on the opposite side of the lid isn’t much use.
more...