<q3k> 3. Executing Protobuf backend.
<q3k> Segmentation fault
<q3k> q3k@anathema ~/Software/yosys $3. Executing Protobuf backend.
<q3k> Segmentation fault
<q3k> oh yes, I'm a C++ developer
<q3k> i feel so stupid in this language
<q3k> go and rust ruined my brain
DocScrutinizer05 has quit [Ping timeout: 245 seconds]
<rqou> welcome to the "C++ is bad" club
<rqou> let's all gang up on azonenberg :P
<Zorix> c++ is your mother and your father
<rqou> my father actually just uses C most of the time :P
<Zorix> hehe.. OO is for damn millennials
DocScrutinizer05 has joined ##openfpga
<rqou> my disagreements with azonenberg regarding coding style is actually more than just language though
<rqou> we seem to have completely different ideas of how to structure programs
<Zorix> not necessarily a bad thing
<rqou> causes tons of "impedance mismatch" :P
<rqou> Zorix: basically azonenberg seems to use a somewhat "classical Java/C++ OO style" with classes everywhere and methods that manipulate a small bundle of state
<Zorix> ah
<rqou> i tend to prefer a "functional-influenced" style with dumb objects that have relatively little behavior and the functions that just convert objects into other types of objects
<Zorix> sure i can understand both ways
<rqou> e.g. xc2par has multiple points in it where it's possible to actually checkpoint the entire state into a file
<rqou> and you can actually completely restart from that point
<rqou> some specific "impedance mismatches":
<rqou> azonenberg really likes inheritance for making "hook points" available
<rqou> i either just expose a data structure or use higher-order-functions
<rqou> azonenberg really likes methods to enforce invariants
<rqou> i occasionally do that, but i usually prefer "you just can't violate invariants because the data structure can't encode that" or "tough, you screwed it up and hit an assert"
unixb0y has quit [Ping timeout: 276 seconds]
unixb0y has joined ##openfpga
<q3k> well it's doing something
<q3k> (ascii proto rep of write_protobuf)
<q3k> i should probably go to sleep instead :P
Bike has joined ##openfpga
<azonenberg_work> q3k: you're making a protobuf schema for yosys netlists?
<azonenberg_work> coooool
<azonenberg_work> I have my own ideas for protobufs in hardware but they're more along the lines of "parsing protobuf wire format in rtl" :p
<rqou> i still don't get the preference for protobufs
<rqou> it just doesn't seem to be particularly good at anything
<mithro> rqou: It's good for communicating with Google :-P
* qu1j0t3 guesses his style is much closer to rqou 's than that other weird guy's
ZombieChicken has joined ##openfpga
<rqou> offtopic: hkdnr has a really really interesting design style for their website
<rqou> some aspects of it have the "sleek modern western" look (e.g. including a hamburger menu)
<rqou> and then the actual pages are ugly ancient-looking tables
<rqou> azonenberg: ping?
Bike has quit [Quit: Lost terminal]
digshadow has joined ##openfpga
rohitksingh_work has joined ##openfpga
genii has quit [Remote host closed the connection]
knielsen has quit [Ping timeout: 264 seconds]
azonenberg_work has quit [Ping timeout: 268 seconds]
bitd has joined ##openfpga
<mithro> Packing is really good, but placement is a bit strange
<mithro> Still need to get real timing info into the data
<mithro> Can now generate the io.place file from pcf file
rohitksingh_work has quit [Ping timeout: 276 seconds]
rohitksingh_work has joined ##openfpga
knielsen has joined ##openfpga
ZombieChicken has quit [Ping timeout: 250 seconds]
msgctl has joined ##openfpga
rohitksingh_wor1 has joined ##openfpga
rohitksingh_work has quit [Ping timeout: 245 seconds]
pie_ has quit [Ping timeout: 248 seconds]
ZombieChicken has joined ##openfpga
ZipCPU has quit [Ping timeout: 256 seconds]
ZombieChicken has quit [Quit: Have a nice day]
<rqou> azonenberg: ping?
qu1j0t3 has quit [Ping timeout: 260 seconds]
qu1j0t3 has joined ##openfpga
<rqou> apparently trying to (semi-)atomically save files is very expensive
<rqou> who would have thought :P
<rqou> (yes, i have read danluu's files are hard blog post)
DocScrutinizer05 has quit [Ping timeout: 265 seconds]
DocScrutinizer05 has joined ##openfpga
DocScrutinizer05 has quit [Remote host closed the connection]
rohitksingh_work has joined ##openfpga
rohitksingh_wor1 has quit [Ping timeout: 264 seconds]
DocScrutinizer05 has joined ##openfpga
rohitksingh_wor1 has joined ##openfpga
rohitksingh_work has quit [Ping timeout: 240 seconds]
<jn__> rqou: hooray for tempfile/write/rename
rohitksingh_work has joined ##openfpga
rohitksingh_wor1 has quit [Ping timeout: 245 seconds]
<sorear> Tip: IEEE 754 sec 5.12 and 5.8 are not the same
rohitksingh_wor1 has joined ##openfpga
rohitksingh_work has quit [Ping timeout: 256 seconds]
<q3k> rqou | i still don't get the preference for protobufs
<q3k> - the spec for the standard itself is well defined (cf. json where every parser is slightly different http://seriot.ch/parsing_json.php )
<q3k> - faster, smaller, binary format
<q3k> - schema for the actual data you exchange that allows you to have forwards and backwards compatibility between services
<q3k> that's basically it, i guess?
<q3k> oh, and - autogeneration of stubs for accessing data from aforementioned specs
bitd has quit [Ping timeout: 260 seconds]
bitd has joined ##openfpga
rohitksingh_wor1 has quit [Read error: Connection reset by peer]
<q3k> mithro: if you're interested in reviewing the schema https://github.com/YosysHQ/yosys/pull/571/files
scrts has quit [Ping timeout: 240 seconds]
Bike has joined ##openfpga
scrts has joined ##openfpga
scrts has quit [Ping timeout: 276 seconds]
scrts has joined ##openfpga
genii has joined ##openfpga
rohitksingh has joined ##openfpga
scrts has quit [Ping timeout: 260 seconds]
DocScrutinizer05 has quit [Quit: EEEEEEK]
DocScrutinizer05 has joined ##openfpga
scrts has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
scrts has quit [Ping timeout: 268 seconds]
rohitksingh has joined ##openfpga
rohitksingh has quit [Read error: Connection reset by peer]
pie_ has joined ##openfpga
rohitksingh has joined ##openfpga
azonenberg_work has joined ##openfpga
ZipCPU has joined ##openfpga
digshadow has quit [Ping timeout: 248 seconds]
<rqou> when i checked the project chibi fuzzer earlier this morning, it had found ~5000 (src, dst) pairs
<rqou> discarded 60k impossible pairs, and has 60k left to go
<rqou> so this means that i expect ~10k (src, dst) pairs
<rqou> so around 10-12 per mux
<rqou> so everything seems to be adding up
<azonenberg_work> :)
rohitksingh has quit [Quit: Leaving.]
<rqou> azonenberg_work did you pass inspection?
<azonenberg_work> rqou: the inspector no-showed
<azonenberg_work> lol
<azonenberg_work> Apparently we're in the queue but didnt make it yesterday
<azonenberg_work> Unsure if he's coming today or not
<azonenberg_work> I have to be at the house anyway for an HVAC guy to come give a quote to put the bathroom exhaust fan duct in
<azonenberg_work> i dont want to start drilling holes in the roof, even the old one
<azonenberg_work> without knowing what i'm doing
m_w has quit [Quit: leaving]
<pie_> rqou, project chibi is your fuzzing stuff youve been doing?
* pie_ facepalms
<rqou> it's the max v RE project
<pie_> thats was a rather redundant question
<rqou> this chip is a very smol 4x6 tiles, so very chibi
<rqou> also the chip is branded MAX, and chibi is kinda the opposite of that :P
<pie_> hehe
<rqou> although the max 10 isn't going to be very chibi if i ever get to fuzzing that
<rqou> max 10 goes up to 50k LEs
<pie_> fat chibi
<rqou> you mean kanna kamui? :P
<pie_> thicc
<rqou> very thicc :P
<pie_> lol
<pie_> altera-thicc-v
<rqou> Project DoNotLewd :P
<pie_> "thicc" "do not lewd" something something cognitive dissonance
<rqou> Project DragonLoli :P
<rqou> i wonder if azonenberg will exercise some kind of executive veto against these names :P
* pie_ notes for later
<pie_> ##weabooRE
<pie_> wait...can you even be weaboo though, you;re asian
<rqou> but I'm not Japanese
<pie_> true
<qu1j0t3> rqou: Or at least exercise some frickin OPS around here
<pie_> qu1j0t3 b&
<rqou> OPS?
<qu1j0t3> ops
<qu1j0t3> mods
<qu1j0t3> @'s
<pie_> ThiccLang when
<qu1j0t3> so today i saw a nice tweet about Frinklang pie_
<qu1j0t3> pie_: I wonder
<rqou> so for some more SFW choices, how about Project Kanna for max 10 RE?
<rqou> or Project Ravioli if you want something really hard to get
<pie_> kanna means watering can in hungarian
<rqou> lol
<pie_> Ravioli ravioli don't lewd the cpld?
<rqou> lolol
<pie_> "nooo onii-chan dont modulate my transceiver like thaaat~"
<rqou> l-lewd
<pie_> wait do cplds even have transceivers
* pie_ does not belong here
<rqou> max 10 does not
<pie_> fat hibi makes me thing of fat elf...
<pie_> chibi
<rqou> alright, I'm definitely going to choose Project Ravioli for max 10 RE
<rqou> and when people ask i can tell them to grep the logs for your comments :P
<pie_> well thats some inside joke level stuff
<pie_> lol
<pie_> o-ok...
<pie_> im sorry my reputation
scrts has joined ##openfpga
<rqou> oh btw pie_ if you modulate the stratix transceivers incorrectly they actually do physically degrade
<pie_> yeah i remember you guys talking about that stuff
<daveshah> AFAIK the problem occurs if you don't modulate them
<daveshah> So long as you modulate your transceivers on a regular basis all is fine
<rqou> i spoke to someone who claimed that it's a common problem with modern extremely-high-speed ICs but wouldn't say much more
<rqou> seems to be implying that the SATA degredation issue that intel had in their chipset years ago was the same issue
<pie_> <daveshah> So long as you modulate your transceivers on a regular basis all is fine
<rqou> also claimed that Xilinx caught this during accelerated aging tests on their early silicon
<daveshah> I also believe Intel screwed anyone with that Stratix issue whose Quartus wasn't up to date
<daveshah> The fix was a software one, only in newer Quartuses
<pie_> rqou, high effort shitpost of the day https://i.imgur.com/Oq1C1BL.png
<rqou> wtf
<rqou> Project Ravioli means that no lewding is to happen :P
<pie_> im not the one probing cplds all day
<rqou> I'm actually just probing software for now
<pie_> nothing lewder than handholding
<rqou> azonenberg is the one that always inserts foreign objects (atoms) into ICs :P
<pie_> lmao
<rqou> some very lewd Pt/W
<awygle> jesus christ lol
<awygle> hm. i wonder how i figure out if this unmanaged hub supports jumbo frames.
<awygle> i guess find and read the datasheet...
<azonenberg_work> awygle: why are you using a) unmanaged hardware and b) hubs
<azonenberg_work> ?
bitd has quit [Remote host closed the connection]
<awygle> azonenberg_work: a) because i work for a company and b) because i work for a company
<awygle> i didn't pick the hardware
<awygle> do switches handle broadcast? i don't remember how that works.
<azonenberg_work> lol
<azonenberg_work> Yes
<azonenberg_work> a dumb switch, like LATENTRED initially will be, takes broadcast or multicast frames and simply echoes them out all ports
<azonenberg_work> A smarter switch with multicast support uses IGMP or similar and, while broadcasts are sent everywhere
<azonenberg_work> multicasts only go to ports where one or more endpoint devices have requested them
<azonenberg_work> I may or may not implement that at some point
<azonenberg_work> on my networks, broad/multicast traffic is such a small amount of bandwidth it's not really worth optimizing for
<awygle> wait multicast _frames_ or multicast _packets_?
<pie_> qu1j0t3, :O
<azonenberg_work> awygle: Both
<azonenberg_work> there's a weird relationship between IPv4 multicast addresses and 802.3 multi/broadcast addresses
<azonenberg_work> iirc 32 consecutive multicast IPv4 addresses map to a single broadcast address
<awygle> what is layers :p
<azonenberg_work> lol exactly
mumptai has joined ##openfpga
Zorix has quit [Ping timeout: 245 seconds]
digshadow has joined ##openfpga
<rqou> azonenberg_work you don't run IPTV using IGMP? :P
<azonenberg_work> No
<azonenberg_work> I run my security cameras using unicast RTP
Zorix has joined ##openfpga
<azonenberg_work> and youtube et al are all TCP unicasts
<rqou> also, azonenberg_work would you actually veto any of the project names mentioned above? :P
<azonenberg_work> They're your projects
<azonenberg_work> as long as you don't name it, idk... "Project Creepy Lolli" or something
<rqou> even if i end up sticking them in openfpga?
<azonenberg_work> how about project tortellini? :P
<rqou> lol too far from the original reference
<azonenberg_work> rqou: fwiw i am not enough of a weeb to get most of your references
* azonenberg_work watches as rqou starts working on max10 and calls it "Project Keijo"
<rqou> it's just reference to a stupid meme
<azonenberg_work> (THAT i would probably veto, lol)
<rqou> lol
<rqou> how about Project Vore :P
<awygle> Project Amiibo Corner
<awygle> "tortellini" is a good example of how i name projects. thing->obscure reference to thing->reference to obscure reference to thing that won't mean anything to anyone but me
<azonenberg_work> awygle: I used to do that, then i switched to full random
<azonenberg_work> and just iterated until it sounded good
<azonenberg_work> The only exception is if a really good name just jumps out at me like STARSHIPRAIDER
<awygle> if i ever write malware it will be named "walken"
<azonenberg_work> i'd probably use a leaked nsa codename just to make attribution more of a pain in the butt
<azonenberg_work> go full misdirection... building in a VM that uses a real NSA employee's name as the userid, "forget" to scrub the PDB
<azonenberg_work> leave a project name in the path
<azonenberg_work> Or FSB, or some other state actor
Bike has quit [Ping timeout: 260 seconds]
<rqou> not "a 400 pound hacker in his mother's basement"? :P
<azonenberg_work> rqou: as soon as a dumb analyst sees evidence that it's state sponsored they'll stop looking for other explanatoins
<azonenberg_work> only a smart one will keep looking
<azonenberg_work> Use a codename for a tool that has been revealed in leaks, but for which no binary is publicly available
<azonenberg_work> People will be like "oh, THAT's what that tool does"
<azonenberg_work> you could go full equation group and use RC6 for crypto, etc
<azonenberg_work> When in reality it *is* a 400-pound hacker in his mother's basement
<azonenberg_work> Just one who wants to deflect suspicion elsewhere :p
<awygle> step 1) begin eating
<awygle> step 2) buy mom a house with a basement
<awygle> are basements even a thing in the US? i've never lived somewhere with a basement but maybe it's an East Coast thing?
<azonenberg_work> awygle: Depends on your definition of basement
<azonenberg_work> the place we live in now on bainbridge has a crawl space under the house where the furnace is etc but its not tall enough to stand in
<azonenberg_work> At the new place, the 1st floor is partially below ground and would probably qualify as a daylight basement
<awygle> yeah crawlspace doesn't count. neither does your new first floor.
<azonenberg_work> My parents place is also built in a hill and has a somewhat similar setup, but older (built in the 1930s)
<azonenberg_work> The basement floor is mostly-flat poured concrete but at the foot of the stairs a giant boulder is sticking up a foot or so
<azonenberg_work> it was cheaper to cast concrete around it and live with the boulder than to blast it out, i guess?
<azonenberg_work> walls are bare concrete
<azonenberg_work> the floor in one area has plywood over it, the rest is concrete
<azonenberg_work> the ceiling is super low
<rqou> azonenberg_work did the inspector show up?
<azonenberg_work> Not yet
<azonenberg_work> I called the L&I office today
<azonenberg_work> as of this morning, our ticket showed pending, meaning the inspector had not yet picked it up for processing
<azonenberg_work> They normally target a <2 business day turn time but it sounds like they might be busier this week. Yay
<awygle> they should at least give you a 4 hour window :p
mumptai has quit [Quit: Verlassend]
<azonenberg_work> noope. i wish lol
<azonenberg_work> In any case i also just called the city building dept
<azonenberg_work> They're a bit more punctual about these things
<azonenberg_work> And are coming down on Monday to inspect plumbing/gas line (freebies, we did none of either), HVAC (minimal) and caulk/seal
<azonenberg_work> Assuming we pass electrical inspection, if not then we'd have to reschedule :p
<azonenberg_work> they actually told me monday AM though
<rqou> btw azonenberg_work have you seen the john oliver episode about infrastructure?
<rqou> "if anything exciting happens, we're doing it wrong"
<azonenberg_work> No? but lol
<qu1j0t3> can't disagree
<rqou> apparently the United States in general has years-long backlogs for major infrastructure inspections/maintenance
<azonenberg_work> Yep
<azonenberg_work> even just basic road maintenance
<qu1j0t3> never fear, Domino's Pizza has it covered
<rqou> hey, they're finally working on 880 here
<rqou> LOL
<rqou> right, that
<rqou> not sure if better or worse than PornHub plowing snow
<rqou> (which apparently didn't actually happen)
<azonenberg_work> rqou: it would be both funny and sad
<azonenberg_work> if (say) Amazon started funding infrastructure projects
<qu1j0t3> MISTER PLOW being, of course, my---
<azonenberg_work> just to get packages to customers more efficiently
<qu1j0t3> azonenberg_work: I think arguably that has been happening?
<qu1j0t3> azonenberg_work: haven't they been paying USPS?
<qu1j0t3> for extra service
<genii> Probably costs more to fill a pothole though than to just buy a drone
<rqou> apparently it doesn't really
<rqou> pothole filling is apparently really cheap
<genii> Interesting
<azonenberg_work> qu1j0t3: it is, amazon is already paying USPS a special rate to deliver on sunday
<azonenberg_work> Normally no mail is delivered on sunday
<qu1j0t3> azonenberg_work: That's what i was alluding to
<azonenberg_work> But thats what i'm saying
<qu1j0t3> I'd really prefer they paid tax
<azonenberg_work> well as long as business expenses are tax deductible, their strategy will be a viable one
<azonenberg_work> (spend everything you make, have no profit and thus no tax liability)
<rqou> I'm just waiting for Amazon to just buy everything related to physical objects and Google to buy everything related to digital items
<rqou> e.g. "Amazon outright buys Iowa, expanding their Whole Foods operation" :P
<azonenberg_work> lolol
<azonenberg_work> and google buys ICANN?
<qu1j0t3> pretty sure that won't be a goodThing™
<azonenberg_work> i never said it was good, just that it was the direction things are headed
<azonenberg_work> rqou: how far do you think we are from Omni Consumer Products?
<azonenberg_work> The current generation ED-209s are pretty wimpy and can't swim :p
<rqou> "In 2050, Alphabet gains all letters of the alphabet, a through z, by merging with Amazon"
<azonenberg_work> lool
<rqou> "This is approved because in 2049 Alphabet has already just acquired the DoJ"
<azonenberg_work> lol
<azonenberg_work> My point from earlier was, though
<azonenberg_work> They wouldn't funding infrastructure for altruistic motives, or by taxes, or anything
<rqou> "In 2051 Alphabet successfully lobbies for legal fictions to be electable to the presidency m Alphabet is now the president"
<azonenberg_work> but simply because their business depends on it
<azonenberg_work> lolol
<azonenberg_work> to be fair, i think i'd rather have google running the country than our current Dear Leader
<azonenberg_work> I'd take an inflatable whale or a pile of plywood too
<rqou> "In 2100 the entire world is <strike>paperclips</strike>Androids"
<awygle> i can't believe nobody's funding trade schools yet
<azonenberg_work> for software devs?
<awygle> Google University is the obvious way to solve their (alleged) hiring problems
<azonenberg_work> Yeah
<rqou> "In 2200 all humans are dead. Only busty android girls with big swords are left" :P :P :P
<azonenberg_work> honestly? it's probably because of the elitism of hiring managers and coders who don't want to see programming reduced to a skilled trade
<azonenberg_work> (even though it already is)
<azonenberg_work> Software engineering and programming are not the same thing
<azonenberg_work> i know lots of software projects in which it is painfully obvious that no engineering was done :p
<genii> Seems appropriate https://youtu.be/vdSqLfuRN18
<rqou> azonenberg_work: it's called "worse is better" :P
<pie_> what did i miss
<rqou> pie_: predictions that Alphabet will take over the entire world
<pie_> i mean seriously sounds like straight out of a batman movie or something
<pie_> <rqou> "In 2200 all humans are dead. Only busty android girls with big swords are left" :P :P :P
<pie_> "guess that might not be so bad"
Bike has joined ##openfpga
<qu1j0t3> azonenberg_work: I've inherited more than a few myself.
<awygle> azonenberg_work: I also, many of them done by people who went to fancy schools. which makes me uncomfortable with the distinction
<awygle> I think we'd need some kind of professional association if we wanted the distinction to be at all meaningful
<azonenberg_work> yeah
<azonenberg_work> fancy school != good sw eng
<azonenberg_work> maaany rpi grads had no clue about how to run a large project
<awygle> and e.g. bootcamp != (!good SW eng)
<q3k> is there any other way than running a large project to learn how to run a large project?
<q3k> it's like the streets smarts of software engineering
<q3k> can't learn this from books yo
<awygle> i'm willing to bet that there are ways, but there doesn't seem to be any decent research on what those ways are
<awygle> maybe our colleagues from Big Data Driven Companies have some? (mithro kc8apf)
<q3k> 'the deadline was yesterday and we don't have time for proper design' simulator 3000
<awygle> ugh
<awygle> "the guy who designed this was incompetent and hasn't worked here in five years so we've been afraid to touch it" simulator
<q3k> awygle: from my time at google it seems like the solution to run large projects properly is actually just hard fucking work
<awygle> idk it's never seemed that hard to me on a _technical_ level. there's like, five or six things you need to do and that's it. i keep looking for the complete misunderstanding i'm sure i have someplace, but i can't seem to find it.
<awygle> it's all the non-technical shit that's the problem of course. computers are easy, people are hard.
<q3k> take time to design, failure is always an option, don't blame people, blame processes, etc.
<q3k> yes
<kc8apf> q3k: it's mostly experience and having empathy. I end up teaching other engineers on the job.
<awygle> but there sure as hell are lots of projects that are absolute garbage designs _technically_ for reasons that elude me
<q3k> awygle: fairly sure those technical reasons stem from people being people
<q3k> it's people all the way down
<awygle> q3k: i'm torn between "yeah, fair" and "that's just kicking the can down the road" :/
<awygle> ah well
<awygle> keeps us gainfully employed i guess
<qu1j0t3> i've seen a lot of such projects. usually the causes are around education/experience/ never being exposed to good practices or a healthy engineering culture
<q3k> i don't see it as kicking the can down the roa
<qu1j0t3> as far as i can tell
<q3k> *road
<awygle> healthy culture is a big one for sure
<q3k> but trying to actually solve the fucking problem
<q3k> you can't patch over broken culture with technical solutions
<awygle> mm that's true but incomplete. it's a feedback loop.
<q3k> the more i consult with customers to fix their fires, the more often i realize i'm there to fix people
<kc8apf> 99% of getting a project back on track is setting reasonable boundaries on what is acceptable and what isn't
<q3k> my role has with time become more of a counselor for siloed teams
<qu1j0t3> you have to get the basics in place (code review, design review, requirements, etc) but to know what the basics are, takes experience :)
<q3k> yeah
<awygle> i've always felt that Conway's Law cuts both ways
<qu1j0t3> and with experience you can see danger signs too
<qu1j0t3> (e.g. this very project i'm on. has had "missing reqts" from day one)
<awygle> if you know your organization is broken (and you can't just leave) you can mitigate the damage with technical firewalls
<qu1j0t3> (this is now the most common pathology. we have lots of engineering resources but no way to get proper requirements)
<q3k> now how do you convince a three-programmers shop that they need to allow time for code reviews even though they're three months behind schedule :D
<q3k> other than 'fuckin hell you hired me for this just trust me you'll regret it otherwise in half a year'
<q3k> and other such anecdata and whatnot
<awygle> i will admit i have no idea how to create meaningful schedules for software projects
<qu1j0t3> i don't quite know how to explain to people who think they don't need X that they will find out they're mistaken eventually :)
<awygle> "how long will this bug take to fix?" "uh if i knew that it would be fixed already"
<qu1j0t3> but i do see the results
<kc8apf> q3k: by talking with the leadership and being _very_ clear that the schedule doesn't matter anymore because it won't be met. Time to figure out what the new schedule will be.
<qu1j0t3> also, code review doesn't have to slow things down much
<kc8apf> awygle: I usually list what things I don't know and how I'm going to figure it out.
<awygle> depends on who's doing the code review and how obnoxious and pedantic they feel like being. which, again, people.
<kc8apf> That gives a lower bound
<q3k> kc8apf: yeah, problem is when that leadership is investors :D
<qu1j0t3> awygle: Well, yes, but that was mentioned above -- people, culture.
<awygle> yup
<kc8apf> q3k: depends on the investor but, yes, most only care about making a return
<qu1j0t3> awygle: it's disheartening how often code review goes bad, i agree. i have no answer for this either, except it's certainly a management problem.
<kc8apf> anything that isn't banging on a keyboard is wasted time to many of them
<q3k> awygle: tbh if someone's a dick during code review they'd probably be dicks at work otherwise
<kc8apf> I purposely avoid those types of investors
<qu1j0t3> q3k: yep!
<awygle> when in that "three months behind schedule" situation i tend to try to take an axe to the features list before renegotiating schedules.
<q3k> awygle: good point
<awygle> (glad to be out of space business where schedule is "rocket going up")
<awygle> (especially glad to be out of space business where schedule is "rocket claims to be going up but we all know that's not true but we have to pretend the schedule means something anyway")
<kc8apf> places with soft or virtual deadlines still do all the same stupid things when schedule starts to slip
<awygle> so _does_ Big G have a "managing big-ass software projects for complete idiots" class or something? seems like the kind of thing they'd study
<awygle> (and then ignore all the results of the study i guess)
<kc8apf> best advice I heard on schedules was from Bart Sano @ Google: schedules are a guess. When you aren't meeting the schedule, the schedule is wrong, not the people. Adjust the schedule based on what you know now.
<kc8apf> there are trainings for project managers but not the average SWE
<q3k> 'they're called estimates for a reason'
<q3k> 'adjust your schedules to reality, not reality to your schedules'
<q3k> etc
<awygle> wait, "estimate" doesn't just mean "the real number plus 30% of fat that we can freely trim"?
<awygle> (/s)
<q3k> also 'just fucking talk to eachother'
<q3k> you have no idea how rare that last one is
<awygle> yeah for sure. engineers that are willfully ignorant of business realities annoy me just as badly as manager types that think declaring schedule makes it so.
<q3k> (I mean, at Other Companies in comparison to G)
<q3k> yes, but even laterally
<awygle> also very true (see: the meeting i was in all day friday)
<q3k> i like people building fully meshed clos networks instead of everything going through a managerial bottleneck :)
<awygle> common lisp object system? :p
<q3k> oh no eww
<kc8apf> my new gig has worked themselves into a corner by everyone doing what they think is best completely independent of everyone else
<awygle> oh, huh
<kc8apf> "We have a product" "From what I see, you have 3 with the same name"
<qu1j0t3> lol, yeah
<awygle> i was about to say "the problem with full meshing is that your meeting size becomes untenable"
<kc8apf> using delegates helps with that
<qu1j0t3> i worked at a startup once that had 200kloc of PHP in their product, with 2 "senior designers" both of which had duplicated functionality in two differently styled class hierarchies. Apparently they didn't talk to/like each other.
<kc8apf> of course, nearly everyone just says the manager is responsible
<qu1j0t3> one wasn't there when i started and hte 2nd had left by the time i did
<awygle> something something that building at berkeley with the weird weld line down the middle and the story about the architects sleeping with each others' wives
<kc8apf> separation of concerns helps avoid overloading any one person
<qu1j0t3> ^
<kc8apf> use a separate technical lead, people manager, etc
<q3k> that too
<awygle> a big problem is that lots of people have different definitions for those terms, too
<kc8apf> yup
<awygle> and nobody anywhere EVER writes the definitions down :p
<q3k> because it's * ~ * ~ business management ~ * ~ *
<q3k> the secret is that nobody knows how to fucking run a business
<q3k> so nobody writes these things down
<kc8apf> I was explaining this to someone at a mid-size business. You simply can't organize people into a single, meaningful box
<q3k> because they don't want to admit that they don't know what they're doing
<awygle> ^ also the secret to software engineering
<kc8apf> usually they oscillate between organizing teams based on product and based on competency
<awygle> something something matrix organization?
<kc8apf> kinda
<q3k> however buzzwordy 'matrix organization' is
<awygle> my father claims a matrix is the _only_ way to run a technical company
<q3k> when I first got this explained to me my reaction was 'oh, yeah, that's how we're doing it already, no?'
<awygle> i suspect they go wrong via the Two Bosses Problem unless tightly held
<kc8apf> Most successful places I've worked, teams physically sit together and share a manager. Ad-hoc groups of people from various teams are formed to deal with a particular product/feature. Long term technical strategy is another dimension entirely.
<q3k> speaking of duplicating work
<q3k> i've once worked with a Kabushiki-Gaisha where management actually hedged their bets on a given product
<q3k> and made two teams work on it totally independently, with two different approaches, stacks, etc
<q3k> (this was a good decision, as one of the approaches failed)
<iximeow> TIL "matrix organization"
<kc8apf> G routinely does that with server designs. Mostly because they are being built while the processors are being finalized. If one processor vendor runs into a problem, the other usually doesn't.
<q3k> but this created a fantastically curious environment where team A and team B wouldn't like eachother anymore
<q3k> kc8apf: right, although that's slightly different - that's using vendor A as negotiation material against B, and vice-versa
<q3k> *that's also
<kc8apf> yup
<kc8apf> doing it purely for motivation, etc is horrible
<q3k> seen it at my project as well with external vendors
<q3k> (at G)
<kc8apf> yowza AWS has a lot of product names that tell you nothing about what the product does
<q3k> aws is not my favourite service
<q3k> i gate that gcloud used its' naming scheme for locations
<q3k> mapping {singapore, tokyo, taipei^Wchanghua} to asia-{southeast,northeast,east} is painful
<kc8apf> I conveniently ignored AWS until today
<q3k> not to mention {london,belgium,frankfurt,netherlands} to europe-west-{1,2,3}
<q3k> fuck this nonsense
<kc8apf> "I need to launch a docker container" "Great! We have 4 different ways to do that."
<q3k> *{1,2,3,4}
<q3k> kc8apf: also they're all expensive
<q3k> kc8apf: i want k8s-aas that scales :(
<q3k> (price-wise)
<q3k> also cloud spanner that doesn't cost an arm and a leg
<kc8apf> I just bought a bunch of cheap machines and run a cluster at home
<q3k> yeah, but I want something like that for cheapo production :)
<q3k> gonna end up doing that at hswaw probably
<q3k> one power uplink and internet uplink should be enough for anybody
<q3k> i don't care for anything better than 99% SLA 99% of the time
<kc8apf> heh. I've got a standing offer to get half a cabinet at HE's FMT2 if I can provide a router capable of full Internet routing
<q3k> that's easy
<q3k> get a supermicro xeon-d
<q3k> install BIRD
<q3k> done
<q3k> should do 10GbE no problem
<q3k> share that half of cabinet and i'll buy and configure the router :P
<kc8apf> apparently the owner insists on a Cisco or Jupiter box
<q3k> heck, i'll bring my own ASN