On Sat, Nov 20, 2010 at 5:05 AM, Richard Hartmann <richih.mailinglist@gmail.com> wrote:
On Fri, Nov 19, 2010 at 23:52, William Herrin <bill@herrin.us> wrote:
I thought about that. Have a "one colon rule" that IPv6 addresses in hexidecimal format have to include at least one colon somewhere. The regex which picks that token out versus the other possibilities is easy enough to write and so is the human rule: "Oh, it's got hexidecimal digits and a colon in it. IPv6 address."
this would still make it hard for humans to detect an IPv6 address at a glance, makes it impossible to quickly pick out any sections that are more relevant at the moment
Which is why you wouldn't conventionally remove the colons even though the format would allow it. You might, however, move the colons to highlight the delineations relevant to a particular address rather than the meaningless two-byte separation. For example: 260:abcde:123456:98::1 260 - IANA to ARIN, a /12 abcde - ARIN to ISP, a /32 123456 - ISP to customer, a /56 98 - customer subnet ::1 - LAN address fd:1234567890:abcd::1 fd - ULA space 1234567890 - ULA global ID abcd - user subnet ::1 - LAN address Instead of this meaning-filled separation, we have: 260a:bcde:1234:5698::1 which doesn't tell us a single helpful thing about how that address is organized. The only thing the colons do there is make it easier to blindly transcribe, like the dashes in a CD license key.
and would hog the colon for all eternity, blocking it for other uses. Also, this would make adding a port even more cumbersome.
I've written more than a few parsers. I think your concern here is overstated.
Anything you call out will be interpreted as special. The more you call it out, the greater the expectation that the distinction is important. That's human nature.
Pattern recognition is a central part of our intelligence, so yes, it's human nature. This is not necessarily a bad thing.
The way you talk about something trains people how that thing works. Train them poorly and it's your fault when their mistaken mental model results in errors.
I mean, when you think about it, the consequence that :: means "all middle two-byte components are zero" is kinda weird.
It's a commonly accepted, well-defined convention to save humans effort while not sacrificing readability. There are weirder things in technology.
I have no beef with the the notion of abbreviations. I'm just saying this particular formulation is weird, a consequence of a poorly thought-out notation format.
And even more efficiently when we don't have to repeatedly explain that the mental model implied by the notation style is, in fact, not how the technology actually works.
If the person can grasp what a bit vector is, they will understand. If they don't, they will not understand it anyway and I won't waste time trying to explain it in depth. At least as of right now, you are giving those people some middle ground which allows them to have a good working knowledge to use IPv6 reliably without needing this level of involvement.
It helps if the notation style reminds them that they're dealing with a bit vector. IPv6 is better about this than IPv4; at least the colons aren't separating portions of the bit pattern expressed in base-10. But it could be better. Fixed separations get folks thinking there's a higher significance. Movable separations offers a constant reminder that it is just a bit vector.
No sweat. When I shoot my mouth off, I expect to be challenged on the remarks. Part of the fun lies in discovering whether the thesis is defensible.
For at least a few rounds, I am usually good for that, too. Personally, I think I answered the implicit question above, but it made me re-asses and re-think my personal & professional opinion on quite a few things and that's a Good Thing, from time to time.
A value I also find when I'm on the receiving end. :)
PS: Yes, I am fully aware that my complete email is moot anyway as the IPv6 syntax will not change, ever. I wrote it for fun :)
Yep. However, there is one thing that could be done at this juncture: intentionally don't name the two-byte groupings. And then make that a part of the lesson plan: by the way folks, these groupings of four characters in the IPv6 address intentionally have no name. That's because the IPv6 address is a bit vector. The colons are only there to make it easier to read and type; the groupings have no significance. Regards, Bill Herrin -- William D. Herrin ................ herrin@dirtside.comĀ bill@herrin.us 3005 Crane Dr. ...................... Web: <http://bill.herrin.us/> Falls Church, VA 22042-3004