This repository contains the content for my technical blog, The Flat Trantor Society.
I initially composed the articles using blogspot's own tools, which don't (as far as I can tell) allow for using Markdown, and make code formatting particularly difficult.
I've now copied the contents of the first two posts and manually converted them to Markdown format. For any future posts, I'll first compose them as Markdown, then copy-and-paste the generated HTML into blogspot.
Future posts (once I acquire the proverbial Round Tuit):
- [DONE] Where should the Control key be located? Almost all modern computer keyboards put the Caps Lock key directly to the left of the 'A' key, with the Shift key below it and the Control key below Shift. I strongly prefer to have the Control key directly to the left of 'A', and I rarely use Caps Lock. I'll explain why, and how you can reconfigure your own keyboard in software.
What is an "lvalue", and how has the meaning evolved over time?
The three editions of the ISO C standard have three different
definitions of the term "lvalue". The definition has improved
over time, though all of them differ from the original meaning.
(The wording in the 2011 standard is based on a suggestion I made
I've posted this as one section of a more general article about quibbles with the ISO C standard.
- Shell commands:
crontab -econsidered harmful; more generally, how to manage your crontab (keep it in a file under source control and use
crontab filenameto install it). And don't be tempted to edit
/etc/cron.d/*; per-user crontabs exist for a reason. (Hmm, what's the point of system crontabs if the
rootuser can use use the
- Google Groups considered harmful
void main()is useful for detecting bad C textbooks (should I resist the temptation to mention "shibboleth"?)
- Multidimensional arrays in C. Array of array vs. pointer to array vs. array of pointers vs. pointer to pointer -- and more for higher dimensions. Added flexibility (not having to specify sizes at compile time, or definition time for VLAs) comes with added responsibility (managing allocation and deallocation). Pictures with boxes and arrows, probably drawn with graphviz.
- C is more strongly typed than you think it is.
- This is why people use Windows (a few things Linux should do better).
- Floating-point equality: using a simple epsilon is not good enough.
- Bash documentation. Debian doesn't include the bash-doc package for
"free software" reasons; explain how to install it yourself (see
$INFOPATH). And the documentation for the special parameters
$* $@ $# $? $- $$ $! $0 $_is hard to find; provide my patch that updates the document.