ec changed the topic of #elliottcable to: a 𝕯𝖊𝖓 𝖔𝖋 𝕯𝖊𝖙𝖊𝖗𝖒𝖎𝖓𝖊𝖉 𝕯𝖆𝖒𝖘𝖊𝖑𝖘 slash s͔̞u͕͙p͙͓e̜̺r̼̦i̼̜o̖̬r̙̙ c̝͉ụ̧͘ḷ̡͙ţ͓̀ || #ELLIOTTCABLE is not about ELLIOTTCABLE
meowrobot_ is now known as meowrobot
cloudhead has quit [Ping timeout: 260 seconds]
<pikajude> mfw
<pikajude> all the neat blog posts i read about using docker for development
<pikajude> are using shitty interpreted languages
<pikajude> what if i have to compile this
<ec> hi
<ec> lmao
<ec> pikajude: #docker or sth?
<ec> FUCK I'm loving FM-84
<pikajude> hashtag it
<ec> hashtag ur ass
<ec> actually don't, octothorpes have lots of pointy bits, pretty sure those'd be some nasty lacerations
eliot has joined #elliottcable
<ec> ahhah!
* ec waves at eliot
<ec> unfortunately I'm just headed out
<ec> say hi to some locals :3
<eliot> ah no worries... just wanted to hop on FN again for old time's sake :)
<pikajude> whoa
<pikajude> two elliotts
<eliot> be careful to not invite anymore, might cause a netsplit
eliot has quit [Read error: Connection reset by peer]
<ja> ☉_☉
<ec> an elliotsplit
<ja> lol
<ja> would the ec ever write something like `selection = (isSelected ? without : concat)(selection, id)` in JS or would he split it up into an if?
* ja such curious
<ec> the elliott has written many things like that
<ec> I think Paws has at least one instance of a four-nest ternary
<ja> XD i really gotta source dive Paws soon for reals
<ec> lmfao
<ec> it's broken and pointless but sure
<ec> idk why I work on this omfg
<ec> I'm such a bad programmer I'll never be able to finish this.
<ja> you're kidding, right? you will finish it, riight?
<ja> did you drop the name change, btw?
<ja> what was it… some poet's name¿
<ja> it was p difficult to spell as far as I recall
<ec> nope, it's still happening
<ec> I kinda wanna make A Small Announcement,
<ec> but I felt very uncompfortable doing so shortly in the wake of his death.
<ec> felt like it would be capitalizing on his passing for attention and popularity of my work
<ec> so sometime in the next year or so, yeah, it'll be Official, wtfever that means
<ec> I already own a few domains and things
<ec> also want to finish the two-years-in-progress reimplementation of Paws 10 before that happens
<ec> because there's, like, three fucking versions that have never been implemented, that I suppose will become Pratchett 11, 12, 13
<ja> Paws 10? srsly? :O 10‽
<ja> Pratchett, lol, that was it
<ja> sweet
<ja> Paws X
<ja> you're already way ahead of Ruby, Java, etc. with 10
<ja> gst
<ja> wat
<ec> lol
<ec> I rely on release-numbers, not semver or anything, for the *language design*
<ec> basically I have a set of “problems with the design” in my head, at any given moment
<ec> then for each design-iteration over the years, I've had two major stages:
<ec> first, I theorize and experiment with solutions to the *problems I've chosen to attack* for that iteration;
<ec> then once I settle on beautiful solutions … there's a second stage of determining which unrelated corners of the design have been damaged or made less beautiful by the ripple-effect of the changes made in the first stage.
<ec> so, Change, then Repair.
<ec> I basically only allowed one “Change-and-Repair” cycle per reified language design.
<ec> Not all of them got written down; but if the number increased from 7 to 10 between anything getting written down, that basically implied that some of the intentional changes — fixes to language-design flaws that I could see — during, say, ‘cycle 8’,
<ec> fucked up *other* parts of the language so badly, that I had to push forward *other* intended fixes, and immediately go re-design those newly-broken parts of the language
<ec> i.e. give them their own Change-Repair cycle.
<ec> lol there's an entire universe in my head that nobody knows about, and I kinda hate it.
<ec> I wish I had a team, and sit-down meetings every morning, and meeting notes, and release-notes, and
<ec> but nope just this entire universe cranking away with no external check-n-balances 🙄
<ja> lol i'd love to experince you in a coprorate-type meeting
<ja> i think i'm on cycle 5 on my current client project
<ec> god no
<ec> I'm so quiet tbh in that sort of setting
<ec> I only have two configurations as a person: flailing, high-energy, center of attention and center of the room,
<ec> or quiet suppressed affording-others-the-chance-to-speak
<ec> I put, geeze, a solid 90% of my social spoons into ensuring I remain in the second as much as possible. because otherwise I'm a horrid menace.
<ec> ask gkatsev, he's been around me in person. :P
<ec> and jfhbrook? but that was more social, less tech, so.
<gkatsev> hi
<ja> haha, have you peeps actually met irl¿
<gkatsev> yes
<ja> who even is gkatsev
<ja> hi
<gkatsev> but we at js conferences, does that count?
<ja> i guess that counts
<ja> ec oughta speak about Paws X at a js conferance
<ja> eeeee
<pikajude> that would be funny
<ec> trust me I've thought about this
<ec> I *wish* I could do public speaking; that'd give me the attention and contributors I need to make this a real-world thing
<ec> my fear of crowds is 100% the Thing holding my admittedly-fucking-excellent ideas back ;)
<ec> people keep telling me to give talks and I'm always like r u fucking kidding have u met me
<ec> anyway tl;dr, ja, the codebase I spend all my time on right now is
<ec> 1. extremely torn-apart and broken, because I ran into a huge implementation mistake and am having to re-write like the entire vascular system of its guts from scratch
<ec> and 2. even if you go back to a branch before the current re-write, it implements an *old version of the language*, that has deep, well-known flaws that make it effectively a ...
<ec> well, completely useless as a programming language. :P
<ec> so currently, I have to complete this re-write, so that I can start building *on top of it*, implementations of the new *design* changes that solve those known flaws.
<ec> lemme uh be more specific, that was all pretty vague
<ec> so the original POC of Paws is up on GitHub, it's called µPaws:
<ec> that code is a beautiful kind of eldritch horror
<ec> (line 719 kinda nails it: “// FIXME: This is all a massive, buggy, tightly-coupled clusterfuck.”)
<ec> but it proved the implementability of the original, core idea behind Paws, even if it was buggy, absolutely-uselessly-slow, and ignored 90% of the cool stuff Paws is *supposed* to do, besides that core idea.
<ec> I moved on and started to re-write the entire thing in Actual, Maintained, Well-Tested Code — basically, not changing anything, or adding anything new, just giving myself a clean, thoroughly-TDD foundation to start iterating and doing design-work on top of.
<ec> unfortunately, there's one fatal flaw in the entire approach that the original implementation took; and I copied that flaw over:
<ec> The entire implementation depends on a centralized data-structure that represents, effectively, a queue of pending “operations-to-preform.” Horribly unperformant, although that's something I'm willing to swallow, and precludes any sort of concurrency, which is something I'm *not*.
<ec> so for the past couple years, my programming-time has been slowly and painstakingly going towards ripping out that central queue, and replacing it with a decentralized, queueless architecture for *strictly-ordering pending work*
<ec> I'm terrible at this mid-level architecture stuff — the bit that lies between “language design” and “writing a clean, well-tested function”
<ec> i.e. data-structures, algorithms, high-level software architecture, all of it
<ec> so I'm constantly making fuckups like this, that set me back horribly, having to *rewrite a bunch of stuff*. I have the *design* clear in my head, but translating it into functioning code is always a morass. -_-
<ec> anyway.
<ec> So, meantime, while that's been happening, I *haven't stopped design work*. the “queueless” project is focused on re-implementing *precisely the same language*, using a different data-structure; but that *language itself* is now several years old.
<ec> so once queueless is complete, I've got a stack of pending implementation work the size of Mt. Kilimanjaro, lolol, just to have a running (viciously-slowly) interpreter (ew) in JavaScript (ew!??) that implements a not-completely-pointless programming-language design.
<ec> ---- ---- ----
<ec> tl;dr it's all fucking hopeless.
<ec> and, of course, that's all *one stage* of the Spaceship, which is basically a joke at this point:
<ec> that's violently out-of-date, but the spirit of the thing is accurate: each of those question-marks represents at leaaaaast as much design-work (not to even *mention* somebody actually implementing the damn stuff) as the coloured-in part
<ec> the green and yellow stuff is all wrong; because of the deep-running language-flaws in the design that existed at the time of that document. Enough as been ripped out that a lot of that has to be re-implemented. |=
<ec> so: the queueless re-write of Paws.js is a re-implementation “Paws' Nucleus r10”; with fatal flaws that make it pointless to use until I can at least implement the changes of the r11 design;
<ec> and in my head, over the last years, I'm currently working on the … 13th? 14th? revision, solving more design flaws.
<ec> luckily, the design-flaws are getting steadily … smaller? I'm pretty happy with the overall Nuclear design, tbh; the core of the language is v. beautiful, and noooooothing like anything out there that I know of.
<ec> hope that was somehow-useful information and/or entertaining and/or interesting :P
<ec> and of course to be clear, this is language-design work all of the fucking above is just the *first stab*. The ‘design flaws’ I speak of are just the shit that is super-obvious with the slightest thought, basically — there's plenty of flaws I'll never know about *until the language is implemented and functioning*
<ec> basically, until I can use it, and figure out what bits of my design are absolutely horrid to work with in the real world, when writing actual code
<ec> but i'm just pretending that's not a thing because it's too depressing
<ec> idk how people fucking do language design
<ec> I love it and care about it and it's *mind-bendingly* depressing
<ec> “I'm gonna spend years implementing this thing and not know if it was a worthwhile effort until I'm done!?”
<ec> 🙄
cloudhead has joined #elliottcable
prophile has quit [Quit: The Game]
mylesborins has quit [Quit: farewell for now]
mylesborins has joined #elliottcable
<Elphaba> ec: <3
cloudhead has quit [Ping timeout: 260 seconds]
<pikajude> ok, well
<pikajude> i don't love kubernetes
<pikajude> but it's soooooooooo much better than using capistrano
<pikajude> mmmmm
<jfhbrook> capistrano moar liek crapistrano amirite
<pikajude> capistrano more like shitty fuck
<pikajude> what do you all do to stave off boredom
<jfhbrook> read medium thinkpieces
<pikajude> oh
prophile has joined #elliottcable
<pikajude> every iota of respect i had for kubernetes is gone
<pikajude> it can't do rolling deploys lol
<jfhbrook> ololo
<jfhbrook> no way
<jfhbrook> surely there's a way to do rolling deploys
<pikajude> not by default
<pikajude> basically what you have to do is catch SIGTERM and ignore it
<pikajude> but return 500 from your healthcheck endpoint
<pikajude> until the container is destroyed
<pikajude> because the kubernetes load balancer uses nginx and they haven't designed a way to have the LB notified when a container disappears
<pikajude> so the nginx config is updated every 30 seconds via polling instead of as a result of events
<pikajude> so you have to have the old container and new container live for at least 30 seconds simultaneously
<pikajude> until nginx picks up the new config
<jfhbrook> my god
<jfhbrook> that's turdly to say the least
<pikajude> in java, which doesn't understand what signals are, it's extra fun
<pikajude> @_@
<pikajude> }_{
<pikajude> stealing focus in window managers should be treated as a crime the same level as regular stealing
<jfhbrook> yeah, the worst for me is when google calendar decides I desperately need to know that my standup is in 5 minutes
<jfhbrook> like the notification fucks up anything and everything including system password prompts
cloudhead has joined #elliottcable