<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/vP1PO
<openfpga-github> openfpga/master afb7f13 Andrew Zonenberg: greenpak4/gp4par: Removed a lot more exit() calls
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 07d2286 to 6ae1e7c: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages 6ae1e7c Travis CI User: Update documentation
<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/vP1PK
<openfpga-github> openfpga/master 3eed1b2 Andrew Zonenberg: gp4par/greenpak4/xbpar: Removed more exit()s
<travis-ci> azonenberg/openfpga#108 (master - afb7f13 : Andrew Zonenberg): The build was broken.
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 6ae1e7c to 4bc4421: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages 4bc4421 Travis CI User: Update documentation
<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/vP1PF
<openfpga-github> openfpga/master 155397d Andrew Zonenberg: greenpak4: Fixed memory leak found by asan
<rqou> wow, you actually run asan on gp4par?
<rqou> not just wait until some security researcher shows you a PoC? :P
<rqou> and then dismiss it with a "so what?" :P :P
<cr1901_modern> C-hate is at an all time high, so if you have to use it, might as well use the tools
<travis-ci> azonenberg/openfpga#109 (master - 3eed1b2 : Andrew Zonenberg): The build was broken.
<azonenberg> rqou: lol
<azonenberg> That's what happened
<azonenberg> I'm a security researcher
<azonenberg> i found a bug, showed myself a PoC
<azonenberg> slapped myself in the mirror
<azonenberg> then wrote a patch :p
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 4bc4421 to 9149d58: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages 9149d58 Travis CI User: Update documentation
<travis-ci> azonenberg/openfpga#110 (master - 155397d : Andrew Zonenberg): The build is still failing.
<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/vP1Xl
<openfpga-github> openfpga/master d0ff8e7 Andrew Zonenberg: Fixed missing file from last commit
<azonenberg> huh thats weird, how did my other code compile? :P
<azonenberg> forgot to commit a header after changing the source
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 9149d58 to 87fc9e6: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages 87fc9e6 Travis CI User: Update documentation
<travis-ci> azonenberg/openfpga#111 (master - d0ff8e7 : Andrew Zonenberg): The build is still failing.
digshadow has quit [Ping timeout: 250 seconds]
<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/vP1Xb
<openfpga-github> openfpga/master 18d88a5 Andrew Zonenberg: greenpak4: Fixed two more resource leaks introduced by new error handling code
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 87fc9e6 to b0439f4: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages b0439f4 Travis CI User: Update documentation
tecepe has joined ##openfpga
<travis-ci> azonenberg/openfpga#112 (master - 18d88a5 : Andrew Zonenberg): The build is still failing.
* azonenberg must be asleep
<cr1901_modern> I don't think you are :)
<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/vP11r
<openfpga-github> openfpga/master c40f1f3 Andrew Zonenberg: greenpak4: Fixed more leaks
<azonenberg> hopefully that will do it
digshadow has joined ##openfpga
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from b0439f4 to 26f38b2: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages 26f38b2 Travis CI User: Update documentation
<travis-ci> azonenberg/openfpga#113 (master - c40f1f3 : Andrew Zonenberg): The build was fixed.
<azonenberg> About time
digshadow has quit [Ping timeout: 250 seconds]
<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/vP1Mt
<openfpga-github> openfpga/master 6a02f1c Andrew Zonenberg: gp4par: Removed all remaining exit calls (other than those in gp4prog)
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 26f38b2 to c2bd7f9: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages c2bd7f9 Travis CI User: Update documentation
<travis-ci> azonenberg/openfpga#114 (master - 6a02f1c : Andrew Zonenberg): The build passed.
mithro has quit [Read error: Connection reset by peer]
mithro has joined ##openfpga
<cyrozap> azonenberg: Do you think it would be valuable to have a retargetable bitstream "decompilation" framework? i.e., something that goes from bitstream -> netlist (or something) -> Verilog/VHDL/some HDL intermediary language? Or would it be better to use different programs for different targets?
<cyrozap> The iCE40 stuff has icebox_vlog.py, so before I just hack together something similar for the PSoC, I was thinking that maybe I should broaden the scope to potentially include other chips.
<whitequark> rqou: oh you want a decap of octopus? I can do that easily
<rqou> i
<rqou> i'm just slightly curious
<rqou> i don't think i've ever seen an (english) security analysis of octopus/FeliCa
<whitequark> can probably even do the chip inside HKID
<whitequark> since I'll need to change that soonish
<rqou> there's apparently multiple revs of that one
<whitequark> well i won't bother doing it more than once
<rqou> some support 2048 bit keys and some don't apparently
<whitequark> hm
<whitequark> what's the exposed contacts used for, anyway?
<rqou> it's a standard smartcard interface
<rqou> but it's MULTOS, not JavaCard/JCOP
<whitequark> so it's just a smart card
<whitequark> but what can i actually *do* with it
<rqou> automated border gates?
<rqou> i think that's the only thing anyone actually does
<rqou> actually wait
<whitequark> there are automated border gates? whoa
<rqou> i think only permanent residents can use the automated border gates
<whitequark> but on the other hand, who cares
<whitequark> the last time I went through immigration it took like 15 seconds and I haven't had to say a word
<rqou> it's very convenient for the land crossings from HK<->SZ
<whitequark> oh
<rqou> because there's automated gates on the SZ side too
digshadow has joined ##openfpga
<rqou> here's the ATR for my HKID: ATR: 3B 6F 00 00 80 31 E0 6B 04 06 05 02 25 55 55 55 55 55 55
digshadow has quit [Quit: Leaving.]
<whitequark> ATR?
* whitequark has never used smartcards
<rqou> it's some metadata that smartcards return on reset
<rqou> it stands for Answer To Reset
<whitequark> ...
<whitequark> very descriptive
<rqou> it helps identify the card somehow
<rqou> imho smartcards are way overengineered for what they do
<whitequark> no shit, the "smart" in the name should give a hint
<whitequark> anything with "smart" in the name is bound to be a trash fire
digshadow has joined ##openfpga
<whitequark> azonenberg: ack re: gp4prog
<cr1901_modern> SMART on hard drives isn't a trashfire though :)
<whitequark> let me get on to that
<whitequark> cr1901_modern: it is
<cr1901_modern> It tells you when your hard drive's gonna fail! Sometimes.
<whitequark> yeah, about half of the time, if you're lucky
<whitequark> at this point you are better just always having backups and not bothering about SMART
<cr1901_modern> There are two types of people in the world: Those who have lost data, and those who will. (Yes, I've already lost data. Managed to get about 75% of it back approx 3 years later when the drive decided to work briefly)
<whitequark> dunno, I deliberately trash my working drive every few years
<whitequark> the rationale is that if I didn't backup it then I never really needed it that much in the first place
<whitequark> also works when moving
<azonenberg> cyrozap: yes, that would be good
<azonenberg> in fact, that has been one of my "moon shot" projects for a long time, no actual dev progress but on the radar
<azonenberg> i want front-ends for every FPGA/CPLD i can, plus SEM and optical IC images
<azonenberg> all going to some kind of IR, then a decompiler going off that
<cr1901_modern> there was a tweet chain recently about someone's problems with Time Machine, and how it silently didn't warn that the backup was compromised (which is the only reason I don't use rsync backup, btw). It concluded that "you have to work hard to protect your data, and even then chances are you will lose it."
<azonenberg> whitequark: also, i'm trying to remove all of the exit()s
<azonenberg> i got rid of all outside gp4prog
<azonenberg> so if you could clean that up during your refactoring that would be nice
<whitequark> mhm
<whitequark> okay
<azonenberg> again the goal is to make it possible to integrate gp4par into an IDE or app that does partial reconfig, etc in the future
<azonenberg> and randomly dying on invalid input, killing the host app, doesn't play nice with that :p
* whitequark remembers something else
<whitequark> oh right
<whitequark> the last time I worked on this, I decompiled their host app
<rqou> hmm my HKSAR biometric passport doesn't want to read for some reason
<rqou> my USA one works fine
<rqou> apparently the US department of state already managed to migrate to sha256 signatures back in 2011 :P
<whitequark> why does xbpar.h include log.h??
<whitequark> it's the public header...
<whitequark> lemme clean all that up too
<rqou> apparently the biometric passport spec supports unicode!
<whitequark> 'apparently' ?
<whitequark> it would be pretty fucked up if it didn't
<qu1j0t3> cr1901_modern: yeah i think i know exactly who wrote that twitter thread on Time Machine.
<rqou> my mainland Home Return Permit actually has my chinese name
<qu1j0t3> cr1901_modern: if you wanted to recover alink
<rqou> interestingly, the Home Return Permit has a noncompliant machine readable zone
<cyrozap> rqou, whitequark: The ATR of a smart card is just the bytes it spits out over its serial data line right after it comes out of reset.
<cr1901_modern> qu1j0t3: Sure, take your time
<whitequark> azonenberg: what about the LogFatal's?
<whitequark> azonenberg: so basically the only solution to deal with LogFatal's that I see is to borrow ideas from Rust
<whitequark> which is to say, make LogFatal throw an exception, and make it a part of a contract that after the exception is caught, no PAR object may be ever used in any way except destructing it
<whitequark> (and preferably use smart pointers so it's destructed automatically)
<whitequark> Rust even enforces that on thread boundaries but it's not strictly necessary
<openfpga-github> [logtools] whitequark pushed 1 new commit to master: https://git.io/vP1Qg
<openfpga-github> logtools/master d03242e whitequark: Export include directories through CMake.
<rqou> anybody know anything about this? https://pbs.twimg.com/media/Cu7PXWjUAAAvroL.jpg:large
<rqou> reading a 125khz rfid using a wacom tablet
<openfpga-github> [openfpga] whitequark pushed 2 new commits to master: https://git.io/vP1Q9
<openfpga-github> openfpga/master 57792c0 whitequark: Sort out the header situation....
<openfpga-github> openfpga/master 365ed80 whitequark: Extract GreenPAK universal devboard driver into a separate library.
<whitequark> uhm, yes, I know that cat
<rqou> how about the hack itself?
<whitequark> @scanlime did it, and made a rather amazing video
<rqou> I have a super hacked together 125khz reader/writer based on scanlime's old design, but I have no idea where i put it
<rqou> i cloned my student id using it :P
<whitequark> lol
<rqou> best public university in the world; worst card reader security :P
<whitequark> which is that?
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from c2bd7f9 to 29fe75a: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages 29fe75a Travis CI User: Update documentation
<rqou> UC Berkeley
<openfpga-github> [openfpga] whitequark pushed 1 new commit to master: https://git.io/vP1Qj
<openfpga-github> openfpga/master ae578ae whitequark: gpdevboard: replace LogError();exit(-1) with LogFatal().
<rqou> their card readers are 125khz HID cards
<rqou> that only have an ID, no challenge/response or crypto of any kind
<rqou> you can clone them onto an atmel t5557 or similar
<travis-ci> azonenberg/openfpga#115 (master - 57792c0 : whitequark): The build passed.
<whitequark> azonenberg: done
<whitequark> we do need to sort out LogFatal though
<whitequark> azonenberg: technicallythats not an exit(-1), that's an abort :p
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 29fe75a to 16faf41: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages 16faf41 Travis CI User: Update documentation
<travis-ci> azonenberg/openfpga#116 (master - ae578ae : whitequark): The build passed.
doomlord has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<azonenberg> whitequark: when possible
<azonenberg> i tried to replace fatal with error
<azonenberg> unless it really was a truly fatal situation that rendered the whole library unusable
<azonenberg> so far i dont think there were any of those
<azonenberg> There's a handful that i need to fix still
<azonenberg> but most of the LogFatal calls are for truly unimplemented functions
<azonenberg> mostly, the logic for parsing an existing bitstream
<azonenberg> also at some point we have to refactor the logic around gp4prog/main.cpp:436
<azonenberg> to do all that stuff specific per chip
<azonenberg> right now its only the 46620
<azonenberg> but there's no check
<whitequark> azonenberg: ah h,
<whitequark> ok, I can do that too
<azonenberg> ditto for SocketTest etc
<azonenberg> well in that case, the bitstream is already checked per chip
<azonenberg> but we only implement the 46620
<azonenberg> so i guess that's OK for now
<whitequark> it still seems bad that LogFatals would crash the IDE
<whitequark> LogFatal("GP4_LFOSC output divider must be 1, 2, 4, or 16\n");
<whitequark> shouldn't this be fixed?
<azonenberg> Yes, it should be
<azonenberg> that's a TODO item i forgot to address before
<azonenberg> Can you file a ticket for that?
<azonenberg> remove all logfatal unless the error is so bad that it's truly unrecoverable
<azonenberg> (a failed compile doesn't qualify)
<whitequark> azonenberg: hm.
m_w has joined ##openfpga
m_w has quit [Client Quit]
m_w has joined ##openfpga
DocScrutinizer05 has quit [Disconnected by services]
DocScrutinizer05 has joined ##openfpga
<openfpga-github> [openfpga] whitequark pushed 2 new commits to master: https://git.io/vP1bb
<openfpga-github> openfpga/master c586437 whitequark: gpdevboard: remove LogFatal's from usb.cpp.
<openfpga-github> openfpga/master ce7a51b whitequark: gpdevboard: remove remaining LogFatal's.
<whitequark> azonenberg: ^ can you go over that and see if I missed any if(!...) return false ?
<whitequark> C++ is distrubingly weakly typed, I'd have really used its help here
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 16faf41 to 4ea0e1c: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages 4ea0e1c Travis CI User: Update documentation
<azonenberg> whitequark: yeah it would be nice to have an option to force checking return values
<azonenberg> from what i remember, old-school C
<azonenberg> like, K&R C era
<travis-ci> azonenberg/openfpga#117 (master - ce7a51b : whitequark): The build passed.
<azonenberg> used to complain if you ignored a return value without explicitly doing (void)foo()
<azonenberg> [ 6%] Building CXX object src/gpdevboard/CMakeFiles/gpdevboard.dir/usb.cpp.o
<azonenberg> /nfs4/home/azonenberg/code/openfpga/src/gpdevboard/usb.cpp:27:17: fatal error: log.h: No such file or directory
<azonenberg> #include <log.h>
<azonenberg> whitequark: doesnt compile
<azonenberg> i've always done explicit relative paths for logtools
<azonenberg> like #include "../log/log.h"
<azonenberg> either that or an INCLUDE_DIRECTORIES in the cmakelists
<whitequark> azonenberg: uhm
<whitequark> git submodule update
<whitequark> the CI succeeded...
<azonenberg> did you modify logtools?
<azonenberg> didnt realize
<whitequark> yes
<whitequark> sec
<azonenberg> ok yeah it seems fine now
<whitequark> git config --global fetch.recurseSubmodules true
<whitequark> this will make `git pull` also update submodules
<azonenberg> yeah i thought i had that on already
<azonenberg> guess not
<whitequark> also push.recurseSubmodules
<azonenberg> Curious why those are non-default
<whitequark> git rarely introduces new behvior by default in general IME
<azonenberg> were submodules not a feature from the start?
<whitequark> nope
<whitequark> and recurseSubmodules is very new
<whitequark> like 1.7+
<rqou> IME submodules are barely a feature period
<whitequark> they've been steadily becoming slightly less horrible with every release
<rqou> hence the invention of (IMHO even worse) things like google's repo
<whitequark> what's wrong with repo?
<rqou> iirc repo doesn't really handle only checking out part of the code or checking out not-the-same-version in different parts of the code
<rqou> e.g. i shouldn't have to download all of android just to compile fastboot
<azonenberg> i have no experience with it other than cloning android
<azonenberg> and yeah i found that a bit weird
<whitequark> rqou: huh? you can just clone fastboot
<rqou> i tried doing that and it didn't work "for some reason"
<whitequark> it's more of an android buildsystem problem that it needs so many different moving parts to compile
<rqou> that I never bother investigating
<whitequark> not repo specifically
<whitequark> you can definitely just clone fastboot, i did that
<whitequark> you can't *build* it easily
<rqou> maybe it was just an android build system problem
<rqou> iirc there's a whole bunch of .mk/.h files that are somehow needed
<whitequark> yes. it's very obnoxious.
amclain has quit [Quit: Leaving]
<openfpga-github> [openfpga] azonenberg pushed 2 new commits to master: https://git.io/vP1AG
<openfpga-github> openfpga/master 5ba9a44 Andrew Zonenberg: greenpak4: Fixed remaining non-fatal LogFatal errors. Fixes #43.
<openfpga-github> openfpga/master d883c63 Andrew Zonenberg: greenpak4: Converted LogFatal in unimplemented Load() handlers to LogError + return false. See #43.
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from 4ea0e1c to f79b8a6: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages f79b8a6 Travis CI User: Update documentation
<travis-ci> azonenberg/openfpga#118 (master - 5ba9a44 : Andrew Zonenberg): The build passed.
<azonenberg> whitequark: btw, did you notice the severe lack of timing data in the gp4 datasheet?
<azonenberg> i kinda feel like you're expected to just wing it and hope your stuff works
<azonenberg> This hypothesis is supported by the fact that the SLG46620 errata documents "incorrect reset behavior" of the counter block
<azonenberg> tl;dr if you violate the undocumented setup time requirement for the counter reset, it goes metastable or acts weird
<azonenberg> The "workaround" is to use two ff's to synchronize the reset input
<azonenberg> lol
<azonenberg> the thing is, they don't actually document the setup time requirement
m_w has quit [Quit: leaving]
<azonenberg> it's like they never did any timing characterization of the chip
<whitequark> yup
<cr1901_modern> azonenberg: Quick off-topic q, but... working on ym FPGA board again. You've said in practice that 0.47uF caps have better freqresp overall than 0.1uF and 4.7uF (or 1.0uF) in parallel?
<azonenberg> for the specific samsung product line i characterized
<azonenberg> in those package sizes
<azonenberg> they appeared to be the better choice
<azonenberg> But don't take my word for it
<azonenberg> Find a line of capacitors that publishes an Z/freq chart
<azonenberg> and spec those caps
<cr1901_modern> I would hope that all of them
<cr1901_modern> do*
<azonenberg> i have had a hard time finding it for certain brands
<azonenberg> this is one of the reasons samsung gets nearly 100% of my business for MLCCs
<cr1901_modern> I wonder what the highest freq transients I expect to see would be on this board. I can't exactly measure it...
<azonenberg> the datasheets are very readable, have the info right there, and digikey even links direct to them from the product listings
<cr1901_modern> azonenberg: Can you predict the highest frequency transients in your boards w/o measuring?
<azonenberg> I typically try to decouple up to a few hunded MHz in typical FPGA designs
<azonenberg> beyond there the caps wont be effective due to parasitics
<azonenberg> and you just have to hope the IC package has enough internal decoupling
<cr1901_modern> internal decoupling?
<azonenberg> yeah
<azonenberg> like, between power planes on the BGA fanout
<azonenberg> or even on-package discrete caps like some of the kintex parts or x86 CPUs
<cr1901_modern> Besides the pins, how does an IC provide internal decoupling on-die?
<azonenberg> So, there's a bunch of options
<azonenberg> the easy one is discrete caps on the package http://media.digikey.com/Photos/Xilinx%20Photos/XC7Z030-1FBG484C.jpg
<azonenberg> but even those wont be good for ultra high freqs
<azonenberg> Beyond there, the substrate of a large BGA is just a very fine pitch PCB
<azonenberg> so if you have a power and a ground plane, and put them really close together
<azonenberg> ideally with a high-K dielectric
<azonenberg> you have a parallel plate capacitor
<azonenberg> Then on the extreme high-freq side, you can do things like a MOS or MIM capacitor on the silicon itself
<azonenberg> although those use lots of chip area so arent used as much
<cr1901_modern> "so if you have a power and a ground plane, and put them really close together" <--- won't a power and ground plane be really close together?
<azonenberg> Depends on your stackup
<azonenberg> a lot of 6-layer digital PCBs, for example, are signal-ground-signal [core] signal-power-signal
<azonenberg> which provides essentially zero inter-plane capacitance
<azonenberg> if you were to go up to 8 layers and put an additional power-ground stack in the middle, that would be a different story
<cr1901_modern> Hmmm interesting. I've always was told the main reason to do 4-layer PCB was to get the "free" capacitor
<whitequark> what
<whitequark> what
<azonenberg> Typical 4L boards are signal-ground [big gap] power-signal
<azonenberg> you get insignificant capacitance from that
<azonenberg> the big reason is to allow solid power and ground planes
<azonenberg> so you don't have crazy parasitic L from long skinny snaky ground traces
<whitequark> yeah
<azonenberg> it also significantly eases layout because power distribution is much simpler
<azonenberg> (until you try to lay out a board with ten power rails on 4 layers...)
<whitequark> azonenberg: do you have any idea how they make BGA substrates?
<cr1901_modern> I thought the capacitance is proportional to area, so if you have large power/gnd planes, then you would get large capacitance
<whitequark> because that pitch is insane
<azonenberg> cr1901_modern: Directly proportional to area
<azonenberg> inversely proportional to spacing
<azonenberg> then the dielectric constant of the material between them factors in as well
<whitequark> it's just not a large capacitor by itself
<cr1901_modern> Oh, it's the spacing that sucks
<whitequark> like I suppose you'll get a few pF
<azonenberg> Exactly
<azonenberg> If you want the cap you need the layers *right* next to each other, the closer the better
<azonenberg> there are special pcb laminate materials that are ultra thin and high dielectric constant
<azonenberg> for that exact purpose
<whitequark> nice
<whitequark> what's that used for?
<azonenberg> RF i assume
<azonenberg> or very tight tolerance digital
<azonenberg> "buried capacitance" it's called, i forget who makes it
mifune has joined ##openfpga
mifune has joined ##openfpga
mifune has quit [Changing host]
<cr1901_modern> whitequark: azonenberg: do you have any idea how they make BGA substrates <-- now I'm interested in the same q
<azonenberg> my understanding is that its standard pcb technology
<azonenberg> just ultra tight tolerances and probably special fine weave laminates
<whitequark> I could get down to 50 micron on my homebrew PCB process
<azonenberg> The ones i've decapped have been glass-epoxy laminates just like fr4
<cr1901_modern> In any case, nevermind re the capacitance. Additionally, I have 3 voltage rails now that I think about it. So a big capacitor isn't possible
<azonenberg> there's fiberglass weave in the substrate under the soldermask
<whitequark> what are the trace widths tho?
<azonenberg> tiny :p
<cr1901_modern> solid plane*, bleh
<whitequark> well in real terms
<azonenberg> probably 50 um?
<azonenberg> no idea
<azonenberg> i never measured
<whitequark> that's really pushing it
<whitequark> I suspect hm
<whitequark> they start with a real thin layer of copper
<whitequark> to avoid undercut
<azonenberg> of course
<whitequark> then build it up
<whitequark> like, even thinner than usual
<azonenberg> i'm sure its not like a 35um copper layer :p
<azonenberg> probably like 10um or less
<whitequark> so basically a spray of copper
<azonenberg> yeah well a lot of fabs use buildup already
<whitequark> is there even foil like that, or do they deposit it chemically?
<whitequark> yeah sure but
<azonenberg> because the less material you etch, the less you waste
<whitequark> you have to apply that to the surface
<azonenberg> I dont know how they deposit
<azonenberg> it might be, say, PVD seed layer
<azonenberg> a hundred nm or so
<azonenberg> then electroplate up?
<azonenberg> i mean thats basically how they do vias except i think that's sol-gel
<whitequark> mhm
<whitequark> we have a ghetto PVD setup here, I wanna try electroplating on that
<azonenberg> I am very interested if you do that
<whitequark> oh? okay, that's no trouble at all
<whitequark> any specifics?
<azonenberg> i want to build a PVD rig of my own
<azonenberg> Once i have a building i own and can make more extensive mods
<azonenberg> like running extra power capacity and exhaust plumbing
<azonenberg> i want to get back into vac stuff
<whitequark> to be specific, our PVD setup is a variac and a wolfram ladle, with some copper crap thrown into it
<whitequark> usually pennies or something
<azonenberg> pennies, at least in the US case
<azonenberg> are not a good source of copper
<azonenberg> they're copper plated zinc
<cr1901_modern> after 1984 or so
<azonenberg> well zinc alloy
<cr1901_modern> they used to be copper
<whitequark> well I know it deposits copper on whatever you put inside
<whitequark> I'm not sure what the coins are made of
<azonenberg> probably not very pure copper :P
<whitequark> but presumably there is enough copper in them
<azonenberg> just find scrap electronics
<azonenberg> cut the power cords open
<whitequark> lol
<azonenberg> i am not kidding
<azonenberg> back at RPI i used to go to the loading dock for PVD source material
<whitequark> the last four cords i cut open had like ten 30 micron strands of aluminium
<azonenberg> and just find something in the e-waste dumpster
<azonenberg> o_O
<whitequark> you forget which country they're imported from :p
<azonenberg> this was old scientific gear
<azonenberg> and high end stuff
<whitequark> this is actually very unusual
<azonenberg> not like lowest-bidder materials
<whitequark> because aircon pipe that i bought on taobao for next to nothing
<whitequark> was very pure, very nicely thick copper
<whitequark> far better than the aluminium-laden shit i got in russia for far more
<whitequark> most of the stuff i bought here is quite high-quality, or at least cost-adequate
<whitequark> but power cords in particular are *utter, complete shit*
<whitequark> in every aspect
<azonenberg> wow
<whitequark> if I showed them to an IEC official they would have an aneurysm
<azonenberg> the stuff i got was like 14 gauge copper, fairly well made
<whitequark> the last cord, i found no less than ten spec violations
<whitequark> with the shitty copper being not worst by far
<whitequark> I still have a nervous twitch every time someone mentions BS1363
<whitequark> azonenberg: best part
<whitequark> those aluminium strands were actually *electroplated to look like copper*
<whitequark> they have a very oxidized coppery look from outside
<whitequark> btu if you cut them apart.... natch, white
<azonenberg> lol
<azonenberg> wow
<azonenberg> i cut these ones open
<azonenberg> very copper all the way through
<rqou> azonenberg: always remember that whitequark is in HK :P
<rqou> top quality everywhere :P
<azonenberg> lol
<whitequark> rqou: i actually have no general complaints about quality, just the opposite
<whitequark> see above about RAC tube
<whitequark> RAC pipe is basically the first thing you're gonna cut corners on, and it's very noticeable. but no.
<whitequark> I really do wonder what's up with power cords though
<rqou> they're even more commodity than metal pipe?
<whitequark> they're an utter commodity *and* they are made of copper *and* if you put like 10% Al into it, no one will notice until they start to solder it
m_w has joined ##openfpga
<whitequark> if this doesn't present an incentive to cut corners I don't know what does
<rqou> hmm idk
<rqou> the perverse incentives in HK/China are interesting though
<azonenberg> Hmmm
<azonenberg> So, trying to work on the LOC handling for vectors
<azonenberg> i really should refactor this to be in yosys at some point
<azonenberg> split comma separated constraints
<rqou> how does xilinx xst do LOC constraints on vectors?
<azonenberg> they don't support verilog attributes
<azonenberg> you have to do UCF/XDC
<azonenberg> me and whitequark dont like that philosophy and want to have at least the option of doing it inline in the HDL
<azonenberg> i do see the value of constraint files, and will prob implement them eventually
<azonenberg> (for example compiling one piece of HDL for multiple board spins with different pinouts)
<whitequark> i also see the value of constraint files
<azonenberg> But they're not a short term focus
<rqou> hmm the xst manual says that it understands at least RLOC as an attribute
<azonenberg> You can do LOC on scalars via verilog attributes
<azonenberg> You cannot do it on vectors
<azonenberg> in XST
m_w has quit [Quit: leaving]
<rqou> page 295 of http://www.xilinx.com/itp/xilinx10/books/docs/xst/xst.pdf has an example "(* RLOC="X3Y0 X2Y0 X1Y0 X0Y0" *)" on a reg [3:0]
<azonenberg> interesting
<azonenberg> That is good to know
<azonenberg> wonder if it works in vivado
<azonenberg> i know jan gray had some problems with rlocs in hierarchial modules
<whitequark> azonenberg: now that I look at it
<whitequark> let's just go with space-separated
<azonenberg> You want spaces instead of commas? Ok
<whitequark> even easier to parse and read :)
<whitequark> and consistent with xst too, which is playing into people's expectations
<azonenberg> Yreah makes sense
mifune has quit [Ping timeout: 245 seconds]
<azonenberg> i want to do things the same way XST does unless we have a good reason not to
<azonenberg> But not be afraid to deviate given a good reason
<whitequark> yup
<rqou> no altera love? :P
<whitequark> i haven't touched an altera thing
<azonenberg> I have minimal experience with altera parts as well
<whitequark> did xilinx and lattice...
<azonenberg> so i cant apply that
<whitequark> lattice isn't too different anyway
<openfpga-github> [openfpga] azonenberg pushed 1 new commit to master: https://git.io/vPMvW
<openfpga-github> openfpga/master 2688af6 Andrew Zonenberg: greenpak4: Added support for vector top-level module ports. Fixes #45.
<whitequark> neat
<whitequark> hm, maybe I should add gp4 support to migen
<azonenberg> let's wait on adding more frills until we have at least the slg46620 fully supported
<azonenberg> btw did i mention my crazy idea a while ago?
<azonenberg> re gp4 ethernet?
<rqou> wut?
<azonenberg> i think i can run 10baseT autonegotiation on a 46620
<azonenberg> bring up a link, look for activity on it
<rqou> it has enough internal state bits to do that?
<azonenberg> and operate link state and activity leds
<azonenberg> no actual packet parsing or generation
<azonenberg> just keepalives to keep the link up
<openfpga-github> [openfpga] azonenberg force-pushed gh-pages from f79b8a6 to bb93a2e: https://git.io/v6vmV
<openfpga-github> openfpga/gh-pages bb93a2e Travis CI User: Update documentation
<azonenberg> rqou: i think so
<azonenberg> now, here's the fun part
<rqou> why would you want this though?
<azonenberg> a 46620 is small enough to fit in a magjack's shielding enclosure
<azonenberg> i wanna build a board to troll peopl
<azonenberg> e
<azonenberg> put an FPGA + PHY footprint on the board
<azonenberg> some caps, smpses, make it look like a normal ethernet pcb
<azonenberg> then a coin cell
<azonenberg> that looks like a RTC battery or something
<azonenberg> leave the whole rest of the board unpopulated
<azonenberg> and watch the look on the poor IT guy's face when this obviously blank PCB somehow manages to negotiate a link and blink whenever a broadcast packet comes in
<azonenberg> :P
<travis-ci> azonenberg/openfpga#119 (master - 2688af6 : Andrew Zonenberg): The build passed.
<azonenberg> i considered making it purely passive, harvesting energy off the differential voltage
<azonenberg> but the math didn't work out
<azonenberg> not enough energy in the autonegotiation FLPs to boot a greenpak even at 100% conversion/storage efficiency
<azonenberg> and 10baseT doesn't have a differential when a packet isn't being sent
<azonenberg> so you wouldn't be able to keep the link up unless there was a massive swarm of broadcast traffic
<whitequark> dang, energy harvesting would be neat
<azonenberg> yeah
<azonenberg> Doing it as a MITM is still practical
<azonenberg> But only if there is significant traffic
<azonenberg> even so
<whitequark> oh, idea
<whitequark> actually a fairoy practical idea
<rqou> does a 10base-t MAU negotiate a link with no network card connected to it? isn't that a much cheaper way to troll the IT team? :P
<whitequark> make gp4 look for an in-band signaling pattern and then short out the lnkink
<azonenberg> lool
<azonenberg> not enough gates to have a usefully long key i think
<azonenberg> rqou: the point is that you have an obviously blank board
<whitequark> azonenberg: LFSR
<azonenberg> just a "passive" connector and battery
<azonenberg> ooh good point, you could do a cool LFSR off the pdelay's
<whitequark> even with FFs
<azonenberg> with up to 4 taps in a 32-bit chain
<whitequark> but that's even better
<whitequark> dang I love this idea
<azonenberg> anyway, i think i will be stuffed to the brim
<azonenberg> just trying to run autonegotiation
<whitequark> I'll try it out i think
<whitequark> mhm
<whitequark> 25 ffs not enough?
<azonenberg> i'm going to have to use both lut4s just for the AN pattern gen, i think
<azonenberg> i don't know yet
<azonenberg> i have to dig up some diodes
<azonenberg> to clamp the negative differential voltage
<azonenberg> and grab some cat5 from the garage
<azonenberg> but in the next couple days i'm gonna try it
<azonenberg> oh, and i have to find where i left my magjacks and alligator clips
<azonenberg> this is going to look so hacky lol
<azonenberg> a fancy gigabit magjack with alligator clips going to 0.1" headers
<azonenberg> going to a greenpak
* whitequark is reading about the link code word
<azonenberg> strictly you dont HAVE to support that to just bring up a link in 10baseT only
<azonenberg> but its more fun if you can negotiate to a tri-speed host
<azonenberg> and just say you only support 10baseT full duplex
<azonenberg> my implementation will send the LCW and ignore the incoming data
<azonenberg> basically just send a pulse then a hard coded bit from the AN pgen
<azonenberg> I will have to implement the pgen to do that though
<whitequark> right
<azonenberg> Which is on the feature list
<rqou> hacks like this make the "real phy" engineers sad
<azonenberg> rqou: lol
<azonenberg> we're trying to build some semblance of ethernet in 25 luts and twelve flipflops
<azonenberg> gotta make some compromises :p
<whitequark> azonenberg: so I think we can get away with an LCW that has the bit 5 and and bit 14 set
<whitequark> and just blast that
<whitequark> this can be done with a pulse gen and two counters
<azonenberg> i think so? dont remember what bits those are off the top of my head
<whitequark> so three counters chained
<azonenberg> and i wanted to use the pgen
<whitequark> 10baseT plus ACK
<azonenberg> as a test
<whitequark> actually
<azonenberg> this is supposed to be a demo for the digital hard IP
<whitequark> i wonder if i can generate the LCW using *only* counters
<azonenberg> we will need counters for things like pulse stretching the activity LED
<whitequark> as a joke
<azonenberg> and link-down detection to run the link state light
<azonenberg> Gonna go to sleep but will definitely do this after work tomorrow
<azonenberg> the FUN part is going to be trying to take a programmed greenpak and dead bug it inside a magjack
<azonenberg> so it looks like a blank rj45
<azonenberg> then power it through the high side of one LED and the shield
<whitequark> ol
<whitequark> *lol
digshadow has quit [Quit: Leaving.]
<azonenberg> i've always been impressed at some of the NSA etc bugged PC componnets
<azonenberg> i figure it'd be cool to try my hand making one
<azonenberg> even if the implant is a stupid simple thing that just brings up a link and does nothing
<azonenberg> miniaturizing something, anything, that speaks ethernet to the point that it fits inside empty space of the jack
<azonenberg> will be a fun challenge
<azonenberg> it should be a cool blog post to show off the capabilities of the toolchain
<azonenberg> greenpak, decoupling cap, two led series resistors, terminating resistor for the diff pair, and probably a diode or two for clamping negative differentials
<whitequark> I'm definitely going to make one that brings down the link with a key sequence
<azonenberg> all inside a magjack
<azonenberg> lol, ok
<azonenberg> you work on that and i'll work on my version
<whitequark> I'm going to visit your house next spring, right?
<azonenberg> but i have to implement lut4 pgen mode first
<azonenberg> Whenever you're in the seattle area
<azonenberg> yeah
<whitequark> the *real* challenge is triggering it via IRC
<azonenberg> lool that will be funny
<rqou> how about IRCS? :P
<whitequark> yeah, no
<azonenberg> seriously, i want to come up with some cool appnotes for showing off what you can do in our tool
<whitequark> rqou: maybe if you use the NULL cipher.
<azonenberg> and if we can show off ethernet, any ethernet
<azonenberg> in a greenpak
<whitequark> (why is that even a thing?!)
<azonenberg> i think that will blow people's minds :P
<rqou> right, forgot that that exists
<rqou> (NULL cipher)
<whitequark> lemme grab a magjack off RS
<azonenberg> whitequark: it has one use i can think of
<azonenberg> running over amateur radio for command-and-control applications
<azonenberg> where you want integrity checking
<azonenberg> but cannot legally encrypt
<whitequark> oh right
<whitequark> I was thinking earlier about that
<azonenberg> confidentiality isn't usually a concern for hobbyist telemetry, but detecting of tampering is
<rqou> yeah, i believe some ham networks do indeed do that
<azonenberg> or even just packet corruption
<azonenberg> aaanyway bedtime
<azonenberg> but i cant wait to see what some of the silego folks say
<rqou> it's barely past midnight :P
<azonenberg> if we show them 10baseT on a 46620 :p
<whitequark> the ukrainian silego folks will probably not be surprised
<whitequark> they did some insane shit
<whitequark> have you seen the toner transfer PCBs in those appnotes?!
<rqou> it has enough state bits to do that?
<whitequark> do which?
<whitequark> what*
<rqou> the toner transfer controller
<whitequark> no
<whitequark> I mean the UA folks over at silego are writing appnotes with insane hacks
<whitequark> normally you don't see a silicon vendor brandishing toner transfer PCBs in appnotes
<whitequark> they've hired a bunch of guys from Kharkiv Uni or something and gave them an open-ended task of writing fun appnotes
<whitequark> it seems
digshadow has joined ##openfpga
<cr1901_modern> They have this fan controller apnote and led coffee pot temperature indicator that's pretty nice
Bike has quit [Quit: sleep]
lain has quit [Quit: brb updates]
<whitequark> azonenberg: one advantage of migen
<whitequark> is that cosimulation is extremely simple in migen
<whitequark> it's just python code
<rqou> can I plug together migen + MyHDL? :P
<cr1901_modern> Why would you want to?
<rqou> because you might be trying to duct tape together code you didn't write?
* rqou reminds myself to go bump the patch for allowing multiple external simulator tools in MyHDL
<cr1901_modern> Then get MyHDL to generate Verilog as output and then import it as a Migen Instance
<cr1901_modern> or vice-versa if you prefer MyHDL
<rqou> that's dumb
<cr1901_modern> I won't even mix code from the Migen fork LiteX and Migen together
<rqou> also, you're test infrastructure might not be compilable to verilog
<rqou> (in both Migen and MyHDL)
<cr1901_modern> if MyHDL and Migen interoperability is important, then perhaps there should be a MyHDLInstance class in Migen that'll do the conversions internall
<cr1901_modern> I mean it shouldn't be that hard to add
<rqou> yes, and vice versa should also be possible
lain has joined ##openfpga
<rqou> however
<rqou> what if somehow somebody also wants to mix in a module written in e.g. chisel?
<rqou> in general we need a significantly less shitty cosimulation interface
<rqou> "half of VPI" isn't good enough
<cr1901_modern> I like Migen a lot. But it does have some warts. Probably my biggest complaint is that latched logic isn't supported directly, and it's not going to be added.
<whitequark> cr1901_modern: why?
<rqou> cr1901_modern: if only we could fix all of the "interaction" (for lack of a better word) problems without creating a https://xkcd.com/927/
<rqou> then everybody can use whatever language they want with whatever tools they want
<cr1901_modern> I'm sick of that damn comic
<rqou> it's true though
<rqou> especially in the HDL/EDA/CAD/programming/tooling/etc. world
<cr1901_modern> whitequark: Why won't it be added? B/c sb0 believes latched logic has no place in modern highly-synchronous designs, and is the source of too many bugs
<cr1901_modern> I've asked sb0 if he'd accept a pull for it multiple times over the last year and a half, and he questions why I need it each time.
<cr1901_modern> So I assume unless ARTIQ ends up needing latched logic for some reason, he's not going to add it, and he's not going to accept my changes to add it.
<cr1901_modern> whitequark: Or were you asking why I needed latched logic in the first place :P?
<whitequark> yeah, why do you need it?
<rqou> papering over a timing violation? :P
<cr1901_modern> Nah, emulation of vintage and/or existing chips for preservation purposes :P.
<rqou> heh, knowing you I suspected that :P
<whitequark> can't you write it using a combinatorial loop in migen today anyway?
<whitequark> except it will break simulation
<rqou> imho if you're preserving a vintage chip you should probably use structural hdl anyways
<rqou> not something like migen
<rqou> if you're cloning the functionality by reimplementing it, then you can usually convert latches into not-latches
<cr1901_modern> I suppose you could, but my preference would've been for Migen to infer an "always @ posedge" block for something besides a clock
<rqou> those don't synthesize well/at all on fpgas anyways
<cr1901_modern> Erm, Lattice ICE40 has primitives for flip-flops like that (don't ask me which type offhand). I would assume Xilinx and friends do too
<whitequark> it has $_DLATCH_ primitives iirc
<rqou> cr1901_modern: always @ posedge <something> isn't equivalent to a latch?
<whitequark> actually, hang on
<cr1901_modern> whitequark: I guess combinatorial loop would work... never gave it much thought b/c it makes me uncomfortable :P
<cr1901_modern> rqou: Migen won't generate "always @ posedge" for anything except clocks
<whitequark> cr1901_modern: NOPE
<whitequark> actually on ice40 yosys translates latches into logic loops
<rqou> ugh
<cr1901_modern> Interesting... then why doesn't it use the primitives? I guess I'll ask clifford
<whitequark> I don't see the primitives
<whitequark> actually, let me look at this again
<cr1901_modern> SB_DFFR
<cr1901_modern> SB_DFFES
<whitequark> those are all clocked...
<whitequark> hm
<whitequark> oh, no
<whitequark> now this is a latch
<whitequark> aha, SB_DFFSS
<whitequark> cr1901_modern: yeah, I've looked through every primitive
<cr1901_modern> DFFR is "D Flip-Flop with Asynchronous Reset"
<cr1901_modern> Migen clock domains support reset, but they are synchronous- i.e. always generated under an "always @ posedge clk" block.
<whitequark> a) there are no latches and b) yosys does in fact infer a single LUT instead of a latch
<cr1901_modern> I stand corrected then o.0; Could've sworn there were latches.
<whitequark> I think GP4 has latches?
<whitequark> yeah, GP4 has them
<cr1901_modern> Maybe I mistook the "Asynchronous Reset" portion as a latch as well, just by virtue of being async
<cr1901_modern> I don't know how to make Migen generate Verilog that would infer a DFFR, DFFS, or anything where the flip-flop output could change asynchronously.
<rqou> i thought part of the point of migen is to not generate those
<cr1901_modern> wait...
* cr1901_modern checks something
<cr1901_modern> Nope... I'll just have to play around with some of my yosys test code
<rqou> what vintage chip are you modeling?
<rqou> ym2612?
<cr1901_modern> YM2151*. If I can create a working model from vectorizing, I'll consider my project to study the chip a success. Would at some point like to model 8088 as well... possibly create a cycle-accurate IBM clone on FPGA. But that's a pipe dream
<rqou> this type of project takes forever
<cr1901_modern> Well, I have some help/ppl verifying my work and giving me hints. Also, someone wrote a netlist format for vectorizing, so I could generate Verilog from that.
<rqou> i once considered doing reimplementations of 2A03/2C02 that were timing-accurate but modernized (e.g. all synchronous static logic with no latches/pass gates/etc.) but quickly got bored of it
<cr1901_modern> In any case, my mistake: Sorry for wasting 30 minutes of everyone's time.
<cr1901_modern> The only person I know who has done an NES on FPGA and succeeded is kevtris. Everyone else I've heard doing such projects stopped before completing it
<rqou> it's boring
<cr1901_modern> Each to their own :P
<cr1901_modern> Someone created a Sega Genesis from off-the-shelf parts, except for the Yamaha-VDP/and Sega-custom bus arbiter. It apparently booted, but not much else.
<rqou> so you mean an off the shelf 68000 and sega everything else
<cr1901_modern> Well there's DRAM, glue logic, shit I prob am forgetting :P
<cr1901_modern> Oh, and a z80
<rqou> those are the easy parts :P
<cr1901_modern> (5:39:24 AM) rqou: it's boring <-- I don't think it's boring. I'm just lazy.
<rqou> iirc there's an (*WARNING* *WARNING* *DRAMA ALERT*) attempt to blackbox clone all the Neo Geo custom chips
<rqou> i wonder how much progress that is making
<rqou> i don't really get why, but neo geo seems to attract infinite drama
<cr1901_modern> So does MAME. And emulation. But it's a rich source of people needing to RE chips.
<rqou> i've heard neo geo is even more special
<rqou> with people paying tens of thousands of dollars for fake unreleased prototypes or something?
<cr1901_modern> That would not surprise me, tbh. But I don't follow that scene/not nostalgic for it.
<rqou> i'm actually too young to have played most of these "retro" systems
<rqou> i still think they're really neat design-wise
<cr1901_modern> I miss parallel buses
<rqou> serial buses are much easier
<cr1901_modern> I... don't agree. But I'm not prepared to elaborate.
<cr1901_modern> From an archival POV, it's more important to preserve the old chips silicon compared to the new ones b/c programmers no longer tap into every last cycle. The experience of using software today isn't really likely to be lost forever if we don't preserve our Core-i7's silicon (not like we could anyway)
<cr1901_modern> I'm not certain I would consider the experience of using software today worth preserving anyway
<whitequark> the experience of using a NES partly doesn't need to be preserved (because software emulation is just fine) and partly cannot (since you won't have the same peripherals, CRTs and whatnot, anyway)
<rqou> hey, there are CRT emulator shaders
<rqou> :P
<whitequark> mostly it's just nostalgia wankery anyway
<rqou> there's a small amount of legitimacy for NES emulators to have chroma filter emulation though
<rqou> because the NES directly output composite video, not RGB
<whitequark> rqou: yeah, you cannot exactly reproduce analog video output on a modern display anyway
<whitequark> and it's not that hard to get a decent approximation
<cr1901_modern> what's nostalgia wankery? Wanting to preserve old systems as they were meant to be? I suppose.
<whitequark> as they were meant to be: to make a few bucks for the vendor? :p
<whitequark> i'm not arguing that there is no value in having accessible history
<cr1901_modern> If you don't enjoy old systems then I can't help you :P.
<cr1901_modern> Also, I would say software emulation is "not" just fine. No NES emulator can play all NES games. In fact, the only old system I'm aware of that can play all software released for it is SNES.
<whitequark> but at some point, approximately at the point where you start having protracted arguments about minor details in the types of simulation, it stops being preserving history
<whitequark> well, the emulator should be fixed then
<cr1901_modern> whitequark: It's not that simple. NES software is extremely timing sensitive
<whitequark> what you're saying makes sense for later consoles, those which are unlikely to be ever successfully simulated on commodity hardware
<rqou> cr1901_modern: that's only because NES had a giant pile of stupid bullshit that third party developers added
<cr1901_modern> which is why cycle accuracy is even desired in the first place
<rqou> not to mention famiclones
<whitequark> but for those I don't expect to see much successful netlist-level reconstruction anyway
<cr1901_modern> "what you're saying makes sense for later consoles" <-- wait I lost you. What was I saying?
<rqou> hey, some crazy russians are doing netlist reconstruction for the playstation 1
<rqou> it has 3D! :P
<whitequark> rqou: yeah
<whitequark> now try 3
<whitequark> anything written for 3 is definitely going to be lost to time
<cr1901_modern> (5:59:12 AM) whitequark: well, the emulator should be fixed then <-- we don;t know how. That's really the issue. The emulation problems we have with NES at this point require very intricate hardware details :/.
<rqou> you might be able to play the crappy PC port :P
<rqou> oh wait, the DRM server's probably going to get shut down :P
<cr1901_modern> (6:01:37 AM) whitequark: anything written for 3 is definitely going to be lost to time <-- If Dolphin is any indication, we might be okay. I'm not sure. No PS3 developer is using that silicon to the full potential. Probably going through a bunch of system libraries anyway
<rqou> iirc dolphin's accuracy is pretty crap if you do weird low level stuff
<whitequark> indeed
<rqou> like change the BAT/MMU mappings
<whitequark> i talked with fiora about that
<rqou> one of their recent blog posts talks about how dolphin basically doesn't emulate the BAT/MMU correctly at all
<rqou> I'm now curious how PPC QEMU manages to work without being super slow
<jn__> in my experience, it *is* slow
<rqou> but it can boot osx/os9 at usable speeds
<cr1901_modern> "approximately at the point where you start having protracted arguments about minor details in the types of simulation" <-- yea, I can see how those people are annoying. My philosophy is "once the video/audio signal leaves the black box containing the system in question, I don't really care how you manipulate it."
<rqou> oh yeah apparently as of a few months ago people finally perturbed out the bug that made PPC QEMU not be able to boot os9
<rqou> cr1901_modern: what about protracted arguments about the commodore sid nonlinearity?
<rqou> that's before the audio signal leaves the system
<cr1901_modern> It should be emulated to the extent possible then, and deviations should be documented.
<rqou> except for the part where it is subject to die process/temperature variations
<cr1901_modern> I will emulate the two SIDs I have on hand, the community can fight over the details :P
<rqou> also i recall some emulators (probably also for c64 sid) also considered the effect of various crappy filtering that existed on the PCB
<rqou> cr1901_modern: the two SIDs you have on hand in the summer or winter? :P
<cr1901_modern> bite me :)
<rqou> cr1901_modern: what should the correct emulation of the 6502 undocumented 0x8B opcode be? :P
<rqou> it depends on both analog effects and the timing of external DMA (if any)
<cr1901_modern> If I were making a core, I'd consider it undefined behavior. And anyone using that opcode gets what they deserve.
<rqou> and when "that guy" claims that his c64 returns <foo> (at least during the summer), then what will you respond? :P
<cr1901_modern> Similar vein: I love old PCs, but I think the A20 line was a horrible idea, and that backwards compat should've NEVER existed. F*** anyone who thought it was a good idea to rely on addr wraparound.
<rqou> um, windows required address workaround
<whitequark> lol
<cr1901_modern> Windows didn't EXIST when the A20 line was implemented
<rqou> i can't find it right now, but windows ended up relying on it at one point
<whitequark> "Intel no longer supports the A20 gate starting with Haswell."
<cr1901_modern> If what you're saying is true, then there is no excuse.
<rqou> not modern windows
<cr1901_modern> Oh what a shame, old versions of Microsoft LINK don't work properly anymore T_T
<rqou> 16-bit windows
<whitequark> Windows 1.0 was declared obsolete and Microsoft stopped providing support and updates for the system on December 31, 2001.
<whitequark> they stopped it WHEN
<rqou> lol
<rqou> I'm assuming <big customer> put it into a very important point of sale/ATM/industrial control/whatever product
<cr1901_modern> Oh For Fuck's Sake. I stand by what I say; no excuse
<whitequark> but yes
<whitequark> 80286 and PC/AT predates even Windows 1.0
<cr1901_modern> And then Windows 1.0 STILL pulls bullshit like that T_T
<rqou> but hey, "It magically found a way to put ten pounds of flour in a five-pound bag." :P
<cr1901_modern> Okay, so I'm not infallible :P There are certain things I care more about preserving than others XD
<whitequark> cr1901_modern: once, intel has optimized certain kinds of faults just because windows happened to use those
<cr1901_modern> Why am I not surprised? There was another story I recall similar to this, but it was recent?
<cr1901_modern> And which faults? I remember that Bill Gates figured out that "Triple Faulting a 286" was a quicker way to switch back to real mode for DOS compatibility
<cr1901_modern> than the "correct way" which was to toggle an IO line on the keyboard controller?
<whitequark> rqou: more like 10.46 pounds into a ten-pound bag
<whitequark> no, a different one
<rqou> cr1901_modern: I know of a piece of software that did that
<rqou> on Win XP
<rqou> as in, it poked the keyboard controller I/O port manually using an "out" opcode in kernel mode to cause a reboot of the computer
<rqou> the piece of software had a really excellent reason for doing so too
<cr1901_modern> rqou: What excellent reason was this?
<whitequark> yeah, but it was 386
<whitequark> oh
<cr1901_modern> rqou beat you to the punch :P
<cr1901_modern> The story I was thinking about also did happen, far as I can tell. This seems to be an evolution of that.
<whitequark> yeah, it's pretty well-known
<whitequark> don't think it had anything to do will bill gates
<whitequark> but it's a documented method
<rqou> cr1901_modern: it was a piece of online game anti cheat software, and when it detected an "intrusion" it would use the i/o port to cause an instant reboot in a very hard to breakpoint way
<cr1901_modern> lol I never did learn how to use ollydbg
<cr1901_modern> I wonder when the "cutoff" is for "devs really doing screwy things with the hardware"? I suppose never :/
<rqou> oh that's a famous one
<rqou> themida does that automatically
<lain> ugh themida
<rqou> (or at least used to back in the day)
<rqou> hey, afaik modern themida doesn't go into kernel mode anymore! progress! :P
<lain> there's a game I'd really like to analyze but I just don't have time to unravel themida to get at the juicy bits :P
<whitequark> *Spotify*?!
<whitequark> of all thing
<lain> I'm told it uses something called.. malbolge, was it?
<rqou> cr1901_modern: btw this piece of anti cheat software was in general amazingly programmed/engineered
<rqou> my favorite part: 11919756538899982707863945724539333653761979774857340612183031053510579734245760842675696123649067370696469454488556563414740486190448071046262068092920827 = 1075989804722543867950451479135438625081133365918700246517400387277754xxxxxxxx * 1107794561489699862837317902079310266697599541253019825076839675838237xxxxxxxx
<rqou> you can take a guess as to what this means :P
<cr1901_modern> A lot of anti cheat software is. My fav is prob Earthbound's copy protection
<cr1901_modern> I have no idea lol
<lain> large primes?
<rqou> maybe :P
<rqou> (they've since fixed this btw)
<cr1901_modern> This has gotten so off topic lmao
<lain> lol
<rqou> don't worry, TI made this mistake too :P
<cr1901_modern> I was just using it as an example of "some things are so irritating/bikeshedding, they may NOT be worth preserving" :P
<rqou> you wouldn't want to emulate the NES CIC lockout? :P
<rqou> as well as the -5V charge pump stunning of the CIC by unlicensed carts?
<cr1901_modern> Well, that's already done, and... there's probably a legitimate reason to emulate the CIC
<rqou> unlicensed cart charge pumps aren't emulated :P
<rqou> we still don't know how exactly they crash the master CIC :P
<lain> THE EMULATION IS NOT ACCURATE ENOUGH
<cr1901_modern> Look, DICE can't simulate a game of pong at full speed, so I'll wait before I start doing a SPICE simulation in my emulator
<lain> jk jk
<lain> how to accurately emulation: start by creating an accurate universe simulation, then begin molecular reconstruction of the device...
<lain> emulate*
<rqou> but we need to decode the regexes that describe quantum mechanics first :P
<lain> XD
<cr1901_modern> whitequark: https://irclog.whitequark.org/.openfpga/2016-10-18#17957715; I get what you were saying now. The linked comment is a main reason why I think open hardware is important. It is a safeguard against being lost forever when the RE techniques for older technology fail. And old ideas can be renewed by evolving.
<whitequark> well, duh
<rqou> wait this channel is logged?
<whitequark> rqou: it's in the topic even.
<rqou> i probably shouldn't have posted those numbers :P
<whitequark> oh
<rqou> eh, they've already replaced it :P
<whitequark> pfff
<whitequark> if someone comes and asks me to take that down, i'll do it
<whitequark> then i'll register a vps on selectel.ru, make sure it's in google, and tell them to go pound sand
<rqou> eh, the company's korean or something; they probably won't bother
<cr1901_modern> You may say, "well, duh", but I've been surprised by the number of people who don't think preserving existing designs is important b/c "always look ahead, they'll be obsolete anyway!!11one"
<whitequark> which is my general approach to DMCA requests
<rqou> cr1901_modern: there is also this picture of a custom etched TI graphing calculator: http://brandonw.net/calcstuff/factors.jpg
<rqou> :P
<whitequark> lol
<cr1901_modern> Yup, nothing but a bunch of random numbers
<cr1901_modern> nothing suspicious at all about them
<rqou> I actually did my particular factoring after I learned about the TI key factoring and realized how possible it was
<rqou> also, in case people haven't figured out what anti cheat software I was talking about, it's nProtect GameGuard
<whitequark> ohhhh
<whitequark> so lineage lol
<whitequark> did you play that a lot
<rqou> maplestory actually :P
<whitequark> oh
<rqou> I used to play
<whitequark> never heard of
<rqou> haven't played in years
<cr1901_modern> I've never heard of either of those games
<rqou> gameguard files now have an extra 2048 bit signature embedded inside their 512 bit signature
<whitequark> lol
<rqou> it took them years to add it
<cr1901_modern> Oh, those are MMOs?
<rqou> yeah
<cr1901_modern> Oh I don't play those :P
<cr1901_modern> rqou: The newest console I own is a Nintendo DS. Make of that what you will.
* whitequark has never owned or used a console
<whitequark> i did play three sonic games on an emulator
<rqou> anyways, iirc gameguard added a new signature in ~2013
<cr1901_modern> whitequark: Which ones if you remember?
<whitequark> whatever are the first three in series on SEGA
<whitequark> er
<whitequark> on uh
<whitequark> sec
<rqou> interestingly, if you google the modulus in hex, you find some posts on a chinese forum from 2013 talking about the feasibility of factoring the modulus
<cr1901_modern> Megadrive/Genesis
<rqou> I wonder what could have possibly happened? :P
<whitequark> yup that one
<rqou> wait whitequark you're russian and never owned a famiclone? :P
<cr1901_modern> Yea, those are fun games.
<cr1901_modern> Good music too :P.
<whitequark> yeah music is very appealing
<whitequark> rqou: too young for those
<rqou> hmm HK/China had famiclones well into the 90s
<cr1901_modern> whitequark: That's the FM synth sound, btw :P. In case you didn't know.
<rqou> although I never owned a famiclone
<whitequark> I was more interested in C++ Builder than PC games anyway as a child
<whitequark> I was really bad at computer games (all of them) until like a few years ago
<cr1901_modern> I didn't learn to program till I was 18. I mostly played videogames before then :/.
<whitequark> I found games hard, boring and confusing
<whitequark> apparently people usually feel that way about programming but idk
<whitequark> programming was reasonably straightforward
<whitequark> on the plus side: biggest mysteries of my childhood can be unraveled with literally a single MSDN search now
<whitequark> like "but how rundll32 *really* works"
<cr1901_modern> I thought learning programming was frustrating. I didn't enjoy the C++ book I used that much either.
<whitequark> or "what in the everloving fuck VxD means"
<cr1901_modern> Got stuck on references :(
<rqou> I wrote my first printf when I was ~9
<rqou> thanks dad :P
<whitequark> no one really taught me programming. I was taught dragging and dropping buttons from the C++ Builder panel, yes, and given a book on Turbo C once
<whitequark> and I used to know Jeffrey Richter's Advanced Programming for Win32 by hand
<whitequark> by heart*
<whitequark> well, still remember a lot, though it largely talks about things like kernel objects and memory mappings and dynamic linking, which are so genericized to not really stand out
<whitequark> actually
<whitequark> now that I think about it
<whitequark> I *still* have no idea what in the everloving fuck VxD means
<cr1901_modern> Something Windows 3.1 uses :P
<rqou> iirc Raymond Chen explained it as "Virtual X Driver"
<cr1901_modern> Tbh, I did not learn what dynamic linking entailed at uni
<whitequark> oh god
<whitequark> I regret looking
<cr1901_modern> And I still don't really get it. I have a lot of holes in my programming knowledge, and am not exactly sure how to patch them
<whitequark> google
<rqou> that sounds like how uni works :P
<whitequark> never needed anything else
<whitequark> ;p
<whitequark> rqou: that's kind of the opposite in my experience
<whitequark> teaching myself stuff leaves me blind to many things that are common knowledge among practitioners
<whitequark> less so in programming at this point or even digital logic but like.. machining
<rqou> my experience with university is that it's great if you already have some background
<whitequark> I *still* don't know half of the proper terms
<rqou> if you know nothing, it's not so good
<whitequark> biochemistry was exceedingly useful even though I forgot all of the AA structures long ago
<cr1901_modern> I'm not sure where I went wrong. Or even *if* I went wrong
<whitequark> and I still should relearn orgchem
<cr1901_modern> I took 1 semester of chemistry. It's somewhere in the catacombs of my brain, but all the interesting stuff I want to know I prob no longer have the prerequisites for
<rqou> part of it is my school (UC Berkeley) is pretty famous for being abstract/theoretical (at least in engineering)
<rqou> so you have for example EE students that can totally calculate/design transfer functions, but can't actually put together the resistors/capacitors needed to actually build it
<cr1901_modern> G_1G_2G_3G_n/(1 + G_1G_2G_3_G_nH_1 + ... G_1G_2G_3_G_nH_n)
<cr1901_modern> poles on right hand plane are bad
<rqou> now how about discrete time? :P
<cr1901_modern> Poles outside unit circle are bad
<rqou> did you have to look that up? :P
<cr1901_modern> No
<cr1901_modern> I was distracted
<cr1901_modern> I use bilinear transform more often than I'd like, so I know at least that much!
<cr1901_modern> (FIR filters suck. IIR filter DESIGN, but not the filters, suck.)
<rqou> (un?)fortunately I've yet to have to actually design a filter outside of class
<cr1901_modern> scipy is actually pretty bad for IIR design IMO
<rqou> the classes I took also didn't really cover "how do I make a filter with desirable properties?" but only "how do I analyze the properties of this filter here?"
<rqou> I haven't used scipy's filter designer
<cr1901_modern> It does not have a built-in pole-zero plot. It does not have a built-in way to reduce precision of your filter coefficients to analyze whether your poles move outside the unit circle. It only added Second-Order-Sections recently, and not in a release (basically essential for analyzing the freq response of higher-order IIR filters without floating point precision problems).
<cr1901_modern> They're like MATLAB's functions. Just without all the analysis parts afterwards to figure out why is your filter unstable :P.
<rqou> hmm i'm highly unfamiliar with numerical methods / precision problems
<rqou> other than knowing that they can exist
<cr1901_modern> Oh, that's a catch-all term I use for "If you try to use freqz with a high order IIR filter without second-order-sections, your frequency response is likely going to look like an all-stop filter".
<cr1901_modern> B/c everything zerod out
<rqou> in general I haven't had too great experiences with numpy or scipy
<rqou> they don't seem that intuitive to me and scipy especially feels like a giant bag of random functions
<rqou> although a large part of this might be due to the fact that every time I have a problem with numpy/scipy, there was a homework/project due :P
<rqou> anyways, regarding my comments earlier, i'm not saying university wasn't helpful
<rqou> in fact I found it very helpful and learned a huge amount
<rqou> but I definitely saw classmates that went through the same classes and remained quite confused at the end
<rqou> which is why I feel it's much more effective if you already have a clue what's going on
<whitequark> indeed
<cr1901_modern> rqou: Oh, I have complex views on uni. Short version is it's definitely useful, but it's not enough by itself
<cr1901_modern> DEF not enough in the context of a 4 year EE program. Too much to cover :/
<whitequark> I just want a degree so that immigration will fuck off
<whitequark> this is completely decoupled from actual learning
<cr1901_modern> whitequark: I thought you had an engineering degree?
<whitequark> nope
<cr1901_modern> Or went to school for it
<whitequark> I was studying bioengineering and bioinformatics for 1.5 years, then dropped out
<whitequark> well more like 2.5
<whitequark> depending on how you count lol
<cr1901_modern> okay, that's what I remember
<rqou> US or HK immigration?
<whitequark> rqou: so far only HK had no problems with my lack of degree.
* cr1901_modern makes a joke "who the hell wants to come to the US?"
<whitequark> everything else, and I don't even mean permanent immigration, I mean like tourist visas, gives me one hell of a time
<whitequark> I have to go through 5-week clearance every time I request an US visa
<rqou> yeah, US immigration sucks
<whitequark> yes but B-1/2 is not supposed to be that bad
<whitequark> EU also gives me visas for exactly the time I request and not a day longer
<whitequark> UK... well, let's not talk about the fascist island
<rqou> one of my relatives in China has actually been repeatedly denied a US tourist visa essentially for being too poor
<whitequark> oh, that happens a lot.
<rqou> despite the fact that both my parents are now US citizens
<rqou> and the stated purpose of the trip is just to visit my family
<whitequark> though for some bizarre reason no one has ever tried to verify my income
<whitequark> that'd be tricky back in RU since I was basically never officially employed in my life
<whitequark> (hey, that's like 45% less tax to pay)
<whitequark> maybe i don't look poor, or something
<whitequark> rqou: can't you fix that by having said relative present a check? or a bank statement?
<whitequark> or booked tickets and travel
<whitequark> and accomodation*
<rqou> apparently either a) no or b) my family didn't really want to bother
<whitequark> right
<whitequark> maybe the CN embassy is particularly anal about that requirement, idk
<rqou> maybe
<whitequark> at least the US embassies are built alright
<whitequark> the UK one in Moscow is built like a prison
<rqou> on the other hand, I never had problems getting China visas before I got a HKSAR passport
<whitequark> the visit to embassy alone was nearly enough to make me swear off ever going to the UK
<rqou> apparently the rumor is that overseas chinese (not affiliated with Taiwan and not political activists) are basically never denied mainland visas
<whitequark> well, why bother?
<rqou> pretty much
<rqou> hmm the outside pictures of the british embassy in moscow look alright
<cr1901_modern> whitequark: "maybe i don't look poor, or something" Tbh, you've always struck me as either well off OR very careful with how you allocate your income
<whitequark> cr1901_modern: LOL
<whitequark> i live from salary to salary and blow it all on machining pointless bullshit
<cr1901_modern> Ohhh... that's the third option I didn't think of
<whitequark> the only reason i'm not broke is that doing it in RU is very cheap ;P
<cr1901_modern> Things like your hot air station and CNC mill made me think "how the hell can I afford this"?!
<whitequark> consulting
<cr1901_modern> The true answer is that I'm too damn risk averse/frugal
<whitequark> how do you think I spend my weekends?
<cr1901_modern> doing machining :P?
<cr1901_modern> Shitposting on Twitter?
<cr1901_modern> (Doing work for m-labs)
<whitequark> now, the *rest* of the week, i work eight hours for m-labs, four hours for solvespace, and four hours more on misc OSS
<whitequark> ;p
<whitequark> well, not that I actually care about what day of the week it is
<whitequark> but the average comes out something like the above
<rqou> oh yeah, i'm curious why m-labs is in HK
<cr1901_modern> Point is, you MAKE time for your machining?
<whitequark> rqou: to quote sebastien, "because every single time i bought a vacuum part or something, i had to spend two hours going on a train to the german customs office"
<whitequark> hk also has a hefty amount of bureaucracy, but several times less than de
<nats`> and even less than france :p
<nats`> france is the top boring bureaucracy
<rqou> brilliant answer :P
<whitequark> and it has less immigration bullshit (i couldn't have moved to de or fr; several fr companies rejected me outright because of my lack of diploma) and less tax
<nats`> when you do something of of form case you're fucked
<whitequark> to quote one of the rejection letters, which i remember to this day
<nats`> out of
<nats`> I know that problem too :D
<rqou> fortunately US seems to pretty much not give a shit about stuff shipped in for personal use
<whitequark> "it is regrettable that globalization, which allows capital and goods to move freely, does not afford the same kind of freedom to human beings"
<whitequark> what do you think the company did
<nats`> they rejected your CV :D
<whitequark> "move freely between borders"*
<whitequark> no
<whitequark> they accepted my CV and spent some time talking to their immigration lawyer even
<nats`> ahhhh it's pointless
<whitequark> I mean what area are they operating in
<whitequark> (it's financial services, of course)
<whitequark> cr1901_modern: what do you mean by "MAKE time for your machining?"
<whitequark> cr1901_modern: also, which hot air station? I don't own one
<whitequark> and the one I had years ago was extremely cheap shit anyhow
<cr1901_modern> whitequark: I have time management problems, so even 8 hours, then 4 hours, then another 4 hours, 5 days per week (approx) is difficult for me to keep up. If I did however, I would prob have more time to do inane stuff like digitizing chips no one cares about ;)
<whitequark> I gave it away to someone I don't even know
<whitequark> the CNC mill was about $10000
<whitequark> er
<whitequark> $1000
<cr1901_modern> whitequark: I seem to recall you were able to do BGA/asked for what you used
<whitequark> pretty sure you can afford that, and you'll even get it for like $500 because you won't fuck up shipping like me
<rqou> i use an aoyue hot air station (hakko clone)
<rqou> it's good enough
<whitequark> rqou: so i want to buy one specifically from aoyue
<whitequark> know why?
<cr1901_modern> if it wasn't a hot air station, was it a rework station?
<whitequark> cr1901_modern: I never did BGA in my life. it was a crappy hot air rework station. really a soldering iron plus a hot air gun
<whitequark> rqou: I have a tool from a (chinese) company called "DZSH"
<whitequark> so i want to have another from "AOYUE"
<cr1901_modern> Oh... nevermind then :o. I could've sworn...
<whitequark> they would look so well together
* cr1901_modern snickers
<whitequark> anyway, my current soldering iron is an actual hakko, which cost a fortune but is extremely worth it
<whitequark> especially the "micro wave" (indented) tips
<whitequark> makes soldering *QFPs a breeze
<rqou> i also use an actual hakko that was obtained from some random company that didn't need it anymore
<cr1901_modern> Mine is a Weller. It was a generous gift. I want one of those special QFP tips for it
<whitequark> cr1901_modern: or get a regular slanted tip and a drill
<whitequark> anyway I got some hakko tips from taobao
<cr1901_modern> drill?
<whitequark> to my utter surprise, genuine hakko tips
<rqou> wow
<whitequark> the packaging was identical to the ones that came with the iron itself
<whitequark> as well as the tips themselves
<whitequark> clearly went through the same marking press
<whitequark> maybe surplus or something, I don't know. Or the factory moonlights
<whitequark> or was that aliexpress?
<rqou> i usually buy my genuine hakko tips from fry's electronics :P
<rqou> they're actually not too overpriced
<whitequark> here there's only RS really
<rqou> poor selection though
<whitequark> RS, Element14 and Mouser
<whitequark> and no other retailers really. a few street vendors on Reclamation St
<whitequark> and Taobao of course.
<whitequark> Mouser ships from SG IIRC, RS has a department in HK, Element14 is uhhhh
<whitequark> idk
<whitequark> but E14 is also quick
<whitequark> RS is extremely obnoxious, they say "next day delivery" but nearly nothing is actually available
<rqou> here if I need something immediately I can use Jameco Electronics
<whitequark> and when something will actually be shipped is basically at random
<nats`> Farnell is avnet no ?
<rqou> but I've only done so maybe once
<nats`> I thought they were bought this summer
<whitequark> I don't think there is any way to get anything immediately in HK, which is very irritating
<whitequark> the best you can do is 2 days I think
<rqou> get a mainland visa and try SZ?
<whitequark> well
<whitequark> that's still like two hours on the train, no?
<whitequark> i guess that's faster, yes
<cr1901_modern> whitequark: How does a drill help me?
<whitequark> cr1901_modern: make an indentation in the slanted tip with the drill
<whitequark> boom, almost identical to an actual BCM tip
<cr1901_modern> Oh! That's a clever idea
<whitequark> all russians do that :p
<whitequark> no money for fancy tips
<whitequark> it's not quite as good because a modern tip has a rather complex internal structure, multilayer construction etc
<whitequark> but it'll work
<cr1901_modern> I'm sure for hobbyist purposes it's fine
<rqou> blargh google maps is missing the bus route that goes from near my grandmother's place in HK to the SZ border
<cr1901_modern> I could stand to be more resourceful anyway :D
<whitequark> it'll degrade
<rqou> my grandmother's place in HK is also just in general in the most annoying spot possible
<whitequark> there's a coating on the tip that lets it be tinned well
<whitequark> but like i said, it'll work for a while
<whitequark> you might need to use lots of flux the 1st time...
<rqou> whitequark: where in HK are you?
<whitequark> or get a crappy pure copper tip or something
<cr1901_modern> I have a whole tub of that tacky flux lol
<whitequark> rqou: tai po tsai. that's 10 minutes on minibus from hang hau mtr
<rqou> ah, you're also in an annoying spot
<rqou> my grandmother's place is in Tuen Mun
<rqou> all the way on the other side of HK
<rqou> hmm I just discovered that apparently google maps can't do driving directions crossing the china border
<rqou> but it can do transit
<whitequark> why is it annoying?
<whitequark> or well, why specifically
<rqou> it's far from the busy areas (Central, Tsim Sha Tsui, etc.)
<rqou> actually tai po tsai isn't as bad as i thought
<whitequark> how is that bad lol?
<rqou> well, if you do want to go there, it takes forever
<whitequark> it's just 36 minutes to central
<whitequark> and i basically never want to go to central anyway, except stupid shit like banks or government
<rqou> ok, tuen mun is much worse then
<whitequark> i want to go to the lab, which is at yau tong
<rqou> the mtr route actually takes a big detour to get to tuen mun
<rqou> and the fast route is a bus
* whitequark looks up tuen mun on the map
<whitequark> oh
<whitequark> THAT part
<rqou> which obviously isn't as fast
<whitequark> yeah that's stupid
<rqou> apparently they want to develop yuen long
<rqou> hence the giant detour
<whitequark> i assume the proper names mean something in chinese but i have such a hard time remembering the anglicizations
<rqou> they do, but many of them are not obvious
<rqou> place names tend to use older/less common characters
<whitequark> so is it just as bad for you?
<rqou> yeah, especially since the romanization used in HK doesn't match actual pronunciation that well
<whitequark> huh
<rqou> yeah, people in HK tend to look at me and go "wtf?"
<rqou> because I do speak fluent conversational cantonese
<rqou> but not anything more advanced
<rqou> and I don't know too many characters
<whitequark> i kinda want to study cantonese and hanzi, not because of any particular convenience but mere curiosity
<whitequark> on the other hand, i'm not sure if i'll stay in HK for long
<whitequark> because the weather is killing me
<whitequark> and if i don't then it seems rather pointless
<rqou> lol
<whitequark> what about it?
<rqou> hk weather is great
<whitequark> the humidity is awful.
<rqou> i meant that sarcastically
<whitequark> i have a dehumidifier running 24/7 for approximately 8 months at this point
<whitequark> oh
<rqou> i absolutely hate the weather too
<whitequark> actually, sebastien likes the weather a lot. it is good for the skin apparently or something.
<whitequark> he doesn't use ac or dehumidification. last time i visited his apt, i thought i was going to faint
<rqou> but i'm very spoiled in terms of weather
<whitequark> california is basically perfect for me
<whitequark> but then you have to, y'know
<whitequark> live in california
<rqou> yeah, i'm in california :P
doomlord has joined ##openfpga
<whitequark> i guess some parts of CA are less fucked than some particular ones
<whitequark> but it's still fucked alright
<rqou> i'm in Berkeley
<whitequark> i'd probably rather live in Novosibirsk than SF
<whitequark> and that's counting in weather
<whitequark> are you doing a phd or something?
<rqou> nah, just funemployed and wasting time :P
<whitequark> ahh
<rqou> trying to get some personal projects done before I figure out what I'm going to do "for real"
<whitequark> you can always do both!
<rqou> holy **** it's now 5:30 in the morning
<rqou> my sleep schedule is really screwed
<rqou> bedtime for me
<whitequark> what's "sleep schedule"
<whitequark> mine is currently sun-synchronized but I assure you that is a mere coincidence
<cr1901_modern> It's when my back starts hurting b/c the ergonomics of my desk are trash
<whitequark> get a better desk. that will save you orders of magnitude more in healthcare costs
<whitequark> especially in the US.
<cr1901_modern> should prob fix that. I think if I get a better chair, that will also correct 90% of the issues (too high)
zpataki has joined ##openfpga
zpataki has quit [Remote host closed the connection]
zpataki has joined ##openfpga
zpataki has quit [Ping timeout: 260 seconds]
zpataki has joined ##openfpga
tecepe has quit [Remote host closed the connection]
marex-cloud has quit [Ping timeout: 258 seconds]
marex-cloud has joined ##openfpga
marex-cloud has quit [Ping timeout: 261 seconds]
marex-cloud has joined ##openfpga
digshadow has quit [Ping timeout: 252 seconds]
tecepe has joined ##openfpga
zpataki has quit [Ping timeout: 256 seconds]
zpataki has joined ##openfpga
zpataki has quit [Ping timeout: 244 seconds]
zpataki has joined ##openfpga
zpataki has quit [Read error: Connection reset by peer]
MZPX has joined ##openfpga
amclain has joined ##openfpga
MZPX has quit [Read error: Connection reset by peer]
MZPX has joined ##openfpga
<balrog> cr1901_modern: hm I'm not sure what I'd recommend for used low-end chairs
<balrog> though I know you can get a used aeron chair for a lot less than they used to cost
<whitequark> lol aeron
<balrog> whitequark: not a fan? lol
<whitequark> I just know it's like... a rich people chair
<balrog> if you're buying new, sure, and that's why it got that reputation
<whitequark> I know nothing about it except the aura of status attached, and I really dislike such things
digshadow has joined ##openfpga
<balrog> they're in the $450 range used, which I think is not horrible for something you'd be sitting in all day
<whitequark> it's like macbooks, except the hardware is shit now too
<whitequark> oh, hm
<whitequark> that's much more reasonable than I thought
<balrog> at the list price of $1355, yeah too much
* whitequark is sitting in an ikea chair ;p
<balrog> but at this point they're plentiful enough that it's easy to get a used one
<balrog> heh I wouldn't call macbook hardware shit :p
<whitequark> well the PC hardware is beyond shit, especially at this point, and it miraculously keeps degrading
<dalias> i'm happy with my wooden 70s desk chair
<whitequark> but macbooks have not really improved much and the recent ones are unfixable, unupgraedable, and have one port
<whitequark> so yes, that's unusable crap in my book
<balrog> only the ultraportable model has one port
<balrog> and there's not much left to fix or upgrade :P
<whitequark> even when i'm using this ux32vd which has more bugs in embedded controller than there are roaches on the streets of HK
<whitequark> ux32vd is the equivalent of MBA
<whitequark> and it has three ports *and* separate VGA/HDMI
<dalias> pretty sure they are fixable, and non-upgradeable is perhaps a non-issue, but one port is a show-stopper
<balrog> yeah, so does MBA
<whitequark> non-upgradeable is absolutely an issue, because all these ultraportable things have tiny drives and tiny RAM
<balrog> well, close
<whitequark> I have 10G right now, and that's actually too little
<dalias> ah
<balrog> the one-port macbook has the maximum amount of RAM that CPU can support
<balrog> which is unfortunately 8BG
<dalias> i thought you meant like new mainboard/cpu
<balrog> 8GB*
<whitequark> dalias: ... are there any laptops which let you plug in a new CPU?
<dalias> not that i know of :)
<balrog> whitequark: yes. they weigh 15 pounds.
<balrog> :P
<dalias> hm, is 10GB really too little with swap on a fast ssd?
<dalias> honest question
<balrog> hm looks like they allowed for 16GB with Skylake
<balrog> dalias: I have 16gb in here
<whitequark> well, chrome eats four of those, pdf reader eats four more, and then I start linking LLVM and get OOM
<balrog> (late 2013 retina MBP)
<dalias> lol
<whitequark> (I have lots of PDFs open and I resent waiting for them to render so yeah)
<balrog> what pdf reader? :P
<dalias> it seems like the pdf reader getting swapped out wouldn't be so bad
<whitequark> okular
<dalias> my current ssd takes about 7s to read 4gb
<whitequark> I've set its caching to aggressive
<whitequark> second most aggressive mode, w/e that's called
<whitequark> you can make it very conservative with memory but then shit datasheets render slowly
<dalias> of course depending on your OS, swap is MUCH slower than raw io speed
<whitequark> and search slowly too
<dalias> on linux i think it's something like 10000x slower
<dalias> probably each page miss is a round trip to the disk controller and back
<whitequark> pretty sure linux has preloading for virtual memory
<whitequark> prefetching*
<dalias> i've just always experienced pathological slowness with swap, never got around to studying/documenting the cause
<azonenberg> i consider "going into swap" to be one step shy of "OOM kill" and equally unrecoverable
<azonenberg> so on most of my systems i disable swap
<azonenberg> that way instead of hanging for minutes when i run out of ram, THEN crashing
<azonenberg> the app just dies right away and i can restart it :p
<azonenberg> Both are typically symptomatic of a runaway memory leak
<whitequark> I have the opposite problem actually
<whitequark> if I *don't* enable swap then thrashing happens
<azonenberg> wait what?
<whitequark> yup
<azonenberg> my desktop for example has 32G of RAM and zero swap
<azonenberg> my laptop 16 and zero
<dalias> azonenberg, yeah i disable swap too, but i was wondering if ssd makes it usable
<dalias> re: opposite problem
<whitequark> lately most of my system deaths stemmed from some sort of bug in i916
ylm has joined ##openfpga
<whitequark> I *think* what happens is chrome grabs a large about of video RAM, which is just regular RAM claimed by the integrated video
<dalias> having an amount of swap equal to the total dirty-pages size of "crap" processes running on your system (stuff that's resident but never actually runs) should reduce thrashing
<whitequark> and then that somehow affects the OOM killer proper
<dalias> by allowing the ram holding the crap to be reclaimed for use as fs cache
<azonenberg> dalias: yeah i see the point there
<azonenberg> but my experience has been that its easier and simpler to just throw more ram at the problem
<azonenberg> and never have active pages thrash
mifune has joined ##openfpga
<whitequark> in the one case where the system went out of coma I've found some junk in dmesg that says that i916 was forced to give up GEM buffers or something
<azonenberg> i had problems where, for example, a web browser instance i hadn't used for a bit would be paged out despite having plenty of ram available
<azonenberg> and take tens of sec to wake up
<whitequark> another reason I have swap is because of hibernation
<azonenberg> And i just dont hibernate :P
<dalias> yeah
<dalias> it's really annoying that hibernation doesn't work without swap
<dalias> and if you enable swap just before hibernate there's a race window where something might allocate more memory and prevent hibernation
<whitequark> set swappiness to -inf ?
ylm has quit [Ping timeout: 260 seconds]
m_w has joined ##openfpga
MZPX has quit [Read error: Connection reset by peer]
MZPX has joined ##openfpga
MZPX has quit [Read error: Connection reset by peer]
m_w has quit [Quit: leaving]
dingbat has quit [*.net *.split]
pointfree has quit [*.net *.split]
reportingsjr has quit [*.net *.split]
dalias has quit [*.net *.split]
bpye has quit [*.net *.split]
SpaceCoaster_ has quit [*.net *.split]
magulo has quit [*.net *.split]
dalias_ has joined ##openfpga
SpaceCoaster has joined ##openfpga
pointfree has joined ##openfpga
reportingsjr has joined ##openfpga
bpye has joined ##openfpga
dingbat has joined ##openfpga
magulo has joined ##openfpga
mifune has quit [Ping timeout: 260 seconds]
dalias_ is now known as dalias
Bike has joined ##openfpga
whitequark has quit [Ping timeout: 256 seconds]
whitequa1k has joined ##openfpga
whitequa1k has quit [Quit: leaving]
m_w has joined ##openfpga
X-Scale has joined ##openfpga
tecepe has quit [Remote host closed the connection]