balooga's recent activity
-
Comment on Willow - Google's latest quantum chip in ~tech
-
Comment on Doctor fired after running emergency department warns about effect of for-profit firms on US health care (2022) in ~health
balooga This isn’t a full-throated argument, but frankly the people in charge of the government have become so shitty and impotent that I don’t have much trust left in their ability to provide quality,...This isn’t a full-throated argument, but frankly the people in charge of the government have become so shitty and impotent that I don’t have much trust left in their ability to provide quality, timely, free or affordable, no-strings-attached, unenshittifiable over the long term, social services of any kind.
-
Comment on What does the delete button on a post do? in ~tildes
balooga Interesting discussion from you and others but I want to add a perspective that I think hasn’t been covered… On the internet there’s never a guarantee of true deletion. You can delete a post from...Interesting discussion from you and others but I want to add a perspective that I think hasn’t been covered…
On the internet there’s never a guarantee of true deletion. You can delete a post from Tildes but it may continue to live on in browser caches, search indices, the wayback machine, in untold screenshots or pastebins or who knows where else anonymous strangers have decided to duplicate it to.
Which isn’t to say that any or all of those things are necessarily true in a given situation, only that they could be. And we have no way of knowing. I think we’d all benefit from treating content we share online as if it’s permanent, even if we know that’s not strictly true. Better to employ an opsec mindset in the authorship phase, then to post cavalierly and then try to clean up after it’s loose in the wild.
I think OP is probably asking more about unimportant, “disposable” content than sensitive data that they want to purge for privacy or reputational reasons. Even so, this angle is worth at least considering. Personally I don’t bother deleting anything because I’m careful never to post something I wouldn’t mind preserving in perpetuity. And (as others have said) I’ve personally benefited from finding enough answers to odd questions in old forum posts, and been frustrated when my only lead had been deleted at some point after it was posted, that I try to pay it forward in case my post might help others in the future.
-
Comment on Weird game "Catly" revealed at The Game Awards might be some kind of AI generated grift or scam in ~games
balooga Oh yes, there are a bunch. The two best quality ones that I’m aware of are Hailuo and Kling AI. Yes, in my testing both are noticeably better than Sora. -
Comment on Inline image support in ~tildes
balooga Have you seen the Philosophy section of the Tildes docs? Under Content is this: I interpret that to mean that if shallower content (e.g., images) were allowed, it would quickly reduce the overall...Have you seen the Philosophy section of the Tildes docs? Under Content is this:
In-depth content (primarily text-based) is the most important
This includes linking to articles on other sites, posting text topics on Tildes itself, and the comment discussions. In general, any changes to the site that will cause "shallower" content to gain an advantage should be considered very carefully.
I interpret that to mean that if shallower content (e.g., images) were allowed, it would quickly reduce the overall quality of conversation on the site. And I think that's probably accurate.
I'll still occasionally use emoji though! 🤪
-
Comment on Study: essay graders rarely detect AI, give higher grades in ~tech
balooga Just pepper it with spelling errors and incorrect punctuation! That's a surefire way of knowing a human wrote it! (That's the lesson we should be learning from this right?)Just pepper it with spelling errors and incorrect punctuation! That's a surefire way of knowing a human wrote it! (That's the lesson we should be learning from this right?)
-
Comment on Time for a new mouse? in ~comp
balooga I'm not sure how we'd diagnose that over the web, but the simplest test would be to try a different mouse and see if you can reproduce the issue. I have a super-cheap and super-old wired USB mouse...I'm not sure how we'd diagnose that over the web, but the simplest test would be to try a different mouse and see if you can reproduce the issue. I have a super-cheap and super-old wired USB mouse I keep with all my random cables and things just in case. If you don't have an extra lying around, maybe ask around and see if you can borrow one from a friend.
-
Comment on Russian jokes about Vladimir Putin and the war in ~society
balooga That's a pretty good one! 😂“Good morning, here is your conscription notice.”
“Who are we fighting with?”
“Fascists, of course!”
“Ok, and against whom?”
That's a pretty good one! 😂
-
Comment on What long standalone book is worth its page count? in ~books
balooga Fall is great. Narratively it’s all over the place but I think it absolutely nails American polarization, disinformation, and filter bubbles. A lot of news stories in the past few years have given...Fall is great. Narratively it’s all over the place but I think it absolutely nails American polarization, disinformation, and filter bubbles. A lot of news stories in the past few years have given me flashbacks to events in the book. I’d love to see Stephenson’s take on the same near future concepts, but written post January 6 and the rise of modern AI.
And that’s not even really what the book is about, it’s just window dressing. The A-plot is really bizarre but intriguing consciousness-uploading virtual world stuff that’s great fun to read.
-
Comment on Why Ren'Py? in ~games
balooga I was just thinking, my daughter loves building and playing this sort of game in Scratch… something like Ren’Py might be a good next step for her. I started my programming journey with HyperCard...I was just thinking, my daughter loves building and playing this sort of game in Scratch… something like Ren’Py might be a good next step for her. I started my programming journey with HyperCard and World Builder some 30+ years ago, and I’m always on the lookout for contemporary analogs for my kids.
How does one pronounce “Ren’Py,” anyway?
-
Comment on Astro Bot wins Game of the Year 2024 in ~games
balooga My kids are hooked on Astro Bot. It’s so good! Everything about it is delightful: It’s got great level design, inventive mechanics, an insanely catchy soundtrack. And a technical achievement to...My kids are hooked on Astro Bot. It’s so good! Everything about it is delightful: It’s got great level design, inventive mechanics, an insanely catchy soundtrack. And a technical achievement to boot, it looks amazing and runs silky smooth. I’m really impressed at the way it balances difficulty— it’s generous with hints and checkpoints, yet it rewards skill and has a bunch of devious challenge levels for more advanced players. I love how every inch of the game world exudes charm and personality. Yet (and this is great for my younger one) you can play the whole thing without needing to be able to read. There is some great replay value too, with tons of secrets and collectibles to find.
-
Comment on Billie Eilish: Tiny Desk Concert (2024) in ~music
balooga I guess I should look into this, but I used BetterHelp several years ago (it was a free work benefit at the time) and my therapist through the platform was definitely licensed and credentialed....I guess I should look into this, but I used BetterHelp several years ago (it was a free work benefit at the time) and my therapist through the platform was definitely licensed and credentialed. Now you’ve got me wondering if the service has been enshittified since I used it, or if I was just lucky.
-
Comment on Podcast app recs in ~tech
balooga He has a weekly podcast of his own (well, along with Casey Liss and John Siracusa) that I enjoy immensely. It’s fairly niche (Apple-specific tech news and talk) but if you’re into that sort of...He has a weekly podcast of his own (well, along with Casey Liss and John Siracusa) that I enjoy immensely. It’s fairly niche (Apple-specific tech news and talk) but if you’re into that sort of thing it’s great. And of course being a regular listener has really humanized Marco for me as an indie dev, as he shares occasional stories and frustrations with the iOS developer scene and Overcast in particular.
-
Comment on A liar who always lies says “All my hats are green.” in ~science
balooga Not sure about that... Consider the statement "I have no green hats." The hats I don't have don't exist. Can I ascribe a color to those non-existent hats? I guess you could make the argument that...The status of nothing cannot be the color green however. The status of having no hats cannot be that all your hats are green or that they have any properties at all.
Not sure about that... Consider the statement "I have no green hats."
The hats I don't have don't exist. Can I ascribe a color to those non-existent hats?
I guess you could make the argument that "some" green hats are a real thing, and I just don't have any of them. But is the statement "I have no antigravity hats" any different, just because there's no such thing as an antigravity hat?
-
Comment on Anyone interested in trying out Kagi? in ~tech
balooga Sounds like these are going fast but I’m curious to try if there are any left!Sounds like these are going fast but I’m curious to try if there are any left!
-
Comment on Day 11: Plutonian Pebbles in ~comp.advent_of_code
balooga (edited )LinkTypeScript Ack! I walked right into the trap in Part 2. My naive implementation was fine for Part 1 but would've run until the heat death of the universe over 75 steps. This was the first one (but...TypeScript
Ack! I walked right into the trap in Part 2. My naive implementation was fine for Part 1 but would've run until the heat death of the universe over 75 steps. This was the first one (but certainly not the last) this year that stumped me when trying to solve on my own. Credit to @Hello for the useful clue, that was enough info to unblock me but not so much that I felt like I was cheating.
I'm keeping my original Part 1 code alongside the optimized Part 2 version below, to compare and contrast.
Spoilers
Originally I split the input into an array and looped through it, building a second array from the results of the rules for each stone. It worked fine for 25 steps... but when I tried it in Part 2 I was startled to see the whole thing explode with a
RangeError: Invalid array length
error. So that data type was a non-starter.At that point I switched to direct string manipulation, because at least there's no firm upper bound on length for strings. I knew this was playing with fire but wanted to see how far it could get me. I looped through the string one char at a time, looking for
" "
delimiters between words (in this case a "word" is a number, but string-encoded). When each word was identified, I'd apply the relevant rule and replace the word with its result in the main string. I had to keep close track of my index because this changed the length of the string and my pointer position within it while I was in the middle of looping through it. At the end I'd just count up the occurrences of" "
in the string to see how many stones I had.This approach was noticeably slower than my array-based solution, for solving Part 1. But it did have the advantage of not throwing RangeErrors so I let it run for a while. I added some duration logging so I could track its progress through each "blink" (step):
Step 1 completed in 00:00:00. Step 2 completed in 00:00:00. Step 3 completed in 00:00:00. Step 4 completed in 00:00:00. Step 5 completed in 00:00:00. Step 6 completed in 00:00:00. Step 7 completed in 00:00:00. Step 8 completed in 00:00:00. Step 9 completed in 00:00:00. Step 10 completed in 00:00:00. Step 11 completed in 00:00:00. Step 12 completed in 00:00:00. Step 13 completed in 00:00:00. Step 14 completed in 00:00:00. Step 15 completed in 00:00:00. Step 16 completed in 00:00:00. Step 17 completed in 00:00:00. Step 18 completed in 00:00:00. Step 19 completed in 00:00:00. Step 20 completed in 00:00:00. Step 21 completed in 00:00:00. Step 22 completed in 00:00:01. Step 23 completed in 00:00:02. Step 24 completed in 00:00:05. Step 25 completed in 00:00:12. Step 26 completed in 00:00:26. Step 27 completed in 00:01:00. Step 28 completed in 00:02:17. Step 29 completed in 00:05:18. Step 30 completed in 00:13:21.
At this point I had enough data to see the hockey stick— it would take literally billions of years to reach step 75. That's when I hopped onto Tildes and got the hint I needed.
I think what I had gotten hung up on was this sentence in the puzzle text: "No matter how the stones change, their order is preserved, and they stay on their perfectly straight line." That suggested that the exact order was important so I'd been avoiding discarding that information. In reality, it's only looking for the number of stones, not their relative positions. Good exercise in thinking outside the box! My final code was able to complete both parts in just
10ms. Edit: 76ms, still pretty good imho.Parts 1 and 2 (TypeScript)
type InputData = number[]; type StoneCatalog = Record<number, number>; function formatInput(input: string): InputData { return input .trim() .split(' ') .map(num => Number(num)); } // void function; update catalog object in-place const countStone = (stoneString: keyof StoneCatalog, numberToCount: number, stoneCatalog: StoneCatalog): void => { if (Object.prototype.hasOwnProperty.call(stoneCatalog, stoneString)) { stoneCatalog[stoneString] += numberToCount; } else { stoneCatalog[stoneString] = numberToCount; } }; export function run(input: string): string[] { const data = formatInput(input); const countStonesAfter25Blinks = (stones: InputData): number => { const numberOfBlinks = 25; let clonedStones = [...stones]; for (let blinkNum = 0; blinkNum < numberOfBlinks; blinkNum++) { const newStones: number[] = []; for (const stone of clonedStones) { if (stone === 0) { newStones.push(1); continue; } const stoneString = `${stone}`; if (stoneString.length % 2 === 0) { const midpoint = stoneString.length / 2; const split = [Number(stoneString.slice(0, midpoint)), Number(stoneString.slice(midpoint))]; newStones.push(...split); continue; } newStones.push(stone * 2024); } clonedStones = newStones; } return clonedStones.length; }; const countStonesAfter75Blinks = (stones: InputData): number => { const numberOfBlinks = 75; let result = 0; let stoneCatalog: StoneCatalog = {}; for (const stone of stones) { countStone(stone, 1, stoneCatalog); } for (let blinkNum = 0; blinkNum < numberOfBlinks; blinkNum++) { const newCatalog: StoneCatalog = {}; for (const stoneString in stoneCatalog) { if (stoneString === '0') { countStone(1, stoneCatalog[stoneString], newCatalog); continue; } if (stoneString.length % 2 === 0) { const midpoint = stoneString.length / 2; countStone(Number(stoneString.slice(0, midpoint)), stoneCatalog[stoneString], newCatalog); countStone(Number(stoneString.slice(midpoint)), stoneCatalog[stoneString], newCatalog); continue; } countStone(Number(stoneString) * 2024, stoneCatalog[stoneString], newCatalog); } stoneCatalog = newCatalog; } for (const stone in stoneCatalog) { result += stoneCatalog[stone]; } return result; }; return [`${countStonesAfter25Blinks(data)}`, `${countStonesAfter75Blinks(data)}`]; }
-
Comment on While ambitious urban planners try to make fifteen-minute cities a reality, the Nordhavn district of Copenhagen has gone one better – what's life like when everything you need is a stroll away? in ~design
balooga 99% Invisible had a good episode recently about the 15-Minute City, and all the QAnon-adjacent conspiracy theories that rose around it. Great listening if you’re interested in this sort of thing.99% Invisible had a good episode recently about the 15-Minute City, and all the QAnon-adjacent conspiracy theories that rose around it. Great listening if you’re interested in this sort of thing.
-
Comment on Google says AI weather model masters 15-day forecast in ~enviro
balooga I’m honestly surprised at the 8-minute completion time. Given the performance of modern LLMs, trained on billions of parameters, I assumed that a weather model trained on numerical temperature,...I’m honestly surprised at the 8-minute completion time. Given the performance of modern LLMs, trained on billions of parameters, I assumed that a weather model trained on numerical temperature, wind speed, and air pressure records would be considerably simpler than Gemini which is trained on a text corpus of the entire internet. Of course the hours-long ECMWF process is even more surprising.
Great news regardless! This seems like a really practical and low-hanging application of machine learning tech. I’m excited to see how these models continue to evolve over the next decade!
-
Comment on Funko Pop causes takedown of itch.io, calls the owner's mom in ~tech
balooga This sounds like a new form of swatting. Site-swatting. I haven't seen an explanation of who called the mom. Doubtful it was actually Funko, can that be pinned on BrandShield as well? I wonder if...This sounds like a new form of swatting. Site-swatting.
I haven't seen an explanation of who called the mom. Doubtful it was actually Funko, can that be pinned on BrandShield as well? I wonder if there's grounds for legal action against them, for harassment or something.
-
Comment on A liar who always lies says “All my hats are green.” in ~science
balooga Oh I had Puzzlemania as a kid too! Published by Highlights, right? Those were great! I'll look up MindTrap, that sounds like something that might have been adapted for the digital age and could be...Oh I had Puzzlemania as a kid too! Published by Highlights, right? Those were great!
I'll look up MindTrap, that sounds like something that might have been adapted for the digital age and could be right up my alley.
I’m getting Y2K vibes from the cryptographic issue. When I first learned of the risk many years ago, I was fairly alarmed at the implications. And, as it turns out, so were lots of other very smart people who have been addressing the problem in the intervening time. So when quantum computers are eventually ready for prime time, the crypto thing will seem like an underwhelming nothing-burger — not because it was never a real problem, but because of all the groundwork that was laid in advance.