💾 Archived View for siiky.srht.site › tinylog.gmi captured on 2023-07-10 at 13:12:03. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-06-14)
➡️ Next capture (2023-09-08)
-=-=-=-=-=-=-
Random tiny thoughts that don't merit their own full-sized posts.
author: @siiky@siiky.srht.site
license: CC BY-SA 4.0
The presentation went well. The professors are hard to impress, but they didn't point out anything wrong with the project. They gave 2 or 3 ideas/suggestions/"why didn't you do it this way?", that was all. Apparently they didn't expect a multi-threaded data server, but were glad we used ZMQ there too. I'm sad we didn't have the time for CRDT-based rate limiting.
In any case, this is it for the semester and for the year, all I have to do now is wait for the grades, enjoy my non-vacations and think about a subject for the master's thesis... :|
Yesterday for the first time in several months I took a few hours to just relax and watch a film.
Uni is aallmost over. Had to work a big PA for these past two weeks, and tomorrow will be the presentation (40min long; oof).
We had to develop a geo-replicated KV datastore with client causal consistency. It had three big components: clients, session servers, and data servers. We wrote the clients in Erlang (our choice), the session servers in Erlang (requirement), and the data servers in Java (requirement). Clients and session servers communicated through TCP, and session servers and data servers communicated through ZeroMQ.
It had quite a few (proposed) features, we had to skip a couple for lack of time, and, personally, prefering to get shit just right instead of kinda working.
It was awesome working on a semi-serious project in Erlang and with ZeroMQ.
O seguro morreu de velho; o desconfiado ainda Ă© vivo.
From EP08 of Ballet Rose.
I haven't finished a book in so long I forgot to update my books list the day before yesterday when I finished Allegro...
I liked it and recommend it if fantasy is your thing. Plus, it was written by a fellow Geminaut!
Going through old stuff I (re)found this:
https://invidious.snopyta.org/watch?v=DVtNt-6OTM8
I like it a lot.
Opened a new PR for chumak to fix some inconsistencies I found while working on the other PR.
https://github.com/zeromq/chumak/pull/54
Opened a PR to add multipart message support for REQ sockets in chumak, the Erlang ZeroMQ library.
https://github.com/zeromq/chumak/pull/53
I'm listening again to the album I shared the other day ("how to ask for help") and it reminded me of Ulver's "Teachings in silence" ("Silence teaches you how to sing" + "Silencing the singing")!
https://ulver.bandcamp.com/album/silence-teaches-you-how-to-sing
https://ulver.bandcamp.com/album/silencing-the-singing
Situational puzzles, like the ones on the Dark Stories game available on the Ghouls' Android Play Store.
https://www.kith.org/logos/things/sitpuz/
https://lucyliyou.bandcamp.com/album/how-to-ask-for-help
One of the most exciting new things I've listened to recently.
I got a spider visitor.
It was shy initially, recoiled when I tried to take a closer look.
Fled when I first tried to move it outside with a sheet of paper, but eventually jumped on board the flying carpet. For reasons unbeknownst to me, it decided to jump off mid-flight into a bunch of cables next to my computer. We played a few rounds of catch, I failed every time, until eventually it decided again to jump on board the flying carpet.
This time, instead of jumping off mid-flight, it wouldn't jump off at all. I pointed its side of the paper to the ground but climbing upwards towards my hand was more of its fancy now. Rotated the paper again pointing to the ground, and again it climbed upwards towards my hand. A couple times of this, and I let it jump on my hand and walk around a little. Finally I forced it down because it was still work time and I had work things to do... :/
Friendly spider! :)
Found an allocator that supports creating/managing independent heaps. I never thought of this before, but it makes so much sense!
https://github.com/mjansson/rpmalloc
But it has VimEmulation! Well, so does every editor released in the past 20 years, either as part of it's initial offering or as some sort of addon (and yes, I am purposely ignoring the entire Emacs ecosystem. I know it's a great OS. It just needs a good editor). But they all suck. There's a huge difference between mimicking some keybindings and actually being a MODAL editor. It's really not just 'hjkl' that I miss. It's an entire way of working. Everything is either a keybinding or a command or both. Usually both. No menus in sight. No side panes. No bottom panes. Just a window, some (optional) line numbering and a status bar at the bottom.
Someone finally said it, thank you!
Luckily, yt-dlp can download the episodes:
kB45oC/unfree-public-service.gmi
https://github.com/yt-dlp/yt-dlp
Turkish elections are happening!
gemini://gemi.dev/cgi-bin/wp.cgi/view/en?2023_Turkish_general_election
Or maybe what I should write about is the general tool-building philosophy that permeates all of the work I do. Working with more junior devs I find a lot of them don’t think to build things to make their life easier- that tools are things that are made by other people.
The amazing fractal nature of software development makes the construction of bespoke tools both easy and incredibly powerful. It’d an essential part of the process, and for me one of the most stimulating and rewarding parts.
https://mastodon.sdf.org/@nf/110364017828315978
We're carpenters and smiths. We use tools to make other tools and things!
Found an interesting site and an interesting new OS from a MNT Pocket Reform update!
https://plan9.stanleylieber.com/uxn/
https://genode.org/about/index
https://genodians.org/nfeske/2023-05-11-sculpt-os
Saw a sparrow trying to catch a bumblebee mid-flight, very impressive. At some point the sparrow had to slow down so much it almost looked like it was stalling mid-air (like hummingbirds are known to be able to do), before resuming flight after the bumblebee.
In the end the bumblebee got away.
gemini://gemi.dev/cgi-bin/wp.cgi/view/en?Eurasian_tree_sparrow
gemini://gemi.dev/cgi-bin/wp.cgi/view/en?Bumblebee
gemini://gemi.dev/cgi-bin/wp.cgi/view/en?Hummingbird
So many years after the computer systems class, I finally know now the difference between the logical and the arithmetic shifts!
wiki/v.chibiakumas.riscv_assembly_programming.gmi
Found this picture of Ancient Egyptian sandals. Pretty amazing, how the sole was produced and how they're held onto the feet.
It is helpful for us, in the study of animals, to recognize that the spread and growth of animal populations is not driven by some chance, random process, or by some law of biological evolution; but rather, animals are designed by their Creator for this purpose, and God has somehow instilled in them the drives or instincts necessary to fulfill this purpose. It is a feature of creation science that we are regularly discovering interesting ways in which animals are designed to adapt to the varied environments in which they find themselves; this makes the study of animals not only interesting, but gives us many reasons to praise the Creator for his creative handiwork.
Genesis 8:14-19: Stepping Out of the Ark
Somehow, people believe fictional texts written a couple thousand years or more ago to be fact.
They think there's an omnipotent, omnipresent, omnithis and omnithat being, that created all other beings on this planet with an intent, a purpose for each of them. Being omniomni, this implies that all is also according to its will, never against.
Did this special being create us (human scum) so that we may abuse and kill other human scum then? Did it create animals and plants so that we human scum may abuse and kill and eat them? Are other animals and plants simply human scum fodder?
"Oh the special one's ways are incomprehensible to the mortals" or something like that...
The perfect excuse.
Shifting responsibility to an imaginary friend does not help anyone in anyway. It does not solve anything. Nor does believing in some fairy tale paradise. It IS NOT helpful to anyone in any way to believe that animals and plants have been created ("designed", sophisticated!) to be human scum fodder either.
To whoever is reading this, but especially to whoever believes in this bullshit special one and that animals and plants have been designed for a purpose, please watch this movie:
Much of the modern web is a fractal of dark patterns, it's made for humans in the same sense a zoo or a meat packing plant is made for animals.
(...)
AI-aided software development on the other hand permits no such thing. To a novice it may seem like it would since things speed up quite a lot, but in practice it only makes the easy things in coding easier. It isn't entering the code that is the obstacle.
Entering more code faster doesn't make the code go faster or make it more correct, it makes it slower and introduces more failure points. It makes for more complicate designs.
(...)
It's perhaps best parallelled by the changes introduced by the digital word processor. We haven't had an explosion of great novels since this happened. What we've seen is an explosion of books with a tweet's amount of new ideas padded into 450 pages with pointless anecdotes and repetition. A stark contrast to the books written by hand in the past, where every sentence and every word is measured and well considered.
(...)
Rarely if ever has it been a good deal to be a renter.
gemini://marginalia.nu/log/78-on-ai-veganism.gmi
Because of a colleague from work (who's a bit more of a security and privacy nut than me (this is a compliment!)) I finally installed LineageOS on a phone, and it seems to function well!
Just out of luck, I "have" 2 other phones of the same model as mine (Xiaomi Mi A2). One of those is my dad's previous phone that he doesn't use anymore. Perfect opportunity! Plus, my mom's phone is giving its last breaths... Plusperfect opportunity!
LineageOS info page for the Xiaomi Mi A2
It's not officially supported anymore by the project, which just means there are no downloadable builds now, but otherwise everything worked well and on the first try (almost, but it was my fault).
I was surprised by how heavy the whole build process is (disk space, CPU, RAM, time)! The Android and other relevant repositories (for this phone model) use up ~174GB of disk; with all built artifacts and products it's using ~225GB now; built artifacts of this phone alone are ~26GB. The first build took more than 6h on my Ryzen 3 2200G. It's likely this time could've been shortened by using an SSD, but meh and I don't a large enough SSD anyway. The first build failed 2 or 3 times due to RAM usage (I have 32GB, which is enough, but I also use vm.overcommit_memory=2, which more conservatively rejects memory allocations).
https://www.kernel.org/doc/Documentation/vm/overcommit-accounting
That was last week. Because my first install attempt, today I did it again. Took the chance to update the repos, and the build time was only ~1h.
There's this thing I started too long ago but never finished because (a) I didn't have anyone to experiment with, and (b) references are so annoying... I couldn't make proper cross-referencing work in both HTML and PDF.
functional_programming/curriculum.org
Now that I got two people maybe interested, I'm thinking I should rewrite this in Pollen (and include a couple other ideas that I got meanwhile).
I dreamt of him today. Fluffy and meek as ever.
During the past couple of years, housing prices in Portugal have gone way up (renting and buying). It was even more noticeable this year.
Yesterday there was a public demonstration and rally in 6 of the largest cities simultaneously, appealing to the politicians in power to put better measures in place. You can read more in the following news article.
Some years ago I started writing a shitty implementation of (integer) BigNums (i.e. "infinite" precision integer arithmetic) in C, as part of my c-utils set of tools. At the time I was stuck with what seemed to be a bug in the addition of digits to a bignum AND/OR a bug in the conversion to/from strings in base 16.
But it turns out it was neither! Addition of digits to a number is working just fine; and so is conversion to/from strings!
The bug was instead in the example program itself, in the usage of sbn_add_digit_u() (the non-destructive (i.e., functional) counterpart of sbn_add_digit_ud()). The likely root problem is in sbn_clone().
For now I haven't advanced the library any further (just moved some configs around), but this is really good news for me and the library.
https://git.sr.ht/~siiky/c-utils/tree/sbn/item/include/utils/sbn.h
What does it mean to like someone or something?
Yesterday night I learned of Disjoint Sets from a friend. The data structure and algorithm are so simple that I just couldn't resist, I compulsively implemented my own in Scheme.
Scheme (programming language) § disjoint-set
Unfortunately it's an imperative implementation :( I would much prefer a purely functional implementation but I didn't find a functional vector library that I liked. I guess I'll have to implement Okasaki's functional vectors some day!
Anyone has a ThinkPad X201 keyboard they'd like to sell? My S key is broken for some time, but lately it's starting to pop out more and more frequently... :(
Imma just leave this here:
https://daily.bandcamp.com/lists/filipino-american-punk-list
Welp, it's been almost half a year since I mentioned the SourceHut IRC bouncer (§2022-09-19 11:23)... That didn't work out so well. Apparently irssi doesn't have the necessary features to be able to fetch past history.
During FOSDEM 2023 I got to try Matrix a bit more (I already had an account) and, well, it's not all that bad. The "default" web client (Element) kinda sucks (because, web). But I got to try FluffyChat (desktop & Android), Nheko, Syphon, and Element (on Android), and here's the verdict:
So on the desktop I'm probably settled on Nheko for now. On Android I'm still given both FluffyChat and Element a try, but I'm tending to FluffyChat.
In the future I'm thinking of having a couple of separate accounts so FluffyChat is so far the winner there -- it's the only client of those I tried that has (beta) support for several accounts. So unless Nheko changes that eventually, I'mma move...
https://nheko-reborn.github.io
https://f-droid.org/packages/im.vector.app
Just created and published my first Lua library! It's just a port (of sorts) of my gmi.scm library.
https://luarocks.org/modules/siiky/gmi
The "wiki"-like thing is kinda live! I still don't link to it from the main capsule's index, but it's been there for a few days. I've added almost all of the talks I watched at FOSDEM 2023 plus a few more pages.
The wiki has no search functionality -- it's all statically server after all. So the only way to discover something through Gemini is to browse the lists. There are lists of all pages (ordered by title/create/update), and there are lists of pages by tag (ordered by update).
Have a look!
I saw this project, Task.
It describes itself thus:
Task is a task runner / build tool that aims to be simpler and easier to use than, for example, GNU Make.
Ok, good, it starts well!
Once installed, you just need to describe your build tasks using a simple YAML schema in a file called Taskfile.yml:
Noped right there and then.
When you send an email, and get a reply back starting with "Hi <your name>," why is it that they NEVER just copy&paste your name from your signature, even though your name is RIGHT FUCKING THERE because they just fucking top-posted? It really grinds my gears.
If they start the email with "Hi, <this or that>", that is, without mentioning your name, all good! But they go through the work of typing out your name as they saw it in your signature, but fucking mistype it?
HURGH!
2023-02-02: A thought I just had
It’s often quite easy to register one’s displeasure with someone else’s idea, but oftentimes orders of magnitude more difficult to craft something that might help him see the error of his ways.
Indeed! Coincidentally, today I was reading "The Second Thoughts of an Idle Fellow" where Jerome dedicates a few pages about this.
I'm right now thinking about making a read-only "wiki"-like thing where I dump all the info (such as notes, &c) that may be made public.
Started adapting the build system support it, most likely under /wiki/
I'm watching the Vikings series. Yesterday I watched S03E03 and there was this bit:
Ragnar:
Is she still alive?
Bjorn:
Yes. But her face...
Ragnar:
[funny face: stop being stupid and don't say that so close that she can hear you]
Bjorn:
[sigh]
It is my fault. I didn't protect her.
Ragnar:
That is what her shield is for. We fight. That is how we win and that is how we die. Do you understand?
Bjorn:
But she is with child!
Ragnar:
[look and walk away in disbelief]
And you let her come? Huh?
[bitch slap Bjorn]
She will probably die, with your child in her belly, and it will be your fault, because you have the strength of a man, but the will of a little girl. I can't believe you are my son.
[push Bjorn's face away with one hand, almost shouting] I can't even look at you!
Rollo:
I do not think she will die.
She wants to live. She has a lot to live for. But if she hears you weeping and lamenting, she will choose to die. Be strong. Be a man. Coax her back from Valhalla. But make it worth her while, for she is already at the gates.
They're talking about Porunn, who was slashed in the face with a sword.
I didn't really understand Ragnar's reaction. Some women fight alongside the men, it seems they are, at least somewhat, equals. So was his reaction due to her being a woman? I think not. I think it was because she's pregnant. But then what's with "the strength of a man but will of a little girl" and Rollo's manly talk?
Maybe only women who fight (so-called shield-maidens) go through fighting training, or endure more of it, and because others don't they're "unequals".
Or maybe I'm just overthinking it. Or maybe it's just good ol' westernization!
Took another bit before this into the quotes yesterday.
Today I'm sick. Probably (hopefully) just a cold, though a bit aggressive.
Yesterday went to my grandmother's house and brought out an old slot car & track set. The cars didn't work because of the track contacts. My cousin and me decided to try and bring them back to life. Unearthed some copperwire, hacked together new contacts (surprisingly more difficult than it seemed at first), and got the motors running again, just like that! Sadly, after a few laps the cars intermittently worked and didn't, because the teeth of the motor gears weren't in great shape (and our contact work wasn't the best either tbh).
In all, we spent much more time trying to get the things working than racing, but it was good fun.
A friend the other day sent me this video about Roman concrete. I hadn't ever thought about the subject but, in fact, it's remarkable that Roman structures are still standing to this day (being human-made and all).
We FINALLY Figured Out The Secret of Roman Concrete
This specific video suggested that how/why it worked was something we discovered only recently. However...
How to Make Roman Concrete (4 Different Materials, 4 Different Strengths)
Not so much? I couldn't quite understand what's up with that. But I learned of Roman concrete, interesting!
FRIENDLY REMINDER: Given that there's so much wrong with it, it's a grave mistake to confine our quests for knowledge within the very limited box that is our society.