text_garden's recent activity
-
Comment on Interesting material types for fantasy resources/macguffins other than crystals or metals? in ~creative
-
Comment on Our commitment to Windows quality in ~tech
text_garden Link ParentEven Windows had that for at least 30 years.Linux had that for at least 30 years, but okay. It's nice getting it now.
Even Windows had that for at least 30 years.
-
Comment on What programming/technical projects have you been working on? in ~comp
text_garden LinkI solved the first severe bug in my music tool that was giving exactly one user gray hairs. Here's the change:...I solved the first severe bug in my music tool that was giving exactly one user gray hairs. Here's the change: https://github.com/boomlinde/pocketacid/commit/5bac2c98c03ed1ba89ef954d20d49c8b997e12a5
For some context, in my tool, references to musical patterns are arranged in rows that users edit control the overall arrangement. At some point, I added the ability to additionally save snapshots to any row of patterns. Snapshots contain mixer settings, synth settings and so on, which will be recalled when the row is played back. So far so good. The feature is rock solid.
At some later point, I decided to add more editing commands. Two of these were the ability to insert and delete arrangement rows. For the pattern references this is straight forward insert/delete in an array which is cheap because the columns are 256 pattern references each and each pattern reference is just a byte. But the snapshots are significantly larger and can't be moved around atomically. I solved this problem by adding a hidden indirection table: the snapshots column nor also just represents an array of references to snapshots, but you don't edit these directly. Instead, when you start the program, references to the patterns are laid out in the indirection table going from 0, 1, 2, 3...255, and only the references are rearranged when you delete/insert rows. Then when the pattern is saved the patterns are stored in the order of the indirection table. Again, this works perfectly. Absolutely rock solid, never had an issue.
Finally, around new year, I added support for multiple project workspaces. Previously, the users could only work with one arrangement view and one set of patterns and snapshots. With this change, they could instead switch between different projects each representing an arrangement and sets of snapshots and patterns. I did this by wrapping what was then my main function in another function which would essentially run the old function with a given project file. When switching projects, I just change the file path, exit the "old main" and let the new main rerun it with the new path.
The problem was that I don't reset the mapping table. I know that I looked at it and considered it at the time, but my conclusion was that I didn't need to, because the patterns would be loaded into the correct slots via the indirection table was regardless of how jumbled it was. This was the wrong assumption: the patterns were loaded linearly into the slots irrespective of the reference table, which was fine when the table was in its initial state, but not when it had been jumbled. Hence working on one project, inserting and deleting rows and then switching to another project would cause the snapshots to shift around as though the changes you made in the other project had been made to the current one.
This last feature is not something I've used myself a lot, but was requested a user running out of space in the arrangement view. With his and my usage patterns, the issue never manifested. I simply didn't really use projects myself, and the user would fill one project and then switch only when he was running out, which hasn't happened a lot. But then a second power user started using projects in a way that made this bug a major pain in the ass for him.
Meanwhile the user that reported the bug started debugging his own setup. Using different controllers (he'd had problems with one), switching computer (one was giving him bluescreens for other reasons)... It made it sound like the issue was maybe on his end and I let my guard down a little. But then it just struck me while I was on the bus that I should either reinitialize this table when switching between projects, or also load patterns via the indirection table.
-
Comment on gb-recompiled - Translates Z80 assembly directly into modern C code in ~games
text_garden Link ParentThe discussion seems a bit abstract to me, given that we're discussing the Game Boy. The Game Boy's CPU isn't a Z80. It's a custom design, not even binary compatible with the Z80. "Z80" in the OP...The discussion seems a bit abstract to me, given that we're discussing the Game Boy. The Game Boy's CPU isn't a Z80. It's a custom design, not even binary compatible with the Z80.
"Z80" in the OP link is a bit of a misnomer. That's fine if that's what the community decided to call it, but you shouldn't conflate the longevity of the Game Boy "Z80" with that of the Zilog Z80. I don't imagine the GB CPU was in production after the Game Boy.
-
Comment on What programming/technical projects have you been working on? in ~comp
text_garden LinkI made a web-based fractal playground based on chaos games. It's the latest of a few experiments with WebAssembly and Zig. The code could be a nice read for someone who want to get started with...I made a web-based fractal playground based on chaos games. It's the latest of a few experiments with WebAssembly and Zig.
The code could be a nice read for someone who want to get started with WebAssembly from first principles. There are a lot of tutorials and examples online that target rather heavy libraries and frameworks, but you can achieve a lot with simple parameter passing and sharing buffers. In addition to what you can see if you view the source of the page, there's the wasm module source code and build script.
The module exports two statically allocated buffers for coordinates. It also exports the
updatefunction which fills these buffers with coordinates and returns the number of coordinates it added. On the JavaScript side I then loop over them and plot a point on an output canvas for each.I also save and load the parameters from the URL fragment, so if you find something nice you can link to it!
-
Comment on Hot take: movies suck because there is no rental market in ~movies
text_garden Link ParentI imagine that the industry now also has much better means of achieving that than ever before. The shift to streaming means much more granular data on what does and doesn't appeal to people, and...I imagine that the industry now also has much better means of achieving that than ever before. The shift to streaming means much more granular data on what does and doesn't appeal to people, and social meda provides an insanely quick way to both register and disseminate sentiment. You can manufacture hype, you can react quickly to lackluster response and after the fact you can evaluate whether mass appeal was achieved at an unprecedentedly granular level, taking that info with you to the next production.
One of my favorite examples of how the movie industry is reactive to social media is that there was a Sonic the Hedgehog movie where at some point late in production his eyes had been made relatively tiny compared to those of the original video game character. Fans of the franchise, not exactly known for their lack of attention to details regarding the character, were angered and made that known within minutes of the release of the first trailer or so. The studio eventually responded by redoing the character which IIRC pushed the release back much further.
Of course, this was more appealing to the fans. But I still want to see the beady-eyes cut of the Sonic movie. And Super Mario Bros (1993) is a much more fun movie than the new one.
-
Comment on In a blind test, audiophiles couldn't tell the difference between audio signals sent through copper wire, a banana, or wet mud in ~tech
text_garden Link ParentSibilance is something you should hear whenever an s is pronounced for that sound to be legible at all. The problem is rather that it places a lot of energy around 6-9 kHz and comes across as...Sibilance is not something you should be hearing in a professionally mixed song...
Sibilance is something you should hear whenever an s is pronounced for that sound to be legible at all. The problem is rather that it places a lot of energy around 6-9 kHz and comes across as louder than lower frequency sounds when you sing directly into a microphone. But it's not something you shouldn't be hearing, at least if you want sibilant consonants to be audible, just something that should be relatively lower in the mix than it is on the original microphone recording, if you want a pleasant sound.
-
Comment on What games have you been playing, and what's your opinion on them? in ~games
text_garden LinkI've spent a shameful amount of time playing Fuel. It's an open world racing game from 2009, known for it's very large map. Apparently it's 14,400km² in size, though largely empty except for an...I've spent a shameful amount of time playing Fuel. It's an open world racing game from 2009, known for it's very large map. Apparently it's 14,400km² in size, though largely empty except for an absolutely absurd road network tens of thousands of kilometers of winding roads going nowhere. You can ignore most of the map and open world if you like, and directly accept races and challenges from a menu system. Winning races unlocks new camps around the world, which function as hubs for more races.
The novelty of just driving around the map was enough to keep me interested until the racing mechanics started to grow on me. It's not realistic in any way, but you need a certain finesse when it comes to exploiting shortcuts and executing sharp turns, which is necessary to win some races at the highest difficulty.
At its best, its races make really good use of its map: a lot of freedom in picking a route and long distances covered. At worst it's extremely frustrating, though I don't think I've played a racing game that isn't at times. Usually this is in circuit races.
One point of criticism with a world this large is of course that the surroundings can get quite repetitive. There are a lot of different, clearly distinct areas of the map, but they're all so, so large. At the same time, the maps are littered with instances of models of a few handfuls of buildings, abandoned cars, broken wind turbines and so on which I don't think offer enough variety to fully support the illusion of a large world.
Another is that it's very unpolished in some senses. One thing that comes to mind is hitboxes around things which will stop your car dead if you hit them. They're often bigger than they look. Good news is that with not that many objects and after a few hours you get a good sense of how big the hitboxes are.
-
Comment on What programming/technical projects have you been working on? in ~comp
text_garden LinkI extracted the audio of all episodes of Star Trek: TNG. I'd realized two things: TNG is very audio-only friendly and I know it well enough that I can usually fill in the blanks where it isn't....I extracted the audio of all episodes of Star Trek: TNG. I'd realized two things: TNG is very audio-only friendly and I know it well enough that I can usually fill in the blanks where it isn't.
From my source video files, this turned out to be ~11 GB of ~150-200 kbit/s AAC. Sadly, this would not fit on my phone along with the music I have there. I ended up reading about Opus which seemed ideal for this use case. I did an initial test at 48 kbit/s VBR and was impressed with the performance. I re-encoded all of it overnight, getting 2.7G of Opus files. All the dialog is clear and legible, there are no overt artifacts in the background sounds and sound effects. The only place I really noticed a slight degradation was in the theme song, though I imagine the problem is similar for other full arrangements of music.
I also experimented a bit with WebAssembly and browser Worklets. It was very easy to build a WebAssembly module using Zig. It can then be built in the main Javascript thread in the browser, but the worklet has to instantiate it. In my case, I created an AudioWorklet that calls into the WebAssembly module to fill the buffer. I started with a basic sine wave tone generator but then combined a few libraries I've made to play back a piano MIDI file using a simple synth. I'd like to experiment with passing messages between the main thread and the worklet thread next, to possibly control the synthesis parameters.
Finally I added support for multiple projects in Pocket Acid, my software groovebox. Previously, everything about it was contained in one file which was limited to 256 pattern arrangement steps. I though this would be enough for a while but a friend who has been using it a lot let me know that he was running out. Now I've added a screen where you can select one out of 256 such projects arranged in a 16x16 grid. I mostly use this spatial grid representation to avoid text input, which I personally think is rarely fun with a gamepad.
-
Comment on AI friends too cheap to meter in ~tech
text_garden Link ParentYes, I'm so sure of that. You yourself used one of the articles as an example, quoting a part that explicitly and beyond uncertainty reflects a position that is contrary to the position she...You're so sure that your interpretation of those articles is the only valid one that anyone with a different interpretation is "misleading and dishonest." I think that's uncharitable.
Yes, I'm so sure of that. You yourself used one of the articles as an example, quoting a part that explicitly and beyond uncertainty reflects a position that is contrary to the position she attributes to it.
Can't we just agree that the articles can be interpreted in different ways?
Please don't try to generalize the problem to the point of meaninglessness. Yes, the articles can be interpreted in different ways. Some of those interpretations have a reasonable basis in their content, some don't. The problem here is that she attributes a point to them that they aren't making by any stretch. One of the articles even explicitly refutes the point she attributes to them, which you know because you quoted that part yourself.
I don't disagree that someone can make that interpretation. Just as enough of a fool might interpret your article about manatees as being about golden retrievers. I just disagree that it's a reasonable interpretation that a literate and honest person would make after actually reading the articles, and I think that her interpretation reflects poorly on her, not somehow on the authors who are not making the idiotic point she attributes to them.
-
Comment on AI friends too cheap to meter in ~tech
text_garden Link ParentIn that context, her presenting them as describing "AI as exclusively foisted upon us by corporate overlords" is misleading and dishonest, and her bringing them up at all as though they're...Jasmine Sun's article is about chatbots. Her criticism of other articles has to be understood in that context.
In that context, her presenting them as describing "AI as exclusively foisted upon us by corporate overlords" is misleading and dishonest, and her bringing them up at all as though they're relevant to her point about chatbots is misguided and irrelevant.
Maybe those other articles aren't so bad in some other context.
While it's true that they probably don't seem so bad in the context of the points they're actually making and how they actually argue for those points as they do in the context of what Jasmine Sun incorrectly and dishonestly presents them as being about, that's irrelevant to the quality of the articles.
If you write an article about manatees and clearly present it as such, and I foolishly criticize it on the basis that it's an article about golden retrievers, it doesn't reflect on the article itself at all. It just means that I made an error that utterly invalidates my criticism.
-
Comment on AI friends too cheap to meter in ~tech
text_garden Link ParentThat might have been a relevant, critical observation if the author had also claimed that, but they didn't.That might have been a relevant, critical observation if the author had also claimed that, but they didn't.
-
Comment on AI friends too cheap to meter in ~tech
text_garden Link ParentHow is "How big tech is force-feeding us AI" not a fair title for an article about how big tech is force-feeding us AI? I don't understand your criticism at all. Even if you stopped reading after...How is "How big tech is force-feeding us AI" not a fair title for an article about how big tech is force-feeding us AI? I don't understand your criticism at all. Even if you stopped reading after the lead paragraph it would be very clear, if the title somehow wasn't enough.
The rest of the body of the article then gives very clear examples of how, indeed, "big tech is force-feeding us AI".
I could understand your criticism if you'd only read the title, and through a mistake on your part misread it as to imply that all applications of AI are force-fed to us. But that's not what the title says, and if you misread the title the article would very much clear that up. So given that you've made your way to the paragraph you're quoting I think your criticism is invalid on more than the basis of a simple mistake.
-
Comment on What video games would you say have the best stories? Feel free to suggest more than one. in ~games
text_garden LinkI've played games that people around me say have great stories, but I rarely find myself agreeing, so I tend to avoid story-driven games. Maybe the most controversial example of this is Red Dead...I've played games that people around me say have great stories, but I rarely find myself agreeing, so I tend to avoid story-driven games.
Maybe the most controversial example of this is Red Dead Redemption 2. The game was so obviously divided into either barely (or non-) interactive "characters talking and advancing the narrative" sections or action sections where there's this constant, meandering, trivial and absolutely boring expositional background dialog. All connected by an open world where none of that seemed to practically matter much. This made it feel like the pacing was always off, and like nothing was actually at stake even when the cutscenes or dialogue would imply otherwise.
Then there's the natural difference between how the game portrays player characters and how I actually play them. I can go on an absolute rampage, lassoing people in and throwing them of cliffs or offering them to the alligators, and then in the next cutscene my character will be a kind of gentleman robber with moral standards again. I can't take that seriously. Going on a rampage and fleeing is some of the most fun I had with this game, but neither the writers nor the mission designers seem to have agreed, or don't seem to care about the incongruity. It's like the game couldn't decide whether it's an awesome open world cowboy asshole sim or four seasons of an HBO show that should only have lasted for one.
I was also extremely put off by the voice acting at times. In particular, Jack Marston as a kid is very obviously played by an adult woman talking in a squeaky voice. If the game ever immersed me in its story that would have taken it away immediately.
I think RPGs are better suited for me, at least in theory, since they make player choice meaningful in the narrative sense and can adapt the narrative to your play style, but RPGs also tend to be filled with cliches that bore or annoy me. They seem especially obsessed with creating archetypal characters that all have a very overt, obvious dispositions or attitudes towards everything, which makes them not seem like people, and they employ saturday morning cartoon tropes to make sure you know what it is within a minute of hearing them.
That said, I started playing Disco Elysium this year and the first impressions were very promising. I haven't gotten very far yet, though, but I particularly like that it seems to accommodate a lot of styles of approach while rewarding you for leaning into your character
-
Comment on AI friends too cheap to meter in ~tech
text_garden Link ParentGoogle Search suddenly placing an "AI mode" item to the left of the "All" item which has always been the leftmost item for the obvious reason that it's the default mode...Google Search suddenly placing an "AI mode" item to the left of the "All" item which has always been the leftmost item for the obvious reason that it's the default mode...
-
Comment on AI friends too cheap to meter in ~tech
text_garden Link ParentI thought I already addressed that sufficiently in my comment, but I'll elaborate. If that alone is the subset of uses of AI she's concerned with, it's either disingenuous or ignorant of her to...I think she’s more right than wrong. While it’s true that Google’s AI search summaries are foisted on us, along with other AI integrations, when we talk about the people with AI companions, that’s largely ChatGPT or Character.AI. These are websites you have to visit.
I thought I already addressed that sufficiently in my comment, but I'll elaborate.
If that alone is the subset of uses of AI she's concerned with, it's either disingenuous or ignorant of her to refer to Brian Merchant, Ted Gioia and Cory Doctorow as though they're opposed to entirely voluntary and explicit use of non-intrusive AI chat bots rather those applications of AI which we're given less choice to engage with.
-
Comment on AI friends too cheap to meter in ~tech
text_garden LinkNotions like that of AI is being "crammed down our throats" don't hinge on the illusion that there are no happy users of ChatGPT. It can simultaneously be true that there are 700 million happy...Arguments like this are empirically false: they fail to consider the existence of “organic user demand.”
Notions like that of AI is being "crammed down our throats" don't hinge on the illusion that there are no happy users of ChatGPT. It can simultaneously be true that there are 700 million happy users of ChatGPT, a very non-intrusive application of a LLM (for the end user) and that AI is being "shoved down our throats".
Most people use AI because they like it.
Ignoring the dubious content of the statement itself, this is an answer to entirely the wrong question IMO. The question should be how much of our AI use is both voluntary and helpful, and how much is either or both involuntary and detrimental to our experience, health and so on. That is, if we want to know whether the idea that "AI is being crammed down our throats" is valid in some sense or "empirically false".
It's no surprise that some subset of use of AI that's entirely voluntary and explicit can be a pleasant and useful experience to us, but I'm spending more time interacting with AI through platforms where its introduction represents a general degradation of quality. Worse quality discourse, worse quality entertainment, worse quality support, worse quality reading.
I would give the author the benefit of the doubt and assume that maybe they're just discussing AI chat bots, but in that case they are making a very dishonest argument by referring to criticism that very obviously concerns AI in general, not just its use in chat bots.
-
Comment on Half way through the 2020's. What's your favorite games so far? in ~games
text_garden Link ParentI had a similar realization after binging Factorio for like 12 hours straight and haven't played it since :D Shapez was more manageable to me; an idea can be realized much more quickly so it's...I had a similar realization after binging Factorio for like 12 hours straight and haven't played it since :D
Shapez was more manageable to me; an idea can be realized much more quickly so it's more immediately satisfying. But of course, there's seemingly no end to it.
-
Comment on Half way through the 2020's. What's your favorite games so far? in ~games
text_garden LinkA few from this decade that left good impressions: Shapez: think Factorio but boiled down to its essence. I feel like it's more respectful of my time. A Hand With Many Fingers: a first-person...A few from this decade that left good impressions:
- Shapez: think Factorio but boiled down to its essence. I feel like it's more respectful of my time.
- A Hand With Many Fingers: a first-person "journalistic research simulator" spent in an archive where you are tasked with unraveling a conspiracy. I was skeptical of the concept but ended up loving it.
- The Battle of Polytopia: streamlined, simple 4X game with PBEM-style cross-platform multiplayer. Great for playing a few minutes at a time.
- Ultrakill: challenging and addictive movement shooter that rewards close range combat by making the blood of your enemies replenish your health.
- Sailwind: a relaxing sailing sim wrapped in a trade/upgrade/maintenance game loop. It's committed to not having any features like automaps or HUD tools for navigation. Instead, you have to navigate using sight, chronometer, stars and compass.
- Animal Well: weird, animal-themed, puzzle-focused metroidvania. Very atmospheric and relaxing.
- Echo Point Nova: very fast-paced, open world movement shooter. The movement mechanics are extremely satisfying.
- Desecrators: Descent- and Forsaken-like with procedurally generated levels and an upgrade system. The combat in this is so very frantic and well-designed, and it's kind of hard to go back to playing "normal" first person shooters after it.
-
Comment on What are your predictions for 2026? in ~talk
text_garden Link ParentDrunk in the back of my carillion, coming home from the barillion.
Dune uses the spice melange, a highly addictive drug which among other things enables humans to navigate in outer space without computers and is the source of Paul Atreides' prescience. Because it's essential to space travel (in a world that has banned the use of machines that think like humans) and only found on Arrakis, it's the cause of a lot of political scheming and basically the whole plot of the series.
In the real world, mind altering substances have been used for religious rituals here and there to bring people closer to the truth, the gods or whatever. In a fantasy setting that could literally be the case.