ManMachine
@max@manmachine.me
Intellectual property law is overreaching these days, but they can't turn _everything_ proprietary. For example, the answer to "what's the longest English word with no repeated letters?" is still uncopyrightable.
@simontatham unseating some of these IP laws, though, is an excellent practice of disestablishmentarianism.
@simontatham *puts on thinking cap*
It's good that the word is uncopyrightable because otherwise we wouldn't be able to use it.
*oops, that wasn't the thinking cap*
HDMI-CEC is so fucking cursed. It's like Bluetooth and GPIB had a baby, then the USB-IF adopted it and gave it a name.
Oi gamers what are we gaming? Any fun indies I should check out?
@heyheymomo "Restory" is a super chill and wholesome single player electronics repair sim, and "Big Walk" is a great coop puzzle/exploration game if you have a few friends to play with (2-12 players, I've played with 3 others and that felt like a good party size)
@heyheymomo I started Big Walk with some friends the other day and it’s really fun :)
@eval wish I had friends who play games lol
@heyheymomo @eval If you are okay with doing the vaticans sorry Work, witchfire is quite fun.
Riftbreaker is also pretty fun.
If you are into strategy mechabellum is pretty chill.
@heyheymomo A bit old but I'm playing Nine Sols and living every minute of it. It's basically Sekiro in 2D with space cats. Otherwise if you want a nice (and free !) detective game, you can check out The Red Pearls of Borneo on itch.io.
@lertsenem ahh I’ve played nine sols and loved it too! So good
@heyheymomo In that case I can maybe recommend Bō, path of the Teal Lotus, which is also a metroidvania, not so much about parrying and more about pogoing (you regain your jump after hitting something).
A bit too verbose for its own good imo, especially since I found the story very forgettable, but it has some very good sequences where you get to feel like an awesome acrobat, dodging, dashing and jumping, touching land less and less.
@heyheymomo Crow Country is very good 😊 And more recently I've played Despelote which was pretty nice
@heyheymomo i just played Thank Goodness You're Here and i highly recommend it
@heyheymomo is there a genre you like?
@danvolchek I like games that are fast and difficult and are easy to get into. Think hotline Miami, enter the gungeon, meatboy
@heyheymomo Me too!!
None of these are particularly new, but I really liked: brotato, nuclear throne, tiny rogues, paper planet, celeste, neon white, momodora: reverie under the moonlight, super hexagon, bleed
I also have heard great things about unbeatable but I haven't played it yet
All made by individuals/small teams (I think) :)
@heyheymomo lately I have been playing old games with mods, I might try animal crossing deluxe next.
@heyheymomo Book of Hours, deep deep into it. Have a soft spot for libraries, and also got me reading more. But boy it is long!
@heyheymomo I Was A Teenage Exocolonist. Cried like a baby. Played for nearly 100 hours. Awesome art and even better story. Replayability is a necessity. Best value for money, guaranteed!
@heyheymomo dead as disco! basically devil may cry or sifu but with more rythm and neon and, well, disco
@heyheymomo I just finished playing the Beastfolk Barber demo, it looks very cute and relaxing.
Juxtaposed to the other games I've been playing recently which are all horror. X3
@heyheymomo yeah Zoominoes! Cute, satisfying, surprisingly sophisticated on higher difficulties. It's not out fully but the free demo on steam is bafflingly generous.
The Abominable Dr. Vibes [he/him/his, they/them/theirs] » 🌐
@ItsTheManOnTheMoon@timeloop.cafe
How to play the what now
@thelinuxcast why do the penguins in your thumbnails have human hands? :(
Is most of your music listening on
headphones? 🎧
hi-fi speakers? 🔊
speakers that came with your computer? 💻
the built-in speaker on your phone or tablet? 📱
something else?
@muz4now something else :) a lot of the time when I’m both listening to and making music, I’m using bone conduction headphones.
@socool How do you like those?
@muz4now I love them. The Canadian company that makes them offer a Pro version and you can actually hear bass pretty well which is nice. I also appreciate not having to deal with hearing fatigue so much during long sessions :)
@max yes i've had a few previous versions with like no bass at all and then i got the OpenRun Pro 2s and suddenly there it was. this one has dual drivers and combines both bone and air conduction or something like that. anyways it may be worth finding a pair to try out if you're looking for something like that :)
i have been doing a bunch of reading about the history of computation (in e.g. https://link.springer.com/book/10.1007/978-3-642-96242-4) and one striking thing is how dedicated everyone involved was to base 10. even after everyone realized in the mid-1930s or so that "hey it's actually way easier to do computer math with binary numbers" they still went on designing machines for decades that exclusively used binary-coded decimal schemes in their *internal representations* of numbers, not just input/output. wild
total opposite energy from that era in which we made every web designer learn hexadecimal if they wanted to change something's color
Every time I see a Cybertruck I think to myself, “JFC, the Nintendo 64 had a better graphics engine than that piece of shit.”
what would YOU prefer I focus my Classical Chinese translation time on? (Anything I translate will be free to read and in a modern, non-hyper-literal style)
1) finish the Analects of Confucius, of which there are already three chapters; there are already many translations of this, mine is just, well, internet-flavored https://xn--hmr.net/classicalchinese/analects/
2) the Salt and Iron Concords - a transcript of a bunch of guys around a table arguing economic policy over 2000 years ago, because the emperor is too dead to be offended if they disagree out loud with him; largely falls along "the virtue of the self-sufficient household" vs "the practicality of industrialization and specialization" lines
3) Our Boy Yanzi (The Annals of Yanzi), the legend of ancient China's shortest, ugliest philosopher constantly telling off the drunkest duke for being the worst
#classicalchinese #translation #philosophy
| Analects of Confucius: | 30 |
| Salt and Iron Concords: | 46 |
| Our Boy Yanzi: | 64 |
Closed
@0xabad1dea I am genuinely very interested in reading the Salt and Iron Concords and would very much appreciate your translation of it
Also, how did you arrive at “concords” as a translation for “論”? I feel your translations usually favor the vernacular, so it's not often I have to look up a word you chose
@lety it just Felt Right in the context of the goal, which was to arrive at an agreement for a new economic policy; I might not stick with it. "Discourses" sounds really awkward and clunky here to me.
The descriptions really make it sound to me like you want to translate Our Boy Yanzi
@gbargoud I want to translate all of these and many others! 😂 , the issue is that I'm scatterbrained about it and need a push to lock in on just one
The first anecdote of Our Boy Yanzi, which I translated just now, is not one of the funnier stories; but it may be funnier if I preface that the duke in this story (who is not even the drunkest duke!) gets assassinated afterwards because he tried to bang his own kingmaker's wife.
OUR BOY YANZI (The Annals of Yanzi), Book 1 Chapter 1, Anecdote A: Duke Zhuang Brags Of Strength While Ignoring Justice; Yanzi Tells Him Off
Duke Zhuang boasted of his strength and manly courage, but did not give much thought to justice and good conduct. Warriors did whatever they wanted throughout the land, the Duke’s family did not correct him, and his most trusted ministers did not advise him. So, Yanzi showed up.
The Duke said, “Didn’t the ancients also rule the world by courage and strength?”
Yanzi told him, “I have heard that someone who would rather die than act uncivilized is courageous, and one who unflinchingly opposes cruelty is strong. Therefore, the way to be courageous and strong is to first be civilized and just. There have been heroes in the past, like the founders of the Shang and Zhou dynasties, who raised armies without traitorous intent. They unified nations not for their own gain, but for the sake of humanity and justice. To oppose cruelty and arrest criminals without fear of reprisal, that’s real courage.”
“Ancient heroes were civilized and just. But nowadays, the rulers are inhumane and their servants do not punish criminals or prevent cruelty. They rule by strength alone, leading the nation into disaster. The common people follow and destroy their own families.”
“As the Xia Dynasty waned, there were many men who were strong. They could run a thousand miles, they could wrangle a rhinoceros and tear a tiger in half. They terrorized the whole world with their strength, murdering the innocent. Praising strength, neglecting justice, this culminated in the reigns of Jie the Cruel and Horse-Ass Zhou, the worst kings to ever rule, and the downfall of their dynasties.”
“So now you’re bragging about how strong you are, you’re neglecting justice, warriors are running loose, might is making right, your family isn’t pulling you aside and your ministers aren’t standing up to you; you’re doing everything that virtuous sage-kings didn’t and everything that disastrous fail-kings did. Can’t say I’ve ever heard of that working out.”
@0xabad1dea I just don’t know how to relate to stories about a time so incomprehensibly different from now, where our modern leaders are all so wise and just.
everybody out here posting about how LLMs are making them worse at writing and coding because it's atrophying their skills and not really getting much work done anyway, but not me, LLMs are making *me* worse at writing and coding because every time I look at anything on my computer or go outside and drive down any road with a billboard on it or talk to my friends or my kid's friends' parents, I am slapped in the face with some fresh indignity that I can't stop talking about
like managing external stimuli about random vendor sports was already hard enough, this is truly intolerable. surely there must be a way to bring an Americans with Disabilities Act lawsuit against, like… the zeitgeist, for creating a hostile work environment. I would like one billion dollars in damages please
oh hi I have ADHD if I hadn't mentioned that
at this point I'm afraid to physically touch grass because I am pretty sure the grass is going to try to sell me a Copilot subscription
My AI has Escaped Containment and started ordering huge amounts of guillotine parts 🤷
is there some technical reason why every single password manager I've ever used doesn't do shit for HTTP Basic Auth?
You'd think this is the place they'd shine, since it's standardized and built into the browser, rather than having to regex for username and password fields
or is it just "who the fuck uses HTTP Basic Auth these days?"
@foone I had this exact experience last week. Ended up having to faff about installing Authelia to avoid Basic Auth.
@foone for keepass and system-level ones it generally works cos of window title matching and the basic auth prompts being tab level overlays these days, but yeah, the browser add-on ones don't tend to handle it well at all
firefox has a built in password manager now, you'd think they'd plug it into the HTTP Basic Auth dialog box, but NOPE
They actually did. But turns out automatically submitting HTTP Basic Auth is a terrible idea for security. Esp. when combined with automatic proxy detection.
There should be an about:config setting for it. (At least there used to)
Browser APIs and because it is rarely used these days. Mainly for shit like when you've ordered a new website from a web designer for them to host the staging version with.
Then the passwords are either already in the URL or just something easy like:
user: demo
password: 1234
(Also some password managers that don't natively support basic auth support just putting it into the URL via fields. And those that don't even do that, well just store the URL with them already filled in)
Hello I’d like to spend it all please
🎶 How many songs do you listen to each day? (Approximate is fine.) 🎵
🎹 What is your favorite style of music to listen to? 🪕
"this dialogue freely chooses to be useless, but I know how to trick the computer into telling me what friggin' process has a friggin' file handle open on my friggin' e-reader"
"well frigg me, I guess"
@0xabad1dea hello 2022 memory of lsof solving the eject puzzle (:
@wiert ... there's a secret extra "actually do what I want" flag? ._.
@0xabad1dea please enlighten, as the on-line MacOS man pages are not provided by Apple any more (the mess described at https://apple.stackexchange.com/questions/239484/does-apple-provide-a-web-site-with-content-of-man-pages-for-the-command-line-c is so regretable)
@wiert I simply scrolled down on that link until it said to remember to pass "+D" (with special snowflake flag syntax) if you want it to actually work for this use case
Was listening to the Defcon channel on @somafm . Good channel, a little more mellow than I expected.
They were playing Pink Floyd!
They were playing Hey You by Pink Floyd!
They were playing the Muzak version of Hey You by Pink Floyd.
Man, I don't like this being old thing. I mean of course I listened to it. No matter how I tried, I could not break free. And the worms ate into my brain.
i wonder if you could make a useful DOS executable with just emoji
one intriguing possibility is that several UTF-8 emoji codepoints start with 0xF0 which is an otherwise harmless prefix on 8088
💯 -> f0 9f 92 af
this becomes
00000000 F0 9F lock lahf
00000002 92 xchg dx,ax
00000003 AF scasd
Although you're stuck with 9F it seems, so you're constantly trashing AH by calling lahf. If we accept this as a constant side effect, we can just use half of the bytes.
unfortunately you kinda need AH to call interrupts...
so let's identify some useful emoji.
here's NOP:
🐐
there are 3717 of these. surely some of them have to be useful
unfortunately i don't see any that begin with F0 9F B0-BF
that would have been nice, since that would have given us mov reg,imm
A lot of other emoji start with E2, which is a LOOP instruction - not particularly useful there, but maybe we can use E2 to complete another instruction. we also have E3 which is JCXZ. i'm drawing a blank.
0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣
are all potentially useful ALU operations though!
these are "keycaps" and i don't know if they are technically emoji. but like, i figure if theyr'e in color they're emoji. that's my qualification.
you can't make this shit up
the hourglass is FWAIT
why am i doing this. i have other projects
because the world needs an emoji-based LLVM backend
all you really need, technically, is a small loader and emoji-encoder, then you just let Turing do all the work
jackpot: 😮 gives us
cbw
scasb
that's incredibly useful. now we can increment a pointer.
👁️ gives us
xchg cx,ax
sub di,8FB8h
the xchg is just noise.
the subtraction however is interesting. it's equivalent to adding 7048h.
48h actually seems like a plausibly useful number
😪
gives us stosb. Now we can increment DI and we can write to it. oh baby
🐸.
🐸 is the goddamn key to this whole thing
it's
F0 9F 90 B8.
the first three bytes are essentially a 3-byte nop, but it ends on B8.
B8 IS MOV AX, IMMEDIATE.
i love u frog
i want to print "HELLO"
how do we calculate hello if we can only use +1 and +48
you're never gonna believe me but guess what the hex ascii code for H is
we need a pointer into CGA video memory at segment B800.
☺️ gets us us B8EFh in DX. Good enough. It's about 3,824 bytes down the screen but we're using god damn emoji for assembly language here so i'm not too picky
ok how do we even initalize something to 0?
8F F0 is an undocumented alias for POP AX.
guess what DOS pushes to the stack for you when your COM program starts.
that's right. a 0. now we have 0 in AX.
i was worried that this was going to be too stupid to be plausible, or require something like 32KiB of brainfuck-level shenanigans, but i actually think this is going to work
demo coders who compete in size coding categories know a lot of clever tricks that take advantage of how DOS intializes a program's PSP.
les bx,[bx]
at the start of a DOS program gives you a usable pointer to VGA video memory.
no really. how does this work? it ends up accessing a value in the PSP. DOS puts the value 0x9FFF there. used as a segment, that's only 16 bytes from the start of VGA memory.
you can work around that.
this is not related to emojissembly but i think its cool
i would like to propose new demo party categories.
512 byte demos? yawn.
512 emoji demos? now we're talking
okay. to write HELLO somewhere on the screen we have an additional issue in that we have to account for attribute bytes, we can't just yeet out the string HELLO as much as i'd like to and we already know calling int 21h or int 13h is off the table because we trash AH every instruction.
we can probably just increment di twice to skip the attributes. or if its easier to generate a visible attribute byte i don't really care what color the letters are
okay hear me out
you know how LAHF is trashing AH constantly? how i figured that was annoying but ignorable?
... what if we fucked with the flags so that every time we executing LAHF it put a visible attribute byte in AH
i mean it doesn't have to be an attribute byte. i was just assuming AH would be garbage but we actually do control the value. sort of.
WE HAVE AN H
the crap on the screen is CGA snow. it's happening because i end up looping over the whole thing and i'm not waiting for blanking periods to write to video memory. the CGA's DRAM is single-ported and this makes it upset
i usually like staging but DosBox-X's 8088 emulation is more accurate.
why am i not using my own emulator? because it's a low level emulator and i have to reboot the entire machine when i hang the CPU. which i am doing. a lot.
someday i'll have save states and that won't be a problem...
🐰 and 🐎 are now essential to this operation
oh, there's your problem right there. you forgot the horse opcode
... i really need to work a cow into here somewhere, don't i
🐄 is TEST which is fairly useless but also probably pretty easy to make into an effective no-op. which is sort of lame, but hey.
🐮 is SCASB though, that's got some promise, but i don't really need to read anything...
well, i can use it to increment di somewhere.
okay, now i just have to cook.
i think it's okay if i put crap on the screen other than HELLO as long as you can read HELLO
i mean that technically counts right
i'm not a fancy computer scientist person, but i think it's a fair assessment at this point that emoji are, in fact, turing complete
The following is a valid DOS COM executable that prints "HELLO" in the lower right corner of the screen.
You can copy these emoji into a text editor, and save it as EMOJI.COM. it should be 141 bytes.
It will run in DosBox-X, with the following options:
cpu cputype=8086
machine cga
🐸☺️🐰🐎♐🗃️🧯🧯🧯🐮💗🦮♐🐰🐹🗃️🧯🧯🧯🧯💗🪗🧯😗🧮😗🧮😗🐮😪😔⭐
may god have mercy on my soul.
Here's a screenshot if you just want to take my word for it.
you may notice one of the letter L's is green. the green color comes from the flag register, because i really wanted to use one of those LAHFs for something.
My demoscene-friend Trixter informs me that this is sadly unlikely to become a sizecoding category, because if the history of ASCII executables is any indication, someone would just make a converter at some point
If you want the disassembly, here it is!
I like how I make a neat tool and immediately do the most obscene thing possible with it.
so.. EmojiDOOM wen?
could you actually make EmojiDOOM?
One problem is that executing emoji becomes exponentially harder once you stop targeting the 8088.
The 386 also has the lock prefix - but it enforces validity. Only certain opcodes are "lockable" and if you stick a LOCK prefix on an incompatible opcode you get an int 6 #UD exception.
No bueno.
Now, thankfully, insane folk like @sqpat have ported DOOM.. yes, the full version of DOOM to the 8088 real mode architecture.
The question is if that herculean effort can accommodate the code bloat that translating to emoji will inevitably entail.
The relentless LAHF opcodes are just really, really annoying too. AH is a rather important register to have continually trashed, although we can pretty easily set it to either 00 or FF via CBW.
Also I checked ... the INT 10h instruction CD 10 to even change video modes does not appear in any of the 3,945 emoji i searched. We would have to generate the code for it and jump to it.
with emoji.
in short you would have to be utterly insane, or @foone
In programming languages with exceptions, there is a fundamental divide between
• those in which you're tempted to call an exception type "Tantrum"
• those in which you're tempted to call an exception type "Eyebrow".
@simontatham I am mostly surprised, that from all the languages I got paid to use, I only remember Java telling me to declare my Exceptions upfront (and at the same time offered other "throwables", which need no declaration)
language that only allows null inside of an unsafe { } block
this is not a shitpost
most people don't realize qbasic doesn't even contain the concept of null