Pleased to announce a new #NFT offering: #eNdFT! We are minting one cause of death NFT for every person on earth, which is 100% guaranteed to reflect the way you do, in fact, actually die.
Unless you trade it! Unhappy with your "car crash" #eNdFT? Exchange it for an "old age"!
Of course, you better be prepared to pay through the nose for "old age". Due to the nature of our product, eNdFTs cannot be bought or sold, only be traded 1-1 for another #eNdFT (plus an optional eth price to cover value differences). There is no escaping death.
Please note that our prediction software isn't perfect. While every #eNdFT is accurate, they may be imprecise. For example, you could receive "Most likely drowning" NFT, or "either cancer or stabbing". We expect this uncertainty will affect each #eNdFT's market value.
Don't worry, eNdFTs are still an exciting speculation opportunity! We're improving our prediction software all the time, and that "cancer or stabbing" #eNdFT could one day become a super valuable "cancer"! Join the #eNdFT network today!
(Disclaimers: while we will confirm the authenticity of eNdFTs, we will never reveal anyone's #eNdFT without their enthusiastic consent. Nonparticipants are also assigned eNdFTs, including uncontacted peoples. As of 2022, there are no "immortal" eNdFTs. Death comes for us all.)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I am endlessly fascinated with content tagging systems. They're ubiquitous in software and have so many nuances, but I can't find anything on how to design and implement anymore more than the barebones basics of a system.
Some thoughts in a thread.
A tag is a metadata label associated with content, primarily used for querying and grouping. The tag name is also the id: two tags with the same name are the same tag.
Tags appear everywhere: #hashtags, wikipedia categories, blog post labels, AWS infra tags...
Now, are `horse` and `horses` the same tag? They're different strings, but I'd be pretty miffed if I queried for `horse` and got only half the data.
So for serious querying we need some kind of relationship between tags
An adult human male can feed 100 people a luxurious 1200 Calorie meal. Mickie Mouse's head:body ratio suggests he's nowhere near done growing. He'd probably taste like veal
(disclosure: the linked image is probably a hoax, since Disney has a minimum food charge per person. I checked and confirmed it's in addition to the minimum event charge, so they couldn't have swapped food for other event services)
I read @laurencetratt's piece "Multiplicty Choices are Hard to Model and Change" and it got me thinking about the relationship between ergonomics and software correctness. His claim is it's easy to model 0, 0-1, or 0-∞ of something, but not 1-2 or 1-∞
For one or more T's, you could write `[T]`. But [] ∈ [T], so you can have 0 T's!
Now the common counter is that you can model "one or more" as the tuple (T, [T]), which is sorta what the Haskell `Nonempty` type does hackage.haskell.org/package/base-4…
But now you have a problem because (T, [T]) isn't actually a subtype of [T], meaning you have to reimplement all of the list operations for (T, [T]). That's the bad ergonomics, and you can have bugs reimplementing them, though arguably fewer than bugs from using too big a type
1. Don't shirk on good practice. Most AHK code in the wild is jank because most AHK coders aren't software developers, they don't know any better. But you do, so use functions, proper data structures, abstractions, etc and the process will be a lot nicer.
2. You can use window groups to restrict a hotkey to just web browsers (via IfWinActive) or make a hotkey that alt-tabs through a specific set of programs (via GroupActivate)
3. The #If directive takes expressions. I have Numpad- flip a `subscript_mode` flag and two sets of hotkeys that are conditionally activate. That way I can use the same keycombo for ¹ and ₁
While you could teach adults with Scratch, they'll probably feel patronized. Scratch's tutorials are all aimed at kids, and the language primitives are for art and games, not business or automation.
2. Quorum: an "evidence-oriented programming language". Fairly typical OOP lang, but with design decisions based on empirical studies of what's easiest to learn to and use. For example, STM over locks, static typing, better keywords and compiler errors
Aella expected Python to be like other "computer skills", where you can poke at it until it does what you want. And you can do this IF YOU ALREADY KNOW HOW TO PROGRAM. But it's not clear to layfolk that programming is so different from reg computers
When we say Python is a good "first language", we mean it's good a place to start building the *fundamental knowledge* of software development. If you don't build that knowledge, programming is nearly impossible. Again, that's not clear to Aella going in