good morning, #montreal! heading out to the old port for #northsec2023 — this is going to be my first, and i'm quite excited.
p.s. also, it's #ukrainian #vyshyvanka day, no way i'm missing it!
Architecture means understanding constraints and build something that fits.
If constraints change, the architecture has to change, too.
Architecture for getting something out quickly is different from one for cost saving.
https://adrianco.medium.com/so-many-bad-takes-what-is-there-to-learn-from-the-prime-video-microservices-to-monolith-story-4bd0970423d4
Vast majority the bigots and chauvinists turn out to be what they denounce. Weak crybabies, decisively and demonstrably unfit for life in a society.
QT: https://mastodon.social/@ewolff/110389336380463991
It's a bit hilarious how jaded these douchebags are. I have observed a similar situation where a bunch of people in a community I was, have pushed back against bigotry, but nobody was even forcing the bigots out. They cried and whined and slammed the door in their way out.
They ended making their own community with just three people, talking about how "woke bastards have done them nasty" in a spiteful and revanchist tone.
Doom co-creator John Carmack is headlining a 'toxic and proud' sci-fi convention that rails against 'woke propaganda' https://www.pcgamer.com/doom-co-creator-john-carmack-is-headlining-a-toxic-and-proud-sci-fi-convention-that-rails-against-woke-propaganda/
YOU DON'T NEED TURING
Or rather, you do not need Turing-completeness to write programs. This may sound as a nonsensical misnomer that goes against everything you have learnt as a programmer in the span of your career, but you really do not.
First of all, what does it mean for a computer system -- or in our case, a programming language -- to be Turing-complete? Wikipedia states that a Turing-complete system is the one that can simulate a Turing machine. Which is probably the most circular definition you can come up with. Let's forget about this and discuss the qualities of Turing machines.
Arguably, the most important quality of this kind of systems is the dreaded halting problem, so I prefer to define Turing-completeness through it. A Turing-complete system is the one that, given it's current state (both code and available data, though this doesn't always apply), is impossible to predict whether it will halt or will continue executing forever.
But this isn't a requirement for the vast majority of algorithms. For the vast majority of programs, the failure to halt is undesirable either in general or in the major parts of their code. Generally speaking, in any given program, the only part that requires Turing-completeness is the implementation of the event loop. Everything else should be able to terminate eventually, given finite input, so there is no reason to enable the halting problem by default.
The downside to this approach is that Turing-incomplete systems are counterintuitively harder to design. Accidental Turing-completeness is so common, it has become a joke in and of itself. Here is a short and very incomplete list of accidentally Turing-complete systems, aka systems that can be used to perform arbitrary computations and never halt:
* Python (lol)
* Magic the Gathering
* Habbo Hotel (with pool both closed and open)
* Dwarf Fortress
* printf() format string
* x86 memory management unit
* Super Mario World (https://www.youtube.com/watch?v=hB6eY73sLV0)
* Crabs (https://www.pcgamesn.com/doom/crabs)
* Many web services' APIs
* Your mom's ass (citation not needed)
The last two cases are also important, because exposing a Turing-complete set of commands to the outside world, which web APIs must do by definition and your mom's ass maybe only by accident, bears enormous security implications and might allow the attacker to gain control of a web service (and maybe of your mom's ass too).
Most programmers however either do not know about this problem or do not see this as a problem. In fact, lacking Turing-completeness is often seen as a flaw and it is even forcefully added even into things that DEFINITELY DO NOT need it, such as configuration files. How many times have you seen a programming language used for configuration, such as it is often the case with Lua or even JavaScript (looking at Loonix people here)? This mindset has to change. Otherwise, we will all continue to live in the world of abhorrent improperly designed software.
To build better things, one should try and buiild things rather than stealing them and staring at them.
No idea what commitment #therapy is, but I probably should print these on MPC
https://www.newharbinger.com/9781648481239/act-daily-card-deck/
(And look up commitment therapy, if it means what I think it does, it may be pretty cool)
Did you know I'm making a point & click adventure set in an alternate history steampunk-ish old west?
Well, I am!
QT: https://mastodon.nzoss.nz/@strypey/110384505356947064
When you are heartbroken by your child's dopamine adiction, remember! You need to feel solidarity with big tech engineers who implemented exploitative attention grabbing facilities.
Because "hierarchy".
Fuck's sake, sometimes being left-leaning is embarrassing.
Speech by V. #Zelenskyy President of #Ukraine at the opening of the Fourth Summit of the Council of Europe
Extracts
One hundred percent should be our benchmark. We must leave zero percent to the aggressor!
We are Europeans, so we are free. We are Europeans, so we value peace. We are Europeans, so we act at one hundred percent of our strength when it comes to protecting our way of life. Let these be forever the rules of our continent!
Full speech here🔗 https://www.president.gov.ua/en/news/mi-yevropejci-otzhe-mi-diyemo-na-povnu-silu-koli-treba-zahis-82945
Lean's maths library just got 23% faster: https://github.com/leanprover/lean4/pull/2210
This whole thing is completely ridiculous. There are a whole bunch of algebraic structures which you've heard of (groups, rings, fields, topological fields,...) and Lean has these, as well as a bunch which you may haven't heard of (semirings, group-with-zeros, not-necessarily-associative rings, uniform groups,...). And then there are a whole bunch of completely trivial assertions of the form "a topological field is an additive abelian group" or "every ring is a module over itself". And Lean needs an algorithm which will quickly notice that e.g. all theorems about additive abelian groups can obviously be applied to topological fields, or all theorems about modules over a ring can be applied to the ring. Surprisingly (to me), making this algorithm time-efficient and memory-efficient turns out to be a difficult problem. The Lean mathematics community started making all the basic objects that they needed to do all masters level mathematics a few years ago, and the number of algebraic structures we have has got really large -- so large that things started creaking. In Lean 4 there were even instances when the system wouldn't even work, it would time out before finishing. Today's merged PR looks to have got us back on track in the process of moving all of Lean's mathematics library from Lean 3 to Lean 4.
That's a new one: a proponent of data preservation who's against #LLM and generative models 🤔
Given how many of the last couple of zero-click #iOS exploits have been found in the various OSS image decoding libraries… and given the enormous likelihood that there are more such bugs… why on earth does iOS render image previews for messages from numbers that are not in my contacts list?
That https://doma.dev guy
#lean #rust #typescript #react #nix
In my non-existent free time I design and run #TTRPG
If you use tools made by genocide-apologists, you are a genocide-apologist.
#lemmy users aren't welcome here.