IRC channel logs
2021-06-20.log
back to list of logs
<oriansj>I'll strip out mes-m2 from stage0-posix too, so you'll be able to make it just another tarball in live-bootstrap. <oriansj>and for extra protection sha256sum will be checking the checksums all of the the builds in stage0-posix prior to calling after.kaem <oriansj>the slowest part is the AArch64 work. Until I buy and setup proper AArch64 hardware. <stikonas>oriansj: we do that in live-bootstrap but I think it indeed makes sense to check that in stage0-posix <stikonas>I actually have some aarch64 hardware... <fossy>I do have access to rockpro64 <stikonas>fossy: if you have some time, you can review my changes, although I'm waiting for upstream, so it's just a draft, but I don't expect big changes (besides checksum) <stikonas>(most of the work was actually outside live-bootstrap) <oriansj>latest commit of stage0-posix is up. <oriansj>it now includes mkdir, does a self check with sha256sum and has pulled mes-m2 as it wasn't portable and only really worked right on x86 hardware <oriansj>now live-bootstrap should be able to drop all submodules except stage0-posix assuming janneke just adds a couple tags to his repos <Hagfish>ah, that should clean things up a bit, and reduce some of the mental overhead too <oriansj>that is the idea, simpler to work on and easier to maintain long term. <oriansj>not to mention shave 300+MB off the git repo size and allow much faster clones <Hagfish>wow, i didn't realise it was that much <Hagfish>does stage0-posix need to be a submodule? <oriansj>Hagfish: well you have to unpack it somehow and stage0-posix is the one that has untar and ungz <Hagfish>i sort of wonder if it's possible to create a diagram of how the different projects fit together <Hagfish>i can't think of any way of visualising that, though <oriansj>it is also only 15.6MB with everything unpacked and some duplication <Hagfish>i guess you could still have boxes and arrows still, but the arrows would need to be labelled like "is a submodule of", and "is a potential kernel for running" <Hagfish>yeah, i sort of meant a higher level map, showing source projects rather than binaries <oriansj>Hagfish: well most of the tools after stage0-posix are all seperate projects. <Hagfish>but i would treat "live-bootstrap" as a single node on the graph <oriansj>Hagfish: live-bootstrap is the glue that puts the many seperate pieces together. <Hagfish>perhaps the right granularity is having one box per reboot <oriansj>Hagfish: that is a question only you know the answer to. <Hagfish>not every binary or tarball needs to be mentioned <oriansj>Hagfish: all maps start with assumptions of what you are trying to find and do. <Hagfish>it just feels like, those who have the information in their heads don't need a diagram, and those who need a diagram can't get the information to fit in their heads :) <oriansj>The maps I linked are based on the assumption you would like to build everything from source yourself without just using live-bootstrap <Hagfish>yeah, that's useful to have documented in that form <oriansj>and if you think it can't all fit in your head, it means I did something wrong and I need to find a better way to explain it to you. <Hagfish>maybe the problem is that i don't know what i don't know <Hagfish>i keep finding new details or how things fit together <oriansj>Hagfish: well stage0 is about being explicit in all things. How they work and why. <Hagfish>what sort of map would include the fact that there are 300MB in a repo that could be shaved? <oriansj>looking in the .git/modules/ directory <Hagfish>yeah, i'm sure the information is all available somewhere, and the people who need to know it probably already know it <oriansj>every package that isn't a submodule just becomes a tar to download, unpack and use <oriansj>So by moving every possible submodule out of live-bootstrap we shave down the size required <Hagfish>i haven't checked the readme of live-bootstrap recently, and maybe it says that it relies on large submodules <Hagfish>that's probably the most obvious place to document that information, assuming it's useful at all <Hagfish>but i just get the sense that there's a missing "architecture" diagram <Hagfish>except this doesn't have an architecture in any sense i'm familiar with <Hagfish>it's not like bootstrapping is a single app, or a series of microservices, or something like that <Hagfish>it's not like you're working on the Model, he's working on the View, and she's working on the Controller <oriansj>Hagfish: think of bootstrapping as a community of people having a fun time and helping each other. <Hagfish>but there is an overlap to the goals of those people <oriansj>So the architecture is a community recreation center built out of love and joy. <Hagfish>that's an outcome, but there are also software artefacts that are produced too <oriansj>everyone here is different and has different preferences. <Hagfish>yeah, and there isn't some central planner dictating what the deliverables should be <Hagfish>but it makes it harder to say in advance what is going to get built <Hagfish>or even to diagram what is built so far, and being built <oriansj>But Hagfish there is a central planner. <oriansj>It might not be immediately obvious but there is and always has been a central planner in bootstrappable. <oriansj>It is whoever is moving the needle ahead the furthest. <oriansj>That person is the one dictating what the deliverables should be and communicating what they are planning to do. Others either join or work on something they think is a better plan for moving the needle forward. <oriansj>This week it is stikonas and fossy. as right now nothing is moving the needle as much as live-bootstrap. <Hagfish>i think the central planner is an emergent phenomenon that is driven by those putting in the most useful work (which is defined self-referentially by the community) <oriansj>Hagfish: indeed and we have noticed a pattern that keeps repeating. <oriansj>Assemblers, Linkers, C compilers and C Libraries are where real bootstrapping progress is made. <oriansj>The first piece is always a linker. Then it is an assembler and then it is a C compiler. Then it is a libc. <oriansj>Then you are able to start the next cycle. <Hagfish>yeah, that's a useful pattern to identify <oriansj>bison, yacc, autotools and perl are the legacy damage that we needed to work around. <oriansj>So as we went to deal with older software, we had to pick up the huge mess left by the previous developers. <oriansj>gio spent god knows how much time unsorting out that bison mess. <oriansj>There is going to be a great deal of work required if one wishes to port live-bootstrap to more than just x86. <Hagfish>i suppose historians must have similar problems, trying to boil down periods of time into their high level details <Hagfish>to some extent, every moment affects every subsequent moment, and there is probably a lot of ambiguity about which events are deemed critical <oriansj>Hagfish: history is about deciding what lies we wish to tell the next generation. <Hagfish>telling stories is perhaps the most uniquely human trait <oriansj>stories allow us to have simpler problems to deal with; rather than the rich complexity of life. <siraben>Hagfish: those time periods are also far more interleaved than we usually learn <oriansj>Sometimes it is the lies that enable a greater truth to be seen, if only for a moment. <siraben>things happen in parallel all the time <oriansj>It is also hard to explain that there are no "Bad Guys" but just people who value things differently than you do. <oriansj>To talk to people who might want you dead and realize that they have precious things which they would do anything to preserve. That they see themselves as the good guy and you as the horriable monster destroying the world. <oriansj>it is a hard thing to learn and to accept. <Hagfish>it's made harder by the fact we like to compress groups of people down into single representative cases <Hagfish>that's a mental bias which is readily exploited by propagandists <oriansj>it after is hard to accept that those people might not do the same for you. <oriansj>Put people under pressure and stress. Starve them of what they need to think clearly and they become quite dangerous animals. <oriansj>Domestication is a behavior learned at great cost and easily stripped away when people feel poor, hungry and/or desperate. <Hagfish>one has to be very careful when pointing out that poverty actually reduces (some types of) intelligence <Hagfish>which means impoverishing people so they make bad voting decisions is a valid strategy for politicians <oriansj>Hagfish: I was called a naive socialist for suggesting that improving diets for all children would improve long term cognative function. <Hagfish>yeah, there are just so many complicated narratives (stories) caught up in our understandings of things like intelligence and voting and economics, not to mention diets <oriansj>Hagfish: and there are people who absolutely hate me because I save on average $6M per year; every year at my job for the State of Michigan. <Hagfish>a million here, a million there, and things quickly add up to real money <oriansj>Because "Government can't be effective" sucks as a line when I can prove it is more effectiv at certain things. <Hagfish>and as an ideology it encourages people to deliberately make government less effective <oriansj>This will be my 6th year at the State in December and I am on track for hitting a grand total of $37M in savings. <oriansj>and that isn't counting the year over year savings of the things I have done in previous years. <Hagfish>is that how much the best competing alternative would cost? <Hagfish>i'm sure it's not some fraction of a budget which you have personal discretion over <oriansj>Hagfish: every year I find a system that costs $$$ then I reimplement it from scratch and kill a big fat support contract and replace it with an open bid that costs a fraction as much. <oriansj>a $12M/Year contract is replaced by a $2M/Year system with better support and far less issues. <Hagfish>just think how many more of these over-priced contracts they could find if people were awarded a fraction of the savings as a reward for finding them <oriansj>So if I counted those $10M/year savings going forward, the numbers would be crazy impressive. <oriansj>Hagfish: I don't need a reward, just the excuse needed to get the toe-hold required to claw them out. <Hagfish>it seems like you could take the skills you've gained in finding these contracts, and start a national consultancy <Hagfish>as long as you don't end up over-charging and becoming the very thing you hate :) <oriansj>Hagfish: I am the world's worst sales person. <Hagfish>if the government was paying you a fraction of what you're worth, you could hire the world's best sales person <Hagfish>there's a bit of a bootstrapping problem there, though <oriansj>Facial Aphasia puts me at an unsolvable disadvantage for running a business but it doesn't give me any trouble for solving technical problems. <Hagfish>yeah, it would be really hard to apply these skills in a new environment, and i don't know whether you could teach them to a loyal team (especially remotely, where the facial aphasia might not matter so much) <oriansj>relationships are hard when it takes you 2 years to recognize someone by something other than the sound of their voice or the manner of their communication. <oriansj>and believe me when I say people take it exteremely personally when you call them by the wrong name. Especially if you are dating them. <Hagfish>if you were the boss, you could force them all to wear distinctive uniforms and name badges :) <oriansj>I have no desire to tell people what to do. I only suggest things I think that might work better but they would have to choose for themselves. <Hagfish>yeah, you would need a team that understands the value of your advice <Hagfish>ironically it might be easier to have an affair than date someone, because affairs usually involve meeting that person alone in secret <Hagfish>theoretically if your date went to find a table at a restaurant while you were ordering at the bar, would you not be able to find her? <oriansj>Hagfish: depends on how unique she dressed. <oriansj>but yes, I can easily be separated and potentially taken advantage of when I am amound people I don't recognize. So I end up not trusting people very much if I don't know and recognize them. <Hagfish>that would make an interesting pseudo-sequel to Memento. a film where all the characters are played by the same actor, to convey what it's like having facial aphasia <Hagfish>by the end of the film, the audience would have learnt to use some of the cues that you use to tell people/characters apart <oriansj>virtually everyone I met looks like a clone of everyone else. The phrase all you people look alike to me doesn't generally go over well. Even though you could put me in a room with Michael Jordan and Jackie Chan and I wouldn't be able to figure out who was who without hearing their voices. <oriansj>or getting told information that Jackie was the taller or shorter one. <Hagfish>that would make for such an interesting (and actually quite unsettling) movie <oriansj>Now imagine the moment in that crowd where everyone looks the exact same, a face you know stands out because it looks different to you than all the rest. <oriansj>It is why I invest in long term relationships by default. <oriansj>Because everyone you know is a precious thing you mine out of years of your life. <Hagfish>that's maybe reassuring to the people you are in those relationships with <oriansj>except those who think I will not protect myself against bad behavior. <Hagfish>yeah, you have to be extra careful that you're investing in the right people <oriansj>That sort of betrayal of trust is far more painful to me and not a mistake they will soon forget. <oriansj>I have an assigned intern at work. Mostly because she was on the verge of being fired and they were required to assign me help. So they gave me the worst they had available. And after 2 years of hammering python3 and SICP; they can't even do hello world in any programming language. Despite graduating with a degree in computer programming. <oriansj>I honestly give people more than enough rope to hang themselves. <oriansj>But I can't imagine what sort of career could even possibly exist after a 4 year internship as a programmer and you never learned how to do hello world; not to mention being fired from the State means no government agency would ever consider hiring you in the future. <oriansj>I did literally Everything possible to give them a chance for success. Including 2 years of no assigned work aside from learning to program (which they didn't do because laundry list of excuses; including financial problems (which I helped them escape) and just excuse after excuse) <Hagfish>it's hard to imagine what must have gone wrong for someone to choose to do a degree in computer programming and not learn hello world <Hagfish>and then choose to get a job that required programming, and still fail <oriansj>Hagfish: well she has a shopping addiction and only programming jobs offered enough money (she still raked up $40K in credit card debt) <Hagfish>i can imagine someone lying about a degree, but obviously the interview process wasn't very thorough <oriansj>Hagfish: State of Michigan talks to the Universities, lying means you are banned from State of Michigan jobs. <oriansj>So she really got a degree in Computer programming <oriansj>From an Accredited university and then immediately forgot everything she learned (or just is pretending to be useless to avoid work (very very bad plan)) <Hagfish>yeah, pretending to be useless seems more believable <Hagfish>if she was employed based on her understanding of computer programming, i'd imagine that the interview involved something more testing than writing hello world <oriansj>Hagfish: her interview process was: woman -> check. Degree in Programming -> check; -> hired (because the State of Michigan pays below market rates for programmers) <oriansj>Why work for $36K/year when you could easily make $108K/year down the road? <oriansj>(intern rates for programmers in Michigan) <Hagfish>i suppose that would already set alarm bells ringing, if anyone was listening for them <siraben>"And after 2 years of hammering python3 and SICP; they can't even do hello world in any programming language. Despite graduating with a degree in computer programming." oof <oriansj>and any intern who demonstrates the ability to deliver work for a couple of months gets upgraded to a P11 automatically. <oriansj>The only thing the State offers that private businesses don't is a job you can't lose without commiting a crime (or doing something seriously unforgivable) <oriansj>So no private sector company with a brain is going to hire a former State of Michigan Programmer who was terminated. <Hagfish>it would be tempting to say "write a garbage collection algorithm", and when she fails say "looks like you need more practical experience" and get her to do the janitor's job <oriansj>And I am just like, you barely escaped debt before your husband got fired from the Post office (during Covid when they had massive staff shortages) because he couldn't stop himeself from getting high and getting arrested for fighting. So you are the only income earner and you have got kids to take care of too. <oriansj>So I am just at a loss of words trying to get a positive change before her next quarterly review. Because if not, she is going to be fired and I can't imagine anyone stupid enough to hire her to so much as pick up trash. <oriansj>So assuming the worst, there will be an internship position open with the State of Michigan paying $36K/year with medical benefits and a swift promotion to $68K/year if you can deliever results. Lots of time allocated for training with me Monday through Friday to help you become a better programmer. <oriansj>Hagfish: Right now all Eligibility staff are working remote (except me 1 day a month because *stupid reasons*) but as of July there will be a 2day/Week in office days for meetings and coordination. <oriansj>But we do have contract positions that are 100% remote (except 2 days out of the year for all staff meetings) <oriansj>but no benefits and the group cut during budget problems. <oriansj>but no contractor helping me with my work has been cut ever. <oriansj>probably because no one is stupid enough to break the financial escape valve when the budget heats up and they need to cut $$$ fast. <oriansj>Suddenly I get assigned new work and magically $$$ gets cut from the budget before the deadline where the State Senate might notice the department for special reductions and the territory isn't lost in a shuffle and new applications are now under the Eligibility banner. <oriansj>looking at things like BootOS and Pineapple One and I can't help but think we are going to have a great deal of fun going forward. <stikonas>I've switched to mes/nyacc tarballs, updated to latest commit of stage0-posix and removed a bunch of mkdir calls from sysa.py <stikonas>(but the remaining ones are needed to create src trees /after/${pkg}/{src}, etc...) <stikonas>now we'll be down to 3 top-level submodules <stikonas>but getting rid of sysa/tcc-0.9.26/src/mes-libc and sysa/tcc-0.9.26/src/tcc-0.9.26 shouldn't be too hard