I don't want to keep extra data structures to track the simulation objects to draw. I tried both extending and monkey patching either body or shape objects to be "drawable" so I can just iterate the native pymunk structures and ask stuff to draw themselves (would be nice, huh?), but there is always some snag. If I extend shape classes, I stumble on the complex objects with many shapes drawn with divisions. If I extend the Body class, the problem is static objects have shapes but share a virtual constant body, more of a flag, so I can't add anything to it, so back to keeping track of a separate list of static shapes… Then performance & serialization issues, I want to be able to easily pickle simulations, but if I add Py5Shape objects to the extended/modified classes they become unpickable...
I have bigger fishes to fry right now (the paralyzing PhD) but this is something I would like to pair with someone more experienced to work on.
É só mais um caso em que o #governo, em plena #CriseClimática, continua a optar por não ter uma política ecológica.
O @LIVRE@LIVRE escreveu sobre esta alteração, aqui: https://partidolivre.pt/comunicado/sobre-a-alteracao-do-tracado-do-tgv-e-a-construcao-de-novas-pontes-em-gaia-e-porto
#ptpol
É só mais um caso em que o #governo, em plena #CriseClimática, continua a optar por não ter uma política ecológica.
O @LIVRE@LIVRE escreveu sobre esta alteração, aqui: https://partidolivre.pt/comunicado/sobre-a-alteracao-do-tracado-do-tgv-e-a-construcao-de-novas-pontes-em-gaia-e-porto
#ptpol
É só mais um caso em que o #governo, em plena #CriseClimática, continua a optar por não ter uma política ecológica.
O @LIVRE@LIVRE escreveu sobre esta alteração, aqui: https://partidolivre.pt/comunicado/sobre-a-alteracao-do-tracado-do-tgv-e-a-construcao-de-novas-pontes-em-gaia-e-porto
#ptpol

#ADN: https://ciberlandia.pt/@marado/114387801741556979
#ND: https://ciberlandia.pt/@marado/114348377182888840
#IL: https://ciberlandia.pt/@marado/114347354072140841
#AD: https://ciberlandia.pt/@marado/114392455216165982
#PAN: https://ciberlandia.pt/@marado/114324690217343729
#Volt: https://ciberlandia.pt/@marado/114358606266556238
#PS: https://ciberlandia.pt/@marado/114287187178316531
@LIVRE@LIVRE: https://ciberlandia.pt/@marado/114359377128866906
@BlocodeEsquerda@BlocodeEsquerda: https://ciberlandia.pt/@marado/114309601123227991
#CDU: https://ciberlandia.pt/@marado/114325507241653084
#ptpol #legislativas #legislativas2025
#ADN: https://ciberlandia.pt/@marado/114387801741556979
#ND: https://ciberlandia.pt/@marado/114348377182888840
#IL: https://ciberlandia.pt/@marado/114347354072140841
#AD: https://ciberlandia.pt/@marado/114392455216165982
#PAN: https://ciberlandia.pt/@marado/114324690217343729
#Volt: https://ciberlandia.pt/@marado/114358606266556238
#PS: https://ciberlandia.pt/@marado/114287187178316531
@LIVRE@LIVRE: https://ciberlandia.pt/@marado/114359377128866906
@BlocodeEsquerda@BlocodeEsquerda: https://ciberlandia.pt/@marado/114309601123227991
#CDU: https://ciberlandia.pt/@marado/114325507241653084
#ptpol #legislativas #legislativas2025
#ADN: https://ciberlandia.pt/@marado/114387801741556979
#ND: https://ciberlandia.pt/@marado/114348377182888840
#IL: https://ciberlandia.pt/@marado/114347354072140841
#AD: https://ciberlandia.pt/@marado/114392455216165982
#PAN: https://ciberlandia.pt/@marado/114324690217343729
#Volt: https://ciberlandia.pt/@marado/114358606266556238
#PS: https://ciberlandia.pt/@marado/114287187178316531
@LIVRE@LIVRE: https://ciberlandia.pt/@marado/114359377128866906
@BlocodeEsquerda@BlocodeEsquerda: https://ciberlandia.pt/@marado/114309601123227991
#CDU: https://ciberlandia.pt/@marado/114325507241653084
#ptpol #legislativas #legislativas2025
@prologic I started to write it in order to understand better how twtxt works and I thought it could be useful for non-geek people but they like to host their own data
Message
├╴Reply 1
│ └╴Subreply
└╴Reply 2
and "Reply 2" was selected, pressing
A
to reply to the parent should have picked "Message". However, a reply to "Reply 2" was composed instead. The reason was a precausiously introduced safety guard to abort the parent search which stopped at "Subreply", because its subject didn't match "Reply 2"'s. It was originally intended to abort on a completely different message conversation root. Just in case. Turns out that this thoght was flawed.Fixing bugs by only removing code is always cool. :-)
no clue where i was going. found something called dogwood trail so just followed the arrows and tried not to stress the hills.
#running
no clue where i was going. found something called dogwood trail so just followed the arrows and tried not to stress the hills.
#running
https://yarchive.net/blog/prostate/
# type = bot
and optionally # retention = N
so that feeds like @tiktok work like they did before, and... Updated some internal metrics in yarnd
to be IMO "better", with queue depth, queue time and last processing time for feeds.
#!/bin/sh
# Position the pointer at the center of the dot, then run this script.
sleep 1
start=$(xdotool getmouselocation --shell)
eval $start
r=400
steps=100
down=0
for step in $(seq $((steps + 1)) )
do
# pi = 4 * atan(1)
new_x=$(printf '%s + %s * c(%s / %s * 2 * (4 * a(1)))\n' $X $r $step $steps | bc -l)
new_y=$(printf '%s + %s * s(%s / %s * 2 * (4 * a(1)))\n' $Y $r $step $steps | bc -l)
xte "mousemove ${new_x%%.*} ${new_y%%.*}"
if ! (( down ))
then
xte 'mousedown 1'
down=1
fi
done
xte 'mouseup 1'
xte "mousemove $X $Y"

