00:00:17 <kmc> so we use rules of thumb and generous margins
00:00:22 <int-e> b_jonas: that, and partial cable breaks (which also have locally higher resistance)
00:01:43 * int-e is reminded of the ingenuity of halogen light bulbs.
00:03:02 <b_jonas> int-e: I love those, despite all the problems they cause
00:03:11 <kmc> > For these reasons, the USB-IF has established USB Type-C™ Authentication (C-AUTH)—a means for authenticating devices and thereby protecting against data tampering and illicit use. The USB PD standard implements C-AUTH through use of a public key infrastructure (PKI) which is a time-proven approach in the Internet world. We will not go into details of PKI implementation here; we will simply note that
00:03:14 <lambdabot> <hint>:1:18: error: parse error on input ‘,’
00:03:17 <kmc> C-AUTH starts when an initiator (laptops, tablets, etc.) reads out a certificate chain from a responder (cable, AC adapter, etc.). Notice that the process can cover the cables as well as the sources and sinks, allowing for systems to be configured at a high level of safety.
00:03:21 <kmc> so that does sound pretty proprietary
00:03:29 <kmc> it's 2019 and your power cables are performing cryptographic authentication
00:03:29 <b_jonas> they burn out more easily than traditional bulbs if the lamp is shaking, and use a higher temperature so you have to be careful with what socket you put them into
00:03:53 <int-e> (Light bulbs are, of course, little wires, which are uneven. So they have a pretty awful feedback loop: as they get hotter, the metal evaprates, making the wire thinner, hence hotter.) In halogen bulbs, the wire is covered with a compound of tungsten and some halogen, that breaks down when it gets too hot, depositing metal on the wire, fixing it (for a while)...
00:04:10 <int-e> so they can operate reliably at higher temperatures than ordinary lightbulbs.
00:04:38 <int-e> (Don't necessarily trust me on the details, I'm working from memory here.)
00:04:40 <kmc> yeah thermal runaway is a problem
00:04:47 <kmc> it also occurs in bipolar junction transistors
00:06:25 <b_jonas> int-e: right, that's why the wire is made of tungsten in traditional bulbs, because it keeps well in high temperatures
00:07:29 <pikhq> Isn't that the one where they managed to pull in fucking ASN.1?
00:07:46 <pikhq> i.e. in the search for security they have, I am confident, guaranteed more vulnerabilities.
00:08:39 <ais523> I'm curious as to why people hate ASN.1 so much
00:08:45 <ais523> is it the concept, or just the details?
00:09:10 <ais523> (I'm reminded of me complaining about Language Server Protocol a while back; I love the idea and hate at least most of the details)
00:09:47 <pikhq> It's more-or-less protobuf, except defined in the 80s by telecom engineers.
00:10:56 <pikhq> It also isn't a single serialization format, it's _several_.
00:11:12 <kmc> also because implementations are notoriously bad
00:11:32 <pikhq> Yeah, but then, the formats are pretty tricky to implement
00:11:42 <int-e> Wasn't protocol buffers that awful thing where you can supply data fields in an arbitrary order, and even several times? This is just begging to be used to exfiltrate data...
00:11:47 <kmc> speaking of impossible to implement protocols
00:11:57 <kmc> my new phone seems to be at least *better* at bluetooth
00:12:08 <kmc> in that it can play to my speaker without skipping
00:12:52 <int-e> The main criticism about ASN.1 that I've heard is that it's, apparently, awfully complex. I have never really delved into it.
00:13:39 <pikhq> int-e: It is awfully complex.
00:14:17 <pikhq> It's designed by telecom engineers, and the assumption is there would be a very small handful of vetted implementations everything would use.
00:15:20 <ais523> presumably this predates the current explosion of programming languages?
00:16:04 <pikhq> In practice, ASN.1 seems to get people doing hack implementations of the subset of whatever encoding format their particular application absolutely forces them to implement.
00:16:05 <ais523> hmm, I think there were still quite a few languages around at that time
00:16:36 <pikhq> How many of them were used by telecoms people?
00:17:24 <ais523> I have no idea, I can't think of /any/ offhand
00:17:41 <int-e> Hmm 1984 is too early for Erlang
00:17:45 <ais523> when does Erlang date from? it would have been appropriate if it existed at the time
00:18:02 <int-e> (I just looked that up)
00:18:54 <ais523> apparently the first Erlang implementation was written by a telecom company in Prolog
00:19:04 <ais523> so at least one telecom company was presumably using Prolog in 1984
00:19:18 <ais523> (they subsequently had to abandon that impl because it was too slow; if they were using a general Prolog, I'm not surprised)
00:19:21 <int-e> https://en.wikipedia.org/wiki/PLEX_(programming_language) is a thing
00:19:25 <int-e> (Also Ericson. Funny.)
00:19:25 <kmc> https://www.youtube.com/watch?v=xrIjfIjssLE
00:19:28 <kmc> Erlang: The Movie
00:19:48 <kmc> RIP Joe Armstrong :(
00:23:44 <ais523> is **bolded text** in Markdown semantically <strong> or <b>? does it need some way to indicate both tags?
00:25:09 <ais523> hmm, MDN's description of when to use <b> over <strong> doesn't convince me, I would use <i> in those cases
00:25:57 <ais523> fwiw, *italic text* in Markdown is nearly always used for <i> not <em>
00:27:01 <ais523> (the semantic difference between <i> and <em> is fairly easy to understand once you know it: <em> is audible when spoken, <i> isn't)
00:27:12 <kmc> interesting
00:29:12 <ais523> so you use <i> for things like foreign words, terms you're defining, and the like; and <em> to indicate words which are stressed more than their position in the sentence would normally imply
00:29:42 <kmc> there are CSS attributes for spoken pages, right?
00:31:10 <int-e> "terms you're defining" -- I think I *would* stress them when reading definitions out loud.
00:31:42 <ais523> hmm, maybe <em> is correct for those then
00:32:12 <zzo38> Also sometimes you may be using a program without CSS to view, and some don't include any CSS attributes for speech even if they are for otherwise.
00:33:23 <zzo38> I also think someone mentioned CSS has commands to check if it is interlace or progressive video, but such thing does not seem to me it would belong for CSS; but the command to check for mono or colour seem like useful.
00:34:18 <kmc> that's an interesting one
00:34:26 <kmc> perhaps there are some animations that would not look right with interlacing
00:34:30 <kmc> or perhaps it's just for completeness sake
00:34:35 <kmc> can you detect the display refresh rate?
00:35:10 <ais523> kmc: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/update-frequency
00:35:14 <ais523> apparently only qualitatively
00:35:15 <kmc> how about the color depth
00:35:55 <kmc> ais523: that's cool
00:36:10 <ais523> kmc: you have a choice there: bits-per-channel, color gamut, or absolute number of colors
00:36:19 <ais523> (the latter's for paletted devices)
00:36:30 <kmc> is CSS always sRGB
00:37:44 <ais523> it supports "rgb", "rgba", "hsl", "hsla", it doesn't appear to list a color space?
00:37:49 <ais523> I hate it so much when programs do that
00:38:03 <ais523> I even wrote a blog post about it: http://nethack4.org/blog/gamma.html
00:38:05 <int-e> https://developer.mozilla.org/en-US/docs/Web/CSS/@media/light-level ... wow
00:38:25 <zzo38> For videos, it seem to me that whether it is interlace or progressive, and refresh rate, and so on, would be part of the video selection and not relevant for CSS, I should think.
00:38:41 <zzo38> Is there a command in CSS to select a colour by index number rather than by RGB?
00:38:48 <kmc> that's interesting int-e
00:38:51 <kmc> most phone can sense that
00:38:53 <kmc> i wonder if they use it
00:39:00 <kmc> "This code will likely not work on any devices (device compatablility is low)."
00:39:09 <ais523> I was about to quote that too :-)
00:39:13 <kmc> also I guess it's a draft
00:39:35 <zzo38> (for indexed colour displays, it would be useful to ensure the colours are different from each other, since otherwise it might use the same colour for many things since it is the closest colour)
00:40:13 <zzo38> Also, can any web browser have option to pretend to have a slower update frequency than it actually does?
00:40:57 <ais523> it would be easy enough to implement that
00:41:06 <ais523> I don't think many people would use it, except possibly for testing
00:41:35 <kmc> for the ambient light thing it actually suggests that browsers should have controls to set it manually
00:41:38 <kmc> for accessibility
00:43:05 <pikhq> Looks like modern CSS allows you to explicitly specify a colorspace for color values, but it's with a special uncommonly used syntax.
00:43:34 <pikhq> If you don't use that, and instead use the "rgb", "rgba", "hsl", and "hsla" color things, it's interpreted as an sRGB value.
00:43:57 <zzo38> Also, it says that Media Queries 4 deprecated some media queries, some of that I think may be useful to have. (I think you probably can use "screen" instead of "tv", "projection", and "handheld", but "tty" and "braille" seems like useful to have separately, I think.)
00:44:02 <int-e> kmc: it's an interesting thought nontheless.
00:44:20 <kmc> media type: stone tablet
00:44:39 <kmc> media type: tattoo
00:44:40 <pikhq> But e.g. color(rec2020 1 1 1); is white in Rec.2020.
00:45:06 -!- Sgeo__ has joined.
00:45:07 <pikhq> You can also import an ICC value with it, and use the colorspace defined there.
00:45:34 <kmc> is css esoteric
00:45:46 <ais523> that's bizarre, why would you need a complex colorspace when /encoding/ a color for CSS?
00:46:23 <ais523> the complexity should normally be on the decode side, because that's what knows the properties of the screen or other display device
00:46:39 <ais523> the only thing I can think of is cases where you need more than three color channels
00:46:40 <pikhq> This is in addition to letting you explicitly state a color in Lab.
00:47:01 <kmc> but can I explicitly state an emission spectrum
00:47:22 <ais523> stating an emission spectrum would probably be incorrect, you're encoding to be seen by humans
00:47:30 <zzo38> For tattoo, I suppose you could use "print", maybe.
00:47:41 <ais523> so what you really want to be able to state is the subjective experience of colour you want people to be able to perceive when they look at your colour
00:48:13 <int-e> ais523: 4 channels to accomodate red-green color blindness?
00:48:42 <kmc> what about tetrachromats!
00:48:56 -!- Sgeo_ has quit (Ping timeout: 272 seconds).
00:48:59 <int-e> Specifying an emission spectrum has a certain charm. Of course, most hardware just won't accomodate that.
00:49:07 <zzo38> What I want to be able to specify is a colour by index number. (If not supported, the other colour specification would be used.)
00:49:10 <ais523> there are some printers that use six colours of ink
00:49:14 <kmc> we should be able to specify subjective colors for different species
00:49:20 <kmc> some animals can detect polarization of light
00:49:23 <kmc> such as cephalopods
00:49:24 <int-e> And what if your website is supposed to attract bees :)
00:49:35 <ais523> kmc: even humans, if wearing sunglasses
00:49:40 <kmc> this is true
00:49:41 <b_jonas> and different angles of view, and differnt tinted glasses, yes
00:49:43 <kmc> and a little bit if not?
00:49:44 <int-e> (I was thinking ultraviolet, but polarization is a great idea as well.)
00:49:51 <b_jonas> also different lighting if it's printed media
00:49:55 <zzo38> My character Ziveruskex can see five colours rather than three, but they don't have a computer machine so it is not a problem
00:50:10 <ais523> being able to produce circularly polarised output would be useful in showing 3D images
00:50:12 <kmc> also there should be support for making regions of the screen reflective
00:50:20 <int-e> b_jonas: oh yes, we can finally distinguish between transparent and reflective windows then
00:50:24 <ais523> kmc: that's just black
00:50:29 <b_jonas> zzo38: don't they at least have illustrations drawn on paper in ink?
00:50:44 <ais523> most screens are naturally somewhat reflective due to being made of glass, and the reflections are more visible if you don't show anything behind them
00:50:46 <kmc> devices which do not support turning parts of the screen into mirrors can emulate it using the front-facing camera
00:50:47 <zzo38> ais523: Yes, I suppose so. Maybe there could be the "3d" command for such purpose?
00:50:55 <kmc> ais523: have you seen the "magic mirror" projects?
00:51:04 <zzo38> b_jonas: Perhaps, but it is just a fictional character anyways.
00:51:09 <kmc> it's a computer screen mounted behind a half-silvered mirror
00:51:11 <int-e> (That's echoing old joke... somebody was saying that they don't see the point in transparent windows. But they would like to have reflective windows so that they could see what's going on behind them.)
00:51:23 <kmc> https://www.makeuseof.com/tag/6-best-raspberry-pi-smart-mirror-projects-weve-seen-far/
00:51:44 <kmc> so it looks like a regular mirror but you can draw stuff on top (light-colored only, I guess)
00:51:50 <kmc> looks pretty damn futurey
00:51:54 <ais523> oh wow, I'm rereading this blog post I wrote and got reminded of ODA
00:52:01 <zzo38> One thing that it seem that only Mozilla has so far is, to select default foreground/background colours by CSS codes. That way you could have reverse video without having to override the user's background/foreground colour settings
00:52:33 <ais523> CSS isn't eso mostly because it's too widely used
00:52:38 <b_jonas> zzo38: that's mozilla only, really?
00:52:45 <ais523> ODA, on the other hand, seems absolutely insane to a modern audience
00:52:57 <zzo38> b_jonas: I think so, but I don't know
00:53:08 <kmc> ais523: C++ is also widely used, yet it's definitely eso
00:53:22 <b_jonas> ais523: it's not widely used because you get a small selection of colors. you don't get extra colors for, like, error messages or anything, and you can't just make them red because that could clash with the default colors. so the safest method is to set the color of everything.
00:53:34 <kmc> what's ODA?
00:53:46 <b_jonas> you get the foreground, background, link, visited link, and a few more stuff like colors in controls
00:54:11 <ais523> kmc: suppose you're trying to work on a common format for word processors to share information, you have identical goals to HTML
00:54:18 <zzo38> b_jonas: That is why I want to have the ability to specify the index numbers for colours rather than RGB.
00:54:31 <zzo38> (If index numbers are used, then they won't clash)
00:54:31 <ais523> but HTML hasn't been invented yet (nor have SGML/XML), nor has the Internet (so you're thinking mostly in terms of editing printed documents)
00:54:39 <int-e> https://en.wikipedia.org/wiki/Open_Document_Architecture?
00:54:41 <ais523> so instead, you attempt to generalise VT100 control codes
00:55:05 <ais523> the project started in 1985 but wasn't finished until 1999, by which point it was completely out of date and nobody used it
00:56:12 <b_jonas> ais523: wouldn't everyone just use wordstar format?
00:56:33 <ais523> b_jonas: there was a format explosion at the time, ODA was an attempt to fix the problem
00:56:39 <ais523> it'd probably have worked if it had been written a bit faster
00:57:03 <ais523> or, hmm, Wikipedia thinks it was doomed to failure anyway
00:57:11 <int-e> Now why am I thinking of jigsaw in this context? Is there a connection or is it just misfiring synapses?
00:57:25 <ais523> because the idea was imposed top-down in Europe and the American word processor manufacturers liked their lock-in
00:57:56 <zzo38> Is ODA less messy than HTML and CSS?
00:58:11 <b_jonas> ais523: it's not just about lock-in. hardware was less capable, and it was harder to write good software back then.
00:58:17 <ais523> zzo38: I don't think so
00:58:22 <int-e> "generalize VT100 control codes" sounds like a recipe for making a horrible mess.
00:58:35 <ais523> I ended up having to read part of the ODA standard because it was referenced by a different standard
00:58:38 <kmc> it's also very not-declarative
00:58:52 <kmc> it's a weird little machine for updating a terminal state in-place
00:59:19 <b_jonas> kmc: does it at least only go from top to bottom so it can be printed easily?
00:59:33 <ais523> I guess my horror at ODA is that you've got this huge complex document format, and when it gets right down to the lowest level, bold text is still represented as ESC [ 1 m
00:59:35 <int-e> Probably feels like more like driving an old dot matrix printer (which is something I've actually done) :)
00:59:40 <b_jonas> so you need like only one line of buffer?
01:00:02 <ais523> b_jonas: even Ecma-48 is pretty out-of-order capable
01:00:30 <zzo38> I like DVI printing format
01:00:33 <int-e> . o O ( switch to this mode, then we submit some data, then we switch out and to another mode, print some more data, and all hell will break loose if the output terminal is 132 instead of 80 characters wide )
01:00:35 <ais523> and suggests codes for a sort of meta-editing where you edit the codes that get sent to the lower level which actually produces the output (and is capable of moving around within that)
01:00:57 <ais523> there's an old computer monitor next to me at the moment
01:01:08 <ais523> it /still/ has a guide to control codes for a particular model of printer taped to it
01:01:38 <ais523> underlined was ESC - l, apparently
01:01:47 <ais523> (these don't seem to be standardised codes, at least they're different from VT100)
01:02:02 <ais523> oh, it's probably a 1 rather than an l
01:02:03 <fizzie> I was going to have #esoteric logged to a dot matrix printer with a tractor feed once, for æsthetic reasons.
01:02:09 <ais523> they're not very different in the font used for the guide
01:02:24 <zzo38> The printer codes are ESC/P which is different from the VT100 codes for the display
01:03:10 <int-e> Oh good old times. Consumer hardware that came with manuals that actually told you how to program it. (And those were not 100s of pages.)
01:03:59 <ais523> I think the printer manual I got the codes from was probably hundreds of pages
01:04:26 <ais523> <ais523> (Incidentally, there's something faintly mind-blowing about there having been around 14 years of effort spent on attempting to implement HTML using terminal control codes.)
01:04:44 <int-e> It might have been, because it was also printed in several languages, now that I think of it.
01:05:57 <kmc> s/effort/bickering/
01:06:39 <ais523> hmm, ODA seems like it's definitely the most appropriate thing to use for INTERCAL manuals
01:06:59 <b_jonas> int-e: not int he same volume, I think. at least the manual that I had for the epson matrix printer was only in Hungarian. it even had a few typos in control sequences exactly of the kind you expect from a translated book before digital typography, when the typesetter doesn't quite understand what the book is about
01:07:02 <zzo38> int-e: It is how I intend to design computer, that the manual does describe all of the programming.
01:07:07 <ais523> complying with standards that nobody else complies with is more or less the most modern-INTERCAL thing possible
01:07:14 <int-e> ais523: t(?)roff isn't obscure enough?
01:07:16 <b_jonas> like an occasional 1 instead of l or backwards and similar
01:07:38 <ais523> NetHack still uses it seriously
01:07:45 <ais523> and it's still the backend for man(1)
01:08:04 <ais523> b_jonas: that's not necessarily a lack of subject matter knowledge
01:08:22 <ais523> these are completely arbitrary codes, you often can't guess whether l or 1 is correct if you don't already know even if you know all the context and are an expert on the subject
01:08:35 <b_jonas> ais523: sure you can guess. how else would I have recognized the typoes?
01:08:40 <b_jonas> there may be more that I didn't recognizer
01:08:53 <ais523> well, I guessed 1 in this case just because the "end underline" code used a 0 in that position
01:08:58 <b_jonas> admittedly it has _fewer_ such typoes than the Hungarian translation of the K&R book
01:09:02 <b_jonas> that one is much more terrible
01:09:29 <b_jonas> I think at one point they mixed up whether you need a \000 or a 0 for a boolean
01:09:39 <ais523> Ecma-48 is a bit better in this respect, it has a very clear grammar to allow you to ignore unknown codes correctly
01:10:02 <b_jonas> like, they show both ascii and hex of the bytes in the control sequence, and the ascii shows 0 and the hex shows 00
01:10:02 <ais523> and 1 and l are in completely different lexical classes, so using one rather than the other will nearly always make the code grammatically incorrect
01:10:12 <b_jonas> although now it occurs to me that maybe only the lowest bit matters
01:10:48 <ais523> are you talking about printer codes? I guess you must be because C didn't have booleans at the time
01:11:03 <b_jonas> they take booleans like you mention
01:11:17 <b_jonas> unlike the ecma-like codes which use "h" and "l"
01:11:30 <b_jonas> or, for attributes, just different numbers
01:11:39 <b_jonas> 20 higher to turn off the attribute or something
01:12:46 <ais523> saying "h" and "l" is wrong, I think; Ecma-48 gives the byte sequences to send purely using hexadecimal, there's not much suggestion that it should correspond to anything in ASCII
01:13:16 <ais523> the only reason ASCII /might/ be the correct way to interpret characters after ESC is the suspicious coincidence that numbers are sent in decimal using 0x30…0x39 as decimal digits
01:13:28 <b_jonas> the K&R translation has a typo related to the \000 character too by the way: the reference implementation source of the fgets function wants '\n' at the end of the string rather than 0
01:14:35 <b_jonas> ais523: well ok, but it's intermixed with ordinary character data, and sometimes, when a program parses the more complicated escape sequences wrong, the bytes of an escape sequence can end up interpreted as ordinary characters
01:14:53 <b_jonas> that more often happens at the receiving end, for a program parsing keyboard input that a terminal gives to it
01:14:57 <b_jonas> but it can happen either way
01:15:33 <ais523> "and sometimes, when a program parses the more complicated escape sequences wrong, the bytes of an escape sequence can end up interpreted as ordinary characters" ← Ecma-48 is really well-designed so that that absolutely cannot happen, the only time you see it is when terminal developers completely ignore the standard's information on what the grammar of terminal codes is
01:16:20 <ais523> I get the feeling that most terminal developers don't even realise that, say, = is a digit in Ecma-48 (because it's in the 0x3? range)
01:16:41 <b_jonas> ais523: it happens often for keyboard input with terminfo+ncurses programs, because it basically only tries to match literal sequences to the escape codes representing the keyboard input (except maybe some rules with the mouse)
01:17:01 <b_jonas> and happens with other programs too with generic terminal input handling (not ecma-specific in theory)
01:17:31 <b_jonas> I do realize that, I know my ascii table
01:18:19 <zzo38> I also think that any CSS media type you should also be allowed to specify continuous or paged media. For example, you might have a presentation that is screen but also paged, or if you use continuous paper then it will be print but also continuous.
01:18:23 <ais523> parsing a terminal code in Ecma-48 is completely trivial and most of the people who don't check the standard probably have more complex code to do it than the code the standard actually wants
01:18:24 <b_jonas> ais523: also, a few of the control characters are interpreted the same when they're inside an escape sequence and when they're not, which also shows that they're supposed to be the same character space
01:18:31 <ais523> at least, for codes starting CSI
01:18:51 <kmc> zzo38: that's a very good point
01:19:07 <b_jonas> ais523: yes, but the problem is that terminfo and many other programs don't even try to parse ecma-48 codes, they try to work with arbitrary terminals, even non-ecma based ones
01:19:31 <ais523> b_jonas: there's actually two layers, a decoding layer that goes bytes → codepoints and then Ecma-48 below that which mostly operates on the codepoints (but the decoding layer leaves, e.g., CSI-sequences the same so that they stay untouched)
01:19:46 <ais523> the decoding layer is in an entirely separate standard, and that explains why some things work consistently regardless of context
01:20:04 <ais523> the decoding layer is widely disrespected nowadays, though, because it is inconsistent with most encodings in widespread use
01:20:09 <b_jonas> in particular, termbot had joe compiled to DOS, with some mild changes by me, and that one parses DOS keycodes, not ecma, but knows nothing about either, just has the literal sequences in the config file
01:20:15 <ais523> e.g. it isn't compatible with Windows-1252 nor with UTF-8
01:20:57 <ais523> so I ended up having to work out my own standard for mixing it with modern encodings when I wrote the bytes → codepoints layer for asciinema
01:21:59 <ais523> hmm, does anyone actually use UTF-1? it's the traditional-terminal-decoding-layer-compatible Unicode encoding
01:22:51 <ais523> https://en.wikipedia.org/wiki/UTF-1
01:23:08 <b_jonas> I know about UTF-7, which is an encoding of unicode chars with only low bytes, and is used in MIME headers and mobile phone contact list export formats
01:23:22 <ais523> it's a multibyte encoding system that's sort-of ASCII compatible (ASCII characters encode to themselves but encodings of other characters can contain embedded ASCII) and avoids both the C0 and C1 ranges
01:23:55 <ais523> trying to make terminal standards work with modern encodings is hard because they both try to use C1 for different purposes
01:24:34 <ais523> so in practice, what happened is that there are fallback codes specified for 7-bit connections that let you encode all the C1 codes using C0 codes, and terminals support /only/ those so that the C1 range can be used for things like UTF-8
01:25:14 <b_jonas> yeah, but didn't those fallback codes basically always exist, because terminal io was sometimes sent through 7-bit serial/modem connections?
01:25:16 <kmc> let's use UTF-20.1 or whatever it is
01:25:43 <ais523> kmc: it goes from 0x0 to 0x10ffff (21 bits would be 0x1fffff)
01:25:51 <kmc> having those C0 and C1 codes in the bottom 256 codepoints is such a waste of space :(
01:26:30 <kmc> ais523: but subtract 2048 values for surrogate pairs
01:26:32 <ais523> I'm not convinced, many of those codes are pretty important
01:26:35 <kmc> which are not valid Unicode codepoints
01:26:35 <ais523> OTOH, many of them aren't
01:26:39 <kmc> most of them aren't
01:27:05 <kmc> which C0 points are widely used
01:27:15 <ais523> `perl-e print 0x10ffff
01:27:24 <ais523> `perl-e print 0x10ffff - 2048
01:27:39 <ais523> I don't want to subtract 2048, 1114111 is a much prettier number
01:27:42 <kmc> 00 (NULL), 07 through 0D (the ones with C escapes), and 1B (escape)
01:27:49 <kmc> that is a pretty number
01:27:54 <ais523> also there are a few other miscellaneous invalid codes, like the byte-reversed byte order mark
01:27:55 <b_jonas> kmc: no, that's not what's the waste. it's having very rare scripts in the low 2048 codepoints is what's a waste. though ais told me that was a historical accident, because the code points were assigned before utf-8 was invented.
01:28:08 <kmc> b_jonas: it's all historical accidents
01:28:18 <kmc> they at one point naïvely thought they could encode everything in 16 bits
01:28:37 <kmc> let's go back to baudot
01:28:44 <kmc> baudot is still used sometimes in ham radio
01:28:54 <ais523> it doesn't scale very well to adding new characters
01:29:14 <kmc> https://www.sigidwiki.com/wiki/Radio_Teletype_(RTTY)
01:29:20 <kmc> this is still fairly popular
01:29:26 <kmc> one day I picked up a Japanese RTTY contest from my house
01:29:29 <kmc> tons of RTTY traffic
01:29:51 <zzo38> I think Unicode is messy. (I partially wrote (and altered) a document of Universal Terminal Character Coding, which is better for use with fix pitch displays without semantic character coding for displayed characters. Some of the characters are in Unicode, some have a ambiguous conversion to Unicode, some have a ambiguous conversion from Unicode, and some are not in Unicode at all.)
01:29:59 <ais523> `fetch http://nethack4.org/esolangs/7/7.pl
01:30:00 <HackEso> 2019-07-20 01:30:00 URL:http://nethack4.org/esolangs/7/7.pl [23458/23458] -> "7.pl" [1]
01:30:12 <HackEso> 7.pl \ bin \ canary \ emoticons \ esobible \ etc \ evil \ f \ factor \ good \ hw \ ibin \ interps \ izash.c \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quinor \ quotes \ share \ src \ test2 \ testfile \ tmflry \ tmp \ wisdom
01:30:29 <HackEso> mv: missing destination file operand after '7.pl interps/7' \ Try 'mv --help' for more information.
01:31:11 <zzo38> (And, some characters, if you convert to Unicode you need multiple Unicode characters to represent it.)
01:31:27 <ais523> `` printf '#!/bin/sh\necho "$1" | interps/7/7.pl /dev/stdin' > ibin/7
01:31:44 <ais523> `` chmod a+x interps/7/7.pl
01:32:03 <ais523> `! 7 5325101303040432004513151401430134321027403
01:32:18 <ais523> (I got the program off TIO, thus the weird capitalisation)
01:32:19 <b_jonas> ais523: shouldn't that have an exec in it?
01:32:31 <ais523> b_jonas: I guess it would be marginally more efficient?
01:32:38 <ais523> i don't think there's a correctness difference
01:32:53 <ais523> also, the fact that I'm using an anonymous pipe here might confuse things
01:33:06 <ais523> because the echo and the 7.pl may have to run in parallel
01:33:18 <b_jonas> I think it would make the exit code correct even if the interpreter dies to a signal
01:33:28 <b_jonas> but yeah, that probably doesn't matter
01:34:25 <ais523> kmc: try translating 32 51 01 30 30 40 43 20 04 51 31 51 40 14 30 13 43 21 02 from base 6 into binary, you'll get hello world in Baudot
01:34:34 -!- Sgeo_ has joined.
01:34:51 <ais523> so there is some use being made of it nowadays, admittedly in esolangs
01:34:57 <kmc> what lang?
01:35:03 <ais523> https://esolangs.org/wiki/7
01:35:41 <ais523> when Donald Knuth wrote an INTERCAL program, he used three-letter names for line labels via baudot-encoding them into 15-bit numbers
01:35:59 <b_jonas> kmc: it's ais's underload-like that, instead of using parenthesis, uses levels of escaping values to such functions that output that value, or something strange like that
01:36:22 <ais523> b_jonas: the original aim was "Underload but you could generate /any/ string even if its brackets weren't matched"
01:36:26 <ais523> then it got a little out of control
01:36:42 <b_jonas> the escaping part somewhat reminds me to Endo DNA
01:37:00 <b_jonas> well, my original aim for Consumer Society wasn't what it eventually turned to
01:37:18 <b_jonas> but it somehow converged into a language with very simple definition but interesting properties, which is why it survived
01:37:31 <b_jonas> I have other ideas that I haven't managed to turn to interesting esolangs
01:37:46 -!- Sgeo__ has quit (Ping timeout: 246 seconds).
01:38:10 <ais523> it tends to do well on CG&CC when it's outputting constant strings, because it's pretty good at it (Baudot's a pretty dense encoding) and it lets you do some pretty complex explanations of string literals sometimes
01:38:43 <ais523> here's a good example: https://codegolf.stackexchange.com/questions/183248/output-the-%c5%8bar%c3%a2%c3%be-cr%c3%ae%c3%be-alphabet-song-without-using-many-letters
01:42:18 <kmc> what happens if I plug a USB A-to-C cable into my C charger and then plug the male A into my laptop
01:42:34 -!- Sgeo has joined.
01:44:04 -!- Sgeo_ has quit (Ping timeout: 246 seconds).
01:44:11 <fizzie> Then, there would be a disaster.
01:44:53 <fizzie> (I'm guessing probably it's safe. That sentence just popped to my mind. It's a quote from a book.)
01:45:48 <kmc> which book
01:46:42 <fizzie> Look to Windward, by Iain M. Banks. It's not really related contextually, and the quotation was slightly edited.
01:47:51 <fizzie> Context: http://ix.io/1OX1
01:48:00 <kmc> god, it must be such a nightmare to make all these different USB standards work together
01:48:10 <kmc> including the proprietary USB2 quick charge protocols
01:48:17 <kmc> the Pixel 3a seems to support at least some of those
01:48:28 <ais523> 7 is very good at writing quines of varying levels of cheatiness
01:48:29 <kmc> because I can plug it into a USB-A port and get more than 0.5A
01:48:53 <kmc> and I think this A charger port does not do actual USB-PD, although I have heard that can be done in theory
01:49:01 <HackEso> 2237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237
01:49:18 <fizzie> There's that BC thing as well, right?
01:49:29 <HackEso> 323'copy' command run with no bar in the frame at interps/7/7.pl line 607, <> chunk 1.
01:49:36 <HackEso> 'copy' command run with no bar in the frame at interps/7/7.pl line 607, <> chunk 1.
01:49:49 <ais523> oh right, the stack underflow happens at the wrong moment
01:49:58 <ais523> 3 exits the program on stack overflow but nothing else does
01:50:12 <ais523> other than the end of the program
01:50:19 <ais523> so you need to time the stack underflow so that it hits in a 3 command
01:50:21 <fizzie> ("that BC thing" = USB Battery Charging Revision 1.2.)
01:50:33 <kmc> fizzie: I don't know anything about that
01:50:43 <kmc> I don't know about the different USB2 fast charge things
01:50:50 <ais523> 223372233 is uncontroversially a valid quine
01:50:51 <kmc> just that they are complicated hacks
01:51:01 <fizzie> "To recognize Battery Charging, a dedicated charging port places a resistance not exceeding 200 Ω across the D+ and D− terminals." That doesn't sound too complicated.
01:51:06 <ais523> no, it isn't, the second 2233 is using itself to print both halves
01:51:19 <kmc> fizzie: there are more complicated ones
01:51:30 <ais523> you'd need the second half to read the /first/ half twice
01:51:52 <kmc> fizzie: https://en.wikipedia.org/wiki/Quick_Charge
01:51:59 <ais523> that one's an uncontroversially valid quine
01:52:18 <kmc> fizzie: ah, this is what I read about it http://blog.deconinck.info/post/2017/08/09/Turning-a-Quick-Charge-3.0-charger-into-a-variable-voltage-power-supply
01:53:35 <fizzie> I guess the problem with USB BC 1.2 is that it only goes up to 1.5A at 5V, which isn't really all that much.
01:54:08 <kmc> there's a nice state machine that looks like a butterfly
01:54:19 <kmc> fizzie: yeah
01:54:40 <kmc> you need more than 5V to fast charge anything laptop/tablet-ish
01:55:18 <kmc> my laptop charges at 20V, whether from USB-C or the dedicated brick
01:55:36 <kmc> I guess that also simplifies the power circuitry, although if it's going into a buck converter, probably doesn't matter that much
01:56:14 <kmc> I'm glad I got this USB3 meter. it is fun
01:57:47 <kmc> you can buy a soldering iron that runs from USB3
01:57:53 <kmc> https://www.amazon.com/UY-CHAN-Programmable-Pocket-size-Soldering/dp/B07G71CKC4
01:58:06 <kmc> s/USB3/USB-PD/
01:59:58 <kmc> the Pixel 3a battery life is not as good as my Moto G5+, which was really exceptionally good
02:02:41 <ais523> `perl-e print 0x10ffff - 2048 - 66
02:02:49 <ais523> that's not too bad-looking a number
02:03:04 <ais523> (in addition to the 2048 surrogates, there are 66 codepoints in range that are invalid for other reasons)
02:04:08 <ais523> FDD0 to FDEF were reserved for programs to use internally, knowing that they'd never clash with any valid codepoint
02:04:20 <ais523> also, any codepoint ending …FFFF or …FFFE is invalid
02:04:56 <ais523> (0xFFFE being the most famous, because it's a byte-swapped 0xFFEF, and if a byte-swapped byte-order-mark could appear at the start of a file that'd be /really/ bad)
02:07:22 <kmc> oh, interesting
02:08:16 <zzo38> In some programs 0 will not be valid either.
02:08:43 <kmc> they've started to do some weird things with combining characters
02:08:49 <j4cbo> take a drink for “modified UTF-8”
02:08:54 <kmc> such as https://emojipedia.org/transgender-flag/
02:08:58 <ais523> I like the UTF-8 fake NUL character
02:09:00 <int-e> . o O ( r/aell/yb da )
02:09:17 <kmc> is this "Emoji 13.0" spec part of Unicode?
02:09:54 <ais523> there should probably be a proper, official name for the encoding that's UTF-8 except that NUL is encoded as C0 80 rather than 00
02:10:11 <zzo38> It is simply a overlong encoding for NUL
02:10:26 <j4cbo> ais523: JNI calls it modified UTF-8
02:10:31 <ais523> ("modified UTF-8" has the problem that it encodes astral plane characters by splitting them into surrogates and UTF-8ing the surrogates separately…)
02:10:38 <j4cbo> JNI does that too yeah
02:10:54 <j4cbo> I’ve never heard of something that uses overlong null but doesn’t do the surrogate thing?
02:10:57 <kmc> WHITE FLAG followed by "MALE WITH STROKE AND MALE AND FEMALE SIGN" (:rolleyes:)
02:11:07 <kmc> there's also WTF-8
02:11:15 <kmc> https://simonsapin.github.io/wtf-8/
02:11:17 <kmc> is that the same?
02:11:22 <ais523> j4cbo: nor have I, but that doesn't mean it's a bad idea
02:11:47 <zzo38> WTF-8 is just another use of UTF-8, that supports encoding lone surrogates.
02:11:49 -!- xkapastel has joined.
02:12:07 <zzo38> (WTF-8 is useful if you want to convert UTF-16 to UTF-8.)
02:12:20 <j4cbo> soooooo muuuuuch damage was done in the brief period when “Unicode” meant what we now call “UCS-2” and 64k codepoints ought to be enough for anyone
02:12:55 <j4cbo> the windows API, NTFS, USB, Java, wchar_t, ...
02:13:02 <ais523> I think a perfect encoding would be more radically different from Unicode, so maybe the current astral plane mess is beneficial in that it provides more incentive for a fix
02:13:35 <ais523> I've been thinking for a while about a format I call "Duocode", which represents each character as a pair: one element is the visual appearance of the character, the other the language/script/similar context
02:13:59 <ais523> so, e.g., Cyrillic a and Latin a have the same appearance, Latin a and Latin b have the same script
02:14:13 <ais523> this fixes a number of problems more or less automatically
02:14:39 <zzo38> I think different kind of character codings can be used for different purposes. But, yes that "Duocode" could work if you want both display and semantics without having to worry about both in programs that don't use it.
02:15:04 <ais523> for example, suppose you're reading some printed Japanese text that you want to type into a computer
02:15:11 <ais523> and find a lone thing in the text that looks like an "a"
02:15:32 <ais523> in Unicode, you have to guess which script it's in to use the appropriate context
02:15:48 <ais523> in Duocode, you'd be able to say "unknown script" (or perhaps even "Japanese")
02:15:57 <ais523> *to use the appropriate character
02:16:07 <ais523> really, Unicode's a big mess of mixing appearance and semantic
02:16:18 <zzo38> My own "Universal Terminal Character Coding" also avoids that problem too (but it doesn't have semantics)
02:16:55 * kmc tries to create an emoji for a family with 5 parents and 3 children
02:16:56 <b_jonas> is that like TeX, in which the font and low 8 bit of the character code uniqely determines the dimensions of the character, the upper 8 bits of the character code can't change it?
02:17:31 <ais523> although in this case I think the dimensions might change for different scripts, even the appearance to a small extent
02:17:45 <zzo38> b_jonas: That is a feature of the .TFM format, which is used in TeX (which itself does not support characters longer than 8-bits at all), but may be usable with other programs too.
02:18:06 <kmc> it selects as a single character, but that might be the usual behavior of anything combined with ZWJ
02:18:10 <b_jonas> ais523: anyway, that doesn't sound like a particular good idea to me. now you're just picking two random properties of the character and want to put it in the code. but there are other properties that programs can be interested in, not just those, and you can look them up from tables, so I don't see why your particular format would be the best.
02:18:12 <kmc> it renders the same as a few nuclear families
02:18:24 <zzo38> (I once wrote a program that had to write to a file containing UTF-16 text, with the source file being ASCII. In the parts where the text was exported to the file, it supports any UTF-8, including improper UTF-8 such as Modified UTF-8, CESU-8, etc; and overlong encodings can be used to escape trailing spaces and line breaks, too.)
02:18:27 <kmc> (binary families? whatever)
02:19:14 <ais523> I think Duocode would probably use the same appearance for б and 6 (the first is a Cyrillic lowercase b, the latter an Arabic numeral)
02:19:26 <ais523> but you'd want to render them differently based on the script code
02:19:35 <ais523> b_jonas: I don't consider them random properties:
02:20:05 <ais523> a) they should be a perfect key, in the sense that one script can't meaningfully have two characters that look the same, so the pair should uniquely define the character
02:20:07 <zzo38> (The reason it does this is just due to the output file being UTF-16 and the input file being ASCII; otherwise, it probably won't do such thing, and would use the same encoding as the output file if it is compatible with ASCII.)
02:20:51 <ais523> b) it removes any incentive to merge characters that are almost identical but not quite into identical codepoints, which has caused some controversy in the past (e.g. merging Chinese and Japanese characters that look the same even though they need to be rendered slightly differently)
02:21:36 <b_jonas> ais523: but then you'll just have to set the "script" artificially in such a way that it matches your property (a)
02:21:37 <ais523> c) appearance isn't a random property at all, it's what people use when actually reading a document
02:21:55 <zzo38> Yes, then a font that only supports one character and not the other one, will still be able to approximate it.
02:21:56 <ais523> b_jonas: I don't think there's much artificial about it? either you know or you don't
02:22:03 <ais523> if you know then it's not artificial
02:22:25 <ais523> if you don't know, Duocode will let you say that you don't know, rather than having to try to find a character that looks similar but might mean something totally different
02:22:42 <ais523> it's really easy to, say, mix up Ⓒ and ©
02:23:02 <ais523> when you're using Unicode
02:23:07 <b_jonas> ais523: sure, but in what sense is that "script", rather than just an arbitrary selector among similar looking characters?
02:23:23 <ais523> b_jonas: it's basically the context in which the character appears
02:23:32 <ais523> like, the language you're writing in
02:23:42 <ais523> often it'll be the same for an entire document
02:23:57 <b_jonas> we currently encode that in metadata
02:24:11 <ais523> well, it's a different word because there's a technical distinction, e.g. Russian is a language but Cyrillic is a script
02:24:33 <ais523> perhaps going as far as just making it the language would be better though
02:24:40 <zzo38> How many bits will be used for each part (visual and script)?
02:24:47 <ais523> it depends on whether different Cyrillic-using languages always want to render it the same way
02:25:25 <ais523> zzo38: 16 should be enough for the script half, it'd be pretty tight on the visual half though so that might need to be larger to be on the safe side
02:25:25 <b_jonas> ais523: no of course not. there are either two or three different incompatible appearances for the same cyrillic letters, depending on who you believe
02:26:07 <ais523> oh, the other advantage of recording the language separately is that it lets you know whether two different-looking characters are supposed to be semantically equal or not
02:26:15 <ais523> ö and oe are semantically equal in German but not in English
02:26:19 <b_jonas> you probably need at least two different ones for latin too
02:26:37 <b_jonas> or more likely three, one specifically for turkish only
02:26:47 <ais523> yes, there are, e.g., two different ways to write lowercase a in English
02:27:07 <ais523> one has a curve above the main body, touching it at the right hand side, curving over, and stopping without touching at the left hand side
02:27:16 <ais523> the other has a taller body and a little curve at the bottom-right corner
02:27:59 <ais523> https://en.wikipedia.org/wiki/File:LowercaseA.svg
02:28:10 <zzo38> For typesetting, I think what the .TFM format does is good (except that it is limited to 256 metrics, which is not always enough, and some languages and uses may need a few additional specifications that the .TFM format does not support)
02:28:44 <ais523> I think I'd give them separate codes because there are probably cases where the distinction matters (also, this would basically force the use of a normalization library, which is probably a good thing)
02:30:12 <ais523> anyway, this is all idle/eso speculation, unseating Unicode is almost certainly impossible at this point
02:30:49 <ais523> <Wikipedia> In modern English orthography, the letter ⟨a⟩ represents at least seven different vowel sounds ← that sounds about right for English
02:30:53 <int-e> at least until they run out of code points for emoji
02:31:56 <b_jonas> int-e: they won't, they're already using crazy standardized code point combinations for emoji that work randomly differently for different emoji characters
02:32:29 <b_jonas> combining stuff that is randomly valid or not valid depending on which brand of mobile phone first added the particular emoji and in what year
02:32:38 <ais523> b_jonas: that's done for backwards-compatibility, I think
02:33:10 <ais523> for example, you can zwj gender markers onto emojis representing particular jobs to get a gendered emoji for the job, but if the client doesn't have one it can just render them separately
02:33:35 <kmc> that's how the family emojis work too
02:33:50 <kmc> man + zwj + man + zwj + girl
02:34:04 <kmc> hence me trying to figure out if i can make poly family emojis
02:34:24 <kmc> ah, and the trans flag is the same way
02:34:47 <ais523> zwj got kind-of more and more out of control as time went on, I think
02:34:50 <zzo38> I think it is messy, but so is the rest of Unicode
02:34:59 <kmc> WAVING WHITE FLAG + ZERO-WIDTH JOINER + MALE WITH STROKE AND MALE AND FEMALE SIGN
02:35:35 <ais523> hmm… perhaps you should be able to zwj absolutely anything onto a flag
02:35:41 <ais523> a lowercase a flag would be fun
02:36:48 <ais523> strangely, Gnome renders it differently without the ZWJ but the a doesn't go onto the flag in either case
02:37:13 <kmc> ais523: how about a CIRCLED LATIN CAPITAL LETTER A flag
02:37:19 <b_jonas> just look at how the country flags are encoded
02:37:26 <kmc> how about a CYRILLIC MULTIOCULAR O flag
02:37:34 <kmc> b_jonas: they have a special copy of the latin alphabet, right?
02:37:38 <ais523> or putting regulr emoji on flags: 🏳😀
02:37:38 <kmc> and a pair of those gives an ISO country code?
02:37:54 <ais523> kmc: actually, the whole flag thing was done to avoid having to specify which countries existed
02:37:58 <kmc> my chrome does not seem to do the trans flag thing yet
02:38:11 <ais523> which can be very controversial
02:38:29 <ais523> (I guess there may also be cases where the existence of the country is uncontroversial but which flag to use is controversial?)
02:38:37 <ais523> so yes, they use pairs of what are, effectively, flag surrogates
02:38:38 * int-e wonders whether unicode has the dancing men alphabet (Sherlock Holmes) somewhere.
02:38:40 <b_jonas> ais523: exactly. but the problem is that some of those two-level country codes have been reused already
02:38:53 <kmc> https://blog.emojipedia.org/fun-emoji-hacks/
02:39:02 <b_jonas> they should have used the three-letter country codes to avoid a flag randomly appearing as the flag of an unrelated country ten years later
02:39:45 <b_jonas> int-e: I think that's just a different font for the latin letters. also we don't even know all of it, some letters are missing.
02:39:50 <kmc> https://blog.emojipedia.org/ninja-cat-the-windows-only-emoji/
02:40:01 <zzo38> Then add a date to the flag
02:40:09 <ais523> "🇪 🇺" without the space produces "🇪🇺", so it's not /just/ countries
02:40:27 <ais523> (that's "EU" in regional indicators, for people whose client can't render it)
02:40:37 <b_jonas> int-e: I could just as well ask for the strange futhark rune that Jules Verne uses for the letter "G" but that was probably never used to that meaning anywhere
02:40:43 <ais523> "UN" also seems to work: 🇺🇳
02:41:19 <kmc> apparently some people got butthurt at some point because you can put a "NO" circle-slash over the rainbow flag
02:41:31 <kmc> but you can put it over a frog emoji too so let's call it even
02:41:33 <ais523> is there anything you can't put it over?
02:41:45 <int-e> b_jonas: it's almost like the choices of what's put into Unicode are arbitrary...
02:41:47 <ais523> IIRC it's a combining character
02:41:57 <b_jonas> kmc: we'll fix that in Newspeak
02:42:02 <ais523> hmm… does this mean you can do things like flag-acute and flag-umlaut?
02:42:59 <kmc> emojis are very political, on twitter putting them in your display name is like badges of which causes you support
02:43:03 <kmc> it's hard to keep up
02:43:04 <ais523> Firefox doesn't put the umlaut on top :-(
02:43:10 <ais523> Konversation does, but it can't render the flag
02:43:42 <kmc> the avocado has become the "YIMBY" pro-housing emoji
02:44:23 <kmc> and the rose is a socialist / Labour Party thing
02:44:28 <kmc> and frog is alt-right due to pepe
02:44:48 <kmc> and there's a bunch more
02:44:57 <kmc> but the avocado is the most amusing one
02:45:07 <kmc> also the tastiest of those
02:45:25 <kmc> i ate frog once, do not recommend
02:45:37 <ais523> the rose is the Labour Party's logo in the UK (and has been for decades, predating the emoji), so that one is fairly easy to explain
02:46:40 <int-e> The rose was popular in socialist countries (at least the GDR) as well.
02:47:27 <kmc> oh wow I didn't realize they had different hair styles in addition to skin tones
02:47:31 <ais523> the UK Labour Party tend to oscillate wildly relating how socialist they are, so they're not an ideal reference to use
02:47:58 <ais523> they're unusually socialist at the moment, but were to the right of the Conservatives not all that long ago
02:48:09 <ais523> so they might not be the greatest reference for defining an emoji
02:48:13 <kmc> yeah parties are funny like that
02:48:26 <kmc> DSA also uses a rose
02:49:12 <kmc> https://emojipedia.org/female-singer/
02:49:26 <kmc> I like that several systems use pink/purple hair to identify a singer :P
02:49:43 <kmc> once I flew to the UK with some friends, all of us happened to have brightly colored dyed hair
02:49:58 <ais523> and people assumed you were a pop group?
02:49:58 <kmc> and the customs agent asked "Are you in a band or something?"
02:50:39 <kmc> two of my friends likewise had brightly colored hair and were touring rural china on a geology trip and
02:50:45 <kmc> were stopped /constantly/ by locals wanting a photo
02:50:57 <kmc> seeing westerners was weird enough by itself, let alone ones with bright green hair
02:51:22 <kmc> also some random stranger asked my friend where to buy LSD on the basis that said friend had bright red hair
02:51:50 <kmc> in my first passport photo I had green hair
02:51:54 <kmc> and looked really good
02:52:05 <kmc> second one was also good, but really masculine
02:52:11 <kmc> third (current) is crappy but recognizably female
02:52:20 <kmc> as is my driver's license photo
02:52:36 <kmc> what really pisses me off is I need to get the DL renewed on my birthday next February, even though I got the new one (w/ updated gender marker) this year
02:52:40 <kmc> it didn't reset the expiration date
02:52:43 <int-e> . o O ( identity transformation )
02:53:26 <kmc> they don't have "pregnant man" emojis yet
02:53:49 <kmc> that's going to become a problem at some point
02:54:39 <kmc> i'm disappointed that you can't ZWJ the bride/groom emojis
02:54:54 <kmc> at least on my system
02:55:57 <kmc> merperson... now this is just silly. they should have a combining character so you can join MAN + FISH
02:56:04 <kmc> then we can do all the other animal combinations
02:56:25 <ais523> is this the point at which someone links the XKCD about the vomiting rocket emoji?
02:57:04 <ais523> hmm… at some point you'd assume that correct emoji rendering would become AI-hard (like AI-complete, but harder because you need knowledge of the world too)
02:57:30 <kmc> "The Kiss: Woman, Woman emoji is a sequence of the 👩 Woman, ❤ Heavy Black Heart, 💋 Kiss Mark and 👩 Woman emojis."
02:57:33 <kmc> this is pretty elaborate
02:57:54 <kmc> ais523: haha
02:57:57 <kmc> I hadn't seen that one
02:58:06 <kmc> "Vomiting Dove" makes sense because that's how they feed their young
02:58:16 <kmc> it's also part of the mating ritual
02:58:25 <int-e> ais523: https://xkcd.com/1857/ is better than the vomiting rocket one.
02:58:51 <ais523> slightly less ontopic, though
02:59:17 <kmc> the unicorn's horn should also be a modifier
02:59:24 <ais523> there was a followup which actually reviewed the emoji movie, I think that's better than either (but even less ontopic)
03:00:09 <ais523> https://www.xkcd.com/1870/
03:00:26 <ais523> (for anyone who hasn't found it yet, the original xkcd we were discussing is https://www.xkcd.com/1813/)
03:01:30 <kmc> Patrick Stewart voicing the poo emoji is probably the worst example I can think of of an actor taking a role way beneath him
03:01:42 <kmc> maybe he owed the mob a bunch of money or something
03:02:11 <kmc> i have read that if you're already famous, voice acting work is absurdly lucritive for very little work
03:02:17 <ais523> the title-text comment about real-world usage of the upside-down smiley face emoji is one of those things that's really thought-provoking
03:03:41 <kmc> TJ Miller rage-quitting Silicon Valley to star in that piece of shit is also pretty pathetic
03:03:55 <kmc> he's a real treat https://en.wikipedia.org/wiki/T.J._Miller#Legal_issues_and_controversies
03:04:04 <kmc> ais523: yeah
03:04:14 <zzo38> What I can find, U+1F93F is diving mask, not for vomiting.
03:04:21 <kmc> I don't know how to explain what upside down face, or face with no mouth means
03:04:24 <kmc> but I think I can use them
03:05:41 <ais523> kmc: I'm not sure if I can use them but I sort-of get the meaning in other people's usage
03:05:48 <ais523> presumably you've seen them more than me
03:06:34 <ais523> the great thing about this is that it acts as a disproof of the Sapir-Whorf Hypothesis that can actually be communicated to other people, because it's a sort of shared disproof rather than being specific to one person's thoughts
03:06:57 <ais523> (I've thought several disproofs in the past, but they have the fundamental problem that I have no way to easily communicate them to other people)
03:08:32 <ais523> hmm… now I'm thinking about that moment several years ago when I had to ask someone what Kappa meant (in the common colloqual usage) as I didn't figure it out exactly based on examples
03:09:32 <ais523> (I got close, but not close enough)
03:16:11 <ais523> hmm… I wonder if it makes sense to use strings like "" as BOM-equivalents to show the encoding of text that escapes Unicode into ASCII rather than using more normal encodings
03:19:59 <kmc> how does it disprove S-W?
03:20:33 <kmc> ais523: you mean that if a file starts with the ASCII literal string "" then the decoder should assume it's ASCII, w/ Unicode escapes of that form?
03:22:40 <kmc> is that useful?
03:23:14 <ais523> it's not obviously useless; say you want to send an HTML file over a 7-bit connection but need it to round-trip perfectly
03:23:47 <ais523> the result would be way more readable (also more likely to be interpreted correctly by a random computer program) than UTF-7
03:24:20 <ais523> you could just use no BOM but then people would be uncertain about whether the input contained the actual characters or the escaped version
03:27:51 <kmc> but the escapes will already have that meaning no matter what
03:27:58 <kmc> so it's just a hint that there will be no non-ASCII characters
03:28:48 <ais523> well, the difference is that if the original text contained characters in both escaped and unescaped form
03:28:58 <ais523> the version after encoding will contain them in double-escaped and escaped form
03:29:03 <ais523> allowing you to roundtrip
03:29:22 <ais523> (whereas if you tried to escape into valid HTML directly, the distinction would be lost because double-escaped would just echo)
03:33:45 -!- FreeFull has quit.
03:51:32 <kmc> interesting
03:51:46 <kmc> TIL that in Japan, it is considered lucky to dream of an eggplant on the first night of the new year
03:53:07 <kmc> you can learn a lot about asian culture by reading about emojis :P
03:54:02 <kmc> (eggplants, hawks, and Mt. Fuji)
03:56:20 <kmc> how many specific, singular things are represented by Emoji?
03:58:13 <kmc> Japan, Mt. Fuji, the Earth (in several variations), the Statue of Liberty, the Tokyo Tower, the Kaaba, Sol, Luna (both in several variations)
03:58:23 <ais523> hmm, maybe compose keys should use RFC 1345, it's /way/ more comprehensive than any other compose key implementation I've seen
04:00:47 <ais523> huh, it even has control codes
04:01:03 <ais523> …it even has /C1/ control codes
04:01:26 <ais523> Compose C I for CSI, for example
04:01:53 <ais523> that said, some of the characters in Brachylog's character set don't appear even in RFC 1345
04:27:16 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=64584&oldid=64558 * A * (+4528) /* Sandbox */ new section
04:28:11 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64585&oldid=64584 * A * (-101) /* Sandbox */
04:28:45 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64586&oldid=64585 * A * (-4427)
04:39:13 -!- xkapastel has quit (Quit: Connection closed for inactivity).
05:44:39 <kmc> shachaf: should I get some kind of magsafe nonsense thing for my USB-C charging
05:48:07 -!- Sgeo_ has joined.
05:48:47 -!- ais523 has quit (Quit: quit).
05:51:17 -!- Sgeo has quit (Ping timeout: 245 seconds).
06:02:53 <kmc> wow, there are all kinds of fun things i can do
06:03:13 <kmc> like my phone came with this USB-C-male to USB-A-female adapter
06:03:23 <kmc> which i guess is like an OTG adapter
06:03:34 <kmc> but I can also use it to turn a USB-C charger into a legacy USB charger
06:03:44 <kmc> which means one less thing to carry
06:07:35 <FireFly> Oh it's a charger with a USB-C port, and a USB-C plug-plug cable?
06:07:42 <FireFly> I mean, your usual charger setup
06:08:18 <FireFly> my phone came with a "regular"/legacy USB-A charger but with the relevant fast-charging capabilities, and an A-male - C-male cable, for charging it
06:10:39 <kmc> right, mine came with a brick that has a USB-C port on it
06:12:34 <kmc> and then I got another brick that also has USB-C on it, but this one is a bit larger and can charge my laptop too
06:13:08 <kmc> so i will carry that in my everyday bag, instead of a separate phone and laptop charger
06:14:15 <kmc> along with a C-to-C cable and an A-to-C cable
06:14:22 <kmc> and if I need to charge both I can charge the laptop from USB-C and the phone from its USB-A port
06:14:55 <kmc> and the phone can charge fast enough from my A-only powerbank so I'm keeping that
06:15:36 <kmc> FireFly: so I wonder if your legacy brick supports USB-PD on its type-A port
06:15:50 <kmc> or if it only supports the legacy, quasi-standard quick charge thingies
06:15:55 <kmc> it is so complicated now
06:16:54 <FireFly> Most likely not USB-PD (as in, the standard "fast charge" thing), because phone uses the other quickcharge thing common in the industry
06:17:26 <FireFly> the Nintendo Switch does USB PD IIRC, but its charger just comes with a physical cable attached to the wallwart (and USB-C male at the end of the cable)
06:18:29 <FireFly> My understanding is that the legacy, quasi-standard quick charge thingie was to adopt USB PD as a required thing to support in the next version of it
06:18:41 <FireFly> so hopefully that mess will go away/unify over the next few years? maybe
06:19:23 <FireFly> IIRC phone cos went and did their own thing because the standard PD thing was taking its merry time, and they didn't want to wait around? or something
06:19:28 <FireFly> which I guess I could also see
06:19:42 <FireFly> annoying as the fragmentation is
06:29:38 -!- sprocklem has quit (Ping timeout: 245 seconds).
06:35:07 -!- Camto[m] has quit (Quit: Idle kick: User has been idle for 30 days.).
06:41:50 -!- sprocklem has joined.
07:03:46 <kmc> i mean, as messy as the details are, it's working pretty well for me the consumer
07:03:59 <kmc> if I plug a "fast charging" device into a "fast charging" charger then it usually "fast charges" in some way or another
07:06:04 <FireFly> I don't think it's the case between the Switch and the phone (which are the two USB-C-charging devices I have so far), but ah well
07:06:27 <FireFly> or well, I mean.. it *charges* either way, but charges quicker when I use the "right" charger rather than the "wrong" one
07:06:47 <FireFly> (but fortunately most of the time I'm not that much in a hurry anyway)
07:06:59 <FireFly> so I just use whatever is closest/already plugged in because lazy
07:07:37 <kmc> fast charging will wear out your battery faster won't it
07:07:46 <FireFly> I think so, and that's a fair point
07:08:03 <kmc> I know that's a thing for electric vehicles
07:08:19 <kmc> I don't know if it matters for a phone that will probably be replaced within 5 years anyway
07:08:26 * kmc has a drawer of old smartphones
07:08:34 <FireFly> Maybe devices ought to ask you when you plug it in at what rate you want to charge it (and use that to decide whether to negotiate for faster power or not)
07:08:50 <FireFly> I tend to not be very consumer-y when it comes to smartphones :p
07:09:01 <FireFly> I did get a new one last year, but that was replacing the aging Jolla1 phone from 2013
07:09:41 <FireFly> before that I had the E7 briefly which I got as a replacement when the N900 died, and before that, said N900 which was the first 'smart' phone I had
07:10:10 <FireFly> so I do value not wearing the battery too much :p
07:10:57 <FireFly> The J1 had a very worn out battery, and very worn out USB connector.. those were not insignificant in deciding to get a new phone
07:11:31 <kmc> I just got a new Pixel 3a
07:11:40 <kmc> because I had cracked the shit out of the screen on my Moto G5+
07:11:49 <kmc> and it was looking not too easy to repair / replace
07:11:56 <kmc> it was a good phone, though
07:12:16 <kmc> pro tip, don't store your phone in a purse with a heavy metal object
07:12:41 <FireFly> heavy (metal object), or (heavy metal) object?
07:12:58 <kmc> the former... I hope
07:13:02 <kmc> I think it's stainless steel
07:15:38 <kmc> this Anker brick has one USB-C-PD and one USB-A with "PowerIQ 2.0"
07:15:41 <kmc> whatever the hell that is
07:15:41 <FireFly> I do keep my phone and keys in separate pockets for a reason :p
07:16:17 <kmc> it seems to be their proprietary name for an implementation of various different devices' quick charging specs
07:16:19 <kmc> I don't know
07:16:38 <kmc> normally I do keep my phone in a pocket by itself, but in this case I was wearing a dress and did not have pockets
07:16:42 <FireFly> I think/thought https://en.wikipedia.org/wiki/Quick_Charge was the main competitor to USB-PD (and ah, it looks like 4 and 4+ also do USB-PD stuffs)
07:17:13 <kmc> and was distracted while leaving a party so did not consider the hazards
07:17:59 <kmc> I also dropped that phone on concrete on many occasions
07:22:57 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
07:23:59 -!- Lord_of_Life has joined.
08:20:08 -!- AnotherTest has joined.
08:57:53 <b_jonas> "<ais523> the great thing about this is that it acts as a disproof of the Sapir-Whorf Hypothesis" => huh? what is a disproof?
08:58:30 -!- haavard has quit (Remote host closed the connection).
09:00:02 <b_jonas> "<ais523> I had to ask someone what Kappa meant" => that's one of the Twitch chat specific emoticons. Yeah, it's not trivial to figure out what the commonly used ones mean from examples. I don't think I understand them either. I think Kappa marks a certain kind of humour where you act as better than others or something.
09:00:07 -!- haavard has joined.
09:02:50 <b_jonas> "<ais523> it's not obviously useless; say you want to send an HTML file over a 7-bit connection but need it to round-trip perfectly" => then gzip and mime base64 encode or uuencode it. ampersane-escapes aren't enough, because you won't know which stuff were escapes in the original HTML. (XML can also have CDATA or non-ASCII characters in tag or attribute names.)
09:03:38 <b_jonas> "<ais523> the version after encoding will contain them in double-escaped and escaped form" => uh
09:05:54 <b_jonas> I don't think you can assume from just a  that it's such of a double escaped file. That could be there just by accident when someone accidentally escaped some characters in a file starting with an UTF-8 BOM.
09:36:08 -!- Sgeo_ has quit (Read error: Connection reset by peer).
09:36:34 -!- Sgeo_ has joined.
10:28:50 -!- atslash has joined.
10:31:35 -!- atslash has quit (Client Quit).
10:52:51 -!- AnotherTest has quit (Ping timeout: 264 seconds).
11:49:38 -!- Sgeo_ has quit (Read error: Connection reset by peer).
11:50:02 -!- Sgeo_ has joined.
11:54:35 -!- Melvar has quit (Quit: WeeChat 2.4).
12:04:49 -!- arseniiv has joined.
12:25:19 -!- Melvar has joined.
13:00:55 -!- atslash has joined.
13:13:36 -!- atslash has quit (Quit: This computer has gone to sleep).
14:08:06 -!- Sgeo__ has joined.
14:11:44 -!- Sgeo_ has quit (Ping timeout: 258 seconds).
14:58:36 -!- Sgeo_ has joined.
14:59:12 -!- b_jonas has quit (Quit: leaving).
15:02:05 -!- Sgeo__ has quit (Ping timeout: 268 seconds).
15:13:25 -!- jalumar has quit (Ping timeout: 252 seconds).
15:18:50 -!- Sgeo has joined.
15:21:49 -!- Sgeo_ has quit (Ping timeout: 268 seconds).
15:24:49 -!- Sgeo has quit (Ping timeout: 246 seconds).
16:08:25 -!- Sgeo has joined.
16:25:34 -!- Melvar has quit (Quit: WeeChat 2.4).
16:35:51 <j4cbo> the thing that is really bad for batteries is leaving them at 100%
16:36:10 <j4cbo> but it is basically totally impossible to not do that with any phone or laptop
16:36:23 <kmc> why is that bad for them
16:37:31 <j4cbo> I don’t know the materials science behind it but it results in faster capacity loss
16:37:43 <esowiki> [[Dbondb]] https://esolangs.org/w/index.php?diff=64587&oldid=64581 * Sideshowbob * (+127) /* Commands */
16:39:02 <j4cbo> I’ve charged my car to 100% like five times ever and only *immediately* before a road trip
16:39:18 <j4cbo> I charge my phone to 100% and let it sit that way for hours every night
16:42:16 <esowiki> [[Dbondb]] https://esolangs.org/w/index.php?diff=64588&oldid=64587 * Sideshowbob * (-3) Undo revision 64587 by [[Special:Contributions/Sideshowbob|Sideshowbob]] ([[User talk:Sideshowbob|talk]])
16:47:18 <int-e> yeah where *is* the phone setting that says "stop charging at 85%"?
16:47:32 <kmc> I don't know
16:47:36 <kmc> Thinkpads have that setting
16:47:57 <kmc> and you can also set a maximum point to *start* charging
16:48:04 <kmc> thus giving some hysteresis between them
16:48:19 <kmc> so if you plug in, charge to 96%, run down to 94%, plug back in, it might not necessarily start charging again
16:48:42 <kmc> this is good to avoid excess charge cycles in the usual case where you're unplugging your laptop for brief periods of time
16:48:57 <kmc> though I've noticed, the battery life on my X270 is good enough that I'm using it more like a phone, just plugging it in overnight
16:49:05 <int-e> Also, if charging to 100% is so harmful, maybe you should spec the batteries at lower capacity...
16:49:11 <zzo38> It is OK to use "#ifndef MSG_MORE" and "#define MSG_MORE 0"? Will that cause any problems with the program if it does that?
16:49:14 <int-e> ...so I suppose marketing is a major factor here.
16:49:23 <kmc> it has an internal battery and an external, high-capacity battery
16:49:29 <kmc> this also means the external battery is hot swappable
16:50:59 <int-e> (Phones sell on reviews of early models, and battery lifetime is a major selling point. So any charging schedule that results in higher capacity and does not visibly destroy the battery in the first week is an advantage? Sigh.)
16:51:28 <int-e> Maybe a month or two for people who wait for social media experience reports.
16:52:21 <int-e> And then there's the planned obsolescence angle.
16:53:16 <int-e> 'If you find the mail in your spam, it’s because of your internet ISP.' -- yeah it couldn't possibly be because it *is* spam.
16:53:41 <int-e> (I like reading opening lines of spam mails for some reason.)
16:57:10 <zzo38> I use /etc/aliases to avoid receiving spam
17:05:05 <zzo38> (It works OK, if you use a separate email address for each purpose.)
17:10:46 -!- atslash has joined.
17:12:44 -!- lldd_ has joined.
17:16:22 -!- FreeFull has joined.
17:28:06 -!- Sgeo_ has joined.
17:31:39 -!- Sgeo has quit (Ping timeout: 244 seconds).
17:33:14 <esowiki> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=64589&oldid=64571 * Areallycoolusername * (-4) /* Proposed Categories: Arch-based and Bootstrapped */
17:33:47 -!- zzo38 has quit (Ping timeout: 245 seconds).
18:17:09 -!- Melvar has joined.
18:20:39 -!- Sgeo has joined.
18:22:26 -!- Sgeo_ has quit (Ping timeout: 248 seconds).
18:47:28 -!- zzo38 has joined.
18:58:46 <zzo38> I think bystand may be so far the only NNTP client program with a feature specific to Unusenet (the UNUSENET_SERVER_NAME() SQL function; which may be used in the PostTo option)
19:07:13 -!- AnotherTest has joined.
19:15:56 -!- lldd_ has quit (Quit: Leaving).
19:20:55 -!- Lord_of_Life_ has joined.
19:23:52 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
19:23:57 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
19:49:28 -!- lldd_ has joined.
20:11:32 -!- moei has joined.
20:17:58 -!- Phantom_Hoover has joined.
20:39:00 -!- user24 has joined.
20:45:47 <kmc> just passed a car with the vanity plate U1F47E
20:48:41 -!- b_jonas has joined.
20:52:30 -!- lldd_ has quit (Quit: Leaving).
20:57:26 <kmc> https://www.compart.com/en/unicode/U+1F47E
20:58:17 <Phantom_Hoover> the one i remember you linking to and hating years ago
20:58:40 <kmc> that character is sponsored by RubberRhino Games
20:58:46 <kmc> https://www.unicode.org/consortium/adopted-characters.html
20:58:51 <kmc> wonder if that's related to the car
20:58:57 <kmc> Phantom_Hoover: I have no idea what you're talking about, sorry
21:02:26 <Hooloovo0> what kind of car was it? looks like rubberrhino makes truck/car racing games
21:03:02 <Phantom_Hoover> this character sponsorship is some sort of dismal late capitalist performance art
21:03:23 <Hooloovo0> BURNIN R shows up on some of the images I can find
21:05:12 <int-e> kmc: hmm interesting that the same character can be adopted several times
21:06:16 <kmc> at bronze level yes
21:06:23 <kmc> Phantom_Hoover: you know how much dope I smoke
21:06:28 <kmc> I can barely remember what I ate for lunch yesterday
21:06:50 <kmc> actually not that much these days but for the sake of the joke
21:06:57 <int-e> kmc: and this channel should celebrate the bronze sponsor of the multiocular O.
21:07:10 <HackEso> 1132) <shachaf> A Swede who was in #esoteric / Thought his rhymes were a little generic. / "I might use, in my prose, / ꙮs, / But my poetry's alphanumeric."
21:07:22 <kmc> Phantom_Hoover: I dunno, Unicode Consortium is a nonprofit whose mission is vital to enabling people around the world to use the internet through a free open standard
21:07:23 <Phantom_Hoover> best artistic achievement this channel has ever produced
21:07:34 <kmc> I think it's pretty not-dystopian-capitalism as these things go
21:07:44 <kmc> int-e: of course.
21:07:48 <Phantom_Hoover> yes, which makes it pretty dismal that it needs to sell corporate advertising
21:09:36 <kmc> well, true
21:09:42 <kmc> fair point
21:09:48 <zzo38> I think Unicode is very messy
21:10:09 <zzo38> There are better character encodings, and different one are good for different use.
21:10:12 <kmc> did you make a zzocode?
21:10:57 <zzo38> I partially made up a "Universal Terminal Character Coding", which is designed for grid displays with no complex scripts or other stuff like that
21:12:50 <zzo38> The width of a text made up of printable characters only (without control characters) is equal to the number of bytes with value less than 0xC0. Both single-cell characters and double-cell characters are included, although some implementations might support only single-cell characters.
21:17:28 <zzo38> It also includes a lot of stuff that isn't in Unicode. (Some of the characters in some terminals are not in Unicode, but this code does include them. You can use them for font mapping in a terminal emulator when a character set including them is specified by the escape codes.)
21:42:18 -!- MDude has quit (Ping timeout: 272 seconds).
21:45:45 <b_jonas> Phantom_Hoover: why? I think it's a win for everyone. the advertisments don't buy anything. they don't put ugly animated banners on their homepage telling about their sponsors. It's pure sponsorship donations. I don't think it's dismal.
21:46:04 -!- user24 has quit (Quit: Leaving).
21:47:39 <b_jonas> I think the name of the sponsors can't even be queried as character properties from unicode libraries.
21:47:45 <b_jonas> So it's totally without any effect.
21:48:58 <b_jonas> It's not even just optimized away.
21:57:01 -!- AnotherTest has quit (Ping timeout: 276 seconds).
22:11:04 -!- adu has joined.
22:12:57 -!- ais523 has joined.
22:13:14 <ais523> b_jonas: if someone accidentally escaped a BOM, then isn't it likely that they also accidentally escaped the rest of the file the same way?
22:13:46 <ais523> or is the assumption that they escaped all non-ASCI characters but left & the same?
22:15:35 <b_jonas> ais523: no. I'd assume they'd escape only text, not double-escape HTML
22:15:45 <b_jonas> as in, they don't escape the entire HTML, just build an HTML from parts
22:16:21 <b_jonas> yeah, you can't be sure in that, because you can find all sorts of crazy messed up HTML-like things on the internet, but I still wouldn't guess that they just escaped an HTML
22:16:21 <ais523> if they're building it from parts, how did they find a part with a BOM before the opening <html>?
22:16:53 <b_jonas> ais523: yeah... I don't know, but I don't think your alternative is very likely either
22:17:41 <ais523> it would be if you did it intentionally
22:17:43 <b_jonas> this at least if the escaped BOM is at the start
22:18:08 <b_jonas> if it's in an XML inside an element that isn't likely to be part of the HTML, then yes, then I'd think they escaped an HTML inside an XML
22:18:15 <ais523> hmm: https://duckduckgo.com/?q=%EF%BB%BF&ia=web
22:18:24 <ais523> no results, but yet it pulls up a relevant Wikipedia page anyway
22:18:43 <ais523> I can't believe there are no byte order marks anywhere on the Internet, so maybe DDG just don't index them
22:18:44 <b_jonas> I guess you should scan a bit after the BOM
22:19:09 <ais523> but yes, I meant an escaped BOM right at the start of the document (which is the only place they should appear)
22:19:13 <b_jonas> if you see <HTML> then it's not double-escaped; if you see < then it is probably double-escaped,
22:19:46 -!- arseniiv has quit (Ping timeout: 248 seconds).
22:20:08 <b_jonas> especially if you see <DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"<>HTML<
22:20:59 <b_jonas> I've at least seen HTML parts escaped in JSON
22:20:59 <ais523> you got the gts and lts backwards near the end, but yes
22:21:13 <b_jonas> oh yeah, french style, not german style, yeah
22:21:27 <b_jonas> I shouldn't have messed that up
22:32:45 <kmc> smoke html erryday
23:26:55 <esowiki> [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64590&oldid=64441 * Areallycoolusername * (+947)
23:34:12 -!- ais523 has quit (Remote host closed the connection).
23:35:24 -!- ais523 has joined.
23:48:27 -!- Sgeo_ has joined.
23:51:30 -!- Sgeo has quit (Ping timeout: 272 seconds).
23:57:57 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).