And just like that Problem 10 is done and correct whoohoo đ„ł It was easy because in Problem 7 Iâd already written an iterator to produce infinite primes. So the solution for finding the sum of primes under 2,000,000 is basically (shortened):
primes := iter.take_while(iter.filter(prime_candidates(), is_prime), fn(p) { p < n })
print(iter.sum(primes))
And of course the answer is: 142913828922 which took ~21.ss for the Go Vm to compuete.
Oh man wow đź Problem 9 was quite hard đ± I had to build two new functions in the Mu stdlib for computing combinations and permutations, but then the combinations of range(1000) for triples such as a + b == c is enormous! So i had to write iterator versions of these to do lazy evaluation. Anyway solution follows:
#!/usr/bin/env mu
// Special Pythagorean Triplet
import "iter"
fn usage() {
print("Usage:", args()[0], "<n>")
}
fn sqr(x) { x * x }
fn main() {
if len(args()) < 2 {
usage()
exit(1)
}
n := must(int(args()[1]))
print("n:", n)
// For a < b < c and a + b + c == n, both a and b are strictly less
// than n/2. Generate only (a,b) combinations and derive c directly. This
// keeps the search lazy and reduces n=1000 from C(999,3) = 165,668,499
// candidate triples to C(499,2) = 124,251 candidate pairs.
pairs := iter.combinations(iter.range(1, n / 2), 2)
triples := iter.map(pairs, fn(xs) {
a := xs[0]
b := xs[1]
return [a, b, n - a - b]
})
// Enforce b < c; a < b is already guaranteed by combinations over an
// increasing range, and a + b + c == n holds by construction.
triples = iter.filter(triples, fn(xs) {
return xs[1] < xs[2]
})
// Euler 9 has one answer for n=1000. find() stops the entire upstream
// iterator chain as soon as the first Pythagorean triple is found.
answer := iter.find(triples, fn(xs) {
return sqr(xs[0]) + sqr(xs[1]) == sqr(xs[2])
})
print(answer)
if answer != nil {
print(answer[0] * answer[1] * answer[2])
}
}
main()
Most of this insane power consumption happens during the models training, so the additional cost of prompting, is minimal. Facebook invented cool ways to exted the environmental damage far beyond the training stage, by dumping the dirty data center water into nearby water sources, but thatâs more so a Facebook problem, than a fault of AI.
I would still never waste my own money, paying for any AI subscriptions that my employer doesnât already pay for, no matter if we use them, or not.
I am also against aggressive scraping and taking everything as training data, disregarding the authors wishes and license. I allow it on my website, mostly as proof that no matter how much they scrape my stuff, the real me remains both a superior webdev and artist.
I am well aware this makes me come across really egotistical, especially after developers far better than me, embraced vibe coding, arguably way too much. To give an example, all attempts to get Microsoft Copilot, thatâs embedded into SharePoint, to generate an extension/uBlock filter to make SharePoint revert to the old superior UI failed, but I was able to do that in three lines of code ( https://thecanine.smol.pub/ublock-filters ), in half an hour, despite me never seeing the code of that page before. After a few of these comparisons, it is increasingly hard to see most of these tools, as my replacement.
I am not even going to talk about the people trying to imitate my art style with AI, until they can show me a result where all the squares are the same size, in a grid and actually square.
@itsericwoodward@itsericwoodward.com (I still hate that these photos look so good, despite being made with a telephone. đ I mean, the (probably built-in) filters are easy to spot, but it looks super convincing when you donât pay attention.)
@movq@www.uninformativ.de Hahaha, great timing! :-D I love your article and agree with almost all your points.
On the AI changelog part, though, Iâd rather recommend to just not have a changelog at all.
Another important thing for me is the deprecation notice section. What do I need to look out for in the future? Should I start to migrate to another API soon? Even right now? Or does it have time?
While going through these terrible GitHub release pages, I also found these âNew Project Contributorsâ sections (yeah, for that, they found the time to make a section) annoying. Donât get me wrong, sure, credit where credit is due. But come on. Soooooo much space for an inefficiently formatted (and also unsorted) list. At least it was easy enough to skip over it.
And then, there are also these changelogs or rather notice documents in general that are infested with multicolored emojis all over the place. My brainâs spam filter kicks in and shoves everything to /dev/null immediately. Itâs especially a thing at work.
In my previous work project, we also used the Keep A Changelog Format. That was great. You wouldnât believe how often I resorted back to that document. At least twice a week, often several times a day. I was very glad that we put in this effort. Of course, writing the changelog took its time, but it was worth every minute and more. Reading a many months old item, it was immediately clear. I was our best customer in that regard.
Now, itâs just the same auto shitshow with MR titles in a rolling date-versioned release scheme. Itâs just our team who has to deal with that, though. I think Iâm the only one who is not a fan of it.
express-twtkpr npm library), and it kind ran amok a few times. So again, sorry - I've added a minimum 10-minute cool-down period between pulls which should help (I hope đ).
@prologic@twtxt.net @bender@twtxt.net Thanks! Yeah, it already supports Twt Hash via twtxt-lib (both v1 and v2, when the time is right), plus most of the other features (multiline, user-agent, and metadata), and Iâm working on (re-)implementing threading, mentions, and hash filtering (to make conversations easier to follow).
Hereâs a current snapshot of my local version, in case anyone is interested:

