Theyāre all talks, not real hands-on trainings like you did.
I love listening to good, well-structured talks. Problem is, not everybody is a good speaker and many screw it up. š„“ Iām certainly not a great speaker, which is why I gravitate more towards āworkshopsā, in the hopes that people ask questions and discussions arise. Doesnāt always work out. 𤣠At the very least, I almost always have some other person connect to the projector/beamer/screenshare and then they do the stuff ā this avoids me being wwwwaaaaaaaaayyyy too fast.
We are usually drowned in stress and tight deadlines, hence events like today are super rare ⦠We used to do it more often until ~10 years ago.
Once a year the security guys organize a really great hacking event, though.
Oh dear, Iād love to participate in that. 𤯠That sounds like a lot of fun. (Why donāt we do this?!)
@movq@www.uninformativ.de Interesting internal education sessions are way too infrequent here as well. There are a bunch of āknowledge transferā meetings actually, but 90% of the topics already sound totally boring to me. The other 9% talks turned out to be underwhelming, sadly. I only attended a single one where it was delivered what has been promised. Theyāre all talks, not real hands-on trainings like you did.
Once a year the security guys organize a really great hacking event, though. Teams can volunteer to hand in their software dev instances and all workmates are invited to hack them and report security vulnerabilities. Thatās a lot of fun, but also gets frustrating towards the end when you donāt make any progress. :-) Thereās also some actual hands-on training in advance for preparation of the two days. Unfortunately, I missed the last event due to my own project being very stressful at the time.
When I had a Do What You Want Day I also show my direct teammates what I learned in the hopes of this being interesting to them as well. Iām the only one in my team using this opportunity, sadly.
@prologic@twtxt.net This person isnāt particularly happy with this study:
https://mastodon.social/@grimalkina/114717549619229029
I donāt know enough about these things to form an opinion. 𫤠I sure wish it was true, though. š
I did a ālectureā/āworkshopā about this at work today. 16-bit DOS, real mode. š¾ Pretty cool and the audience (devs and sysadmins) seemed quite interested. š„³
- People used the Intel docs to figure out the instruction encodings.
- Then they wrote a little DOS program that exits with a return code and they used uhex in DOSBox to do that. Yes, we wrote a COM file manually, no Assembler involved. (Many of them had never used DOS before.)
- DEBUG from FreeDOS was used to single-step through the program, showing what it does.
- This gets tedious rather quickly, so we switched to SVED from SvarDOS for writing the rest of the program in Assembly language. nasm worked great for us.
- At the end, we switched to BIOS calls instead of DOS syscalls to demonstrate that the same binary COM file works on another OS. Also a good opportunity to talk about bootloaders a little bit.
- (I think they even understood the basics of segmentation in the end.)
The 8086 / 16-bit real-mode DOS is a great platform to explain a lot of the fundamentals without having to deal with OS semantics or executable file formats.
Now that was a lot of fun. š„³ Itās very rare that we do something like this, sadly. I love doing this kind of low-level stuff.
#MaradoWeekly #WeeklyPlant Week 25
[47°09ā²04ā³S, 126°43ā²58ā³W] Transponder still failing ā switching to analog communication
I was this š¤ close to buying a couple of baby-cactus plants but, I couldnāt ⦠I still have to save up for that future screen printing project. š„²
Visit the Rabbit Hole - telnet to woofer.v6.rocks:9999
** My measurer **
My dad is an electrical engineer and physicist. Measuring things is a core part of his professional life, and something he seems to spend a lot of time doing around the house. This is all to say my dad is relatively expert in the ways of measuring things so I think itās hilarious that he calls absolutely anything he is using to measure anything elseāmy measurer.ā Measuring tape, oscilloscope, scale, volt meter, bubble level, table spoons, whatever. Theyāre allāmy measurer.ā ā Read more
[47°09ā²39ā³S, 126°43ā²13ā³W] Bad satellite signal ā switching to analog communication
#Meta to the #EU: āthe focus should be on creating a regulatory infrastructure that ensures any licence that is sufficiently permissive for the user is considered open source, rather than anointing specific licences as āopen sourceā.ā
Brilliant, sure, letās ignore existing definitions and go with gut feeling (incidently, Meta has a gut feeling generator).
Option and error handling. (Or the more complex Result, but itās easier to explain with Option.)
@lyse@lyse.isobeef.org lol ā I explicitly kept them in there so that the code is easier to understand for non-Rust people š¤Ŗš
@movq@www.uninformativ.de Yeah, not too bad. I completely agree with you on completeness. Also, I hate complexity without having to learn that during on-calls. :-)
Finally, the two drawers are mounted on the workbench. Some kind of a lid board on top to keep the dust out is still missing. I also gotta build the drawer inserts for the saws.
I upcycled decades old table football aluminium pipes to become my handles. The spacers are made from the inner tube. Two minutes of handsanding with 400 grit sandpaper polished it up nicely.
On my blog: Free Culture Book Club ā First Woman ā Dream to Reality https://john.colagioia.net/blog/2025/06/21/first-woman-1.html #freeculture #bookclub
Option and error handling. (Or the more complex Result, but itās easier to explain with Option.)
@prologic@twtxt.net Iād say: Yes, because in Go itās easier to ignore errors.
Weāre talking about this pattern, right?
f, err := os.Open("filename.ext")
if err != nil {
log.Fatal(err)
}
Nothing stops you from leaving out the if, right? š¤
@movq@www.uninformativ.de Iām feeling SO dumb right now š
I used to think !! was a sudo argument and never used it out of that context! Thanks for the $(!!) tip š¤
Option and error handling. (Or the more complex Result, but itās easier to explain with Option.)
@movq@www.uninformativ.de Is this much different to Goās error handling as values though really? š§š¤£š
(Of course, if weāre talking about a project youāre doing for a customer and the customer keeps asking for new stuff, then youāre never done, and you have to think ahead and expect changes. Is that what they mean? š¤)
Saw this on Mastodon:
https://racingbunny.com/@mookie/114718466149264471
18 rules of Software Engineering
- You will regret complexity when on-call
- Stop falling in love with your own code
- Everything is a trade-off. Thereās no ābestā 3. Every line of code you write is a liability 4. Document your decisions and designs
- Everyone hates code they didnāt write
- Donāt use unnecessary dependencies
- Coding standards prevent arguments
- Write meaningful commit messages
- Donāt ever stop learning new things
- Code reviews spread knowledge
- Always build for maintainability
- Ask for help when youāre stuck
- Fix root causes, not symptoms
- Software is never completed
- Estimates are not promises
- Ship early, iterate often
- Keep. It. Simple.
Solid list, even though 14 is up for debate in my opinion: Software can be completed. You have a use case / problem, you solve that problem, done. Your software is completed now. There might still be bugs and they should be fixed ā but this doesnāt āaddā to the program. Donāt use āsoftware is never doneā as an excuse to keep adding and adding stuff to your code.
Okay, hereās a thing I like about Rust: Returning things as Option and error handling. (Or the more complex Result, but itās easier to explain with Option.)
fn mydiv(num: f64, denom: f64) -> Option<f64> {
// (Letās ignore precision issues for a second.)
if denom == 0.0 {
return None;
} else {
return Some(num / denom);
}
}
fn main() {
// Explicit, verbose version:
let num: f64 = 123.0;
let denom: f64 = 456.0;
let wrapped_res = mydiv(num, denom);
if wrapped_res.is_some() {
println!("Unwrapped result: {}", wrapped_res.unwrap());
}
// Shorter version using "if let":
if let Some(res) = mydiv(123.0, 456.0) {
println!("Hereās a result: {}", res);
}
if let Some(res) = mydiv(123.0, 0.0) {
println!("Huh, we divided by zero? This never happens. {}", res);
}
}
You canāt divide by zero, so the function returns an āerrorā in that case. (Option isnāt really used for errors, IIUC, but the basic idea is the same for Result.)
Option is an enum. It can have the value Some or None. In the case of Some, you can attach additional data to the enum. In this case, we are attaching a floating point value.
The caller then has to decide: Is the value None or Some? Did the function succeed or not? If it is Some, the caller can do .unwrap() on this enum to get the inner value (the floating point value). If you do .unwrap() on a None value, the program will panic and die.
The if let version using destructuring is much shorter and, once you got used to it, actually quite nice.
Now the trick is that you must somehow handle these two cases. You must either call something like .unwrap() or do destructuring or something, otherwise you canāt access the attached value at all. As I understand it, it is impossible to just completely ignore error cases. And the compiler enforces it.
(In case of Result, the compiler would warn you if you ignore the return value entirely. So something like doing write() and then ignoring the return value would be caught as well.)
Now I could. A few minutes ago I posted one, and it went to the void. I canāt delete, though. I get a lovely 403.
On my blog: Toots 𦣠from 06/16 to 06/20 https://john.colagioia.net/blog/2025/06/20/week.html #linkdump #socialmedia #quotes #week
@aelaraji@aelaraji.com I use Alt+. all the time, itās great. š
FWIW, another thing I often use is !! to recall the entire previous command line:
$ find -iname '*foo*'
./This is a foo file.txt
$ cat "$(!!)"
cat "$(find -iname '*foo*')"
This is just a test.
Yep!
Or:
$ ls -al subdir
ls: cannot open directory 'subdir': Permission denied
$ sudo !!
sudo ls -al subdir
total 0
drwx------ 2 root root 60 Jun 20 19:39 .
drwx------ 7 jess jess 360 Jun 20 19:39 ..
-rw-r--r-- 1 root root 0 Jun 20 19:39 nothing-to-see
@aelaraji@aelaraji.com Oh, thatās great! I havenāt heard about any of them before either. Thereās also a caveat though, that I ran right into the very first time I tried this in zsh:
$ ls > /dev/null
$ echo $_
--color=tty
Yeah, exactly what you think:
$ which ls
ls: aliased to ls --color=tty
Alt+. is going to be my favorite one! In the above, it would also give me /dev/null, which might be probably more what I would expect.
@movq@www.uninformativ.de omg yeah! this one looks cute too (iām weak to anything tux related!) but the commercial release has so much unpolished charm i love it! btw itās on [internet archive(https://archive.org/details/TuxRacerCD) if you wanna download & play it :]
I also just noticed that the performance issue doesnāt affect all games. š¤ Sigh, Iāll just downgrade for the time being. Not in the mood to fiddle with this.
Just discovered how easy it is to recall my last arg in shell and my brain went 𤯠How come Iāve never learned about this before!? I wonder how many other QOL shortcuts Iām missing on š„²
@kat@yarn.girlonthemoon.xyz I recommend you to remain curious without crossing the threshold. Unless, of course, you truly want to follow a never-ending rabbit hole. š
@lyse@lyse.isobeef.org as long as i get to see silly little tux sliding around in a silly game older than me itās ok even if i committed windows/wine crimes to see it <33
I probably should implement some editing feature in tt. Sure, I can easily edit my feed in vim to fix typos. But then I still have to manually remove the old message from the cache so that the new message is inserted on next reload and I donāt end up with āduplicatesā in the message tree.
@movq@www.uninformativ.de Must be a decode ago that I last used Wine. I wanted to play GTA2, but that didnāt go as planned.
pledge() and unveil() syscalls:
@movq@www.uninformativ.de That sounds great! (Well, they actually must have recorded the audio with a potato or so.) You talked about pledge(ā¦) and unveil(ā¦) before, right? I somewhere ran across them once before. Never tried them out, but these syscalls seem to be really useful. They also have the potential to make one really rethink about software architecture. I should probably give this a try and see how I can improve my own programs.
Speaking of Wine, Arch Linux completely fucked up Wine for me with the latest update.
- 16-bit support is gone.
- Performance of 3D games is horrible and unplayable.
Arch is shipping a WoW64 build now, which is not yet ready for prime time.
And then I realized that thereās actually only one stable Wine release per year but Arch has been shipping development releases all the time. Thatās quite unusual. Iām used to Arch only shipping stable packages ⦠huh.
Hopefully things will improve again. Iām not eager to build Wine from source. Iād rather ditch it and resort to my real Windows XP box for the little (retro)gaming that I do ⦠š«¤
Speaking of Wine, Arch Linux completely fucked up Wine for me with the latest update.
- 16-bit support is gone.
- Performance of 3D games is horrible and unplayable.
Arch is shipping a WoW64 build now, which is not yet ready for prime time.
And then I realized that thereās actually only one stable Wine release per year but Arch has been shipping development releases all the time. Thatās q
@kat@yarn.girlonthemoon.xyz lol, oof, well, better than nothing. š„“ It appears to run quite well. š¤
@kat@yarn.girlonthemoon.xyz UPDATE: getting it to run natively through a VM and other means all failed! so i did the cursed thing and tried the windows installer in wineā¦..
Felt the need to make this stupid reference - nobody will get, most likely. Feel free to guess (the file name and todays date, are both a hint), any other notes and opinions appreciated too, idk if I ever drew a standing one, from the front, before.
Achievement Unlocked: I have finally gotten to sit my ass down and watch Back to the future from start to the end.
@prologic@twtxt.net But is there a source for it? Am I too stupid to use that site? š¤Ŗ
@prologic@twtxt.net ⦠or just bullshit.
Iām Alex, COO at ColdIQ. Built a $4.5M ARR business in under 2 years.
Some āC-levelā guy telling people what to do, yeah, I have my doubts.
To really annoy my neighbors and everyone in a 5 mile radius, I might take my Model M and type a blogpost on the balcony. š
[47°09ā²58ā³S, 126°43ā²17ā³W] Storm recedes ā back to normal work
** growing good **
āā¦for the growing good of the world is partly dependent on unhistoric acts; and that things are not so ill with you and me as they might have been, is half owing to the number who lived faithfully a hidden life, and rest in unvisited tombs.ā
George Eliot, Middlemarch ā Read more
@movq@www.uninformativ.de neither do I š and Iām going full Albert Camus mode. Embracing the Absurdism of life just to cope, itās the only choice I have left.
i ordered some fun colorful new minidiscs so i can finally get back to recording my mixes :D looking forward to it
āThe only way to learn is to try. The best way to learn is to have fun.ā ā@ucodery@fosstodon.org
[47°09ā²55ā³S, 126°43ā²52ā³W] Automatic systems disengaged due to heavy rain
Unless your Terms of use update email looks and reads the same as the one I got yesterday from mastodon.social, I donāt wanna know about it, nor do I agree to it.
@aelaraji@aelaraji.com Iād love to have a positive, optimistic reply to that, but ⦠uhm ⦠I donāt. š¤£
@kat@yarn.girlonthemoon.xyz Ooh, Iāve got to bookmark that page. š
@aelaraji@aelaraji.com I wish I had the luxury of not reading that junk. š But instead, I have a Mutt hotkey that pipes an HTML mail through elinks ⦠Bah.
@prologic@twtxt.net Iām trying to call some libc functions (because the Rust stdlib does not have an equivalent for getpeername(), for example, so I donāt have a choice), so I have to do some FFI stuff and deal with raw pointers and all that, which is very gnarly in Rust ā because youāre not supposed to do this. Things like that are trivial in C or even Assembler, but I have not yet understood what Rust does under the hood. How and when does it allocate or free memory ⦠is the pointer that I get even still valid by the time I do the libc call? Stuff like that.
I hope that I eventually learn this over time ⦠but I get slapped in the face at every step. Itās very frustrating and Iām always this š¤ close to giving up (only to try again a year later).
Oh, yeah, yeah, I guess I could ājustā use some 3rd party library for this. socket2 gets mentioned a lot in this context. But I donāt want to. I literally need one getpeername() call during the lifetime of my program, I donāt even do the socket(), bind(), listen(), accept() dance, I already have a fully functional file descriptor. Using a library for that is total overkill and Iād rather do it myself. (And look at the version number: 0.5.10. The library is 6 years old but theyāre still saying: āNah, weāre not 1.0 yet, we reserve the right to make breaking changes with every new release.ā So many Rust libs are still unstable ā¦)
⦠and I could go on and on and on ⦠š¤£
@movq@www.uninformativ.de > That guy over there in the cornerā¦
Iām literally sitting in a corner chuckles. I rarely get any emails nowadays. But if I do and it is not plain-text, then my Mutt gets to bark at it and I, just⦠wonāt read it. š¤·š½āāļø
@movq@www.uninformativ.de Hahaha š This is gold! Iāve been following along with our ramblings on Rust. Whatās it gone and done to you now? š¤ I donāt think I can ever be friends personally, I feel ātoo stupidā to learn Rust š¤£
It all started in New York in the early 1980s. Click, now 85, and his friends were sitting at the long bar of the New York Athletic club reading magazine articles about boxing, fencing, judo and wrestling. āOne of my mates said, āDude, we donāt do any of those things.āā They had to face it. They were dull. They decided to embrace their dullness.
As a joke, they started The Dull Menās Club, which involved some very silly, dull activities. They chartered a tour bus but didnāt go anywhere. āWe toured the bus. We walked around the outside of the bus a few times. And the driver explained the tyre pressures and turned on the windscreen wipers.ā
OpenBSD has the wonderful pledge() and unveil() syscalls:
https://www.youtube.com/watch?v=bXO6nelFt-E
Not only are they super useful (the program itself can drop privileges ā like, it can initialize itself, read some files, whatever, and then tell the kernel that it will never do anything like that again; if it does, e.g. by being exploited through a bug, it gets killed by the kernel), but they are also extremely easy to use.
Imagine a server program with a connected socket in file descriptor 0. Before reading any data from the client, the program can do this:
unveil("/var/www/whatever", "r");
unveil(NULL, NULL);
pledge("stdio rpath", NULL);
Done. Itās now limited to reading files from that directory, communicating with the existing socket, stuff like that. But it cannot ever read any other files or exec() into something else.
I canāt wait for the day when we have something like this on Linux. There have been some attempts, but itās not that easy. And itās certainly not mainstream, yet.
I need to have a closer look at Linuxās Landlock soon (āsoonā), but this is considerably more complicated than pledge()/unveil():
[47°09ā²03ā³S, 126°43ā²33ā³W] Transponder still failing ā switching to analog communication
@bmallred@staystrong.run Ahhh this is an agent Iām tryining to play the game of Connect3. It uses a library written in Go Iāve been working on that supports Neuroevolution using Genetic Algorithms. Some features include: Mutation, Speciation, Lamarckian Evolution/Inheritence.
@kat@yarn.girlonthemoon.xyz i linked the normal length edit instead of the full 15 minute music video because iām not gonna subject you all to that amount of my bullshit
(ā¦15 minute version is a great watch though)
@lyse@lyse.isobeef.org those are so annoying. except when theyāre idol tiktoks then theyāre fine to me
[47°09ā²09ā³S, 126°43ā²17ā³W] Storm recedes ā back to normal work
woke up so early that i have nothing to do
Righto, infusion time in the sauna! It started to lightly rain. Bah, whyās the heavy thunderstorm canceled?
Meh, the stupid shorts get longer. I need to increase my duration filter in order to ban all this garbage.
fn sub(foo: &String) {
println!("We got this string: [{}]", foo);
}
fn main() {
// "Hello", 0x00, 0x00, "!"
let buf: [u8; 8] = [0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x00, 0x00, 0x21];
// Create a string from the byte array above, interpret as UTF-8, ignore decoding errors.
let lossy_unicode = String::from_utf8_lossy(&buf).to_string();
sub(&lossy_unicode);
}
Create a string from a byte array, but the result isnāt a string, itās a cow š®, so you need another to_string() to convert your āstringā into a string.
- https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8_lossy
- https://doc.rust-lang.org/std/borrow/enum.Cow.html
I still have a lot to learn.
(into_owned() instead of to_string() also works and makes more sense to me, itās just that the compiler suggested to_string() first, which led to this funny example.)
@lyse@lyse.isobeef.org Rust is so different and, at the same time, so complex ā itās not far fetched to assume that I simply donāt understand whatās going on here. The docs appear to be clear, but alas ⦠is it a bugs in the docs? Is it a lack of experience on my part? Who knows.
By the way, looks like there was a bit of a discussion regarding that name:
@bender@twtxt.net @prologic@twtxt.net meanwhile i want to try microblog but canāt because not able to pay for it. They have trial butā¦
[47°09ā²55ā³S, 126°43ā²06ā³W] Working impossible due to blizzard
So I was using this function in Rust:
https://doc.rust-lang.org/std/path/struct.Path.html#method.display
Note the little 1.0.0 in the top right corner, which means that this function has been āstable since Rust version 1.0.0ā. Weāre at 1.87 now, so weāre good.
Then I compiled my program on OpenBSD with Rust 1.86, i.e. just one version behind, but well ahead of 1.0.0.
The compiler said that I was using an unstable library feature.
Turns out, that function internally uses this:
https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.display
And that is only available since Rust 1.87.
How was I supposed to know this? š¤Øš«©
@movq@www.uninformativ.de I HOPE SO TOO!!! when i found out there were boxes on ebay i just had to jump on it!!
Hey, Europe: Congratulations, we now have radioactive contamination in Iran. Are we going to continue selling weapons to Israel?
@bender@twtxt.net Yeah, well, itās a bit like twtxt. There is a Gopher community, but itās small. I actually donāt like that HTTP is so easily accessible. I donāt like it that much when people post links to my site on HackerNews or something like that. Too much exposure.
Gopher is a small world. Itās slow and cozy.
And much like twtxt, the protocol is simpleĀ®, so itās easier to tinker with it.
Soooo very very close! š

@bender@twtxt.net I know I know! I donāt know why I ever signed up and used it and still continue to pay for the silly thing. Twtxt/Yarn is so much better in every way š¤£
@prologic@twtxt.net I am finding writing my Notes very therapeutic. Just create a markdown file and commit, push, and itās live. Whatever comes to mind, whatever I want to keep as relevant. Silly things, more like a dump.
If I feel like it, I do. If not, I donāt. Not social, not intended for anyone to see them. I am enjoying it!
#MaradoWeekly #WeeklyPlant Week 23
@bender@twtxt.net I just babble on Twtxt 𤣠I honestly find that I donāt realy have the time nor the energy to āblogā in full really, I rarely do š¢
@movq@www.uninformativ.de why Gopher to babble, and not just HTTP? I mean, may as well just write plain text files on your machine, and leave them there, right?
Gopher and Mastodon are two completely different things. Thatās where my confusion comes from.
Iām now going to delete 7,336 old photos (previews, resized web versions and index.htmls) and reclaim 3.3 GiB disk space on my laptop.
@movq@www.uninformativ.de Me too š ā Speaking of which i know youāve lost a bit of āmojoā or āenergyā (so have i of late), rest assured, I want to keep the status quo here with what weāve built, keep it simple and change very little. What weāve built has worked very well for 5+ years and we have at least 3 very strong clients (maybe 4 or 5?).
@prologic@twtxt.net do you remember Hamachi? Tailscale/Headscale is Hamachi on steroids. They are used primarily for creating a VPN among all your devices so they can talk to one another as if they were on the same LAN, even when theyāre not. That was, mostly, my WireGuard usage.
I still have WireGuard runningābecause it is so lite that it doesnāt matterāto use as regular VPN, but Headscale keeps all my devices connected forming their own āmini-Internetā 100% of the time.
On my blog: Toots 𦣠from 06/09 to 06/13 https://john.colagioia.net/blog/2025/06/13/week.html #linkdump #socialmedia #quotes #week
@bender@twtxt.net Whatās awesome about it btw? I use WireGuard pretty heavily here. And my entire family also use it to keep a VPN connection back to our home network
Iāve told that whomever has this link will be able to watch live the third and edition of āSecret Garden festivalā.
āWe bring you the delights of Scott Marshall Hurdy Gurdy, and Bristolās Dead Space Chamber Music, with a little Sieben to kick off proceedings. Come join us in the garden!ā
Starting now!
@thecanine@twtxt.net ⦠all these stupid, pointless āappsā are stuff that I eventually have to remove from family devices ⦠Sigh.
@bender@twtxt.net Both Gopher and Mastodon are a way for me to ābabbleā. š I basically shut down Gopher in favor of Mastodon/Fedi last year. But the Fediverse doesnāt really work for me. Itās too focused on people (I prefer topics) and I dislike the addictive nature of likes and boosts (Iām not disciplined enough to ignore them). Self-hosting some Fedi thing is also out of the question (the minimalistic daemons donāt really support following hashtags, which is a must-have for me).
Iāll probably keep reading Fedi stuff, I just wonāt post that much, I think.
@movq@www.uninformativ.de how does Gopher relates to Mastodon? Are you getting off the Fedi completely?
@prologic@twtxt.net Yeah, itās difficult, you often donāt get what youād expect. They also make heavy use of 3rd party libraries. IIUC, for random numbers, they refer to this library. Iāve read many times that the Rust stdlib is intentionally minimalistic (to make it easier to maintain and port and all that).
Iām struggling with this, using 3rd party libs for so many things isnāt really my cup of tea. Iāll probably make my own tiny little āstandard libraryā. Itās silly, but I donāt see any other options. š¤·
@movq@www.uninformativ.de I had to look it up! āIs decaf coffee real coffee?ā
āYes, decaf coffee is real coffee. Itās made from the same coffee beans as regular coffee, but the caffeine content is significantly reduced through a decaffeination process. This process involves removing 97% or more of the caffeine, leaving behind the coffeeās flavors and aromas.ā
OK then! š
Great article from Tailscale about how security policies weāve often seen in many large complex organizations that we all love to hate donāt actually provide the security that we assumed.
@quark@ferengi.one Ta. Hmm, whatās wrong with the blue text color? Is it too dark on the black background for you? :-?
Normal links are blue while images are teal. I thought I differentiate the two if I easily can. The underline of URLs comes from my terminal and is not ttās fault.
Configuring colors is in the todo list. But of course, providing a sane default is definitely something Iād like to have.
Lately (since there are AI summaries at the top), each time I Google for the answer to a question, the AI summary has at least a part of the answer wrong. It makes up laws that do not exist, books that were never published - in sum, well written sentences that make linguistic sense, but with made up content.
Let me repeat: each time. Maybe I only search for hard stuff, or fringe stuff, or this some other explanation - but seriously, itās hard to understand how isnāt Google ashamed of its AI overviews⦠or not sued under some regulation regarding fake news.
PS: yes, I know, my fault for using Google as a search engine.
@prologic@twtxt.net will do. No worries, not a show stopper. I will suggest that the muted numbered list not be sorted, but latest muted first. That way we have a better idea. Maybe adding timestamps to those too? Just a thought.
@bender@twtxt.net remind me to look into this a bit later because Iām starting to suspect thereās a weird behavior in the system š§
@aelaraji@aelaraji.com Iām glad to hear that you donāt find it too terrible. :-) There are still heaps of bugs to fix and things to improve. Bucketloads of them.
Of Pointlessware and CEOs
Had a moment, to check up on some of the companies, I stopped following, get to The Browser Company and see their newest product - itās just Chrome, with an AI chat window pop-up and thatās it. Something Canary Chrome, come with already.
I see Theo from T3.gg, making fun of it on YouTube and promoting āhisā product - an AI chat app, where you can choose from multiple models, by all the popular AI companies. Something I already have a worse version of, at work and I donāt even use it.
Thereās also an interview, about the future of virtual keyboards, surely this is at least actually a real thing and not more pointless horse shit. I check the website of the keyboard SDK, and itās around 20 identical apps, that just copy the same keyboard SDK/api and slap chatgpt features on top - in the App Store, these are surrounded by chatgpt clones, that just feed the users prompts, into the real thing and put ads, next to the answers.
āLater in the evening, posting on X, #Macron said: āIām banning #socialmedia for #children under 15. Platforms have the ability to verify age. Letās do it.ā
French authorities are already progressing with efforts to force certain social media sites ā including X, Reddit, Bluesky and #Mastodon ā to introduce age verification, by classifying them as pornographic websites.
French measures forcing porn sites to verify their usersā ages came into effect on June 7, prompting the worldās largest porn website, Pornhub, to stop operating in France. Demand for virtual private network services, which allow users to trick websites into thinking they are in a different location, immediately surged.ā
https://www.politico.eu/article/emmanuel-macron-social-media-ban-minors-france/
[47°09ā²39ā³S, 126°43ā²54ā³W] Transponder still failing ā switching to analog communication