HackerLangs
TopNewTrendsCommentsPastAskShowJobs

billpg

no profile record

Submissions

8086 Segmented Memory was a good idea

owl.billpg.com
71 points·by billpg·20 hari yang lalu·148 comments

Will We Run Out of Unicodes?

owl.billpg.com
5 points·by billpg·bulan lalu·0 comments

Let's Standardize the 1970 Epoch

github.com
2 points·by billpg·bulan lalu·2 comments

Oh No! I've invented SVG badly!

owl.billpg.com
4 points·by billpg·bulan lalu·0 comments

Let's Standardize the 1970 Epoch

github.com
4 points·by billpg·2 bulan yang lalu·0 comments

Let's Measure Gravity

owl.billpg.com
2 points·by billpg·3 bulan yang lalu·3 comments

2001: A TV Series

owl.billpg.com
1 points·by billpg·3 bulan yang lalu·0 comments

Are we going to run out of Unicodes?

owl.billpg.com
2 points·by billpg·3 bulan yang lalu·0 comments

Let's Standardize the 1970 Epoch

github.com
2 points·by billpg·4 bulan yang lalu·0 comments

The Road Not Taken: A World Where IPv4 Evolved

owl.billpg.com
95 points·by billpg·4 bulan yang lalu·237 comments

"Too Clever by Half" (Thanks HN)

owl.billpg.com
2 points·by billpg·4 bulan yang lalu·1 comments

The Road Not Taken: A World Where IPv4 Evolved

owl.billpg.com
1 points·by billpg·5 bulan yang lalu·0 comments

Python's Truthiness: A Code Smell Worth Sniffing

owl.billpg.com
1 points·by billpg·5 bulan yang lalu·0 comments

Sixgate – IPv6 Without Leaving Anyone Behind

owl.billpg.com
4 points·by billpg·8 bulan yang lalu·0 comments

Python's Truthiness: A Code Smell Worth Sniffing

owl.billpg.com
2 points·by billpg·8 bulan yang lalu·0 comments

The Expanding Universe of Unicode

owl.billpg.com
2 points·by billpg·8 bulan yang lalu·0 comments

Sixgate – IPv6 Without Leaving Anyone Behind

owl.billpg.com
2 points·by billpg·8 bulan yang lalu·0 comments

Ask HN: Does anyone have scans of these missing PC Plus issues (1991–1993)?

125 points·by billpg·9 bulan yang lalu·47 comments

comments

billpg
·18 hari yang lalu·discuss
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.
billpg
·18 hari yang lalu·discuss
shrug

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.

I don't use AI to write for me. I hate people who do that.
billpg
·18 hari yang lalu·discuss
I kinda wish they had. 64k windows with no overlap would make segment registers a slightly inconvenient 32-bit address register.

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.
billpg
·18 hari yang lalu·discuss
Hi. I wrote it, and I'm a human. (Or at least I think I am.)

I did use an AI for spell-checking, punctuation, generally making it flow, but its all my text.

You think a machine is going to come up with "near pointers, far pointers, wherever-you-are pointers"?
billpg
·18 hari yang lalu·discuss
1992-author (me) is wondering if he'll ever get a girlfriend.

(And I completely agree.)
billpg
·18 hari yang lalu·discuss
Why would you ever want a single 64k object? That's like an entire machine's worth of memory!
billpg
·20 hari yang lalu·discuss
Indeed, I say as much at the end.

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.

A system with 64k sized windows seems unavoidable.

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.

An 8080 mode might have worked but that would have been expensive.
billpg
·bulan lalu·discuss
Thanks, and that POSIX link is exactly the one I expected someone to bring up.

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.

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.

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".
billpg
·bulan lalu·discuss
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.

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.

10000000 00000000 is the only way to represent 128.

10000000 10000000 00000000 is the only way to represent 16512.

Does this encoding have a name?
billpg
·2 bulan yang lalu·discuss
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.
billpg
·3 bulan yang lalu·discuss
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.

Switching on a machine that displays "9.8m/s²" isn't that much removed from looking it up in a book.
billpg
·3 bulan yang lalu·discuss
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.
billpg
·4 bulan yang lalu·discuss
It's a cookbook!
billpg
·4 bulan yang lalu·discuss
An earlier draft had a section discussing how IPv4x would work with NAT routers. Essentially, an IPv4x packet would be a UDP/IPv4 packet using a port number (84) that's been allocated to IPv4x.

Old routers would be a normal UDP packet inside a normal IPv4 and route it normally. New routers would detect UDP port 84 and treat it as an extended IPv4x packet.

I took all that out because I wasn't writing a proposal for something we should actually implement in the real world, but an alternate history "What if people who wanted IPv4 but with extra space got their way" and the story was already too long.
billpg
·4 bulan yang lalu·discuss
le sigh

Thanks though. Your comment really cheered me up.
billpg
·4 bulan yang lalu·discuss
"I bet one _could_ accelerate IPv6 deployment a lot by have a standard ..."

ahem

https://owl.billpg.com/sixgate/
billpg
·4 bulan yang lalu·discuss
Yes. The router in your home would absolutely need to support IPv4x if you wanted to make use of the extended address space, just like how in the real world your home router needs to support NAT if you want to make use of shared IP.
billpg
·4 bulan yang lalu·discuss
My point is that we're still dependent on IPv4. For all the progress IPv6 has made, no-one is willing to switch IPv4 off yet. Until we do, we're still constrained by all the problems IPv4 has.
billpg
·4 bulan yang lalu·discuss
Until you would happily deploy a service on IPv6 only, I suggest that you're still dependent on IPv4.
billpg
·4 bulan yang lalu·discuss
You'd happily deploy a website for use by the general public on IPv6-only?