<awygle> whitequark: re: "into I2C" - I knew immediately what that person was describing
<whitequark> awygle: wtf
<whitequark> what is it
<awygle> like they said, it's an I2C secure element device for smartcards. Pretty sure I shouldn't name names for the same reason they didn't.
<rqou> what's the context for this?
<whitequark> wtf is this mystery vendor
<rqou> oh god APDUs over I2C
<rqou> wtf
<rqou> also, my random guess as to vendor is Atmel
<implr> or nxp/philips - they invented i2c and nxp is one of the big secure element vendors
<rqou> yeah that's also possible
<rqou> oh god
<rqou> implr: i think you're right
<rqou> look under "Ordering options"
<rqou> and look at the "Interface option" column
<whitequark> gross
<rqou> i2c, 8051, and jcop (java) all in one!
<implr> ooh, a NXP SE 'datasheet' that has more than five pages! that's rare
<rqou> still doesn't really tell you anything
<implr> I wish somebody made secure elements which had *any* documentation
<awygle> security through obscurity
<rqou> RE some? :P
<awygle> what else is new
<implr> the java makes those closed ones still usable, but meeeh.
<awygle> why is it so hard to get files from a to b securely
<azonenberg> sftp?
<azonenberg> pgp email?
<awygle> like, socially
<azonenberg> Guy with a briefcase full of thumbdrives handcuffed to his wrist?
<awygle> all the socially acceptable options suck technically and all the technically acceptable options are unacceptable socially
<balrog> I usually use Nextcloud with expiring URLs but that’s what I’d call medium security and you still have to get the URL and password to the other party
<whitequark> yeay nextcloud!
<awygle> i feel like this should be a P2P process honestly
<whitequark> i use that too
<awygle> maybe through a STUN server or equivlant
<balrog> whitequark: seafile looks like an interesting design but doesn’t seem to have much security built into it
<balrog> whitequark: you probably don’t use it on btrfs though
<whitequark> why does i2c specify the bus in terms of data validity and not clock edges?
<awygle> clock stretching maybe?
<whitequark> hm good point
<whitequark> should there be some sort of delay between bringing scl low and sda low?
<whitequark> this weirds me out
<rqou> i don't think so??
<rqou> i thought data is transferred on rising edges
<whitequark> yes but it's specified in terms of high and low states
<rqou> hmm idk what the spec actually says lol
<whitequark> "while scl is high sda should not change" may or may not imply that scl and sda may not rise and fall simultaneously
<whitequark> the spec is hella ambiguous
<rqou> i've always just winged it and hoped i read the spec right :P
<awygle> as long as it's stable before the rising edge you're fine. I agree it's a terrible spec lol
<rqou> *hoped i interpreted/assumed, not read
<whitequark> it's honestly atrocious
<rqou> yeah that's definitely some funky wording
<awygle> abominable
<rqou> since violating that is how you signal start/stop
<whitequark> and the graphs actually show a delay between falling scl edge and rising sda edge
<rqou> wat
<whitequark> " A device must internally provide a hold time of at least 300 ns for the SDA signal (with respect to the VIH(min) of the SCL signal) to bridge the undefined region of the falling edge of SCL."
<whitequark> what
<whitequark> what the fuck does this mean
<rqou> wut
<rqou> i think it's trying to tell you to wait 300 ns after the falling edge before updating data?
<rqou> but i personally wouldn't call that "hold time"
<whitequark> oh ffs
<whitequark> god i hate i2c
<rqou> but it's defined in terms of Vih(min)? not Vil(max)?
<rqou> huh, i wonder if you can fuck up an i2c bus with bad edge rates?
<rqou> (my guess is yes, since i've experienced mysterious not-working-ness with i2c over long cables)
<whitequark> that's probably just bus capacitance
<whitequark> and yes
<whitequark> it's very sensitive to it
<whitequark> you can fuck up i2c by looking at it funny
<rqou> whitequark: 1mbps i2c trololo
<whitequark> um
<whitequark> 3.4 mbps is Hs-mode i2c
<rqou> oh wait that isn't the weird one
<whitequark> it's in the standard
<awygle> you can do way more than that, although iirc at some point it becomes push pull
<whitequark> there's also 5 mbps
<rqou> doesn't it involve some weird hack to inject extra current into the clk line?
<whitequark> which is made for... i2c led displays
<whitequark> who the fuck makes i2c led displays
<rqou> anyways, yeah i was thinking of Hs-mode
<rqou> wait what according to wikipedia the max bus capacitance is only 400 pF?
<rqou> seems really really low
<whitequark> yes
X-Scale has joined ##openfpga
<whitequark> yes
<whitequark> resistors and weak drivers
<whitequark> normal i2c has 3mA drivers
<awygle> you can often cheat that with better resistors
<whitequark> sure
<rqou> i mean, 3mA drivers are big enough
<awygle> Most drivers will sink way more than 3mA
<whitequark> for us it's irrelevant because cy7c has an internal baud rate generator and it doesn't go faster than 400k
<awygle> But yes it's bad
<rqou> i tried overclocking the avr i2c peripheral before to 800k
<rqou> doesn't work
<whitequark> lol
<rqou> why lol?
<whitequark> i2c
<rqou> yeah, i2c is lol
<rqou> but people seem to like it a lot
<awygle> There are advantages
<whitequark> job security
<awygle> They're mostly swamped by the disadvantages
<awygle> But they exist
<rqou> i mean, it's pretty neat as a multi-master bus
<whitequark> except arbitration is broken by design
<awygle> NO
<awygle> BAD RQOU
<whitequark> there are certain cases that can't be arbitrated
<whitequark> it's in the spec
<awygle> no multimaster
<whitequark> the behavior is basically undefined
<rqou> whitequark: writes should be idempotent trololololo
<whitequark> no
<whitequark> not even that
<awygle> It's a decent multi *drop* bus
<awygle> And it scales well wrt pins
<awygle> And has low power consumption
<awygle> (ish)
<whitequark> SMBALERT# is pretty okay
<whitequark> takes advantage of the wired-AND
<awygle> Yeah the only problem with SMBus is that it looks like I2C but really isn't
<awygle> So people fuck it up a lot
<rqou> wait, there are issues other than the part where two masters sending the same thing at the same time don't arbitrate correctly?
<whitequark> yes
<whitequark> they just casually mention it at the end of a section like it's no big deal
<whitequark> there are *three* of them
<rqou> oooooh what?!
<rqou> that explains a lot
<whitequark> HAHAHAHAHA
<rqou> i think i've hit this before
<rqou> hmm, or maybe not?
<rqou> i'm not sure exactly
<rqou> but i might have hit this before
<rqou> yeah, that's really "not supposed to happen"
<rqou> but i can totally see somehow just accidentally hitting it
<rqou> and then UB happens and the whole bus melts down
<openfpga-github> [Glasgow] whitequark pushed 1 new commit to master: https://github.com/whitequark/Glasgow/commit/e7fa055fec65112e5414f6af0f29750fa599e01c
<openfpga-github> Glasgow/master e7fa055 whitequark: Implement write half of I2C slave.
<whitequark> awygle: ^
pie_ has quit [Ping timeout: 265 seconds]
<cr1901_modern> awygle: What do you mean by "better resistors"? Isn't it a tradeoff between transistion speed (due to bus capacitance) and power consumption (lower resistance will cause drivers to sink more)?
<whitequark> you can also use current sources instead
<openfpga-github> [Glasgow] whitequark pushed 1 new commit to master: https://github.com/whitequark/Glasgow/commit/70a92306e84e0f1fa5fcf20f003d80452d641fce
<openfpga-github> Glasgow/master 70a9230 whitequark: Simplify stop strobe generation.
<whitequark> you can ALSO use special ICs that only engage the current source to ensure high slew rate
<whitequark> and then go back to a weak resistor
<whitequark> awygle: sooo hm
<whitequark> can you implement the read half, add some docs like there is for the write half
<whitequark> and maybe if you have time, another module that implements a register bank
<whitequark> just 8-bit ones probably
* whitequark → zzz
<rqou> guess what happens when you spend like a half a year messing with your house instead :P
<qu1j0t3> ha.
<qu1j0t3> i'll try and regard this as inspirational rather than what-the-fuck-am-i-doing-with-my-life-anall
<cr1901_modern> qu1j0t3: Preaching to the choir here :P. He's done an excellent job for sure.
digshadow has quit [Ping timeout: 276 seconds]
<qu1j0t3> it's amazing what a high schooler can do that so-called fully employed grown-ups can't
<cr1901_modern> He even bought his SEM (and I think other equipment) on his own. He's certainly motivated.
<awygle> cr1901_modern: yes.
<cr1901_modern> awygle: What I was getting at was "there's no strictly superior resistor", but I forgot current sources.
digshadow has joined ##openfpga
<azonenberg> rqou: cool
<rqou> ok, TIL a "fun" problem with rust
<rqou> rust build scripts trip the chinese 360 AV's heuristics
Bike has quit [Quit: Lost terminal]
<rqou> also a lesson learned for me: make sure build.rs scripts are properly cross platform
<rqou> spawning a .py directly is not portable
rohitksingh_work has joined ##openfpga
diadatp has quit [Ping timeout: 264 seconds]
<awygle> wtf is netplan
Lord_Nightmare has quit [Ping timeout: 248 seconds]
Lord_Nightmare has joined ##openfpga
<rqou> wtf
<rqou> whitequark: you know how i2c is garbage?
<rqou> look what SFE decided to do: https://www.sparkfun.com/qwiic
<rqou> not only building a whole ecosystem around i2c but also (once again) giving it a silly name
diadatp has joined ##openfpga
M59NAAH1D1 is now known as indefini
eduardo__ has joined ##openfpga
eduardo_ has quit [Ping timeout: 248 seconds]
pie_ has joined ##openfpga
bitd has joined ##openfpga
<openfpga-github> [Glasgow] awygle pushed 1 new commit to master: https://github.com/whitequark/Glasgow/commit/5e498f7dbd09e7b72e592a74e860721530c6f711
<openfpga-github> Glasgow/master 5e498f7 Andrew Wygle: Implement read half of i2c slave
<awygle> whitequark: that was a PITA for reasons i'm not 100% sure i understand, please check carefully to make sure i'm not doing something stupid
<awygle> i maybe should have made it a PR but oh well
* awygle zzz
<pie_> gnight
diadatp has quit [Ping timeout: 248 seconds]
diadatp has joined ##openfpga
Lord_Nightmare2 has joined ##openfpga
Lord_Nightmare has quit [Ping timeout: 248 seconds]
Lord_Nightmare2 is now known as Lord_Nightmare
pie_ has quit [Ping timeout: 248 seconds]
pie_ has joined ##openfpga
pie_ has quit [Remote host closed the connection]
pie_ has joined ##openfpga
Lord_Nightmare2 has joined ##openfpga
Lord_Nightmare has quit [Ping timeout: 248 seconds]
Lord_Nightmare has joined ##openfpga
Lord_Nightmare2 has quit [Ping timeout: 264 seconds]
Lord_Nightmare2 has joined ##openfpga
Lord_Nig- has joined ##openfpga
Lord_Nightmare has quit [Ping timeout: 265 seconds]
Lord_Nig- is now known as Lord_Nightmare
Lord_Nightmare2 has quit [Ping timeout: 264 seconds]
pie_ has quit [Ping timeout: 248 seconds]
bitd has quit [Remote host closed the connection]
pie_ has joined ##openfpga
<pie_> yup these kinds of frames are also expensive, so now i need to find a cheap place for such frames...
Bike has joined ##openfpga
Lord_Nightmare has quit [Ping timeout: 264 seconds]
Lord_Nightmare has joined ##openfpga
pie_ has quit [Ping timeout: 260 seconds]
pie_ has joined ##openfpga
rohitksingh_wor1 has joined ##openfpga
rohitksingh_work has quit [Ping timeout: 268 seconds]
pie_ has quit [Ping timeout: 248 seconds]
rohitksingh_work has joined ##openfpga
rohitksingh_wor1 has quit [Ping timeout: 256 seconds]
rohitksingh_work has quit [Read error: Connection reset by peer]
pie_ has joined ##openfpga
Bike_ has joined ##openfpga
Bike has quit [Disconnected by services]
Bike_ is now known as Bike
genii has joined ##openfpga
<whitequark> rqou: "
<whitequark> How many times have you swapped the SDA and SCL wires on your breadboard hoping the sensor will start working?"
<whitequark> ... never?
<kc8apf> I have spent years wishing we had added per-slave reset lines
Ishan_Bansal has quit []
Ishan_Bansal has joined ##openfpga
jeandet has quit []
jeandet has joined ##openfpga
<whitequark> hahaha
<awygle> kc8apf: while I sympathize, at that point you've destroyed the scaling property and should just use SPI
<kc8apf> nah. there are nifty i2c switches that let you isolate a problematic slave so you can switch to a GPIO expander and hit the slave's reset
<awygle> that's true but it sure seems like a lot of hassle lol
daveshah has quit []
daveshah has joined ##openfpga
kc8apf has quit []
digshadow-c has quit []
<whitequark> yeah
digshadow-c has joined ##openfpga
kc8apf has joined ##openfpga
<kc8apf> better than a stuck slave on the other side of the planet
<awygle> Or in SPAAAACE
mumptai has joined ##openfpga
<whitequark> awygle: that IS hella ugly
<whitequark> also I think the doc is wrong?
<whitequark> data_o isn't latched when read goes high
<whitequark> it's latched at the next setup edge
<whitequark> also you don't test for a presence of a stop strobe in reads
<whitequark> or for a read strobe
<whitequark> :/
<whitequark> awygle: I think you should transition to READ-SHIFT on sample strobe in ADDR-ACK
<whitequark> then you can consistently update sda_o on setup strobe in READ-SHIFT
<awygle> whitequark: yeah I came up with that too, too late
<awygle> I'll fix it
<q3k> just don't use i2c, problem fix
<whitequark> q3k: can't
<q3k> *fixed
<whitequark> out of pins
<q3k> everything is less fucky than i2c
<q3k> pcie is less fucky than i2c
<whitequark> I literally use every single pin on both chips in this design
<q3k> well, godspeed, and I'm so sorry
<q3k> twi/i2c is my nemesis
<rqou> yup, hate i2c
<rqou> although i used to use it a lot
<rqou> the avr i2c peripheral seems to work correctly
<awygle> I also think I need to invert the docs, read goes high when data has been latched
<awygle> Not sure about the strobes though
<whitequark> there's an example of how to test them in the write test
<awygle> oh that, yes, I can do that
<awygle> also did you see I removed the reset from the multiregs? That didn't work for me, do I need a newer Migen or something?
<gruetzkopf> pcie survives more cable than i2c
<daveshah> you can't REALLY hate i2c until you've used Lattice's I2C IP
<whitequark> lol
<daveshah> the core most likely works fine. but the documentation is totally b0rked
<whitequark> awygle: oh yeah I haven't committed that yet
<daveshah> if you follow the documentation exactly, the core will in fact appear totally dead
<gruetzkopf> the moment i find a good source for bulk SATA cable, i'm gonna test TI DS80PCI102 and if it really gets over 15m of cable
<gruetzkopf> (see http://www.ti.com/diagrams/custom_diagram_1_DS80PCI102.gif this professionally drawn application example)
<whitequark> " The receiver can open an input eye that is completely closed due to inter-symbol interference (ISI) introduced by the interconnect medium.
<awygle> whitequark: if i transition to READ-SHIFT on sample in ADDR-ACK i can't set start correctly, unless i can strobe that on sample instead of setup
<awygle> or i can hack it into READ-SHIFT i guess
<whitequark> awygle: yeah strobing start on sample is fine
<awygle> kk
bitd has joined ##openfpga
diadatp has quit [Ping timeout: 264 seconds]
<whitequark> awygle: also, regarding NAK at the end of read
<whitequark> should you really go to IDLE immediately?
<whitequark> why does I2C even *have* that NAK?
* whitequark wants to poke an EEPROM or something to see if it'll still send bytes after a NAK
* whitequark realizes she needs Glasgow to do that
<whitequark> damnit
<Ultrasauce> the job would hardly be worth doing if it didnt present an obnoxious array of bootstrapping problems
<awygle> i2c has that nak for stuck-low situations
<awygle> i think
<awygle> that's why the "clock nine times" thing works
<awygle> as for IDLE, i went there because the next thing can either be a STOP (which would send us to IDLE) or a START (which will send us to START) so going to IDLE seemed equivalent
<whitequark> ooh
<whitequark> that makes sense
diadatp has joined ##openfpga
diadatp has quit [Ping timeout: 260 seconds]
diadatp has joined ##openfpga
digshadow has quit [Ping timeout: 260 seconds]
diadatp has quit [Ping timeout: 248 seconds]
diadatp has joined ##openfpga
digshadow has joined ##openfpga
m_w has joined ##openfpga
<rqou> whitequark: iirc you can also perform that test with a traditional bus pirate
user10032 has joined ##openfpga
<whitequark> do you think i have one lol
<rqou> ugh whatever japaric is messing around with is breaking absolutely everything
<rqou> alloc-cortex-m seems to be 100% hosed right now
<rqou> alright, i give up
<rqou> not going to update for now
m_w has quit [Quit: Leaving]
<awygle> my car is exhibiting a terrible sadness
<gruetzkopf> i spent all of yesterday fixing 3/3 family cars
diadatp has quit [Ping timeout: 268 seconds]
<q3k> dear dog, the state of llvm/clang on ubuntu 16 is just sad
<q3k> cmake/llvm interaction is borked
<q3k> libc++ is borked
<rqou> llvm/clang _always_ feels borked
<rqou> but whenever i say that whitequark tells me I'm wrong
<q3k> no, this is just ubuntu/debian maintainers
<q3k> that are being idiots and moving things around for no good reason
<rqou> well, I'm on debian
<rqou> also, imho cmake is just garbage
<q3k> well, this is not on my actual machine, but on my jetson x1
<q3k> so i just used whatever was on there
<rqou> but whitequark will _also_ tell me I'm wrong for that
<q3k> i'm not insane enough to run ubuntu or debian on any box
<rqou> I've given up trying to put my Jetson back together
<q3k> figured it might be good enough this bgp router i set up some time ago
<q3k> but then i learned that they enable rp_filter by default in the kernel
diadatp has joined ##openfpga
<q3k> which was _hell_ to debug
<rqou> i might just get an X2 with the academic discount
<Ultrasauce> ubuntu trusty is bad enough, ubuntu trusty arm64 is worse
<q3k> i just put my jetson back together and it works just fine
<Ultrasauce> ubuntu trusty arm64 with nvidia's downstream additions....eugh
<q3k> yeah
<q3k> l4t is hot trash
<rqou> i lost most of the small caps i pulled off
<q3k> i run it without the caps that i removed #yolo
<q3k> make -j8 and it's still stable
<gruetzkopf> rp_filter can be turned off via sysctl though
<q3k> it can, of course
<q3k> it's just that I had no idea it existed
<q3k> because all the routers I ever set up were either non-linux, or gentoo
<q3k> and the gentoo kconf doesn't turn on rp_filter by default
<rqou> i don't dare run gentoo in production
<q3k> so the problem was I didn't even know this option exists
<q3k> rqou: honestly? the next time I can affort downtime that router is becoming a gentoo box
<q3k> *afford
<gruetzkopf> so if i want v6 PI... :D
<q3k> v6 PI doesn't make sense, does it?
<q3k> i mean, if you have any bgp session anywhere with a real ASN
<rqou> I'm really considering moving off of Debian but i don't see a particularly good distro to move to
<q3k> you should be swimming in v6 subnets to use
diadatp has quit [Ping timeout: 264 seconds]
<gruetzkopf> need a LIR to get a ASN ;)
<q3k> get a LIR to sponsor you an ASN
<rqou> the Debian ecosystem just feels awful
<rqou> full of asshole angry Germans
<q3k> like bgp.wtf :D
<q3k> I don't even know what the costs are
<q3k> fairly sure we can just set one up for you for like 50 eurobucks a year or something
<gruetzkopf> iirc RIPE wants 50€/ASN/y from the LIR and the LIR needs to get that back
<q3k> well
<rqou> q3k: can i get that too lol?
<q3k> i think we can do that
<q3k> don't see why we can't sponsor ASNs for everyone
<rqou> i don't even need to be in Poland?
<q3k> i'll have to check if there's any reponsibility for us
<q3k> but if not, we can talk
<q3k> implr: ^ do you know anything about this?
<implr> noidealol how that works on the legal side, like contracts, but if we're not actually transiting any of your traffic we should be good
diadatp has joined ##openfpga
<rqou> well, I don't have any way to get transit either :P
<rqou> i'm not really into this whole "how to internet for real" thing
<implr> https://www.ripe.net/manage-ips-and-asns/resource-management/supporting-notes-for-internet-address-space-request-forms#ASN so the standard 'you need to actually use it and run bgp' requirement applies, not much otherwise
<rqou> yeah i have no way to do that :P
<gruetzkopf> i've played with BGP for a while
<gruetzkopf> and someone else once leaked my ASN into the public internet
<rqou> did it cause an outage? :P
<gruetzkopf> naah
<gruetzkopf> but 172.20.239.0/25 was apparently reachable from some providers :D
<rqou> um...
<gruetzkopf> (well, forward-path)
<awygle> oh sweet my tabs are expired too
<awygle> what a good car day
<rqou> lol
<rqou> just wfh and pet the cats?
<awygle> lol
<awygle> i'm already at the office
<awygle> but maybe tomorrow
<q3k> rqou, gruetzkopf: you can announce bgp on vultr VMws
<q3k> for free
<q3k> ie. for the price you'd pay for their upstreams, anyway
<gruetzkopf> ik
diadatp has quit [Ping timeout: 248 seconds]
bofh__ has joined ##openfpga
bofh_ has quit [Read error: Connection reset by peer]
diadatp has joined ##openfpga
cyrozap has quit [Ping timeout: 240 seconds]
cyrozap has joined ##openfpga
diadatp has quit [Ping timeout: 248 seconds]
diadatp has joined ##openfpga
<awygle> bunnie's post about paper circuits is pretty cool
<balrog> awygle: which one?
[X-Scale] has joined ##openfpga
X-Scale has quit [Ping timeout: 265 seconds]
[X-Scale] is now known as X-Scale
<pie_> pcb are overrated, pencil that stuff
<awygle> i have some thin (~1mm) copper tape i could use for stuff like that
<whitequark> the concept is cool but the crcuits gross me out
user10032 has quit [Quit: Leaving]
<whitequark> rqou: clang is the only compiler that works, fight me
<whitequark> cmake IS garbage though
<whitequark> absolutely atrocious
<whitequark> ... but it's still an improvement on most other buildsystems
<q3k> i like manually crafted makefiles
<q3k> am I a bad person?
<awygle> artisinal
<q3k> (that and bazel)
<q3k> yes
<awygle> build systems are all awful
<awygle> i'm not precisely sure why
<q3k> bazel is okay if you have a monorepo and are okay with thicc^Wfat binaries
<awygle> but i've never tried to write one so i won't speak out of turn
<whitequark> q3k: if you don't need windows and if your makefiles handle cross-compilers then yours are okay
<q3k> well
<q3k> they provide for setting CC, CFLAGS and LD
<whitequark> cmake absolutely wipes the floor with all other buildsystems on windows
<q3k> and the other standards
<whitequark> that i know of anyway
<q3k> yeah, that's true
<whitequark> which is pathetic considering how bad cmake is
<q3k> although, thankfully, I almost never have to target windows with any of my code
<awygle> we need like a "frequently had arguments" to put in the subject line of this channel. in about five minutes rqou is going to come in advocating for bash scripts as a build system and this afternoon azonenberg will tell us all about splash.
<q3k> when I do, I write in Go and use goxc (it works!)
<q3k> and I get nice huge static binaries
<whitequark> sure, if you can afford it, that works and I have nothing about it
<whitequark> ocaml is full of handwritten makefiles and I cross-compiled to windows using many of those
<whitequark> but solvespace has to build natively on windows
bitd has quit [Remote host closed the connection]
<awygle> the problem with building on windows isn't actually the compilers, it's the shell
<whitequark> yes
<whitequark> if your build system depends on bash I am going to badmouth it loudly
<whitequark> because it is a piece of shit
<whitequark> just like bash
<whitequark> and unix
<whitequark> #fiveminutesofhate
<q3k> if anything depends on bash then you're fucking up
<q3k> posix shell is okay but still I think twice
<rqou> um, doesn't cmake still depend on bash?
<rqou> because it generates, you know, a makefile?
<rqou> which requires bash?
<florolf> rqou: you don't need bash. perl works as well: https://www.gnu.org/software/make/manual/html_node/One-Shell.html#One-Shell
<rqou> also, right now because of Reasons(TM) i have to use macOS and the keyboard shortcuts are completely fucking me up
<rqou> even though it's the same sublime text
<rqou> thanks people like whitequark that insist on following "platform" conventions over consistency
<balrog> rqou: what, control and command?
<rqou> no
<rqou> i already have that swapped
<whitequark> rqou: what?
<whitequark> cmake doesn't generate a makefile unless you want a makefile
<whitequark> on windows it generates a visual studio project
<rqou> huh
<whitequark> on unix you should be using ninja anyway
<rqou> wtf is ninja?
<awygle> whitequark: how do you build with clang on windows with cmake? Still through VS?
<rqou> interestingly every time I've used cmake on windows the instructions said to generate a makefile
<whitequark> because those instructions suck
<balrog> Depends on whether you want to build using VS compiler or not
<q3k> whitequark: 'use ninja' you mean 'use ninja as the cmake backend on unix'?
<rqou> balrog: ctrl-h, which is "replace" on the other platforms but somehow just makes my window disappear on macos
<whitequark> ninja is like make if you removed all the junk that make has to aid humans in writing makefiles and just left the dependency tracker
<whitequark> ninja is extremely fast if you're repeatedly rebuilding a very large project
<rqou> thanks for failing my muscle memory in the most hilariously awful way possible
<whitequark> like llvm
<whitequark> rqou: that's a platform keybinding
<rqou> and this is why i insist on "same keyboard shortcuts everywhere"
<whitequark> no, i mean, it's provided by the platform
<whitequark> it's not a part of guidelines
<rqou> wat
<rqou> so just hook it anyways?
<whitequark> i think ctrl+h is handled by the window server, no?
<whitequark> wat
<rqou> or can you not do that?
<whitequark> that will break the muscle memory of everyone who, you know, uses macos
<rqou> meh
<whitequark> you just don't give a fuck about any use cases other than the ones that are convenient for you right now
<whitequark> like usual
<whitequark> this behavior is very obnoxious
<rqou> make it an option
<rqou> iterm2 has options to swap things around
<rqou> option 1) "act like macos" option 2) "act like you would actually expect it to based on everywhere else"
<whitequark> by that logic windows should implement macos bindings too
<whitequark> and the sgi irix ones too, for good measure
<rqou> sure, make them all options
<rqou> aargh i just pressed it again!
<rqou> somebody should write a libmakeDEgoaway
<rqou> that just hooks every built-in key
<whitequark> this is actually divine punishment for writing sloppy code, rqou
<rqou> how?
<whitequark> through the will of the Lord
<rqou> for future GUIs i think I'll actually write libmakeDEgoaway
<rqou> and let you configure what shortcuts you want to keep
<rqou> imo this is other people writing sloppy code
<rqou> by not enforcing the same behavior
<whitequark> sloppy code, n. (as defined by rqou): code that does not adhere to rqou's preferences
clifford has quit [Ping timeout: 256 seconds]
<whitequark> if it runs on macos, it should behave like all other macos software, end of story
<rqou> no, if it's cross-platform it should behave the same way on every platform
<rqou> at least by default
<whitequark> of course not, that just annoys everyone except people or one platform, or possibly just everyne
<whitequark> imagine if sublime used macos keybindings on windows
<whitequark> your preferences aren't in any way inherently more valid than those of someone who mostly uses macos
<rqou> that'd be fine too actually
<rqou> as long as it's the same the muscle memory still works
<rqou> unlike now when people like you make it all frivolously different
<whitequark> it's not frivolous? it's following a specific set of conventions
<rqou> and then on macos decorate it with the silly sigils that i always have to google just to figure out what key it is
<whitequark> they're on the keyboard.
<rqou> huh it is on the machine I'm at right now
<rqou> not on my other machine
clifford has joined ##openfpga
<pie_> rqou, so uhh i never actually looked into it, apparently browsers support authentication dongles or what was it?
<rqou> yes
<pie_> huh. cool. so does anyone actually implement that...
<rqou> yes
<rqou> if you remember the previous rant about browser infosec people playing themselves, that was about this feature
<pie_> i know thats actually why i even know this exists
Bike has quit [Ping timeout: 260 seconds]
<rqou> you should help me test that my proposed trick works or not
<pie_> its this u2f stuff i guess?
<rqou> yes
<pie_> well id have to buy a yubikey
<pie_> errrr
<pie_> nvm thats orthogonal
<pie_> my brian is in three places at once
<pie_> brain
<pie_> life of pie_ brian
<rqou> and apparently according to apple.SE the only way to make this cmd-h unfeature go away is to either pay for a program or assign it to "Show Help menu"
<rqou> think different indeed
<pie_> 0.0
<pie_> maybe you can write a kernel module :D
<rqou> not on this machine
<rqou> because apple is trying to walled-garden/DRMify macos and requires signed drivers
<whitequark> i'm pretty sure you can disable enforcement of signing
<whitequark> there's a boot parameter
<rqou> can't do that on this machine
<rqou> my normal machine indeed has this disabled
<rqou> aaand even after you think-different replace cmd-h you still can't assign that to a sublime keybinding
<rqou> it silently ignores it
<rqou> brilliant
<whitequark> rqou yelling at macos
<pie_> [...] yelling
<pie_> but i for once managed to not mess up integrating over spherical coordinates
<pie_> there is HOPE
<awygle> that is a bit weird. is cmd-h like ctrl-alt-del or something?
<whitequark> more like windows-d
<rqou> ok apparently bettertouchtool fixes this stupidity and only costs $20
<rqou> worth it
* awygle has never tried to hook windows-d
<rqou> afaik on windows you can hook anything you want
<rqou> on mac you have to pretend to be an accessibility tool
<whitequark> which is frankly a better design, for same reasons wayland is a better design than x11
Bike has joined ##openfpga
<awygle> i like tabs
mumptai has quit [Quit: Verlassend]
<awygle> tabs are the CSS of text editing
<pie_> great now im thinking about autoformatters
<pie_> :P
bofh__ is now known as bofh_
<balrog> rqou: accessibility may be the easiest way to do code injection, not that it’s the only way
* whitequark stares at awygle
<whitequark> im not sure "the CSS of" is a good thing to say about a technology
<whitequark> but it does describe tabs accurately
<awygle> I frequently ha-ha-only-serious argue that if separating presentation and content is good for HTML/CSS then it's good for text too
<awygle> We tabbers lost the war years ago though so I don't actually try to advocate for them
<whitequark> no, I agree on that point, actually
<whitequark> tabs just don't go far enough
<whitequark> store ASTs instead of text, then diffs would be *actually* meaningful
<pie_> ^
<pie_> i think there's some diff tools that do that
<whitequark> proprietary
<awygle> Yeah I agree with that too but consider it somewhat orthogonal
<pie_> hm. i wouldnt know
<pie_> well, theres probably research code out there but eh..right? :P
<pie_> theres actually research into AST based editing, but i think i read that it usually ends up clumsy
<awygle> i just read a weird Jane Street blog post about diffing s-expressions, which are functionally ASTs
<awygle> (shhh don't call me out on that statement)
<pie_> cant remember where i read about it though
<awygle> AST based editing is just Lisp
<whitequark> no?
<whitequark> you could do ast based editing of rust code
<awygle> no. but it's close
<awygle> it's more like Lisp is just AST based editing, but AST based editing isn't necessarily Lisp
<awygle> but AST _diffing_ i think is probably a pretty substantial Good
<awygle> regardless of context
diadatp has quit [Read error: Connection reset by peer]
<awygle> who wants to write it :p
<awygle> https://github.com/GumTreeDiff/gumtree hey look some academic code
<pie_> i think the "hard" part is getting grammar definitions for everything, but i wouldnt know
<pie_> well actually scratch that
<awygle> https://reviews.llvm.org/D34329 hey look some LLVM code
<pie_> depnds on how you want to do your tree diffing
<pie_> some things might look like moves but actually arent, (but still look like it, so how do yuo trreat ambiguity?), do you do truncated (my term for this) ast subtree matching?
<awygle> something something merkle tree?
<pie_> that just makes it faster (?)
<pie_> by truncated i mean matching stuff like (??? (a (???) (???))) vs just (??? (a (b) (c)))
<awygle> mm, no idea
<awygle> gonna play with clang-diff at some point though, TIL
* pie_ needs to get back to getting somewhere with his little obfscated-js-with-older-unobfuscated-code deobfuscator project
diadatp has joined ##openfpga
<whitequark> awygle: oh cool that got merged
<awygle> 'parently
<awygle> i wonder if you could use gumtreediff to diff kicad footprints...
<whitequark> yep
<qu1j0t3> whitequark: another carpet design? I loved your post about the BGA diagram. https://twitter.com/mikelectricstuf/status/939876092109828096
<awygle> what do you suppose the cost for a service like this is http://www.moooicarpets.com/your-own-design/ lol
<pie_> thats a neat seeming projector... https://www.youtube.com/watch?v=6qun47AKFbk
<lain> ooo
<lain> I would love a BGA x-ray carpet lol