pie_ has quit [Quit: Leaving]
eduardo__ has joined ##openfpga
eduardo_ has quit [Ping timeout: 240 seconds]
promach has quit [Ping timeout: 258 seconds]
[X-Scale] has joined ##openfpga
<rqou> offtopic: I just noticed that the thermostat in my apartment has an actual mercury switch in it
X-Scale has quit [Ping timeout: 260 seconds]
[X-Scale] is now known as X-Scale
<balrog> rqou: yes the older ones do because it needs to be a very reliable low-resistance switch
<rqou> this one is actually used as an electromechanical temperature sensor
<rqou> nice and obsolete :P
cyrozap-web has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<azonenberg> rqou: and pretty much unhackable :p
<azonenberg> there's something to be said for the old school tech
<rqou> but it can be hacked by taping a weight to it :P
<azonenberg> Sure but physical access
<azonenberg> :p
<rqou> :P
carl0s has joined ##openfpga
<qu1j0t3> but does it go down when S3 goes down
cosmobird has joined ##openfpga
digshadow has quit [Quit: Leaving.]
promach has joined ##openfpga
cosmobird has quit [Ping timeout: 240 seconds]
cosmobird has joined ##openfpga
carl0s has quit [Quit: Leaving]
kuldeep has quit [Remote host closed the connection]
kuldeep has joined ##openfpga
DocScrutinizer05 has quit [Disconnected by services]
DocScrutinizer05 has joined ##openfpga
m_w has joined ##openfpga
m_w has quit [Ping timeout: 240 seconds]
cosmobird has quit [Quit: Leaving]
digshadow has joined ##openfpga
Hootch has joined ##openfpga
kuldeep has quit [Remote host closed the connection]
kuldeep_ has joined ##openfpga
<rqou> offtopic, drama: wtf GOPCare
<rqou> brb moving to HK
<whitequark> rqou: dooo it
<rqou> lol
<rqou> i'm not sure how i should feel that i'm eligible to use HK's healthcare system despite never having contributed to it
<whitequark> something something healthcare as a human right
<nats`> yep
<nats`> for me it seems totally legit
<whitequark> see the US corrupted you already :p
<nats`> problem is people abusing it
<nats`> not people needing it
<whitequark> problem is we aren't always able to allocate the resources to provide it
<whitequark> that's not a problem with healthcare or those needing it
<whitequark> that's a problem of resource allocation
<nats`> bullshit
<nats`> a gov could always allocate ressource to it
<whitequark> nats`: that's just not true
<nats`> first stop pharmaceutical lab to sell 75k$ a cure that could cost way less
<nats`> then stop private companby to rule hospital
<nats`> basically make all healthcare gov related
<whitequark> this doesn't help if the cost of healthcare at the level you wish to provide is larger than your GDP
<nats`> but why it is a prolem
<nats`> USA can afford to be always with a fucking huge debt
<nats`> why other couldn't
<nats`> it's not really fair
<whitequark> the cost of healthcare in the US is smaller than the GDP of US, for one
<whitequark> and the debt you're talking about is federal debt
<nats`> basically in france every debt of the gov is country debt so ok
<nats`> secondly stop founding military so much
<whitequark> hence, a problem of resource allocation
<nats`> we already have necessary stuff to wipe the world 5 times
<nats`> nop because hte probem is not here
<nats`> you cna do it easily
<nats`> but there are crappy politicians behind
<nats`> they just want to give money to friends (or their own business)
<nats`> I would say yes it's a problem of allocation if everything was at the strict minimum and you still couldn't help
<whitequark> no, that would make it a lack of resources
<whitequark> hwich isn't the case, like I said
<nats`> [08:50:02] <nats`> a gov could always allocate ressource to it
<nats`> [08:50:20] <whitequark> nats`: that's just not true
<nats`> so why it's not possible to allocate more to healthcare ?
<whitequark> please read the backlog again
<whitequark> it's not a problem of lack of resources *in the US*
<whitequark> US is probably the single richest place on the planet
<whitequark> of course lack of resources won't be a problem there
<nats`> that's fun because it happens I know pretty well the situation in africa
<nats`> and no you're talking about lack of ressource.... even in the worst country of africa you can access (fucking basic and sometime useless) free health services
<nats`> it's a problem of philosophy in my opinion
<nats`> USA and some other country think healthcare is a business
<nats`> no matter what you have to pay because it costs
<nats`> but in other country even really pover one people think it's a human right
<nats`> and even if they don't have much they try to provide that as they can
<nats`> but maybe my opinion is biased because I'm french
<whitequark> nats`: yes. there's a lack of resources. if you tried to provide the same level of care in RU as you can get in the US, for everyone, for free, RU would go broke
<whitequark> this doesn't contradict the fact that RU (state-provided) healthcare got cut so much it's becoming close to useless
<whitequark> despite requiring very little spending
<whitequark> this also doesn't contradict the fact that commercial healthcare in RU isn't much worse than in FR but costs very little
<whitequark> and yes, I'm also biased against state-provided healthcare because I don't trust the state
<whitequark> let's say I go see a psych about depression. now the state may decide that it's "mental illness" enough for me not to be permitted to drive a car, at some point in the future
<nats`> because you're lacking all other freedom in your use case here
<whitequark> idgaf
<nats`> idgaf ?
<nats`> what it means ?
<whitequark> i don't give a fuck
<whitequark> you can rationalize it all you like the outcome is the same
<nats`> yep but that explains your example
<nats`> and basically I think you have worse problem than just free healthcare
<whitequark> actually I am currently using commercial RU healthcare because "free" HK healthcare is just too much of a pain in the ass to navigate
<whitequark> despite being eligible
<nats`> but why are you trusting a private company
<nats`> especially in russia they seem to be really linked to gov
<whitequark> do you think they know my name on ID? :)
<nats`> I don't know but your argument is finally contradicted
<nats`> you don't trust private corp either....
<whitequark> I don't have to
<whitequark> and I'm not forced to, unlike with state
<nats`> oky weird but I think I can see why you say that
<whitequark> private corp has reputation to maintain (which is why their care is good), and they want my money, not my ID details
<whitequark> it's perfect
<whitequark> in the US you need like $8k to get an MRI, in RU you can get the same MRI for $50 out of pocket
<whitequark> this doesn't help those in extreme poverty, say
<whitequark> but it's hardly the situation where an average family could be ruined by one medical bill
<nats`> in france it's 150 euro (covered by private insurance if you have it) from your pocket but only if you have enough wage
<nats`> otherwise it's free
<whitequark> that's not too bad
<whitequark> another problem is gatekeeping
<whitequark> for example (this is a real example) a doc in NL told a friend that no, they won't give them a necessary treatment
<whitequark> and there's not really any way around that in NL apparently
<whitequark> so I told that friend to fly to RU... problem solved
<nats`> why they didn't ?
<nats`> that's weird
<nats`> but yes gatekeeping against abuser is a problem
<whitequark> it's complicated, but in short the standard of care in NL was very outdated
<whitequark> it has nothing to do with abuse
<whitequark> just ancient regulation
<nats`> ah I'm talking about people abusing the system to make money
<nats`> there are a lot of them
<nats`> they are costing a fuck ton
<whitequark> like selling opiate prescriptions or?
<nats`> those kind or even worse
<nats`> like we have fund to help people to get a home etc
<nats`> and some people steal million of euro each year by getting many different help multiple time
<whitequark> well synthetic opiates cost like $0.001 a dose to produce, you could just legalize them :p
<nats`> etc
<nats`> but they are cleaning that at the moment
<nats`> they started to watch that a little better
<nats`> have to go to work :)
<nats`> see ya later :)
<whitequark> o/
oeuf has joined ##openfpga
<oeuf> hmm, egg is taken on this server
oeuf is now known as eggrobin
<whitequark> eggrobin: o/ what gives?
<whitequark> was it just the channel name?
<eggrobin> whitequark: dunno, I have to admit that I cannot really into eleggtronics (a mathematician here, or perhaps a software engineer pretending to be a mathematician), but this sounds interesting and it very much came to my attention lately :D
<whitequark> ah! well there's a lot of math to be done
<whitequark> e.g. place-and-route...
<eggrobin> (or am I a mathematician pretending to be a software engineer? or an egg pretending to be all that? who knows)
<whitequark> haha
<eggrobin> that was in #kspacademia, eggsplaining some numerical integration to Majiir :-p
<eggrobin> oh wait, even without egg being available, I can just use my standard status nicks here
eggrobin is now known as egg|coffee|egg
<egg|coffee|egg> here
<egg|coffee|egg> whitequark: one thing I do know about a bit which might be tangentially related to this channel's topic is Ada; I hear VHDL is Ada-like (and I sort of know about Ada because my father & principia cowriter was chairman of the ARG at some point)
<rqou> VHDL is indeed Ada-like
<rqou> i'm currently working on Yet Another Attempt at a VHDL parser
<rqou> whoever wrote the EBNF in IEEE 1076 should be shot :P
<egg|coffee|egg> never investigated that (and yay paywalled standards), but the grammar set out in the ARM is something I find fairly readable
<rqou> you can pull the standard off of sci-hub
<rqou> or i can give it to you as long as you ABSOLUTELY DO NOT share it
<egg|coffee|egg> yeah, or scroll down half the page of search results
<egg|coffee|egg> :-p
<rqou> (otherwise i can lose my access)
* egg|coffee|egg looking at the pdf right now
<egg|coffee|egg> so no need :-p
<rqou> there are so many conflicts in the grammar that make parsers painful
<egg|coffee|egg> yeah, the grammar looks like Ada's, from a distance and half a coffee
<rqou> the grammar also admits far more things than are actually completely bullshit
<egg|coffee|egg> oh, yeah ambiguous grammar
<rqou> e.g. a'b'c'd'e'f'g is allowed according to the grammar (chaining attributes)
<rqou> but you can't actually do that
<egg|coffee|egg> huh
<rqou> you wouldn't even be able to lex if you allowed that
<egg|coffee|egg> I wonder what the ARM says about that
<rqou> i have no idea
<rqou> nobody actually uses ada :P
<egg|coffee|egg> I know :D
<whitequark> it's quite common in the standards IME
<egg|coffee|egg> rqou: but it has some cute things
<whitequark> the grammar in the Ruby ISO standard is so ambiguous as to be completely useless
<rqou> ruby has an ISO standard?
<whitequark> like I don't believe anyone could write a parser that even approximately accepts most of ruby code in existence
<whitequark> yes, it does
<whitequark> ISO/IEC 30170:2012
<rqou> hrm, where can i easily pirate ISO standards? :P
<whitequark> oh I have a copy
<rqou> $FANCY_SCHOOL doesn't have access to those
<whitequark> ... somewhere
<egg|coffee|egg> rqou: everything has an ISO standard, hell, I have an ISO standard :D https://www.iso.org/committee/47880/x/catalogue/
<rqou> not fancy enough apparently :P
<rqou> btw whitequark why do you poke fun at my $FANCY_SCHOOL but not at azonenberg's PhD?
<whitequark> rqou: hm?
<whitequark> what's wrong with azonenberg's PhD
<rqou> you were the one that started calling UCB $FANCY_SCHOOL
* egg|coffee|egg is from ETHZ, what's the fun-poking nickname for that one :-p
<rqou> $EQUALLY_AS_FANCY_SCHOOL? :P
<whitequark> I wasn't poking fun at it, I literally could not remember what it was but it was in Silicon Valley therefore it was fancy
<rqou> are you sure you aren't thinking of the other rival school across the bay? :P :P :P
<rqou> UCB isn't even technically in silicon valley
<whitequark> I'm eight thousand kilometers from Silicon Valley, plus or minus hundred still means in Silicon Valley
<whitequark> this is how americans think anyway, cut me some slack :p
<egg|coffee|egg> rqou: also, something I did with my father a fairly long time ago: genetic algorithms for LEGO walls in Ada >_> https://github.com/mockingbirdnest/LEGO/blob/master/Venezia/Ada/genetics.1.ada
<whitequark> (about the rest of the world, that is)
<whitequark> wow, ada has operator overloading
<rqou> but americans always remember their sportsball rivalries :P
<whitequark> that's like, not utterly horrible
<rqou> VHDL does too
<whitequark> I know a guy in RU who wrote an OS in Ada for STM32, called ARMADA
<whitequark> well, only vaguely know
<rqou> oh btw UCB and the rival school that shall not be named aren't even a hundred km apart :P
<rqou> only 65km or so
<egg|coffee|egg> whitequark: it *is* (ok, *was*) fairly nice; early and not-so-early compilers were shitty (up to the ninties perhaps), and there were some bad decisions in 83 that hindered it (and they were improved upon in 95, but that was a bit late, and they screwed up controlled types there)
<whitequark> there still isn't a decent compiler though is there?
<whitequark> I mean you can have any as long as it's gnat
<rqou> whitequark: so you would have been forgiven except for the part where americans love their sportsball :P
<whitequark> and everyone who used gnat told me it was godawful
<egg|coffee|egg> Apex was good :-p (phl worked on it, so it was good :D)
<egg|coffee|egg> gnat is crap
<egg|coffee|egg> it shits on the standard
<rqou> gnat can compile ghdl :P
<rqou> i have no idea how standards-compliant ghdl is
<whitequark> um, Apex is not FOSS
<egg|coffee|egg> yes, but it was a good compiler
<whitequark> therefore it could as well not exist in my perspective
<rqou> it's a hand-rolled recursive-descent parser written in ada, so nobody's going to touch it :P
<whitequark> like I can't usefully distribute any software if the compiler is not FOSS, why even bother spending time on it
<egg|coffee|egg> it's not like Apex exists meaningfully anymore anyway
<egg|coffee|egg> or Ada
<rqou> whitequark: weren't you trying to compile some iOS crap earlier? :P
<egg|coffee|egg> about shittiness of compiler decisions: for instance there was talk early on to have variant records not have the maximum possible size
<rqou> that compiler isn't exactly FOSS
<whitequark> rqou: actually it is
<rqou> just the SDK isn't?
<egg|coffee|egg> that would enable something like a vector to be a variant record holding an array
<whitequark> there's a cross-toolchain made fully out of FOSS
<whitequark> the *toolchain* isn't FOSS because SDKs aren't
<egg|coffee|egg> but Ichbiah wasn't interested
<egg|coffee|egg> so that didn't get done, and so variant records are vastly less powerful than they could be
<whitequark> but in that case I was paid (inadequately) for doing that so I didn't care as much
<whitequark> (variant record holding an array) do I understand it right that it would essentially be the small vector optimization?
<egg|coffee|egg> well, for a large vector, you'd have to have it allocate under the hood
<egg|coffee|egg> because otherwise the size of your record type would be the maximum size of the array, which is typically a bit too big for a type you want to manipulate
<whitequark> this sounds fairly bad if you ever want to reason about invalidation of interior pointers
<whitequark> which is why Rust's standard library doesn't do this optimization
<rqou> egg|coffee|egg: i don't know if you can help with this (if this came from Ada or is VHDL-specific), but can you explain what a "subtype indication" is?
<rqou> and why a discrete_range can be a subtype indication?
<egg|coffee|egg> ok, subtypes are a thing in Ada
<egg|coffee|egg> blarg, do I remember enough Ada :-p
<egg|coffee|egg> for integer types, you have things like restrictions to a subrange
<rqou> according to the VHDL grammar a subtype_indication is a "[ resolution_indication ] type_mark [ constraint ]"
<egg|coffee|egg> whitequark: well, you have memory safety in Ada if you don't use Unchecked_Whatever
<rqou> and a type_mark is basically an identifier
<egg|coffee|egg> you just tend to fill memory pools a lot, but they can be fairly local
<rqou> so technically foo(bar) can be a slice_name
<rqou> where foo and bar are identifiers
<rqou> and bar somehow becomes a type_mark which then becomes a subtype_indication
<rqou> btw i don't think i've ever seen vhdl code use this specific feature
<rqou> so i don't even know how this is supposed to work
<egg|coffee|egg> ok lemme dig up an ARM, because I'm a bit confused when seeing bits of the grammar (and for another language at that)
<whitequark> egg|coffee|egg: yeah, that's exactly the issue, when you do need to write unsafe code, it becomes hard to do so
<whitequark> but as an optional feature it's fine I guess
<egg|coffee|egg> the fact that in 95 they did controlled types with OO is quite sad (but then it was the nineties, OO all the things)
<egg|coffee|egg> any type with a custom finalizer needs to derive from Controlled >_<
<egg|coffee|egg> (or Limited_Controlled if it's limited)
<egg|coffee|egg> rqou: back to your question
* egg|coffee|egg is very tired; perhaps explaining numerical integration until three in the morning is not actually the best idea?
<egg|coffee|egg> whitequark: so, this sort of thing? http://www.adaic.org/resources/add_content/standards/05rm/html/RM-3-2-2.html
<egg|coffee|egg> erm
<egg|coffee|egg> s/whitequark/rqou/
<rqou> right, so that declares a subtype
<egg|coffee|egg> rqou: where Ada 2005 has new bells and whistles like not null etc., but we're talking about this chunk of the grammar?
<rqou> does Ada have "slice names?"
<egg|coffee|egg> hmm, 4.1.2?
<rqou> yeah i think that's what VHDL also has
<rqou> so normally in VHDL when I want to slice something
<rqou> suppose i have a signal foo
<rqou> i can write foo(0 to 2)
<rqou> but apparently i can also put a "discrete_subtype_indication" instead of "0 to 2"
<egg|coffee|egg> huh
<rqou> and i have no idea how that works
<egg|coffee|egg> so Foo(Integer range -10 .. 10) or somesuch? O_o
<egg|coffee|egg> that seems a bit redundant
<rqou> afaik even Foo(Bar) is allowed
<egg|coffee|egg> right
<rqou> i've never seen this used nor do i understand what this would mean semantically
<egg|coffee|egg> that's a bit odd?
<egg|coffee|egg> well, in Ada that would effectively be a renaming of the type
<egg|coffee|egg> I don't think you have "renames" for types
<rqou> ooooh wait
<rqou> i think i get it
<egg|coffee|egg> so you use subtype Cat is 猫;
<rqou> if you define a subtype Rainbow that contains e.g. Red, Orange, Yellow, Green, Blue, Indigo, Violet
<rqou> you can then define some array type indexed by a Rainbow
<rqou> and then you can slice out e.g. the "Orange to Green" part of that array
<rqou> is that how it works?
<egg|coffee|egg> yes, that's the idea of slices in Ada
<rqou> wtf
<rqou> i didn't even know VHDL could do that
<egg|coffee|egg> if you have A : array (Rainbow range Red .. Blue) of Cat; you can take A(Yellow .. Green) and that gives you the 2-element slice
<rqou> i have literally never seen this used
<rqou> in vhdl usually people do something much more mundane and slice out e.g. "bits 0 to 5"
<egg|coffee|egg> so I gather vhdl uses to rather than ..?
<egg|coffee|egg> or are both allowed?
<rqou> i guess?
<rqou> there are "to" and "downto" for normal ranges
<rqou> not sure what these weird subtypes use
<egg|coffee|egg> right, so that's not like Ada
<rqou> is this even synthesizable?
<egg|coffee|egg> Ada has the reserved word reverse when it needs to reverse a range, e.g. in a loop
<rqou> i suppose there is no reason why it isn't
<rqou> i wonder if the xilinx vhdl compiler supports this feature?
<egg|coffee|egg> for I in reverse 1 .. 10 loop null; end loop;
<rqou> i'm not even positive how to do a for loop in vhdl (i know you can though)
<egg|coffee|egg> (yes that's a terrible example but I didn't want to write a loop body)
<egg|coffee|egg> rqou: I'd try the Ada syntax? :-p
<rqou> for loops in vhdl are weird
<rqou> they essentially say "generate n copies of this circuit"
<rqou> but it has to be able to figure out how many to generate at compile-time
<egg|coffee|egg> right, that makes sense
<rqou> e.g. you can't magically generate more circuits when the input changes :P
<rqou> right now i haven't even began looking at how this part works
<rqou> i'm just trying to forcefully get VHDL ingested into an AST
<egg|coffee|egg> omnomnom
<egg|coffee|egg> Ada has named loops, that's nice (that way you can exit the one you want)
<rqou> yeah i think vhdl has that
<rqou> exiting might break the synthesis tool though
<egg|coffee|egg> Outer: loop loop exit Outer; end loop; end loop Outer;
<rqou> also, apparently the VHDL LRM has way way more features than tools actually support
<egg|coffee|egg> hah
<rqou> in case you weren't aware, hdl tools suck hard
<egg|coffee|egg> there's this weird thing where you have exit Loop_Name when Condition; so you can space an if statement with just an exit in it
<rqou> oh btw VHDL has a fun un-feature that idk if Ada has
<egg|coffee|egg> there was a proposal at some point to generalize this sort of syntax to e.g. return
<rqou> VHDL is mandated by the spec to be latin-1 character encoding
<egg|coffee|egg> rqou: hah
<rqou> including for case-insensitivity
<egg|coffee|egg> rqou: so I can tell you a fun story about Ada and Unicode
<egg|coffee|egg> since 2005 it supports Unicode
<rqou> oh?
<rqou> vhdl still doesn't
<rqou> (while verilog just leaves it implementation-defined, which is better?)
<egg|coffee|egg> but! the representative for Japan pointed out that an international standard (ISO) cannot refer to a standard which isn't an international standard (they have rules for that)
<egg|coffee|egg> but they actually needed to say "Unicode", for case folding
<rqou> copy unicode into an iso standard?
<egg|coffee|egg> so my father came up with the following hilarious thing: http://www.ada-auth.org/standards/2xaarm/html/AA-2-3.html
<egg|coffee|egg> "Two identifiers are considered the same if they consist of the same sequence of characters after applying locale-independent simple case folding, as defined by documents referenced in the note in Clause 1 of ISO/IEC 10646:2011."
<egg|coffee|egg> because *the note* in that other ISO standard refers to Unicode :D
<rqou> wtf
<egg|coffee|egg> note the annotation in the annotated RM: 5.a.1/3
<egg|coffee|egg> {AI05-0227-1} The “documents referenced” means Unicode. Note that simple case folding is supposed to be compatible between Unicode versions, so the Unicode version used doesn't matter.
<rqou> i wonder if/when VHDL will change to utf-8?
<rqou> i'm not sure if they can
<egg|coffee|egg> rqou: that way they could do Unicode properly, and the Japan guy wasn't too annoyed :-p
<whitequark> that's horrifying
<egg|coffee|egg> this is much better than how C++ did it
<whitequark> yes
<whitequark> but the process is horrifying :D
<egg|coffee|egg> C++ defines ranges of codepoints, and so you can have fullwidth slash in an identifier
<rqou> hmm meanwhile the parser i'm working on will just throw a lexing error if you feed it e.g. 0xD7 in an identifier :P
<egg|coffee|egg> whitequark: international standards, like sausage, and international standards about sausages in particular...
<whitequark> hahaha
<rqou> oh btw whitequark you previously mentioned that you really disliked software that cannot correctly into encodings, right?
<whitequark> that is true
* egg|coffee|egg likes this fermion
<rqou> my father mentioned to me that he (and a bunch of other people) just recently spent about two weeks dealing with a bank transfer that was stuck because of encoding problems (in China (PRC))
Bike has quit [Quit: leaving]
<egg|coffee|egg> I break bazelbuild with principia's filenames :D
<whitequark> rqou: that seems... completely unsurprising
<whitequark> does PRC still use
<rqou> e.g. various issues with e.g. halfwidth vs fullwidth punctuation
<whitequark> GB\d{5} encoding?
<whitequark> egg|coffee|egg: *squints* is that russian
<rqou> yes, GB* encoding standards are still used
* whitequark opens the URL
<whitequark> yup, russian
<egg|coffee|egg> (we go with Unicode for names, because I have no idea whether the guy is called Chebyshev, Tchebyshoff, Tschebyscheff or whatever)
<rqou> but don't worry, GB18030 is now a superset of both legacy PRC encodings *and* Unicode
<rqou> :P
<whitequark> I think Chebyshev would be the most common transliteration if you asked a russian do it
<rqou> it's actually a legit UTF
<whitequark> and some of the Tch* would be if you asked an american do it
<whitequark> which is why sticking with Unicode sounds good
<egg|coffee|egg> whitequark: in an English speaking context, somehow, yes, and not shov; not sure why; but I'm french, I live in the german part of switzerland
<rqou> whitequark: you didn't enjoy all the KOI8-<foo>? :P
<egg|coffee|egg> I have seen the combinatorial explosion of the guy's name
<whitequark> oh my god you're actually using that in a namespace name
<whitequark> I can't believe that works
<egg|coffee|egg> I have a goto in my code too, that's goto runge_kutta_nyström_step
<egg|coffee|egg> and a filename with an ö, which is if anything more troublesome than the russian :D
<rqou> i thought apple swift was famous for allowing people to have a variable named 💩 :P
<egg|coffee|egg> whitequark: also my version names are fun https://github.com/mockingbirdnest/Principia/releases
<egg|coffee|egg> rqou: legal C++ too
<rqou> 💩 is probably even worse than all of those others because it's non-BMP
<egg|coffee|egg> rqou: I need to have a cuneiform identifier someday
<egg|coffee|egg> maybe those babylonian ephemerides
<egg|coffee|egg> 𒀯𒀳
<rqou> i have the font for that, but i have no idea what it means :P
<egg|coffee|egg> it's the beginning of the tablet
<egg|coffee|egg> it's the determinative for star
<whitequark> um
<egg|coffee|egg> which looks like three stars, conveniently
<whitequark> you broke my terminal
<rqou> (i installed every font in the debian repos. that's one way to get no tofu (replacement characters) :P )
<egg|coffee|egg> whitequark: ow, sorry :-\
<whitequark> not too badly
<whitequark> but I'm curious as to how this even happened
<egg|coffee|egg> whitequark: I... tend to generate edge case
<whitequark> egge case *ducks*
<egg|coffee|egg> no need to duck, I do eggpuns all the time
<egg|coffee|egg> #bottorture (on espernet) has a bot for that even
<egg|coffee|egg> (thomas's eggbot)
<whitequark> egg|coffee|egg: https://imgur.com/a/FDdsr
<whitequark> this is an utterly bizarre way to break my terminal and I'm at a loss of what even happened
<egg|coffee|egg> whitequark: I broke someone's IRC client, completely, with a specific sequence of hieroglyph and cuneiform
<egg|coffee|egg> other cuneiform and hieroglyphic bits didn't do it
<whitequark> especially because there's tmux -> mosh -> console
<whitequark> *konsole
<rqou> i see this, is this right? https://imgur.com/a/TPGTU
<whitequark> looks like tmux -> konsole don't exhibit it, so it is probably mosh?
<egg|coffee|egg> but if I said (hieroglyph for star) (cuneiform for star), they couldn't do anything in that channel again
<egg|coffee|egg> they restarted their client, that didn't fix it, because the logs killed them again
<egg|coffee|egg> they ended up changing client :D
<whitequark> hm, I restarted konsole and now it's gone
<whitequark> I have no idea
<whitequark> you broke something *really subtly*
<rqou> wait whitequark i'm not seeing anything broken other than "no font for character"
<whitequark> look at timestamps
<whitequark> way below
<rqou> ooh
<egg|coffee|egg> The specific sequence of characters whas 𓇼 followed by 𒀯, which I since call the egypto-akkadian astral curse, because unicode puns
<whitequark> it even moves!
<rqou> hrm, that's really strange
<rqou> it's not @eevee's "flower emoji misaligns the cursor" issue either :P
<whitequark> egg|coffee|egg: btw I implemented https://github.com/whitequark/ocaml-m17n
<whitequark> which will probably make you happy if you ever use ocaml
<egg|coffee|egg> if I do I'll try to remember about that :D
<rqou> hrm, not sure if that was supposed to be chinese or japanese (semantically valid in both) :P
<whitequark> rqou: japanese
<whitequark> but I have no idea what that is
<egg|coffee|egg> whitequark: btw, I have an issue (assigned to UmbralRaptor for ages, it's become a running joke) to make a test for a particular astrophysical phenomenon, that would yield Лидов古在Test as an identifier :D
<rqou> hrm, figured
<rqou> "赤" is slightly archaic in chinese
<whitequark> egg|coffee|egg: nice
<rqou> whitequark: btw those are colors
<whitequark> are you using 80 columns?!
<whitequark> with those identifiers
<egg|coffee|egg> also my comments illustrate the egg drowning in a sea of papers >_>
<egg|coffee|egg> whitequark: yes :-p
<whitequark> that's nuts
<whitequark> I long gave up on anything less than 100
<egg|coffee|egg> (warning: I may be slightly nuts)
<rqou> but 80 columns means i can comfortably fit four editors side-by-side on my screen
<egg|coffee|egg> it's mostly amendments upon the Google styleguide
<egg|coffee|egg> (since we use Google's logging and testing libs, and phl works there, we use that)
<egg|coffee|egg> (I might work there eventually, if the hiring process advances a bit)
<rqou> btw my desktop setup causes scrot to generate really awesome 7936x2160 screenshots
<egg|coffee|egg> amusingly this behemoth of a codebase is pretty much my first C++ thing
<egg|coffee|egg> (behemoth for a KSP mod that is)
<rqou> wait wtf this was a KSP thing all along?
<egg|coffee|egg> yes
<egg|coffee|egg> this is a KSP mod
massi has joined ##openfpga
<rqou> wtf is wrong with you :P
<egg|coffee|egg> I am an egg drowning in a sea of papers :D
<rqou> not sure if you are more or less hardcore than minecraft modders
<whitequark> more
<egg|coffee|egg> rqou: most of it is general-purpose tbh
<whitequark> minecraft has nothing on it
<rqou> at least with C++ you don't need any AbstractSingletonProxyFactoryBeans :P
<egg|coffee|egg> a lot of work goes to isolate myself from KSP and Unity's madness
<egg|coffee|egg> I have my strongly-typed reference frames and physical quantities
<egg|coffee|egg> to deal with KSP giving me a different reference frame for each function
<whitequark> startup idea: KSP but when you land it's Minecraft
Lord_Nightmare has quit [Ping timeout: 240 seconds]
<rqou> that would melt your computer :P
<whitequark> rqou: just needs enough cores
<rqou> i already have 10
<whitequark> say, four sockets, twelve cores, two threads each
<whitequark> 256G of RAM
<egg|coffee|egg> because I'm a mathematician, so this clarifies things >_>
<whitequark> I have this wonderful 10 kW freon-based water chiller I assembled
<whitequark> sounds good
<whitequark> (well, 10 kW peak, 2 kW continuous)
<rqou> hrm, i have seen these math terms, but i'm not a mathematician so it's not immediately obvious to me
<egg|coffee|egg> rqou: I'm essentially saying why an angular velocity and a velocity do in fact represent the variation of a rigid transformation
<egg|coffee|egg> and how they do so
Lord_Nightmare has joined ##openfpga
<rqou> i kinda sorta maybe see that? :P
<egg|coffee|egg> the rigid transformation is a rotation in SO(3), so its derivative in the Lie algebra 𝖘𝔬(3), and that's canonically isomorphic to bivectors
<egg|coffee|egg> pseudovectors if you're physicist
* rqou 's math knowledge is limited to "second course of linear algebra" :P
<egg|coffee|egg> we distinguish those from vectors
<egg|coffee|egg> because KSP has left and right handed frames
<rqou> i've heard of Lie algebras but don't really know what the properties of them are
<egg|coffee|egg> they're things on their own, but you can encounter them as derivatives on Lie groups
<rqou> i basically am just barely able to explain why dual spaces are useful :P
<egg|coffee|egg> Lie groups are groups but with differential geometry :-p
<whitequark> I've heard some of these words
<rqou> yeah i know nothing about differential geometry
<rqou> i know about groups because of looking into cryptography
<egg|coffee|egg> I can try to do some eggsplaining, but I'm not sure I should turn this into another clone of #kspacademia :-p
<rqou> maybe you can just help make the advanced math wikipedia articles more accessible :P
<egg|coffee|egg> that's... hard
<rqou> somehow they seem particularly bad
<rqou> everything references everything else and you don't have any idea what anything is or where to start
<egg|coffee|egg> because a lot of the advanced stuff really needs to be discussed by talking about shitloads of theoretical background if you're going to say something informative
kuldeep_ has quit [Read error: Connection reset by peer]
kuldeep_ has joined ##openfpga
<egg|coffee|egg> or, to quote the topicquotes of kspacademia, <@egg|zzz|egg> If we are more abstruse it is by standing on the shoulders of really old giants
<rqou> hrm i barely know enough math to do "throw my problem into numpy/scipy" :P
<rqou> welcome to CS majors :P
<egg|coffee|egg> hey, I did my MSc thesis in a CS dept
<egg|coffee|egg> some of the discrete mathematicians are in the CS dept here
<rqou> yeah here too
<whitequark> oh of COURSE you play DF too
<egg|coffee|egg> whitequark: yes, but mostly I have academics in my fort
<egg|coffee|egg> I don't have usable metal on that map, so I just shoot bits of goose bones at goblins while writing papers
<egg|coffee|egg> whitequark: I wonder what is meant by the "of course" there :-p
<whitequark> DF is so great but the rendering of the solids kills me
<whitequark> I can never place a ladder or something correctly the first, or the second time
<whitequark> weeeeelll
<whitequark> :p
<egg|coffee|egg> :D
<whitequark> <@egg|zzz|egg> 5 musicians, but only 1 has an instrument, the other are simulating instruments >_>
<egg|coffee|egg> it does provide some appropriate characters for kspacademia; Nomal is very much a running joke now
<whitequark> is this a capella
kuldeep_ has quit [Remote host closed the connection]
kuldeep_ has joined ##openfpga
<egg|coffee|egg> well if the one with an instrument is playing it, it technically isn't?
<whitequark> amazing
<whitequark> incidentally does principia works with that multiplayer mod?
<whitequark> I don't see any obvious reason it won't, but not sure
<rqou> ksp has multiplayer as a *mod*?
<rqou> wtf
<whitequark> yes
<egg|coffee|egg> so, I think nobody has tried that, but we discussed it in #DMP, our conclusion is "no way"
<rqou> i wonder if ksp or minecraft are worse architecturally
<egg|coffee|egg> see, we persist the state
<egg|coffee|egg> of everything
<egg|coffee|egg> and we are authoritative on that
<egg|coffee|egg> so if you nudge a vessel (incl. with hyperedit), we will laugh at you and undo that
<whitequark> egg|coffee|egg: ... oh
<whitequark> yeah I guess doing that on the server would work but that's a nightmare
<egg|coffee|egg> we kinda need to do that, because all those things are tied to integrator instances, and need to be stored in cartesian coordinates that don't obnoxiously rotate like KSP's do...
<egg|coffee|egg> yeah, you could do it on a server
<rqou> wait, rotating coordinates?
<rqou> why?
<egg|coffee|egg> the ground
<egg|coffee|egg> whitequark: I mean, a running joke wrt principia is that we're using KSP as a graphical shell :-p
<egg|coffee|egg> you could make a principia server in C++ talking to principia clients with protobufs and just display things in KSP I guess? :D
<rqou> lol protobufs
<egg|coffee|egg> we have lots of protobufs
<egg|coffee|egg> our journalling is protobufs
<egg|coffee|egg> (and those generate the interfacing code with our own code generator)
<rqou> i'm waiting for your project to get acquired by google :P
<whitequark> egg|coffee|egg: well, KSP also works as a compatibility layer with other mods
<egg|coffee|egg> rqou: so, of the main two contributors, one works there, and the other is trying to get in? :-p
<rqou> lool
<egg|coffee|egg> whitequark: yeah, I know :D
<egg|coffee|egg> apparently I passed the hiring committee, and now I'm waiting for pre-L to say something
* rqou has two housemates both at google
* whitequark got an offer from google and didn't take it
<whitequark> the environment in .ie creeped me out somewhat
<whitequark> (google.ie that is)
<egg|coffee|egg> here it would be for ZRH
<egg|coffee|egg> the place is nice
<egg|coffee|egg> the really bad headlines are of the sort "5 cows electrocuted by a faulty installation in a storm"
<whitequark> it's not as much the place as the blatant "we want you to work for us all the working hours, and all the free hours, and all the weekneds too"
<egg|coffee|egg> or "cow falls into swimming pool"
<whitequark> "in return for free snacks"
<egg|coffee|egg> well, I sort of have a preview of how it works in practice with my father
<whitequark> naturally I would never refuse that, which is why I decided to not go there
<egg|coffee|egg> we do have the time to make a humongous KSP mod, and do some other things :D
<whitequark> I'm writing a CAD... oh
<rqou> like create fires for my housemate to put out? :P
<rqou> (he is a SRE)
<whitequark> egg|coffee|egg: any chance you have an understanding of NURBS booleans?
<whitequark> I'm plagued by numerical instabilities
<egg|coffee|egg> (I should be honest here, right now it doesn't work on 1.2, it's a buggy mess and it segfaults in a new way every time I start it, and there are also some bugs where I'm misunderstanding how KSP does things so everything spins off to infinity, but WIP)
<egg|coffee|egg> whitequark: uuh
massi has quit [Remote host closed the connection]
<egg|coffee|egg> not really?
<whitequark> aw
<egg|coffee|egg> I mean I took a NM I course so I can tell you about polynomial evaluation stuff etc.
<whitequark> basically there's no NURBS booleans except opencascade
<egg|coffee|egg> and de Casteljau
<whitequark> and opencascade is a library written in such a way as to provide the parent company with consulting contracts
<egg|coffee|egg> de Casteljau got the Bézier price, which is a bit silly :D
<rqou> hrm, you can try my other housemate
<whitequark> so we have our own but they're kind of buggy
<whitequark> there's a guy working full-time on them but he doesn't understand the math either
<egg|coffee|egg> ok, so first, what's a nurbs boolean >_>
<whitequark> boolean operations on solids defined with trimmed NURBS surfaces
<whitequark> to be specific
<rqou> yeah i'll ping my other housemate tomorrow; he might have heard of them
<whitequark> it's for http://solvespace.com
<rqou> he's probably asleep already
<egg|coffee|egg> yeah, I've vaguely heard of your solvespace thing from your twitter :-p
<whitequark> there is a bunch of foss libraries that just address NURBS surfaces
<whitequark> some of them can even do intersections or something
<whitequark> none of them does booleans
<egg|coffee|egg> wouldn't intersection be a boolean operation? I am confused
<whitequark> I mean intersection of two NURBS surfaces
<whitequark> as opposed to two solids, which is much harder
<egg|coffee|egg> solids delimited by surfaces?
<whitequark> (so a solid would be composed from many faces, every face being a trimmed NURBS surface)
<egg|coffee|egg> blarg
<egg|coffee|egg> I haven't the faintest idea
<whitequark> my problem is I understand *none* of the math involved
<whitequark> I couldn't display a triangle with GL2 because there were matrices involved
<whitequark> I spent like a week on that
<whitequark> so I work on the systems and portability parts, and the other dev does the math stuff
<egg|coffee|egg> I can tell you about stuff I do know, numerical linear algebra I do like very much
<rqou> <troll>just put in the identity matrix</troll>
<whitequark> rqou: I tried to make it rotate
<egg|coffee|egg> rqou: it is a good matrix
<whitequark> it did... something else entirely
* egg|coffee|egg pets the identity
<whitequark> lol
<rqou> ugh i hate rotations using matrices
<egg|coffee|egg> principia uses quaternions
<whitequark> solvespace is full of quaternions
<egg|coffee|egg> double cover \o/
<egg|coffee|egg> SU(2)
<egg|coffee|egg> Lie groups \o/
<rqou> i have no idea what SU(2) is, but at least i understand vaguely how to use quaternions :P
<whitequark> some symmetry group?
<egg|coffee|egg> SU(2) is unit quaternions
<rqou> (use = plug in numbers and get what i want)
<egg|coffee|egg> which is probably the thing that you call quaternions
<whitequark> lol
<egg|coffee|egg> because nobody really cares about the whole of quaternions in that context :'(
<rqou> no, i know that you can have non-unit quaternions that aren't as useful for rotations
<egg|coffee|egg> poor quaternions
<whitequark> egg|coffee|egg: I'm reminded of https://twitter.com/whitequark/status/785965196497989632
<egg|coffee|egg> :D
<egg|coffee|egg> whitequark: even worse, there's the case where what someone calls quaternions is just rotations; it's easy not to understand 3d rotation, and then people blame quaternions
<rqou> i also know that some insane person came up with the idea of a "dual quaternion" that can do both a translation and a rotation
<rqou> but i have no idea how
<egg|coffee|egg> hmm
<egg|coffee|egg> rqou: what we use for that is RigidTransformation, which is an AffineMap (see principia/geometry)
<egg|coffee|egg> and that way we don't need to worry too much
<rqou> but i was under the impression that quaternions/dual quaternions are easier to interpolate?
<rqou> although i don't really understand why that is the case either :P
<egg|coffee|egg> possibly?
<egg|coffee|egg> I don't care much for interpolation, I care about sane algebra that helps for typing that helps for not confusing reference frames
<rqou> but quaternions shouldn't make that any worse?
<egg|coffee|egg> they don't, we use quaternions for our rotations; but under the hood, you very rarely touch them
<rqou> i mean, i can get that to work too; i just want to understand intuitively wtf is happening when i use them
<egg|coffee|egg> ah
<egg|coffee|egg> hmm
<rqou> the "read wikipedia, plug numbers in" method works well enough :P :P
<egg|coffee|egg> uh, let's see if I can dig things up about the Hopf fibration
<rqou> wtf
<rqou> you mathematicians have way too many silly names
<egg|coffee|egg> read this very helpful article and know some of these words https://en.wikipedia.org/wiki/Hopf_fibration :D (I'll try saying something sensible about it in a minute)
<egg|coffee|egg> brb though
egg|coffee|egg is now known as egg|afk|egg
<whitequark> "can be visualized" maybe if you're on LSD
<rqou> why can R^3 be compressed into a ball?
<rqou> that doesn't seem like it should work
<rqou> wtf i don't even have an intuitive picture of how to do a stereographic projection of S^3 to R^3
<egg|afk|egg> back
egg|afk|egg is now known as egg|math|egg
<egg|math|egg> whitequark: and yes, my nicks are a QM joke, because I make terrible jokes like that >_>
<rqou> wait were your nicks supposed to be bra-ket notation?
<egg|math|egg> yes
* rqou doesn't understand how that works either :P
<rqou> i know it has something to do with inner products and dual spaces or something??
<egg|math|egg> you have a vector |egg>, <egg| is the linear form which is its conjugate
<whitequark> egg|math|egg: ... I just realized that the IRC client's > is a part of the nick
<whitequark> in this case
<egg|math|egg> :D
<egg|math|egg> rqou: in QM, |egg> would be a state, and <egg|X|egg> is the expectation of the measurement of the observable X on the state |egg>
<egg|math|egg> (assuming that I didn't fuck up, because I am no physicist)
<egg|math|egg> (I took a couple of hilarious MMP lectures)
<rqou> hrm, that sounds plausible :P
* rqou doesn't know QM either
* whitequark has a very rudimentary understanding of QM
<egg|math|egg> and <egg|egg> = 1 if I'm a normalized egg
<rqou> sandwitching a thing between another thing and its transpose is i thing i remember doing at least once when doing probability :P
<egg|math|egg> whitequark: it can be vizualized, once you have understood the abstract nonsense on the left
<egg|math|egg> (with those arrows, it's not quite abstract nonsense yet, but it gets close)
<egg|math|egg> (yes there's something that we affectionately call abstract nonsense; profs *will* say that in a lecture)
<whitequark> I recall that, yes
<egg|math|egg> (that would be categories and the like)
<rqou> wait does <foo|bar> just represent an inner product?
* whitequark goes back to something simple, like implementing a TCP stack from scratch
<egg|math|egg> rqou: well technically it's the application of a linear map to a vector
<egg|math|egg> the thing is that's also your inner product
<egg|math|egg> which is why you have this notation
<egg|math|egg> it's the inner product between |foo> and |bar>
<rqou> ok, that more-or-less makes sense
<egg|math|egg> because <foo| is the linear form which maps v to the inner product of |foo> and v
<egg|math|egg> so, the Hopf fibration
<rqou> ah this is related to the dual spaces i learned and then forgot in my linear algebra class :P
<egg|math|egg> yes, that's those
<egg|math|egg> <egg| lives in the dual space
<rqou> i recall doing something like this in my problem sets
<rqou> but i didn't really understand "when would i actually use this"
* egg|math|egg reads the thing
<egg|math|egg> ok, I'll need to translate that :D
<egg|math|egg> um
<egg|math|egg> rqou: so, ok, you have the 3-sphere (so a 3d sphere, in 4d space) which you identify with the quaternions
<egg|math|egg> and then when you draw it, you draw it in R3
<egg|math|egg> because you don't really have an R4 lying around
<rqou> sure, the first part makes sense
<rqou> but how does the "drawing it in R3" part work?
<egg|math|egg> rqou: you know how you can stereographically project a 2-sphere on the whole plane?
<rqou> not really?
<egg|math|egg> the south pole was removed; it's "the point at infinity"
<egg|math|egg> the rest of the whole sphere gets mapped to the whole plane
<egg|math|egg> this preserves angles too
<rqou> but that seems to be missing a lot more than just the south pole?
<rqou> or would it get infinitely bigger the more you had to include?
<egg|math|egg> rqou: yes, but you're not seeing the whole plane
<egg|math|egg> the whole plane is bijectively mapped to the whole sphere without the south pole
<rqou> ok, i can kinda picture how you would do that
<egg|math|egg> see how any point is going to go somewhere on that line, except the pole at the top
<rqou> ah yes
<egg|math|egg> ok, so, the idea is, we do the same thing to the 3-sphere, and map it to 3d space; you can't really visualize the projection, but allow me to explain what that entails a bit
<egg|math|egg> rqou: ahem, it gives you that; https://upload.wikimedia.org/wikipedia/commons/3/32/Hypersphere_coord.PNG that's going to need some explanation too
<rqou> wtf
* egg|math|egg tries to remember a few things before saying something too stupid
<egg|math|egg> ookay, I think I get it
<egg|math|egg> (I had stuff about the Hopf fibration as an oral exam question in differential geometry)
<egg|math|egg> (it always takes me a while to rewrap my head around it)
<rqou> i never studied it in the first place :P
<egg|math|egg> (also that was fun trying to put my arms on various axes during the exam to illustrate what I was saying)
<rqou> lool
<rqou> my experience was limited to doing "the cross product thing" with my hands :P
<egg|math|egg> (so you see this is the line that goes from 1 to i and then to -1 and this other arm goes to j and the third one goes to k)
<egg|math|egg> for octonions you need to be an octopus
<rqou> lool
<egg|math|egg> rqou: soo, we do the stereographic thing, on S3 identified with quaternions
<egg|math|egg> one pole is called 1
<egg|math|egg> the other one is -1
<egg|math|egg> and on the equator (halfway from either pole on a shortest path), you have i,j,k,-i,-j,-k
<rqou> ok, sure
<egg|math|egg> you can sort of visualize a slice of that on a 2d sphere if you drop the ks, the is in the golf of guinea and somewhere on the other side, and the js at 90 deg longitude
<egg|math|egg> now, what does that map to in 3d space
<egg|math|egg> 1 gets mapped to the origin, because it's the pole we don't remove
<egg|math|egg> -1 gets mapped to infinity
<egg|math|egg> the equator in 2d stereo projection gets mapped to the unit circle, see https://en.wikipedia.org/wiki/Stereographic_projection#/media/File:Stereographic_projection_SW.JPG
<egg|math|egg> so here, the equator gets mapped to the unit sphere around that origin
<egg|math|egg> the six corners of that sphere will be i,j,k,-i,-j,-k
<egg|math|egg> with i opposite -i, etc.
<egg|math|egg> so you get three orthogonal lines
<egg|math|egg> the is, the js, the ks
<rqou> alright, that makes sense
<egg|math|egg> and those lines, when you follow them to infinity, take you towards -1
<rqou> right
<egg|math|egg> (they're meridians, orthogonal to the equator which is a unit sphere in that projection)
<egg|math|egg> ok, now 1 is the identity rotation
<egg|math|egg> -1 too
<egg|math|egg> q and -q are the same rotation
<egg|math|egg> but 1 is the identity
<egg|math|egg> so now, to visualize rotations, we take a normal, pedestrian 2-sphere
<whitequark> 2-sphere?
<egg|math|egg> erm
<egg|math|egg> "sphere"
<whitequark> so like a circle?
<egg|math|egg> 2-dimensional
<egg|math|egg> the earth
<egg|math|egg> the surface of a 3-ball
<whitequark> oh
<egg|math|egg> I am so confusing that I no longer know how to communicate "I want a real sphere thank you"
<rqou> lol
<egg|math|egg> now, you apply a rotation (represented by your quaternion) to that sphere
<egg|math|egg> and you ask "where does the north pole go?"
<egg|math|egg> clearly you have many rotations that will map the north pole to the same place
<egg|math|egg> in fact, they are a 1-parameter family
<egg|math|egg> for instance, let's look at the rotations that leave the north pole there
<egg|math|egg> those are all the rotations around the north pole
<rqou> and then you can combine that with any other rotation?
<egg|math|egg> (I didn't say whether north was xyz or whatever, so now I decide that, by saying that "those rotations that leave the north pole invariant are the ones that correspond to quaternions on the line that goes through 1 and i")
<egg|math|egg> so you have a whole line (but remember, on the 3-sphere it's a circle, because there's -1 too joining its ends) of rotations that map to "rotating around the north pole"
<egg|math|egg> 2 of them are the identity, so if you walk along that line you rotate twice
<egg|math|egg> and then you can look at those rotations that map the north pole to some other point on the sphere
<egg|math|egg> and for each point on the sphere, you'll get a circle of quaternions whose rotations leave that point invariant
<egg|math|egg> and now you can watch that https://www.youtube.com/watch?v=AKotMPGFJYk
<egg|math|egg> on the bottom right, you have the point on the sphere that's left invariant
<egg|math|egg> and the main image shows all the quaternions that leave it invariant
<egg|math|egg> when the point is the north pole, you see that it's the vertical line
<egg|math|egg> (through i and -i)
<egg|math|egg> whitequark: and then that lsd trip is just a screenshot from that video https://en.wikipedia.org/wiki/Hopf_fibration#/media/File:Hopf_Fibration.png
<egg|math|egg> a bunch of points on the sphere, and the circles (oddly deformed by the projection, they can look like lines in the extreme) of quaternions that leave those points invariant
<rqou> ok, that makes sense
<rqou> kinda
<egg|math|egg> and for the most part, you don't actually need that to deal with quaternions expressing rotations; you just need to remember that they're rotations, or rather double covers thereof; but beware, rotations are not easy to think about :-p
<egg|math|egg> SO(3) is a very tricky group :-p
<rqou> so now we can move on and make the problem harder by doing rotations in R^4 right? :P :P
<whitequark> -_-
<egg|math|egg> whitequark: btw, behold the non-exhaustive list of spellings here https://en.wikipedia.org/wiki/Pafnuty_Chebyshev
<rqou> so how was someone insane enough to come up with this thing in the first place?
<egg|math|egg> whitequark: and then look at the italian site, which has a different list https://it.wikipedia.org/wiki/Pafnutij_L%27vovi%C4%8D_%C4%8Ceby%C5%A1%C3%ABv :D
<egg|math|egg> whitequark: Čebyšëv is ISO 9 at least
<egg|math|egg> (bijective to latin with diacritics)
<egg|math|egg> rqou: uh, <@egg|zzz|egg> If we are more abstruse it is by standing on the shoulders of really old giants
<egg|math|egg> rqou: the Hopf fibration itself is from https://en.wikipedia.org/wiki/Heinz_Hopf
<rqou> so why is this particular way of mapping rotations in R^3 to the 3-sphere better than any other arbitrary way of performing this mapping?
<egg|math|egg> well, it's fairly simple (the stereographic projection for a 1- or 2-sphere is something you can readily understand), it only kills one point and the rest gets mapped nicely, and it preserves angles
<egg|math|egg> yes, a 1-sphere is a circle
<rqou> so is the "preserving angles" part the part that makes interpolations work?
<egg|math|egg> ah but you're not using that when doing interpolations
<rqou> wait what?
<egg|math|egg> otherwise going to the other side would take you infinite time
<egg|math|egg> remember, you have a point at infinity :D
<egg|math|egg> tbh I'm not sure how you interpolate those things
<egg|math|egg> probably just parametrize an arc by length on the 3-sphere?
<egg|math|egg> I don't interpolate things, I just shove the universe around in principia :D
<egg|math|egg> rqou: oh btw, the stuff with arrows and S123 here https://en.wikipedia.org/wiki/Hopf_fibration
<rqou> right herp derp interpolating quaternions is more complicated: https://en.wikipedia.org/wiki/Slerp
<egg|math|egg> that means that you're in S3 (the 3-sphere), you get mapped to S2 (the 2-sphere), and for every point in S2 you have a whole circle (S1) of points that get mapped there
<egg|math|egg> rqou: yes, you just do a parametrization by arc length of your path on the 3-sphere
<egg|math|egg> I frankly have no idea why you'd put the word "linear" in there
<rqou> wait so i'm not sure i understand how the particular mapping of points on the 2-sphere to circles was constructed
<rqou> so the north pole mapped to i
<rqou> but how did all of the other points get mapped to circles?
<egg|math|egg> no, the north pole mapped to the whole circle (on the 3-sphere) through 1 and i and -1 and -i
<rqou> er, right
<egg|math|egg> which is a line in the projection, because -1 is our point at infinity
<egg|math|egg> rqou: all the other points also have a 1-parameter family of rotations that leave them invariant
<egg|math|egg> rotate the north pole there, but you have one degree of freedom left to rotate your sphere
<rqou> sure, so they do indeed map to circles
<rqou> doesn't the hopf fibration assign a particular circle corresponding to each point on the 2-sphere though?
<egg|math|egg> "1 parameter family" is differential geometer slang for "thing that's like a line" :D
<egg|math|egg> rqou: yes, the preimage of a point in S2 is a circle in S3
<egg|math|egg> (i.e. there's a whole circle in S3 that goes to any point in S2)
<rqou> but there can be multiple ways to map points on S2 to circles on S3?
<rqou> isn't that youtube visualization picking a particular mapping?
<egg|math|egg> well you can do what you want, but then it's not the Hopf fibration
<rqou> so the Hopf fibration defines one specific mapping?
<egg|math|egg> yes, the Hopf fibration is a map from S3 to S2
<rqou> why is this particular map from S3 to S2 "better?"
<egg|math|egg> which has the property that the preimage of a point in S2 is an S1 in S3
<egg|math|egg> rqou: it's not "better", it's a function, we study it :D
<rqou> why couldn't i map e.g. the north pole to a circle going through 1,j,-1,-j?
<egg|math|egg> ah, you can, yes
<egg|math|egg> you can fool with coordinates all you want
<rqou> and it would be slightly different, right?
<egg|math|egg> I mean per se the Hopf fibration doesn't use coordinats
<egg|math|egg> s/ts/tes
<egg|math|egg> it says S3, not "the unit quaternions"
<egg|math|egg> but it happens to be a good way of visualizing how unit quaternions do rotations
<rqou> ah i think i get it
<rqou> in the abstract sense none of the ways of assigning coordinates or messing with signs really "does anything"
<egg|math|egg> rqou: Hopf gives you a map from an unmarked S3 to an unmarked S2
<rqou> yeah
<rqou> i see
<egg|math|egg> it happens that you can paint the unit quaternions onto that S3, and a north pole onto that S2
<egg|math|egg> and suddenly it shows you rotations
<egg|math|egg> but the Hopf map doesn't need your paint
<rqou> so that youtube visualization picked a particular useful set of assignments of coordinates/numbers/etc.
<rqou> but yeah, the actual Hopf map doesn't need them
<rqou> is that right?
<egg|math|egg> rqou: well, the youtube vid has less numbers than I had, it doesn't say whether there's an ijk in there; it does make a choice, which is which point to remove for the stereographic projection, and then there's the choice of how it draws things (in what orientation), that's also arbitrary, but a more usual sort of arbitrary choice
<rqou> sure
<egg|math|egg> if I take a photo of my coffee cup, I have chosen how I oriented it wrt the camera, but that's not a very surprising arbitrary choice
<egg|math|egg> the video is as pure as it can be really
<egg|math|egg> however, I can say "the straight lines are ijk", "this is about rotations that map the north pole to whatever", and that's making choices
<egg|math|egg> and giving additional meaning to this video in the process
<rqou> right
<rqou> now let's do this whole exercise again for dual quaternions :P :P :P
<egg|math|egg> what's a dual quaternion
<rqou> basically they took two quaternions and combined one of them with an epsilon
<rqou> such that epsilon*epsilon=0
<egg|math|egg> huh
<rqou> and somehow this represents a translation and a rotation in R3
<rqou> using 8 numbers
<egg|math|egg> hmm
<egg|math|egg> I have no idea
<rqou> lool
<rqou> even though you're a math person? :P
<egg|math|egg> I've literally never heard of dual numbers before
<egg|math|egg> whitequark: anyway, if you have questions about numerical linear algebra feel free to poke me about that (perhaps in #kspacademia or somesuch if this channel is being on-topic, because eggsplanations tend to be high-bandwidth). Or numerical integration. Or really anything numerics, sometimes I won't know about it but it's generally a good bet that I might be intersted :D
<whitequark> egg|math|egg: 'kay thanks for the offer!
<rqou> question: how do i cause <come up with some security violation> using denormals? :P :P
* egg|math|egg cannot into security questions, and very little into safety questions beyond "if it really matters maybe prove things"
<rqou> what about "how do i trigger microcode bugs using denormals?" :P :P
<whitequark> egg|math|egg: you're simultaneously welcome to ask PL, systems or hardware questions
<rqou> slightly more seriously, "how do i not get denormals in my calculations?"
<egg|math|egg> whitequark: the past three days of #kspacademia should show you what sort of "drowning into papers" happens when you ask me questions, but I try to be undestandable :-p https://logs.tmsp.io/kspacademia/2017-03-05#19161;
<egg|math|egg> rqou: well, you could poke the FP environment to not have gradual underflow, but gradual underflow tends to be better than the alternative
<whitequark> egg|math|egg: oh god I see what you mean about channel names now
<egg|math|egg> whitequark: that last one was to stress-test things
<egg|math|egg> whitequark: actually #!/bin/sh and #KSPD&D are the only "regular" ones, the rest was created to test bugs
<rqou> egg|math|egg: btw what about "now explain how to use octonions and why they are useful" :P :P
<egg|math|egg> whitequark: the channel with a long name actually isn't called that, it's 32 chars long (ends with |?) but gets clipped by varchar(30). But https://logs.tmsp.io/kspunofficial/2017-03-06#1488830521-1488830552;
<egg|math|egg> whitequark: otoh, I am in a (semi-secret) actual channel that was created by someone swearing by mashing shift+numbers, so % in a channel name does matter to me :D
<egg|math|egg> so apparently my hiring process is stuck pending headcounts :-p
<egg|math|egg> more time to work on principia!
* egg|math|egg pokes an iterator that's in the boonies somehow
<egg|math|egg> F0306 18:23:18.146169 65092 vessel.cpp:144] Check failed: time == it.time() (+1.86230824700874291e+04 s vs. +1.35807730622271494e-312 s)
<egg|math|egg> that's an iterator in the boonies alright
<rqou> btw egg|math|egg: have you ever heard the joke/theory that math people can only be good at algebra or analysis but not both?
<rqou> do you agree that it is true? :P
<egg|math|egg> oh I'm definitely not an analysis person
<egg|math|egg> algebra or discrete math, ok
<rqou> lol same here
<egg|math|egg> which is funny, because otoh I love numerical integration
<egg|math|egg> which does have some calculus to it in the few things you can prove
<egg|math|egg> though if you go symplectic it has some algebraic aspects to it? I mean it's still things that would be calculusy
<egg|math|egg> rqou: also I can't do mental calculations; I never know my age, even though I know the date and my birthdate :D
<egg|math|egg> (1993-12-11)
<egg|math|egg> 23?
<rqou> wow young :P
<egg|math|egg> rqou: well, see the commit dates on my MSc. thesis, finished that 5 months ago :-p
<whitequark> egg|math|egg: ...
<rqou> wow damn
<egg|math|egg> whitequark: I am confused which part of my silliness you are specifically ...ing at :-)
<rqou> although i'm actually 22
<rqou> no master's degree yet though
<whitequark> egg|math|egg: you're slightly younger than me
<egg|math|egg> yes, that would be my general expectation?
<rqou> wait whitequark you're only in your 20s?
<whitequark> rqou: I was born in 1993
<rqou> somehow i though you were much older than that
<egg|math|egg> huh, I'd have thought the same thing as rqou somehow too
* lain feels old
* whitequark also feels old
<egg|math|egg> whitequark: largely unrelated question: what do you think about quark as a pizza topping
<egg|math|egg> this stuff https://en.wikipedia.org/wiki/Quark_(dairy_product), not the particles; though when I eat a pizza with that there are some hadron jokes
<whitequark> egg|math|egg: that's horrifying, but don't feel bad, because I find all sauces horrifying
<whitequark> (for example)
<whitequark> I'm not good with food :p
<rqou> still not as bad as lain :P
<whitequark> in fact I found exactly one kind of pizza that I consider edible, that consists of bread, cheese, and meat
<lain> soylent!
<whitequark> I have to specifically order it without sauce
<whitequark> lain: expensive and shoddy manufacturing practices
<whitequark> otherwise, yes, I would be very happy with soylent
<egg|math|egg> I guess technically quark counts as cheese :-p
<lain> whitequark: alternatives?
<lain> it's a lot cheaper than flod
<rqou> make your own soylent? :P
<lain> food*
<rqou> (one of my housemates was doing that at one point :P )
<whitequark> lain: cuz you don't have to ship it to HK
<whitequark> I don't spend that much on food
<lain> eell ok :P
<lain> well*
<rqou> hk food is pretty cheap
<lain> I shouldn't try to irc and exercise simultaneously
<whitequark> yeah
<whitequark> and fastfood in hk is even cheaper :p
<rqou> although supposedly relative to incomes US food is still cheaper
<whitequark> US food is heavily subsidized isn't it?
<rqou> um... we don't talk about that :P
<egg|math|egg> was in Saigon a couple of weeks ago, I'm in Zurich now, the difference in food price is striking
* whitequark wants pizza now
<whitequark> goddamn.
* rqou took a university course on (among other related topics) the problems with US agribusiness
<rqou> egg|math|egg: everything in EU is expensive :P
<egg|math|egg> rqou: Switzerland is not in the EU
<egg|math|egg> :-p
<rqou> wait it isn't?
<rqou> oh right
<egg|math|egg> no, but it is in Schengen
<rqou> right
<egg|math|egg> it's arguably closer to being there than the brits ever have been, but it isn't :D
<rqou> just like some of your other random microstates, right?
<egg|math|egg> but it is quite costlier than neighbouring countries, so you have ads "Billig wie in Deutschland" (cheap as in germany!)
<whitequark> lol
<rqou> lol
<egg|math|egg> people literally drive through the border for weekly shopping sometimes
<egg|math|egg> (Schengen remember)
<rqou> do you not have to pay taxes on imports?
<egg|math|egg> Schengen: there's no visible border
<egg|math|egg> I mean, the border with france is visible because that's where you start to see dog shit on the ground :D
<whitequark> lol
<whitequark> don't visit san francisco then
<rqou> right, but you don't even have to technically declare it?
<egg|math|egg> whitequark: have you been to Paris?
<whitequark> egg|math|egg: yes
<egg|math|egg> well, the smaller streets are temples of dog shit
<egg|math|egg> rqou: I don't think so? customs union too
<rqou> ah ok
<whitequark> egg|math|egg: you can tell san francisco starts because there's a startup and right on the other side there's human shit and a few homeless men
<whitequark> paris is fine
<rqou> i was told that getting stuff shipped from non-EU into the EU is really annoying because of customs
<egg|math|egg> I like Paris. Parisians are arseholes. I am Parisian.
<rqou> unlike the US where for personal use they basically don't give a damn
<whitequark> rqou: that is the case
<egg|math|egg> rqou: if I take an aircraft inside Schengen, there's no immigration; you need ID just to board because aircraft companies care about that
<whitequark> I recall sb0 telling me why he moved to HK
<rqou> yeah i know that
<egg|math|egg> but no need for a passport, ID card will do (don't have one though, so I use a passport)
<rqou> i recently went on a western europe vacation with family
<whitequark> because every time he ordered some small scientific thing he had to go one hour on a train to the customs point and then one hour back
<egg|math|egg> which reminds me, I should buy some glassware
<egg|math|egg> (for mixing cocktails and cooking)
<whitequark> ... oh
<rqou> not for chemistry?
<whitequark> that kind.
<egg|math|egg> (lab glassware is for that right)
<whitequark> RU has *very* cheap glassware
<egg|math|egg> I just buy it from a swiss supplier
<rqou> is glassware restricted in the EU/CH?
<egg|math|egg> graduated cylinders are the best for cocktail mixing
<egg|math|egg> yes, I have seen that
<egg|math|egg> when I came to Saigon in fact
<egg|math|egg> (via SVO, that was a mistake, but anyway)
<egg|math|egg> at least I had my laptop in my carry-on
<whitequark> at least it wasn't VKO
<whitequark> VKO manages to be even worse than CDG, somehow
<egg|math|egg> I have found SVO worse than CDG tbh
<egg|math|egg> and I have had some experience with CDG before I moved here
<rqou> i take it you haven't experienced the delays at CAN :P
<whitequark> I don't recall much about SVO unfortunately, RU<>HK flights go through DME
<whitequark> well the good ones
<rqou> how many airports does moscow need?
<egg|math|egg> well, aside from the fact that the luggage didn't make it through (well one of two pieces, on the way back) and came 2 days later, I was with my parents, and my parents didn't make it through the connection either :D
<whitequark> those are just the international ones
<egg|math|egg> so they came 36h later via ICN
<rqou> i was told ICN sucks too
<egg|math|egg> dunno, I mean, you're never going to hear that an airport is great, but it was apparently better than SVO :D
<egg|math|egg> a low bar
<rqou> my family usually did east asia connections at NRT if at all
<whitequark> personally I grade airports by the arrangement of security checkpoints
<egg|math|egg> I think next time we go to SGN we'll do it with Cathay like the previous time
<egg|math|egg> that went quite well, even on a tight connection
<whitequark> for example, DME x-rays your luggage another time before check-in but SVO doesn't
<whitequark> so I have less explanation to do at SVO
<egg|math|egg> hah
<rqou> heh, you're going to love EWR
<whitequark> they didn't like my 6-liter canister of R-141b :(
<rqou> international connections dump you outside the secure area and you have to go through security again
<egg|math|egg> yeah, I was vaguely pondering bringing a scope with me, didn't because of such concernsn
pie_ has joined ##openfpga
<egg|math|egg> anyway the weather was shit
<whitequark> lol no scopes are fine
<whitequark> I brought a turbomolecular pump once
<whitequark> (actually I think two of them?)
<rqou> i had hamburg airport give me more trouble for my "giant box of electronics" than any US airport
<egg|math|egg> whitequark: well, frankly given how the luggage was handled, I wouldn't bring my refractor
<whitequark> on X-ray it looks like a thick cylinder full of blades
<egg|math|egg> :D
<rqou> somehow hamburg airport always flags me (or just all post-CCC people?)
<rqou> hamburg is always extra slow the day after CCC :P
<egg|math|egg> yes, I saw that too
<whitequark> hm I thought you've followed me for far shorter
<egg|math|egg> whitequark: I used to just use twitter by going to twitte.com/whomever, and to a large extent I still do
<egg|math|egg> that way if I want to hear about the sort of crazy things whitequark does I can see that and not french law and politics at the same time
<whitequark> ah
<whitequark> I would never have enough patience to do this but I know some people do
<rqou> so is france still worrying about french politics or is everybody just worried about american politics? :P
<egg|math|egg> well, I think the RPR/UMP/LR/what are they called today right-wing candidate is managing to kill himself
<whitequark> we'll all die in a nuclear war</thread>
<egg|math|egg> campaigned on his probity, his wife had a fictive job as assistant in parliament, is being looked at by the thing that prosecutes financial matters
<egg|math|egg> so who knows, the party is supposed to meet, maybe they'll pick another one of the primary candidates?
<rqou> wait is this FR or CH?
<egg|math|egg> primaries are a new thing here
<egg|math|egg> france
<egg|math|egg> switzerland... I don't know who the head of the executive is
<egg|math|egg> Leuthard again maybe?
<egg|math|egg> switzerland is a strange country
<rqou> not relevant enough? :P
<egg|math|egg> they actually manage to have referenda where they decide that they don't want less taxes
<egg|math|egg> and there was a high-profile one where they prevented the government from buying new jet fighters
<egg|math|egg> also the executive is 7 people, with one who's the president, but essentially is just primus inter pares, so you don't really care who that is :-p
<egg|math|egg> and somehow their socialist party is monolithic because they didn't have the congres de tours like france, so no separate communits
<egg|math|egg> unists even
<egg|math|egg> communits? the means of dimensional analysis?
<whitequark> lol
<egg|math|egg> rqou: and anyway the breaking news are cows
<egg|math|egg> they have army helicopters to give water to cows
<egg|math|egg> they fly cows by helicopter when they need treatment
<whitequark> what *is* it with cows in CH
<rqou> alright, time for me to go to sleep
<rqou> it's 4am
<egg|math|egg> and they get watered by super pumas http://www.gannett-cdn.com/-mm-/caca939a5683eae89543a9c6e37b36c830f10ae1/c=0-206-4096-2520&r=x324&c=600x321/local/-/media/2015/07/27/USATODAY/USATODAY/635736178082143837-EPA-SWITZERLAND-CATTLE-WATER-SHORTAG.jpg
<egg|math|egg> they actually screwed that up and got water from a french lake :-p
* egg|math|egg goes back to fighting principia things
egg|math|egg is now known as egg|principia|eg
pie_ has quit [Ping timeout: 256 seconds]
promach has quit [Ping timeout: 258 seconds]
promach has joined ##openfpga
pie_ has joined ##openfpga
pie_ has quit [Ping timeout: 268 seconds]
pie_ has joined ##openfpga
<egg|principia|eg> huh, the nick length limit is shorter than esper's
egg|principia|eg is now known as egg|egg
<egg|egg> = 1 :D
<whitequark> hehe. the only other nick I use is hashtag_blood
<whitequark> I switch to it every time someone mentions blood, because blood
<whitequark> #blood
<whitequark> ahem
<egg|egg> whitequark: I seem to be missing some context O_o
<egg|egg> also I have no idea why my iterators are in the boonies :-\
<whitequark> egg|egg: I like blood
<whitequark> egg|egg: have you tried ubsan
<whitequark> /asan/msan
<whitequark> (depending on how exactly you interface with KSP asan/msan may not work here)
<egg|egg> nah, I mean, it's mostly me being lazy, I'm trying to find it by staring at the code, whereas I can trivially create a journal and replay it in the debugger
<egg|egg> our journalling madness is really useful
<whitequark> do you know about rr?
<egg|egg> but that requires restarting KSP, which somehow I find very tedious
kuldeep_ has quit [Remote host closed the connection]
<egg|egg> rr? no
kuldeep_ has joined ##openfpga
<egg|egg> whitequark: yeah, that's pretty much the idea of our journal, since we have a nice well-defined interface, we log everything that goes through it (in protos \o/) and then we can replay the C++
<whitequark> ah I see
<egg|egg> the C# is undebuggable madness because there's KSP there anyway, but the C++ isn't quite as much of a lost cause :-p
<whitequark> you could use rr with the entire KSP I suppose
<whitequark> but yeah that sounds like a journal is a better idea
<egg|egg> also we develop on windows, so those utils wouldn't do :-p
<whitequark> there's the WSL
<egg|egg> I miss Qboid's acronym expansion here :-p
<egg|egg> (Thomas's bot on espernet, the one doing the logging, expands acronyms)
<egg|egg> (mostly space stuff)
<whitequark> Windows Subsystem for Linux
<egg|egg> ah
<whitequark> it's great, it just implements the Linux syscall interface natively on top of NT kernel
<pie_> kerbal space program?
<whitequark> I keep wanting to make Debian/kWindowsNT deployable
<egg|egg> pie_: yes, I'm eggrobin on the fora
<egg|egg> and I make principia
<whitequark> I don't want or need all that win32k madness :p
<egg|egg> (together with phl)
<egg|egg> erm, phl being pleroy on github
<pie_> i have no idea what were talking about heh
<whitequark> that's your father right?
<egg|egg> yes
<egg|egg> pie_: principia is this thing https://github.com/mockingbirdnest/Principia
<pie_> cool
<egg|egg> pie_: it has documentation that looks like https://github.com/mockingbirdnest/Principia/blob/master/documentation/Composition%20methods.pdf and it is currently a crashy mess
<egg|egg> welp I'll journal it, because I'm not seeing it :-\
<pie_> inb4 straight up plug gmat into ksp
<egg|egg> whitequark: btw, you'll like this anecdote about Ada: John Barnes & my father pushed to have π to force implementations to support Unicode properly :D http://www.adaic.org/resources/add_content/standards/05rm/html/RM-A-5.html
<egg|egg> the gnat people were really upset about that
<whitequark> LOL
<egg|egg> the nuttiness runs in the family of course >_> https://github.com/mockingbirdnest/Principia/blob/master/quantities/numbers.hpp
<whitequark> no, that unicode is fine
<whitequark> #pragma once though...
* whitequark stares at egg
<egg|egg> it is true that it's not standard, but all compilers support it
<egg|egg> eventually we'll have modules anyway
<egg|egg> and the thing might compile in finite time
<egg|egg> if you want really nutty we have UT1 literals though
<pie_> is there even enough precision for that
<egg|egg> pie_: no, I just copy-pasted it from ada.numerics :D
<egg|egg> but C++ doesn't have Universal_Real, it's just a double (IEEE 754 binary64)
<whitequark> egg|egg: does "eventually" here imply "in less than ℵ₀ years"
<whitequark> also UT1 literals sound great
<egg|egg> whitequark: Google uses modules internally
<whitequark> UTC is madness
<egg|egg> whitequark: well, UT1 literals that are evaluated compile-time...
<whitequark> egg|egg: you should talk to @alt_kia about leap seconds.
* whitequark giggles
<egg|egg> whitequark: oh, I have UTC literals too
<whitequark> as for Google and modules, what compiler do they use? clang?
<egg|egg> I even do pre-72 UTC
<egg|egg> yes, clang
<whitequark> clang doesn't have "real" modules
<egg|egg> well
<whitequark> and I'm unaware of any public patchsets that add those
<whitequark> so yes, Google probably uses modules for some values of "uses" and "modules"
<egg|egg> the proposals are fighting each other, but they do have module support for some definition thereof
<whitequark> lol
<whitequark> it's completely useless
<whitequark> it's been there for years
<egg|egg> apparently at google it matters quite a bit
<whitequark> I think the MSVC one actually works
<egg|egg> improved compile times etc.
<whitequark> (but don't quote me on that)
<egg|egg> (on the scale of Google's codebase this stuff kind of matters)
<whitequark> yeah, I know about Google's scale a bit
promach has quit [Quit: Leaving]
<whitequark> I've read their whitepapers and such
<egg|egg> whitequark: the compile-time interpretation of UT1 literals uses this awful thing https://github.com/mockingbirdnest/Principia/blob/master/astronomy/eop_c04.generated.h
<whitequark> why on earth are you using ' to separate parts of the date
<whitequark> how does that even work
<egg|egg> that's the grouping character in numbers in C++14 and later
<egg|egg> that's just an integer
<whitequark> also how large is that file?!
<egg|egg> *whistles*
<whitequark> have you considered interpolation?
<egg|egg> what? and then I'm going to be inconsistent with the IERS :D
<egg|egg> I interpolate between those points
<whitequark> oh
<whitequark> oh god
<whitequark> I regret asking
<whitequark> :p
<egg|egg> whitequark: the date literals themselves are of the form shown here https://github.com/mockingbirdnest/Principia/blob/master/astronomy/time_scales_test.cpp#L80-L84
<whitequark> why do you even need all of UTC, UT1 and TAI in Principia
<egg|egg> whitequark: uhm >_> mostly it was fun to code? but we use some dates in tests
<whitequark> oookay
<egg|egg> e.g. testing that eclipses happen at the right time
<whitequark> oh
<egg|egg> and we get UT1 times from NASA JPL
<whitequark> wow you have unit tests for eclipses
<egg|egg> whereas our ephemerides are in TT=TDB (we don't do GR)
<egg|egg> and while we're at it we have UTC because why not, and down to pre-72 because why not :D
<egg|egg> whitequark: actually solar eclipses are a TODO, and lunar are very inaccurate because nobody agrees on when they start
<egg|egg> you assume the earth is sort of bigger to account for refraction typically (that's how the astronomers do it)
<whitequark> lol okay
massi has joined ##openfpga
talsit has left ##openfpga [##openfpga]
<egg|egg> ... so the one time I'm recording a journal it doesn't crash because the vessel is in the atmosphere instead >_>
<qu1j0t3> whitequark | wow you have unit tests for eclipses :D
<egg|egg> qu1j0t3: your client doesn't have <> around the nicks? you're missing out on my terrible QM joke D:
<qu1j0t3> it does not. (weechat)
<egg|egg> rqou: whitequark: oh hey, looking at the image search page that I had open I see the image I wanted to show you http://i.imgur.com/Fst3Sau.png
<whitequark> egg|egg: what
<egg|egg> whitequark: projecting stereograpically S3 identified with the unit quaternions onto R3, around 1?
<egg|egg> with i,j,k,-i,-j,-k on the equator (which gets projected to the unit sphere), and the meridians through those (which turn into orthogonal lines)
<cr1901_modern> are the "-1 cubes" points on the unit sphere?
<egg|egg> the -1 are all the same and are at infinity
<egg|egg> because it's a projection, all those meridians meet at the pole that's not there
<egg|egg> yeah, that bit probably isn't terribly clear
<egg|egg> turns out labeling the ends of infinite lines is a bit confusing
<egg|egg> okaaay my journal is invalid (invalid floating point number?) O_o
m_t has joined ##openfpga
<egg|egg> whitequark: uh, so with the channel escape thing, what should the behaviour be on invalid things, e.g. ~h~h~
<egg|egg> is breaking hilariously ok? >_>
<whitequark> egg|egg: garbage in, garbage out
<egg|egg> :D
<cr1901_modern> "yeah, that bit probably isn't terribly clear" Yea, sorry you lost me. But no big deal lol
<egg|egg> cr1901_modern: there's some context, in a massive backlog
<egg|egg> the context is the Hopf fibration
amclain has joined ##openfpga
pie_ has quit [Ping timeout: 268 seconds]
<whitequark> gah I never considered when writing the bot that posting a link to a log will ping me
<egg|egg> hah
<egg|egg> well, talking about chickenzygotes tends to ping me :-p
<whitequark> hm
<whitequark> I'd think only the yolk is the zygote
<egg|egg> probably, but Majiir called me that at some point, so I set my client to ping on that :D
<egg|egg> amusingly it doesn't ping on yolk
<egg|egg> whitequark: what's the chosen solution for old links btw, because the escaping scheme doesn't cover .
<whitequark> egg|egg: manually add all old names in application.yml
<egg|egg> whitequark: ah, and have that redirect accordingly on your server only?
<egg|egg> makes sense
<whitequark> yeah
<whitequark> and I suppose anyone else running an instance?
<egg|egg> I mean, if someone created a #.openfpga channel here they'd run into issues, but... why
<whitequark> um no
<whitequark> application.yml is per-instance
<whitequark> you won't have the redirect on yours
<egg|egg> right, but you couldn't log that channel
<egg|egg> (by "here" I meant on freenode)
<whitequark> ... hm
<whitequark> not unless I added another mapping, that desugars into #.openfpga!
<egg|egg> :D :D D:
kuldeep_ has quit [Remote host closed the connection]
kuldeep_ has joined ##openfpga
digshadow has quit [Quit: Leaving.]
pie_ has joined ##openfpga
massi has quit [Remote host closed the connection]
<egg|egg> whitequark: uh, I missed %22 ", how about ~d~ for double quote
<egg|egg> that also gets escaped by the browser
<egg|egg> rendered as " in the address bar, but copies as %22
<whitequark> egg|egg: ~q~ for ', ~Q~ for "
<egg|egg> whitequark: no, ' is fine
<whitequark> oh
<egg|egg> and q is ?
<whitequark> okay
<egg|egg> ~trigraphs~ >_>
<whitequark> hm
<whitequark> what if we used actual trigraphs
<mtp> NO
<mtp> TRIGRAPHS ARE ILLEGAL
<whitequark> mtp: you seem to have strong opinion on trigraphs
<whitequark> of all things
<mtp> trigraphs are literally for EBCDIC backwards compatibility
<egg|egg> Allowed Replacements of Characters, annex J.2
<mtp> also i have strong opinions about everything
<egg|egg> Ada has that stuff too :D
<mtp> i just don't express them here because i have no social capital ;p
<egg|egg> J.2 \o/
<egg|egg> ! for |, : for #, % for "
<egg|egg> that's even for pre-EBCDIC, EBCDIC has a lot of stuff
<egg|egg> hell, it has the broken bar as well as |
<egg|egg> whitequark: but no, trigraphs won't do, because ? :-p
<whitequark> yeah, I know
<egg|egg> also thomas wrote the implementation for the quarkian trigraphs, and probably doesn't want to redo it
<egg|egg> quarkian?
<egg|egg> hadronic trigraphs?
<egg|egg> the baryonic escapes
<whitequark> egg|egg: oh he'll have to.
<whitequark> that code is... dread-inducing
<whitequark> and too complicateed for its own good anyway
<egg|egg> whitequark: well, afaik he's new to ruby
<egg|egg> and I have never written a line of the thing either >_>
<whitequark> yeah keep it that way tbqh
<whitequark> I stopped writing Ruby after I wrote a Ruby parser
<egg|egg> :D
<whitequark> it includes the first and, I believe, only reimplementation of the Ruby lexer from scratch, in existence
<whitequark> it also seems very likely to *stay* the only reimplementation of the Ruby lexer
<egg|egg> :D
<egg|egg> tbh, principia might have *the other UTC-to-TAI*, I compared it with astropy, astropy uses code provided by the IAU :-p
<egg|egg> for pre-72 it's *fun*
<egg|egg> they changed rates
<egg|egg> as well as having leaps
<egg|egg> they would change the frequencies they'd transmit
<whitequark> what
<egg|egg> thereby changing the length of the second (their stuff was a frequency standard)
<egg|egg> \o/
<whitequark> that's nuts
<egg|egg> whitequark: oh if you think leap seconds are nuts, they replace much nuttier :D
<whitequark> like I see why that works but it's nuts
<whitequark> yes, I know why leap seconds exist
<whitequark> they should not exist in actual clocks. clocks should be on TAI and leap seconds should be kept in tzdata
<egg|egg> yes, I agree, one should use a stable atomic-based time for computing
<egg|egg> TAI, or TT if you're an astronomer
<egg|egg> then you're off by some number of milliseconds that's constant because ~meaningful historical reasons~
<egg|egg> whitequark: but before 72, they'd just screw with the frequency standard \o/
<egg|egg> whitequark: see the time-dependent offset before 72 http://hpiers.obspm.fr/eop-pc/index.php?index=TAI-UTC_tab :D
<egg|egg> whitequark: as for the channel name stuff, yeah, de-escaping with a substitution sounds like a trap; e.g. you don't want to try to interpret ~~~~ as the trigraph ~~~ followed by ~, you don't want to recognize a ~~ in ~h~~h~, etc.; I suggested thomas's method because I can convince myself that it's correct, albeit dreadful
<whitequark> huh?
<whitequark> a regex in this case is just a shorter way to write a state machine
<whitequark> I've suggested it precisely because I have a harder time convincing myself the expanded form is correct
<egg|egg> well you propose gsub(/~(.)~/)
<egg|egg> that will match ~~~, right?
<egg|egg> in ~~~~
<whitequark> I said "something like"
<whitequark> it should be uh
<whitequark> /~([^~]?)~/, precisely
<egg|egg> hmm
<egg|egg> I think that works? I'm not quite sure, but ok?
<egg|egg> ah but gsub doesn't return empty groups, so it doesn't work for ~~
digshadow has joined ##openfpga
<egg|egg> can just have the whole trigraph/digraph in the map though :-p
<whitequark> sure it does
<whitequark> it's just nil
<whitequark> anyway the whole trigraph also works
<whitequark> I have no opinion on the choice here
<egg|egg> ah it's nil and not empty string
Bike has joined ##openfpga
<egg|egg> hmm
UmbralRaptor has joined ##openfpga
<egg|egg> o/ UmbralRaptor
<egg|egg> UmbralRaptor: you can contribute to turning this into a kspacademia clone :D
<UmbralRaptor> >_>
<cr1901_modern> I thought ##openfpga was a channel where we talked about anime...
<cr1901_modern> All two of us who watch it.
<egg|egg> well, I thought it was about electronics, then I talked about the Hopf fibration
<egg|egg> it is a good fibration
* egg|egg pets the fibers
<egg|egg> cr1901_modern: I cannot find anime pertaining to the Hopf fibration
<cr1901_modern> Idk if one could make a 13-episode anime discussing the Hopf fibration
<cr1901_modern> (In any case, I'm making a joke about how ##openfpga diverts off-topic very frequently and azonenberg lost interest in enforcing it)
<egg|egg> tbh I'm quite fond of regularly off-topic channels
<egg|egg> kspacademia is as much about Nomal the worried goblin as it is about academia or my eggsplanations
<azonenberg> Lol
<UmbralRaptor> To be fair, Nomal acts exactly like a grad student.
<egg|egg> that is alarmingly true.
* cr1901_modern doesn't play ksp lol
<azonenberg> whitequark: BTW
<azonenberg> i am going to be building a sampling oscilloscope PMOD soon
<azonenberg> if thats not silly i dont know what is :p
<cr1901_modern> azonenberg: Somebody did that recently- check OSHPark's twitter
<azonenberg> cr1901_modern: how fast?
<cr1901_modern> 80 Msps
<azonenberg> ... oh
<azonenberg> I'm looking at 10 GHz b/w, effective 20 or 40 GSa/s
<cr1901_modern> Have fun :D
<azonenberg> although of course actual sample rates will be in the low hundred MHz or less
<azonenberg> Basically i'm taking a stupid-fast latching comparator
<azonenberg> and triggering the latch at precise phase offsets into the (repetitive) input signal
<cr1901_modern> Oh, so it's one of those oscilloscopes that only works with a periodic waveform?
<azonenberg> Yes
<azonenberg> i'm doing equivalent time in both the time and voltage domains
<azonenberg> since the sampling element is a comparator vs a S&H + ADC
<azonenberg> So i start out sampling the input waveform every 25 ps and comparing against Vref = 0
<azonenberg> then once i sweep the whole waveform push Vref up by one LSB on the DAC
<azonenberg> and repeat
<cr1901_modern> How is that a "sample rate in the low hundred MHz or less"?
<azonenberg> Because i'm not actually sampling every 25 ps
<azonenberg> i trigger the input signal, wait 25 ps, sample a value
<azonenberg> a nanosecond or two later the FPGA reads the sampled output
<cr1901_modern> Ahhh
<azonenberg> then i use the SPI controller to change the delay to 50 ps
<azonenberg> retrigger
<azonenberg> in practice i wouldnt actually do one sample per waveform
<azonenberg> i'd probably do say one sample at 25 ps and one at 1025 ps or something
<azonenberg> then one at 2025
<whitequark> neat
<azonenberg> then change the delay to 50 ps and sample at 50, 1050, 2050
<azonenberg> The key elements are a $20 PLL, a $40 comparator, a $10 VCXO, and a random jellybean DAC
<cr1901_modern> So you increment the delay and vref a large number of times to "construct" a full picture of the waveform over time
<azonenberg> Yes
<azonenberg> This is my strategy for sampling periodic waveforms slowly but extremely inexpensively, with a high degree of accuracy
<azonenberg> The one thing i still have to work on is the post-processing
<azonenberg> my initial use of this technique was a TDR, where the waveform was a function of the incoming signal
<azonenberg> i.e. there was one and only one voltage at a given point in time
<azonenberg> If you're doing an eye plot, on the other hand
<azonenberg> there may be multiple voltages at the same phase offset within the UI
<azonenberg> So that may confuse the postprocessor
<azonenberg> One option i'm considering is to do the eye overlay in post-postprocessing
<azonenberg> i.e. i'd send an entire PRBS7 waveform
<azonenberg> trigger once at the start of the waveform
<azonenberg> Reconstruct a non-overlaid copy of the entire PRBS7 sequence (which, modulo jitter, has only one voltage for each point in time)
<azonenberg> At that point i have a probability density function that shows, for each (T, V) tuple
<azonenberg> what percentage of the time V(t) was greater than the V of that pixel
<azonenberg> If i differentiate that, I should be able to get the actual values (i.e. turning a "stacked line" graph into a line graph)
<azonenberg> partial differentiate with respect to voltage, i mean
<azonenberg> Then if i take each UI of the recorded sequence and stack them
<azonenberg> i get an eye
<azonenberg> I might have to actually simulate the sampling process a bit, adding noise, and try to postprocess somehow and see how i can make it work :p
scrts has quit [Ping timeout: 240 seconds]
scrts has joined ##openfpga
<nats`> found fun schottky diode for 30GHz :)
Hootch has quit [Read error: Connection reset by peer]
<mtp> Nice
<mtp> i still wanna find a tunnel diode
<nats`> should be easy no ?
<mtp> uh
<mtp> no
<whitequark> mtp: which
<mtp> none in particular?
<mtp> i just want to make a tunnel-diode oscillator
<nats`> I guess I'm confusing it with gunn diode
<whitequark> mtp: I think I can buy a 3И306Г
<mtp> if you brought me some tunnel diodes i would greatly appreciate that, wow
<mtp> s/some/any/
<whitequark> how many
<whitequark> they're about 50 cents piece
<mtp> oh jeez uh
<mtp> i can give you like 10 bucks
<whitequark> 20 diodes, gotcha
* mtp furiously Goobles datasheets
<whitequark> wait no more like $1 piece
<nats`> whitequark the silicon dust dealer :D
* egg|egg briefly wondered whether these were 3s or Зs >_>
<whitequark> 3s
<whitequark> the nomenclature is \d\w\d{3}\w
<egg|egg> yeah, there's a bot to check unicode nonsense over on bottorture :-p
<mtp> god these 60s manuals for the things
<mtp> "2 kMc"
<mtp> kilomegacycles fUCK YOU
<egg|egg> :D
<mtp> whitequark, thx
<mtp> i'm gathering... 1.8 mA max current, 0.85 volt bias?
<whitequark> 1.8..2.2mA max current, peak current to valley current ratio 8, peak voltage 0.17V, opening (?) voltage 0.85V, total capacitance 8 pF
<whitequark> AMR: average If = 0.4..2.2 Ip, Ir = 4 mA
<mtp> "conduction voltage" i guess
<mtp> maybe?
<mtp> biasing these things is gonna be a trip
<nats`> current source ? :)
<whitequark> soldering for no longer than 3s using a solder with Ts <= 260°C, use of heat sink mandatory, specifically tweezers with copper flat tips no narrower than 2mm
<whitequark> and you may not bend the lead closer than 2mm to the case
<whitequark> you have to use ESD protection, though it should survive discharges of up to 500V
<whitequark> and you may not use a multimeter to test it
<mtp> hah
<whitequark> conduction voltage sounds ok
<nats`> 1MOhm current source ? :D
<cr1901_modern> and you may not use a multimeter to test it <--- ?
<whitequark> mtp: oh, no
<whitequark> it's "projected peak point voltage" in english. UPP
<whitequark> mtp: remind me in uhh about a week
<whitequark> my bank wants to send me an SMS for a CNP transaction but the phone is fubar
<mtp> will do
<whitequark> well, no
<whitequark> it is awaiting repair, so it cannot be fubar by definition
<whitequark> but it's not usable
<whitequark> and the lead time for those is 1-2 weeks
<whitequark> for western components this is code for "we're going to buy it on Farnell and mark up 30%"
<whitequark> I mean, literally, you could compare their catalog to Farnell and all prices are 30% higher like clockwork
<whitequark> nfc what it means for soviet ones
<mtp> har
<whitequark> I suspect "we don't really know which of these 105 water-damaged crates holds a pack of 500 components that you need"
<whitequark> (this is actually an optimistic guess)
m_t has quit [Quit: Leaving]
digshadow has quit [Quit: Leaving.]
digshadow has joined ##openfpga
<azonenberg> nats`: what do you need a 30 GHz schottky for?
<nats`> for my front end :)
<whitequark> azonenberg: btw smoltcp now has TCP client
* azonenberg doesnt know a ton about RF S&H design
<azonenberg> whitequark: nice
<whitequark> fully functional
<nats`> I'll write something soon enough I guess
<nats`> I made a tiny prototype working at few MHz
<nats`> I can SH a 10MHz signal at 10Hz :D
<azonenberg> nice
<nats`> (faster is better for the voltage level)
pie_ has quit [Changing host]
pie_ has joined ##openfpga