<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://steakwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ViciousCarnivore</id>
	<title>Steak Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://steakwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ViciousCarnivore"/>
	<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php/Special:Contributions/ViciousCarnivore"/>
	<updated>2026-05-29T17:12:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://steakwiki.com/index.php?title=Radio&amp;diff=2718</id>
		<title>Radio</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Radio&amp;diff=2718"/>
		<updated>2026-05-26T02:40:12Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Antenna size per band from sigid wiki.png|Antenna size per band from sigid wiki.png]]&lt;br /&gt;
(from sigidwiki)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List===&lt;br /&gt;
* https://www.eevblog.com/forum/beginners/question-about-an-example-in-the-book-rf-circuit-design-by-chris-bowick/msg5738275/?topicseen#msg5738275 beginners rf circuit design book which is recommended in the thread, though there are some errors in the books circuits (not uncommon, practical electronics for inventors also has errors, I have found).&lt;br /&gt;
* https://www.eevblog.com/forum/rf-microwave/questions-about-antennas-and-sleeve-baluns/msg5780307 - Some detailed antenna notes. I didn't read it all yet, but putting it here for reference.&lt;br /&gt;
* https://magsmx.com/index.html - Some tools for Microwave RF. Phase shifters, Switches, Drivers and Antennas. Some reading material.&lt;br /&gt;
* https://www.everythingrf.com/rf-calculators - RF Calculators&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Vintage_Sweets_Oranges&amp;diff=2717</id>
		<title>Vintage Sweets Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Vintage_Sweets_Oranges&amp;diff=2717"/>
		<updated>2026-05-25T13:35:22Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
Purchased at WF the first week of 06/2025. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:IMG 20250608 072438823.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20250608 072527888.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in single Qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
$1.99/lbs. It was about $1 per Orange. Maybe a little more since these are a little large.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Fair. Tastes like the orange freeze pops I used to eat as a kid/teenager. Also gives me a slight headache like those do as well. They are OK. Could be better, but not something you would throw away. 7/10.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
These are an orange-yellow colour.&lt;br /&gt;
===Peelability===&lt;br /&gt;
These are easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
Seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
It is a large size.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Purchased another one at Whole Foods. 01/2026. This time is was a very good vintage sweets orange. So the taste of these can differ. I found it best to cut into small pieces as it's a bit too sweet to eat a whole 1/6th of an orange at a time.&lt;br /&gt;
&lt;br /&gt;
3: Another Vintage Sweets, late season 05/2026. This one was a full / rich flavour and very good. Generally, the vintage sweets have been good. The first one tasted like a freeze pop, and was nostalgic for when i was a teenager eating generic grocery store freeze pops/popsicles. But the flavour profile is not consistent. None of the other ones have been like that.&lt;br /&gt;
&lt;br /&gt;
4. I purchased about 4 of these from WF, in 05/2026. One was good, one was bad. The other two vanished from my fridge. In this case, buying multiple was the right call, as some will be bad, but not all.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Computing_Fails&amp;diff=2716</id>
		<title>Computing Fails</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Computing_Fails&amp;diff=2716"/>
		<updated>2026-05-19T11:19:43Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Confirmed Fails */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mistakes made by flawed humans. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Confirmed Fails==&lt;br /&gt;
