IRC channel logs

2020-09-17.log

back to list of logs

<xentrac>V: yeah, but then you have to write your compiler in C, and C is really better for antilock brakes and kernels than it is for compilers
<OriansJ`>rain1: I hope that is true but I'll believe it when I see psyntax.pp addressed honestly.
<OriansJ`>xentrac: lets be fair to C here. It is terrible for antilock brakes or systems that require absolute safety. Because C is a programming language with the motto: You know better than the Compiler. If you are not mature enough to treat that with respect and consideration, you deserve the bugs that comes with it.
<xentrac>well, you can't get absolute safety
<OriansJ`>But C can be used for ANYTHING, it shouldn't usually but lets be honest Ada kinda fucked themselves out of dominating that space.
<xentrac>but you can get constant memory usage and worst-case execution time guarantees
<xentrac>which are not really in the cards if you're using Scheme or Perl
<OriansJ`>xentrac: I can give you constant memory usage and worst-case execution time in mes-m2
<xentrac>yeah, Ada isn't the worst possible language for that kind of thing, but it isn't for lack of trying
<xentrac>because you understand the compiler, right?
<V>OriansJ`: what did ada do
<xentrac>sucked
<OriansJ`>V: short answer demanded shitload of $$$ when its biggest competitor was available for no money.
<V>oops
<xentrac>no, that wasn't the main problem
<xentrac>I mean you aren't going to build life-critical embedded systems at scale without a shitload of $$$ anyway
<OriansJ`>single user licenses were $5K in the 1979
<xentrac>in 1979 it wasn't a realistic option anyway; it was nascent
<OriansJ`>it also was viewed as extremely complex of a language and it took several generations before the compilers had matching performance to C
<xentrac>Henry Baker's in-depth 1997 retrospective critique of Ada, cloaked in satire, is at http://web.archive.org/web/20160304041449/https://bit.csc.lsu.edu/~gb/csc4101/Reading/gigo-1997-04.html
<xentrac>scroll down to "Green's dysfunctionality for embedded systems"
<OriansJ`>xentrac: well to be honest it was joked that Unix and C were designed to trick the Soviets into wasting decades on such code.
<xentrac>yes :)
<xentrac>also C++
<xentrac>it's a standard joke really
<OriansJ`>alot of crazy things were done in the name of the cold war. Like people paid to manually give ducks herpes.
<xentrac>C is maybe best known for causing the Bell System to blow its downtime budget for the next 150 years in a single day in 1990
<xentrac>due to its bug-prone switch statement semantics
<OriansJ`>xentrac: there are reasons why M2-Planet doesn't support switch statements
<xentrac>Ada is maybe best known for blowing up Ariane 5 on its maiden flight, due to raising an exception on a numerical error that wouldn't have mattered and repeatedly rebooting the inertial navigation system
<xentrac>a numerical error which would have been ignored by literally every other programming language I've ever used
<OriansJ`>xentrac: yep 32bit software on 64bit hardware
<xentrac>nope, no 64-bit hardware
<xentrac>I think that example maybe shows why not just the design but also the popular implementations of Ada were uniquely ill-suited for embedded software
<xentrac>I mean silently giving the wrong answer to a coercion from floating-point to integer is a pretty bad way of handling a programming bug
<xentrac>but for embedded software, there is exactly one thing worse than that, which is to raise an exception and abort program execution, and that's what the Ada compiler they were using did
<OriansJ`>>> A data conversion from 64-bit floating point value to 16-bit signed integer value to be stored in a variable representing horizontal bias caused a processor trap
<xentrac>right, but they weren't on "64-bit hardware"; that refers to the word size of the processor, not its floating-point format
<xentrac>unless you think an 8088 with math coprocessor is "64-bit hardware". Or "80-bit hardware" :)
<OriansJ`>xentrac: depends on how agressive you are with abusing the floating point/SIMD hardare
<xentrac>heh! 53-bit hardware!
<xentrac>Baker says that Ada had fixed some of the worst problems by his 1997 retrospective, but they were all still quite present when I learned Ada in 1995
<OriansJ`>xentrac: I was 10 in 1995 and they were not teaching Ada
<xentrac>I learned it from a book
<xentrac>the last time I took a class on a programming language was 1988
<xentrac>maybe I'd be a better programmer if I did it more often tho
<OriansJ`>I learned C from K&R
<xentrac>K&R rocks
<OriansJ`>xentrac: I honestly didn't like the style of some of their ways of doing things
<OriansJ`>but then again my programming tastes are probably quite different than theirs
<xentrac>Ever look at the Lions book?
<OriansJ`>xentrac: I've got a copy of the Unix 6th edition version
<xentrac>Yeah, that one
<xentrac>I think the C style in there is maybe more in keeping with the Platonic essence of C than the K&R style
<xentrac>But they had to sort of compromise on a lot of things for practicality
<OriansJ`>They certainly were not afraid to get dirty with their code to fit in memory
<xentrac>I mean you really didn't want to write numerical algorithms in 6th edition C. Or really even K&R
<xentrac>Yeah, I think a lot of separate compilation in PDP-11 code was so the compiler wouldn't run out of address space
<xentrac>Also the preprocessor | compiler | assembler pipeline structure, which gave you the effect of a much more sophisticated compiler than you could actually fit into a PDP-11 code segment
<OriansJ`>I respect the level of skill they deployed to get everything squeezed into 52KB of RAM but honestly we would have all been better off if they were not so constrained that early on.
<xentrac>Although in some ways maybe they were strongly biased toward preprocessors by prior experience with Ratfor and what evolved into m4
<xentrac>Maybe, yeah. More likely we'd be using VMS
<OriansJ`>xentrac: worse is better; but only if worse is shipping
<xentrac>right
<OriansJ`>8086 however is an example of that sin of 2 week development time pushed far too hard.
<xentrac>Plan9 and Inferno didn't exactly set the world on fire
<xentrac>heh, yes
<xentrac>although the 8086 is really a lot nicer than the 8085
<OriansJ`>I really wish AMD64 fixed the division and multiplication behavior, along with a few minor flaws
<OriansJ`>xentrac: well Linux is slowly stealing ideas from Plan9
<OriansJ`>The 6809 would have been a better idea foundation to build upon than the 8085 but who am I to judge.
<OriansJ`>\/proc for example
<xentrac>yeah, and now we have per-process fs namespaces
<xentrac>and 9P
<xentrac>I think there were a lot of really good ideas in Unix
<OriansJ`>xentrac: well the programmers that came before us were not stupid, their assumptions were just different than ours.
<xentrac>I mean compared to DG RDOS or RT-11 or similar 16-bit OSes, the difference is just night and day
<OriansJ`>xentrac: or ITS and file system versioning by default
<xentrac>Unix let you do things on a PDP-11 that you otherwise would have needed a PDP-10 for, if you could even do them there
<xentrac>Yeah, I liked the filesystem versioning in VMS
<xentrac>but VMS was really clunky compared to Unix
<xentrac>I've never learned to use ITS, but of course it also required a -10
<OriansJ`>but ultimately what survived in the market isn't what is techicially superior or more efficient but what is a better fit for customer's short term needs
<xentrac>Even today it's common to find that doing something with some Unix shell commands is faster and easier than doing it in Hadoop or whatever
<xentrac>although also a lot more bug-prone
<xentrac>have you seen https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html?
<OriansJ`>xentrac: yes
<OriansJ`>but we all know security and correctness are not what businesses care about; unless they are forced to do so.
<xentrac>yeah. or non-businesses either
<xentrac>I mean basically people almost never care about those things
<OriansJ`>xentrac: well government is an ugly mess; someplaces amazing and others absolute garbage fires.
<xentrac>I went to the supermarket this evening and I bet if I had asked the person in back of me in line what they thought about security and correctness they would say something like "well, if they ring me up wrong, I'll ask them to fix it"
<OriansJ`>They say patience is a virtue but in government, it is practically a requirement.
<xentrac>and then I would ask them to please put their mask back over their nose
<xentrac>because I do care about security and correctness
<xentrac>but really it's just not on people's radar 99% of the time
<OriansJ`>xentrac: farting is more effective to get them to cover their nose.
<xentrac>or programming in Ada, take your pick
<xentrac>anyway I liked VMS a whole lot
<xentrac>but once I got access to a Unix box I never really looked back
<OriansJ`>xentrac: because people grew up believing bullshit lines like: "you don't need privacy if you have nothing to hide"
<xentrac>everythig was just easier and more powerful
<xentrac>and there was sooo muuch sooftware I could play with
<xentrac>because even though it was 1993 the internet was already full of awesome free software
<xentrac>kind of like the web today except with less people trying to rip you off
<OriansJ`>xentrac: 8 years of FSF at that point
<xentrac>yeah
<xentrac>but of course the FSF didn't invent free software; it just turned it into a political movement
<xentrac>VMS was very concerned with security and correctness, in a way that Unix wasn't
<xentrac>and I think that's a big part of what sank it
<OriansJ`>xentrac: with hard coded passwords in hard coded administrative accounts
<xentrac>just defaults I think. I mean you could change them unless you're referring to something I don't know about, which you might be!
<OriansJ`>VMS and DEC sank because they never embraced the microprocessor and massively overpriced their software when they really needed to pimp Alpha
<OriansJ`>If DEC through have the effort they put into Digital Unix into Linux and cut the cost of their Alpha systems to drive volume, they would still be alive today.
<OriansJ`>but it was more profitable to bury Alpha ALIVE and SCREAMING
<xentrac>it was really the Intel lawsuit that sank them
<xentrac>but sure, that wouldn't have been a problem if they were as healthy as in 1977
<OriansJ`>not to mention the whole PRISM processor fuck up; were they threw away a huge lead because MIPS was slightly cheaper.
<xentrac>oh, I hadn't heard of that
<xentrac>You could probably make a case that it was the shift of the tech industry from the East Coast to the West Coast that weakened them
<OriansJ`>64 integer registers and proper byte instructions right out of the gate and 4 years earlier than Alpha
<xentrac>That led to a lot of bad decisions
<xentrac>And a big part of that was California's laws on noncompetes and intellectual property
<xentrac>Similar to what we've seen in the last 20 years as the center of gravity has been moving from California to Shenzhen
<OriansJ`>I'd argue what kicked DEC was when a management consultant pointed out how hands off Olson was; which them made him get into things he shouldn't have.
<OriansJ`>DEC is dead, long live DEC is a good book on a bit of it
<xentrac>Maybe, but DEC was always into things it shouldn't have been. The difference is that some of them paid off hugely
<OriansJ`>like the Killing off of their first 16bit processor, that resulted in the creation of Data General
<xentrac>well, that was the opposite
<xentrac>failing to be into enough things!
<xentrac>because they were worried they shouldn't have been
<xentrac>The -8 was the first mass-market computer, the VT100 defines our idea of "terminal" even today, and the PDP-11 really kicked the pants off the Nova/Nova II/AViiON
<OriansJ`>in short, they were human and their choices is what ultimately killed them.
<xentrac>Most of the early internet was built on the -10
<xentrac>Although by the time I got on in 1992 there were only a few -10s left. NIC.DDN.MIL, spacelink.GSFC.NASA.GOV, and WSMR-SIMTEL20 were the only ones I remember encountering at the time
<OriansJ`>And the very thing they feared drove them to act in a way that resulted in their very fear killing them.
<xentrac>Yeah
<xentrac>like the Tale of the Black Freighter
<OriansJ`>haven't heard that one
<xentrac>*s
<xentrac>Read Watchmen if you have a spare afternoon sometime
<OriansJ`>It'll be a while as I have a couple month old child, who eats all of my free time these days.
<xentrac>Anyplace people are trying to collaborate in large groups ends up with some places amazing and others absolute garbage fires
<xentrac>Government has the disadvantage that the garbage fires are actually made of burning bodies
<OriansJ`>although it is a little sad that Hacker news completely ignored the armv7l port of cc_x86
<OriansJ`>xentrac: or piles of cash.
<xentrac>Nah, that happens everywhere
<xentrac>But Michigan has a long way to go before it's the Democratic Republic of Kampuchea
<OriansJ`>xentrac: I was nearly fired for putting in writing that Windows 10's Telementry is in direct violation of HIPPA
<OriansJ`>even though all of the facts backed me up
<V>o.o
<xentrac>Good job!
<xentrac>Covid deaths in Michigan are down to one every couple of hours
<OriansJ`>then all of the State of Michigan systems that were classified as being under HIPPA shortly were reclassified as no longer needing to comply with HIPPA.
<xentrac>haha
<xentrac>awesome
<OriansJ`>because Windows 10 was happening everywhere no matter what.
<OriansJ`>Windows XP left too much scar tissue (not to mention the money spent on extended support $5M/box)
<xentrac>heh
<xentrac>You're up past 6000 covid deaths now, about twice Argentina's per-capita rate. Not bad considering you're in Trumpland
<xentrac>(And half Argentina's crude number of deaths)
<OriansJ`>and Windows 7 migration to Windows 10 was do it or you are fired for alot of managers in DTMB
<xentrac>Are you in a worse position after being nearly fired or a better one?
<OriansJ`>xentrac: I am classified as a P-11 E employee now.
<OriansJ`>So as far as the State of Michigan is concerned paywise I am "a fresh out of college moron"
<OriansJ`>but management lets me do the work that needs to be done and doesn't ask too many questions
<OriansJ`>but I am explicitly forbidden for contacting people outside of my department, unless explicitly permitted by my manager.
<xentrac>Is that new since the drama?
<OriansJ`>^for^from^
<OriansJ`>xentrac: yep
<xentrac>So worse?
<xentrac>I'd be thinking about job-hunting if I were in that situation.
<OriansJ`>Well if one wanted to be completely ignored but still recieve a paycheck, it isn't half bad.
<OriansJ`>but if you want to actually make a difference; it really slows one down.
<OriansJ`>This year, I'm only net saving the State $988,302.14
<OriansJ`>So my worst year yet.
<xentrac>But I'm probably not the most trustworthy source for job advice, I guess...
<OriansJ`>according to my coworkers, anything short of killing someone or violating the explicit instructions not to contact outside of my department. I am pretty much untouchable.
<OriansJ`>which is nice with a small child at home and the fact I work from home minus 1day/month
<xentrac>It's probably impossible to never contact anyone outside of your department. I mean you'll presumably violate it whenever you say hello to the receptionist
<OriansJ`>xentrac: actually it is surprisingly easy
<xentrac>Happy to be wrong!
<OriansJ`>there is no receptionist, only armed guards at the enterence and I am not emailing their asses.
<xentrac>Oh, it's okay to contact them as long as it's not in writing?
<OriansJ`>My floor is my department only. (completely empty right now as only a handful of staff have cause to be exempt from the remote work order)
<OriansJ`>xentrac: more as long as it can't be proven.
<xentrac>Right
<OriansJ`>management likes me because I can get shit done and quickly
<xentrac>Sounds like a precarious position, but I suppose stability is an illusion
<xentrac>Power isn't, though, and it sounds like you have very little power
<OriansJ`>Well I have 3 levels of management above me, who need me right now. but the CIO doesn't like my ass
<OriansJ`>So the reality is if I keep quiet, he never realizes they disregarded his order to fire me.
<xentrac>Haha
<xentrac>Until you meet him in the elevator
<OriansJ`>xentrac: he doesn't even know what I look like
<OriansJ`>only that my email made him mad
<OriansJ`>the classic, shot the messager
<OriansJ`>to kill the message sort of thing
<OriansJ`>But with 100,000 employees below him. I doubt this will cause me future trouble.
<OriansJ`>provided, I don't do something stupid like put an email which lands on his desk again.
<OriansJ`>but $34 Million in savings over these last 5 years; somehow escapes all notice????
<OriansJ`>Government work only has the advantage of enabling me to spend more time with my son than I would have if I worked else where.
<xentrac>Well of course it escapes notice. The CIO's incentives are to spend more, not less.
<xentrac>The next time he's looking for a job, his résumé will have a line item saying "CIO, State of Michigan, oversaw budget of $X and headcount of Y."
<xentrac>and the bigger those numbers are, the better his next job will be.
<OriansJ`>xentrac: although in respective there is one thing in Ada, that I wish C had the balls to add: loop {...} ; which honestly would have eliminated the need for do, while and for support in cc_x86.S and dropped it by a few hundred instructions.
<rain1>I quite like named breaks and continues
<rain1>you could have loop lbl { break lbl; }
<OriansJ`>rain1: well it certainly helps when you have loop foo1 { loop foo2 { break foo1; } }
<bauen1>OriansJ`: well you don't really need to support any loop constructs in cc_x86.S if you support gotos and if/else
<bauen1>assuming your willing to mutilate the C code you're trying to compile a bit
<bauen1>i'm assuming that cc_x86.S supports some form of loops based on your statement
<xentrac>OriansJ`: loop { } would be nice
<xentrac>IIRC Golang spelled it "for" instead