<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)
<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>
(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?
<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
<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
<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
<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, 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
<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
<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|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
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>
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>
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
<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>
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
<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: 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: 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>
(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
<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>
(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>
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>
... 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>
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>
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