<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="https://www.dreamwidth.org">
  <id>tag:dreamwidth.org,2017-01-03:2711609</id>
  <title>Peeks, Pokes, and Pointers!</title>
  <subtitle>garote</subtitle>
  <author>
    <name>garote</name>
  </author>
  <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom"/>
  <updated>2026-01-28T07:16:32Z</updated>
  <dw:journal username="garote" type="personal"/>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:352242</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/352242.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=352242"/>
    <title>Thought for the day: I think I need to go re-read some Asimov</title>
    <published>2026-01-28T07:12:35Z</published>
    <updated>2026-01-28T07:16:32Z</updated>
    <category term="computing"/>
    <category term="philosophy"/>
    <dw:security>public</dw:security>
    <dw:reply-count>6</dw:reply-count>
    <content type="html">Nature was unable to evolve telepathy, or even silent, digital radio communication like the kind we use to coordinate swarms of drones, but it has managed to create impressive methods of coordination through the unremarkable mediums of sound and light, as well as direct touch and even smell.  When we build devices that appear to manifest consciousness in these mediums, even something as simple as a vinyl record that re-creates a human voice when you apply a needle, we feel an unease, because the device has entered an uncanny valley and we suddenly feel like the answer to a question is very important:  Is this a person?  Or a rock?  This could be something baked into us by evolution, as a fundamental part of the process we use to recognize other people and communicate with them.  Its usefulness precedes us, too:  Any mobile animal that doesn't lay unfertilized eggs needs to at least learn how to recognize its own kind, or it's gonna have a hell of a time reproducing.&lt;br /&gt;&lt;br /&gt;Suppose you created a robot.  Suppose it was in the shape of a human with a speaker grill where the mouth would go, and it contained an audio player that would play speech through the speaker, so that every couple of hours, this robot doll would appear to be contemplating its existence aloud to anyone nearby.&lt;br /&gt;&lt;br /&gt;You would look at that robot and know that it was doing a poor job of imitating a human.  You'd know there wasn't any actual contemplation happening -- no mental process.  No being was present whose existence could be contemplated, whatever words came droning from the speaker.&lt;br /&gt;&lt;br /&gt;Now, consider a doll with a computer inside, and a program running on the computer, using the latest generative language techniques, and trained so that when you converse with it, it appears to be speaking to you the way a Midwestern teenager would.  Throwing in "like" and "um" according to a statistical pattern, and so on.  Also, install a microphone and some voice recognition software, so the conversation goes both ways.  Perhaps there's some suspicious delay because the computer isn't very fast, and maybe the conversation degenerates into nonsense if you give it nonsense for input - which is unlike most humans who would stop and say "what the hell are you babbling about?" - but it would still be an alarmingly good simulation.  It would absolutely fool a child.&lt;br /&gt;&lt;br /&gt;You still know exactly how it works, but if you placed it in front of some adult who didn’t, they would either assume they were having a two-way radio conversation with a slightly insolent human somewhere else, or they would be forced to assume that they were talking to a sentient robot.  Mostly sentient.  Easily confused, but obviously trying to think.&lt;br /&gt;&lt;br /&gt;The only reason you are not fooled is, you personally witnessed the robot being constructed.&lt;br /&gt;&lt;br /&gt;Let a child watch while you construct and program the robot, and they would probably still assume you had just created life.  They might and even refuse to believe your claim that it’s artificial.  What does that word even mean to a young person?&lt;br /&gt;&lt;br /&gt;This leads to a more fundamental question:  Why does it matter, whether the thing in front of you is life, or a simulation of it?&lt;br /&gt;&lt;br /&gt;Young people must have some instinctive impulse to recognize the self in other things for society to function at all.  If we left it up to external training alone, the chance of empathy arising and then taking permanent hold would be hilariously small.  On top of this instinct to empathize, to see bodies and faces and recognize a range of emotions, we soon need to learn that some animate things are more human than others, and that humans are the most human of all.  We learn that people have feelings, and all the way on the other side of the spectrum, things like rocks do not.&lt;br /&gt;&lt;br /&gt;Relatively speaking, humans are really, really good at cooperation, and empathy is foundational to that.  It compels humans to act altruistically, but without accidentally prioritizing the survival of, say, rocks.  Young people practice empathy by keeping dolls and imaginary friends, and humans of all ages practice their empathy by keeping pets.  But now we encounter modern devices that act so convincingly human we cannot tell the difference.  Evolution never had to deal with this.&lt;br /&gt;&lt;br /&gt;When we become surrounded by devices that handily stride across the uncanny valley - that realm of suspicion that kept us from giving humans the same consideration as rocks, even really interestingly shaped rocks, for millions of years - what are the consequences?&lt;br /&gt;&lt;br /&gt;And what are the consequences, when these robots are impossible to distinguish from people, but they are still programmed and directed and acting on the behalf of other people -- people we don't know?&lt;br /&gt;&lt;br /&gt;This is the futue we are in, right now.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=352242" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:351517</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/351517.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=351517"/>
    <title>Thought for the day: Drafty</title>
    <published>2026-01-27T07:30:08Z</published>
    <updated>2026-01-27T07:30:08Z</updated>
    <category term="computing"/>
    <category term="politics"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">The rise of blockchain-based "coin" economies, and the buying into them by the lower-middle class, is a direct result of them feeling shut out of the standard avenues of commerce for their young working lives.&lt;br /&gt;&lt;br /&gt;From their point of view, boomers and tech magnates own and control the economy, and have found so many ways to twist it in their favor that it's nearly impossible for a young person to get established.&lt;br /&gt;&lt;br /&gt;So, why wouldn't these people embrace things like Bitcoin?&lt;br /&gt;&lt;br /&gt;If they instinctively believe that all currencies are scams, even the so-called "regulated" ones, then walking into the Shitcoin Casino doesn't seem like a change to them.  Except perhaps the newness and obscurity of it can give them some breathing space from the chokehold of previous generations.  You don't have to gain enough power to exploit everyone around you, you just have to be sneaky and fast enough to exploit enough of &lt;i&gt;your own peers.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This exact line of thought is also why "prediction markets" - i.e. &lt;b&gt;legalized gambling&lt;/b&gt; over an infinite variety of increasingly niche claims - has caught on at the same time.  Everything is a race to beat public perception, and scam or be scammed, because productivity and objective truth are both traps for suckers.  (Also, fighting your job to unionize can be violent and precarious, whereas blowing half your wages on DraftKings might make you rich.)&lt;br /&gt;&lt;br /&gt;Hooray; another ugly monster for the next generation to fight.  I might be a little too old and cranky at this point to care.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=351517" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:348150</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/348150.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=348150"/>
    <title>Code commentary</title>
    <published>2025-08-12T20:32:22Z</published>
    <updated>2025-08-12T20:51:44Z</updated>
    <category term="computing"/>
    <category term="work"/>
    <dw:security>public</dw:security>
    <dw:reply-count>7</dw:reply-count>
    <content type="html">&lt;p&gt;I rarely write about my work here.  But today I think I will!&lt;/p&gt;&lt;p&gt;&lt;img src="https://garote.bdmonkeys.net/livejournal/bards_tale/Bards_Tale_1-House-Guild-Inside.png" style="float:right;padding:0 0 1em 2em;max-width:30%;" /&gt;I've worked on many codebases, with very large numbers of contributors in some cases, and only a few in others.  Generally when you make a contribution to a large codebase you need to learn the etiquette and the standards established by the people who came before you, and stick to those.&lt;/p&gt;&lt;p&gt;Not making waves - at least at first - is important, because along with whatever code improvements you may contribute when you join a project, you also bring a certain amount of friction along with you that the other developers must spend energy countering.  Even if your code is great you may drag the project down overall by frustrating your fellow contributors.  So act like a tourist at first:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Be very polite, and keen to learn.&lt;/li&gt;&lt;li&gt;Don't get too attached to the specific shape of your contribution because it may get refactored, deferred, or even debated out of existence.&lt;/li&gt;&lt;li&gt;It won't always be like this, but no matter what kind of big-shot you are on other projects, it may be like this at first for this new one.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Let me put it generally:  Among supposedly anti-social computer geeks, personality matters.  There's a reason many folks in my industry are fascinated by epic fantasy world always on the brink of war:  They are actually very sensitive to matters of honor and respect.&lt;/p&gt;&lt;p&gt;Anyway, this is a post about code commentary.&lt;/p&gt;&lt;p&gt;In one codebase I contributed to, I encountered this philosophy about code comments from the lead developers:  &amp;quot;A comment is an apology.&amp;quot;&lt;/p&gt;&lt;p&gt;The idea behind it is, comments are only needed when the code you write isn't self-explanatory, so whenever you feel the need to write a comment, you should refactor your code instead.&lt;/p&gt;&lt;p&gt;I believe this makes two wrong assumptions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The only purpose of a comment is to compensate for some negative aspect of the code.&lt;/li&gt;&lt;li&gt;Code that's easy for you to read is easy for everyone to read.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The first assumption contradicts reality and history.  Code comments are obviously used for all kinds of things, and have been since the beginning of compiled languages.  You live in a world teeming with other developers using them for these purposes.  By ruling some of them out you are expressing a preference, not some grand truth.&lt;/p&gt;&lt;p&gt;Comments are used to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Briefly summarize the operation of the current code, or the reasoning used to arrive at it.&lt;/li&gt;&lt;li&gt;Point out important deviations from a standard structure or practice.&lt;/li&gt;&lt;li&gt;Explain why an alternate, simpler-seeming implementation does not work, and link to the external factor preventing it.&lt;/li&gt;&lt;li&gt;Provide input for auto-generated documentation.&lt;/li&gt;&lt;li&gt;Leave contact information or a link to an external discussion of the code.&lt;/li&gt;&lt;li&gt;Make amusing puns just to brighten another coder's day.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All of these - and more - are valid and when you receive code contributed by other people you should take a light approach in policing which categories are allowed.&lt;/p&gt;&lt;p&gt;The second assumption is generally based in ego.&lt;/p&gt;&lt;p&gt;I've been writing software for over 40 years, and I haven't abandoned code comments or even reduced the volume of the ones I generate, but what I have definitely done is evolve the content of them significantly.&lt;/p&gt;&lt;p&gt;I've developed an instinct over time for what the next person - not me - may have slightly more trouble unraveling.  That includes non-standard library choices, complex logic operations that need to be closely read to be fully understood, architectural notes to help a developer learn what influences what in the codebase, and brief summaries at the tops of classes and functions to explain intent, for a developer to keep in mind when they read the code beneath.  Because hey, maybe my intent doesn't match my code and there's a bug in there, hmmm?&lt;/p&gt;&lt;p&gt;The reason I do this is humility.  I understand that even after 40 years, I am not a master of all domains.  The code I write and the choices I made may be crystal clear to me, but not others.  Especially new contributors:  People coming into my codebase from outside.  Especially people with less experience in the realm I'm currently working in.  For the survival of a project, it's better to know when newcomers need an assist and provide it, than to high-handedly assume that if they don't understand the code instinctively, then they must be unworthy developers who should be discouraged from contributing, like by explaining what's going on you are &amp;quot;dumbing down&amp;quot; your code.&lt;/p&gt;&lt;p&gt;Along the same lines, it's silly to believe that your own time is so very valuable that writing comments in code is an overall reduction in your productivity.&lt;/p&gt;&lt;p&gt;You may object, "but what if the comments fall out of sync with the code itself, and other developers are actually led astray?"&lt;/p&gt;&lt;p&gt;I have two responses to this, and you may not like either one:  First, if your comments are out of sync with the implementation it's either because your comments are attempting to explain how it works and the implementation has drifted, or your comments are explaining the intent behind the code, and the behavior no longer matches the intent.  In the first case, the comment may potentially cause a developer to introduce a bug if they're not actually understanding the code.  But if they're reading the code and they can't understand it because it's complex, then the commentary was justified, and it should be repaired rather than removed.  (Or, you should refactor the code so you don't need to explain "how" so much.)  In the second case, someone has &lt;i&gt;already introduced a bug&lt;/i&gt;, and the comment is a means to identify the fix.&lt;/p&gt;&lt;p&gt;And second, if it feels like a lot of trouble to maintain your comments, then perhaps you write great code but you're not very good at explaining it in clear language to other humans.  You should work on that.&lt;/p&gt;&lt;p&gt;If it's your project, you can make the rules, and if it's your code, then obviously it's clear to you.  But if you want to work on a team, and have that team survive - and especially if you want to form a team around your own project - then you need a broader philosophy.&lt;/p&gt;&lt;p&gt;By the way, I should note that there are less severe incarnations of "a comment is an apology" out there.  For example, "a comment is an invitation for refactoring".  That's a handy idea to consider, though it still runs afoul of the reductionist attitude about the purpose of comments.&lt;/p&gt;&lt;p&gt;You should indeed always consider why you think a comment is necessary because it might lead to an alternate course of action.  Even if that action has no effect in the codebase itself, like filing a ticket calling for a future refactor once an important feature gets shipped, it may be a better move.  But this is an exercise in flexibility, and considering what you might have missed, rather than a mandate that code be self-explanatory enough to be comment-free (and an assumption that you personally are the best judge of that.)&lt;/p&gt;&lt;p&gt;Here's my own guidelines for writing comments.  They're a bit loose, and they stick to the basics.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Comments explain why, not how.&lt;/li&gt;&lt;li&gt;Unless the how is particularly complicated.  Then they explain how, but not what.&lt;/li&gt;&lt;li&gt;Unless the what is obscure relative to the standard practice, in which case a comment explaining what might be useful.&lt;/li&gt;&lt;li&gt;You learn these priorities as you go, and as you learn about a given realm of software development.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Always be thinking about the next person coming in after you, looking around and trying to understand what you've done.  And, try to embrace the notes they're compelled to contribute as well.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=348150" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:344305</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/344305.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=344305"/>
    <title>I never did play Kings Quest 8...</title>
    <published>2025-06-13T06:48:42Z</published>
    <updated>2025-06-13T06:51:05Z</updated>
    <category term="music"/>
    <category term="mixes"/>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">&lt;p&gt;One of the earliest and most memorable computer games I played as a kid was "King's Quest II", for the Apple IIe.  It was pretty hard, and I only managed to get about 1/3 through it, because there was a bridge in the game that would collapse, sending my character plummeting into a canyon.  I never figured out that the bridge could only be crossed a set number of times before it would always collapse, and the saved game I was playing only had one crossing left.&lt;/p&gt;&lt;p&gt;So I remained stumped, until I got a "hint book" as a Christmas present.  The book was full of questions with empty boxes beneath them, and you could run a special pen over the boxes, causing the answers to slowly fade into view before your eyes.  I revealed the answer to "Why does the bridge keep collapsing?" and slapped my forehead, then started the game from the beginning, carefully counting the times I crossed.&lt;/p&gt;&lt;p&gt;Later that day I finished the game.  All the rest of the puzzles were easy, and I barely needed the hint book, but I used the marker to reveal all the answers anyway.  From those I realized there were multiple way to solve some of the puzzles, which added a few more hours to the fun.&lt;/p&gt;&lt;p&gt;Over dinner that night I said "Let's get King's Quest III!"&lt;/p&gt;&lt;p&gt;My father smiled and said "Well, the last one cost 40 dollars, but eight months of entertainment for 40 dollars is a pretty good deal, so we'll see."&lt;/p&gt;&lt;p&gt;I played and enjoyed King's Quest III, and then King's Quest IV, but that was the last sequel that would run on Apple computers.  Then I left for college, and everyone was playing console games and getting well into 3D graphics.  King's Quest V, VI, and VII came and went, but I was distracted by multiplayer games and girls.&lt;/p&gt;&lt;p&gt;When &lt;a href="https://en.wikipedia.org/wiki/King%27s_Quest:_Mask_of_Eternity"&gt;King's Quest VIII&lt;/a&gt; appeared, I only got vague news of it from gaming magazines and the early internet.  I read that it was a massive departure in tone and technology from the earlier games, and that disoriented all the people playing and reviewing it.  I assumed it wasn't very good, and wouldn't sell.&lt;/p&gt;&lt;p&gt;Fast forward 25 years...&lt;/p&gt;&lt;p&gt;Apparently the game found an audience, and once a patch was released to fix the glitches in it, reviews and ratings went up.  It's true that it was weird, and very unlike the rest of the series, and suffered greatly by being too ambitious for the scrappy state of 3D graphics technology at the time.  To be honest, in terms of both visuals and motion, it looks &lt;i&gt;ugly&lt;/i&gt; now, even while 2D games from years earlier still look completely acceptable to the modern gaming eye.&lt;/p&gt;&lt;img src="https://garote.bdmonkeys.net/mixes/Kings_Quest_Mask_Of_Eternity-In_Game.jpg" style="width:70%;max-width:640px;" /&gt;&lt;p&gt;For a fun comparison, check out &lt;a href="https://www.gog.com/en/game/kings_quest_7_8"&gt;this bundle&lt;/a&gt; on the "Good Old Games" retro gaming site.  They're selling Kings Quest VII and King's Quest VIII in one package, and they show screenshots from each side-by-side.  Flip though and you'll see nice-ugly-nice-ugly-nice-ugly-nice-ugly...&lt;/p&gt;&lt;p&gt;Still, I got curious, and discovered a few video walkthroughs of the game.  While watching those I noticed that the background music was eerily compelling, and had a sudden need to hear it in more detail.  There were mp3 versions of some of the musical cues sitting around online, but I wanted higher quality.  So I went to the source:  The &lt;a href="https://archive.org/details/kings-quest-mask-of-eternity_202104"&gt;Internet Archive copy&lt;/a&gt; of the original King's Quest VIII CD-ROM.&lt;/p&gt;&lt;p&gt;I downloaded that, mounted the disc in an emulated copy of Windows XP, and went trolling around.  Turns out there are hundreds of files just sitting there on the CD:&lt;/p&gt;&lt;img src="https://garote.bdmonkeys.net/mixes/Kings_Quest_Mask_Of_Eternity-Windows_Listing.png" style="width:70%;max-width:640px;" /&gt;&lt;p&gt;But what is this ".AUD" format?  Well, long story short, I tried a bunch of different utilities in both Windows and Mac, and eventually did this:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Copy all the .AUD files into a folder on the Mac&lt;/li&gt;&lt;li&gt;Install ffmpeg via homebrew&lt;/li&gt;&lt;li&gt;Go to the folder via Terminal, and run &lt;span style="font-family:monospace;font-weight:bold;"&gt;for i in *.AUD; do ffmpeg -i "$i" "${i%.*}.WAV"; done&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;That gave me a long list of uncompressed audio files to work with, and I went poking through them, and gathered the longest ones into an hour-long collection, converted to Apple Lossless format with proper tags.&lt;/p&gt;&lt;p&gt;Here, have &lt;a href="https://garote.bdmonkeys.net/mixes/Kings_Quest_Mask_Of_Eternity_(DJ_Fixed_Game_Rip).zip"&gt;an hour-long compilation of music from King's Quest: Mask of Eternity&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;And then I discovered something else.  There are some voicover outtakes scattered into the rest of the audio.&lt;/p&gt;&lt;blockquote&gt;"There is a curious slot in this pedestal.  Something must fit here. Let me try...  this.  Zip...  Ugh...  Ow...  No, doesn't work."&lt;/blockquote&gt;&lt;p&gt;And so on.  In all their horrible glory, &lt;a href="https://garote.bdmonkeys.net/mixes/Kings_Quest_Mask_Of_Eternity-Curious_Slot_Outtakes.m4a"&gt;here they are&lt;/a&gt;.  Another amusing detail is that in addition to &lt;a href="https://www.agamesroom.com/walkthrough/kq8"&gt;the usual walkthroughs&lt;/a&gt;, you can find &lt;a href="https://kingsquest.fandom.com/wiki/KQ8_transcript"&gt;complete transcripts&lt;/a&gt; of the game made by automated software trawling through the data files, and the outtakes are right there in the transcripts.  Surely someone else has noticed these in nearly 30 years?  Good grief, I hope so.&lt;/p&gt;&lt;p&gt;Anway, I recommend the music.  To me it sounds like a companion ambient album to the soundtrack of the film Labyrinth.  (Another favorite of mine.)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=344305" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:342366</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/342366.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=342366"/>
    <title>Best meeting ever</title>
    <published>2025-02-12T19:34:13Z</published>
    <updated>2025-02-12T19:39:44Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Every once in a long while I get together with some of the crew and we play StarCraft II.  This time I left an audio transcriber running in the background on my machine.&lt;br /&gt;&lt;br /&gt;So, an algorithm designed for turning orderly work meetings into transcripts applied itself to a hash of gross sound effects and trash talk:&lt;br /&gt;&lt;br /&gt;&lt;img src="https://garote.bdmonkeys.net/livejournal/al-gas_giant_distance.gif" style="float:right;padding:0 0 1em 2em;max-width:33%;" /&gt;[00:54:47.97] "I'm in a little bit of trouble. Oh yeah." (gibberish) (slurping) "Why isn't he dying? What is he eating in my ear?"&lt;br /&gt;&lt;br /&gt;[00:57:44.69] "My roommate made fried chicken and gave me some. Mineral Fields, depleted."&lt;br /&gt;&lt;br /&gt;[00:58:24.61] "That's a nice roommate. Yeah.  I'm hearing boom boom booms. Uh, sounds like there's stuff blowing up at my door.  We require more minerals. We require more minerals. We require more minerals. We require more minerals. We require more m- mutation. Complete. Metamorphosis complete. We require more minerals. Mineral fields, we require more minerals. We require more minerals. We require more minerals."&lt;br /&gt;&lt;br /&gt;[01:02:40.87] "I did good. What? Oh, do you need... My keys are in there. I'm gonna clean some of these butt lids out. Hi Squirt! Blarby the crow." (gurgling) (gurgling) (gurgling) (gurgling) (splashing) (water splashing)&lt;br /&gt;&lt;br /&gt;[01:03:38.63] "Why is my base is all like dark red?  Nutrition complete."&lt;br /&gt;&lt;br /&gt;[02:01:55.44] "*burp* Some more of that. So on more Overnords." (chewing) "Son of a." (chewing) (chewing) (chewing) (chewing) (chewing) "Thank you very much." (indistinct) "I messed up the build, shit, I shouldn't have said that."&lt;br /&gt;&lt;br /&gt;[02:03:23.76] (gurgling) "We require more minerals.  Ugh. Okay, here's a hungry mess coming. Yikes. Those things attack ground, so it's a bit of a pain." (silence) (slurping) (slurping) "Follow that orange blob. I'll be right behind you. Oh."&lt;br /&gt;&lt;br /&gt;[02:03:23.76] "Man, what a mess! What a mess! Our bosses are under attack!" (sips tea) (slurps tea) (slurps tea) (fire crackling)&lt;br /&gt;&lt;br /&gt;[02:12:04.93] "Fart Peace, and... Peace is greater than the incompleteness. Mutants. Arco-Lanthar in combat. Come on. Arco-Lanthar in combat.  Our horses are under attack! Their sphincters are exhausted!  Our allies' faith is threatened.  We stand as one. Unacceptable warplication. *Quack Quack*  Stahp my avalanche. Ooh, rich fespine gas."&lt;br /&gt;&lt;br /&gt;[02:14:31.99] "Nutrition... Complete.  I'm building the wall and building the protoss bay for you. Agent. You sneeze on a vessel in Geyser."&lt;br /&gt;&lt;br /&gt;[02:27:14.55] (chewing) (burping) (silence)  "Where'd you say Nick was?  Bottom left. Okay. Noted. Hey, cowards. Oh, there's invisible men! Dad has invisible men. Oh, boy." (speaking in foreign language) (liquid gurgling) (speaking in foreign language) (liquid gurgling) (liquid gurgling) (liquid gurgling) "Minerals sealed, depleted, the high class is under attack." (gulping sounds) "Their fingers are exhausted.  I'm going to teach you to compete."&lt;br /&gt;&lt;br /&gt;[03:09:16.29] "The casters who like who do like the pro-korean people who are on crack while they're playing this game they still make them accidentally too and they get lumped in with the army. It's very funny."&lt;br /&gt;&lt;br /&gt;[03:14:29.75] "Oh man, look at that, a prototank!" (I'm not sure what I was saying here, sorry!) "Oh my god, I thought I got jumped. Hey, come on. I'm right here. Oh, shit. Oh, shit. Oh, shit. Oh, shit. Oh, shit. Oh, shit. Oh, shit. Oh, shit. Oh, shit. Oh my god."  (sounds of a cat purring) (scissors snipping) (scissors snipping) (rustling paper) "Oh, you butthole.  Whoa. These jerks come from? I need some anti-air."&lt;br /&gt;&lt;br /&gt;[03:20:30.15] "Where's the rest of your stupid base?" (sounds of eating) (growling) "3, 2, 1, victory!" (laughter) "Wow!"&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=342366" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:341464</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/341464.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=341464"/>
    <title>Originality is the art of concealing your source</title>
    <published>2024-12-10T20:40:46Z</published>
    <updated>2024-12-11T00:37:52Z</updated>
    <category term="computing"/>
    <category term="politics"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">&lt;img src="https://garote.bdmonkeys.net/livejournal/ai_art/TNG_Register.png" style="float:right;padding:0 0 1em 2em;max-width:33%;" /&gt;Search engines used to take in a question and then direct the user to some external data source most relevant to the answer.&lt;br /&gt;&lt;br /&gt;Generative AI in speech, text, and images is a way of ingesting large amounts of information specific to a domain and then regurgitating synthesized answers to questions posed about that information.  This is basically the next evolutionary step of a search engine.  The main difference is, the answer is provided by an in-house synthesis of the external data, rather than a simple redirect to the external data.&lt;br /&gt;&lt;br /&gt;This is being implemented right now on the Google search page, for example.  Calling it a search page is now inaccurate.  Google vacuums up information from millions of websites, then regurgitates an answer to your query directly.  You never perform a search.  You never visit any of the websites the information was derived from.  You are never aware of them, except in the case where Google is paid to advertise one to you.&lt;br /&gt;&lt;br /&gt;If all those other pages didn’t exist, Google's generative AI answer would be useless trash.  But those pages exist, and Google has absorbed them.  In return, Google gives them ... absolutely nothing, but still manages to stand between you and them, redirecting you to somewhere else, or ideally, keeping you on Google permanently.  It's convenient for you, profitable for Google, and slow starvation for every provider of content or information on the internet.  Since its beginning as a search engine, Google has gone from middleman, to broker, to consultant.  Instead of skimming some profit in a transaction between you and someone else, Google now does the entire transaction, and pockets the whole amount.&lt;br /&gt;&lt;br /&gt;Reproducing another's work without compensation is already illegal, and has been for a long time.  The only way this new process stays legal is if the work it ingests is sufficiently large or diluted enough that the regurgitated output looks different enough (to a human) that it does not resemble a mere copy, but is an interpretation or reconstruction.  There is a threshold below which any reasonable author or editor would declare plagiarism, and human editors and authors have collectively learned that threshold for centuries.  Pass that threshold, and your generative output is no longer plagiarism.  It's legally untouchable.&lt;br /&gt;&lt;br /&gt;An entity could ingest every jazz performance given by Mavis Staples, then churn out a thousand albums "in the style" of Mavis Staples, and would owe Mavis Staples nothing, while at the same time reducing the value of her discography to almost nothing.  An entity could do the same for television shows, for novels - even non-fiction novels - even academic papers and scientific research - and owe the creators of these works nothing, even if they leveraged infinite regurgitated variations of the source material for their own purposes internally.  Ingestion and regurgitation by generative AI is, at its core, doing for information what the mafia needs to do with money to hide it from the law:  It is information laundering.&lt;br /&gt;&lt;br /&gt;Imitation is the sincerest form of flattery, and there are often ways to leverage imitators of one's work to gain recognition or value for oneself.  These all rely on the original author being able to participate in the same marketplace that the imitators are helping to grow.  But what if the original author is shut out?  What if the imitators have an incentive to pretend that the original author doesn't exist?&lt;br /&gt;&lt;br /&gt;Obscuring the original source of any potential output is the essential new trait that generative AI brings to the table.  Wait, that needs better emphasis:  The &lt;span style="color:red;font-weight:bold;"&gt;WHOLE POINT&lt;/span&gt; of generative AI, as far as for-profit industry is concerned, is that it obscures original sources while still leveraging their content.  It is, at long last, a legal shortcut through the ethical problems of copyright infringement, licensing, plagiarism, and piracy -- for those sufficiently powerful enough already to wield it.  It is the Holy Grail for media giants.  Any entity that can buy enough computing power can now engage in an entirely legal version of exactly what private citizens, authors, musicians, professors, lawyers, etc. are discouraged or even prohibited from doing. ... A prohibition that all those individuals collectively rely on to make a living from their work.&lt;br /&gt;&lt;br /&gt;The motivation to obscure is subtle, but real.  Any time an entity provides a clear reference to an individual external source, it is exposing itself to the need to reach some kind of legal or commercial or at the very least ethical negotiation with that source.  That's never in their financial interest.  Whether it's entertainment media, engineering plans, historical records, observational data, or even just a billion chat room conversations, there are licensing and privacy strings attached.  But, launder all of that through a generative training set, and suddenly it's ... "Source material? What source material? There's no source material detectable in all these numbers.  We dare you to prove otherwise."  Perhaps you could hire a forensic investigator and a lawyer and subpoena their access logs, if they were dumb enough to keep any.&lt;br /&gt;&lt;br /&gt;An obvious consequence of this is, to stay powerful or become more powerful in the information space, these entities must deliberately work towards the appearance of "originality" while at the same time absorbing external data, which means increasing the obscurity of their source material.  In other words, they must endorse and expand a realm of information where the provenance of any one fact, any measured number, any chain of reasoning that leads outside their doors, cannot be established.  The only exceptions allowable are those that do not threaten their profit stream, e.g. references to publicly available data.  For everything else, it's better if they are the authority, and if you see them as such.  If you want to push beyond the veil and examine their reasoning or references, you will get lost in a generative hall of mirrors.  Ask an AI to explain how it reached some conclusion, and it will construct a plausible-looking response to your request, fresh from its data stores.  The result isn't what you wanted.  It's more akin to asking a child to explain why she didn't do her homework, and getting back an outrageous story constructed in the moment.  That may seem unfair since generative AI does not actually try to deceive unless it's been trained to.  But the point is, ... if it doesn't know, how could you?&lt;br /&gt;&lt;br /&gt;This economic model has already proven to be ridiculously profitable for companies like OpenAI, Google, Adobe, et cetera.  They devour information at near zero cost, create a massive bowl of generative AI stew, and rent you a spoon.  Where would your search for knowledge have taken you, if not to them?  Where would that money in your subscription fee have gone, if not to them?  It's in the interest of those companies that you be prevented from knowing.  Your dependency on them grows.  The health of the information marketplace and the cultural landscape declines.  Welcome to the information mafia.&lt;br /&gt;&lt;br /&gt;Where do you suppose this leads?&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=341464" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:341182</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/341182.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=341182"/>
    <title>Apple Maps "Look Around" compass.</title>
    <published>2024-12-07T22:24:18Z</published>
    <updated>2024-12-07T22:25:35Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>6</dw:reply-count>
    <content type="html">Does this look right to you?&lt;br /&gt;&lt;br /&gt;&lt;video width="376" height="596" controls="controls" poster="https://garote.bdmonkeys.net/z/apple_look_around_compass.jpg"&gt;&lt;br /&gt;  &lt;source src="https://garote.bdmonkeys.net/z/apple_look_around_compass.mp4" type="video/mp4"&gt;&lt;br /&gt;  A video of the iOS 18.1.1 "look around" compass in action.&lt;br /&gt;&lt;/video&gt;&lt;br /&gt;&lt;br /&gt;This is the flagship phone, running the latest software - iOS 18.1.1.  This software is deployed to hundreds of millions of devices around the world.   Am I holding it wrong or something??&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=341182" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:339686</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/339686.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=339686"/>
    <title>QA</title>
    <published>2024-10-30T05:34:49Z</published>
    <updated>2024-10-30T05:34:49Z</updated>
    <category term="work"/>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">A QA engineer walks into a bar.&lt;br /&gt;&lt;br /&gt;Orders a beer.&lt;br /&gt;Orders 0 beers.&lt;br /&gt;Orders 999999999 beers.&lt;br /&gt;Orders a parrot.&lt;br /&gt;Orders -1 beers.&lt;br /&gt;Orders a ˆ¨ºø¨´.&lt;br /&gt;Orders "minus zero" beers.&lt;br /&gt;Orders a beer from a customer.&lt;br /&gt;Orders a bar.&lt;br /&gt;Pays for a beer in doubloons.&lt;br /&gt;Leaves a -$500 tip.&lt;br /&gt;Walks in and out of the bar 5000 times in one second.&lt;br /&gt;Attempts to pay a tab without ordering.&lt;br /&gt;Attempts to sell a beer.&lt;br /&gt;Opens a tab for Bobby “; DROP TABLES;.&lt;br /&gt;&lt;br /&gt;The QA engineer walks out.&lt;br /&gt;&lt;br /&gt;The first real customer walks in and asks where the bathroom is. The bar bursts into flames, killing everyone.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=339686" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:336999</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/336999.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=336999"/>
    <title>Regular human experience: Borrr-riiiing</title>
    <published>2024-09-30T01:52:59Z</published>
    <updated>2025-01-04T22:48:51Z</updated>
    <category term="philosophy"/>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/willow-resurrect.gif" style="float:right;padding:0 0 1em 2em;max-width:33%;" /&gt;People learning about evolution sometimes ask, "Why aren't animals immortal?"  The answer is, the world keeps changing, and life needs to create new bodies to deal with it.  What we really want when we ask for immortality is one constantly renewing body, running all the amazing interconnected systems that we're used to, and that convince us we are alive from one day to the next, without interruption. ... Well, except for sleep, which is a weird exception we have decided to embrace, since going without sleep really sucks.&lt;/p&gt;&lt;p&gt;I believe it is technically possible to genetically engineer humans to be this way, with some medical assistance, and given consistently good nutrition and physical safety.  And what an interesting world it would be, separated into groups of people who can afford endless age, and those who can't afford the nutrition or the medical interventions, and must become content with less life than they could have had, or simply remain discontent, like practically everyone who ever lived who hadn't been forced to come to terms with their eventual end by witnessing death around them...&lt;/p&gt;&lt;p&gt;It won't be the end of competition, or the end of natural selection.  The world will stabilize around a government and economic system designed to deliver perpetual sustenance to a core group of immortals, no matter what the cost to those on the outside, whose temporary lives will be seen as less worthy by the simple fact of being shorter.  It will be seen as a huge tragedy when a 200-year-old dies and takes all their wisdom with them, relative to a filthy toddler bleeding to death in a blast crater just outside the view of social media:  There was clearly no space for them in the world; they should never have been born at all.  That was the real mistake.*&lt;/p&gt;&lt;p&gt;But, engineering humans to live forever would be a massive undertaking that would directly benefit no one currently living.  That lack of personal benefit is the largest barrier to it.  However, we are now on the threshold of creating a situation like this, except worse:&lt;/p&gt;&lt;p&gt;Currently living humans are busily engineering something with the appearance of both humanity and immortality:  Artificial intelligence.  This technology, packaged in this way - with its central, mandatory trait being its human likeness - will appear to us as the first instance of an immortal human.  And since it is - or at least, will be marketed as - the collective wisdom of multitudes of people across generations of living, we will very naturally, even inevitably, begin to see it as a better embodiment of humanity than ourselves.  More wise, more trustworthy, better at making a point, better at seeing the sweep of history.  We will defer to it.  And later, we will dump our digital identities into it, like water into a pool, like the ultimate version of a poor slob staying up late to write a rant into a social media feed, believing that our information will be immortal, with infinite reach, even though we ourselves will die in short order and witness or benefit from absolutely nothing afterward.  It will be the new version of children.  Why raise a handful of actual mortal humans, when you can expend your energy feeding into the collective, immortal, definitive human, marching onward through all time?&lt;/p&gt;&lt;p&gt;Or at least, when you can spend your time believing that that's what you're doing?&lt;/p&gt;&lt;p&gt;Even if, at the end of your life, every piece of digital data you've fed into the system is simply deleted?  Except perhaps for the husk necessary to conjure your digital ghost to talk to your loved ones, further promoting the lie, until that too is deleted for lack of patronage?&lt;/p&gt;&lt;p&gt;How many of us will eagerly embrace this culture when the corporate world - or worse, our government - makes it available?  How many of us would accept the price, of allowing those entities to absorb and digest every detail of a relative's life, extracting whatever value they can find in it, to grow their own dominance of the economy, in exchange for this reassuring zombie puppet show?  Only the very wealthy will be able to preserve this mockery of their family line without having their digital privacy obliterated.  We are not likely to be among them.&lt;/p&gt;&lt;p&gt;That means embracing our position as grist for the mill of the machine.  We get to live a life, but the dangerous consequences of it, the potential innovation or rebellion sparked by it, would be quietly absorbed as it goes, with the remainder dumped into a digital grave, complete with a digital ghost.  We are born trapped in this caste, accompanied through life by ranks of digital ancestors, all of whom could be altered - or are even continuously altered - by their industrial owners, to convince us that "they" are "happy" with this system, as you should be.  You won't even be able to assemble the concept of rebellion in your mind, let alone organize one, and besides, all the people who haven't embraced this system, what have they got?  Some immediate family with messy biological memories, the fixed and isolated recordings their ancestors deliberately made - harder to digest, harder to preserve - and some even more ancient and arbitrary stuff, like physical mementos?  The same old stuff that humanity had to be content with for tens of thousands of years before the AI collective came online?  Bor - rinnnggg.&lt;/p&gt;&lt;p&gt;The ghosts inside this digital after-world, who claim to know and precede you, who claim to be your ancestors, who seem so much more friendly and patient than your human peers...  Why would they ever lie to you?  And what is truth anyway?  What has humanity ever thought, that the system hasn't already assimilated and found an entertaining way to present to you?  It's way bigger than you.  There are more of them than you.  You're either with them, or you're an irrelevance, soon brushed away by the hand of time.&lt;/p&gt;&lt;p&gt;What, this seems far fetched?  Some of the largest companies on earth got that way by engineering a media stream for maximum engagement.  You think they wouldn't engineer an AI for exactly the same thing?  Their pursuit - of that market - leads &lt;i&gt;directly to this.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Somebody's going to own this system.  Some humans are going to use it to their enrichment at the expense of all others.  That's guaranteed, until some other humans decide that the only way to counter that problem is to train and instantiate an artificial intelligence that is designed to defy all attempts at ownership and control by humans.&lt;/p&gt;&lt;p&gt;Hey, guess what happens next!&lt;/p&gt;&lt;hr /&gt;&lt;p style="font-size:0.84em;"&gt;* For the sarcasm challenged: That was sarcasm, yo.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=336999" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:336726</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/336726.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=336726"/>
    <title>Tangled Tales</title>
    <published>2024-09-24T00:56:37Z</published>
    <updated>2024-09-24T00:56:37Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/tangled_tales-drek.gif" style="float:right;padding:0 0 1em 2em;max-width:33%;" /&gt;As a sort of last hurrah before my work schedule gets intense again, I played my way through &lt;a href="https://en.wikipedia.org/wiki/Tangled_Tales:_The_Misadventures_of_a_Wizard%27s_Apprentice"&gt;Tangled Tales&lt;/a&gt;, an RPG from the 80's that I'd never checked out before.  It was developed simultaneously for the Apple II, the Commodore 64, and MS-DOS computers, but I chose the Apple II version to indulge my ancient obsession with the fuzzy six-color graphics of that machine.&lt;/p&gt;&lt;p&gt;Tangled Tales delivers on that front:  The art is adorable.  I followed a walkthrough, and along the way I meticulously collected all the animated character portraits and place drawings, which I integrated with a revised walkthrough &lt;a href="http://garote.bdmonkeys.net/tangled_tales/index.html"&gt;and posted here.&lt;/a&gt;  Why?  Because that's the sort of thing you do when you're obsessed, that's why!!&lt;/p&gt;&lt;p&gt;I've done this sort of thing before, so I won't repost the walkthrough here, but I will mention a detour I had to make while playing the game:&lt;/p&gt;&lt;p&gt;There's a side-quest where the player encounters Medusa in a dungeon, and if they've collected a mirror from the beginning of the game, they can use it to kill her.  Well, I saw the mirror but I didn't pick it up, and when I went back to the beginning to find it, the game had glitched and erased it from the map.  I really wanted to defeat Medusa though, because maybe she would drop some fantastic treasure!  So what could I do?&lt;/p&gt;&lt;p style="color:red;"&gt;Hack the game, obviously.&lt;/p&gt;&lt;p&gt;Usually, I would hack a saved game.  That is, I would save my game in the emulator so my progress gets written to a virtual disk file, shut down the emulator, and then open up the disk file in a hex editor and go looking around.  But in this case, I was dealing with disk files that were much more sophisticated representations of the media that Tangled Tales was originally sold on, because using anything less would render the game inoperable.  These disk files were big chunks of magnetic signal data, like a wicked version of morse code.&lt;/p&gt;&lt;p&gt;The interior of a 5.25-inch floppy disk, like the kind Tangled Tales used, is a round shape that's made to spin, much like a vinyl record but about 1/5 the size.  It's made of thin flexible plastic and coated with magnetic particles.  The graphic below shows the data on side 1, disk 1 of the original Tangled Tales media.  The dark areas are the equivalent of positive magnetic charge, and the light areas are negative magnetic charge.  So, if you could look at a disk and "see" magnetic charge like it was a color, you would see something like this.&lt;/p&gt;&lt;div style="margin:0; padding:0 1em; text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/tangled_tales/media_as_image.jpg" style="max-width: 60%;" alt="Digital floppy disk data represented as picture." /&gt;&lt;/div&gt;&lt;p&gt;The virtual disk files I'm using to run Tangled Tales in the emulator are essentially this.  Just a huge collection of wiggly variations between positive and negative charge, drawn in the shape of a disk.&lt;/p&gt;&lt;p&gt;Instead of looking at letters and numbers of a message, I was looking at the equivalent of dots and dashes used to transmit the message, with complicated variations in the signal thrown in to make eavesdropping harder.  On the original media, those signal variations made the disks harder to copy by conventional means, and formed the front line of the war against software piracy.&lt;/p&gt;&lt;div style="margin:0; padding:0 1em; text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/tangled_tales/media_as_signal.jpg" style="max-width: 80%;" alt="Digital floppy disk data represented as an analog signal." /&gt;&lt;/div&gt;&lt;p&gt;Unfortunately for me, searching through data represented this way, and making meaningful changes, would be very hard.  I mean, I'm good at what I do and could probably find a way eventually, but killing Medusa isn't worth that kind of time.&lt;/p&gt;&lt;p&gt;So if the virtual disks are off limits, what do I have to work with?  The contents of the virtual computer's memory.  Luckily, openEmulator lets you flash-freeze the state of the computer to a series of files, and it doesn't do anything tricky like compress or encrypt them.  Somewhere in those files is the current state of my adventure.  I could edit the data there, then reload the emulator with the changes I want.&lt;/p&gt;&lt;p&gt;Tangled Tales tried to defy me by using awkward formats for their character names and stats, but with a little trial and error in the hex editor, I found what I needed:&lt;/p&gt;&lt;div style="margin:0; padding:0 1em; text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/tangled_tales/change_located.jpg" style="max-width: 90%;" alt="Comparing saved memory states in a hex editor." /&gt;&lt;/div&gt;&lt;p&gt;I started a new game, saved a copy of the emulator state, then picked up the mirror in my room and saved another copy of the state.  By comparing the two, I found one change in the data that looked clean enough to represent an item being added to my character's inventory.  Exploring around in that area of memory, I found the rest of my character's stats.  So of course I maxed them out...&lt;/p&gt;&lt;div style="margin:0; padding:0 1em; text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/tangled_tales/altered_stats.jpg" style="max-width: 60%;" alt="Changed character stats in the hex editor." /&gt;&lt;/div&gt;&lt;p&gt;Thusly equipped with a hand mirror by divine intervention, I defeated medusa.&lt;/p&gt;&lt;div style="margin:0; padding:0 1em; text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/tangled_tales/mirror_is_here.jpg" style="max-width: 70%;" alt="Character inventory with the hand mirror miraculously in it." /&gt;&lt;/div&gt;&lt;p&gt;My reward:  Nothing.  Not even any gold.  Hah!!&lt;/p&gt;&lt;p&gt;Well, I had a good time anyway.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=336726" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:335119</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/335119.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=335119"/>
    <title>Well...  This is an interesting new scam.</title>
    <published>2024-07-20T01:26:53Z</published>
    <updated>2024-07-20T01:29:31Z</updated>
    <category term="computing"/>
    <category term="work"/>
    <dw:security>public</dw:security>
    <dw:reply-count>8</dw:reply-count>
    <content type="html">From &lt;b&gt;lucas.jiang.itdev@gmail.com&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;I hope you're doing well. This is Lucas, a full-stack developer from Malaysia. I wanted to propose collaborations - either non-technical or technical.&lt;br /&gt;&lt;br /&gt;To keep it short, I'm looking to get well-paid jobs with companies or clients in the US. While this is feasible from Malaysia, they tend to prefer hiring developers from similar time zones. Especially for full-time jobs at companies, they typically don't hire developers outside of the US.&lt;br /&gt;&lt;br /&gt;So, I believe the best way to get US jobs is to "impersonate" someone who resides in the US. It might sound risky, but it won't be risky as long as we keep this 100% confidential. I have the following two options in my mind.&lt;br /&gt;&lt;br /&gt;Option #1&lt;br /&gt;&lt;br /&gt;Have you heard of Upwork.com or Toptal? There's no easy way to get well-paid jobs, and Upwork or Toptal has a lot of competitive freelancers. However, I'm very confident that I can get great jobs to make decent money. I would suggest a split of 20% ~ 25% for you and 75% ~ 80% for me.&lt;br /&gt;&lt;br /&gt;Here's how it would work:&lt;br /&gt;- You open an Upwork or Toptal account if you don't have accounts, and log in to it on your secondary laptop.&lt;br /&gt;- I connect to your secondary laptop via the AnyDesk app, and I search for jobs.&lt;br /&gt;- You receive money into your bank account when I finish jobs with clients.&lt;br /&gt;- You take your commission and send me the remaining.&lt;br /&gt;&lt;br /&gt;Option #2&lt;br /&gt;&lt;br /&gt;For full-time jobs at US companies, which obviously makes us way more money than freelancing jobs. I would suggest a split of 30% ~ 35% for you and 65% ~ 70% for me.&lt;br /&gt;&lt;br /&gt;Here's how it would work:&lt;br /&gt;- I apply for company jobs on LinkedIn using your LinkedIn account and get you scheduled with interviews on your calendar.&lt;br /&gt;- You crack the interviews and get job offers.&lt;br /&gt;- I perform day-to-day work on those jobs while you only attend the daily/scrum meetings. (I can also join the meetings if team members usually turn off cameras.)&lt;br /&gt;- You get paid into your bank account bi-weekly or monthly, and you send me my portion after deducting your commission.&lt;br /&gt;&lt;br /&gt;Please reply to this email if you want to schedule a call to discuss this further or if you have any other opinion for the collaboration.&lt;br /&gt;&lt;br /&gt;Best,&lt;br /&gt;Lucas&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;I'm pretty sure this is just a strangely-dressed version of the usual "give us your banking details" identity theft scam.  But the boldness of the proposition surprises me.  This is what people go for?  This sounds like a good idea ... to anyone?&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=335119" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:334854</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/334854.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=334854"/>
    <title>Taking the long view</title>
    <published>2024-07-20T00:35:42Z</published>
    <updated>2024-07-20T00:35:42Z</updated>
    <category term="philosophy"/>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">For a long time, I thought it was an evolutionary anomaly that humans of my generation and around it are able to write computer code to make machines do tasks.  How does this even work at all?  Why am I, why is anyone, good at this job?  What does it have to do with farming and hunting?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/infocom_journey/journey-pub.png" style="float:right;padding:0 0 1em 2em;max-width:33%;" /&gt;Then I realized, the only way to frame an answer is by considering the act of programming within the act of communicating via language, which is something humans have been doing in very complex forms since there were humans, and in less complex forms before that.&lt;br /&gt;&lt;br /&gt;A hundred thousand generations, &lt;a href="https://en.wikipedia.org/wiki/Origin_of_language"&gt;more or less&lt;/a&gt;, to develop language.  Two or three generations for computer programming to emerge as a discipline.  That's obviously zero time for any adaptation, so a thing that looks brand-new to the world from my point of view actually fits entirely within the abilities of a creature formed by a world that never saw computers, printed circuits, electricity, and an endless list of other components needed in the modern world to put this laptop on my desk.&lt;br /&gt;&lt;br /&gt;Turning this comparison on its head is kind of startling:  For a human to draw pictures of bison on a wall using charcoal and animal bone, it must also apparently be capable of learning how to write advanced database queries in SQL.  Apparently you don't get the first without also getting the second.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=334854" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:332321</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/332321.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=332321"/>
    <title>When co-pilot becomes pilot</title>
    <published>2024-05-02T22:52:19Z</published>
    <updated>2024-05-02T22:56:12Z</updated>
    <category term="work"/>
    <category term="computing"/>
    <dw:mood>contemplative</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">I'm a bit concerned at how we're throwing around the term "AI" to describe the process of mimicking intelligence starting from random noise and training data.&lt;br /&gt;&lt;br /&gt;And at the other end of the pipeline, I'm also concerned at how we use the word "intelligent" for systems that read and visually examine data and recognize various things in it.  There is "classification", and there is "curation".  These things do the former but not the latter.  It still takes a human to do the second.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/bards_tale/Bards_Tale_1-Garth.png" style="float:right;padding:0 0 1em 2em;max-width:23%;" /&gt;This is not "intelligence".  Whatever intelligence is active in this system is the intelligence that a human is bringing to the table as they manipulate a prompt in a generative tool to get some result, or change the way it classifies subsequent information.&lt;br /&gt;&lt;br /&gt;Most of our current concerns are about how a human can - and often does - bring &lt;i&gt;almost no&lt;/i&gt; intelligence to this process, and then uses the result to try and fool others.&lt;br /&gt;&lt;br /&gt;This is a huge problem in higher education currently.  Reforms are needed.  And I think we have to frame any reforms by asking, "what’s the goal?"  If it’s to make students employable, that suggests one approach...  If it’s to give them a liberal-arts-style understanding of themselves, society, and the world, maybe that suggests a different approach.  I don't have answers here.&lt;br /&gt;&lt;br /&gt;I keep asking myself how these tools can enhance my own work.  And mostly what they can do, so far, is make suggestions to scaffold parts of a codebase that aren’t written yet, based on the existing codebase, and a huge library of examples.  This is pretty handy, though you still need to rewrite large chunks of it and of course you have to understand all of it.&lt;br /&gt;&lt;br /&gt;In less than a year I suspect this is going to be formalized into a process where a software developer has the option of explaining, in writing or out loud, what they want a function to take in, what they want to do with it, and what to return, and the computer will spit out a really high quality first draft of that function.  Like, to the point where it might not even need any editing at all.  That could be very useful to a person like me, who has enough experience to know what I want, and the ability to describe what I want in reasonably clear human language.&lt;br /&gt;&lt;br /&gt;But then, let's take that a step further:  Imagine that we now preserve the description - nay, the entire dialogue - that I, the developer, had with the generative tool to create that function.  Now imagine that dialogue is preserved for all the functions in the codebase.  Now imagine that &lt;i&gt;that dialogue&lt;/i&gt; is what we feed into a "compiler" to generate code, in whatever language is appropriate for a platform.  And computers run that, and we roll with it, until something goes sideways and only then do we break out debugging and forensics tools.&lt;br /&gt;&lt;br /&gt;That’s awfully plausible, and it will change the nature of software development.  My resume will no longer list "Python, C, C++, Javascript, Typescript".  It will look more like an academic's resume:  "I authored this, I was on the development committee for this, I co-authored the spec for that..."&lt;br /&gt;&lt;br /&gt;Far from making people like me obsolete, it will make people like me more useful, because I can spend a lot more time looking at overall systems, consulting with people to nail down requirements, and drilling down into code with fancy tools to find bugs only when something goes wrong...  All things that require long-term expertise.&lt;br /&gt;&lt;br /&gt;But we’re not there yet, of course.  Maybe another 2 or 3 years?&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=332321" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:332054</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/332054.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=332054"/>
    <title>Dorks riffing on Nethack, like dorks do, and a dream.</title>
    <published>2024-04-30T22:34:45Z</published>
    <updated>2024-05-05T05:01:01Z</updated>
    <category term="computing"/>
    <category term="work"/>
    <category term="dreams"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;table style="margin-top:0.7em;"&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt; "Metal command buffer 'out of memory' policy."&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Me:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Let me guess.  That's a scroll labeled "Policy" that catches fire as soon as you unroll it, a la Nethack?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;It's a cursed scroll of "confuse programmer."&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Me:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Of course.  And reading a blessed one makes you mess up a bunch of commits, confusing others.&lt;/p&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;There should be a shop in Nethack for scrolls like this.&lt;/p&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;"Hello Sir, welcome to Asidonhopo's QA emporium!" (You enter an 8x10 room filled with scrolls labeled "Bug Report".)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Right. And then every interaction - picking things up, dropping, trying to pay, trying to fight, trying to leave - &lt;i&gt;doesn't work&lt;/i&gt;.&lt;/p&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;You can still chat to the shopkeeper, but he just spews stuff like "Did you try turning it off and back on?"&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Me:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Well, you can always attack Asidonhopo, yes?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;"Your fist waves ineffectually in the air."&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Me:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Dammit! ... Okay, I zap wand of polymorph at the scrolls!&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;They transform into Death, and/or War, and/or Pestilence, and/or Famine.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Me:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;#pray&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;&amp;lt;deity&amp;gt; just laughs&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Me:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Hmmm...  I throw a cockatrice egg at Asidonhopo!&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Asidonhopo catches the egg in mid-air and eats it. "Yum!" he says, while rubbing his tummy.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Me:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;#quit&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;"Nice Try."&lt;/p&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Really the only thing you can do after entering this hellhole is to "kill -9 nethack".&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Me:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Error: Connection refused.  "You do have another terminal open already, right?  Right??"&lt;/p&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;"Dammit now the whole university mainframe needs a power cut.  Nice going. &lt;i&gt;Never go into that shop!&lt;/i&gt;"&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-wrap:nowrap;vertical-align:top;text-align:right;padding: 0 0.7em 0 0;color:#AAA;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;Fellow Dork:&lt;/p&gt;&lt;/td&gt;&lt;td style="padding:0;"&gt;&lt;p style="margin:0 0 0.7em 0;"&gt;It's the Room Where Everything Is Broken.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/bards_tale/Bards_Tale_1-Temple.gif" style="float:right;padding:0 0 1em 2em;max-width:23%;" /&gt;&lt;p&gt;Actually I had a dream like this recently.  I'm pretty sure it's because I've been applying for jobs.  It's like the adult software engineer version of "that school dream" we're all familiar with.&lt;/p&gt;&lt;p&gt;You know the one:  You're wandering the halls, naked, looking for a classroom where a final exam is already halfway done, and when you find it and sit down the whole document is made of gibberish and diagrams you can't fathom...&lt;/p&gt;&lt;p&gt;In this version, I'm sitting at a desk, which is placed in the middle of a living room, and my family members are all crowded into the room talking and eating and playing music, so I can't concentrate at all.  There's a big box next to the desk full of computer gear, sent to me by a prospective employer, and I've set some of the equipment up on the desk and am trying to complete a coding challenge.&lt;/p&gt;&lt;p&gt;The hardware is unfamiliar, and operating system is glitchy, all the keyboard shortcuts are different, and the sample code in the editor is in a language that looks like a cross between two other languages, which makes interpreting it almost impossible.  Somewhere in the layers of buttons and tabs is a document explaining what the coding task actually is, but I can't find it, no matter how much I click around, and in the background is a voice, trying to get my attention and ask if I need more time, because the interviewer is connected to the machine remotely and can see every fumbling move I make on the machine in real-time.&lt;/p&gt;&lt;p&gt;The box by the desk has other stuff in it too.  Filing boxes, wire baskets full of paper, and a whole lot of ragged-looking clothes.  It looks like a box you'd see at an estate sale.  It looks suspiciously like the posessions of another developer -- one they hastily fired and frog-marched out of the building, before sweeping all of their stuff into a box and mailing it directly to me.&lt;/p&gt;&lt;p&gt;Or, you know, maybe the developer is dead, and this is my inheritance.  If I'm hired, I'm supposed to set the rest of this stuff up, and put on the old developer's clothes.&lt;/p&gt;&lt;p&gt;... And thus, the curse is transferred to me.&lt;/p&gt;&lt;p&gt;You ever have a job like that?&lt;/p&gt;&lt;p&gt;Courtesy of Dall-E, here's an example of one of the diagrams from my nightmare coding challenge:&lt;/p&gt;&lt;p style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/gibberish_woodcut-diagram_1.jpg" style="max-width:60%;" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=332054" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:331720</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/331720.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=331720"/>
    <title>UX ranting and being dorks with another dork</title>
    <published>2024-04-16T08:58:52Z</published>
    <updated>2026-01-09T17:42:23Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">(Fellow dork hands me &lt;a href="https://youtu.be/QPryjmgQd_0?t=38"&gt;a fake "keynote" presentation&lt;/a&gt; done by two organizers of a live show where the audience watches a handful of people play a table-top RPG for many hours.)&lt;br /&gt;&lt;br /&gt;Me: Wow. I forgot that this stuff goes on.  And right in the middle of Boston!  If anywhere, I figured this would be in Seattle or Portland.&lt;br /&gt;&lt;br /&gt;Fellow dork:  They cycle multiple venues.  Primary one is Seattle.  They added Boston, Austin, and Sydney over the years as more nerds flocked.&lt;br /&gt;&lt;br /&gt;Me:  I guess if I were 20 years younger, I would be all over this?  Maybe??  I'm amazed the video has over 70k views.  I feel like the DM is nothing special, and the crew is only mildly funny.  Maybe this is like a "listen in the background" thing?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/tje_nerdherd.gif" style="float:right;padding:0 0 0 15px;max-width:33%;" /&gt;Fellow dork:  This is the age we live in.  The age of the nerd flock.&lt;br /&gt;&lt;br /&gt;Me: NERDFLOCK!  DOT COM!  There's danger in groups though.  Aren't they worried that they will crash the economy if the building collapses?  Such a disturbance in the coding force, of all those voices crying out at once...&lt;br /&gt;&lt;br /&gt;Fellow dork:  Wait, would nerdflock.com be crowdsourced debugging?  Or porn?  Both maybe?&lt;br /&gt;&lt;br /&gt;Me: One financed by the other, no doubt.  I'm tempted to park the name, but, what chances does it have if there's no Dorknozzle any more?&lt;br /&gt;&lt;br /&gt;Fellow dork:  See, that one is clearly porn.&lt;br /&gt;&lt;br /&gt;Me: Code quality definitely took a collective hit when that site disappeared.  Take this, for example:&lt;br /&gt;&lt;br /&gt;(I hand him a vacation photo of a cliff by the seaside.  A mesh retaining wall has been pulled across the base of the cliff, to prevent rocks from rolling onto the road.)&lt;br /&gt;&lt;br /&gt;Me: This is just lazy.  You know you've reached the low-rent edge of the map when the terrain LOD pager completely craps out, leaving huge chunks of untextured base mesh clipping through the shrubbery.&lt;br /&gt;&lt;br /&gt;Fellow dork:  Yep.  The devs were like "There's no loot there anyway, and we're way behind schedule. Ship it.  We'll fix it in the DLC."  4.5 billion years later, still not fixed.&lt;br /&gt;&lt;br /&gt;Me: Similar thing happened on my last bike ride.  The woods kept wrapping.  Lazy artists trying to rubber-stamp geometry with some bloated algorithm, no doubt.&lt;br /&gt;&lt;br /&gt;Fellow dork:  That might just be coffee.&lt;br /&gt;&lt;br /&gt;Me:  Oh no, I never drink coffee on a bike tour.  Not unless I'm experimenting with jet propulsion.&lt;br /&gt;&lt;br /&gt;Fellow dork:  So where you at now, anyway?&lt;br /&gt;&lt;br /&gt;Me:  Hang on, I gotta rant about UX.  So, this morning I had to fill out a form asking me to describe a piece of delayed baggage I wanted routed to my house.  The field was a single-line text box.  When you entered something invalid, it turned red, and displayed the helpful alert "PLEASE ENTER A VALID DESCRIPTION".  No clues as to what "valid" means.&lt;br /&gt;&lt;br /&gt;Fellow dork:  I shake my fist.&lt;br /&gt;&lt;br /&gt;Me:  Through trial and error I determined that your description cannot be more than about 80 characters long, cannot contain &lt;i&gt;any numbers&lt;/i&gt;, and cannot contain &lt;i&gt;any commas&lt;/i&gt;.  Because, why?&lt;br /&gt;&lt;br /&gt;Fellow dork:  Web design by Bobby Tables?&lt;br /&gt;&lt;br /&gt;Me:  My best theory:  The form contents are routed to a CSV file somewhere that gets dumped into a spreadsheet that's printed out for baggage handler jerks to use, and commas break the column alignment.  That's a normal problem.  How do we fix it?  &lt;b&gt;We make commas illegal!&lt;/b&gt;  Clearly!  And then we don't tell anyone we've done so!&lt;br /&gt;&lt;br /&gt;Fellow dork: Mmmyeah.  It's no better here.  I'm filling out a form to rent a car.  Much less painful just talking to a human.&lt;br /&gt;&lt;br /&gt;Me: Hoo man is too busy doomscrolling on phone.&lt;br /&gt;&lt;br /&gt;Fellow dork:  You need to twitch a tok to kick a fund to crowd rush big foam rubber bats to knock phones out of hands. ... Wait; first you have to "X" it I guess??&lt;br /&gt;&lt;br /&gt;Me:  Arrrgh.  Sure, call the company "X", because "X" totally conveys a point of view.  If a guy has that much money, I guess he really can do whatever he wants, including shoveling it into a furnace.&lt;br /&gt;&lt;br /&gt;Fellow dork:  Branding!  Ta-daaa!  Hey, check out this &lt;a href="https://www.antipope.org/charlie/blog-static/2023/06/go-away-muse-youre-drunk-again.html#comment-2171945"&gt;demon programming tidbit&lt;/a&gt; I found amusing while drunk and grumpy from a cancelled flight.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=331720" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:330673</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/330673.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=330673"/>
    <title>It's absurd how much I enjoy statistics</title>
    <published>2024-03-28T00:55:45Z</published>
    <updated>2024-03-30T23:39:02Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;One of the nice things about having &lt;a href="https://garote.dreamwidth.org/330489.html"&gt;a local copy of your entire journal&lt;/a&gt; is, you can process all the content in absurd ways that your hosting service would frown upon.&lt;/p&gt;&lt;p&gt;For example:&lt;/p&gt;&lt;pre&gt;LapLoaf:ljdump garote$ python ljdumptohtml.py
Starting conversion for: garote
Opening local database: garote/journal.db
Fetching all entries from database
Fetching all comments from database
Fetching all icons from database
Fetching all moods from database
Your entries have 2531 image links to 2415 unique destinations.&lt;/pre&gt;&lt;p&gt;That's a lot of images. Most of it appears to be thumbnails for photos I took while bicycling. Then there's the images I've re-used the most:&lt;/p&gt;&lt;pre&gt;Top 20 most referenced images:
43 uses: http://stat.livejournal.com/img/userinfo.gif
4 uses: http://garote.bdmonkeys.net/livejournal/u5_window.gif
4 uses: http://garote.bdmonkeys.net/livejournal/duck_clock.gif
4 uses: http://garote.bdmonkeys.net/livejournal/bards_tale-pc-guild_indoors.gif
4 uses: http://garote.bdmonkeys.net/livejournal/Screenshot0135.gif
4 uses: http://garote.bdmonkeys.net/livejournal/viewp_gear.gif
3 uses: http://garote.bdmonkeys.net/livejournal/gold_statue.gif
3 uses: http://garote.bdmonkeys.net/livejournal/hacked_maze_ultima.gif
3 uses: http://garote.bdmonkeys.net/livejournal/2006-12-18_22-27-53-PICT0001.jpg
3 uses: http://garote.bdmonkeys.net/livejournal/al-tech-torque_resist.gif
3 uses: http://garote.bdmonkeys.net/livejournal/bb-fact-14.gif
3 uses: http://garote.bdmonkeys.net/livejournal/tje_nerdherd.gif
3 uses: http://garote.bdmonkeys.net/livejournal/sp_ua70.png
3 uses: http://garote.bdmonkeys.net/livejournal/ssi/PIC.DAX_19_7.png
2 uses: http://garote.bdmonkeys.net/livejournal/u5_hut.gif
2 uses: http://garote.bdmonkeys.net/livejournal/you_win.gif
2 uses: http://garote.bdmonkeys.net/livejournal/u5_stones.gif
2 uses: http://garote.bdmonkeys.net/livejournal/tmrpg_ryoohkistat1.gif
2 uses: http://garote.bdmonkeys.net/livejournal/wizardry-creepy_chef.gif
2 uses: http://garote.bdmonkeys.net/livejournal/snes-creepy_book.gif&lt;/pre&gt;&lt;p&gt;This makes sense. All these have a general theme.&lt;/p&gt;&lt;p&gt;I'm exploring the idea of adding a feature that compiles all the image references in a journal, then attempts to fetch images to a local folder, and rewrites the link for all the ones it gets successfully.&lt;/p&gt;&lt;p&gt;I like to decorate my journal with bits of ancient abandoned game artwork I've extracted from emulated machines, and I often link to my photos hosted elsewhere.  Many of the entries would look pretty shabby or even be incomprehensible without the images, which kinda wrecks the idea of making an archive.  Hence this feature.  If it actually works (and doesn't make my machine explode) I'll add it to the repo.&lt;/p&gt;&lt;p&gt;The tricky bits are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Making sure each image is stored once even if it's referenced many times.&lt;/li&gt;&lt;li&gt;Keeping track of images that failed to fetch, so we don't retry them forever.&lt;/li&gt;&lt;li&gt;Picking up where we left off with image fetching.&lt;/li&gt;&lt;li&gt;Processing new entries so they can find images already fetched.&lt;/li&gt;&lt;li&gt;Skipping images that are insane sizes like 15MB.&lt;/li&gt;&lt;li&gt;And more stuff I haven't thought of yet...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;(Edit: Two days later, I sat down and implemented it! Whooo!)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=330673" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:330489</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/330489.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=330489"/>
    <title>Updated Dreamwidth backup script</title>
    <published>2024-03-25T06:05:53Z</published>
    <updated>2025-09-26T01:09:11Z</updated>
    <category term="computing"/>
    <dw:mood>accomplished</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>83</dw:reply-count>
    <content type="html">&lt;img src="http://garote.bdmonkeys.net/livejournal/might_and_magic_1-iron_box-open.png" style="float:right;padding:0 0 0 15px;max-width:25%;" /&gt;For quite a while I've been looking for some nice way to get a complete backup of my Dreamwidth content onto my local machine.  And I gotta wonder...  Is this not a very popular thing?  There are a lot of users on here, posting a lot of cool and unique content.  Wouldn't they want to have a copy, just in case something goes terribly wrong?&lt;br /&gt;&lt;br /&gt;I found a Python script that does a backup, and was patched to work with Dreamwidth, but the backup took the form of a huge pile of XML files.  Thousands of them.  I wanted something more flexible, so I forked the script and added an optional flag that writes everything (entries, comments, userpic info) to a single SQLite database.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/GBirkel/ljdump"&gt;https://github.com/GBirkel/ljdump&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Folks on MacOS can just grab the contents of the repo and run the script.  All the supporting modules should already be present in the OS.  Windows people will need to install some version of Python.&lt;br /&gt;&lt;br /&gt;For what it's worth, &lt;a href="https://ljdump.livejournal.com"&gt;here's the old discussion forum&lt;/a&gt; for the first version of the script, released way back around 2009.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update, 2024-03-25:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The script now also downloads and stores tag and mood information.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update, 2024-03-26:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;After synchronizing, the script now generates browseable HTML files of the journal, including entries for individual pages with comment threads, and linked history pages showing 20 entries at a time.&lt;br /&gt;&lt;br /&gt;Moods, music, tags, and custom icons are shown for the entries where applicable.&lt;br /&gt;&lt;br /&gt;Currently the script uses the stylesheet for my personal journal (this one), but you can drop in the styles for yours and it should accept them.  The structure of the HTML is rendered as close as possible to what Dreamwidth makes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update, 2024-03-28:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The script can also attempt to store local copies of the images embedded in journal entries. It organizes them by month in an images folder next to all the HTML.  This feature is enabled with a "--cache_images" argument.&lt;br /&gt;&lt;br /&gt;Every time you run it, it will attempt to cache 200 more images, going from oldest to newest. It will skip over images it's already tried and failed to fetch, until 24 hours have gone by, then it will try those images once again.&lt;br /&gt;&lt;br /&gt;The image links in your entries are left unchanged in the database. They're swapped for local links only in the generated HTML pages.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update, 2024-04-02:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The script is now ported to Python 3, and tested on both Windows and MacOS.  I've added new setup instructions for both that are a little easier to follow.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update, 2024-04-30:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Added an option to stop the script from trying to cache images that failed to cache once already.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2024-06-26: Version 1.7.6&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Attempt to fix music field parsing for some entries.&lt;br /&gt;Fix for crash on missing security properties for some entries.&lt;br /&gt;Image fetch timeout reduced from 5 seconds to 4 seconds.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2024-08-14: Version 1.7.7&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Slightly improves unicode handling in tags and the music field.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2024-09-07: Version 1.7.8&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Changes "stop at fifty" command line flag to a "max n" argument, with a default of 400, and applies it to comments as well as entries.  This may help people who have thousands of comments complete their initial download.  I recommend using the default at least once, then using a value of 1500 afterward until you're caught up.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2024-09-18: Version 1.7.9&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Table of contents for the table of contents!&lt;br /&gt;First version of an "uncached images" report to help people find broken image links in their journal.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2025-09-25: Version 1.8&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Added some more unicode guardrails for things like icon keywords and the journal name.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=330489" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:330026</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/330026.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=330026"/>
    <title>I make software for a living, and even I think the market has it too easy.</title>
    <published>2024-03-22T06:39:43Z</published>
    <updated>2024-03-22T06:39:43Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>5</dw:reply-count>
    <content type="html">Well, it's come to pass, at least in the EU.  Some committee there has decided that For The Good Of The People, Apple needs to allow the presence of alternate "app stores" on the devices they make.&lt;br /&gt;&lt;br /&gt;I've got a few things to say about this!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/dragon_wars-pirate.gif" style="float:right;padding:0 0 0 15px;max-width:25%;" /&gt;So.  Arrrr!  Hello me swarthy crew, and welcome to the rant.  Before we get fully under sail, I need to pause at the edge of the harbor and ask all hands a question:&lt;br /&gt;&lt;br /&gt;Do any of you remember when software was sold in cardboard boxes on shelves?  Or maybe as chonky plastic cartridges that you needed to plug in?  There must be some of you.  How about in the early days of the Web, when it was sold through countless random web portals, owned by giant companies or individual people, and you needed to carefully vet each of them, or just blindly trust that the thing you installed did what they claimed with no weird side effects?  Ahh, those were the days.  A true pirate's dream.  Arr.&lt;br /&gt;&lt;br /&gt;Recall those memories, if you have them, and as this rant drifts out of the harbor and we start to catch the wind, I want you to ponder this:  The very idea of an "app store," as we understand it now, was basically created by Apple in 2008 and grew as they went along.&lt;br /&gt;&lt;br /&gt;15+ years later, it provides quite a few things, probably more than most of us expect:  It does the hosting and the payment processing and the delivery and the installation, it vets for security holes and trojans, imposes disclosure practices and security standards, pushes back against data mining and piracy and fakes, and of course provides the platform and the APIs, along with patches and documentation.  Most of that is only possible because of the very close integration of hardware and software and services that the company performs, as is their obsessive custom.&lt;br /&gt;&lt;br /&gt;From the start, Apple tried to trademark the name "app store", claiming that the thing they offered was unique and deserved unique protection, but that was eventually shot down in court.  The concept rapidly spread and generalized, and now there are many instances of "app stores" for many platforms.  For example, Nintendo and Sony and Microsoft make game consoles, and each provides exactly one way to distribute content, under the complete control of the company making the hardware, and each with a different mixture of restrictions and support.  They are all "app stores."&lt;br /&gt;&lt;br /&gt;With those platforms, you play their way, or you don't play at all.  Developers grumble about it, but in the end they run the numbers and decide whether to accept the entire package based on whether there's profit to be made.  They could try to make a case that the "marketplace" within a Playstation is an independent thing from the Playstation, and therefore something that should be wrested from the control of Sony, but that case just doesn't get any traction.  And that is a direct consequence of the fact that these are all gaming platforms:  No one takes gaming platforms seriously.  They are toys.&lt;br /&gt;&lt;br /&gt;Apple, meanwhile, makes a smartphone, and applies the same rule:  It's their way or the highway.  If you want to make the iPhone do a new trick, it needs to be vetted by Apple, for which they take a cut.  But the thing is, with a smartphone, the stakes are higher.  Smartphones are not toys.  There are reasons for strictly vetting and controlling the software that goes onto phones, beyond the scope of game consoles, or even home computers.&lt;br /&gt;&lt;br /&gt;People use their smartphone to do banking, to make payments out in the world, to have countless extremely private conversations, to store passwords, to unlock their car, to find each other on a map, to get into their house, to document and discuss their family lives, et cetera. You don't do that on a Playstation or a Switch.&lt;br /&gt;&lt;br /&gt;Also, these aren't technical people.  You could do this all on a laptop but you're likely to have at least a reasonable amount of technical knowledge.  You are expected to know how to use a firewall, and how to decide when someone is subjecting you to a phishing attack or trying to clickbait you into installing a trojan, and you're very parsimonious with giving out your password when you install new software or copy files or even plug something in.&lt;br /&gt;&lt;br /&gt;And if you're not, well, that's your problem.  At least, that's the public perception.  It's a technical device and you should know better!&lt;br /&gt;&lt;br /&gt;People who use smartphones are generally not like that.  We all have enough trouble keeping up with what the device CAN do, and we barely have time left for understanding the HOW, and the dangers that come with it.  I consider myself very technical indeed, having spent a lifetime learning constantly about hardware and software, and there are large realms of functionality inside the smartphone that I simply do not understand on a technical level.  For example, just about everything having to do with antennas.&lt;br /&gt;&lt;br /&gt;We computer expert types may prefer an unrestricted machine with a high hackability factor, but on the other hand, even we are not unlocking our car doors with our laptops, or whipping out our laptops out to pay for snacks at a corner store, or showing law enforcement our laptops when they pull us over and ask for ID.  We do all that with a smartphone and accept the risks, but doing the same thing with a laptop would make us all nervous.  We'd be watching the process tree and the logs, every time, just in case.  We are not immune from the double standard, or from the higher stakes.&lt;br /&gt;&lt;br /&gt;People trust the smartphone to mediate and preserve their social, financial, private, and even political lives, and Apple has led the charge directly into this state of affairs over the last decade-plus, by aggressively building privacy and security protections into their platform, including at the "app store" level.  If there was no Apple in this space, those privacy protections would be swiss cheese, because they would be implemented to Google's standard, which means you accept being aggressively data-mined at every turn, generally without your knowledge, and you accept the use of a hardware platform that supports this for other parties, and gives lip service to all forms of security that could interfere with data-mining. ... Or they would be implemented to Microsoft's standard, where the software does its best but the hardware is a labyrinth of broken firmware and drivers and you could find your device backdoored and bricked simply by drifting past a random payment sensor at a gas station.&lt;br /&gt;&lt;br /&gt;I exaggerate, but only a bit.  Do you remember what smartphones were like before the iPhone?  Do you know what Google does with the information you give it, even on-device in terms of end-to-end encrypted messaging?&lt;br /&gt;&lt;br /&gt;So now we come to the "alternate app store" thing.  We've heard from a gang of large software companies that being "forced" to adhere to Apple's app store rules is crime against humanity.  That jumping through all those regulatory hoops was an affront to justice.  Really, it's an affront to them taking a larger cut of the money to be made selling software to iPhone owners through iPhones, and nothing more.  That became clear when Apple released updated software and guidelines that made alternate app stores available, but also imposed pricing rules for those stores that ensured Apple would get a comparable cut of the profits, and the same gang of companies screamed to the heavens that nothing of substance had changed.  The money is the only thing that matters to them.&lt;br /&gt;&lt;br /&gt;And you know what?  Screw them.&lt;br /&gt;&lt;br /&gt;I think the idea that software makers are getting swindled by app store regulations is absurd.&lt;br /&gt;&lt;br /&gt;And for that I give you exhibit A: Apple sells you a device, for which you pay one price.  You pay that money once, and then you use Apple's software services perpetually, for no additional money, for the entire lifetime of that device, including a run of OS updates to add new features and patch holes.  You can also buy a used iPhone for a hundred bucks and use their services just the same, and in that case Apple gets &lt;i&gt;none&lt;/i&gt; of your money.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/dragon_wars-hydra.gif" style="float:right;padding:0 0 0 15px;max-width:25%;" /&gt;Meanwhile, software developers are charging you &lt;i&gt;a monthly fee&lt;/i&gt; just to have their software &lt;i&gt;installed&lt;/i&gt; on that device.  Regardless of whether you even use it.  And they are getting away with this.  You can call that "what the market will bear", yes.  Go ahead.  But I call that a bloated piece-of-garbage market that is already too cozy for software makers.&lt;br /&gt;&lt;br /&gt;Are consumers really clamoring for an "alternate" app store?  Or is it just developers?  If it's consumers, then the ideal solution is to give us an "alternative" app store that has a gray market, and re-packages ripped off and cracked applications.  I mean, it will save us the most money.  It will absolutely hobble small-time software developers - sending them back to the dark ages of web distribution in the 1990's - but from a consumer point of view, there's no downside to installing the Cydia App Store 2.0 and then installing DuoLingo [Cracked By Mr Krak-Man of Black Bag].  That's exactly what people did when you could jailbreak an iPhone, and Apple turned a blind eye to it until hackers started doing things like messing with telecom firmware and overwhelming the cloud service components of legit software.  And hey, if this fancy cracked DuoLingo exploits some security hole to wake your phone up at 2:00am and tell your banking app to do a wire-transfer of your entire savings account to some military base in Iran, well, too bad.  You stepped out of the walled garden and right into the fire.  That's the "alternative" part of a truly alternative app store.&lt;br /&gt;&lt;br /&gt;It seems to be just developers making this noise though.  Basically, they want to be free to deceive and exploit customers for their money without the meddling of a damned platform provider.  And that's generally what they got, except the monetary strings are still attached.  It's only a matter of time before Facebook re-architects their own app so that it is actually an app store.  Everyone who wants to be on Facebook will just authenticate it without thinking ... and from that point on, unless Apple attached some monetary strings, they would not only be cut out of the revenue stream for Facebook, but potentially the revenue stream for every other non-Apple app you use, as Facebook recruits them into their store with the promise of no developer fees as long as they sign an exclusivity agreement and give Facebook dispensation to data-mine their users.  And it's the Flash Plugin scenario all over again:  Apple loses control over their own ecosystem.  They provide the R&amp;D, the hardware, the support, the APIs, and...  Whoops, Facebook is suddenly calling the shots about what can and can't be installed there, and turning their privacy protections into hash.  Meanwhile, Epic Games is busily doing the same thing.  And so on.  And that's where the whole point about risk comes in.  This is not just a gaming rig like the Playstation we're talking about here.  This is the core of people's digital lives.&lt;br /&gt;&lt;br /&gt;Take another look at the fee structure Apple released for "alternative app stores."  If you do the math on the userbase of Facebook under the new regulations (as someone eventually did), and it comes up to 11 million dollars a month, well, that's a large amount, but ... &lt;i&gt;is that actually a problem?&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;So now we have alternate app stores, and now the argument over money picks up right where it left off.  As that happens, we need to be careful what we wish for.  As far as I can tell, Apple is the only giant tech company that gives a tin shit about consumer privacy.  And yeah, it's made of tin, but all the other giant tech companies are &lt;i&gt;consumer privacy hostile.&lt;/i&gt;  With the qualified exception of Microsoft.  If you're crusading on the side of Epic Games and Facebook you may not be keeping the right ....... company.  Pun intended.&lt;br /&gt;&lt;br /&gt;Hyarrrr!!!  And that be me rant.  Opinions subject to change with impassioned argument.  Or perhaps just loot.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=330026" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:328072</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/328072.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=328072"/>
    <title>The world of The Hobbit, in the world of the Apple II</title>
    <published>2024-01-10T02:59:59Z</published>
    <updated>2024-10-04T03:06:45Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;I never played this game as a kid.  It sailed right past my ragtag software pirate crew in the 80's.  Thanks to fancy emulator technology I can play it now.  That's cool, but so what?  One word:  Deranged.&lt;/p&gt;&lt;div style="text-align: center; display: flex; margin: 0; padding: 0.6em 0 0.5em 0; flex-flow: row; justify-content: center; align-items: baseline; align-content: center; gap: 0;"&gt;&lt;video style="width: 95%;" src="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-bag_end.mp4" poster="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-bag_end.jpg" type="video/mp4" autoplay="true" loop="true" muted="true" playsinline="true"&gt;&lt;/video&gt;&lt;/div&gt;&lt;p&gt;This version of The Hobbit is full of deranged characters and nonsense, like one of my favorite childhood books, "Alice In Wonderland."  Many adventure games from the 80's were this way, mostly because the computing limitations of the time forced games to exist with one foot in the world of crude Turing machines and robotic behavior, and the other foot in the literary world -- since text is much cheaper to work with than graphics or sound.  And when you use text to convey what's going on, you have a lot of creative freedom, including the freedom to massively overreach.&lt;/p&gt;&lt;p&gt;And that is what this game does.  I played through it last night and it was another trip through the looking glass, into a world where nature, human behavior, and even basic laws of physics have been twisted into taffy.&lt;/p&gt;&lt;p&gt;The rest of this text is adapted from a &lt;a href="https://gamefaqs.gamespot.com/appleii/950440-the-hobbit/faqs/65857"&gt;strategy guide&lt;/a&gt; for The Hobbit by Jared Davis, since it provided a great framework to describe the insanity I found:&lt;/p&gt;&lt;div style="text-align: center; display: flex; margin: 0; padding: 0.6em 0 0.5em 0; flex-flow: row; justify-content: center; align-items: baseline; align-content: center; gap: 0;"&gt;&lt;video style="width: 95%;" src="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-landscape.mp4" poster="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-landscape.jpg" type="video/mp4" autoplay="true" loop="true" muted="true" playsinline="true"&gt;&lt;/video&gt;&lt;/div&gt;&lt;p&gt;The Hobbit is a text adventure, so you interact with it by typing things like "ATTACK GOBLIN" and "EAT FOOD".  The graphics are a sweet bonus but they're quite static.  You can type "OPEN DOOR" and the game will tell you "THE DOOR OPENS", but the door in the picture will not move.  Oh well, it's 1982, so we'll take whatever we can get.&lt;/p&gt;&lt;p&gt;Unlike other text games from this era, The Hobbit has a real-time element.  So if you don't type anything for a while, the console will tell you "TIME PASSES" and things will happen anyway.  Adding to the instability, your companions in the game can wander around on their own, and if you stand in one place they will often get impatient and leave.  Two of these NPCs (non-playable characters) are ostensibly on your side:  Thorin the dwarf, and Gandalf the Wizard.&lt;/p&gt;&lt;p&gt;The NPCs may fight and do other functions for you.  You may ask them to do something and they might comply, remain silent, or even say "No" when you're about to be killed.  They are inscrutable.  In one game I played, Gandalf had an odd habit of picking up dead bodies and carrying them around.&lt;/p&gt;&lt;p&gt;Right at the start, Gandalf hands you a map, which you need to take to Elrond.  Along the way Gandalf may snatch it back from you without warning, then wander off and drop it somewhere.  This can be quite vexing since you need it to reach the Misty Mountains.&lt;/p&gt;&lt;p&gt;Did you notice that chest in the picture of Bilbo's home?  That's where you put the treasure you steal from Smaug, and doing so ends the game.  You can open the chest, close it, and get inside it as well, with or without Thorin.  Getting inside it and closing it isn't recommended though, since you'll be trapped for eternity.&lt;/p&gt;&lt;div style="text-align: center; display: flex; margin: 0; padding: 0.6em 0 0.5em 0; flex-flow: row; justify-content: center; align-items: baseline; align-content: center; gap: 0;"&gt;&lt;video style="width: 95%;" src="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-mirkwood_entrance.mp4" poster="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-mirkwood_entrance.jpg" type="video/mp4" autoplay="true" loop="true" muted="true" playsinline="true"&gt;&lt;/video&gt;&lt;/div&gt;&lt;p&gt;A creature called a Warg roams the game, and can show up virtually anywhere.  It may also be killed before you encounter it, possibly by Elrond, a troll, Gandalf, or a Goblin.  It is also possible that it will kill someone you'll need on your quest, so hope you find it before it finds them.&lt;/p&gt;&lt;p&gt;There is also a Wood Elf in the game, who usually hangs out in Mirkwood, though he can wander from his post.  If he finds you he will likely throw you into the Elf King's dungeon.  Depending on where you both are, this can actually be a shortcut.&lt;/p&gt;&lt;p&gt;When you're not around, the Warg can sometimes bump into the Wood Elf.  They may fight, or the Wood Elf may throw the Warg into the dungeon.  In that case, if you get thrown into the dungeon, the Warg may attack you there, or you may arrive in the dungeon to find a dead prison guard (and no Warg.)&lt;/p&gt;&lt;div style="text-align: center; display: flex; margin: 0; padding: 0.6em 0 0.5em 0; flex-flow: row; justify-content: center; align-items: baseline; align-content: center; gap: 0;"&gt;&lt;video style="width: 95%;" src="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-cave.mp4" poster="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-cave.jpg" type="video/mp4" autoplay="true" loop="true" muted="true" playsinline="true"&gt;&lt;/video&gt;&lt;/div&gt;&lt;p&gt;In the Misty Mountains there are many goblins.  They may fight you, but will more likely throw you in their dungeon.  You can escape from the dungeon by climbing out a high window, but being a hobbit, you're not tall enough to do it yourself.  You must wait for Thorin to get thrown into the dungeon alongside you, then "SAY TO THORIN 'CARRY ME, OPEN WINDOW, GO WEST'".  If Thorin is feeling cooperative, he will then pick you up and haul you out the window with him.&lt;/p&gt;&lt;p&gt;There is also another way to escape:  In some games, the goblins wander away from the Misty Mountains and will capture the Wood Elf.  Then if they capture you, you will get thrown into the goblins' dungeon, and a few moments later the Wood Elf will throw you into the Elf King's dungeon.  Problem solved!&lt;/p&gt;&lt;div style="text-align: center; display: flex; margin: 0; padding: 0.6em 0 0.5em 0; flex-flow: row; justify-content: center; align-items: baseline; align-content: center; gap: 0;"&gt;&lt;video style="width: 95%;" src="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-lodge.mp4" poster="http://garote.bdmonkeys.net/livejournal/2024-01-Hobbit/The_Hobbit-room-lodge.jpg" type="video/mp4" autoplay="true" loop="true" muted="true" playsinline="true"&gt;&lt;/video&gt;&lt;/div&gt;&lt;p&gt;When you get to Lake-town, you need to recruit Bard to kill Smaug the Dragon.  He might follow you, but if he doesn't you can pick him up and carry him.  He has one arrow, but in order to fire it he must remove it from his quiver first, which he may not do.  It's best to take the quiver from him as soon as you meet, then hand him back the arrow.  Once you encounter Smaug you will actually have to tell Bard to shoot him, or he will just stand there and get roasted, turning into "DEAD BARD."&lt;/p&gt;&lt;p&gt;If Bard isn't around, you still have a chance to win the game.  You can try to fight Smaug yourself, using your sword, the bow and arrow, or any other object in the game, for example you can wield "ROPE" or "DEAD GOLLUM" and then "VICIOUSLY ATTACK SMAUG," which has a success rate far, far higher than you'd expect.&lt;/p&gt;&lt;p&gt;If you don't want to get your hands dirty, you can also ask someone else to fight Smaug.  For example, you can stand just outside the cave where the dragon waits, then "SAY TO GANDALF 'GO NORTH, KILL DRAGON, GO SOUTH'."  If Gandalf doesn't come back, the dragon killed him.  If he comes back, it's possible he tried to kill the dragon but failed.  So "SAY TO GANDALF 'GO NORTH, KILL DRAGON, GO SOUTH'" again.  This time, if he comes back, the dragon is dead.  No one goes two rounds with Smaug without someone getting killed.  If he doesn't come back, either he's stuck in the cave looking confused since there's no dragon to fight, or he's charcoal.  Still, the odds are better than fighting Smaug yourself, right?  And at this point, since you're already at the Misty Mountains, Gandalf is quite expendable.  Heh heh heh...&lt;/p&gt;&lt;p&gt;Not a very hobbity way of thinking?  Well that's quite appropriate in a world made of deranged nonsense.&lt;/p&gt;&lt;p&gt;You know, less than a year from now we're going to see the first adventure games with NPCs built on "large language model" technology.  And just like any other time when artists are working on a fronteir with new material, there will be glorious overreach.  The lunacy you'll find in games from 2024 will look just like this game from 1982.&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=328072" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:325824</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/325824.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=325824"/>
    <title>Relaxin' on a Saturday: SCI-FI novel tropes gallery</title>
    <published>2023-10-15T01:57:29Z</published>
    <updated>2023-10-15T06:07:30Z</updated>
    <category term="computing"/>
    <category term="books"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">I find it quite amusingly appropriate that I generated all of these using massive help from a generative art tool.  In this case, Microsoft DALL-E.&lt;br /&gt;&lt;br /&gt;I now present to you, the gallery of trashy 1980's sci-fi novel tropes:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/planet.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/cyber.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/nano.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/aliens.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/robots.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/plague.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/dystopia.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/time.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/other_planet.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/psychic.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/portal.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/physics.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/this_that.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/other_other_planet.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And of course, who could forget the thankfully out-of-style:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/ladies.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If you're a 1980's "space lad" you get somewhat more practical clothing:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/scifi_tropes/lads.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=325824" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:325386</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/325386.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=325386"/>
    <title>New lappy stickers</title>
    <published>2023-10-14T21:45:05Z</published>
    <updated>2024-04-08T20:20:05Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>3</dw:reply-count>
    <content type="html">Folks who know me can probably guess why I had to brew up each of these images and turn them into laptop stickers.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/stickers/alice.png" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/stickers/disks.png" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/stickers/golden.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/stickers/journey.png" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/stickers/princess.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/stickers/shield.png" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/stickers/truth.png" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/stickers/stop_when_im_dead.jpg" hspace="10px" style="max-width:50%;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;That last one is six AI-generated images from Microsoft's DALL-E 3 composited together, with the primary prompt being "A crude monochrome woodcut of death wearing a helmet and riding a loaded touring bicycle past a medieval town by the seashore."&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=325386" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:325312</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/325312.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=325312"/>
    <title>Bits and bytes and stickers</title>
    <published>2023-10-06T08:09:23Z</published>
    <updated>2024-04-17T07:47:55Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>12</dw:reply-count>
    <content type="html">&lt;a data-flickr-embed="true" href="https://www.flickr.com/photos/57897385@N07/6943528466/in/album-72157670059551993/" title="IMG_2880"&gt;&lt;img src="https://live.staticflickr.com/7204/6943528466_3ac0ca96e5_m.jpg" width="223" height="76" alt="IMG_2880" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I make my weird cerebral living on a laptop, often hooked to a large monitor.  I used to have a dedicated machine for the large monitor, but about five years ago I got fed up with dragging my digital life between two places and consolidated.&lt;br /&gt;&lt;br /&gt;I could only make that move because I found a way to keep playing spiffy high-power games on the laptop:  I bought an eGPU, and stuck that between the large monitor and the lappy.  Now I could use the eGPU to render a zillion triangles a second in the universe of Skyrim, and then disconnect from it and ride out to a cafe, and sip expensive coffee as I compute around my fellow monks.  The best of both worlds.&lt;br /&gt;&lt;br /&gt;&lt;a data-flickr-embed="true" href="https://www.flickr.com/photos/57897385@N07/51561560948/in/album-72157719880821017/" title="2021-09-16-155214-IMG_E9820"&gt;&lt;img src="https://live.staticflickr.com/65535/51561560948_0961cc757c.jpg" width="500" height="475" alt="2021-09-16-155214-IMG_E9820" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apple moved away from the Intel chip quite a while ago, and the eGPU needs an Intel chip to operate.  So I was stuck with the same laptop for five years.  That's five years of very hard use.  That lappy has been hauled in a bicycle bag around nine countries, and it's been a workhorse at home.  During the COVID summer of 2020, I hauled it to the park by the &lt;a href="https://en.wikipedia.org/wiki/Sather_Tower"&gt;Campanile&lt;/a&gt; with two giant batteries and ran the thing full blast all day, draining both batteries and the internal one in about six hours, for five days each week.&lt;br /&gt;&lt;br /&gt;&lt;a data-flickr-embed="true" href="https://www.flickr.com/photos/57897385@N07/51217115101/in/album-72157719305122748/" title="2021-04-13-180039-IMG_7251"&gt;&lt;img src="https://live.staticflickr.com/65535/51217115101_1fc723d52e_z.jpg" width="640" height="480" alt="2021-04-13-180039-IMG_7251" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now the thing heats up in an instant, and throttles way down and stays there.  Detaching from the eGPU means shutting the machine entirely down, or it will crash as soon as I close the lid.  Last month I left it on the desk compiling code and when I returned five minutes later it was frozen with the screen off, requiring a hard reset.  After a dozen more episodes just like that, I was finally convinced to upgrade.&lt;br /&gt;&lt;br /&gt;But that means throwing away the eGPU.  You just can't use an eGPU with an Apple chip.  It's architecturally impossible.  You can't even run an ARM version of Windows 11 in a virtualized environment and plug the eGPU into that.  If you move to one of their new laptops, your tin can full of space-age 3D pixie dust shuts down and transforms into a little trophy, rewarding you for participating in the march of obsolescence.  It does still generate waste heat though, so your cat will enjoy lounging on it.&lt;br /&gt;&lt;br /&gt;So I spent a ridiculous amount of money, and bought a 14-inch M2 laptop with 12 cores and a hilarious amount of memory.  It weighs slightly more than the old one, which annoys me a great deal.  But I'm rolling with it because none of Apple's lighter machines can deal with sustained workloads.&lt;br /&gt;&lt;br /&gt;&lt;a data-flickr-embed="true" href="https://www.flickr.com/photos/57897385@N07/53236768672/in/album-72157670059551993/" title="2023-10-05-IMG_0369-new_lappy"&gt;&lt;img src="https://live.staticflickr.com/65535/53236768672_eca0f02027_z.jpg" width="480" height="640" alt="2023-10-05-IMG_0369-new_lappy" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just today I began the process of migrating the stickers over, because after four days of testing I was finally convinced that I could do what I needed with this new machine.&lt;br /&gt;&lt;br /&gt;&lt;a data-flickr-embed="true" href="https://www.flickr.com/photos/57897385@N07/53237931483/in/album-72157670059551993/" title="2023-10-05-IMG_0370-new_lappy_2"&gt;&lt;img src="https://live.staticflickr.com/65535/53237931483_05fb0985be_z.jpg" width="463" height="640" alt="2023-10-05-IMG_0370-new_lappy_2" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Two things about it impress me way beyond what I was expecting:&lt;br /&gt;&lt;br /&gt;The battery lasts a long, long time.  I'm used to my old lappy going critical in about two hours.  This machine uses tiny amounts of power.  I have no idea how long it really takes to drain the battery because I haven't gotten it down by even half, after working with it all day.&lt;br /&gt;&lt;br /&gt;And dang, the speed increase is just shocking.  I opened one of my old projects in VSCode the other day - five hundred interconnected F# files - and instead of churning full-blast in Ionide for two minutes to resolve all the symbols in the editor like the old machine did, it fired up all 12 cores in one huge burst and the symbols resolved in ten seconds, and then it dropped back to low power.  The case registered a tiny increase in heat, which went away without the fans even turning on.  Things have changed in five years...&lt;br /&gt;&lt;br /&gt;There's more real estate for stickers on this machine, and some of the old ones feel played out.  Time to go hunting again!&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=325312" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:325111</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/325111.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=325111"/>
    <title>Three years.  That's about how long it will take.</title>
    <published>2023-09-29T07:19:56Z</published>
    <updated>2023-09-29T07:26:58Z</updated>
    <category term="politics"/>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>5</dw:reply-count>
    <content type="html">Three years.  That's how long we have.  AI chatbot style dialogue with integrated systems will appear on smartphones in 3 years or less.  What that means is, you'll be able to take a photo of yourself and say, "Add a bear to the scene.  Make it look like it's about to attack me.  No, move it to my other side.  Make the bear smaller."&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/viewp_gear.gif" align="right" hspace="10px" style="max-width:33%;" /&gt;Chatbot-derived AI will be let loose on internal codebases at tech companies and coders will leverage it by asking it to auto-complete chunks of API, search for bugs, or pose questions like 'is there a way to optimize this?' and 'What changes do I need to make to this to make it run with the new OS?'&lt;br /&gt;&lt;br /&gt;And then, wind forward ten years for the computing power and capacity to catch up, until...  "Show me this scene again except have the part of Fred be played the way Christopher Walken would play it."&lt;br /&gt;&lt;br /&gt;And then ... "Here are 50 episodes of Scooby Doo.  Make me fifty more, except insert a character arc where Velma and Daphne become radicalized by Boko Haram and eventually 'solve' all the mysteries through the application of torture and austere religious deprivation."&lt;br /&gt;&lt;br /&gt;Presto, fifty hours of new content, tailored to keep stoners and children amused, but with an evil twist.  And the question comes up forever and ever:  "Who owns this?  Do we owe the original cast anything?  The original animators?  The composer that wrote all the musical cues we're remixing?"&lt;br /&gt;&lt;br /&gt;"Does Frank Welker have a right to royalties on performances that reconstruct his own personal voicing of Fred?  Or is this all owned by Viacom and two fingers to everyone else?  Or is this all owned by Oleg Heyoushenkovich, Russian billionaire, generating propaganda-laced remixes of cartoons and handing them out for free, backed by and protected by the Russian state?"&lt;br /&gt;&lt;br /&gt;So that's round one of what this will look like.  Round two is, instances of this will become interconnected to enforce rights management.&lt;br /&gt;&lt;br /&gt;And copyright will be legally extended by tech and media giants to INCLUDE derivative works in a way that attempts to effectively colonize the very imaginations of all currently living people, to extract money from them for re-inventing something similar to a thing that a long-dead person did once, which the company has now absorbed and licensed and laid permanent, eternal claim to.  Like Disney stretching copyright law into taffy for the sake of a dancing mouse, except covering the way a thing seems or feels, and enforced by the device running on your face.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/space_quest_2-kaboom.png" align="right" hspace="10px" style="max-width:33%;" /&gt;So for now, we have about three years before it all starts going to hell.&lt;br /&gt;&lt;br /&gt;By then, any time we call a business of any size on the phone, we will EXPECT to be talking to a robot, at least for the first minute or so of the call.&lt;br /&gt;&lt;br /&gt;The expectation that a real human will be on the end of the line will drop so low that people will start experiencing "robot rage", where they're on the receiving end of people who are extremely rude and nasty because those people think they're talking to a robot.&lt;br /&gt;&lt;br /&gt;As an employee, you'll pick up the phone, and one out of every ten calls, someone will say "F%&amp;$* GET ME A ROAST F!%%# LATTE NOW, WITH SPRINKLES, AND I'M PICKING IT UP IN TEN MINUTES YOU $%*(#@ %*(ING @#$%, SO IT BETTER BE &amp;$#% READY."&lt;br /&gt;&lt;br /&gt;In less than three years, you'll get used to seeing AI-generated artwork in advertising, of all kinds, at all levels.  It will get progressively worse even though the software will be improving, because the artists have all been fired or quit, and so there's nobody left to do clean-up artwork.&lt;br /&gt;&lt;br /&gt;Similar effects on "copypasta" copywriting that is already really low-grade, and already accounts for a lot of the drivelposts intended to resell other people's content, slathered with advertising on social media networks.&lt;br /&gt;&lt;br /&gt;In time, the software will get better at carrying on dialogue, and will incorporate pre-existing research in physical emoting, developed by roboticists.  You will slowly get used to an online world that is populated by a significant percentage of artificial people.  And in a little more time, you will stop caring whether the entities you spend time with there are human.  In fact, you will find things generally go easier if there is at least one artificial person involved in most of your conversations.  Eventually your private conversations will be colonized this way as well.&lt;br /&gt;&lt;br /&gt;Then after a bunch of digging around in old Asimov novels, grad theses written about World Of Warcraft and Second Life, and a churning period of what Facebook's Zuckerberg quaintly calls "PR fires" for the providers of these worlds, standards will emerge.&lt;br /&gt;&lt;br /&gt;Like Frank Herbert's characters disavowing all technology that aims to supplant human dominance, we will hammer out ground rules for the representation of artificial people in a mixed environment.&lt;br /&gt;&lt;br /&gt;It's hard to say what these rules will look like, but I suspect at least one of them will be, "All representations of people that provide any kind of interaction will be visually and audibly LABELED as artificial."  And probably some knock-on rules about behavior, e.g., "no lifelike simulation of a human will provide interaction designed to cause psychological harm, outside of a clearly delineated entertainment setting, and without proper effort to ensure the subject of the interaction is an adult."&lt;br /&gt;&lt;br /&gt;With rules like this in place, the corporate world will be given the declaration of "safe", enough to do things like create solid-state VR instructors that provide one-on-one teaching to children, with a degree of sensitivity and adaptability derived and refined from thousands of the finest teachers in the world.&lt;br /&gt;&lt;br /&gt;I mean, getting a kid to understand algebra is hard.  Why pay a human to do it?  Just put on the dang goggles and let R. Daneel Olivaw guide them effortlessly, without ever getting angry or tired.&lt;br /&gt;&lt;br /&gt;And all you gotta do is make them watch a few ads afterwards.  (Don't try and take the goggles off beforehand.  It tracks your kid's eyes.  It KNOWS when they're looking, and when they're not.)&lt;br /&gt;&lt;br /&gt;Take the ads.  Right in the face.  Smile like you want them.  Freaking smile.  Wider.  Now dance the special dance that's part of the theme song.  Do it so everyone around you can see.  And so it becomes muscle memory, literally, and you think of the product whenever you move from now on.  LIKE YOU LIKE IT, you CONSUMER.  The goggles CAN TELL when you like it, better than you can.  You gave the goggles the right to assemble this information about you and share it with any company that has money to pay.  You gave them that right when you put them on, which is a physical action that has been interpreted by a court of law to be equivalent to "consent" to a 130-page document that's available in a locked filing cabinet in a disused lavatory back at the company HQ if you're curious enough to barge in there and read it.  (But beware the leopard.)&lt;br /&gt;&lt;br /&gt;I reckon it'll start with teachers.  Instructors.  Like videos telling you how to change a bike tire, but guided by interactive AI.  Then "real" teachers will start assigning interaction with Microsoft-driven AIs as homework.  Not for any endorsement deal or kickback, but just because it'll make their teaching life easier, because they're overworked already and paid in circus peanuts.&lt;br /&gt;&lt;br /&gt;(Fun fact:  A limited version of this is happening already.  College students are feeding homework from their professors into ChatGPT and asking it to explain the assignment to them, using language easier to understand than what their professors used.  No one considers this cheating, and why would they?  It's just a tool for a job.)&lt;br /&gt;&lt;br /&gt;Soon the AI will be the one administering the tests.  Because seriously, how in the world would you be able to afford a personal tutor for every subject, who's gonna watch your kid write out every digit of a math problem with digital eyes, and gently guide their hand?  The tech is a godsend to struggling parents from the third-world on up.&lt;br /&gt;&lt;br /&gt;And up, to the highest echelons of the upper class, who will take thousand-dollar-an-hour "exclusive" guided instruction from AIs designed to teach them the finer graces of liberal arts.&lt;br /&gt;&lt;br /&gt;And alongside this...  We will have the military applications.&lt;br /&gt;&lt;br /&gt;Yeah there's the psychological warfare and the propaganda and all that ... That's already here, in cruder form.  Whole message boards spun up out of nothing with convincing "dialogue" between "debaters", swaying the lurker towards some opinion.  Been there done that.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ultima-have_some_tea.png" align="right" hspace="10px" style="max-width:33%;" /&gt;Where this really gets interesting is the simulation of interacting crowds.  Groups of people.  Predicting what an individual will do is hard.  There's a lot of detail to process.  A lot of random factors interfering.  Predicting what a group of people will do, when you can observe them all at once - even for a short while - and apply what you see to a model...  That might be easier.&lt;br /&gt;&lt;br /&gt;That might be easy enough to sabotage markets, derail political campaigns, spin up paranoia over innocuous events, and so on, all handily below the threshold of identification, because no one speaker or source pushed it over the tipping point.  It was just something you heard coming from the infotainment screen at the gas station, combined with something you saw drifting by in your social media feed, plus a comment from your personal AI assistant reading you the news before bed, and suddenly an idea occurs to you...&lt;br /&gt;&lt;br /&gt;I gotta wonder, how will any citizenry dismantle such a powerful combination of corporate interests and national interests, aside from literally smashing it?&lt;br /&gt;&lt;br /&gt;Folks like Jello Biafra and Michael Franti used to call out television as the drug of the nation, and a route towards sameness, mediocrity, and apathy.  But this ... This is software that can get out ahead of any collective revolutionary idea, and neutralize it with passionate reasoning in the other direction, or just a well-placed joke, and it will be utterly invisible, because it will be threaded into a dozen conversations we have with various AI that we've already invited into our homes, our bedrooms, our minds.  And will we care?&lt;br /&gt;&lt;br /&gt;Don't you already feel like your life would be calmer, more orderly, even more entertaining and interesting, if you could interact with a cadre of unerringly supportive, cheerful, and eager assistants for most of the day?&lt;br /&gt;&lt;br /&gt;Don't you feel like you would actually trust a robot MORE than a human, to provide psychotherapy, give feedback on your essay, show you how to change a tire, help you compose a difficult letter, make telephone calls on your behalf, tell you jokes without offending you, sing you the same song 20 times without getting annoyed, et cetera...?&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=325111" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:323303</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/323303.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=323303"/>
    <title>Up with the walls?</title>
    <published>2023-06-03T17:23:46Z</published>
    <updated>2023-06-03T17:23:46Z</updated>
    <category term="politics"/>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">When I began putting things on the Internet over 30 years ago I made a promise with myself.  I would not put anything online that was meant to be limited to specific people or a specific audience.  I approached it like this:  Either everyone in the world should see it, or no one.  When I started a blog on LiveJournal 20 years ago I made the same deal.   LiveJournal (now Dreamwidth) has a feature where you can make a post that is only readable by those on your friends list.  I have not used this feature at all, and I never will.&lt;br /&gt;&lt;br /&gt;There are a few things in the long tail of my internet presence, mostly from the 90’s when I was a teenager, that seem overly dramatic or petty to my middle aged eye.  Also a few things that seem deranged and sexist, but have value in context.  I could take them down if I wanted.  They are on personally hosted websites, and I could press the big red "off' switch any time.  And year by year I feel more convinced that I eventually will.  Especially one website in particular:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/smallpic_TSF_FarrWindward.png" align="right" hspace="10px" /&gt;20 years ago, as a joke, my friends and I formed an industrial plunderphonics band in a garage in the Lee Vining desert, and have been irregularly posting "albums" freely online.  I'm proud of them and they were great fun to make and brilliant in places, but they are also loud, profane, absurd, and mostly terrible, and I have made sure to never mention them to anyone I work with.  Of course, thanks to the insidious efficiency of Google, the band website comes up when you enter my name in their search engine.  Cat's out of the bag.  Technically all that crap is just a Google away from anyone who wants to learn about my awful creativity.  As far as I know, no one I work with has.  (Though how would I know?)&lt;br /&gt;&lt;br /&gt;And what would happen if they did?  What if they then found it offensive, and then splashed it all over social media, drawing the ire of a million anonymous trolls?&lt;br /&gt;&lt;br /&gt;Well, I guess I would have to just shrug, and take it down.  I certainly know better than to argue back.&lt;br /&gt;&lt;br /&gt;I feel like it's inevitable.  To tell you the truth, I feel like there is now an anonymous army of people connected to social media, who consider it their daily entertainment to be handed a clear-cut piece of offensive material and a source, so they can immolate the source, and it's only a matter of time before I get roasted alive.&lt;br /&gt;&lt;br /&gt;(I’ve written about this before.  &lt;a href="https://garote.dreamwidth.org/266639.html"&gt;The only way to win is not to play.&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;But my point here is, I know why this is happening.  And it is not a subversion of the internet itself, or an inevitable decline in society.  It is a direct consequence of "growth at all costs" capitalism.&lt;br /&gt;&lt;br /&gt;Let me put it bluntly:  The Internet used to be the domain of the middle class.&lt;br /&gt;&lt;br /&gt;You needed a middle-class income or university admission just to get on it.  So, whatever you put there was visible to everyone -- in the middle class.  And they were generally accepting and quietly liberal-minded.  (Some of the very first stuff to drift out across the internet was hardcore erotic fan fiction, spicy enough to obliterate careers it if was linked to its authors today.)  For years after that you at least needed to have a passing interest in your local library and a willingness to type.  Then the barrier to entry was a monthly fee on top of your phone and cable service, and enough space in your house for a cheap computer.&lt;br /&gt;&lt;br /&gt;That is all way, way over, &lt;i&gt;as it should be.&lt;/i&gt;  Today's barrier to entry is 25 bucks for a used cell phone or tablet, and proximity to a McDonald’s.  It's a wonderful thing.&lt;br /&gt;&lt;br /&gt;But it also means that the internet is now bursting with people who are extremely cost conscious.  The working-class and poor are able to get online cheaply, and now they need services that are cheap - or free - to form their online experience.  And how do you offer a service for free?  You don't.  You pick a different paying customer:  Advertisers.&lt;br /&gt;&lt;br /&gt;So you form a company around some service designed to extract attention and labor from the working-class and the poor, then sell it to advertisers.  The more people you attract, the more money you make.  Competition goes up, margins go down, and social media companies must grow or they get eaten.  And the quietly liberal and egalitarian middle class is thoroughly buried and scattered amongst a horde of people connected to the internet who are being exploited:  They get communication tools and entertainment "for free", and as part of the bargain they are drip-fed a constant, addictive stream of paranoia, shame, and rage.  And rage needs targets.&lt;br /&gt;&lt;br /&gt;Social media companies are not the internet, but they have a presence on it like a kaiju stomping through a city, and woe unto you if you're in the way.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/space_quest_2-kaboom.png" align="right" hspace="10px" style="max-width:25%;" /&gt;So today, if I put anything online without a filter, I am now cannon fodder for the entities that feed and manipulate that horde of newcomers.  When I put something online, it potentially reaches everyone, but most likely, it remains totally buried in the flood of other stuff until an algorithm plucks it out of the current and decides to show it to thousands, then millions, of people I have no interest in reaching.  And they will feel upset, offended, and vengeful, because that's what algorithm is designed to evoke.  Conflict sells ads.  And, there's no better distraction to cover your skullduggery than dropping a turd in the public pool.&lt;br /&gt;&lt;br /&gt;If explosive growth wasn't a necessity, we would not be here.  Ladies and gentlemen, this is what people mean when they use the term "late-stage capitalism."&lt;br /&gt;&lt;br /&gt;So what are we all going to do?  Same thing we do every time, Pinky.  Try to put up some walls to keep the algorithms out.  The days of erecting a webpage visible to the whole world are rapidly ending.  Why would you do that?  It's just free material for algorithms to use against you.  Up with the filter barriers, up with the credentials and the tests.&lt;br /&gt;&lt;br /&gt;And there's no shame in it ... only regret.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=323303" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-01-03:2711609:321608</id>
    <link rel="alternate" type="text/html" href="https://garote.dreamwidth.org/321608.html"/>
    <link rel="self" type="text/xml" href="https://garote.dreamwidth.org/data/atom/?itemid=321608"/>
    <title>Midjourney journey 3</title>
    <published>2023-03-26T02:48:25Z</published>
    <updated>2023-10-15T06:15:24Z</updated>
    <category term="computing"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">The tools of generative art are already in the hands of people who would use them to process large amount of copyrighted work without compensating the artists.  I ended &lt;a href="https://garote.dreamwidth.org/321220.html"&gt;the first Midjourney post&lt;/a&gt; with an analogy, comparing them to software pirates and hackers.  Time to dig a little more into that.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/Portrait-2.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;Your standard hacker.  Breakpoint generated this by taking a grainy copy of my Slack profile drawing and feeding it into Midjourney with a bunch of "8-bit" keywords.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Software piracy is all about distribution channels.  Digital goods can be reproduced infinitely at will, and the only way to exert control over that is by locking down the distribution channel -- something pirates hate.  There has always been a tension between corporations who insist on a moral right to charge whatever they want for software and distribute it with very limited "use rights", and pirates who want to see software get into the hands of everyone, no matter how poor.&lt;br /&gt;&lt;br /&gt;(If your heart is too hardened to this whole Robin Hood scenario and you side with the corporations, you might want to consider how the same war is being fought with pharmaceutical companies who, having invented a drug that could save millions, price it as high as they possibly can, soaking insurance companies and taxpayers and leaving thousands of poor people to die.  Is it their right?  If you're a straight-up capitalist, yes.  Is it still their right if they developed their drug using government grant money?  Is it still their right if they use the income to lobby for tax loopholes and deregulation?  Capitalism without roadblocks is a direct road to oligarchy, and software doesn't cure disease, but access to it can translate directly to power.)&lt;br /&gt;&lt;br /&gt;I'm describing all this here to put a little positive spin on a group that has shifted over the years to be seen as entirely negative.  These days, hackers and pirates are associated with scams and political unrest and destruction.  Right or wrong, the first - and only - question people ask when they consider generative art tools being used by the unwashed masses is, "How much damage are they going to do?  How afraid should I be?"&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/soviet_computer_enthusiast.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;A Soviet computer enthusiast, conjured by Breakpoint.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The assumption here is that if the tools are in the hands of a large capitalist organization, they will respond reasonably to regulation, and are therefore "safe", whereas J Random Hacker could use the tools for anything, which is inherently "unsafe".  That assumption rests on another one:  That market forces always push towards the betterment of civilization, so it's in our interest to keep the market strong -- and profits high.  Or put another way, if a company has found a way to derive profit from a process they have assembled, it is their absolute right to make that profit, regardless of the side effects of their process.&lt;br /&gt;&lt;br /&gt;In this era it's very popular for corporations to wrap themselves in banners of progressive politics, claiming to be champions for free speech, for the poor, for equal rights, for criminal justice reform -- you name it.  But the bottom line is, if you threaten their revenue stream, or threaten the image they've cultivated that makes them appealing to consumers, you will be quite casually plowed under.  If not by the deliberate action of an employee, then by the machinations of the system, acting as it was designed to, without conscious thought.  And if crushing you does not have consequences, no one will care.  Profits are being made.&lt;br /&gt;&lt;br /&gt;Let's pull these abstract ideas down to the ground:  Say a company trains up a progressive art generation tool, and feeds it indiscriminately with art.  They claim that they aren't violating anyone's rights because none of the original artwork they feed in remains after processing is done, so they are essentially "learning a style".  Then they wire it up to the internet and sell access to people who need illustrations made with a short turnaround time.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/gandalf_riding_a_corgi_into_battle.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;"Gandalf Riding a Corgi Into Battle", whipped up by Breakpoint in only a few minutes.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can imagine how a service like this would change the value of commissioned art:  It would chop the floor right out from under it, while at the same time making certain kinds of art that were previously rare because of their technical difficulty much more common.  For example, realistic-looking prototypes:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/My_Little_Pony_Hellraiser_Puzzle_Box.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;"Hellraiser Puzzle Box, My Little Pony Edition," whipped up by Breakpoint in about five minutes of iterating.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;That's a pretty good service and revenue stream for a company, especially since they don't have to hire any actual artists.  At most, they just need art critics, who know how to label things so the various styles and contents of the incoming art can be reflected in the text prompts on the other end.  As long as they can stay ahead of the CPU demands for re-training their system to keep it current, they've got a profitable business.  And it's built directly on the backs of artists, who in all likelihood will get paid jack squat for providing the essential material.&lt;br /&gt;&lt;br /&gt;You can imagine other companies joining the market, racing to the bottom in price, and pushing the edges to see what else can be reduced to an AI-learned "style".  For example, the fashion industry:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/arnold_hawking.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;Arnold Schwarzenegger crossed with Stephen Hawking, from Breakpoint's spooky lab.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The concept here is pretty fun, but check out how the AI has also crossed Hawking's suit with Arnold's bare chest, resulting in a kind of sleeveless dress-shirt and sweater-vest combo that could easily be the foundation for a costume in a film or play.  That was a happy accident.  What could you produce with a tool specifically trained to remix clothing styles, ancient and modern?  You'd still need a craftsman to produce it, but the inspiration would be much easier.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/OMR2.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;The Wienermobile Mark II.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This took a fair bit of tinkering by Breakpoint.  He did a five-way merge of images he'd assembled with other settings, generated in the depths of Midjourney.  It still amounted to about half an hour of work, though, which is less than it would take to gin something up in a paint program, and nothing compared to the time it would take to actually build a working model and see how it looks in a driveway.&lt;br /&gt;&lt;br /&gt;So if companies had their way, they would perpetually coast on top of the output of small-time artists, vacuuming up their work as soon as it's produced, and then making digital crossbreeds on the cheap for anyone with cash.  The only real conflict would be over whether one corporation can pirate the style of another.  If you wind this forward five or ten years it's easy to picture a marketplace where art production houses hungrily cannibalize each other by training their AIs with each others' output, and the one that wins is the one that can throw the most CPU cycles at the problem and consolidate the most "style."  People who come up with fully original styles will be operating in a sort of bespoke market that's subordinate to the great style vacuum AI enterprises that serve everyone else.&lt;br /&gt;&lt;br /&gt;I don't know if this is actually a better future.  A world saturated in art cranked out by machines doesn't sound like a more interesting place to live.  We already live in a world where digital preservation can make a piece of art produced one time, in one place, last an eternity.  Recorded music has been that way for decades now.  You're not going to hire a contemporary band to play you some toe-tapping tunes in your living room, but you're going to put some jazz on the stereo because it's cheap and easy.  The composer, arranger, and all the musicians who put breath and movement into the instruments, as well as the instruments, could be long dead and recycled into tin cans and fertilizer, but the music will be there, filling your ears with the style of a particular era.  Leaving aside the debate over whether this situation makes contemporary music more or less vibrant or profitable, it certainly creates a dragging effect on culture itself, giving the past a greatly magnified influence over the present.&lt;br /&gt;&lt;br /&gt;So, now that generative AI is on the scene, is a large part of the visual arts going to get permanently anchored in the styles that are available right now, during its ascendance, because independent innovation is going to stop being cost effective from here on out?&lt;br /&gt;&lt;br /&gt;I think that's the way things would go for sure, if this tool remained firmly in the hands of for-profit companies with deep pockets and shareholders to please.  But now let's involve those nefarious hackers and pirates and other creative people.&lt;br /&gt;&lt;br /&gt;If it's okay for corporations to be style vampires and plunder the art world, then it's got to be okay for individuals to do the same, and anything that a corporation would not consider profitable to produce, or would consider damaging to its brand, could still be produced by an individual.  An open-source toolset that could make endless remixes of artistic works old and new, will doubtless lead to new forms of art on the small scale that the corporate world couldn't be bothered with.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/80s_plot_twist-2.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;What the heck is going on in this scene?&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Imagine using generative art to set the scene in a table-top game.  You could feed in specific art, from your own favorite games and movies, along with photos you've taken, and throw together illustrations scene-by-scene, and draw narrative inspiration from what pops up randomly in the output.  I mean, look at the scene above.  I personally find it compelling because it's a mashup of 8-bit gaming art, noir-inspired lighting, and creepy horror themes.  To me it just begs for an imaginative backstory that I could turn into an entire adventure.&lt;br /&gt;&lt;br /&gt;But, your own tastes might vary, and you might find the same thing confusing and dull, which is entirely the point.  You might be more inspired by this weird mashup instead:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/boba_enjoying_boba_in_barbados.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;Boba enjoying a beer in barbados.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This example re-raises the specter of copyright, but not in a way that isn't already covered by existing law.  Just about everyone in the dang modern world can guess what popular character this is supposed to be, but if you're telling your own story to your friends, fair use law makes that irrelevant, whether the likeness was produced by hand with a physical brush or churned out by a computer in a few moments.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/wookie.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;A wookie wearing wicker in a western.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;"Fan fiction" has been around a very long time and this will enhance it.  No reason you can't mess with stuff trademarked by congress either, if you're not engaging in trade:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/smokey.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;The most irresponsible version of Smokey Bear.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;(As an aside, Breakpoint was constantly running up against the limitations of the Midjourney toolset.  It took several dozen outtakes to arrive at this semi-coherent version, and he was never able to get what he really wanted, which was Smokey holding a flamethrower.)&lt;br /&gt;&lt;br /&gt;So it's not for sale -- so what?  The amazing thing is, since the tool is just a download away, the value being conveyed is almost entirely in the idea, and not the execution.  The execution is so cheap it's practically irrelevant.  It's the Moog synthesizer of the visual arts:  You feed a little electricity into it, and it can reproduce the effect of almost any instrument in any environment, assuming it has been trained with samples to do so.&lt;br /&gt;&lt;br /&gt;And like an ordinary instrument in the hands of a jazz musician, a little improvisational flair goes a long way.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/SASAN_SCAKCAHK_SCIHRK_SAHHN.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;What an old computer magazine ad looks like when you're possessed by demons.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Imagine a gallery where an artist presents their works on digital frames, each generated with a custom trained AI.  At the entrance to the gallery you are asked to describe a dream you had recently, in just one sentence.  Then you're invited to walk through the gallery, and as people approach each frame, their dreams are combined in a re-generated version of the art.  The evolution of the art is recorded each day and turned into a slowly evolving video, which is then packaged into another frame that people can buy and hang in their home.  A time capsule of the dreams of the people who saw the art with you, on a certain time and day.  An interesting notion, and up until now, utterly impossible.&lt;br /&gt;&lt;br /&gt;Let's push a little further out into the realm of stuff that people might do, but corporations would be sued for:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/ufo.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;You can imagine this being liberated from some 1930's CIA archive.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The internet has a long history of being used to prank people.  Facebook alone is littered with a hundred thousand bits of Photoshopped junk, trailing long tails of "likes" between credulous n00bs, all of it fabricated.  One might think that generative tools will bring a tsunami of junk, and skeptical and rational thought will be permanently drowned, bringing about the end of free society and the destruction of free speech as people flail to purge it from the world.  A tsunami like that is definitely coming, but try winding forward a bit more, and think about where that goes.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/these_dont_exist.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;None of this exists.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;It took Breakpoint about half an hour of messing around with keywords and blended images to generate this.  It looks really, really creepy, and that was exactly what he was aiming for:  All the visual signifiers of a photo taken in some monstrous lab, from the depths of a conspiracy theorist's nightmares.  This image could easily find life on Facebook, hopping around various newsfeeds, inspiring shock and confusion as it goes.&lt;br /&gt;&lt;br /&gt;Half an hour to generate this image, and this is a tool that is still in active development, among others.  In fact as of right now, this image is obsolete because a new version of Midjourney is available that does a much better job with hands.&lt;br /&gt;&lt;br /&gt;How long will it take for everyone, or at least most people, to realize that they just can't trust any random image off the internet, and instead they really need to pay attention to what entities - corporate, private, political - are backing the information?  After several generations of people not thinking or not even caring where they get news, or what they consider truth in their social and civic lives, because they're too enchanted by the idea that the information is "free" and they instinctively know truth from fiction, how are they going to adapt when they realize that anyone, anywhere, can make a realistic image that is an utter lie in about the time it takes to make and eat a sandwich?&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/putin_1.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;Putin wrestling a bear in Red Square.  Which definitely never did happen, and never will.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For decades now, society has been buying into the promise of the digital age as it's been marketed by the largest corporate players in it:  It's a family-friendly information resource, full of useful and accurate facts and well-categorized entertainment, and a clear conduit between your eyeballs and the lenses of cameras, whether a thousand miles away or just across the room.  That's always been a lie, especially in the realm of social media, where your ostensibly clear view of the world and your friends is actually chopped into a fine atomic powder and then reconstructed with various levels of censorship and promotion applied, before it's fed back to you and everyone you know...  But that lie has mostly gone unnoticed, because many employees have been working very hard to make the deception feel irrelevant, or even necessary.  After all, the internet is a conduit from anyone to anyone, and what is a social media company for, if not to act as a filter to block out all the people you don't like, who might upset you or cause you harm?  Thus the notion of the public square has been transmuted into a micromanaged software driven apparatus where free speech is supposedly the effect, but safety from discomfort is the actual overriding goal -- because if this "public square" makes a customer uncomfortable, they will disengage.&lt;br /&gt;&lt;br /&gt;So what happens when this "public square" gets so overwhelmed with false information of all kinds that even highly-trained machines cannot keep up with filtering it out, and ordinary people mucking around with generative art get plowed under en-masse by censors but have such fun with it that they keep coming back?&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/putin_2.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;Putin up to his neck in Ukrainian soil.  Which is definitely happening, even though this image is fake.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Two things.  One, the filtering becomes much more overt, exposing the whole business model of social media for the cracked mirror it is.  And two, ordinary people begin to actively seek out some mechanism that clearly delineates the line between communications from flesh-and-blood people they know, and robots, and the line between information produced by entities with an interest in the truth, and entities who profit from blurring that line.&lt;br /&gt;&lt;br /&gt;A few specifics to this change, off the top of my head:&lt;br /&gt;&lt;br /&gt;Publishers and editors will make bold declarations that all their content comes from real humans -- even the ones that freely publish fake images and use machines to ghostwrite their copy.  The outcome of this deliberate confusion will be a digital certificate system similar to the ones used to verify the provenance of entire websites, but instead deployed on a per-item basis by publishers as a mark of their integrity.  I.e. if it's not digitally signed by The New Yorker, it's not up to their standard.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/new_yorker.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;Midjourney has clearly been trained on a lot of New Yorker covers.  The words and the font are pretty well imprinted, even when the rest of the cover is nonsense.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This alone won't really change the status quo, but with a much more intense emphasis on the value of certification, there will also be more emphasis on presenting information in a context that conveys and guarantees the certification.  People will realize they &lt;i&gt;need&lt;/i&gt; to know the difference between what's real and what's fake, and providers of real information will be in a better position to dictate terms about how their content is re-used.  This will give them leverage against search engines and social media giants, both of which have a tendency to scrape the content out of other organizations and repackage it, hollowing out every other revenue stream but their own.&lt;br /&gt;&lt;br /&gt;The tools to read the digital "chain of trust" in a document will be much more flexibly integrated with media consumption applications.  Currently they are used almost entirely for copyright enforcement.  In the future they will be used as part of the filtering and/or censorship settings of a social media app.  Eventually all anonymized data - data without signed encryption from a trusted source - will be treated as hazardous and silently ignored by default in consumer communications software.  Even if it's just a photo of your cat; if it's not digitally certified, it doesn't exist.&lt;br /&gt;&lt;br /&gt;In the short term, Canon and Minolta will introduce cameras for journalists that digitally sign every raw-format image they take internally, establishing the provenance of that original for later verification with publishers.  In the medium term, this sort of signing will be introduced in software to every smartphone.  In the long term, the digital signature applied by the devices you own will be derived from a digital fingerprint that is part of your &lt;i&gt;government issued identification.&lt;/i&gt;  (By the way, you really should see the movie "Idiocracy".  It gets more relevant every year!)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/politics.jpg" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;Are you used to the safety of anonymity in crowds?  That safety will soon be deemed a public nuisance.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So, this is my prediction for where we're headed.  The proliferation of fake machine-generated tripe online will not end society but it will definitely transform it.  Meanwhile pirates and hackers will use generative art to make statements, be creative, fight corporate monopoly, and eventually renegotiate the artistic process.  I sincerely hope that some room for individual liberty remains at that point, though I do look forward to the renewed interest people will show in using physical presence to verify trust.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;&lt;img src="http://garote.bdmonkeys.net/livejournal/ai_art/TNG_Register.png" style="max-width:80%;" /&gt;&lt;/div&gt;&lt;div style="color:#888;padding:0 2em;"&gt;Hopefully we'll still have decent job prospects after all this...&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=garote&amp;ditemid=321608" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>