* IPv6. Decades after it's introduction, still no one wants to use it. At some point, you have to admit, that IPv6 was a fail. And engineers should make a replacement. &lt;br /&gt;
&lt;br /&gt;
* Windows after XP. XP was a great operating system. And Windows was never quite the same since Vista.&lt;br /&gt;
&lt;br /&gt;
* ARM on cellphones. Millions (billions?) of devices that are unusable after 5 years. Landfill.&lt;br /&gt;
&lt;br /&gt;
* CrowdStrike - Boy, this really &amp;quot;Striked, the IT Crowd / Made the IT Crowd Strike&amp;quot;... Get it?  [https://en.wikipedia.org/wiki/2024_CrowdStrike-related_IT_outages] If there's one thing they could've changed, it might be to do 'staggered rollouts' instead of all machines at once.&lt;br /&gt;
&lt;br /&gt;
* SaaS. This is similar to managed services. Evil. No customer wants SaaS, but they don't always have a choice. Compare a mechanic to the insurance companies. One does active work for things that break. The other one takes in a paycheck whether things break or not.&lt;br /&gt;
&lt;br /&gt;
==Potential Fails==&lt;br /&gt;
&lt;br /&gt;
* systemd. While it works, it is practically no better than the previous solutions, and is a mess of LOCs.&lt;br /&gt;
&lt;br /&gt;
* wayland. This may end up making a whole lot of work for people, or it may fix what was wrong with X. See dedoimedo's thoughts on this. I don't know enough to comment. https://www.dedoimedo.com/computers/xlibre.html https://www.dedoimedo.com/computers/wayland-2024.html&lt;br /&gt;
&lt;br /&gt;
==Too Much==&lt;br /&gt;
Programs that are full of junk or otherwise misleading. With wget, we have too much info. This example isn't specific to wget, but is a common sight. Less is more.&lt;br /&gt;
===usable wget===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget -h&lt;br /&gt;
wget: unrecognized option: h&lt;br /&gt;
BusyBox v1.31.1 () multi-call binary.&lt;br /&gt;
&lt;br /&gt;
Usage: wget [-c|--continue] [--spider] [-q|--quiet] &lt;br /&gt;
[-O|--output-document FILE]&lt;br /&gt;
        [-o|--output-file FILE] [--header 'header: value'] [-Y|--proxy on/off]&lt;br /&gt;
        [-P DIR] [-S|--server-response] [-U|--user-agent AGENT] [-T SEC] URL...&lt;br /&gt;
&lt;br /&gt;
Retrieve files via HTTP or FTP&lt;br /&gt;
&lt;br /&gt;
        --spider        Only check URL existence: $? is 0 if exists&lt;br /&gt;
        -c              Continue retrieval of aborted transfer&lt;br /&gt;
        -q              Quiet&lt;br /&gt;
        -P DIR          Save to DIR (default .)&lt;br /&gt;
        -S              Show server response&lt;br /&gt;
        -T SEC          Network read timeout is SEC seconds&lt;br /&gt;
        -O FILE         Save to FILE ('-' for stdout)&lt;br /&gt;
        -o FILE         Log messages to FILE&lt;br /&gt;
        -U STR          Use STR for User-Agent header&lt;br /&gt;
        -Y on/off       Use proxy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===unusable wget===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget -h&lt;br /&gt;
GNU Wget 1.20.1, a non-interactive network retriever.&lt;br /&gt;
Usage: wget [OPTION]... [URL]...&lt;br /&gt;
&lt;br /&gt;
Mandatory arguments to long options are mandatory for short options too.&lt;br /&gt;
&lt;br /&gt;
Startup:&lt;br /&gt;
  -V,  --version                   display the version of Wget and exit&lt;br /&gt;
  -h,  --help                      print this help&lt;br /&gt;
  -b,  --background                go to background after startup&lt;br /&gt;
  -e,  --execute=COMMAND           execute a `.wgetrc'-style command&lt;br /&gt;
&lt;br /&gt;
Logging and input file:&lt;br /&gt;
  -o,  --output-file=FILE          log messages to FILE&lt;br /&gt;
  -a,  --append-output=FILE        append messages to FILE&lt;br /&gt;
  -d,  --debug                     print lots of debugging information&lt;br /&gt;
  -q,  --quiet                     quiet (no output)&lt;br /&gt;
  -v,  --verbose                   be verbose (this is the default)&lt;br /&gt;
  -nv, --no-verbose                turn off verboseness, without being quiet&lt;br /&gt;
       --report-speed=TYPE         output bandwidth as TYPE.  TYPE can be bits&lt;br /&gt;
  -i,  --input-file=FILE           download URLs found in local or external FILE&lt;br /&gt;
  -F,  --force-html                treat input file as HTML&lt;br /&gt;
  -B,  --base=URL                  resolves HTML input-file links (-i -F)&lt;br /&gt;
                                     relative to URL&lt;br /&gt;
       --config=FILE               specify config file to use&lt;br /&gt;
       --no-config                 do not read any config file&lt;br /&gt;
       --rejected-log=FILE         log reasons for URL rejection to FILE&lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
  -t,  --tries=NUMBER              set number of retries to NUMBER (0 unlimits)&lt;br /&gt;
       --retry-connrefused         retry even if connection is refused&lt;br /&gt;
       --retry-on-http-error=ERRORS    comma-separated list of HTTP errors to retry&lt;br /&gt;
  -O,  --output-document=FILE      write documents to FILE&lt;br /&gt;
  -nc, --no-clobber                skip downloads that would download to&lt;br /&gt;
                                     existing files (overwriting them)&lt;br /&gt;
       --no-netrc                  don't try to obtain credentials from .netrc&lt;br /&gt;
  -c,  --continue                  resume getting a partially-downloaded file&lt;br /&gt;
       --start-pos=OFFSET          start downloading from zero-based position OFFSET&lt;br /&gt;
       --progress=TYPE             select progress gauge type&lt;br /&gt;
       --show-progress             display the progress bar in any verbosity mode&lt;br /&gt;
  -N,  --timestamping              don't re-retrieve files unless newer than&lt;br /&gt;
                                     local&lt;br /&gt;
       --no-if-modified-since      don't use conditional if-modified-since get&lt;br /&gt;
                                     requests in timestamping mode&lt;br /&gt;
       --no-use-server-timestamps  don't set the local file's timestamp by&lt;br /&gt;
                                     the one on the server&lt;br /&gt;
  -S,  --server-response           print server response&lt;br /&gt;
       --spider                    don't download anything&lt;br /&gt;
  -T,  --timeout=SECONDS           set all timeout values to SECONDS&lt;br /&gt;
       --dns-timeout=SECS          set the DNS lookup timeout to SECS&lt;br /&gt;
       --connect-timeout=SECS      set the connect timeout to SECS&lt;br /&gt;
       --read-timeout=SECS         set the read timeout to SECS&lt;br /&gt;
  -w,  --wait=SECONDS              wait SECONDS between retrievals&lt;br /&gt;
       --waitretry=SECONDS         wait 1..SECONDS between retries of a retrieval&lt;br /&gt;
       --random-wait               wait from 0.5*WAIT...1.5*WAIT secs between retrievals&lt;br /&gt;
       --no-proxy                  explicitly turn off proxy&lt;br /&gt;
  -Q,  --quota=NUMBER              set retrieval quota to NUMBER&lt;br /&gt;
       --bind-address=ADDRESS      bind to ADDRESS (hostname or IP) on local host&lt;br /&gt;
       --limit-rate=RATE           limit download rate to RATE&lt;br /&gt;
       --no-dns-cache              disable caching DNS lookups&lt;br /&gt;
       --restrict-file-names=OS    restrict chars in file names to ones OS allows&lt;br /&gt;
       --ignore-case               ignore case when matching files/directories&lt;br /&gt;
  -4,  --inet4-only                connect only to IPv4 addresses&lt;br /&gt;
  -6,  --inet6-only                connect only to IPv6 addresses&lt;br /&gt;
       --prefer-family=FAMILY      connect first to addresses of specified family,&lt;br /&gt;
                                     one of IPv6, IPv4, or none&lt;br /&gt;
       --user=USER                 set both ftp and http user to USER&lt;br /&gt;
       --password=PASS             set both ftp and http password to PASS&lt;br /&gt;
       --ask-password              prompt for passwords&lt;br /&gt;
       --use-askpass=COMMAND       specify credential handler for requesting&lt;br /&gt;
                                     username and password.  If no COMMAND is&lt;br /&gt;
                                     specified the WGET_ASKPASS or the SSH_ASKPASS&lt;br /&gt;
                                     environment variable is used.&lt;br /&gt;
       --no-iri                    turn off IRI support&lt;br /&gt;
       --local-encoding=ENC        use ENC as the local encoding for IRIs&lt;br /&gt;
       --remote-encoding=ENC       use ENC as the default remote encoding&lt;br /&gt;
       --unlink                    remove file before clobber&lt;br /&gt;
       --xattr                     turn on storage of metadata in extended file attributes&lt;br /&gt;
Directories:&lt;br /&gt;
  -nd, --no-directories            don't create directories&lt;br /&gt;
  -x,  --force-directories         force creation of directories&lt;br /&gt;
  -nH, --no-host-directories       don't create host directories&lt;br /&gt;
       --protocol-directories      use protocol name in directories&lt;br /&gt;
  -P,  --directory-prefix=PREFIX   save files to PREFIX/..&lt;br /&gt;
       --cut-dirs=NUMBER           ignore NUMBER remote directory components&lt;br /&gt;
&lt;br /&gt;
HTTP options:&lt;br /&gt;
       --http-user=USER            set http user to USER&lt;br /&gt;
       --http-password=PASS        set http password to PASS&lt;br /&gt;
       --no-cache                  disallow server-cached data&lt;br /&gt;
       --default-page=NAME         change the default page name (normally&lt;br /&gt;
                                     this is 'index.html'.)&lt;br /&gt;
  -E,  --adjust-extension          save HTML/CSS documents with proper extensions&lt;br /&gt;
       --ignore-length             ignore 'Content-Length' header field&lt;br /&gt;
       --header=STRING             insert STRING among the headers&lt;br /&gt;
       --compression=TYPE          choose compression, one of auto, gzip and none. (default: none)&lt;br /&gt;
       --max-redirect              maximum redirections allowed per page&lt;br /&gt;
       --proxy-user=USER           set USER as proxy username&lt;br /&gt;
       --proxy-password=PASS       set PASS as proxy password&lt;br /&gt;
       --referer=URL               include 'Referer: URL' header in HTTP request&lt;br /&gt;
       --save-headers              save the HTTP headers to file&lt;br /&gt;
  -U,  --user-agent=AGENT          identify as AGENT instead of Wget/VERSION&lt;br /&gt;
       --no-http-keep-alive        disable HTTP keep-alive (persistent connections)&lt;br /&gt;
       --no-cookies                don't use cookies&lt;br /&gt;
       --load-cookies=FILE         load cookies from FILE before session&lt;br /&gt;
       --save-cookies=FILE         save cookies to FILE after session&lt;br /&gt;
       --keep-session-cookies      load and save session (non-permanent) cookies&lt;br /&gt;
       --post-data=STRING          use the POST method; send STRING as the data&lt;br /&gt;
       --post-file=FILE            use the POST method; send contents of FILE&lt;br /&gt;
       --method=HTTPMethod         use method &amp;quot;HTTPMethod&amp;quot; in the request&lt;br /&gt;
       --body-data=STRING          send STRING as data. --method MUST be set&lt;br /&gt;
       --body-file=FILE            send contents of FILE. --method MUST be set&lt;br /&gt;
       --content-disposition       honor the Content-Disposition header when&lt;br /&gt;
                                     choosing local file names (EXPERIMENTAL)&lt;br /&gt;
     --content-on-error          output the received content on server errors&lt;br /&gt;
       --auth-no-challenge         send Basic HTTP authentication information&lt;br /&gt;
                                     without first waiting for the server's&lt;br /&gt;
                                     challenge&lt;br /&gt;
&lt;br /&gt;
HTTPS (SSL/TLS) options:&lt;br /&gt;
       --secure-protocol=PR        choose secure protocol, one of auto, SSLv2,&lt;br /&gt;
                                     SSLv3, TLSv1, TLSv1_1, TLSv1_2 and PFS&lt;br /&gt;
       --https-only                only follow secure HTTPS links&lt;br /&gt;
       --no-check-certificate      don't validate the server's certificate&lt;br /&gt;
       --certificate=FILE          client certificate file&lt;br /&gt;
       --certificate-type=TYPE     client certificate type, PEM or DER&lt;br /&gt;
       --private-key=FILE          private key file&lt;br /&gt;
       --private-key-type=TYPE     private key type, PEM or DER&lt;br /&gt;
       --ca-certificate=FILE       file with the bundle of CAs&lt;br /&gt;
       --ca-directory=DIR          directory where hash list of CAs is stored&lt;br /&gt;
       --crl-file=FILE             file with bundle of CRLs&lt;br /&gt;
       --pinnedpubkey=FILE/HASHES  Public key (PEM/DER) file, or any number&lt;br /&gt;
                                   of base64 encoded sha256 hashes preceded by&lt;br /&gt;
                                   'sha256//' and separated by ';', to verify&lt;br /&gt;
                                   peer against&lt;br /&gt;
&lt;br /&gt;
       --ciphers=STR           Set the priority string (GnuTLS) or cipher list string (OpenSSL) directly.&lt;br /&gt;
                                   Use with care. This option overrides --secure-protocol.&lt;br /&gt;
                                   The format and syntax of this string depend on the specific SSL/TLS engine.&lt;br /&gt;
HSTS options:&lt;br /&gt;
       --no-hsts                   disable HSTS&lt;br /&gt;
       --hsts-file                 path of HSTS database (will override default)&lt;br /&gt;
FTP options:&lt;br /&gt;
       --ftp-user=USER             set ftp user to USER&lt;br /&gt;
       --ftp-password=PASS         set ftp password to PASS&lt;br /&gt;
       --no-remove-listing         don't remove '.listing' files&lt;br /&gt;
       --no-glob                   turn off FTP file name globbing&lt;br /&gt;
       --no-passive-ftp            disable the &amp;quot;passive&amp;quot; transfer mode&lt;br /&gt;
       --preserve-permissions      preserve remote file permissions&lt;br /&gt;
       --retr-symlinks             when recursing, get linked-to files (not dir)&lt;br /&gt;
&lt;br /&gt;
FTPS options:&lt;br /&gt;
       --ftps-implicit                 use implicit FTPS (default port is 990)&lt;br /&gt;
       --ftps-resume-ssl               resume the SSL/TLS session started in the control connection when&lt;br /&gt;
                                         opening a data connection&lt;br /&gt;
       --ftps-clear-data-connection    cipher the control channel only; all the data will be in plaintext&lt;br /&gt;
       --ftps-fallback-to-ftp          fall back to FTP if FTPS is not supported in the target server&lt;br /&gt;
WARC options:&lt;br /&gt;
       --warc-file=FILENAME        save request/response data to a .warc.gz file&lt;br /&gt;
       --warc-header=STRING        insert STRING into the warcinfo record&lt;br /&gt;
       --warc-max-size=NUMBER      set maximum size of WARC files to NUMBER&lt;br /&gt;
       --warc-cdx                  write CDX index files&lt;br /&gt;
       --warc-dedup=FILENAME       do not store records listed in this CDX file&lt;br /&gt;
       --no-warc-compression       do not compress WARC files with GZIP&lt;br /&gt;
       --no-warc-digests           do not calculate SHA1 digests&lt;br /&gt;
       --no-warc-keep-log          do not store the log file in a WARC record&lt;br /&gt;
       --warc-tempdir=DIRECTORY    location for temporary files created by the&lt;br /&gt;
                                     WARC writer&lt;br /&gt;
Recursive download:&lt;br /&gt;
  -r,  --recursive                 specify recursive download&lt;br /&gt;
  -l,  --level=NUMBER              maximum recursion depth (inf or 0 for infinite)&lt;br /&gt;
       --delete-after              delete files locally after downloading them&lt;br /&gt;
  -k,  --convert-links             make links in downloaded HTML or CSS point to&lt;br /&gt;
                                     local files&lt;br /&gt;
       --convert-file-only         convert the file part of the URLs only (usually known as the basename)&lt;br /&gt;
       --backups=N                 before writing file X, rotate up to N backup files&lt;br /&gt;
  -K,  --backup-converted          before converting file X, back up as X.orig&lt;br /&gt;
  -m,  --mirror                    shortcut for -N -r -l inf --no-remove-listing&lt;br /&gt;
  -p,  --page-requisites           get all images, etc. needed to display HTML page&lt;br /&gt;
       --strict-comments           turn on strict (SGML) handling of HTML comments&lt;br /&gt;
Recursive accept/reject:&lt;br /&gt;
  -A,  --accept=LIST               comma-separated list of accepted extensions&lt;br /&gt;
  -R,  --reject=LIST               comma-separated list of rejected extensions&lt;br /&gt;
       --accept-regex=REGEX        regex matching accepted URLs&lt;br /&gt;
       --reject-regex=REGEX        regex matching rejected URLs&lt;br /&gt;
       --regex-type=TYPE           regex type (posix|pcre)&lt;br /&gt;
  -D,  --domains=LIST              comma-separated list of accepted domains&lt;br /&gt;
       --exclude-domains=LIST      comma-separated list of rejected domains&lt;br /&gt;
       --follow-ftp                follow FTP links from HTML documents&lt;br /&gt;
       --follow-tags=LIST          comma-separated list of followed HTML tags&lt;br /&gt;
       --ignore-tags=LIST          comma-separated list of ignored HTML tags&lt;br /&gt;
  -H,  --span-hosts                go to foreign hosts when recursive&lt;br /&gt;
  -L,  --relative                  follow relative links only&lt;br /&gt;
  -I,  --include-directories=LIST  list of allowed directories&lt;br /&gt;
       --trust-server-names        use the name specified by the redirection&lt;br /&gt;
                                     URL's last component&lt;br /&gt;
  -X,  --exclude-directories=LIST  list of excluded directories&lt;br /&gt;
  -np, --no-parent                 don't ascend to the parent directory&lt;br /&gt;
&lt;br /&gt;
Email bug reports, questions, discussions to &amp;lt;bug-wget@gnu.org&amp;gt;&lt;br /&gt;
and/or open issues at https://savannah.gnu.org/bugs/?func=additem&amp;amp;group=wget.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Conclusion===&lt;br /&gt;
No human being can digest all the information in the latter. It's &lt;br /&gt;
a mess. Perhaps another flag can be used for the verbose help information, but&lt;br /&gt;
for average daily usage, busybox wins here.&lt;br /&gt;
&lt;br /&gt;
EDIT: it looks like I am not the only one who thinks this way as someone has created: &lt;br /&gt;
https://github.com/tldr-pages/tldr&lt;br /&gt;
&lt;br /&gt;
==Javascript and White Space bloat==&lt;br /&gt;
Discourse. I hate it so much. It's as if someone who had never used a forum before thought about designing forums. They then looked at all the reasonable spacing and coherent navigation offered by php forums from the 2000's, and said: &amp;quot;No, I must have more white space, and a font size that is 3 times as big. I must also make it slower, by adding superfluous javascript libraries.&amp;quot;. Thus, discourse was created: To deter people from actually using forums effectively.&lt;br /&gt;
&lt;br /&gt;
Forums have been nerfed apparently in favor of social media. In fact, most websites have been nerfed in favor of monolithic 'feeds'.&lt;br /&gt;
&lt;br /&gt;
==IPv6 Is Badly Designed==&lt;br /&gt;
IPv6. It was supposed to take over IPv4 over 20 years ago (yes, people were talking about IPv6 in the year 2000). In 2020, it still hasn't. Why? Because it's crap, and everyone knows it. However, the amount of corporate money invested into it, means that it may eventually get forced onto the masses. It's not even easy to find criticisms of the technology these days. It's all being astroturfed by shills. It's like a bad sequel. It's worse than the original. But you can't avoid it.&lt;br /&gt;
&lt;br /&gt;
Ref: https://web.archive.org/web/20070707080506/http://tech.hellyeah.com/display_doc.phtml?id=28&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To begin with, IPv6 will use a 128 bit address space, as compared to &lt;br /&gt;
IPv4's 32 bits. This 128 bit address is the biggest reason for IPv6. It &lt;br /&gt;
is supposed to give us plenty of IP addresses to last us well into the &lt;br /&gt;
future. However, 128 bits is overkill. Sixty-four should be more than &lt;br /&gt;
enough.&lt;br /&gt;
&lt;br /&gt;
Let's put it in terms that are easier to comprehend. We'll assume that &lt;br /&gt;
there are 15 billion people on the planet. (currently, there are only &lt;br /&gt;
6.1 billion, and the largest estimates for the next fifty years project &lt;br /&gt;
12 billion). With 128 bits per IP address, each person could have &lt;br /&gt;
2.26e28 IP addresses to themselves. If we reduce it to 64 bits, each &lt;br /&gt;
person would still have 1.2 billion addresses.&lt;br /&gt;
&lt;br /&gt;
What about the people who want to put IP addresses on every light pole, &lt;br /&gt;
mailbox, stop light and street sign? Well, there are about 148 million &lt;br /&gt;
square kilometers of land on the Earth (not including ocean). With 128 &lt;br /&gt;
bits, we have almost 2.3e20 addresses per square centimeter. If we &lt;br /&gt;
reduce that to 64 bits, each square centimeter would still have about &lt;br /&gt;
12.5 IP addresses -- more than enough.&lt;br /&gt;
&lt;br /&gt;
...(Sections Omitted)&lt;br /&gt;
&lt;br /&gt;
Part of IPv4's immense success was due to its &lt;br /&gt;
simplicity and rigid structure. It does the job it was meant to do &lt;br /&gt;
quickly and effectively. IPv6 adds all sorts of bells and whistles that &lt;br /&gt;
are unneccesary and even detrimental. With all the wasted space and &lt;br /&gt;
privacy issues, I'd rather have the IETF go back to the drawing board &lt;br /&gt;
and come back with IPv7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Less is more. The answer isn't &amp;quot;add more people&amp;quot;. The answer isn't &amp;quot;add more ip addresses&amp;quot;. Things can't expand exponentially forever. There has to be limits in place. It has to be practically usable. &lt;br /&gt;
&lt;br /&gt;
If you look at it right, neither ipv4 nor ipv6 is designed correctly. ipv4 is too simple, and ipv6 is too complicated. They are both fails.&lt;br /&gt;
&lt;br /&gt;
It's been said, but if they had made ipv4 5 octets from the start, ip addresses would not have run out for decades. Maybe not ever.&lt;br /&gt;
&lt;br /&gt;
Also consider that mac addresses are easier to read than IPv6, and much higher than 4 billion combinations (16 ^12, according to: https://stackoverflow.com/questions/44873804/will-mac-address-ever-run-out-of-combinations) It's 48 bits. This brings up the question: What is the best way to represent ip addresses (ipv4, ipv6, mac address, or other), and what is the appropriate number of bits to designate to it.&lt;br /&gt;
&lt;br /&gt;
==Hidden Files==&lt;br /&gt;
 alias ls='ls -a'&lt;br /&gt;
Hidden files are evil. All ls should be ls -a. They will bite you as often as pcb makers get bitten by incorrect footprints. Its bad design. It will never go away. There's no thinking that you should've been smarter. Lies. Its the human factor. It will always, always bite you someday.&lt;br /&gt;
Hidden files are fundamentally flawed. They will always cause trouble.&lt;br /&gt;
&lt;br /&gt;
In Windows (10/11), there are 2, TWO levels of hidden files. I kid you not.&lt;br /&gt;
&lt;br /&gt;
==Duplication of Work==&lt;br /&gt;
There are dozens of companies and individuals doing source code management tools. Meta-coding. The duplication of work can't ever have been this bad, and the duplication here isn't even an actual tool: it's a tool for a tool. Go ahead and search for source code / git hosting. Prepare yourself, there are way too many options. It's to the point of hyperbole.&lt;br /&gt;
&lt;br /&gt;
Western cultures need to take a lesson from china. One of china's strengths, is not necessarily cutting corners, but in not doing more than is needed to complete a task. It's about efficiency. And it is possibly a sin to indulge in things that aren't necessary. Time and Life is short. Time management is critical.&lt;br /&gt;
&lt;br /&gt;
==Intel ME==&lt;br /&gt;
See libreboot.org.&lt;br /&gt;
&lt;br /&gt;
==Inconsistent flag usage for common commands: chown / scp and the recursive flag==&lt;br /&gt;
Look at scp and chown. Then look at the recursive flag.&lt;br /&gt;
 scp -r&lt;br /&gt;
 chown -R&lt;br /&gt;
They are both recursive. I know I've stumbled across this probably over a hundred times&lt;br /&gt;
in the last decade using Linux.&lt;br /&gt;
&lt;br /&gt;
There should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things. How many millions of moments have been lost to people&lt;br /&gt;
typing the wrong -r or -R. It adds up over billions of man hours. It's a fail.&lt;br /&gt;
&lt;br /&gt;
Someone really screwed up here.&lt;br /&gt;
&lt;br /&gt;
One solution, would be for flags to be case insensitive. Is there any reasonable use case&lt;br /&gt;
where you'd want to be able to use both -r and -R for different things in the same program?&lt;br /&gt;
It's just confusing.&lt;br /&gt;
&lt;br /&gt;
==ARM==&lt;br /&gt;
&amp;quot;That sure is a lot of non-reusable trash you are creating there (cellphones).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==OAuth==&lt;br /&gt;
&lt;br /&gt;
[[File:Dilbert.gif|300px|thumb|right|Computers get worse]]&lt;br /&gt;
&amp;quot;We need to make it more difficult for users to get their data&amp;quot; - gmail and office365 email monopoly collusion&lt;br /&gt;
&lt;br /&gt;
==Windows 11 Incompatibility==&lt;br /&gt;
This link is priceless. I took a screenshot since the internet archive 'somehow failed' to save the page. Basically, a logical and sane person asks why his top of the line workstation doesn't work with Windows 11. Imagine paying 5 grand for a (typically GPU CAD) workstation only to have to buy another one in 7 years. He is told to use 'rufus', by 'unofficial' support.&lt;br /&gt;
https://answers.microsoft.com/en-us/windows/forum/all/why-does-windows-11-still-not-support-my-cpu-chips/e2bd3cab-43ca-4f1c-821b-0825ca597666&lt;br /&gt;
[[File:Priceless.png|300px|thumb|right|How to Create Landfill Waste]]&lt;br /&gt;
&lt;br /&gt;
==Quickbooks==&lt;br /&gt;
Quickbooks is an interesting story of what can go wrong with software. A number of things have gone wrong over time, though when it was first introduced, it was indeed a valuable program to have.&lt;br /&gt;
* Online activation required (which breaks old editions)&lt;br /&gt;
* Move to SaaS model/online (antagonistic to the customers. uses a slower web browser interface)&lt;br /&gt;
* Potential forced move to cloud servers&lt;br /&gt;
* Never ending software (it's entirely possible to make an accounting software that is a finished product and then people can move onto solving other problems, but developers seem to be interested in making a lifetime occupation out of a 5-10 year project).&lt;br /&gt;
&lt;br /&gt;
It's fascinating and horrific just how bad the accounting software situation is. Evil stuff.&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Computing_Fails&amp;diff=2715</id>
		<title>Computing Fails</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Computing_Fails&amp;diff=2715"/>
		<updated>2026-05-19T11:17:01Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Windows 11 Incompatibility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mistakes made by flawed humans. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Confirmed Fails==&lt;br /&gt;
* IPv6. Decades after it's introduction, still no one wants to use it. At some point, you have to admit, that IPv6 was a fail. And engineers should make a replacement. &lt;br /&gt;
&lt;br /&gt;
* Windows after XP. XP was a great operating system. And Windows was never quite the same since Vista.&lt;br /&gt;
&lt;br /&gt;
* ARM on cellphones. Millions (billions?) of devices that are unusable after 5 years. Landfill.&lt;br /&gt;
&lt;br /&gt;
* CrowdStrike - Boy, this really &amp;quot;Striked, the IT Crowd / Made the IT Crowd Strike&amp;quot;... Get it?  [https://en.wikipedia.org/wiki/2024_CrowdStrike-related_IT_outages] If there's one thing they could've changed, it might be to do 'staggered rollouts' instead of all machines at once.&lt;br /&gt;
&lt;br /&gt;
==Potential Fails==&lt;br /&gt;
&lt;br /&gt;
* systemd. While it works, it is practically no better than the previous solutions, and is a mess of LOCs.&lt;br /&gt;
&lt;br /&gt;
* wayland. This may end up making a whole lot of work for people, or it may fix what was wrong with X. See dedoimedo's thoughts on this. I don't know enough to comment. https://www.dedoimedo.com/computers/xlibre.html https://www.dedoimedo.com/computers/wayland-2024.html&lt;br /&gt;
&lt;br /&gt;
==Too Much==&lt;br /&gt;
Programs that are full of junk or otherwise misleading. With wget, we have too much info. This example isn't specific to wget, but is a common sight. Less is more.&lt;br /&gt;
===usable wget===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget -h&lt;br /&gt;
wget: unrecognized option: h&lt;br /&gt;
BusyBox v1.31.1 () multi-call binary.&lt;br /&gt;
&lt;br /&gt;
Usage: wget [-c|--continue] [--spider] [-q|--quiet] &lt;br /&gt;
[-O|--output-document FILE]&lt;br /&gt;
        [-o|--output-file FILE] [--header 'header: value'] [-Y|--proxy on/off]&lt;br /&gt;
        [-P DIR] [-S|--server-response] [-U|--user-agent AGENT] [-T SEC] URL...&lt;br /&gt;
&lt;br /&gt;
Retrieve files via HTTP or FTP&lt;br /&gt;
&lt;br /&gt;
        --spider        Only check URL existence: $? is 0 if exists&lt;br /&gt;
        -c              Continue retrieval of aborted transfer&lt;br /&gt;
        -q              Quiet&lt;br /&gt;
        -P DIR          Save to DIR (default .)&lt;br /&gt;
        -S              Show server response&lt;br /&gt;
        -T SEC          Network read timeout is SEC seconds&lt;br /&gt;
        -O FILE         Save to FILE ('-' for stdout)&lt;br /&gt;
        -o FILE         Log messages to FILE&lt;br /&gt;
        -U STR          Use STR for User-Agent header&lt;br /&gt;
        -Y on/off       Use proxy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===unusable wget===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget -h&lt;br /&gt;
GNU Wget 1.20.1, a non-interactive network retriever.&lt;br /&gt;
Usage: wget [OPTION]... [URL]...&lt;br /&gt;
&lt;br /&gt;
Mandatory arguments to long options are mandatory for short options too.&lt;br /&gt;
&lt;br /&gt;
Startup:&lt;br /&gt;
  -V,  --version                   display the version of Wget and exit&lt;br /&gt;
  -h,  --help                      print this help&lt;br /&gt;
  -b,  --background                go to background after startup&lt;br /&gt;
  -e,  --execute=COMMAND           execute a `.wgetrc'-style command&lt;br /&gt;
&lt;br /&gt;
Logging and input file:&lt;br /&gt;
  -o,  --output-file=FILE          log messages to FILE&lt;br /&gt;
  -a,  --append-output=FILE        append messages to FILE&lt;br /&gt;
  -d,  --debug                     print lots of debugging information&lt;br /&gt;
  -q,  --quiet                     quiet (no output)&lt;br /&gt;
  -v,  --verbose                   be verbose (this is the default)&lt;br /&gt;
  -nv, --no-verbose                turn off verboseness, without being quiet&lt;br /&gt;
       --report-speed=TYPE         output bandwidth as TYPE.  TYPE can be bits&lt;br /&gt;
  -i,  --input-file=FILE           download URLs found in local or external FILE&lt;br /&gt;
  -F,  --force-html                treat input file as HTML&lt;br /&gt;
  -B,  --base=URL                  resolves HTML input-file links (-i -F)&lt;br /&gt;
                                     relative to URL&lt;br /&gt;
       --config=FILE               specify config file to use&lt;br /&gt;
       --no-config                 do not read any config file&lt;br /&gt;
       --rejected-log=FILE         log reasons for URL rejection to FILE&lt;br /&gt;
&lt;br /&gt;
Download:&lt;br /&gt;
  -t,  --tries=NUMBER              set number of retries to NUMBER (0 unlimits)&lt;br /&gt;
       --retry-connrefused         retry even if connection is refused&lt;br /&gt;
       --retry-on-http-error=ERRORS    comma-separated list of HTTP errors to retry&lt;br /&gt;
  -O,  --output-document=FILE      write documents to FILE&lt;br /&gt;
  -nc, --no-clobber                skip downloads that would download to&lt;br /&gt;
                                     existing files (overwriting them)&lt;br /&gt;
       --no-netrc                  don't try to obtain credentials from .netrc&lt;br /&gt;
  -c,  --continue                  resume getting a partially-downloaded file&lt;br /&gt;
       --start-pos=OFFSET          start downloading from zero-based position OFFSET&lt;br /&gt;
       --progress=TYPE             select progress gauge type&lt;br /&gt;
       --show-progress             display the progress bar in any verbosity mode&lt;br /&gt;
  -N,  --timestamping              don't re-retrieve files unless newer than&lt;br /&gt;
                                     local&lt;br /&gt;
       --no-if-modified-since      don't use conditional if-modified-since get&lt;br /&gt;
                                     requests in timestamping mode&lt;br /&gt;
       --no-use-server-timestamps  don't set the local file's timestamp by&lt;br /&gt;
                                     the one on the server&lt;br /&gt;
  -S,  --server-response           print server response&lt;br /&gt;
       --spider                    don't download anything&lt;br /&gt;
  -T,  --timeout=SECONDS           set all timeout values to SECONDS&lt;br /&gt;
       --dns-timeout=SECS          set the DNS lookup timeout to SECS&lt;br /&gt;
       --connect-timeout=SECS      set the connect timeout to SECS&lt;br /&gt;
       --read-timeout=SECS         set the read timeout to SECS&lt;br /&gt;
  -w,  --wait=SECONDS              wait SECONDS between retrievals&lt;br /&gt;
       --waitretry=SECONDS         wait 1..SECONDS between retries of a retrieval&lt;br /&gt;
       --random-wait               wait from 0.5*WAIT...1.5*WAIT secs between retrievals&lt;br /&gt;
       --no-proxy                  explicitly turn off proxy&lt;br /&gt;
  -Q,  --quota=NUMBER              set retrieval quota to NUMBER&lt;br /&gt;
       --bind-address=ADDRESS      bind to ADDRESS (hostname or IP) on local host&lt;br /&gt;
       --limit-rate=RATE           limit download rate to RATE&lt;br /&gt;
       --no-dns-cache              disable caching DNS lookups&lt;br /&gt;
       --restrict-file-names=OS    restrict chars in file names to ones OS allows&lt;br /&gt;
       --ignore-case               ignore case when matching files/directories&lt;br /&gt;
  -4,  --inet4-only                connect only to IPv4 addresses&lt;br /&gt;
  -6,  --inet6-only                connect only to IPv6 addresses&lt;br /&gt;
       --prefer-family=FAMILY      connect first to addresses of specified family,&lt;br /&gt;
                                     one of IPv6, IPv4, or none&lt;br /&gt;
       --user=USER                 set both ftp and http user to USER&lt;br /&gt;
       --password=PASS             set both ftp and http password to PASS&lt;br /&gt;
       --ask-password              prompt for passwords&lt;br /&gt;
       --use-askpass=COMMAND       specify credential handler for requesting&lt;br /&gt;
                                     username and password.  If no COMMAND is&lt;br /&gt;
                                     specified the WGET_ASKPASS or the SSH_ASKPASS&lt;br /&gt;
                                     environment variable is used.&lt;br /&gt;
       --no-iri                    turn off IRI support&lt;br /&gt;
       --local-encoding=ENC        use ENC as the local encoding for IRIs&lt;br /&gt;
       --remote-encoding=ENC       use ENC as the default remote encoding&lt;br /&gt;
       --unlink                    remove file before clobber&lt;br /&gt;
       --xattr                     turn on storage of metadata in extended file attributes&lt;br /&gt;
Directories:&lt;br /&gt;
  -nd, --no-directories            don't create directories&lt;br /&gt;
  -x,  --force-directories         force creation of directories&lt;br /&gt;
  -nH, --no-host-directories       don't create host directories&lt;br /&gt;
       --protocol-directories      use protocol name in directories&lt;br /&gt;
  -P,  --directory-prefix=PREFIX   save files to PREFIX/..&lt;br /&gt;
       --cut-dirs=NUMBER           ignore NUMBER remote directory components&lt;br /&gt;
&lt;br /&gt;
HTTP options:&lt;br /&gt;
       --http-user=USER            set http user to USER&lt;br /&gt;
       --http-password=PASS        set http password to PASS&lt;br /&gt;
       --no-cache                  disallow server-cached data&lt;br /&gt;
       --default-page=NAME         change the default page name (normally&lt;br /&gt;
                                     this is 'index.html'.)&lt;br /&gt;
  -E,  --adjust-extension          save HTML/CSS documents with proper extensions&lt;br /&gt;
       --ignore-length             ignore 'Content-Length' header field&lt;br /&gt;
       --header=STRING             insert STRING among the headers&lt;br /&gt;
       --compression=TYPE          choose compression, one of auto, gzip and none. (default: none)&lt;br /&gt;
       --max-redirect              maximum redirections allowed per page&lt;br /&gt;
       --proxy-user=USER           set USER as proxy username&lt;br /&gt;
       --proxy-password=PASS       set PASS as proxy password&lt;br /&gt;
       --referer=URL               include 'Referer: URL' header in HTTP request&lt;br /&gt;
       --save-headers              save the HTTP headers to file&lt;br /&gt;
  -U,  --user-agent=AGENT          identify as AGENT instead of Wget/VERSION&lt;br /&gt;
       --no-http-keep-alive        disable HTTP keep-alive (persistent connections)&lt;br /&gt;
       --no-cookies                don't use cookies&lt;br /&gt;
       --load-cookies=FILE         load cookies from FILE before session&lt;br /&gt;
       --save-cookies=FILE         save cookies to FILE after session&lt;br /&gt;
       --keep-session-cookies      load and save session (non-permanent) cookies&lt;br /&gt;
       --post-data=STRING          use the POST method; send STRING as the data&lt;br /&gt;
       --post-file=FILE            use the POST method; send contents of FILE&lt;br /&gt;
       --method=HTTPMethod         use method &amp;quot;HTTPMethod&amp;quot; in the request&lt;br /&gt;
       --body-data=STRING          send STRING as data. --method MUST be set&lt;br /&gt;
       --body-file=FILE            send contents of FILE. --method MUST be set&lt;br /&gt;
       --content-disposition       honor the Content-Disposition header when&lt;br /&gt;
                                     choosing local file names (EXPERIMENTAL)&lt;br /&gt;
     --content-on-error          output the received content on server errors&lt;br /&gt;
       --auth-no-challenge         send Basic HTTP authentication information&lt;br /&gt;
                                     without first waiting for the server's&lt;br /&gt;
                                     challenge&lt;br /&gt;
&lt;br /&gt;
HTTPS (SSL/TLS) options:&lt;br /&gt;
       --secure-protocol=PR        choose secure protocol, one of auto, SSLv2,&lt;br /&gt;
                                     SSLv3, TLSv1, TLSv1_1, TLSv1_2 and PFS&lt;br /&gt;
       --https-only                only follow secure HTTPS links&lt;br /&gt;
       --no-check-certificate      don't validate the server's certificate&lt;br /&gt;
       --certificate=FILE          client certificate file&lt;br /&gt;
       --certificate-type=TYPE     client certificate type, PEM or DER&lt;br /&gt;
       --private-key=FILE          private key file&lt;br /&gt;
       --private-key-type=TYPE     private key type, PEM or DER&lt;br /&gt;
       --ca-certificate=FILE       file with the bundle of CAs&lt;br /&gt;
       --ca-directory=DIR          directory where hash list of CAs is stored&lt;br /&gt;
       --crl-file=FILE             file with bundle of CRLs&lt;br /&gt;
       --pinnedpubkey=FILE/HASHES  Public key (PEM/DER) file, or any number&lt;br /&gt;
                                   of base64 encoded sha256 hashes preceded by&lt;br /&gt;
                                   'sha256//' and separated by ';', to verify&lt;br /&gt;
                                   peer against&lt;br /&gt;
&lt;br /&gt;
       --ciphers=STR           Set the priority string (GnuTLS) or cipher list string (OpenSSL) directly.&lt;br /&gt;
                                   Use with care. This option overrides --secure-protocol.&lt;br /&gt;
                                   The format and syntax of this string depend on the specific SSL/TLS engine.&lt;br /&gt;
HSTS options:&lt;br /&gt;
       --no-hsts                   disable HSTS&lt;br /&gt;
       --hsts-file                 path of HSTS database (will override default)&lt;br /&gt;
FTP options:&lt;br /&gt;
       --ftp-user=USER             set ftp user to USER&lt;br /&gt;
       --ftp-password=PASS         set ftp password to PASS&lt;br /&gt;
       --no-remove-listing         don't remove '.listing' files&lt;br /&gt;
       --no-glob                   turn off FTP file name globbing&lt;br /&gt;
       --no-passive-ftp            disable the &amp;quot;passive&amp;quot; transfer mode&lt;br /&gt;
       --preserve-permissions      preserve remote file permissions&lt;br /&gt;
       --retr-symlinks             when recursing, get linked-to files (not dir)&lt;br /&gt;
&lt;br /&gt;
FTPS options:&lt;br /&gt;
       --ftps-implicit                 use implicit FTPS (default port is 990)&lt;br /&gt;
       --ftps-resume-ssl               resume the SSL/TLS session started in the control connection when&lt;br /&gt;
                                         opening a data connection&lt;br /&gt;
       --ftps-clear-data-connection    cipher the control channel only; all the data will be in plaintext&lt;br /&gt;
       --ftps-fallback-to-ftp          fall back to FTP if FTPS is not supported in the target server&lt;br /&gt;
WARC options:&lt;br /&gt;
       --warc-file=FILENAME        save request/response data to a .warc.gz file&lt;br /&gt;
       --warc-header=STRING        insert STRING into the warcinfo record&lt;br /&gt;
       --warc-max-size=NUMBER      set maximum size of WARC files to NUMBER&lt;br /&gt;
       --warc-cdx                  write CDX index files&lt;br /&gt;
       --warc-dedup=FILENAME       do not store records listed in this CDX file&lt;br /&gt;
       --no-warc-compression       do not compress WARC files with GZIP&lt;br /&gt;
       --no-warc-digests           do not calculate SHA1 digests&lt;br /&gt;
       --no-warc-keep-log          do not store the log file in a WARC record&lt;br /&gt;
       --warc-tempdir=DIRECTORY    location for temporary files created by the&lt;br /&gt;
                                     WARC writer&lt;br /&gt;
Recursive download:&lt;br /&gt;
  -r,  --recursive                 specify recursive download&lt;br /&gt;
  -l,  --level=NUMBER              maximum recursion depth (inf or 0 for infinite)&lt;br /&gt;
       --delete-after              delete files locally after downloading them&lt;br /&gt;
  -k,  --convert-links             make links in downloaded HTML or CSS point to&lt;br /&gt;
                                     local files&lt;br /&gt;
       --convert-file-only         convert the file part of the URLs only (usually known as the basename)&lt;br /&gt;
       --backups=N                 before writing file X, rotate up to N backup files&lt;br /&gt;
  -K,  --backup-converted          before converting file X, back up as X.orig&lt;br /&gt;
  -m,  --mirror                    shortcut for -N -r -l inf --no-remove-listing&lt;br /&gt;
  -p,  --page-requisites           get all images, etc. needed to display HTML page&lt;br /&gt;
       --strict-comments           turn on strict (SGML) handling of HTML comments&lt;br /&gt;
Recursive accept/reject:&lt;br /&gt;
  -A,  --accept=LIST               comma-separated list of accepted extensions&lt;br /&gt;
  -R,  --reject=LIST               comma-separated list of rejected extensions&lt;br /&gt;
       --accept-regex=REGEX        regex matching accepted URLs&lt;br /&gt;
       --reject-regex=REGEX        regex matching rejected URLs&lt;br /&gt;
       --regex-type=TYPE           regex type (posix|pcre)&lt;br /&gt;
  -D,  --domains=LIST              comma-separated list of accepted domains&lt;br /&gt;
       --exclude-domains=LIST      comma-separated list of rejected domains&lt;br /&gt;
       --follow-ftp                follow FTP links from HTML documents&lt;br /&gt;
       --follow-tags=LIST          comma-separated list of followed HTML tags&lt;br /&gt;
       --ignore-tags=LIST          comma-separated list of ignored HTML tags&lt;br /&gt;
  -H,  --span-hosts                go to foreign hosts when recursive&lt;br /&gt;
  -L,  --relative                  follow relative links only&lt;br /&gt;
  -I,  --include-directories=LIST  list of allowed directories&lt;br /&gt;
       --trust-server-names        use the name specified by the redirection&lt;br /&gt;
                                     URL's last component&lt;br /&gt;
  -X,  --exclude-directories=LIST  list of excluded directories&lt;br /&gt;
  -np, --no-parent                 don't ascend to the parent directory&lt;br /&gt;
&lt;br /&gt;
Email bug reports, questions, discussions to &amp;lt;bug-wget@gnu.org&amp;gt;&lt;br /&gt;
and/or open issues at https://savannah.gnu.org/bugs/?func=additem&amp;amp;group=wget.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Conclusion===&lt;br /&gt;
No human being can digest all the information in the latter. It's &lt;br /&gt;
a mess. Perhaps another flag can be used for the verbose help information, but&lt;br /&gt;
for average daily usage, busybox wins here.&lt;br /&gt;
&lt;br /&gt;
EDIT: it looks like I am not the only one who thinks this way as someone has created: &lt;br /&gt;
https://github.com/tldr-pages/tldr&lt;br /&gt;
&lt;br /&gt;
==Javascript and White Space bloat==&lt;br /&gt;
Discourse. I hate it so much. It's as if someone who had never used a forum before thought about designing forums. They then looked at all the reasonable spacing and coherent navigation offered by php forums from the 2000's, and said: &amp;quot;No, I must have more white space, and a font size that is 3 times as big. I must also make it slower, by adding superfluous javascript libraries.&amp;quot;. Thus, discourse was created: To deter people from actually using forums effectively.&lt;br /&gt;
&lt;br /&gt;
Forums have been nerfed apparently in favor of social media. In fact, most websites have been nerfed in favor of monolithic 'feeds'.&lt;br /&gt;
&lt;br /&gt;
==IPv6 Is Badly Designed==&lt;br /&gt;
IPv6. It was supposed to take over IPv4 over 20 years ago (yes, people were talking about IPv6 in the year 2000). In 2020, it still hasn't. Why? Because it's crap, and everyone knows it. However, the amount of corporate money invested into it, means that it may eventually get forced onto the masses. It's not even easy to find criticisms of the technology these days. It's all being astroturfed by shills. It's like a bad sequel. It's worse than the original. But you can't avoid it.&lt;br /&gt;
&lt;br /&gt;
Ref: https://web.archive.org/web/20070707080506/http://tech.hellyeah.com/display_doc.phtml?id=28&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To begin with, IPv6 will use a 128 bit address space, as compared to &lt;br /&gt;
IPv4's 32 bits. This 128 bit address is the biggest reason for IPv6. It &lt;br /&gt;
is supposed to give us plenty of IP addresses to last us well into the &lt;br /&gt;
future. However, 128 bits is overkill. Sixty-four should be more than &lt;br /&gt;
enough.&lt;br /&gt;
&lt;br /&gt;
Let's put it in terms that are easier to comprehend. We'll assume that &lt;br /&gt;
there are 15 billion people on the planet. (currently, there are only &lt;br /&gt;
6.1 billion, and the largest estimates for the next fifty years project &lt;br /&gt;
12 billion). With 128 bits per IP address, each person could have &lt;br /&gt;
2.26e28 IP addresses to themselves. If we reduce it to 64 bits, each &lt;br /&gt;
person would still have 1.2 billion addresses.&lt;br /&gt;
&lt;br /&gt;
What about the people who want to put IP addresses on every light pole, &lt;br /&gt;
mailbox, stop light and street sign? Well, there are about 148 million &lt;br /&gt;
square kilometers of land on the Earth (not including ocean). With 128 &lt;br /&gt;
bits, we have almost 2.3e20 addresses per square centimeter. If we &lt;br /&gt;
reduce that to 64 bits, each square centimeter would still have about &lt;br /&gt;
12.5 IP addresses -- more than enough.&lt;br /&gt;
&lt;br /&gt;
...(Sections Omitted)&lt;br /&gt;
&lt;br /&gt;
Part of IPv4's immense success was due to its &lt;br /&gt;
simplicity and rigid structure. It does the job it was meant to do &lt;br /&gt;
quickly and effectively. IPv6 adds all sorts of bells and whistles that &lt;br /&gt;
are unneccesary and even detrimental. With all the wasted space and &lt;br /&gt;
privacy issues, I'd rather have the IETF go back to the drawing board &lt;br /&gt;
and come back with IPv7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Less is more. The answer isn't &amp;quot;add more people&amp;quot;. The answer isn't &amp;quot;add more ip addresses&amp;quot;. Things can't expand exponentially forever. There has to be limits in place. It has to be practically usable. &lt;br /&gt;
&lt;br /&gt;
If you look at it right, neither ipv4 nor ipv6 is designed correctly. ipv4 is too simple, and ipv6 is too complicated. They are both fails.&lt;br /&gt;
&lt;br /&gt;
It's been said, but if they had made ipv4 5 octets from the start, ip addresses would not have run out for decades. Maybe not ever.&lt;br /&gt;
&lt;br /&gt;
Also consider that mac addresses are easier to read than IPv6, and much higher than 4 billion combinations (16 ^12, according to: https://stackoverflow.com/questions/44873804/will-mac-address-ever-run-out-of-combinations) It's 48 bits. This brings up the question: What is the best way to represent ip addresses (ipv4, ipv6, mac address, or other), and what is the appropriate number of bits to designate to it.&lt;br /&gt;
&lt;br /&gt;
==Hidden Files==&lt;br /&gt;
 alias ls='ls -a'&lt;br /&gt;
Hidden files are evil. All ls should be ls -a. They will bite you as often as pcb makers get bitten by incorrect footprints. Its bad design. It will never go away. There's no thinking that you should've been smarter. Lies. Its the human factor. It will always, always bite you someday.&lt;br /&gt;
Hidden files are fundamentally flawed. They will always cause trouble.&lt;br /&gt;
&lt;br /&gt;
In Windows (10/11), there are 2, TWO levels of hidden files. I kid you not.&lt;br /&gt;
&lt;br /&gt;
==Duplication of Work==&lt;br /&gt;
There are dozens of companies and individuals doing source code management tools. Meta-coding. The duplication of work can't ever have been this bad, and the duplication here isn't even an actual tool: it's a tool for a tool. Go ahead and search for source code / git hosting. Prepare yourself, there are way too many options. It's to the point of hyperbole.&lt;br /&gt;
&lt;br /&gt;
Western cultures need to take a lesson from china. One of china's strengths, is not necessarily cutting corners, but in not doing more than is needed to complete a task. It's about efficiency. And it is possibly a sin to indulge in things that aren't necessary. Time and Life is short. Time management is critical.&lt;br /&gt;
&lt;br /&gt;
==Intel ME==&lt;br /&gt;
See libreboot.org.&lt;br /&gt;
&lt;br /&gt;
==Inconsistent flag usage for common commands: chown / scp and the recursive flag==&lt;br /&gt;
Look at scp and chown. Then look at the recursive flag.&lt;br /&gt;
 scp -r&lt;br /&gt;
 chown -R&lt;br /&gt;
They are both recursive. I know I've stumbled across this probably over a hundred times&lt;br /&gt;
in the last decade using Linux.&lt;br /&gt;
&lt;br /&gt;
There should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things. How many millions of moments have been lost to people&lt;br /&gt;
typing the wrong -r or -R. It adds up over billions of man hours. It's a fail.&lt;br /&gt;
&lt;br /&gt;
Someone really screwed up here.&lt;br /&gt;
&lt;br /&gt;
One solution, would be for flags to be case insensitive. Is there any reasonable use case&lt;br /&gt;
where you'd want to be able to use both -r and -R for different things in the same program?&lt;br /&gt;
It's just confusing.&lt;br /&gt;
&lt;br /&gt;
==ARM==&lt;br /&gt;
&amp;quot;That sure is a lot of non-reusable trash you are creating there (cellphones).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==OAuth==&lt;br /&gt;
&lt;br /&gt;
[[File:Dilbert.gif|300px|thumb|right|Computers get worse]]&lt;br /&gt;
&amp;quot;We need to make it more difficult for users to get their data&amp;quot; - gmail and office365 email monopoly collusion&lt;br /&gt;
&lt;br /&gt;
==Windows 11 Incompatibility==&lt;br /&gt;
This link is priceless. I took a screenshot since the internet archive 'somehow failed' to save the page. Basically, a logical and sane person asks why his top of the line workstation doesn't work with Windows 11. Imagine paying 5 grand for a (typically GPU CAD) workstation only to have to buy another one in 7 years. He is told to use 'rufus', by 'unofficial' support.&lt;br /&gt;
https://answers.microsoft.com/en-us/windows/forum/all/why-does-windows-11-still-not-support-my-cpu-chips/e2bd3cab-43ca-4f1c-821b-0825ca597666&lt;br /&gt;
[[File:Priceless.png|300px|thumb|right|How to Create Landfill Waste]]&lt;br /&gt;
&lt;br /&gt;
==Quickbooks==&lt;br /&gt;
Quickbooks is an interesting story of what can go wrong with software. A number of things have gone wrong over time, though when it was first introduced, it was indeed a valuable program to have.&lt;br /&gt;
* Online activation required (which breaks old editions)&lt;br /&gt;
* Move to SaaS model/online (antagonistic to the customers. uses a slower web browser interface)&lt;br /&gt;
* Potential forced move to cloud servers&lt;br /&gt;
* Never ending software (it's entirely possible to make an accounting software that is a finished product and then people can move onto solving other problems, but developers seem to be interested in making a lifetime occupation out of a 5-10 year project).&lt;br /&gt;
&lt;br /&gt;
It's fascinating and horrific just how bad the accounting software situation is. Evil stuff.&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Paramount_Cara_Cara_Orange&amp;diff=2714</id>
		<title>Paramount Cara Cara Orange</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Paramount_Cara_Cara_Orange&amp;diff=2714"/>
		<updated>2026-05-19T06:26:26Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A Paramount Cara Cara with a label that doesn't look like the paramount orange. Can't say I'm a fan of that. It was a good orange, though. Purchased 05/2026 from S&amp;amp;S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:Paramount cara cara.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in single qty. I generally don't buy oranges in bags. Many of the bags are not labeled as to what farm they are.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
n/a I think it was 1.99/lbs.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
This was a good orange. &lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
This was a orange yellow colour. The fruit being a cara cara, looks slightly like a grapefruit. A little red.&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Somewhat easy to peel. Though it was starting to be difficult to peel (i.e. break off in pieces)&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
these are medium to medium small size.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Paramount_Cara_Cara_Orange&amp;diff=2713</id>
		<title>Paramount Cara Cara Orange</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Paramount_Cara_Cara_Orange&amp;diff=2713"/>
		<updated>2026-05-19T06:26:13Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A Paramount Cara Cara with a label that doesn't look like the paramount orange. Can't say I'm a fan of that. It was a good orange, though. Purchased 05/2026 from S&amp;amp;S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:Paramount cara cara.jpg|150px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in single qty. I generally don't buy oranges in bags. Many of the bags are not labeled as to what farm they are.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
n/a I think it was 1.99/lbs.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
This was a good orange. &lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
This was a orange yellow colour. The fruit being a cara cara, looks slightly like a grapefruit. A little red.&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Somewhat easy to peel. Though it was starting to be difficult to peel (i.e. break off in pieces)&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
these are medium to medium small size.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=File:Paramount_cara_cara.jpg&amp;diff=2712</id>
		<title>File:Paramount cara cara.jpg</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=File:Paramount_cara_cara.jpg&amp;diff=2712"/>
		<updated>2026-05-19T06:25:47Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Paramount_Cara_Cara_Orange&amp;diff=2711</id>
		<title>Paramount Cara Cara Orange</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Paramount_Cara_Cara_Orange&amp;diff=2711"/>
		<updated>2026-05-19T06:24:20Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Colour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A Paramount Cara Cara with a label that doesn't look like the paramount orange. Can't say I'm a fan of that. It was a good orange, though. Purchased 05/2026 from S&amp;amp;S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in single qty. I generally don't buy oranges in bags. Many of the bags are not labeled as to what farm they are.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
n/a I think it was 1.99/lbs.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
This was a good orange. &lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
This was a orange yellow colour. The fruit being a cara cara, looks slightly like a grapefruit. A little red.&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Somewhat easy to peel. Though it was starting to be difficult to peel (i.e. break off in pieces)&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
these are medium to medium small size.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Paramount_Cara_Cara_Orange&amp;diff=2710</id>
		<title>Paramount Cara Cara Orange</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Paramount_Cara_Cara_Orange&amp;diff=2710"/>
		<updated>2026-05-19T06:23:18Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: Created page with &amp;quot;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt; &amp;lt;!-- General Description, date when purchased and where. --&amp;gt;  A Paramount Cara Cara with a label that does...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A Paramount Cara Cara with a label that doesn't look like the paramount orange. Can't say I'm a fan of that. It was a good orange, though. Purchased 05/2026 from S&amp;amp;S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in single qty. I generally don't buy oranges in bags. Many of the bags are not labeled as to what farm they are.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
n/a I think it was 1.99/lbs.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
This was a good orange. &lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
This was a orange yellow colour.&lt;br /&gt;
===Peelability===&lt;br /&gt;
Somewhat easy to peel. Though it was starting to be difficult to peel (i.e. break off in pieces)&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
these are medium to medium small size.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Oranges&amp;diff=2709</id>
		<title>Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Oranges&amp;diff=2709"/>
		<updated>2026-05-19T06:20:31Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the orange blog or orange log.&lt;br /&gt;
&lt;br /&gt;
I'll try to keep track of good and bad oranges.&lt;br /&gt;
Most oranges are bad, unfortunately.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It appears these companies are findable via a web search online, unless the Oranges are sold as generic.&lt;br /&gt;
&lt;br /&gt;
todo: organize these by type (navel, cara cara, valencia, etc)&lt;br /&gt;
&lt;br /&gt;
[[File:Cyberblockmetalorange.png|300px|||]]&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
&lt;br /&gt;
* [[Booth_Ranches_Oranges]]&lt;br /&gt;
* [[Homegrown Organic Farms Oranges]]&lt;br /&gt;
* [[Kings_River_Oranges]]&lt;br /&gt;
* [[MB_StoreBrand_California_Oranges]]&lt;br /&gt;
* [[Paramount_Oranges]]&lt;br /&gt;
* [[Paramount Cara Cara Orange]]&lt;br /&gt;
* [[Peels Cara Cara Navel]]&lt;br /&gt;
* [[RVO Oranges]]&lt;br /&gt;
* [[Sequoia Oranges]]&lt;br /&gt;
* [[Sunkist CaraCara Oranges]]&lt;br /&gt;
* [[Sunkist Moro Oranges]]&lt;br /&gt;
* [[Sunkist Oranges]]&lt;br /&gt;
* [[Sunkist LateSeason Oranges]]&lt;br /&gt;
* [[SunPacific Oranges]]&lt;br /&gt;
* [[SunPacific Organic Oranges]]&lt;br /&gt;
* [[Suntreat Oranges]]&lt;br /&gt;
* [[Vintage Sweets Oranges]]&lt;br /&gt;
&lt;br /&gt;
* [[Orange_Template]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Oranges&amp;diff=2708</id>
		<title>Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Oranges&amp;diff=2708"/>
		<updated>2026-05-19T06:20:19Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the orange blog or orange log.&lt;br /&gt;
&lt;br /&gt;
I'll try to keep track of good and bad oranges.&lt;br /&gt;
Most oranges are bad, unfortunately.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It appears these companies are findable via a web search online, unless the Oranges are sold as generic.&lt;br /&gt;
&lt;br /&gt;
todo: organize these by type (navel, cara cara, valencia, etc)&lt;br /&gt;
&lt;br /&gt;
[[File:Cyberblockmetalorange.png|300px|||]]&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
&lt;br /&gt;
* [[Booth_Ranches_Oranges]]&lt;br /&gt;
* [[Homegrown Organic Farms Oranges]]&lt;br /&gt;
* [[Kings_River_Oranges]]&lt;br /&gt;
* [[MB_StoreBrand_California_Oranges]]&lt;br /&gt;
* [[Paramount_Oranges]]&lt;br /&gt;
* [[Paramount_Cara_Cara_Orange]]&lt;br /&gt;
* [[Peels Cara Cara Navel]]&lt;br /&gt;
* [[RVO Oranges]]&lt;br /&gt;
* [[Sequoia Oranges]]&lt;br /&gt;
* [[Sunkist CaraCara Oranges]]&lt;br /&gt;
* [[Sunkist Moro Oranges]]&lt;br /&gt;
* [[Sunkist Oranges]]&lt;br /&gt;
* [[Sunkist LateSeason Oranges]]&lt;br /&gt;
* [[SunPacific Oranges]]&lt;br /&gt;
* [[SunPacific Organic Oranges]]&lt;br /&gt;
* [[Suntreat Oranges]]&lt;br /&gt;
* [[Vintage Sweets Oranges]]&lt;br /&gt;
&lt;br /&gt;
* [[Orange_Template]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Vintage_Sweets_Oranges&amp;diff=2707</id>
		<title>Vintage Sweets Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Vintage_Sweets_Oranges&amp;diff=2707"/>
		<updated>2026-05-19T06:12:51Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
Purchased at WF the first week of 06/2025. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:IMG 20250608 072438823.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20250608 072527888.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in single Qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
$1.99/lbs. It was about $1 per Orange. Maybe a little more since these are a little large.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Fair. Tastes like the orange freeze pops I used to eat as a kid/teenager. Also gives me a slight headache like those do as well. They are OK. Could be better, but not something you would throw away. 7/10.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
These are an orange-yellow colour.&lt;br /&gt;
===Peelability===&lt;br /&gt;
These are easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
Seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
It is a large size.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Purchased another one at Whole Foods. 01/2026. This time is was a very good vintage sweets orange. So the taste of these can differ. I found it best to cut into small pieces as it's a bit too sweet to eat a whole 1/6th of an orange at a time.&lt;br /&gt;
&lt;br /&gt;
3: Another Vintage Sweets, late season 05/2026. This one was a full / rich flavour and very good. Generally, the vintage sweets have been good. The first one tasted like a freeze pop, and was nostalgic for when i was a teenager eating generic grocery store freeze pops/popsicles. But the flavour profile is not consistent. None of the other ones have been like that.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Kings_River_Oranges&amp;diff=2706</id>
		<title>Kings River Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Kings_River_Oranges&amp;diff=2706"/>
		<updated>2026-05-19T06:10:41Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Purchased at MB around 2025/05&lt;br /&gt;
&lt;br /&gt;
This orange was very good. Named King's River, and it is of high grade.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2: I purchased some more of these from S&amp;amp;S in 2025/11 and they were not very good. They were acidic and I had to eat them warm, otherwise the acid + refridgeration was so bad, it hurt my mouth. So these are not consistent, apparently. The new ones were a very thin skin/rind, which doesn't line up with this photo. I should've taken photos. Lesson learned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3: Purchased 03/2026 from Wgm. This one was a little off, but it was alright. Worth eating, this time.&lt;br /&gt;
&lt;br /&gt;
4: Purchased 03/2026 from Sh. This one is OK.&lt;br /&gt;
&lt;br /&gt;
5. Purchased two 04/2026. Not good. Made me hate oranges. I don't know what they put in this one.&lt;br /&gt;
&lt;br /&gt;
6. Another one from 03 or 04. Been in the fridge for a few weeks. Also just average. The king's river oranges have generally not been that good. Though, the first one I got was very good.&lt;br /&gt;
&lt;br /&gt;
[[File:IMG 20250530 210739103.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20250531 233920508.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
There appear to be multiple labels from this brand. One label is a white background, the other is a black background (similar to suntreat, sunkist, and vintage sweets. There is also a pink label, though that is for a cara cara.&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in Single Qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
$1 each.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Very good. Like an apology from the universe. 8.8/10.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
Yellow-orange&lt;br /&gt;
===Peelability===&lt;br /&gt;
Easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
&lt;br /&gt;
===Size===&lt;br /&gt;
Large Orange. Medium size rind.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
I went back in a couple of days later, and there were not many King's river left. Only the Booths Ranch. I did manage to buy 3 more. And they are still good, though I did get the runts of the lot.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=PCBs&amp;diff=2705</id>
		<title>PCBs</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=PCBs&amp;diff=2705"/>
		<updated>2026-05-17T09:06:58Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Thermal Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PCBs. esPCB, ésePCB, 1632&lt;br /&gt;
==Tips/Techniques==&lt;br /&gt;
===List===&lt;br /&gt;
* https://www.eevblog.com/forum/projects/ive-never-seen-a-circuit-board-made-like-this/ - a way of using solder on epoxy board for traces. Allows for iterative development but has an up front investment. Would be interesting to see this done without the cnc, but with just a hot solder pen for modifications. That might be the answer to avoiding breadboards, which I don't like, and protoboards are better but not perfect, I should try this. There was also a follow up video, named &amp;quot;Howie did it - 3D printing a printed circuit board&amp;quot;. &lt;br /&gt;
* https://pcdandf.com/pcdesign/index.php/current-issue/293-board-talk/18918-minimum-finished-hole-size-and-how-it-impacts-manufacturability -&lt;br /&gt;
&amp;lt;pre&amp;gt; &amp;quot;Not long ago, a customer sent us an 8-layer rigid PCB design for quotation. On the surface, nothing unusual – until we noticed the minimum finished hole size (FHS) was 4 mils. That number might not sound alarming, but in PCB manufacturing, 4 mils is a red flag. Here’s why.&lt;br /&gt;
&lt;br /&gt;
The issue arises when fabricators drill a plated through-hole (PTH) and deposit copper during plating. The remaining diameter after this process becomes the finished hole size. A 4-mil FHS with a tolerance of ±4 mils technically ranges from 0 to 8 mils. That kind of spread becomes nearly impossible to maintain in volume production.&lt;br /&gt;
&lt;br /&gt;
To make a PTH, fabricators start with a larger drill size and plate copper along the walls. The smaller the drill, the shorter its flute length – and the fewer panels manufacturers can drill in a stack. Large-scale factories typically drill 10–20 panels at a time for efficiency, but a tiny drill bit can’t survive that workload, which drives up cost and limits throughput. In practice, the smallest common drill diameters used in offshore volume production sit around 8 mils (0.2 mm). After plating (about 1 mil per side for IPC Class 3), that leaves a finished hole closer to 6 mils.&lt;br /&gt;
&lt;br /&gt;
Designing for 4 mils simply doesn’t align with what’s achievable at scale. Could we force it? Yes, by over-plating, doubling the copper thickness and dramatically slowing the line. But that’s a recipe for higher costs, longer lead times and questionable yield.&lt;br /&gt;
&lt;br /&gt;
Bottom line: A 4-mil finished hole is feasible only in small prototype runs, not in cost-sensitive, high-volume production.&lt;br /&gt;
&lt;br /&gt;
When considering 4-mil finished holes in a PCB design, pause. Building prototypes in a specialized facility is possible, but impractical for volume production. Instead, explore HDI strategies with laser-drilled microvias to achieve density without sacrificing manufacturability or cost.&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Rivets====&lt;br /&gt;
* http://fab.cba.mit.edu/classes/863.16/doc/tutorials/PCB_Rivets/ - Guide on PCB rivets, 2 size recommendations, and how to flatten one side with a punch and hammer after installing. There are many rivet guns for sale, but it's good to see that the fundamental idea of rivets needs only a hammer and a punch.&lt;br /&gt;
* https://www.eevblog.com/forum/repair/rivetseyelets-for-pcb-repair/ - Places to source rivets/eyelets&lt;br /&gt;
* https://www.eevblog.com/forum/projects/ive-never-seen-a-circuit-board-made-like-this/25/ - Page 2 of this thread, someone suggests that eyelets are prone to breaking traces due to differences between PCB and metal expansion. You may be better off using stranded wire.&lt;br /&gt;
* https://maker-hub.georgefox.edu/w/index.php?title=Through_Hole_Press&amp;amp;mobileaction=toggle_view_desktop - You can use a press to close the rivets. (This makerspace also has some other interesting equipment, such as a Voltera V-One, along with other shops. It's a useful resource to review as the wiki pages of equipment are thoroughly documented with usage and safety instructions).&lt;br /&gt;
&lt;br /&gt;
====Thermal Design====&lt;br /&gt;
* https://www.ti.com/lit/an/snva419c/snva419c.pdf - Copper thickness and power dissipation.&lt;br /&gt;
* https://www.eevblog.com/forum/manufacture/need-help-desciphering-layout-specs/ - reference for TI data sheet.&lt;br /&gt;
* https://lpt-inc.com/about-us/gallery/ - High power ceramic circuit board. The ceramic would insulate of course.&lt;br /&gt;
See also [[Software#Simulations]]&lt;br /&gt;
&lt;br /&gt;
====Using Image Processing to detect PCB Errors====&lt;br /&gt;
[[Software#Ansys]]&lt;br /&gt;
====Layout Design Tools====&lt;br /&gt;
[[Software#Layout_Design_Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=PCBs&amp;diff=2704</id>
		<title>PCBs</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=PCBs&amp;diff=2704"/>
		<updated>2026-05-17T09:03:55Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Thermal Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PCBs. esPCB, ésePCB, 1632&lt;br /&gt;
==Tips/Techniques==&lt;br /&gt;
===List===&lt;br /&gt;
* https://www.eevblog.com/forum/projects/ive-never-seen-a-circuit-board-made-like-this/ - a way of using solder on epoxy board for traces. Allows for iterative development but has an up front investment. Would be interesting to see this done without the cnc, but with just a hot solder pen for modifications. That might be the answer to avoiding breadboards, which I don't like, and protoboards are better but not perfect, I should try this. There was also a follow up video, named &amp;quot;Howie did it - 3D printing a printed circuit board&amp;quot;. &lt;br /&gt;
* https://pcdandf.com/pcdesign/index.php/current-issue/293-board-talk/18918-minimum-finished-hole-size-and-how-it-impacts-manufacturability -&lt;br /&gt;
&amp;lt;pre&amp;gt; &amp;quot;Not long ago, a customer sent us an 8-layer rigid PCB design for quotation. On the surface, nothing unusual – until we noticed the minimum finished hole size (FHS) was 4 mils. That number might not sound alarming, but in PCB manufacturing, 4 mils is a red flag. Here’s why.&lt;br /&gt;
&lt;br /&gt;
The issue arises when fabricators drill a plated through-hole (PTH) and deposit copper during plating. The remaining diameter after this process becomes the finished hole size. A 4-mil FHS with a tolerance of ±4 mils technically ranges from 0 to 8 mils. That kind of spread becomes nearly impossible to maintain in volume production.&lt;br /&gt;
&lt;br /&gt;
To make a PTH, fabricators start with a larger drill size and plate copper along the walls. The smaller the drill, the shorter its flute length – and the fewer panels manufacturers can drill in a stack. Large-scale factories typically drill 10–20 panels at a time for efficiency, but a tiny drill bit can’t survive that workload, which drives up cost and limits throughput. In practice, the smallest common drill diameters used in offshore volume production sit around 8 mils (0.2 mm). After plating (about 1 mil per side for IPC Class 3), that leaves a finished hole closer to 6 mils.&lt;br /&gt;
&lt;br /&gt;
Designing for 4 mils simply doesn’t align with what’s achievable at scale. Could we force it? Yes, by over-plating, doubling the copper thickness and dramatically slowing the line. But that’s a recipe for higher costs, longer lead times and questionable yield.&lt;br /&gt;
&lt;br /&gt;
Bottom line: A 4-mil finished hole is feasible only in small prototype runs, not in cost-sensitive, high-volume production.&lt;br /&gt;
&lt;br /&gt;
When considering 4-mil finished holes in a PCB design, pause. Building prototypes in a specialized facility is possible, but impractical for volume production. Instead, explore HDI strategies with laser-drilled microvias to achieve density without sacrificing manufacturability or cost.&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Rivets====&lt;br /&gt;
* http://fab.cba.mit.edu/classes/863.16/doc/tutorials/PCB_Rivets/ - Guide on PCB rivets, 2 size recommendations, and how to flatten one side with a punch and hammer after installing. There are many rivet guns for sale, but it's good to see that the fundamental idea of rivets needs only a hammer and a punch.&lt;br /&gt;
* https://www.eevblog.com/forum/repair/rivetseyelets-for-pcb-repair/ - Places to source rivets/eyelets&lt;br /&gt;
* https://www.eevblog.com/forum/projects/ive-never-seen-a-circuit-board-made-like-this/25/ - Page 2 of this thread, someone suggests that eyelets are prone to breaking traces due to differences between PCB and metal expansion. You may be better off using stranded wire.&lt;br /&gt;
* https://maker-hub.georgefox.edu/w/index.php?title=Through_Hole_Press&amp;amp;mobileaction=toggle_view_desktop - You can use a press to close the rivets. (This makerspace also has some other interesting equipment, such as a Voltera V-One, along with other shops. It's a useful resource to review as the wiki pages of equipment are thoroughly documented with usage and safety instructions).&lt;br /&gt;
&lt;br /&gt;
====Thermal Design====&lt;br /&gt;
* https://www.ti.com/lit/an/snva419c/snva419c.pdf - Copper thickness and power dissipation.&lt;br /&gt;
* https://www.eevblog.com/forum/manufacture/need-help-desciphering-layout-specs/ - reference for TI data sheet.&lt;br /&gt;
* https://lpt-inc.com/about-us/gallery/ - High power ceramic circuit board.&lt;br /&gt;
See also [[Software#Simulations]]&lt;br /&gt;
&lt;br /&gt;
====Using Image Processing to detect PCB Errors====&lt;br /&gt;
[[Software#Ansys]]&lt;br /&gt;
====Layout Design Tools====&lt;br /&gt;
[[Software#Layout_Design_Tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Materials&amp;diff=2703</id>
		<title>Materials</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Materials&amp;diff=2703"/>
		<updated>2026-05-17T08:59:57Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Ceramic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Material resources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
* https://www.eevblog.com/forum/manufacture/tough-sheet-dielectric-material/ - Discussing paper sized dielectric materials, I read through some of this. There are many options discussed.&lt;br /&gt;
* https://web.mae.ufl.edu/designlab/Lab%20Assignments/EML2322L-Tolerances.pdf - Typical Tolerances of machining processes. Looking at this short doc, you can see that anything that requires the highest tolerance will be ground/polished down by some sort of surface finishing. That was what was used for making the ill fated hubble mirrors according to &amp;quot;The Perfectionists: How Precision Engineers Created the Modern World&amp;quot; by Simon Winchester, which in that book was rated as the highest level of machining tolerance. Rated higher than semiconductors, though it is debatable as to which is more complex. It's not uncomon common for resources to list the top most of anything when in fact one of the earlier entries was the true winner.&lt;br /&gt;
&lt;br /&gt;
==Ceramic==&lt;br /&gt;
* https://ferroceramic.com/ This website has a list of 15 different ceramic materials that they machine. There is a writeup on each material and it is an interesting intro to industrial ceramics that are actively used. Silicon is mentioned. Some others: Macor, Mullite. Note that these are smaller parts (20&amp;quot;x20&amp;quot;x8&amp;quot;).&lt;br /&gt;
* https://lpt-inc.com/design-guidelines/ - Laser Machining of ceramic substrates.&lt;br /&gt;
&lt;br /&gt;
==Metal==&lt;br /&gt;
* https://www.approvedsheetmetal.com/sheet-metal-fabrication-images These folks look like a fair sheet metal fabricator. Available for parts in single qty.&lt;br /&gt;
* https://basiccopper.com/thicknessguide.html - Metal (copper) Foil Thickness guide. Remember that what applies to copper may not apply to other metal foils.&lt;br /&gt;
&lt;br /&gt;
[[Category: online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Radio&amp;diff=2702</id>
		<title>Radio</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Radio&amp;diff=2702"/>
		<updated>2026-05-17T08:45:33Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Antenna size per band from sigid wiki.png|Antenna size per band from sigid wiki.png]]&lt;br /&gt;
(from sigidwiki)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List===&lt;br /&gt;
* https://www.eevblog.com/forum/beginners/question-about-an-example-in-the-book-rf-circuit-design-by-chris-bowick/msg5738275/?topicseen#msg5738275 beginners rf circuit design book which is recommended in the thread, though there are some errors in the books circuits (not uncommon, practical electronics for inventors also has errors, I have found).&lt;br /&gt;
* https://www.eevblog.com/forum/rf-microwave/questions-about-antennas-and-sleeve-baluns/msg5780307 - Some detailed antenna notes. I didn't read it all yet, but putting it here for reference.&lt;br /&gt;
* https://magsmx.com/index.html - Some tools for Microwave RF. Phase shifters, Switches, Drivers and Antennas. Some reading material.&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=IntegratedCircuits&amp;diff=2701</id>
		<title>IntegratedCircuits</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=IntegratedCircuits&amp;diff=2701"/>
		<updated>2026-05-17T08:19:04Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* DACs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Look at the die, and you will understand how it works. Then, say: &amp;quot;I C&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;This is how you recycle electronics&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
* https://www.eevblog.com/forum/projects/need-to-know-about-generic-arm-processor-die-manufacturers/ - 5-10k for a micro wafer&lt;br /&gt;
* https://www.eevblog.com/forum/projects/unknown-circuits-die-pictures/ -&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
note that with identifying dies, you follow them like a maze, and look for bridges across different&lt;br /&gt;
sections. in this chip, there is a distinct general flow from the bottom left to the top right.&lt;br /&gt;
There are distinct bridges visible on the first section, and also you can see the two near identical&lt;br /&gt;
inputs (which in this case are a differential input according to the author). It also helps to colour&lt;br /&gt;
sections differently, if they can be identified.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* https://www.eevblog.com/forum/chat/warning-lm317k-duds-from-digikey/?action=dlattach;attach=2480371;image&lt;br /&gt;
* https://www.eevblog.com/forum/chat/warning-lm317k-duds-from-digikey/?action=dlattach;attach=2480363;image&lt;br /&gt;
* https://www.eevblog.com/forum/chat/warning-lm317k-duds-from-digikey/?action=dlattach;attach=2480379;image&lt;br /&gt;
There are no standards for what a given component name means wrt the die. You have to decap them.&lt;br /&gt;
And you have to know IC design. Another thing to learn. To make it worse, technically, there can even be batch variations from one die to the next (at its root, it is chemistry, which means the source chemicals have to be correct. How many IC designers are chemists?). Endless complexity. The more you look at it, the more complex it gets.&lt;br /&gt;
&lt;br /&gt;
==IC Design==&lt;br /&gt;
As you go smaller you get less voltage but go faster and have higher frequency. Therefore, instead of measuring voltage or current you might measure frequency changes, because high frequency is more accessible than access to voltage or current. Per amp hour 579.&lt;br /&gt;
&lt;br /&gt;
==74 Series Logic==&lt;br /&gt;
[[File:L301741-02-112698239.gif|150px|thumb|right|Logic Gate Optocouplers]]&lt;br /&gt;
People don't usually talk about these, but in addition to standard optocouplers, there are also logic gate optocouplers. SCRs as well.&lt;br /&gt;
&lt;br /&gt;
==ADCs==&lt;br /&gt;
Making analog to digital converters is as simple as A-D-C.&lt;br /&gt;
&lt;br /&gt;
===Types===&lt;br /&gt;
AoE covers these thoroughly in 13.5.2.&lt;br /&gt;
A simple write up is in Modern Electronic Test Equipment 2nd Edition, by K. Brindley.&lt;br /&gt;
He says:&lt;br /&gt;
* Dual Slope - Integrator ramp up, then count clock cycles as it goes down.&lt;br /&gt;
* Sucessive Approximation Converter / SAR - The ADC that calculates multiple times based on the internal DAC or reference voltage, narrowing down the voltage to the correct answer (within the # of bits it is).&lt;br /&gt;
AoE disagrees with the definition of the SAR, and also discusses a few other types of ADCs, though ultimately categorizes them into 4 categories (though 1 and 2 appear similar and also 3 and 4 appear similar). Basic principles between them are similar, but I'm sure the devil of complexity is in the details. According to METE, you are either comparing voltages, or counting based on integration. &amp;quot;With a name like Delta Sigma, it has to be complex.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Voltage references at 2.048 volts===&lt;br /&gt;
Here's one example:&lt;br /&gt;
LM4040 - https://www.ti.com/lit/ds/symlink/lm4040.pdf&lt;br /&gt;
It can also run at 4.096 volts. It's used in Nuts and Volts 2020 issue 5 as a (stable) reference voltage for the Nano and SS495A hall effect sensor. It is a zener diode. See also the note in [[Circuit_Building_Blocks#Simplest_Band_Gap_Reference]].&lt;br /&gt;
&lt;br /&gt;
==DACs==&lt;br /&gt;
Two fundamental DACs &lt;br /&gt;
* Resistor String DACs (discrete)&lt;br /&gt;
* R-2R Ladder DACs&lt;br /&gt;
The Resistor String type will require (large) amounts of resistors and analog switches. These are practical on a chip (e.g. AD5689, DAC8564). This is 2 to the power of N resistors.&lt;br /&gt;
The R-2R Ladder type uses quite a bit less, and is practical for circuit board assembly from discrete components. Reference: Practical Electronics June 2025, Page 72. This is 2 x N resistors (N being the bits). There are different architectures of these.&lt;br /&gt;
&lt;br /&gt;
Also consider the technique in the magazine of a complementary (inverted, I think) PWM signal along with a normal signal to speed up the settling time. (Page 73).&lt;br /&gt;
&lt;br /&gt;
AoE covers basically similar material to the magazine, though with less errors and more detail.&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
&lt;br /&gt;
* https://semiengineering.com/the-need-for-open-molded-plastic-packages/ - Open Molded Packages. Manually wire bonded. Possible to optimize from the silicon to the chip leads. See also: https://www.qptechnologies.com/products/ocpp/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Crystals&amp;diff=2700</id>
		<title>Crystals</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Crystals&amp;diff=2700"/>
		<updated>2026-05-16T07:07:49Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A rock that vibrates. Piezos. You can have your piezo and eat it too (if it's salt).&lt;br /&gt;
&lt;br /&gt;
Computers are a calculating rock.&lt;br /&gt;
&lt;br /&gt;
LEDs are a rock that emits light.&lt;br /&gt;
&lt;br /&gt;
Magic rock.&lt;br /&gt;
&lt;br /&gt;
===List===&lt;br /&gt;
* https://youtu.be/MbPeYd1N1Xg - How to characterize crystal parameters. This video walks through turning a crystal into a strict electrical circuit, so you can adjust the frequency, or calculate what capacitance is needed. This subject matter is also covered in AoE, 3rd edition, section 7.1.6.&lt;br /&gt;
* https://www.statek.com/technical-papers/ - Some simple and good data sheets on quartz crystals. Recommended. Maybe someday they will put all of them online. &lt;br /&gt;
* https://www.youtube.com/watch?v=yYGwfVnGAdg - The Signal Path youtube channel. Comparing Crystals with Ring Oscillators. The ring oscillators (based on 74 type logic) are much less accurate. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Crystals&amp;diff=2699</id>
		<title>Crystals</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Crystals&amp;diff=2699"/>
		<updated>2026-05-16T05:24:56Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A rock that vibrates. Piezos. You can have your piezo and eat it too (if it's salt).&lt;br /&gt;
&lt;br /&gt;
Computers are a calculating rock.&lt;br /&gt;
&lt;br /&gt;
LEDs are a rock that emits light.&lt;br /&gt;
&lt;br /&gt;
Magic rock.&lt;br /&gt;
&lt;br /&gt;
===List===&lt;br /&gt;
* https://youtu.be/MbPeYd1N1Xg - How to characterize crystal parameters. This video walks through turning a crystal into a strict electrical circuit, so you can adjust the frequency, or calculate what capacitance is needed. This subject matter is also covered in AoE, 3rd edition, section 7.1.6.&lt;br /&gt;
* https://www.statek.com/technical-papers/ - Some simple and good data sheets on quartz crystals. Recommended. Maybe someday they will put all of them online. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Suntreat_Oranges&amp;diff=2698</id>
		<title>Suntreat Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Suntreat_Oranges&amp;diff=2698"/>
		<updated>2026-05-05T00:38:40Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
This orange was purchased from Target in 02/2026. &lt;br /&gt;
&lt;br /&gt;
EDIT 2: Purchased 2 from wf (wob) end of 04/2026. They were previously frozen. This is the second time that's happened to me there (it was a different brand the other time). I'm somewhat upset about it. They were clearly good fresh, but ruined once frozen. Still edible, but not what they should've been. Freezing oranges is a good way to ruin them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:IMG 20260220 005031895 suntreat.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20260220 005257005.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Single qty.&lt;br /&gt;
&lt;br /&gt;
The logo is similar to a Vintage Sweets, a Booth Ranches, or a Sunkist. I.e. it is a black background with a logo in it. It's easy to confuse this with the others if you aren't taking notes. &lt;br /&gt;
[[File:Suntreat closeup of logo.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour is similar to a vintage sweets or any other generic navel orange. However, it tastes a little bit worse overall. As if they copied the recipe from another orange, but don't quite have the same fertilizer/soil to get it to taste good. It was an average orange. Somewhat both bad and good.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Easy to peel.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Suntreat_Oranges&amp;diff=2697</id>
		<title>Suntreat Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Suntreat_Oranges&amp;diff=2697"/>
		<updated>2026-05-05T00:38:20Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
This orange was purchased from Target in 02/2026. &lt;br /&gt;
&lt;br /&gt;
EDIT 2: Purchased 2 from wf (wob) end of 04/2026. They were previously frozen. This is the second time that's happened to me there (it was a different brand the other time). I'm somewhat upset about it. They were clearly good fresh, but ruined once frozen. Still edible, but not what they should've been.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:IMG 20260220 005031895 suntreat.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20260220 005257005.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Single qty.&lt;br /&gt;
&lt;br /&gt;
The logo is similar to a Vintage Sweets, a Booth Ranches, or a Sunkist. I.e. it is a black background with a logo in it. It's easy to confuse this with the others if you aren't taking notes. &lt;br /&gt;
[[File:Suntreat closeup of logo.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour is similar to a vintage sweets or any other generic navel orange. However, it tastes a little bit worse overall. As if they copied the recipe from another orange, but don't quite have the same fertilizer/soil to get it to taste good. It was an average orange. Somewhat both bad and good.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Easy to peel.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Booth_Ranches_Oranges&amp;diff=2696</id>
		<title>Booth Ranches Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Booth_Ranches_Oranges&amp;diff=2696"/>
		<updated>2026-05-05T00:37:40Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Purchased at MB around 2025/05&lt;br /&gt;
&lt;br /&gt;
EDIT: I purchased another pair at TJ in 2025/11 (start of the new season) and they were also good.&lt;br /&gt;
&lt;br /&gt;
EDIT: I purchased one at TJ in 2025/12 and it was not good. This one had more of the sumo outgrowth part of it, compared to the other ones. Sour and weird. Not a good orange. This time, it was one of the few left, with some others in the container that were Sun Pacific (few) and mostly these unbranded USA ones which were also at MB.&lt;br /&gt;
&lt;br /&gt;
EDIT 4: Purchased two at MB, 2026/02. These were just average. Not good but not terrible. I think I need to buy more oranges from WF.&lt;br /&gt;
&lt;br /&gt;
EDIT 5: Purchased some (I forget where). 03/2026. These ones were good. &lt;br /&gt;
&lt;br /&gt;
EDIT 6: Purchased two from tjs 05/2026. Had to pull them out of the bottom of the barrel with sequoias which I don't know about. Good again. Fresh, not frozen. This brand has overall been good, though not perfect.&lt;br /&gt;
&lt;br /&gt;
[[File:IMG 20250530 210746486.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20250530 213938454.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in Single Qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
$1 each.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour is good. 8/10. &lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
Fruit is a yellow-orange colour.&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
These are easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
Large Orange. Thin Rind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Kings_River_Oranges&amp;diff=2695</id>
		<title>Kings River Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Kings_River_Oranges&amp;diff=2695"/>
		<updated>2026-05-05T00:37:15Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Purchased at MB around 2025/05&lt;br /&gt;
&lt;br /&gt;
This orange was very good. Named King's River, and it is of high grade.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2: I purchased some more of these from S&amp;amp;S in 2025/11 and they were not very good. They were acidic and I had to eat them warm, otherwise the acid + refridgeration was so bad, it hurt my mouth. So these are not consistent, apparently. The new ones were a very thin skin/rind, which doesn't line up with this photo. I should've taken photos. Lesson learned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3: Purchased 03/2026 from Wgm. This one was a little off, but it was alright. Worth eating, this time.&lt;br /&gt;
&lt;br /&gt;
4: Purchased 03/2026 from Sh. This one is OK.&lt;br /&gt;
&lt;br /&gt;
5. Purchased two 04/2026. Not good. Made me hate oranges. I don't know what they put in this one.&lt;br /&gt;
&lt;br /&gt;
[[File:IMG 20250530 210739103.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20250531 233920508.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
There appear to be multiple labels from this brand. One label is a white background, the other is a black background (similar to suntreat, sunkist, and vintage sweets. There is also a pink label, though that is for a cara cara.&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in Single Qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
$1 each.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Very good. Like an apology from the universe. 8.8/10.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
Yellow-orange&lt;br /&gt;
===Peelability===&lt;br /&gt;
Easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
&lt;br /&gt;
===Size===&lt;br /&gt;
Large Orange. Medium size rind.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
I went back in a couple of days later, and there were not many King's river left. Only the Booths Ranch. I did manage to buy 3 more. And they are still good, though I did get the runts of the lot.&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Suntreat_Oranges&amp;diff=2694</id>
		<title>Suntreat Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Suntreat_Oranges&amp;diff=2694"/>
		<updated>2026-05-05T00:36:20Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
This orange was purchased from Target in 02/2026. &lt;br /&gt;
&lt;br /&gt;
EDIT 2: Purchased 2 from wf (wob). They were previously frozen. This is the second time that's happened to me there. I'm somewhat upset about it. They were clearly good fresh, but ruined once frozen. Still edible, but not what they should've been.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:IMG 20260220 005031895 suntreat.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20260220 005257005.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Single qty.&lt;br /&gt;
&lt;br /&gt;
The logo is similar to a Vintage Sweets, a Booth Ranches, or a Sunkist. I.e. it is a black background with a logo in it. It's easy to confuse this with the others if you aren't taking notes. &lt;br /&gt;
[[File:Suntreat closeup of logo.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour is similar to a vintage sweets or any other generic navel orange. However, it tastes a little bit worse overall. As if they copied the recipe from another orange, but don't quite have the same fertilizer/soil to get it to taste good. It was an average orange. Somewhat both bad and good.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Easy to peel.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Suntreat_Oranges&amp;diff=2693</id>
		<title>Suntreat Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Suntreat_Oranges&amp;diff=2693"/>
		<updated>2026-05-05T00:35:56Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
This orange was purchased from Target in 02/2026. &lt;br /&gt;
&lt;br /&gt;
EDIT 2: Purchased 2 from wf (wob). They were previously frozen. This is the second time that's happened to me there. I'm somewhat upset about it. They were clearly good fresh, but ruined once frozen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:IMG 20260220 005031895 suntreat.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20260220 005257005.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Single qty.&lt;br /&gt;
&lt;br /&gt;
The logo is similar to a Vintage Sweets, a Booth Ranches, or a Sunkist. I.e. it is a black background with a logo in it. It's easy to confuse this with the others if you aren't taking notes. &lt;br /&gt;
[[File:Suntreat closeup of logo.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour is similar to a vintage sweets or any other generic navel orange. However, it tastes a little bit worse overall. As if they copied the recipe from another orange, but don't quite have the same fertilizer/soil to get it to taste good. It was an average orange. Somewhat both bad and good.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Easy to peel.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Booth_Ranches_Oranges&amp;diff=2692</id>
		<title>Booth Ranches Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Booth_Ranches_Oranges&amp;diff=2692"/>
		<updated>2026-05-05T00:34:55Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Purchased at MB around 2025/05&lt;br /&gt;
&lt;br /&gt;
EDIT: I purchased another pair at TJ in 2025/11 (start of the new season) and they were also good.&lt;br /&gt;
&lt;br /&gt;
EDIT: I purchased one at TJ in 2025/12 and it was not good. This one had more of the sumo outgrowth part of it, compared to the other ones. Sour and weird. Not a good orange. This time, it was one of the few left, with some others in the container that were Sun Pacific (few) and mostly these unbranded USA ones which were also at MB.&lt;br /&gt;
&lt;br /&gt;
EDIT 4: Purchased two at MB, 2026/02. These were just average. Not good but not terrible. I think I need to buy more oranges from WF.&lt;br /&gt;
&lt;br /&gt;
EDIT 5: Purchased some (I forget where). 03/2026. These ones were good. &lt;br /&gt;
&lt;br /&gt;
EDIT 6: Purchased two from tjs. Had to pull them out of the bottom of the barrel with sequoias which I don't know about. Good again. Fresh, not frozen. This brand has overall been good, though not perfect.&lt;br /&gt;
&lt;br /&gt;
[[File:IMG 20250530 210746486.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20250530 213938454.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in Single Qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
$1 each.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour is good. 8/10. &lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
Fruit is a yellow-orange colour.&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
These are easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
Large Orange. Thin Rind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Booth_Ranches_Oranges&amp;diff=2691</id>
		<title>Booth Ranches Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Booth_Ranches_Oranges&amp;diff=2691"/>
		<updated>2026-05-05T00:34:35Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Purchased at MB around 2025/05&lt;br /&gt;
&lt;br /&gt;
EDIT: I purchased another pair at TJ in 2025/11 (start of the new season) and they were also good.&lt;br /&gt;
&lt;br /&gt;
EDIT: I purchased one at TJ in 2025/12 and it was not good. This one had more of the sumo outgrowth part of it, compared to the other ones. Sour and weird. Not a good orange. This time, it was one of the few left, with some others in the container that were Sun Pacific (few) and mostly these unbranded USA ones which were also at MB.&lt;br /&gt;
&lt;br /&gt;
EDIT 4: Purchased two at MB, 2026/02. These were just average. Not good but not terrible. I think I need to buy more oranges from WF.&lt;br /&gt;
&lt;br /&gt;
EDIT 5: Purchased some (I forget where). 03/2026. These ones were good. &lt;br /&gt;
&lt;br /&gt;
EDIT 6: Purchased two from tjs. Had to pull them out of the bottom of the barrel. Good again. Fresh, not frozen. This brand has overall been good, though not perfect.&lt;br /&gt;
&lt;br /&gt;
[[File:IMG 20250530 210746486.jpg|300px|thumb|right|]]&lt;br /&gt;
[[File:IMG 20250530 213938454.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in Single Qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
$1 each.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour is good. 8/10. &lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
Fruit is a yellow-orange colour.&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
These are easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
This orange is seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
Large Orange. Thin Rind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=SunPacific_Organic_Oranges&amp;diff=2690</id>
		<title>SunPacific Organic Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=SunPacific_Organic_Oranges&amp;diff=2690"/>
		<updated>2026-04-24T11:53:58Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
I bought two of these from SH by the pru downtown. These are navel oranges of course. Oddly enough, the second one created a lot of orange juice when it was cut, more than I have seen from any orange up to this point. It was not very good orange juice, though. Just average.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
These are sold in single qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
I think they were $1.99 on sale. The price was not bad, considering that these were in the small organic section.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour was good. I will try these again, next time I see them.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
The colour is of an average orange.&lt;br /&gt;
===Peelability===&lt;br /&gt;
One was easily peelable, the other not as much. I think the second was pulled a little early from the tree.&lt;br /&gt;
&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
These are of medium size. Possibly on the small side.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=SunPacific_Organic_Oranges&amp;diff=2689</id>
		<title>SunPacific Organic Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=SunPacific_Organic_Oranges&amp;diff=2689"/>
		<updated>2026-04-24T11:32:44Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Size */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
I bought two of these from SH by the pru downtown. These are navel oranges of course.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
These are sold in single qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
I think they were $1.99 on sale. The price was not bad, considering that these were in the small organic section.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour was good. I will try these again, next time I see them.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
The colour is of an average orange.&lt;br /&gt;
===Peelability===&lt;br /&gt;
One was easily peelable, the other not as much. I think the second was pulled a little early from the tree.&lt;br /&gt;
&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
These are of medium size. Possibly on the small side.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=SunPacific_Organic_Oranges&amp;diff=2688</id>
		<title>SunPacific Organic Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=SunPacific_Organic_Oranges&amp;diff=2688"/>
		<updated>2026-04-24T11:32:19Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Peelability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
I bought two of these from SH by the pru downtown. These are navel oranges of course.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
These are sold in single qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
I think they were $1.99 on sale. The price was not bad, considering that these were in the small organic section.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour was good. I will try these again, next time I see them.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
The colour is of an average orange.&lt;br /&gt;
===Peelability===&lt;br /&gt;
One was easily peelable, the other not as much. I think the second was pulled a little early from the tree.&lt;br /&gt;
&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
These are of medium size.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=SunPacific_Organic_Oranges&amp;diff=2687</id>
		<title>SunPacific Organic Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=SunPacific_Organic_Oranges&amp;diff=2687"/>
		<updated>2026-04-24T11:28:19Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: Created page with &amp;quot;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt; &amp;lt;!-- General Description, date when purchased and where. --&amp;gt; I bought two of these from SH by the pru down...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
I bought two of these from SH by the pru downtown. These are navel oranges of course.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
[[|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
These are sold in single qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
I think they were $1.99 on sale. The price was not bad, considering that these were in the small organic section.&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
Flavour was good. I will try these again, next time I see them.&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
The colour is of an average orange.&lt;br /&gt;
===Peelability===&lt;br /&gt;
These are easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
These are of medium size.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Oranges&amp;diff=2686</id>
		<title>Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Oranges&amp;diff=2686"/>
		<updated>2026-04-24T11:25:20Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the orange blog or orange log.&lt;br /&gt;
&lt;br /&gt;
I'll try to keep track of good and bad oranges.&lt;br /&gt;
Most oranges are bad, unfortunately.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It appears these companies are findable via a web search online, unless the Oranges are sold as generic.&lt;br /&gt;
&lt;br /&gt;
todo: organize these by type (navel, cara cara, valencia, etc)&lt;br /&gt;
&lt;br /&gt;
[[File:Cyberblockmetalorange.png|300px|||]]&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
&lt;br /&gt;
* [[Booth_Ranches_Oranges]]&lt;br /&gt;
* [[Homegrown Organic Farms Oranges]]&lt;br /&gt;
* [[Kings_River_Oranges]]&lt;br /&gt;
* [[MB_StoreBrand_California_Oranges]]&lt;br /&gt;
* [[Paramount_Oranges]]&lt;br /&gt;
* [[Peels Cara Cara Navel]]&lt;br /&gt;
* [[RVO Oranges]]&lt;br /&gt;
* [[Sequoia Oranges]]&lt;br /&gt;
* [[Sunkist CaraCara Oranges]]&lt;br /&gt;
* [[Sunkist Moro Oranges]]&lt;br /&gt;
* [[Sunkist Oranges]]&lt;br /&gt;
* [[Sunkist LateSeason Oranges]]&lt;br /&gt;
* [[SunPacific Oranges]]&lt;br /&gt;
* [[SunPacific Organic Oranges]]&lt;br /&gt;
* [[Suntreat Oranges]]&lt;br /&gt;
* [[Vintage Sweets Oranges]]&lt;br /&gt;
&lt;br /&gt;
* [[Orange_Template]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Sunkist_Oranges&amp;diff=2685</id>
		<title>Sunkist Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Sunkist_Oranges&amp;diff=2685"/>
		<updated>2026-04-23T07:22:25Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:Sunkist.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One orange purchased from either s&amp;amp;s or wgm, 3/2026. I forget which. It was a good orange, though not perfect. 7.3/10.&lt;br /&gt;
&lt;br /&gt;
Looking at my list, this one is different from the 'late season' sunkist orange. The moro is a blood orange, and cara cara is not a navel.&lt;br /&gt;
&lt;br /&gt;
EDIT: One purchased around the end of 3/2026. I forget where. This one is very good. Thin peel. Deep yellow orange colour. 8.7/10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EDIT: One purchased around the end of 04/2026 from WGM. This one was a little yellow and beaten looking. Inside it peeled a little slimy. Beware of the slimy orange. Into the trash. Somehow rotten.&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in single qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
A traditional orange flavour. A little off, but not too much. A little bit like sunkist soda (vaguely).&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
These were medium-large oranges.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Sunkist_Oranges&amp;diff=2684</id>
		<title>Sunkist Oranges</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Sunkist_Oranges&amp;diff=2684"/>
		<updated>2026-04-16T00:38:24Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- this should be made into a mediawiki template somehow: todo --&amp;gt;&lt;br /&gt;
&amp;lt;!-- General Description, date when purchased and where. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Photos --&amp;gt;&lt;br /&gt;
[[File:Sunkist.jpg|300px|thumb|right|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One orange purchased from either s&amp;amp;s or wgm, 3/2026. I forget which. It was a good orange, though not perfect. 7.3/10.&lt;br /&gt;
&lt;br /&gt;
Looking at my list, this one is different from the 'late season' sunkist orange. The moro is a blood orange, and cara cara is not a navel.&lt;br /&gt;
&lt;br /&gt;
EDIT: One purchased around the end of 3/2026. I forget where. This one is very good. Thin peel. Deep yellow orange colour. 8.7/10&lt;br /&gt;
&lt;br /&gt;
==Packaging==&lt;br /&gt;
Sold in single qty.&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fruit==&lt;br /&gt;
===Flavour===&lt;br /&gt;
A traditional orange flavour. A little off, but not too much. A little bit like sunkist soda (vaguely).&lt;br /&gt;
&lt;br /&gt;
===Colour===&lt;br /&gt;
&lt;br /&gt;
===Peelability===&lt;br /&gt;
Easily peelable.&lt;br /&gt;
===Seeds/Seedless===&lt;br /&gt;
These are seedless.&lt;br /&gt;
===Size===&lt;br /&gt;
These were medium-large oranges.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oranges]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Wire&amp;diff=2683</id>
		<title>Wire</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Wire&amp;diff=2683"/>
		<updated>2026-04-11T08:55:03Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Theory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I love wire. Wire is one of the [[Modular Electronics]].&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
* https://www.youtube.com/watch?v=kRLDkvlm4iw - Epoxy potting a soldered auto connector. The video is mostly talking head but there is a demonstration of soldering / potting the connector. This video goes with the Race Spec PDF below.&lt;br /&gt;
* https://openwrt.org/docs/techref/hardware/port.jtag.cable.unbuffered - Reportedly, The simplest type of JTAG cable.&lt;br /&gt;
* https://openwrt.org/docs/techref/hardware/port.jtag.cables - More JTAG info.&lt;br /&gt;
&lt;br /&gt;
===Thermocouples===&lt;br /&gt;
[[File:Thermocouple builder from geocorp.mp4||100|right]]&lt;br /&gt;
* https://www.geocorpinc.com/ These folks have a business about thermocouples. The website might be a useful resource to look into. There is a thermocouple builder page, which gives graphics (of connectors) and that is well done. I made a video of the connectors to save you the time of going to their website (and in case they remove the wizard from the website). Note the smaller size of the mini connector, as well as the red colouring for the high temp version.&lt;br /&gt;
&lt;br /&gt;
==Theory==&lt;br /&gt;
===Bandwidth as a function of Distance, Frequency and Signal to Noise ratio (SNR)===&lt;br /&gt;
Per Sybex' Cabling by Barnett, Groth, and McCree (3rd Edition is what I have from the Used Book store, and it appears to be the newest) (page: 38)&lt;br /&gt;
&lt;br /&gt;
Given a fixed bandwidth:&lt;br /&gt;
* If you increase distance, you must lower frequency or increase SNR&lt;br /&gt;
* If you increase frequency, you must lower distance or increase SNR&lt;br /&gt;
* If you increase SNR, you can increase frequency or distance&lt;br /&gt;
&lt;br /&gt;
===How Fast Can 100M UTP Go?===&lt;br /&gt;
[[File:IMG 20250502 microcenter.jpg|300px|thumb|right|Price for a 50 foot CAT8 backbone cable is about $60. CAT7 cable isn't even EIA/TIA approved... Another thing to consider, is that metal shielded 8P8C connectors are much less fun to crimp than plastic. The metal is tough on hands.]]&lt;br /&gt;
I see Cat 6A going to 10GBASE-T which is 10 gigabit (reference: https://en.wikipedia.org/wiki/Category_6_cable#Category_6A)&lt;br /&gt;
&lt;br /&gt;
Cat 7 is not EIA/TIA approved (reference: https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_7), and Cat 8 is not 100M (reference: https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_8 links checked 2025-05-04).&lt;br /&gt;
&lt;br /&gt;
If it's not 100M, it doesn't count.&lt;br /&gt;
===Types of Stranded Wire===&lt;br /&gt;
There are grades of stranded wire, which refer to the coarse or fineness of the strands.&lt;br /&gt;
 https://en.wikipedia.org/wiki/IEC_60228&lt;br /&gt;
 https://www.eaton.com/content/dam/eaton/products/low-voltage-power-distribution-controls-systems/swiching-devices/resources/finestrandwire-il008004en.pdf&lt;br /&gt;
&lt;br /&gt;
==Tips/Techniques==&lt;br /&gt;
===Buy in Bulk===&lt;br /&gt;
You will save a lot of money.&lt;br /&gt;
===Look for Local Surplus of Wire===&lt;br /&gt;
I found 2000 feet of 22 gauge wire for $15 2024 prices from a local electronics recycler. Wire is one of those things that the wire factories can't stop &amp;lt;s&amp;gt;breeding&amp;lt;/s&amp;gt; producing, so there is always a lot around.&lt;br /&gt;
&lt;br /&gt;
===Wire Wrap===&lt;br /&gt;
Not a lot of modern use of wire wrap, but the small gauge wire and the cutters are useful.&lt;br /&gt;
Pretty much if you build a board with wire wrap, murphy will disconnect/cause oxidation on three wires and you'll never&lt;br /&gt;
figure out why the board doesn't work.&lt;br /&gt;
[[File:Wirewrap.png|200px|right]]&lt;br /&gt;
https://www.eevblog.com/forum/buysellwanted/lfs-cheap-wire-wrap-tool-and-sockets-(uk)/&lt;br /&gt;
https://www.eevblog.com/forum/chat/do-people-not-wire-wrap-anymore/&lt;br /&gt;
http://web.archive.org/web/20201027182555/https://jonard.com/sites/default/files/product_files/Data%20Sheet%20-%20Wrap-Strip-Unwrap%20Tool.pdf&lt;br /&gt;
&lt;br /&gt;
Compare speed wire to wire wrap. The former is a lot more reasonable, but you will still need an enclosure otherwise wires will get knocked off over time.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Wirewrap2a.jpg|Wire Wrap&lt;br /&gt;
File:Speedwire2a.jpg|Speed Wire&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Soldering Wire to a Bolt===&lt;br /&gt;
Assuming you match the metals correctly:&lt;br /&gt;
https://www.eevblog.com/forum/projects/how-to-reliably-connect-copper-wire-to-stainless-steel-bolts/msg5446019&lt;br /&gt;
Solder lugs are cheap. I bought a few for a Spot Welder I made. Of course, you can also crimp them with a ring connector (which is probably what I would recommend. Though you don't always have high current crimps (i.e. for car batteries) so in that case, you might consider a solder lug). I think also DiodeGoneWild mentioned this in one of his videos, when repairing vintage TE. I forget which one at the moment. The lesson is, you need the right hardware, don't just solder directly to a bolt.&lt;br /&gt;
[[File:Solderlug.JPG|thumb|right|200px]]&lt;br /&gt;
&lt;br /&gt;
===IDC Cable Problems===&lt;br /&gt;
https://www.eevblog.com/forum/projects/high-reliability-ribbon-cables/msg5449421/ - Digikey made cables error. No one bothered to look up the cable (they kept asking: &amp;quot;who makes it?&amp;quot;) until the 2nd page, even though info was provided.&lt;br /&gt;
&lt;br /&gt;
===Be Careful with RF Cables===&lt;br /&gt;
RF Cables can be expensive. And easily broken per Amp hour 533: https://theamphour.com/533-microwave-measurement-with-joel-dunsmore/&lt;br /&gt;
&lt;br /&gt;
===Finding a Break in a Cable===&lt;br /&gt;
A couple of resources.&lt;br /&gt;
&lt;br /&gt;
* Using a TDR to find the break. https://forum.allaboutcircuits.com/threads/using-a-time-domain-reflectometer-tdr-to-find-a-fault.110637/ (I did not read the link, but just want to post something to show there are other results out there. Use the search engine). A writeup on TDRs is in ISBN 0-7506-1601-6, METE by K. Brindley.&lt;br /&gt;
&lt;br /&gt;
* https://theamphour.com/481-an-interview-with-paul-thompson/ - This is the fellow from the amp hour whom builds electric fences. If I remember right, they discuss fault finding in wires (I think he has some custom solution to this). I'm not sure he discusses all details of how he does it, but as a reference, it should be checked.&lt;br /&gt;
&lt;br /&gt;
* https://www.youtube.com/watch?v=FOzEpJogSFg LER / Learn electronics repair. Per hackaday. He uses Capacitance. This is one of those techniques you hear about, but forget if you don't use it. So I'm leaving it here as a reference. In this example, he is comparing it to the capacitance of some other wires, which means you may need multiple conductors for this method to work. The hackaday post has some comments that are worth reading. They say the NanoVNA software can do TDR. https://hackaday.com/2025/02/15/how-to-find-where-a-wire-in-a-cable-is-broken/&lt;br /&gt;
&lt;br /&gt;
* Using a NanoVNA per https://www.eevblog.com/forum/beginners/any-tricks-for-finding-a-break-in-an-underground-wire/ https://groups.io/g/nanovna-users/topic/using_nanovna_to_detect_an/90375131&lt;br /&gt;
&lt;br /&gt;
===Spools of 20 AWG Solid BC Polyethylene Wire===&lt;br /&gt;
I was at the thrift store and found some wire used for the Innotek Electric Dog Fence, possibly. It was a spool of green 20AWG Copper wire, and it lasted me about a year. It was the best wire I've come across, and you can buy more spools of it on the auction site for about $30. However, there is some bit of gaming going on, as the new spool was not as good. I bought another one, this time labeled with Carris Reels, which was the manufacturer of the original spool I had, and that was a bit better, but still not 100%. Anyways, it was good enough. This wire was a joy to use, and I used it for all twist ties in my (mostly) ethernet work. I'm still on the search for the original wire, but that will have to wait as time and budget permits. Maybe it's actually the same. Production quality can differ of course. There are a few different search terms you can use to look for the wire, but start with Innotek Dog Wire, and you will see spools show up. You will also help in tracking visits to my blog to serve the surveillance economy. Kidding, mostly.&lt;br /&gt;
&lt;br /&gt;
I try to reuse all the wire that I 'use' as twist ties. With zip ties, that is not possible. I hate zip ties.&lt;br /&gt;
&lt;br /&gt;
===High End Wiring (Race-Spec)===&lt;br /&gt;
This webpage is about 100 pages exported as a PDF and I made it into a book on one of those online book creation services (I happen to use lulu.com). A lot of advertisements (be forewarned) but easy and light reading. Cables and [[connectors]] are tough.&lt;br /&gt;
&lt;br /&gt;
* https://www.rbracing-rsr.com/wiring_ecu.html&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Connectors#Tips.2FTechniques#Measure%20your%20Connectors/Cables]]&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Freecad&amp;diff=2682</id>
		<title>Freecad</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Freecad&amp;diff=2682"/>
		<updated>2026-04-07T08:36:54Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Freecad is a mechanical design tool. I typically use it in:&lt;br /&gt;
* additive / subtraction mode&lt;br /&gt;
* sketching / constraint mode&lt;br /&gt;
&lt;br /&gt;
There are a number of workbenches for it. They can be installed via&lt;br /&gt;
the addon manager in 0.18 and newer (use 0.19+ though). Some that are worth looking at are the:&lt;br /&gt;
* kicad stepup workbench (allows you to work with kicad board files)&lt;br /&gt;
* gears workbench&lt;br /&gt;
* fasteners workbench&lt;br /&gt;
* sheet metal workbench&lt;br /&gt;
&lt;br /&gt;
==1.0.0==&lt;br /&gt;
From Debian 13.&lt;br /&gt;
&lt;br /&gt;
===Sheet Metal Workbench===&lt;br /&gt;
 apt install python3-networkx&lt;br /&gt;
 start freecad&lt;br /&gt;
 go to addons manager&lt;br /&gt;
 install sheet metal&lt;br /&gt;
 restart&lt;br /&gt;
See this tutorial:&lt;br /&gt;
https://www.youtube.com/watch?v=1tABHJJ66_k&lt;br /&gt;
&lt;br /&gt;
Prices for online sheet metal are not as cheap as PCBs, so expect to pay $30+ for 1 qty from e.g. PCBWay or Oshcut.&lt;br /&gt;
&lt;br /&gt;
==0.19==&lt;br /&gt;
From Bullseye. The forum has many example sketches, and is quite active. You can learn a lot by lurking there.&lt;br /&gt;
&lt;br /&gt;
Here's my favorite way to learn things though: animated gifs.&lt;br /&gt;
&lt;br /&gt;
[[File:Sketcher Periodic-B-spline-creation.gif]]&lt;br /&gt;
[[File:Sketcher Changing-control-point-weigth-dragging.gif]]&lt;br /&gt;
&lt;br /&gt;
==0.18==&lt;br /&gt;
0.18 is the stable release for Devuan Beowulf.&lt;br /&gt;
===Can't Pad A Sketch===&lt;br /&gt;
Remember to use sketcher in part design. You must make a body first, then add a sketch. If you simply go to sketcher, make a sketch, then try to pad a sketch, it will complain some of a missing body. You must click the body icon in part design.&lt;br /&gt;
&lt;br /&gt;
===Adding Engraved Text to Shape===&lt;br /&gt;
This is tricky. It seems that it always is (to add engraved text).&lt;br /&gt;
&lt;br /&gt;
Make sure to extrude the text before adjusting x,y,z on the 3d plane. Otherwise the extrusion will be offset by the earlier placement.&lt;br /&gt;
&lt;br /&gt;
See freecad wiki tutorial (0.17). you can skip the sketcher part.&lt;br /&gt;
&lt;br /&gt;
For 0.18, some guides say to use shapestring to trimex. That didn't work for me. Trimex would fail.&lt;br /&gt;
&lt;br /&gt;
However, shapestring, to then PART workbench (not part design)(its bad design they are named&lt;br /&gt;
similarly is it not? Endlessly confusing.), To then part extrude worked. You must select a font for&lt;br /&gt;
the text. By default, it won't choose one for you. Not all work.&lt;br /&gt;
&lt;br /&gt;
Ugh. 30 minutes of my life&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
difference between trimex and part extrude is explained here:&lt;br /&gt;
https://wiki.freecadweb.org/Manual:Traditional_2D_drafting&lt;br /&gt;
&lt;br /&gt;
===Spreadsheets of values===&lt;br /&gt;
These are useful, but then if you duplicate a part, it makes a new spreadsheet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===External Geometry===&lt;br /&gt;
When adding external geometry (0.18) you must have a near brandy new sketch.&lt;br /&gt;
click external geometry, select outside sketch, then draw the rectangle.&lt;br /&gt;
if you already have a rectangle, it will work. if you already have the rectangle,&lt;br /&gt;
then add a constraint, then delete that constraint... well it didnt work for me that time.&lt;br /&gt;
shift - select for Openinventor mouse.&lt;br /&gt;
&lt;br /&gt;
basic example sketch to get used to external geometry tool:&lt;br /&gt;
# start new body, then new sketch&lt;br /&gt;
# make square, horizontal cons. 20mm, vertical 20mm&lt;br /&gt;
# make new sketch (must be a new sketch, make sure it doesn't add this circle to the old sketch)&lt;br /&gt;
in new sketch (but still in same body, can't be new body)&lt;br /&gt;
# make circle. &lt;br /&gt;
# give it radius const. 4mm&lt;br /&gt;
# external geometry on top and side lines of rectange. when selected they should turn magenta&lt;br /&gt;
# Now, select two CORNER points, and then click horizontal constraint.&lt;br /&gt;
do not select the line (that will give you a blue line/constraint. not what we want)&lt;br /&gt;
done this way, it should work as expected.&lt;br /&gt;
&lt;br /&gt;
EDIT: just did this again today, and for the last step (click horizontal constraint) instead I chose the constrain distance tool (diagonal arrows) (see top menu bar - sketcher - sketcher constraints menu) and chose between two lines. One line of the external rectangle, one of the new rectangle.&lt;br /&gt;
&lt;br /&gt;
===Sketches freezing up.===&lt;br /&gt;
when adding a constraint, if you get it wrong, you get to a point where you can't delete a constraint&lt;br /&gt;
just close the sketch (not file just sketch) then reopen and delete.&lt;br /&gt;
&lt;br /&gt;
===Symmetry constraint===&lt;br /&gt;
Note: if you want to define a symmetry constraint with respect to a point, the order of the selection is important, depending on if you select the tool at the beginning or at the end.&lt;br /&gt;
&lt;br /&gt;
    If you click the tool first: select the first point, then the symmetry reference point, and finally the second point.&lt;br /&gt;
    If you click the tool last: select the first point, then the second point, and finally the symmetry reference point&lt;br /&gt;
Note: above taken verbatim from freecad wiki.&lt;br /&gt;
&lt;br /&gt;
So to get center constraint, do the former, and choose opposite points.&lt;br /&gt;
&lt;br /&gt;
===Offset item from center lines===&lt;br /&gt;
Offset square from center point. instead of symmetrical contraint, or vertical&lt;br /&gt;
or horizontal, choose the diagnoal line one. then enter an offset, based on a point, and the &lt;br /&gt;
middle lines. you may have to drag and drop it, to get it on one side or the other.&lt;br /&gt;
&lt;br /&gt;
===Addon Manager Fix for 0.18===&lt;br /&gt;
The bad news is that Addon Manager is broken on 0.18. Backwards compatibility is very important. This is one thing that made windows successful. Bad show on the freecad devs part. In their defense, it's a new feature, so this is somewhat acceptable. Good news, is that two small changes in 0.18 (debian 10) will fix it. It's python, so no re-compiling needed.&lt;br /&gt;
&lt;br /&gt;
Two fixes. One for macros, one for Workbenches.&lt;br /&gt;
&lt;br /&gt;
https://github.com/FreeCAD/FreeCAD/commit/258f9f1577e71e30f8696b266458df23042eefa5&lt;br /&gt;
&lt;br /&gt;
https://forum.freecadweb.org/viewtopic.php?f=3&amp;amp;t=51160&lt;br /&gt;
&lt;br /&gt;
tested in devuan beowulf.&lt;br /&gt;
&lt;br /&gt;
===Different Preferences Menus Show Depending on Which Workbench You Are In===&lt;br /&gt;
Subject. Edit -&amp;gt; preferences.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* https://forum.freecadweb.org/viewtopic.php?f=3&amp;amp;t=38274&amp;amp;p=324418#p324418 - construction items (blue) and building items (white)&lt;br /&gt;
* https://hackaday.com/2026/01/22/stl-editing-with-freecad/&lt;br /&gt;
* https://hackaday.com/2026/04/05/turning-a-bluetooth-caliper-into-a-freecad-input-device/ and https://0l.de/blog/2026/04/sylvac-freecad-input/ - Connecting calipers to a serial console or python console in freecad. I.e. being able to use calipers and directly send the value to freecad. I suppose you don't need to do this hack. It's enough to use the built in functionality where you press the button to send the dimensions.&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2681</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2681"/>
		<updated>2026-04-07T08:33:26Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Homogenization of Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
I'm not accepting the answer from stack exchange that &amp;quot;You need to add the relevant paths, bla bla bla.&amp;quot; That is horseshit. Not acceptable. I specified the user. Cron is just broken.&lt;br /&gt;
&lt;br /&gt;
If you run into this, you can do 'some' troubleshooting with proper output/stderr redirection. It took me a while to realize that the proper way to output is to do &lt;br /&gt;
 ./myscript.sh 1&amp;gt; stdout.log 2&amp;gt; stderr.log&lt;br /&gt;
The trick, or the trap here, is to avoid the 2&amp;gt;&amp;amp;1 syntax, which is code golf which obfuscates what is more clearly written as the 1&amp;gt; and 2&amp;gt; instructions. Syntax hell. Covered on stack overflow [https://stackoverflow.com/questions/818255/what-does-21-mean here]&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
===Homogenization of Software===&lt;br /&gt;
Everyone use git.&lt;br /&gt;
&lt;br /&gt;
Everyone use docker.&lt;br /&gt;
&lt;br /&gt;
Everyone use systemd.&lt;br /&gt;
&lt;br /&gt;
Don't ask questions, just use it, like everyone else. Conform. Get in line.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, Monocultures are bad. Single point of failure. Single point to corrupt.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2680</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2680"/>
		<updated>2026-04-07T08:30:45Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Homogenization of Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
I'm not accepting the answer from stack exchange that &amp;quot;You need to add the relevant paths, bla bla bla.&amp;quot; That is horseshit. Not acceptable. I specified the user. Cron is just broken.&lt;br /&gt;
&lt;br /&gt;
If you run into this, you can do 'some' troubleshooting with proper output/stderr redirection. It took me a while to realize that the proper way to output is to do &lt;br /&gt;
 ./myscript.sh 1&amp;gt; stdout.log 2&amp;gt; stderr.log&lt;br /&gt;
The trick, or the trap here, is to avoid the 2&amp;gt;&amp;amp;1 syntax, which is code golf which obfuscates what is more clearly written as the 1&amp;gt; and 2&amp;gt; instructions. Syntax hell. Covered on stack overflow [https://stackoverflow.com/questions/818255/what-does-21-mean here]&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
===Homogenization of Software===&lt;br /&gt;
Everyone use git.&lt;br /&gt;
&lt;br /&gt;
Everyone use docker.&lt;br /&gt;
&lt;br /&gt;
Everyone use systemd.&lt;br /&gt;
&lt;br /&gt;
Don't ask questions, just use it, like everyone else. Conform. Get in line.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, Monocultures are bad.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2679</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2679"/>
		<updated>2026-04-07T08:30:04Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Divide and Conquer: Wayland */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
I'm not accepting the answer from stack exchange that &amp;quot;You need to add the relevant paths, bla bla bla.&amp;quot; That is horseshit. Not acceptable. I specified the user. Cron is just broken.&lt;br /&gt;
&lt;br /&gt;
If you run into this, you can do 'some' troubleshooting with proper output/stderr redirection. It took me a while to realize that the proper way to output is to do &lt;br /&gt;
 ./myscript.sh 1&amp;gt; stdout.log 2&amp;gt; stderr.log&lt;br /&gt;
The trick, or the trap here, is to avoid the 2&amp;gt;&amp;amp;1 syntax, which is code golf which obfuscates what is more clearly written as the 1&amp;gt; and 2&amp;gt; instructions. Syntax hell. Covered on stack overflow [https://stackoverflow.com/questions/818255/what-does-21-mean here]&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
===Homogenization of Software===&lt;br /&gt;
Everyone use git.&lt;br /&gt;
&lt;br /&gt;
Everyone use docker.&lt;br /&gt;
&lt;br /&gt;
Don't ask questions, just use it, like everyone else.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, Monocultures are bad.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2678</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2678"/>
		<updated>2026-04-05T08:46:35Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Cron Environment: Again */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
I'm not accepting the answer from stack exchange that &amp;quot;You need to add the relevant paths, bla bla bla.&amp;quot; That is horseshit. Not acceptable. I specified the user. Cron is just broken.&lt;br /&gt;
&lt;br /&gt;
If you run into this, you can do 'some' troubleshooting with proper output/stderr redirection. It took me a while to realize that the proper way to output is to do &lt;br /&gt;
 ./myscript.sh 1&amp;gt; stdout.log 2&amp;gt; stderr.log&lt;br /&gt;
The trick, or the trap here, is to avoid the 2&amp;gt;&amp;amp;1 syntax, which is code golf which obfuscates what is more clearly written as the 1&amp;gt; and 2&amp;gt; instructions. Syntax hell. Covered on stack overflow [https://stackoverflow.com/questions/818255/what-does-21-mean here]&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2677</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2677"/>
		<updated>2026-04-05T08:46:23Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Cron Environment: Again */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
I'm not accepting the answer from stack exchange that &amp;quot;You need to add the relevant paths, bla bla bla.&amp;quot; That is horseshit. Not acceptable. I specified the user. Cron is just broken.&lt;br /&gt;
&lt;br /&gt;
If you run into this, you can do 'some' troubleshooting with proper output/stderr redirection. It took me a while to realize that the proper way to output is to do &lt;br /&gt;
 ./myscript.sh 1&amp;gt; stdout.log 2&amp;gt; stderr.log&lt;br /&gt;
The trick, or the trap here, is to avoid the 2&amp;gt;&amp;amp;1 syntax, which is code golf which obfuscates what is more clearly written as the 1&amp;gt; and 2&amp;gt; instructions. Syntax hell. Covered [https://stackoverflow.com/questions/818255/what-does-21-mean here]&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2676</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2676"/>
		<updated>2026-04-05T08:44:32Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Cron Environment: Again */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
I'm not accepting the answer from stack exchange that &amp;quot;You need to add the relevant paths, bla bla bla.&amp;quot; That is horseshit. Not acceptable. I specified the user. Cron is just broken.&lt;br /&gt;
&lt;br /&gt;
If you run into this, you can do 'some' troubleshooting with proper output/stderr redirection. It took me a while to realize that the proper way to output is to do &lt;br /&gt;
 ./myscript.sh 1&amp;gt; stdout.log 2&amp;gt; stderr.log&lt;br /&gt;
The trick, or the trap here, is to avoid the 2&amp;gt;&amp;amp;1 syntax, which is code golf which obfuscates what is more clearly written as the 1&amp;gt; and 2&amp;gt; instructions. Syntax hell.&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2675</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2675"/>
		<updated>2026-04-05T08:44:00Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Cron Environment: Again */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
I'm not accepting the answer from stack exchange that &amp;quot;You need to add the relevant paths, bla bla bla.&amp;quot; That is horseshit. Not acceptable. I specified the user. Cron is just broken.&lt;br /&gt;
&lt;br /&gt;
If you run into this, you can do 'some' troubleshooting with proper output/stderr redirection. It took me a while to realize that the proper way to output is to do myscript.sh 1&amp;gt; stdout.log 2&amp;gt; stderr.log. The trick, or the trap here, is to avoid the 2&amp;gt;&amp;amp;1 syntax, which is code golf which obfuscates what is more clearly written as the 1&amp;gt; and 2&amp;gt; instructions. Syntax hell.&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2674</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2674"/>
		<updated>2026-04-05T08:27:59Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Cron Environment: Again */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
I'm not accepting the answer from stack exchange that &amp;quot;You need to add the relevant paths, bla bla bla.&amp;quot; That is horseshit. Not acceptable. I specified the user. Cron is just broken.&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2673</id>
		<title>Regressions Of GNU\Linux</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Regressions_Of_GNU%5CLinux&amp;diff=2673"/>
		<updated>2026-04-05T08:24:56Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Cron Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change is not always for the better. I'm just trying to be a watchman.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/http://www.ariel.com.au/jokes/The\_Evolution\_of\_a\_Programmer.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
===Predictable Network Interface Names===&lt;br /&gt;
Someone has controversially decided that it is better for systems to have obtuse and confusing ethernet and wireless interface abbreviations such as enp0s25 instead of eth0. Remember this makes things simpler, and easier for people (but who?). &lt;br /&gt;
&lt;br /&gt;
In reality, most people get annoyed, and perhaps 10% (or less, a small proportion) of users benefit. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
===Aptitude, Apt-get, Apt===&lt;br /&gt;
I look forward to the day, when I can install packages with just the letter &amp;quot;A&amp;quot;. Though maybe they will go to &amp;quot;Ap&amp;quot; first. To be fair, this isn't a big deal, but it's also just a sign that debian package management is a bit complex. Compare to alpine, which has a much faster and leaner package management with apk.&lt;br /&gt;
&lt;br /&gt;
=== Debian 10: iptables has been replaced with nftables, after nearly 20 years ===&lt;br /&gt;
&amp;quot;Those are some great firewall rules you've configured there. It would be a shame if someone was to make them obsolete.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It started with Ipchains in 1998. In 2000, there was the last stable release of ipchains, which means if not by then, shortly after iptables took over. It's been 19, 19 years since then. Suddenly now, a new firewall is needed. Is this necessary for most people? That is the question.&lt;br /&gt;
&lt;br /&gt;
From Wikipedia https://en.m.wikipedia.org/wiki/Nftables&lt;br /&gt;
&lt;br /&gt;
A command to drop any packets with the destination IP address 1.2.3.4:&lt;br /&gt;
&lt;br /&gt;
iptables was: &lt;br /&gt;
 iptables -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
&lt;br /&gt;
nftables now is:&lt;br /&gt;
 nft add rule ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
&lt;br /&gt;
More complex. Fail.&lt;br /&gt;
&amp;lt;small&amp;gt;EDIT: in hindsight, It's come to my attention that most common nft commands will have the format of &amp;quot;nft add rule&amp;quot; something something, so essentially, you are only memorizing everything after &amp;quot;nft add rule&amp;quot;. That makes it a bit better, but still a hurdle, that average folks will have to get over. An initial look at the long string of nft commands is bound to cause people to lock up, and not be able to process anything further. Smoke and mirrors. Regardless, the accurate comparison is then:&lt;br /&gt;
 &amp;quot;cmd&amp;quot; -A OUTPUT -d 1.2.3.4 -j DROP&lt;br /&gt;
and&lt;br /&gt;
 &amp;quot;cmd&amp;quot; ip filter output ip daddr 1.2.3.4 drop&lt;br /&gt;
It's apparent that the firewall has tried to become more self describing, which can be a good thing. Perhaps a more self describing nature will elucidate people on the actual workings of the firewall better. That would be the ideal. I haven't used it yet enough to say.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With one fell swoop, thousands of iptables scripts and programs that use iptables were broken. &lt;br /&gt;
&amp;lt;small&amp;gt;Note: technically iptables-legacy can be used. At least for now. Woe is the day support is removed for that.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As an example, in 2020/10 This has bitten me with https://github.com/fail2ban/fail2ban/issues/2741&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Fail2ban don't attempt to execute nft file. I tried to add full path to nft in config file. No luck...&lt;br /&gt;
&lt;br /&gt;
 Please be aware that due to ipv6 support (see #1742) fail2ban executes actionstart on demand (by first ban, family dependent). So by design you'd not see nft called unless first ban occurs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existing fail2ban functionality (when fail2ban started, new table f2b-sshd or f2b-whatever was created. Now apparently it's not created until the first account is added to the banlist.) has been changed. This leads the admin to think fail2ban isn't working when the table doesn't exist. This results in lost time.&lt;br /&gt;
&lt;br /&gt;
Overall: Nftables to iptables. It does some things better, but it does some things worse. For example, ipv6 and ipv4 in one rule set is better in nft, but intuitive remembering of rules is worse.&lt;br /&gt;
&lt;br /&gt;
=== ifconfig replaced with ip ===&lt;br /&gt;
ifconfig, is simpler to use, and easier to view (more symmetrical than ip addr) for basic nic information, or setting an ip (ifconfig eth# 192.168.1.2 netmask 255.255.255.0). ip is unnecessary complexity for most use cases. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
ifconfig remains in /sbin/ifconfig, and requires root but the effort has been made to obsolete it. Don't change, what doesn't need to change.&lt;br /&gt;
&lt;br /&gt;
=== /etc/resolv.conf depreciated ===&lt;br /&gt;
All you should need for DNS is a one line text file that points to a DNS server. Put that in /etc/resolv.conf. The simplicity of that is a threat to more obtuse OS, therefore there will be an effort to complicate it. This raises the bar for entry level people to get started. Adding unnecessary complexity to Linux.&lt;br /&gt;
&lt;br /&gt;
=== Aptitude Descriptions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debian 8:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Version: 1.0.2k-1~bpo8+1&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,090 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.0.0 (&amp;gt;= 1.0.2~beta3)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
 This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for&lt;br /&gt;
 secure communication over the Internet.&lt;br /&gt;
&lt;br /&gt;
 It contains the general-purpose command line binary /usr/bin/openssl, useful for cryptographic operations such&lt;br /&gt;
 as:&lt;br /&gt;
 * creating RSA, DH, and DSA key parameters;&lt;br /&gt;
 * creating X.509 certificates, CSRs, and CRLs;&lt;br /&gt;
 * calculating message digests;&lt;br /&gt;
 * encrypting and decrypting with ciphers;&lt;br /&gt;
 * testing SSL/TLS clients and servers;&lt;br /&gt;
 * handling S/MIME signed or encrypted mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
debian 10:&lt;br /&gt;
&lt;br /&gt;
aptitude show openssl&lt;br /&gt;
Package: openssl&lt;br /&gt;
Version: 1.1.1d-0+deb10u3&lt;br /&gt;
State: installed&lt;br /&gt;
Automatically installed: no&lt;br /&gt;
Multi-Arch: foreign&lt;br /&gt;
Priority: optional&lt;br /&gt;
Section: utils&lt;br /&gt;
Maintainer: Debian OpenSSL Team &amp;lt;pkg-openssl-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;
Architecture: amd64&lt;br /&gt;
Uncompressed Size: 1,495 k&lt;br /&gt;
Depends: libc6 (&amp;gt;= 2.15), libssl1.1 (&amp;gt;= 1.1.1)&lt;br /&gt;
Suggests: ca-certificates&lt;br /&gt;
Description: Secure Sockets Layer toolkit - cryptographic utility&lt;br /&gt;
&lt;br /&gt;
Homepage: https://www.openssl.org/&lt;br /&gt;
Tags: implemented-in::c, interface::commandline, protocol::ssl, role::program, scope::utility, security::cryptography,&lt;br /&gt;
      security::integrity, use::checking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
&lt;br /&gt;
=== Dropping Support for i386 ===&lt;br /&gt;
Some distributions are dropping intel 32-bit support. With one fell swoop, hundreds of thousands of laptops and desktops made before 2006 and 2007 lost the ability to use modern OS. EDIT: this was taken back, temporarily. It stands, that some OS must support 32 bit i386, otherwise a lot of devices will be headed to landfills.&lt;br /&gt;
&lt;br /&gt;
Will we see the same thing happen with SBCs in the future? With ARM? With RiscV?&lt;br /&gt;
&lt;br /&gt;
=== Setting up Networking has become more complicated ===&lt;br /&gt;
What was (/etc/networking/interfaces):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 10.0.0.100&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 10.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example taken direct from http://web.archive.org/web/20150916101112/https://help.ubuntu.com/lts/serverguide/network-configuration.html   For DNS, a one liner in /etc/resolv.conf will suffice.&lt;br /&gt;
&lt;br /&gt;
Now is (w/netplan.io)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    eth0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.10.10.2/24&lt;br /&gt;
      gateway4: 10.10.10.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
          search: [mydomain, otherdomain]&lt;br /&gt;
          addresses: [10.10.10.1, 1.1.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example direct from http://web.archive.org/web/20190905160853/https://help.ubuntu.com/lts/serverguide/network-configuration.html&lt;br /&gt;
&lt;br /&gt;
===A better solution===&lt;br /&gt;
A solution is:&lt;br /&gt;
* whatever is used must be as simple, or simpler than before, as long as everything needed is included&lt;br /&gt;
* aim to keep interfaces similar when possible, as familiarity will increase efficiency&lt;br /&gt;
Look what ifupdown-ng did:&lt;br /&gt;
https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md&lt;br /&gt;
Their network interfaces is not more complex like netplan, but actually simpler. Yet it retains a lot of previous functionality, which means admins won't have to relearn everything. The new example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0&lt;br /&gt;
    use dhcp&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1&lt;br /&gt;
    address 203.0.113.2/24&lt;br /&gt;
    gateway 203.0.113.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So here static is implied (which is either good or bad, depending on how you view it, and dhcp&lt;br /&gt;
is explicitly mentioned. Yet the term inet has been dropped (what does that even mean?). To be&lt;br /&gt;
honest it's mostly the same. A better comparison for what netplan.io should've been would be like comparing openvpn to wireguard. There is a great leap. The latter is extremely simple, yet doesn't omit anything required. Configuration is kept at a minimum. It's a tool that gets out of your way and lets you create the VPN without worrying about how to use the tool itself. Netplan.io adds bulk and bloat that makes it a difficult tool to use. If only for its verbose config files. The more switches you have to change, the more complex the tool.&lt;br /&gt;
&lt;br /&gt;
But is a new interfaces file even necessary? Is it change for the sake of change?&lt;br /&gt;
&lt;br /&gt;
===SystemD fail===&lt;br /&gt;
Once upon a time there were many different GNULinux distributions. All of them had their own init system and kernel and programs. But that was too difficult for three letter agencies to break into. So they devised a plan: &amp;quot;What if we made a single program that ran on every computer, so it would be easy for us to break in?&amp;quot;. Thus the Intel ME was designed. Oh, and systemd too. They're basically the same idea. If every computer is the same, it makes the three letter agencies jobs easier.&lt;br /&gt;
&lt;br /&gt;
See without-systemd.org&lt;br /&gt;
&lt;br /&gt;
====Reboot fail====&lt;br /&gt;
[[File:Systemd_Unable_To_Reboot.webm|thumb|A demonstration of Ubuntu and Systemd being unable to reboot the computer within a reasonable amount of time. It takes 5-10 minutes for reboot to occur. Keep in mind, that this init has been on this distribution for years now (from 16.04, so 2016-2020). Sysvinit does not have this problem, and reboots within 10-20 seconds. Note that this is a remote ssh session.]]&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 19.04, reboot can take upwards of 5-10 minutes to actually reboot the computer. Note that this occurs in only SystemD based distributions. A similar Debian (9 or 10) w/sysvinit reboots within 10-15 seconds.&lt;br /&gt;
&lt;br /&gt;
I thought I would test systemd, so I installed Zoneminder on Ubuntu 19.04, and it demonstrates this problem. After witnessing the lifeforce of my computer being ripped out by this init, I threw the towel in and installed Devuan.&lt;br /&gt;
&lt;br /&gt;
For the record, I also noticed the system to run noticeably slower. CCTV is a good benchmark for a server, as it involves a lot of CPU usage, unlike many file servers, or db servers.&lt;br /&gt;
&lt;br /&gt;
====Example Error when Trying to Reboot====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@host:~$ systemctl reboot&lt;br /&gt;
Error getting authority: Error initializing authority: Error sending credentials: Error sending message: Broken pipe (g-io-error-quark, 44)&lt;br /&gt;
Failed to set wall message, ignoring: Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)&lt;br /&gt;
Failed to reboot system via logind: Connection timed out&lt;br /&gt;
Failed to start reboot.target: Connection timed out&lt;br /&gt;
See system logs and 'systemctl status reboot.target' for details.&lt;br /&gt;
It is possible to perform action directly, see discussion of --force --force in man:systemctl(1).&lt;br /&gt;
user@host:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And it will now take my machine 5-10 minutes to reboot.&lt;br /&gt;
&lt;br /&gt;
====External Links====&lt;br /&gt;
* [https://www.youtube.com/watch?v=RDKaFJmB254 LinuxCNC FAIL]: LinuxCNC broken because systemd can't do NTP right. In 2019/2020: Years after it is the default init...&lt;br /&gt;
* [https://nosystemd.org Nosystemd.org]: More details on why this init is bad.&lt;br /&gt;
====SystemD Five (X) Years Later====&lt;br /&gt;
I can say from personal experience, that systemd is in fact slower than sysvinit. I know because I run old hardware (Core 2 Duo generation) and the difference is obvious. While you may not notice with modern CPUs that have 4 or 8 cores (or a VPS that has spare resources in the background upon demand), the fact that it is actually slower is proof that SystemD is not as good. &lt;br /&gt;
&lt;br /&gt;
Management of config files and general administration, is worse with SystemD. Bootup time is equal or slower with SystemD. General computer usage is slower. RAM usage is higher. And finally, the only advantage of SystemD over sysvinit, is that the shutdown time is faster. This is also a problem with SBCs (not just Core 2 Duos). Try to run a Beaglebone with SystemD debian, then try to run it with Sysvinit Devuan. You will see the RAM usage with Devuan to be 20 MB less. Performance will be faster with sysvinit. So it's not just Core 2 Duos and old hardware. This is a very practical problem with SBCs (RPI, Beagleboards, etc.). You can't avoid bad software with faster processors. It is still a problem.&lt;br /&gt;
====SystemDemon Gallery====&lt;br /&gt;
See comparison photos here. There are the following as evidence of the previous. This is a stock install/migration. While SystemD does seem to be improving (with memory usage, I mean), I still find more trouble with it, than with Devuan's sysvinit. I run both (because you can't avoid systemd init).&lt;br /&gt;
* Debian 10 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Systemd&lt;br /&gt;
* Debian 11 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
* Debian 12 on a Beaglebone with Sysvinit (Devuan)&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bbb htop wsystemd d10.png|Debian 10 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop wsystemd d11.png|Debian 11 on a Beaglebone with Systemd|&lt;br /&gt;
File:Bbb htop devuan d11.png|Debian 11 on a Beaglebone with Devuan|&lt;br /&gt;
File:Bbb htop devuan d12.png|Debian 12 on a Beaglebone with Devuan|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
This may be a bit of a clementines and oranges comparison, since we are not strictly staying with Debian here, but I think it's enough. This is only on top of how more obtuse the administration is (as one example, to avoid a gish gallop, compare cron to systemd's timers).&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
=== Unix design fail: cases of flags ===&lt;br /&gt;
suckless / http://harmful.cat-v.org/software/ has similar ideas, and here's another one:&lt;br /&gt;
inconsistencies with case of flags for programs. &lt;br /&gt;
between scp -r and chown -R&lt;br /&gt;
there should be an unwritten standard where lower case is used for the most common&lt;br /&gt;
operations. kind of like how there is an unwritten standard for commands to give&lt;br /&gt;
help when you type command -h or --help. But there is none. Cases are all over the&lt;br /&gt;
place. it's a mess. simple things.&lt;br /&gt;
&lt;br /&gt;
Or perhaps all flags should be case insensitive. Is there any sane use case&lt;br /&gt;
where you'd want to be able to use both -r and -R? It's just confusing. &lt;br /&gt;
&lt;br /&gt;
If your program has 'that' many flags, that you have to go into both lower and upper case, then perhaps it's too complex.&lt;br /&gt;
I mean, you can write words. There is the double hyphen. There should only be lower case flags.&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/154599/the-difference-between-r-and-r talks about this, but has no answer. It's just a big mess. We are paying for it in pennies for eternity. Stitches in time work both ways. They can be helpful, and also harmful.&lt;br /&gt;
&lt;br /&gt;
=== Too Many Icons ===&lt;br /&gt;
[[File:Poor Icon Design.png|415px|thumb|right|Too many icons are unsettling to the user. Less is more.]]&lt;br /&gt;
See picture on right.&lt;br /&gt;
&lt;br /&gt;
=== GIMP 2.10 Icons and Theme Disaster ===&lt;br /&gt;
For reference see:&lt;br /&gt;
https://www.gimp.org/release-notes/gimp-2.10.html&lt;br /&gt;
&lt;br /&gt;
A light grey thread with colourful icons that transmit information quickly has been turned to a dark grey (read: hard to see) theme with a mass of all-looking-the-same grey icons that not only reinvent how you find the tool you wanted, it also fails to transmit information as effectively. If color tv is good, black and white is better?&lt;br /&gt;
&lt;br /&gt;
I consider this software on watch. As of now you can revert to the legacy (they call it 'legacy' instead of classic. Interesting word choice. Legacy implies depreciation. Classic implies value) so its ok, for now. But if these all-looking-the-same monochrome icons become default, it will be a regression.&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Bindings ===&lt;br /&gt;
ARM. Sounds like a good idea, except you need a different ISO for each single ARM CPU. Unlike the intel i386 which you can use one single ISO for ANY desktop/laptop.&lt;br /&gt;
&lt;br /&gt;
ARM is fail. DTB is busy work, and fail.&lt;br /&gt;
&lt;br /&gt;
This is one reason why Android is a failure.&lt;br /&gt;
&lt;br /&gt;
It looks like unfortunately that RISCV will also follow this path.&lt;br /&gt;
https://forums.sifive.com/t/will-riscv-avoid-the-linux-mainlining-mess-that-arm-had/1615&lt;br /&gt;
&lt;br /&gt;
https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont&lt;br /&gt;
&lt;br /&gt;
https://github.com/riscv/riscv-device-tree-doc&lt;br /&gt;
&lt;br /&gt;
EOMA68 devs have abandoned RISCV in favor of IBM's power CPU. Perhaps this is the right choice. RISCV may end up being not-worth-the-effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
quote&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Many embedded systems use less fancy buses that don't support enumeration. This was true on PC up to the mid-1990s, before PCI overtook ISA. Most ARM systems, in particular, have buses that don't support enumeration. This is also the case with some embedded x86 systems that don't follow the PC architecture. Without enumeration, the operating system has to be told what devices are present and how to access them. The device tree is a standard format to represent this information.&lt;br /&gt;
&lt;br /&gt;
The main reason PC buses support discovery is that they're designed to allow a modular architecture where devices can be added and removed, e.g. adding an extension card into a PC or connecting a cable on an external port. Embedded systems typically have a fixed set of devices¹, and an operating system that's pre-loaded by the manufacturer and doesn't get replaced, so enumeration is not necessary.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Well guess what - It's necessary now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Confusing Export and Subshell Inheritance ===&lt;br /&gt;
See: https://superuser.com/questions/821089/why-variables-in-shell-are-not-inherited-by-sub-shell-now-that-the-sub-shell-is&lt;br /&gt;
Export confused me for a long time. Being someone who casually scripts in bash. I guess every programming language does inheritance different, and bash is no exception. But technically, there is no 'global' keyword in bash. Which would be the simple answer to all this export and local variable nonsense. Bash can not do global variables. If the unix shell (not necessarily bash) is trying to be an entry level into programming, then it follows that there should be a simple way to make globals in bash. &lt;br /&gt;
&lt;br /&gt;
For those who are not familiar, variables created in shells, can not go to parent shells, only subshells (and only if exported) per:&lt;br /&gt;
https://stackoverflow.com/questions/1464253/global-environment-variables-in-a-shell-script  That would mean you have to create them at the very beginning of all the shells (based on the stack exchange post), which means somewhere in profile or bashrc. Probably good enough, but does not allow creating global variables anywhere but at the beginning.&lt;br /&gt;
&lt;br /&gt;
=== Android blocking external program websites such as F-Droid ===&lt;br /&gt;
This has come about recently. https://hackaday.com/2025/08/28/the-browser-wasnt-enough-google-wants-to-control-all-your-software/&lt;br /&gt;
I personally found that FDroid would break my phone if A) I rooted my phone and installed apps from there or B) I installed too many apps from there. But since I've learned that, I have only installed a few FDroid apps, and it works well. As expected from this hellscape, you can't just go installing as much apps as you would like from FDroid without it breaking your phone. But I don't like the Google Play store either (login and CC required). All in all, mobile phones are somewhat of an ugly and unholy technology. Black box modems, surveillance, THREE cameras on the back, nonreplaceable batteries (this may change in the future), impossible to do basic linux tasks without effort (SSH, SCP, install linux programs) because people can't be trusted. I generally prefer a desktop computer over a phone when possible.&lt;br /&gt;
&lt;br /&gt;
Not built to last.&lt;br /&gt;
&lt;br /&gt;
===DockeROWROWROW: Linux Containers===&lt;br /&gt;
When I first started, containers were 'that thing that some people specialized in, but no one used really'. There were some hand wavy reasons to not use containers, and I didn't worry about it. Then docker came along. Now to be fair, I don't completely dislike docker. I think it's useful in 'limited' situations. But, it is being overused. And it has serious drawbacks. It breaks often, and makes configuration/administration more difficult.&lt;br /&gt;
&lt;br /&gt;
Remember, docker is a container. It may be a cutely packaged container, but it's still a container. And that means it has all the negatives of containers. Which people seem to be overlooking.&lt;br /&gt;
&lt;br /&gt;
Docker(i.e. Containers) is/are useful for&lt;br /&gt;
* scaling large websites&lt;br /&gt;
* security&lt;br /&gt;
But it is less useful for&lt;br /&gt;
* small websites&lt;br /&gt;
* local programs (i.e. lan)&lt;br /&gt;
&lt;br /&gt;
So I guess that first impression about containers, was correct. Simple wins, again.&lt;br /&gt;
&lt;br /&gt;
See: https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/2219&lt;br /&gt;
&lt;br /&gt;
===Cron Environment===&lt;br /&gt;
This is a similar problem to the non standard flags for chown and chmod, or case sensitive flags. Here's another one. How about making it so that cron can run as a user, and include the user's environment. How many (global) hours of troubleshooting are wasted because cron was slightly different from the logged in user. This is a problem that always seems to slow me down.&lt;br /&gt;
&lt;br /&gt;
What you end up with is thousands of instances of this: https://unix.stackexchange.com/questions/797626/linux-command-does-not-run-from-crontab-but-it-runs-fine-from-the-linux-shell (this particular stack exchange is a bad example, but there are many like this. &amp;quot;runs from shell but not from cron&amp;quot;. Usually it's the environment variable, or X isn't running from cron, etc, etc. Here is a better example: https://stackoverflow.com/questions/20582224/shell-script-not-running-via-crontab-but-runs-fine-manually)&lt;br /&gt;
&lt;br /&gt;
Otherwise, cron is gold.&lt;br /&gt;
&lt;br /&gt;
====Cron Environment: Again====&lt;br /&gt;
The funny thing is, you can define this real simple.&lt;br /&gt;
&lt;br /&gt;
Cron is supposed to run as a user. So you specify the user. But, cron doesn't include all the relevant path information. So in fact, cron is not running as the user. This is subversive mind fucking troll tech. It just doesn't work. That's it. It's shit.&lt;br /&gt;
&lt;br /&gt;
====Cron Bad Design: Having 0 be an incorrect value====&lt;br /&gt;
Normal cron uses the following format for entries:&lt;br /&gt;
  # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
If you look carefully, you will find that both in the Day of the month and the Month, 0 is an incorrect value. Yet, 0 is correct for Minute, Hour, and Day of the week. &lt;br /&gt;
&lt;br /&gt;
So what happens is that you accidentally enter in a 0 for month or day of the month, and then the cron is invalid, and doesn't run at all. This is just bad design. It should run in a broken state (i.e. 0 gets converted to 1 with a warning), and not simply error out. Note that day of the week, could very well have been 1-7, yet they allowed 0, yet the did NOT allow 0 for day of month or month. This is not how a reasonable person would have designed the date entry. This seems slightly malicious. I.e. a trap.&lt;br /&gt;
&lt;br /&gt;
Regardless, you should probably have something monitoring services in case they don't run.&lt;br /&gt;
&lt;br /&gt;
===Divide and Conquer: Wayland===&lt;br /&gt;
To preface, I don't have any skin in this game. I don't care if X11 or Wayland is the display protocol, as long as it works. But this is not looking great. Read what KiCad devs have to say:https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 These problems exist because Wayland’s design omits basic functionality that desktop applications for X11, Windows and macOS have relied   on for decades—things like being able to position windows or warp the mouse cursor. This functionality was omitted by design, not  oversight.&lt;br /&gt;
&lt;br /&gt;
The fragmentation doesn’t help either. GNOME interprets protocols one way, KDE another way, and smaller compositors yet another way. As application developers, we can’t depend on a consistent implementation of various Wayland protocols and experimental extensions. Linux is already a small section of the KiCad userbase. Further fragmentation by window manager creates an unsustainable support burden. Most frustrating is that we can’t fix these problems ourselves. The issues live in Wayland protocols, window managers, and compositors. These are not things that we, as application developers, can code around or patch.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's what duck aye i says about Wayland:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Here's a list of applications that may not work or have limited functionality in Wayland:&lt;br /&gt;
&lt;br /&gt;
    NVIDIA proprietary graphics drivers: Some older NVIDIA graphics cards may not be fully compatible with Wayland, although newer cards should work fine.&lt;br /&gt;
    Screen recording software: Some screen recording software, such as OBS Studio (older versions), may not work properly in Wayland due to its reliance on X11-specific APIs.&lt;br /&gt;
    VirtualBox: VirtualBox has limited support for Wayland, and some features may not work as expected.&lt;br /&gt;
    TeamViewer: TeamViewer has known issues with Wayland, and some features may not work properly.&lt;br /&gt;
    Skype: Skype has some limitations in Wayland, such as no support for screen sharing.&lt;br /&gt;
    Steam: While Steam can run on Wayland, some games may not work properly due to their reliance on X11-specific APIs.&lt;br /&gt;
    Google Chrome and Chromium: Some versions of Google Chrome and Chromium may have issues with Wayland, such as no support for screencasting.&lt;br /&gt;
    Wine and Windows applications: Wine, a compatibility layer for running Windows applications, has limited support for Wayland.&lt;br /&gt;
    Some older or abandoned applications: Applications that rely on X11-specific APIs or are no longer maintained may not work properly in Wayland.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Those are some pretty significant names. If you break steam, you break one of the best things going for Linux at the moment.&lt;br /&gt;
Then there is the post by dedoimedo. https://www.dedoimedo.com/computers/wayland-2024.html In any case, this will be fun to watch.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* https://www.without-systemd.org/wiki/index_php/Main_Page/&lt;br /&gt;
* https://nosystemd.org/&lt;br /&gt;
&lt;br /&gt;
{{GNU\Linux}}&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Wire&amp;diff=2672</id>
		<title>Wire</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Wire&amp;diff=2672"/>
		<updated>2026-04-01T18:09:35Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Thermocouples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I love wire. Wire is one of the [[Modular Electronics]].&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
* https://www.youtube.com/watch?v=kRLDkvlm4iw - Epoxy potting a soldered auto connector. The video is mostly talking head but there is a demonstration of soldering / potting the connector. This video goes with the Race Spec PDF below.&lt;br /&gt;
* https://openwrt.org/docs/techref/hardware/port.jtag.cable.unbuffered - Reportedly, The simplest type of JTAG cable.&lt;br /&gt;
* https://openwrt.org/docs/techref/hardware/port.jtag.cables - More JTAG info.&lt;br /&gt;
&lt;br /&gt;
===Thermocouples===&lt;br /&gt;
[[File:Thermocouple builder from geocorp.mp4||100|right]]&lt;br /&gt;
* https://www.geocorpinc.com/ These folks have a business about thermocouples. The website might be a useful resource to look into. There is a thermocouple builder page, which gives graphics (of connectors) and that is well done. I made a video of the connectors to save you the time of going to their website (and in case they remove the wizard from the website). Note the smaller size of the mini connector, as well as the red colouring for the high temp version.&lt;br /&gt;
&lt;br /&gt;
==Theory==&lt;br /&gt;
===Bandwidth as a function of Distance, Frequency and Signal to Noise ratio (SNR)===&lt;br /&gt;
Per Sybex' Cabling by Barnett, Groth, and McCree (3rd Edition is what I have from the Used Book store, and it appears to be the newest) (page: 38)&lt;br /&gt;
&lt;br /&gt;
Given a fixed bandwidth:&lt;br /&gt;
* If you increase distance, you must lower frequency or increase SNR&lt;br /&gt;
* If you increase frequency, you must lower distance or increase SNR&lt;br /&gt;
* If you increase SNR, you can increase frequency or distance&lt;br /&gt;
&lt;br /&gt;
===How Fast Can 100M UTP Go?===&lt;br /&gt;
[[File:IMG 20250502 microcenter.jpg|300px|thumb|right|Price for a 50 foot CAT8 backbone cable is about $60. CAT7 cable isn't even EIA/TIA approved... Another thing to consider, is that metal shielded 8P8C connectors are much less fun to crimp than plastic. The metal is tough on hands.]]&lt;br /&gt;
I see Cat 6A going to 10GBASE-T which is 10 gigabit (reference: https://en.wikipedia.org/wiki/Category_6_cable#Category_6A)&lt;br /&gt;
&lt;br /&gt;
Cat 7 is not EIA/TIA approved (reference: https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_7), and Cat 8 is not 100M (reference: https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_8 links checked 2025-05-04).&lt;br /&gt;
&lt;br /&gt;
If it's not 100M, it doesn't count.&lt;br /&gt;
&lt;br /&gt;
==Tips/Techniques==&lt;br /&gt;
===Buy in Bulk===&lt;br /&gt;
You will save a lot of money.&lt;br /&gt;
===Look for Local Surplus of Wire===&lt;br /&gt;
I found 2000 feet of 22 gauge wire for $15 2024 prices from a local electronics recycler. Wire is one of those things that the wire factories can't stop &amp;lt;s&amp;gt;breeding&amp;lt;/s&amp;gt; producing, so there is always a lot around.&lt;br /&gt;
&lt;br /&gt;
===Wire Wrap===&lt;br /&gt;
Not a lot of modern use of wire wrap, but the small gauge wire and the cutters are useful.&lt;br /&gt;
Pretty much if you build a board with wire wrap, murphy will disconnect/cause oxidation on three wires and you'll never&lt;br /&gt;
figure out why the board doesn't work.&lt;br /&gt;
[[File:Wirewrap.png|200px|right]]&lt;br /&gt;
https://www.eevblog.com/forum/buysellwanted/lfs-cheap-wire-wrap-tool-and-sockets-(uk)/&lt;br /&gt;
https://www.eevblog.com/forum/chat/do-people-not-wire-wrap-anymore/&lt;br /&gt;
http://web.archive.org/web/20201027182555/https://jonard.com/sites/default/files/product_files/Data%20Sheet%20-%20Wrap-Strip-Unwrap%20Tool.pdf&lt;br /&gt;
&lt;br /&gt;
Compare speed wire to wire wrap. The former is a lot more reasonable, but you will still need an enclosure otherwise wires will get knocked off over time.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Wirewrap2a.jpg|Wire Wrap&lt;br /&gt;
File:Speedwire2a.jpg|Speed Wire&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Soldering Wire to a Bolt===&lt;br /&gt;
Assuming you match the metals correctly:&lt;br /&gt;
https://www.eevblog.com/forum/projects/how-to-reliably-connect-copper-wire-to-stainless-steel-bolts/msg5446019&lt;br /&gt;
Solder lugs are cheap. I bought a few for a Spot Welder I made. Of course, you can also crimp them with a ring connector (which is probably what I would recommend. Though you don't always have high current crimps (i.e. for car batteries) so in that case, you might consider a solder lug). I think also DiodeGoneWild mentioned this in one of his videos, when repairing vintage TE. I forget which one at the moment. The lesson is, you need the right hardware, don't just solder directly to a bolt.&lt;br /&gt;
[[File:Solderlug.JPG|thumb|right|200px]]&lt;br /&gt;
&lt;br /&gt;
===IDC Cable Problems===&lt;br /&gt;
https://www.eevblog.com/forum/projects/high-reliability-ribbon-cables/msg5449421/ - Digikey made cables error. No one bothered to look up the cable (they kept asking: &amp;quot;who makes it?&amp;quot;) until the 2nd page, even though info was provided.&lt;br /&gt;
&lt;br /&gt;
===Be Careful with RF Cables===&lt;br /&gt;
RF Cables can be expensive. And easily broken per Amp hour 533: https://theamphour.com/533-microwave-measurement-with-joel-dunsmore/&lt;br /&gt;
&lt;br /&gt;
===Finding a Break in a Cable===&lt;br /&gt;
A couple of resources.&lt;br /&gt;
&lt;br /&gt;
* Using a TDR to find the break. https://forum.allaboutcircuits.com/threads/using-a-time-domain-reflectometer-tdr-to-find-a-fault.110637/ (I did not read the link, but just want to post something to show there are other results out there. Use the search engine). A writeup on TDRs is in ISBN 0-7506-1601-6, METE by K. Brindley.&lt;br /&gt;
&lt;br /&gt;
* https://theamphour.com/481-an-interview-with-paul-thompson/ - This is the fellow from the amp hour whom builds electric fences. If I remember right, they discuss fault finding in wires (I think he has some custom solution to this). I'm not sure he discusses all details of how he does it, but as a reference, it should be checked.&lt;br /&gt;
&lt;br /&gt;
* https://www.youtube.com/watch?v=FOzEpJogSFg LER / Learn electronics repair. Per hackaday. He uses Capacitance. This is one of those techniques you hear about, but forget if you don't use it. So I'm leaving it here as a reference. In this example, he is comparing it to the capacitance of some other wires, which means you may need multiple conductors for this method to work. The hackaday post has some comments that are worth reading. They say the NanoVNA software can do TDR. https://hackaday.com/2025/02/15/how-to-find-where-a-wire-in-a-cable-is-broken/&lt;br /&gt;
&lt;br /&gt;
* Using a NanoVNA per https://www.eevblog.com/forum/beginners/any-tricks-for-finding-a-break-in-an-underground-wire/ https://groups.io/g/nanovna-users/topic/using_nanovna_to_detect_an/90375131&lt;br /&gt;
&lt;br /&gt;
===Spools of 20 AWG Solid BC Polyethylene Wire===&lt;br /&gt;
I was at the thrift store and found some wire used for the Innotek Electric Dog Fence, possibly. It was a spool of green 20AWG Copper wire, and it lasted me about a year. It was the best wire I've come across, and you can buy more spools of it on the auction site for about $30. However, there is some bit of gaming going on, as the new spool was not as good. I bought another one, this time labeled with Carris Reels, which was the manufacturer of the original spool I had, and that was a bit better, but still not 100%. Anyways, it was good enough. This wire was a joy to use, and I used it for all twist ties in my (mostly) ethernet work. I'm still on the search for the original wire, but that will have to wait as time and budget permits. Maybe it's actually the same. Production quality can differ of course. There are a few different search terms you can use to look for the wire, but start with Innotek Dog Wire, and you will see spools show up. You will also help in tracking visits to my blog to serve the surveillance economy. Kidding, mostly.&lt;br /&gt;
&lt;br /&gt;
I try to reuse all the wire that I 'use' as twist ties. With zip ties, that is not possible. I hate zip ties.&lt;br /&gt;
&lt;br /&gt;
===High End Wiring (Race-Spec)===&lt;br /&gt;
This webpage is about 100 pages exported as a PDF and I made it into a book on one of those online book creation services (I happen to use lulu.com). A lot of advertisements (be forewarned) but easy and light reading. Cables and [[connectors]] are tough.&lt;br /&gt;
&lt;br /&gt;
* https://www.rbracing-rsr.com/wiring_ecu.html&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Connectors#Tips.2FTechniques#Measure%20your%20Connectors/Cables]]&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Wire&amp;diff=2671</id>
		<title>Wire</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Wire&amp;diff=2671"/>
		<updated>2026-04-01T18:08:59Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Thermocouples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I love wire. Wire is one of the [[Modular Electronics]].&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
* https://www.youtube.com/watch?v=kRLDkvlm4iw - Epoxy potting a soldered auto connector. The video is mostly talking head but there is a demonstration of soldering / potting the connector. This video goes with the Race Spec PDF below.&lt;br /&gt;
* https://openwrt.org/docs/techref/hardware/port.jtag.cable.unbuffered - Reportedly, The simplest type of JTAG cable.&lt;br /&gt;
* https://openwrt.org/docs/techref/hardware/port.jtag.cables - More JTAG info.&lt;br /&gt;
&lt;br /&gt;
===Thermocouples===&lt;br /&gt;
[[File:Thermocouple builder from geocorp.mp4||100|right]]&lt;br /&gt;
* https://www.geocorpinc.com/ These folks have a business about thermocouples. The website might be a useful resource to look into. There is a thermocouple builder page, which gives graphics (of connectors) and that is useful. I made a video of the connectors to save you the time of going to their website (and in case they remove the wizard from the website). Note the smaller size of the mini connector, as well as the red colouring for the high temp version.&lt;br /&gt;
&lt;br /&gt;
==Theory==&lt;br /&gt;
===Bandwidth as a function of Distance, Frequency and Signal to Noise ratio (SNR)===&lt;br /&gt;
Per Sybex' Cabling by Barnett, Groth, and McCree (3rd Edition is what I have from the Used Book store, and it appears to be the newest) (page: 38)&lt;br /&gt;
&lt;br /&gt;
Given a fixed bandwidth:&lt;br /&gt;
* If you increase distance, you must lower frequency or increase SNR&lt;br /&gt;
* If you increase frequency, you must lower distance or increase SNR&lt;br /&gt;
* If you increase SNR, you can increase frequency or distance&lt;br /&gt;
&lt;br /&gt;
===How Fast Can 100M UTP Go?===&lt;br /&gt;
[[File:IMG 20250502 microcenter.jpg|300px|thumb|right|Price for a 50 foot CAT8 backbone cable is about $60. CAT7 cable isn't even EIA/TIA approved... Another thing to consider, is that metal shielded 8P8C connectors are much less fun to crimp than plastic. The metal is tough on hands.]]&lt;br /&gt;
I see Cat 6A going to 10GBASE-T which is 10 gigabit (reference: https://en.wikipedia.org/wiki/Category_6_cable#Category_6A)&lt;br /&gt;
&lt;br /&gt;
Cat 7 is not EIA/TIA approved (reference: https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_7), and Cat 8 is not 100M (reference: https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_8 links checked 2025-05-04).&lt;br /&gt;
&lt;br /&gt;
If it's not 100M, it doesn't count.&lt;br /&gt;
&lt;br /&gt;
==Tips/Techniques==&lt;br /&gt;
===Buy in Bulk===&lt;br /&gt;
You will save a lot of money.&lt;br /&gt;
===Look for Local Surplus of Wire===&lt;br /&gt;
I found 2000 feet of 22 gauge wire for $15 2024 prices from a local electronics recycler. Wire is one of those things that the wire factories can't stop &amp;lt;s&amp;gt;breeding&amp;lt;/s&amp;gt; producing, so there is always a lot around.&lt;br /&gt;
&lt;br /&gt;
===Wire Wrap===&lt;br /&gt;
Not a lot of modern use of wire wrap, but the small gauge wire and the cutters are useful.&lt;br /&gt;
Pretty much if you build a board with wire wrap, murphy will disconnect/cause oxidation on three wires and you'll never&lt;br /&gt;
figure out why the board doesn't work.&lt;br /&gt;
[[File:Wirewrap.png|200px|right]]&lt;br /&gt;
https://www.eevblog.com/forum/buysellwanted/lfs-cheap-wire-wrap-tool-and-sockets-(uk)/&lt;br /&gt;
https://www.eevblog.com/forum/chat/do-people-not-wire-wrap-anymore/&lt;br /&gt;
http://web.archive.org/web/20201027182555/https://jonard.com/sites/default/files/product_files/Data%20Sheet%20-%20Wrap-Strip-Unwrap%20Tool.pdf&lt;br /&gt;
&lt;br /&gt;
Compare speed wire to wire wrap. The former is a lot more reasonable, but you will still need an enclosure otherwise wires will get knocked off over time.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Wirewrap2a.jpg|Wire Wrap&lt;br /&gt;
File:Speedwire2a.jpg|Speed Wire&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Soldering Wire to a Bolt===&lt;br /&gt;
Assuming you match the metals correctly:&lt;br /&gt;
https://www.eevblog.com/forum/projects/how-to-reliably-connect-copper-wire-to-stainless-steel-bolts/msg5446019&lt;br /&gt;
Solder lugs are cheap. I bought a few for a Spot Welder I made. Of course, you can also crimp them with a ring connector (which is probably what I would recommend. Though you don't always have high current crimps (i.e. for car batteries) so in that case, you might consider a solder lug). I think also DiodeGoneWild mentioned this in one of his videos, when repairing vintage TE. I forget which one at the moment. The lesson is, you need the right hardware, don't just solder directly to a bolt.&lt;br /&gt;
[[File:Solderlug.JPG|thumb|right|200px]]&lt;br /&gt;
&lt;br /&gt;
===IDC Cable Problems===&lt;br /&gt;
https://www.eevblog.com/forum/projects/high-reliability-ribbon-cables/msg5449421/ - Digikey made cables error. No one bothered to look up the cable (they kept asking: &amp;quot;who makes it?&amp;quot;) until the 2nd page, even though info was provided.&lt;br /&gt;
&lt;br /&gt;
===Be Careful with RF Cables===&lt;br /&gt;
RF Cables can be expensive. And easily broken per Amp hour 533: https://theamphour.com/533-microwave-measurement-with-joel-dunsmore/&lt;br /&gt;
&lt;br /&gt;
===Finding a Break in a Cable===&lt;br /&gt;
A couple of resources.&lt;br /&gt;
&lt;br /&gt;
* Using a TDR to find the break. https://forum.allaboutcircuits.com/threads/using-a-time-domain-reflectometer-tdr-to-find-a-fault.110637/ (I did not read the link, but just want to post something to show there are other results out there. Use the search engine). A writeup on TDRs is in ISBN 0-7506-1601-6, METE by K. Brindley.&lt;br /&gt;
&lt;br /&gt;
* https://theamphour.com/481-an-interview-with-paul-thompson/ - This is the fellow from the amp hour whom builds electric fences. If I remember right, they discuss fault finding in wires (I think he has some custom solution to this). I'm not sure he discusses all details of how he does it, but as a reference, it should be checked.&lt;br /&gt;
&lt;br /&gt;
* https://www.youtube.com/watch?v=FOzEpJogSFg LER / Learn electronics repair. Per hackaday. He uses Capacitance. This is one of those techniques you hear about, but forget if you don't use it. So I'm leaving it here as a reference. In this example, he is comparing it to the capacitance of some other wires, which means you may need multiple conductors for this method to work. The hackaday post has some comments that are worth reading. They say the NanoVNA software can do TDR. https://hackaday.com/2025/02/15/how-to-find-where-a-wire-in-a-cable-is-broken/&lt;br /&gt;
&lt;br /&gt;
* Using a NanoVNA per https://www.eevblog.com/forum/beginners/any-tricks-for-finding-a-break-in-an-underground-wire/ https://groups.io/g/nanovna-users/topic/using_nanovna_to_detect_an/90375131&lt;br /&gt;
&lt;br /&gt;
===Spools of 20 AWG Solid BC Polyethylene Wire===&lt;br /&gt;
I was at the thrift store and found some wire used for the Innotek Electric Dog Fence, possibly. It was a spool of green 20AWG Copper wire, and it lasted me about a year. It was the best wire I've come across, and you can buy more spools of it on the auction site for about $30. However, there is some bit of gaming going on, as the new spool was not as good. I bought another one, this time labeled with Carris Reels, which was the manufacturer of the original spool I had, and that was a bit better, but still not 100%. Anyways, it was good enough. This wire was a joy to use, and I used it for all twist ties in my (mostly) ethernet work. I'm still on the search for the original wire, but that will have to wait as time and budget permits. Maybe it's actually the same. Production quality can differ of course. There are a few different search terms you can use to look for the wire, but start with Innotek Dog Wire, and you will see spools show up. You will also help in tracking visits to my blog to serve the surveillance economy. Kidding, mostly.&lt;br /&gt;
&lt;br /&gt;
I try to reuse all the wire that I 'use' as twist ties. With zip ties, that is not possible. I hate zip ties.&lt;br /&gt;
&lt;br /&gt;
===High End Wiring (Race-Spec)===&lt;br /&gt;
This webpage is about 100 pages exported as a PDF and I made it into a book on one of those online book creation services (I happen to use lulu.com). A lot of advertisements (be forewarned) but easy and light reading. Cables and [[connectors]] are tough.&lt;br /&gt;
&lt;br /&gt;
* https://www.rbracing-rsr.com/wiring_ecu.html&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Connectors#Tips.2FTechniques#Measure%20your%20Connectors/Cables]]&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=Wire&amp;diff=2670</id>
		<title>Wire</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=Wire&amp;diff=2670"/>
		<updated>2026-04-01T18:08:11Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: /* Thermocouples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I love wire. Wire is one of the [[Modular Electronics]].&lt;br /&gt;
&lt;br /&gt;
==List==&lt;br /&gt;
* https://www.youtube.com/watch?v=kRLDkvlm4iw - Epoxy potting a soldered auto connector. The video is mostly talking head but there is a demonstration of soldering / potting the connector. This video goes with the Race Spec PDF below.&lt;br /&gt;
* https://openwrt.org/docs/techref/hardware/port.jtag.cable.unbuffered - Reportedly, The simplest type of JTAG cable.&lt;br /&gt;
* https://openwrt.org/docs/techref/hardware/port.jtag.cables - More JTAG info.&lt;br /&gt;
&lt;br /&gt;
===Thermocouples===&lt;br /&gt;
* https://www.geocorpinc.com/ These folks have a business about thermocouples. The website might be a useful resource to look into. There is a thermocouple builder page, which gives graphics (of connectors) and that is useful. I made a video of the connectors to save you the time of going to their website (and in case they remove the wizard from the website).&lt;br /&gt;
[[File:Thermocouple builder from geocorp.mp4||100|right]]&lt;br /&gt;
&lt;br /&gt;
==Theory==&lt;br /&gt;
===Bandwidth as a function of Distance, Frequency and Signal to Noise ratio (SNR)===&lt;br /&gt;
Per Sybex' Cabling by Barnett, Groth, and McCree (3rd Edition is what I have from the Used Book store, and it appears to be the newest) (page: 38)&lt;br /&gt;
&lt;br /&gt;
Given a fixed bandwidth:&lt;br /&gt;
* If you increase distance, you must lower frequency or increase SNR&lt;br /&gt;
* If you increase frequency, you must lower distance or increase SNR&lt;br /&gt;
* If you increase SNR, you can increase frequency or distance&lt;br /&gt;
&lt;br /&gt;
===How Fast Can 100M UTP Go?===&lt;br /&gt;
[[File:IMG 20250502 microcenter.jpg|300px|thumb|right|Price for a 50 foot CAT8 backbone cable is about $60. CAT7 cable isn't even EIA/TIA approved... Another thing to consider, is that metal shielded 8P8C connectors are much less fun to crimp than plastic. The metal is tough on hands.]]&lt;br /&gt;
I see Cat 6A going to 10GBASE-T which is 10 gigabit (reference: https://en.wikipedia.org/wiki/Category_6_cable#Category_6A)&lt;br /&gt;
&lt;br /&gt;
Cat 7 is not EIA/TIA approved (reference: https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_7), and Cat 8 is not 100M (reference: https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_8 links checked 2025-05-04).&lt;br /&gt;
&lt;br /&gt;
If it's not 100M, it doesn't count.&lt;br /&gt;
&lt;br /&gt;
==Tips/Techniques==&lt;br /&gt;
===Buy in Bulk===&lt;br /&gt;
You will save a lot of money.&lt;br /&gt;
===Look for Local Surplus of Wire===&lt;br /&gt;
I found 2000 feet of 22 gauge wire for $15 2024 prices from a local electronics recycler. Wire is one of those things that the wire factories can't stop &amp;lt;s&amp;gt;breeding&amp;lt;/s&amp;gt; producing, so there is always a lot around.&lt;br /&gt;
&lt;br /&gt;
===Wire Wrap===&lt;br /&gt;
Not a lot of modern use of wire wrap, but the small gauge wire and the cutters are useful.&lt;br /&gt;
Pretty much if you build a board with wire wrap, murphy will disconnect/cause oxidation on three wires and you'll never&lt;br /&gt;
figure out why the board doesn't work.&lt;br /&gt;
[[File:Wirewrap.png|200px|right]]&lt;br /&gt;
https://www.eevblog.com/forum/buysellwanted/lfs-cheap-wire-wrap-tool-and-sockets-(uk)/&lt;br /&gt;
https://www.eevblog.com/forum/chat/do-people-not-wire-wrap-anymore/&lt;br /&gt;
http://web.archive.org/web/20201027182555/https://jonard.com/sites/default/files/product_files/Data%20Sheet%20-%20Wrap-Strip-Unwrap%20Tool.pdf&lt;br /&gt;
&lt;br /&gt;
Compare speed wire to wire wrap. The former is a lot more reasonable, but you will still need an enclosure otherwise wires will get knocked off over time.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Wirewrap2a.jpg|Wire Wrap&lt;br /&gt;
File:Speedwire2a.jpg|Speed Wire&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Soldering Wire to a Bolt===&lt;br /&gt;
Assuming you match the metals correctly:&lt;br /&gt;
https://www.eevblog.com/forum/projects/how-to-reliably-connect-copper-wire-to-stainless-steel-bolts/msg5446019&lt;br /&gt;
Solder lugs are cheap. I bought a few for a Spot Welder I made. Of course, you can also crimp them with a ring connector (which is probably what I would recommend. Though you don't always have high current crimps (i.e. for car batteries) so in that case, you might consider a solder lug). I think also DiodeGoneWild mentioned this in one of his videos, when repairing vintage TE. I forget which one at the moment. The lesson is, you need the right hardware, don't just solder directly to a bolt.&lt;br /&gt;
[[File:Solderlug.JPG|thumb|right|200px]]&lt;br /&gt;
&lt;br /&gt;
===IDC Cable Problems===&lt;br /&gt;
https://www.eevblog.com/forum/projects/high-reliability-ribbon-cables/msg5449421/ - Digikey made cables error. No one bothered to look up the cable (they kept asking: &amp;quot;who makes it?&amp;quot;) until the 2nd page, even though info was provided.&lt;br /&gt;
&lt;br /&gt;
===Be Careful with RF Cables===&lt;br /&gt;
RF Cables can be expensive. And easily broken per Amp hour 533: https://theamphour.com/533-microwave-measurement-with-joel-dunsmore/&lt;br /&gt;
&lt;br /&gt;
===Finding a Break in a Cable===&lt;br /&gt;
A couple of resources.&lt;br /&gt;
&lt;br /&gt;
* Using a TDR to find the break. https://forum.allaboutcircuits.com/threads/using-a-time-domain-reflectometer-tdr-to-find-a-fault.110637/ (I did not read the link, but just want to post something to show there are other results out there. Use the search engine). A writeup on TDRs is in ISBN 0-7506-1601-6, METE by K. Brindley.&lt;br /&gt;
&lt;br /&gt;
* https://theamphour.com/481-an-interview-with-paul-thompson/ - This is the fellow from the amp hour whom builds electric fences. If I remember right, they discuss fault finding in wires (I think he has some custom solution to this). I'm not sure he discusses all details of how he does it, but as a reference, it should be checked.&lt;br /&gt;
&lt;br /&gt;
* https://www.youtube.com/watch?v=FOzEpJogSFg LER / Learn electronics repair. Per hackaday. He uses Capacitance. This is one of those techniques you hear about, but forget if you don't use it. So I'm leaving it here as a reference. In this example, he is comparing it to the capacitance of some other wires, which means you may need multiple conductors for this method to work. The hackaday post has some comments that are worth reading. They say the NanoVNA software can do TDR. https://hackaday.com/2025/02/15/how-to-find-where-a-wire-in-a-cable-is-broken/&lt;br /&gt;
&lt;br /&gt;
* Using a NanoVNA per https://www.eevblog.com/forum/beginners/any-tricks-for-finding-a-break-in-an-underground-wire/ https://groups.io/g/nanovna-users/topic/using_nanovna_to_detect_an/90375131&lt;br /&gt;
&lt;br /&gt;
===Spools of 20 AWG Solid BC Polyethylene Wire===&lt;br /&gt;
I was at the thrift store and found some wire used for the Innotek Electric Dog Fence, possibly. It was a spool of green 20AWG Copper wire, and it lasted me about a year. It was the best wire I've come across, and you can buy more spools of it on the auction site for about $30. However, there is some bit of gaming going on, as the new spool was not as good. I bought another one, this time labeled with Carris Reels, which was the manufacturer of the original spool I had, and that was a bit better, but still not 100%. Anyways, it was good enough. This wire was a joy to use, and I used it for all twist ties in my (mostly) ethernet work. I'm still on the search for the original wire, but that will have to wait as time and budget permits. Maybe it's actually the same. Production quality can differ of course. There are a few different search terms you can use to look for the wire, but start with Innotek Dog Wire, and you will see spools show up. You will also help in tracking visits to my blog to serve the surveillance economy. Kidding, mostly.&lt;br /&gt;
&lt;br /&gt;
I try to reuse all the wire that I 'use' as twist ties. With zip ties, that is not possible. I hate zip ties.&lt;br /&gt;
&lt;br /&gt;
===High End Wiring (Race-Spec)===&lt;br /&gt;
This webpage is about 100 pages exported as a PDF and I made it into a book on one of those online book creation services (I happen to use lulu.com). A lot of advertisements (be forewarned) but easy and light reading. Cables and [[connectors]] are tough.&lt;br /&gt;
&lt;br /&gt;
* https://www.rbracing-rsr.com/wiring_ecu.html&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Connectors#Tips.2FTechniques#Measure%20your%20Connectors/Cables]]&lt;br /&gt;
&lt;br /&gt;
[[Category:online notes]]&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
	<entry>
		<id>http://steakwiki.com/index.php?title=File:Thermocouple_builder_from_geocorp.mp4&amp;diff=2669</id>
		<title>File:Thermocouple builder from geocorp.mp4</title>
		<link rel="alternate" type="text/html" href="http://steakwiki.com/index.php?title=File:Thermocouple_builder_from_geocorp.mp4&amp;diff=2669"/>
		<updated>2026-04-01T18:05:11Z</updated>

		<summary type="html">&lt;p&gt;ViciousCarnivore: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ViciousCarnivore</name></author>
	</entry>
</feed>