<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>shitpost &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/shitpost/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Mon, 16 Mar 2026 20:34:30 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>shitpost &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Some esoteric versioning schemes (monotonic moronity)]]></title>
		<link>https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/</link>
					<comments>https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 12 Feb 2025 12:34:33 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[shitpost]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=58043</guid>

					<description><![CDATA[Since time immemorial, software has had version numbers.  A developer releases V1 of their product. Some time later, they add new features or fix bugs, and release the next version.  What should that next version be called? Modern software broadly bifurcates into two competing standards; SemVer and CalVer.  SemVer  Semantic Versioning is usually in the form 1.2.3, the last digit is usually for…]]></description>
										<content:encoded><![CDATA[<p>Since time immemorial, software has had version numbers.  A developer releases V1 of their product. Some time later, they add new features or fix bugs, and release the next version.</p>

<p>What should that next version be called? Modern software broadly bifurcates into two competing standards; <code>SemVer</code> and <code>CalVer</code>.</p>

<h2 id="semver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#semver">SemVer</a></h2>

<p><strong>Sem</strong>antic <strong>Ver</strong>sioning is usually in the form <code>1.2.3</code>, the last digit is usually for minor bug fixes, the second digit for new functionality, and the primary digit for big and/or breaking changes.</p>

<p>The semantics are <em>pretty</em> loose. There's no real consensus on when a new "primary" number should be issued. There are two main weaknesses:</p>

<ol>
<li>The numbers might not be decimals. Is <code>V1.29</code> newer or older than <code>V1.3</code>?</li>
<li>There's no semantic information about <em>when</em> the software was released.</li>
</ol>

<p>Which leads us to…</p>

<h2 id="calver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#calver">CalVer</a></h2>

<p><strong>Cal</strong>endar <strong>Ver</strong>sioning is, ironically, more semantic than SemVer. The version number is the date when the software was released.  For example, Ubuntu releases are in the form of <code>YY.MM</code> - the latest stable release at the time of writing is <code>24.04</code> - so we can tell that it was released in April 2024.</p>

<p>There are three main problems with this approach.</p>

<ol>
<li>ISO8601 or GTFO! Surely these should use <code>YYYY-MM</code> to make it obvious this is a date?</li>
<li>Minor bug fixes are often given a release number like <code>24.04.1</code> - is that still obvious it is date-based? Was it really released on the 1st of April?</li>
<li>No information about big and/or breaking changes. Software released several years apart may be functionally identical whereas software released days apart may be incompatible.</li>
</ol>

<h2 id="alternatives"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#alternatives">Alternatives</a></h2>

<p>So, what other ways can we number software versions?</p>

<h3 id="effver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#effver">EffVer</a></h3>

<p><a href="https://jacobtomlinson.dev/effver/"><strong>Eff</strong>ort <strong>Ver</strong>sioning</a> is, I think, a sensible way to standardise SemVer. It attempts to show how much effort it takes to move between versions.</p>

<h2 id="pridever"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#pridever">PrideVer</a></h2>

<p><a href="https://mastodon.online/@nikitonsky/113691789641950263">How much Pride</a> do you have in your software release?</p>

<p>This is SemVer for people with an ego and the coding chops to match.</p>

<h3 id="ruffver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#ruffver">RuffVer</a></h3>

<p><a href="https://docs.astral.sh/ruff/versioning/">Ruff</a> is a sort of bastard child between SemVer and CalVer, but adds this delightful complication:</p>

<blockquote><p>Stable releases use even numbers in minor version component: <code>2024.30.0</code>, <code>2024.32.0</code>, <code>2024.34.0</code>, … Preview releases use odd numbers in minor version component: <code>2024.31.0</code>, <code>2024.33.0</code>, <code>2024.35.0</code>, …</p></blockquote>

<p>It's the versioning equivalent of setting up a fully scalable cloud database and hand-chiselling HTML out of stone for the cookery blog you update twice per year.</p>

<h3 id="0ver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#0ver">0Ver</a></h3>

<p><a href="https://0ver.org/"><strong>Zero</strong>-based <strong>Ver</strong>sioning</a> tells us that it is forbidden to ask and a sin to know when a piece of software will be completed.</p>

<p>Essentially, it is SemVer for cowards who are afraid to commit.  The opposite of <a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#PrideVer">PrideVer</a>.</p>

<h3 id="piver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#piver">PiVer</a></h3>

<p>The venerable TeX uses <a href="https://www.preethamrn.com/posts/piver"><strong>Pi</strong> <strong>Ver</strong>sioning</a>.  The current version is <code>3.141592653</code>, the next version will be <code>3.1415926535</code>.</p>

<p>As the software gets refined, it gradually reaches a state of perfection. This is a charming versioning scheme which shouldn't be used by anyone other than Knuth lest hubris overtake you!</p>

<h3 id="namever"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#namever">NameVer</a></h3>

<p>Sometimes marketing takes the reins and insists that consumers need a <strong>Name</strong>d <strong>Ver</strong>sion to help prevent confusion.</p>

<p>Ubuntu uses things like <code>Bionic Beaver</code>, <code>Distinct Dropbear</code>, and <code>Mantic Minotaur</code>. By convention, names increase alphabetically, so you should know that <code>Jaundiced Jackdaw</code> is before <code>Killer Kangaroo</code> - until you've released 26 version and have to wrap around the alphabet again.</p>

<p>NameVer is helpful for <em>distinct</em> products which aren't related, but probably more confusing than necessary.</p>

<h3 id="winver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#winver">WinVer</a></h3>

<p>Microsoft Windows uses this <em>very</em> logical scheme - 1, 2, 3, 3.11, 98, 2000, Me, XP, Vista, 7, 8, 10, 11.</p>

<p>It starts with more-or-less SemVer, then jumps to CalVer, then 4 digit CalVer, then to NameVer, then back to SemVer - <a href="https://www.engadget.com/2014-10-01-windows-10-9-naming-rumor.html">skipping 9 because of alleged technical reasons</a>.</p>

<p>Do not attempt to use this versioning unless you want to anger <em>both</em> gods and mortals.</p>

<h3 id="kelver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#kelver">KelVer</a></h3>

<p>Absolute Zero is defined as 0K. And so, <a href="https://rybl.net/software-engineering/2022/06/08/kelvin-versioning.html#kelver"><strong>Kel</strong>vin <strong>Ver</strong>sioning</a> counts <em>down</em> to stability.</p>

<p>Almost the opposite of <a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#PiVer">PiVer</a> - the closer this gets to zero, the closer the code is to being complete.</p>

<p>This versioning scheme is affront to most sane people. But here's to the crazy ones.</p>

<h2 id="non-monotonic"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#non-monotonic">Non-Monotonic</a></h2>

<p>You will notice that all of the above are <em>monotonic</em>. That is, they all proceed in one direction and never reverse. Any subsequent version was <em>definitely</em> released later than a previous version.  So, in a sense, they all contain <em>some</em> level of semantics.</p>

<p>But they don't have to.</p>

<h3 id="hashver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#hashver">HashVer</a></h3>

<p>Taking the Cryptographic Hash of the code, or a commit, allows one to create  <strong>Hash</strong> <strong>Ver</strong>sioning. For example <a href="https://github.com/termux/termux-app/commit/43317b78c920a48254f8846f5e14b5f873faa271"><code>43317b7</code></a> is a HashVer for something which would otherwise have the dull and unworthy name of v0.118.1</p>

<p>But, of course, a hash does have a <em>modicum</em> of semantic information - even if it is only loosely related to the content of the code.  What if there were something with <em>no</em> semantics and <em>no</em> monotonic behaviour!?!?</p>

<h3 id="randver"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#randver">RandVer</a></h3>

<p>Embrace the weird with <strong>Rand</strong>om <strong>Ver</strong>sioning!  It its heart, <a href="https://nedbatchelder.com/blog/202305/scriv_on_test_code.html">RandVer</a> says pick any number that hasn't been used before.</p>

<p>Perhaps <code>V7</code> is followed by <code>V2.5</code>, which is overtaken by <code>V0xDEADBEEF</code></p>

<p>Absolutely guaranteed to have zero semantic content.</p>

<h2 id="what-have-we-learned-today"><a href="https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/#what-have-we-learned-today">What have we learned today?</a></h2>

<p>The square-root of bugger-all.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=58043&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/02/some-esoteric-versioning-schemes-monotonic-moronity/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[What's the point of a pub?]]></title>
		<link>https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/</link>
					<comments>https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 23 Jan 2025 12:34:51 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[shitpost]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=55381</guid>

					<description><![CDATA[The UK is going through one of its periodic lamentations that &#34;Things Are Changing And No One Asked Me&#34;. This time, it is over the loss of the humble British pub.  It seems every year there&#039;s another story about how pubs are vanishing. Cue the wailing and gnashing of teeth as the Fabric Of Society™ is rent asunder.  To which I say &#34;Good riddance. Most pubs are shit and deserve to go.&#34;  Let me e…]]></description>
										<content:encoded><![CDATA[<p>The UK is going through one of its periodic lamentations that "<a href="https://www.ftrain.com/wwic">Things Are Changing And No One Asked Me</a>". This time, it is over <a href="https://www.theguardian.com/business/2024/dec/30/number-of-pubs-in-england-and-wales-falls-below-39000-for-first-time">the loss of the humble British pub</a>.</p>

<p>It seems every year<sup id="fnref:year"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:year" class="footnote-ref" title="Seriously. This story is an annual tradition" role="doc-noteref">0</a></sup> there's <a href="https://www.bbc.co.uk/news/business-43492043">another story about how pubs are vanishing</a><sup id="fnref:kill"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:kill" class="footnote-ref" title="Although they never seem to be entirely killed off." role="doc-noteref">1</a></sup>. Cue the wailing and gnashing of teeth as the Fabric Of Society™ is rent asunder.</p>

<p>To which I say "Good riddance. Most pubs are shit and deserve to go."</p>

<p>Let me explain. It is quite clear that the majority of the population<sup id="fnref:maj"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:maj" class="footnote-ref" title="Me? I bloody love pubs. There's nothing like finding a snug little table in a charmingly decorated historic building, where I can try a wide variety of interesting ales, while chatting to my friends…" role="doc-noteref">2</a></sup> do not find pubs to have a compelling value proposition.</p>

<p>Here's all the way pubs are crap:</p>

<ul>
<li>Expensive. For the same price as one pint in a pub, I can buy <em>several</em> cans from a supermarket.</li>
<li>Alcoholic. <a href="https://bmcpublichealth.biomedcentral.com/articles/10.1186/s12889-022-14760-y">Lots of young people don't drink</a>. Many people are cutting down on their booze. Why go somewhere which will only reluctantly serve you a lemonade? Of course, with alcohol comes…</li>
<li>Violence. I remember walking past a pub in Brighton which had bouncers on its doors at lunch-time.  Drunk people can be aggressive. That also leads to…</li>
<li>Unwanted sexual attention. Pubs can be fundamentally unsafe - whether its spiking drinks, groping, or being relentlessly flirted with. They often don't feel like welcoming environments.  And, if you are in the market for a date, you are more likely to get a consenting friend via a dedicated app rather than hoping to bump into someone.</li>
<li>Noisy. Everyone says they want to socialise - so why does your pub blare out music at full volume from a jukebox which hasn't been updated since the last century<sup id="fnref:music"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:music" class="footnote-ref" title="Because loud music makes you drink faster." role="doc-noteref">3</a></sup>?</li>
<li>Grim. Sticky floors, filthy toilets, wobbly tables. My living room is just a much more pleasant environment.</li>
<li>Feel free to supply your own further reasons.</li>
</ul>

<p>To which the pub connoisseur has a mini episode of "<a href="https://knowyourmeme.com/memes/am-i-so-out-of-touch">No, it is the children who are wrong</a>" and convinces themselves that there's nothing wrong with pubs.  They are, of course, imagining their idealised pub where the gruff old Landlord greats you with a nod, a buxom barmaid has already started pulling you a pint of your usual, and - goodness! - isn't that your old mate Dave in the corner?!</p>

<p>The reality is you walk in to a noisy bar, the air stinks of sweat, as you struggle to get the attention of the bored barman a fella taps you on the shoulder and growls "D'y'wanna buy some meat? It isn't stolen!"</p>

<p>Here's the thing. The customer is <em>always</em> right. If people aren't going to your establishment because they don't like it - you can't force them.</p>

<p>Lots of pubs are changing. They're offering more non-alcoholic options, they host social events during the day, they serve decent food, and attempt to keep the toilets clean.</p>

<p>But...</p>

<p>If I want decent food, I'll go to a restaurant - or get a takeaway.  If I want some interesting beers, I can buy them online.  If I want to meet up with friends, I send a message on the group chat.  If I want to socialise, I go to a place where I won't be leered at and it doesn't stink of stale beer and farts. If I want to watch the football, I can do so at home on a bigger screen without the risk of the local psychopath giving me aggro for looking at him funny.</p>

<p>Whenever I <a href="https://bsky.app/profile/edent.tel/post/3leji322hp223">rant about this online</a> I get the usual pub-bores telling me I'm wrong. Apparently pubs are the cornerstone of the community (even though no one goes there any more) and more like a delightful social club (even though there are better options for socialising) and the combined Meat Raffle / Pub Quiz is what makes us <em>truly</em> British.</p>

<p>That's a load of old bollocks though, isn't it?</p>

<p>As I said<sup id="fnref:fn"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:fn" class="footnote-ref" title="If you'd bothered to read the footnotes." role="doc-noteref">4</a></sup>, I love going to decent pubs. What I can't stand is going to a decrepit or soulless hole where the only drinks on offer are generic larger and bottled cider, where the vegetarian option is being told to fuck off, and the entertainment is watching the pickpockets try their luck.</p>

<p>But, frankly, it doesn't matter what I like. Fashions ebb and flow. The <a href="https://www.walesonline.co.uk/news/wales-news/milk-bars-consigned-past-1905320">Milk Bars of the 1960s</a> are little more than a memory. No one has visited a video arcade since the 1990s. The village baker gave way to the cheaper supermarket loaf.</p>

<p>Sorry pubs, you had a good run. The choice was "adapt or die". Seems like lots of you chose… poorly.</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:year">
<p>Seriously. This story is <a href="https://www.bbc.co.uk/news/business-62031833">an annual tradition</a>&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:year" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:kill">
<p>Although they never seem to be entirely killed off.&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:kill" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:maj">
<p>Me? I bloody love pubs. There's nothing like finding a snug little table in a charmingly decorated historic building, where I can try a wide variety of interesting ales, while chatting to my friends the whole night through.&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:maj" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:music">
<p>Because loud music makes you drink faster.&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:music" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:fn">
<p>If you'd bothered to read the footnotes.&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:fn" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=55381&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/feed/</wfw:commentRss>
			<slash:comments>42</slash:comments>
		
		
			</item>
	</channel>
</rss>