Interestingly, you can abuse the scoring system (not manually, only with a script). Since the mouse *jumps* to the locations along the circle, you can just use very few steps and still get a great score because every step you make is very accurate – but the result looks funny:

🥴
#!/bin/sh
# Position the pointer at the center of the dot, then run this script.
sleep 1
start=$(xdotool getmouselocation --shell)
eval $start
r=400
steps=100
down=0
for step in $(seq $((steps + 1)) )
do
# pi = 4 * atan(1)
new_x=$(printf '%s + %s * c(%s / %s * 2 * (4 * a(1)))\n' $X $r $step $steps | bc -l)
new_y=$(printf '%s + %s * s(%s / %s * 2 * (4 * a(1)))\n' $Y $r $step $steps | bc -l)
xte "mousemove ${new_x%%.*} ${new_y%%.*}"
if ! (( down ))
then
xte 'mousedown 1'
down=1
fi
done
xte 'mouseup 1'
xte "mousemove $X $Y"

Interestingly, you can abuse the scoring system (not manually, only with a script). Since the mouse *jumps* to the locations along the circle, you can just use very few steps and still get a great score because every step you make is very accurate – but the result looks funny:

🥴
https://simonwillison.net/2025/Apr/26/o3-photo-locations/
https://www.aclu.org/press-releases/ice-deports-3-u-s-citizen-children-held-incommunicado-prior-to-the-deportation
As I recover from yesterday's viral episode (ugh!) I'm getting some distraction playing the wonderful (and often hard for me) #lichess puzzles: https://lichess.org/training
https://www.washingtonpost.com/technology/2025/04/25/wikipedia-nonprofit-ed-martin-letter/
$ bat https://twtxt.net/twt/edgwjcq | jq '.subject'
"(#yarnd)"
hahahahaha 🤣 Does your client allow you to do this or what? 🤔
#LetsMakeChartsFakeAgain
#LetsMakeChartsFakeAgain
#LetsMakeChartsFakeAgain
jenny
, tt
or any other client where fetches are driven by user interactions of invoking the app. What do we call this type of client? Hmmm 🤔 Then I can tell who uses yarnd
because they are "seen" more frequently 🤣