<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: billpg</title><link>https://news.ycombinator.com/user?id=billpg</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 20 Aug 2026 18:21:28 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=billpg" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Ask HN: Redirect-to-www on a dot-dev domain?]]></title><description><![CDATA[
<p>I've just purchased a dot-dev domain from Namecheap who I've used before and been very happy with.<p>I set my domain up to use "www" as a CNAME to a static-file web service and the apex domain as a redirector to that "www" site. Done it before, works great!<p>But then it didn't work so well. The "www" site was working fine exactly as I wanted, but that apex domain redirect wasn't working. I kept getting a connection-refused error. Huh?<p>Worked through the possibilities, I finally found the problem. Namecheap's redirector service was only running on port 80. For my dot-com, that was no problem, but my dot-dev domain, like all dot-dev, are flagged as TLS only. My browser was refusing to connect to port 80!<p>I'm now looking at possibilities for an alternate redirect-to-www service that works over TLS.<p>Any suggestions for my next move please?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49068668">https://news.ycombinator.com/item?id=49068668</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 27 Jul 2026 12:25:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=49068668</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=49068668</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49068668</guid></item><item><title><![CDATA[Oh no I've invented SVG badly]]></title><description><![CDATA[
<p>Article URL: <a href="https://owl.billpg.com/on-no-ive-invented-svg-badly/">https://owl.billpg.com/on-no-ive-invented-svg-badly/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48968786">https://news.ycombinator.com/item?id=48968786</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 19 Jul 2026 15:02:40 +0000</pubDate><link>https://owl.billpg.com/on-no-ive-invented-svg-badly/</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48968786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48968786</guid></item><item><title><![CDATA[Am I worried AI will take my job?]]></title><description><![CDATA[
<p>Article URL: <a href="https://owl.billpg.com/am-i-worried-ai-will-take-my-job/">https://owl.billpg.com/am-i-worried-ai-will-take-my-job/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48956304">https://news.ycombinator.com/item?id=48956304</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 18 Jul 2026 08:49:41 +0000</pubDate><link>https://owl.billpg.com/am-i-worried-ai-will-take-my-job/</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48956304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48956304</guid></item><item><title><![CDATA[New comment by billpg in "8086 Segmented Memory was a good idea"]]></title><description><![CDATA[
<p>I once developed for PC-GEOS, which wanted all memory in exactly 8K sized blocks. I wrote a set of C macros that presented an array-of-arrays as a single collection by using mod/divide operations on the index.</p>
]]></description><pubDate>Tue, 23 Jun 2026 17:03:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48647956</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48647956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48647956</guid></item><item><title><![CDATA[New comment by billpg in "8086 Segmented Memory was a good idea"]]></title><description><![CDATA[
<p><i>shrug</i><p>I've reviewed what I originally wrote and I prefer the text I published. Sure, I could review it all myself (indeed I used to) but that takes time and it was becoming a barrier to actually publishing stuff. Maybe I'd have got around to  finishing it in a few months.<p>I don't use AI to write for me. I hate people who do that.</p>
]]></description><pubDate>Tue, 23 Jun 2026 16:54:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48647808</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48647808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48647808</guid></item><item><title><![CDATA[New comment by billpg in "8086 Segmented Memory was a good idea"]]></title><description><![CDATA[
<p>I kinda wish they had. 64k windows with no overlap would make segment registers a slightly inconvenient 32-bit address register.<p>I get why hey didn't. Someone might want to run two processes each with its own segment, but the whole machine might only have 64k in total.</p>
]]></description><pubDate>Tue, 23 Jun 2026 14:53:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48645973</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48645973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48645973</guid></item><item><title><![CDATA[New comment by billpg in "8086 Segmented Memory was a good idea"]]></title><description><![CDATA[
<p>Hi. I wrote it, and I'm a human. (Or at least I think I am.)<p>I did use an AI for spell-checking, punctuation, generally making it flow, but its all my text.<p>You think a machine is going to come up with "near pointers, far pointers, wherever-you-are pointers"?</p>
]]></description><pubDate>Tue, 23 Jun 2026 14:50:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48645909</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48645909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48645909</guid></item><item><title><![CDATA[New comment by billpg in "8086 Segmented Memory was a good idea"]]></title><description><![CDATA[
<p>1992-author (me) is wondering if he'll ever get a girlfriend.<p>(And I completely agree.)</p>
]]></description><pubDate>Tue, 23 Jun 2026 13:34:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48644748</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48644748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48644748</guid></item><item><title><![CDATA[New comment by billpg in "8086 Segmented Memory was a good idea"]]></title><description><![CDATA[
<p>Why would you ever want a single 64k object? That's like an entire machine's worth of memory!</p>
]]></description><pubDate>Tue, 23 Jun 2026 13:30:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48644681</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48644681</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48644681</guid></item><item><title><![CDATA[New comment by billpg in "8086 Segmented Memory was a good idea"]]></title><description><![CDATA[
<p>Indeed, I say as much at the end.<p>But what should Intel have done? They needed a CPU that can run 8080 code but with more memory. Also it's the year ~1980 and we're limited to the technology of the age.<p>A system with 64k sized windows seems unavoidable.<p>If you extend the size of the address registers, 8080 code will only run in the first 64k, or require some kind of current window  register.<p>An 8080 mode might have worked but that would have been expensive.</p>
]]></description><pubDate>Sun, 21 Jun 2026 14:46:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48619422</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48619422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48619422</guid></item><item><title><![CDATA[8086 Segmented Memory was a good idea]]></title><description><![CDATA[
<p>Article URL: <a href="https://owl.billpg.com/8086-segmented-memory-was-a-good-idea-almost/">https://owl.billpg.com/8086-segmented-memory-was-a-good-idea-almost/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48619125">https://news.ycombinator.com/item?id=48619125</a></p>
<p>Points: 71</p>
<p># Comments: 148</p>
]]></description><pubDate>Sun, 21 Jun 2026 14:07:11 +0000</pubDate><link>https://owl.billpg.com/8086-segmented-memory-was-a-good-idea-almost/</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48619125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48619125</guid></item><item><title><![CDATA[Will We Run Out of Unicodes?]]></title><description><![CDATA[
<p>Article URL: <a href="https://owl.billpg.com/the-expanding-universe-of-unicode/">https://owl.billpg.com/the-expanding-universe-of-unicode/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48334522">https://news.ycombinator.com/item?id=48334522</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 30 May 2026 09:57:32 +0000</pubDate><link>https://owl.billpg.com/the-expanding-universe-of-unicode/</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48334522</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48334522</guid></item><item><title><![CDATA[New comment by billpg in "Let's Standardize the 1970 Epoch"]]></title><description><![CDATA[
<p>Thanks, and that POSIX link is exactly the one I expected someone to bring up.<p>The key point is that POSIX does not actually define a real, physical epoch, and it explicitly avoids doing so. POSIX says every day is exactly 86400 seconds, leap seconds are ignored, the relationship between POSIX time and UTC is unspecified. In other words, POSIX defines how the "time()" API behaves, not what the underlying timeline is. It’s an OS level contract, not a timekeeping standard.<p>The problem I’m addressing is that POSIX retroactively assumes a form of UTC that didn’t exist in 1970–1971 and it provides no authoritative mapping between POSIX time and actual UTC. That’s why you can’t use POSIX as a normative reference for "seconds since 1970". It’s not a definition of time, it’s a behavioural model for system clocks.<p>This document is trying to define the actual timeline that people implicitly assume when they say "Unix timestamp", in a way that’s historically honest and citable. When I was looking at a number of RFCs that use these timestamps they didn't cite this reference, but went with the wooly "Number of seconds since 1970".</p>
]]></description><pubDate>Fri, 29 May 2026 17:02:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48326001</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48326001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48326001</guid></item><item><title><![CDATA[Let's Standardize the 1970 Epoch]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/billpg/1970EpochalTime/">https://github.com/billpg/1970EpochalTime/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48325409">https://news.ycombinator.com/item?id=48325409</a></p>
<p>Points: 2</p>
<p># Comments: 2</p>
]]></description><pubDate>Fri, 29 May 2026 16:26:20 +0000</pubDate><link>https://github.com/billpg/1970EpochalTime/</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48325409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48325409</guid></item><item><title><![CDATA[New comment by billpg in "Bijou64: A variable-length integer encoding"]]></title><description><![CDATA[
<p>I forget where I encountered it, but I've seen similar encodings that eliminated the possibility of many possible encodings for the same number by making the length part of the value.<p>Values 0-127 are a single byte, but if that first byte has the continuation bit set, not only does that indicate the next byte has 7 more bits to contribute, it also moves the base up to the next window.<p>10000000 00000000 is the only way to represent 128.<p>10000000 10000000 00000000 is the only way to represent 16512.<p>Does this encoding have a name?</p>
]]></description><pubDate>Fri, 29 May 2026 16:21:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48325332</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48325332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48325332</guid></item><item><title><![CDATA[Oh No! I've invented SVG badly!]]></title><description><![CDATA[
<p>Article URL: <a href="https://owl.billpg.com/on-no-ive-invented-svg-badly/">https://owl.billpg.com/on-no-ive-invented-svg-badly/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48319732">https://news.ycombinator.com/item?id=48319732</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 29 May 2026 06:26:54 +0000</pubDate><link>https://owl.billpg.com/on-no-ive-invented-svg-badly/</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48319732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48319732</guid></item><item><title><![CDATA[New comment by billpg in "Make ZIP files smaller with ZIP Shrinker"]]></title><description><![CDATA[
<p>Do any formats using ZIP as the underlying format use ZIP comments for metadata? Unless there's a lot of compressors leaving "Zip file generated by MySuperZipper™" then I imagine any comments left were probably done for a good reason.</p>
]]></description><pubDate>Tue, 19 May 2026 11:06:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48191776</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48191776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48191776</guid></item><item><title><![CDATA[Let's Standardize the 1970 Epoch]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/billpg/1970EpochalTime/">https://github.com/billpg/1970EpochalTime/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48062332">https://news.ycombinator.com/item?id=48062332</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 08 May 2026 12:51:23 +0000</pubDate><link>https://github.com/billpg/1970EpochalTime/</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=48062332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48062332</guid></item><item><title><![CDATA[New comment by billpg in "Let's Measure Gravity"]]></title><description><![CDATA[
<p>True, but I wanted this to be something anyone could do with equipment they might already have lying around and also get a feel for what gravity is actually doing.<p>Switching on a machine that displays "9.8m/s²" isn't that much removed from looking it up in a book.</p>
]]></description><pubDate>Wed, 22 Apr 2026 08:35:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47860762</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=47860762</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47860762</guid></item><item><title><![CDATA[New comment by billpg in "XOR'ing a register with itself is the idiom for zeroing it out. Why not sub?"]]></title><description><![CDATA[
<p>I had a similar reaction when learning 8086 assembly and finding the correct way to do `if x==y` was a CMP instruction which performed a subtraction and set only the flags. (The book had a section with all the branch instructions to use for a variety of comparison operators.) I think I spent a few minutes experimenting with XOR to see if I could fashion a compare-two-values-and-branch macro that avoided any subtraction.</p>
]]></description><pubDate>Wed, 22 Apr 2026 08:01:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47860516</link><dc:creator>billpg</dc:creator><comments>https://news.ycombinator.com/item?id=47860516</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47860516</guid></item></channel></rss>