-ÂĄNadie me quiere dar mimos!-
#catsoftwtxt
@prologic@twtxt.net @movq@www.uninformativ.de @bender@twtxt.net Thank you very much! <3
I only filtered out the noise floor of the camera itself. I selected one second of âsilenceâ in Audacity and used the âEffectâ â âNoise reductionâ (Rausch-Verminderung in German) dialog with its default settings. I repeated that two or three times in total with different sections of âsilenceâ. Itâs very hard to find something where there is really no other bird singing in the background. But in contrast to the original audio, the edited version is noticeably more squeaky I find.
Oh, and I increased the volume. Especially after the noise reduction, everything is a bit quieter.
I got rather lucky, only a few cars went by and my microphone is too shitty, to really pick it up. :-D Itâs kinda drowned out by the background noise. 45 seconds into the video, a car passes. Also at 1:10 without a doubt. Iâm sure there were actually many were. Most of them passed behind me, the mic is facing away from that sound source. Of course, the densely built-up area still reflects a lot.
It also helped that Azabache is a loud singer himself. Fortunately, no idiots screaming either.
If you want to compare yourself or play around to see what other improvements you are able to achieve, I uploaded the original from the camera in the same directory under the lovely name DSCN5687.MOV. Itâs 236.1 MiB in size.
@lyse@lyse.isobeef.org Omg, thatâs quiet. Did you do some filtering on this? No traffic noise? No drunk men shouting? đł
Thanks, @movq@www.uninformativ.de! Oh no, get well, mate!
Yes, our singer is a male Iâm pretty sure. Of course, itâs hard to tell after sunset whether our blackbird wears a black or brown feather coat, but during daylight Iâve always only seen black ones sit on this roof ridge. It appears that Wikipedia is backing this up a little bit: https://de.wikipedia.org/wiki/Amsel#Reviergesang
I just added a video. Hmm, filtering the background camera noise also makes the audio rather squeaky. :-(
¥Hoy cumplo 2 añitos!
#catsoftwtxt
Cat-Ăłlico
#catsoftwtxt
-¿Qué viene quién y cuåndo?-
#catsoftwtxt
Solo tĂș y yo, por siempre
#catsoftwtxt
@shinyoukai@neko.laidback.moe Do we now need ad filters in twtxt clients, too? O_o I hope not! Personally, I cannot stand the âSent with my crappy $phone/$appâ e-mail footers.
But congrats on your client. :-)
thereâs something very soothing in spreadsheets to compute filters parts values and frequencies #electronics
@itsericwoodward@itsericwoodward.com Nice to see someone else also participating! đ„ł
(Btw, they donât want us to share our inputs: https://www.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs/ Yeah, itâs a bit annoying. I also have to do quite a bit of filtering on my repo âŠ)
CatGPT
#catsoftwtxt
Anyone on my pod (twtxt.net) finding the new Filter(s) useful at all? đ€ 
First Dates: Baldo. 2 años. «Ronronea conmigo durante toda la noche.»
#catsoftwtxt
Diferencia entre gato poralizado y no polarizado
#catsoftwtxt
-Yo no estoy en peligro, Skyler. Yo soy el peligro. Un sanguinario depredador se abalanza sobre un lindo minino, Âży tĂș crees que ese soy yo? No. ÂĄYo soy el que salta!-
#catsoftwtxt
Soñando que vence a Scar
#catsoftwtxt
@prologic@twtxt.net @movq@www.uninformativ.de Same here, I give each service a dedicated e-mail address. Itâs very interesting to see how e-mail addresses are transferred to other actors. Luckily, this only happens rarely. But it does happen. In surprising ways.
Aliases not only help to fight spam, but are also a great way to specify filter rules to sort e-mails.
-¿Y⊠sueles acurrucarte mucho por aqu�-
#catsoftwtxt
Disfraz de Halloween đ : ojos flotantes
#catsoftwtxt
ÂĄFeliz Halloween đ đ§!
#catsoftwtxt
Color negro brillante e irresistible.
#catsoftwtxt
- ÂżTe gusta el nuevo pienso? Es bajo en calorĂas. -
#catsoftwtxt
Evitando que mi humano trabaje para darme mimitos.
#catsoftwtxt
Soy el detective Baldo. AĂșn recuerdo cuando esa gatita salvaje entrĂł en mi caja contoneando su cola. Le habĂan robado el cascabel de oro. AceptĂ© el caso sin dudarlo, querĂa meter los bigotes en ese caso. OlĂa a pescado podrido.
#catsoftwtxt
-ÂĄDeja de estudiar y hazme caso!-
#catsoftwtxt
I have a Python script that transforms the original YouTube channel Atom feed into a more useful Atom feed by removing the spam description and replacing it with the video duration, filtering out videos by title, duration, etc. I just updated it to exclude the damn Shorts garbage more efficiently. Finally, YouTube updated their Atom feed generation, so that the video URL contains /short/ if itâs of this useless kind. Never thought that they ever actually will improve their Atom feeds. Thank you, much appreciated!
-Me gusta mi nueva cestita-
#catsoftwtxt
Se ha ido la colonia que habĂa fuera y el âjefeâ que me pegaba. ÂĄYa puedo subir otra vez!
#catsoftwtxt
Yin-cat
#catsoftwtxt
Mejorando sus técnicas de camuflaje para cazar moscas
#catsoftwtxt
Fresquito
#catsoftwtxt
Batdo
#catsoftwtxt