@arne@uplegger.eu Yeah SSE + HTMX is basically all you need really. The whole complicated/complex JavaScript ecosystem is overkill.
@lyse@lyse.isobeef.org In my case it was a silver necklace, a hummingbird with a wing connected with the cold welding I mentioned using thin brass wires.
It made it in a goldsmithing class (I went to a private craftmanship high-school) so no phones allowed (no photos of it) and no ātake homeā of the works.
Hereās a rough sketch of it drawn by memory, the dots in the wing is where it connects to the body.
The technique is basically the same as i described, but the scale is much smaller, the whole piece was about 5-6 cm on the largest side.
The rivet was made by drilling a hole through the parts, than with a short and thicker drill you widen the hole on the surface to let the rivet settle flatter on the piece, then with a rubber hammer you hit it to flatten the head until itās snug on the hole, lock them together by doing the same on the other side.
Note that widening the hole with a thicker drill head wonāt make a difference with bigger holes, mine had holes of about 1-2 mm of diameter maximum.
Hereās a sketch of what is going on for clarity.
@bender@twtxt.net We have quite a few that are basically part of our friendly neighborhood. They knew we wonāt chase them aware, scare them, etc. In fact some of us find little cockroaches to feed them, tose āem up in the air and watch them sweep in and grab the little suckers š¤£
Hi everyone, hereās a little introduction of my twtxt client (still WIP).
The client Iām developing is a single tenant project that runs entirely in the browser (it might use an optional backend).
Itās entirely based on native web-components and vanilla JS, it is designed to act closer to a toolkit than a full-fledged client, allowing users to āDIYā their own interface with pure html or plain javascript functions.
Users can also build their own engines by including a global javascript object that implement the defined internal API (TBD).
Iām planning to build a system that is easy enough to build and use with any skill level, using only pure html (with a homebrew minimal template engine) or via plain JS (Iāll be also providing some pre-made templates too).
Everything can be self-hosted on any static hosting provider, this allows to spread twtxt within communities like Neocities and similarly hosted websites (basically any Indieweb/Smallweb/Digital garden website and any of the common GitHub/Lab/Berg/lify Pages).
It will be probably named something like TxtCraft or craf.txt but Iām not really sure yet⦠š¤ (Maybe some suggestions could help)
Iām still in the experimental phase, so thereās no decent source-code to share yet, but it will soon enough!
Pretty happy with my zs-blog-template starter kit for creating and maintaining your own blog using zs š Demo of what the starter kit looks like here ā Basic features include:
- Clean layout & typography
- Chroma code highlighting (aligned to your site palette)
- Accessible copy-code button
- āOn this pageā collapsible TOC
- RSS, sitemap, robots
- Archives, tags, tag cloud
- Draft support (hidden from lists/feeds)
- Open Graph (OG) & Twitter card meta (default image + per-post overrides)
- Ready-to-use 404 page
As well as custom routes (redirects, rewrites, etc) to support canonical URLs or redirecting old URLs as well as new zs
external command capability itself that now lets you do things like:
$ zs newpost
to help kick-start the creation of a new post with all the right āstuffā⢠ready to go and then pop open your $EEDITOR
š¤
@prologic@twtxt.net the simplest thing to do is to completely forgo hashing anything because we are communicating using plain text files right now :3 while i agree hashes are incredibly helpful in the backend im not sure it has a place outside of it, it basically eliminates two core design principals of twtxt (human readability and integrating well with unix command line utilities) and makes new clients more difficult to build than it should be
index.md
a prehook
and a few utilities:
@bender@twtxt.net Yes I did about a week or so ago. It took me a lot of effort to get the content even rendered in the first place. LOL I had to basically export my blog as HTML (can you believe that?!) ā The Hugo export just didnāt work at all š¤£
@zvava@twtxt.net love the direction this is heading, hope this soon evolves into a basic Android app, usable with any instance.
@lyse@lyse.isobeef.org Iām looking for an OS that runs better than Windows (š¤®) and through which I can do basic stuff like read RSS feeds and browse geminispace; but which I can also learn from.
Hmm, gnu.org is slow as heck. Shorter HTML pages load in about ten seconds. This complete AWK manual all in one large HTML page took a full minute: https://www.gnu.org/software/gawk/manual/gawk.html Is there maybe some anti AI shenanigans going on?
In any case, I find the user guide super interesting. My AWK skills are basically non-existent, so I finally decided to change that. This document is incredibly well written and makes it really fun to keep reading and learning. Iām very impressed. So far, I made it to section 1.6, happy to continue.
@dce@hashnix.club Ooops š Hope you still have enough money for the basics š¤ Iām doing okay though!
@movq@www.uninformativ.de Right now Iām basically just blocking entire ASN(s) at this point and large blocks of IP(s) from Anthropic, OPenAI, Microsoft and others.
** Make awk rawk **
A friend online recently replied to something I wrote about awk by saying:
[ā¦] itās a danged shame [awk] didnāt continue to evolve the way Ruby, Python, PHP have evolved over the decades.
I had exactly this thought while working on my slightly unhingedālets see if I can implement a basic scheme using awk by writing an assembler and VM in awk,ā skwak. Which eventually lead me to start noodling on how to layer in some modern niceties into awk, without breaking awkās portability.
⦠ā Read more
Desktop SSH->Pinephone->here. This is crazy. Sxmo is the best UI for the Pinephone, and maybe phones in general. Insane: basically dwm on a phone with gestures and built-in yt-dlp + mpv (among others).
@prologic@twtxt.net well, the ones down there (on your list) are pretty minimal, basic even. Yet, their pricing is super high (number wise, havenāt checked the equivalent from AUD to USD).
Someone did a thing:
https://social.treehouse.systems/@ariadne/114763322251054485
Iāve been silently wondering all the time if this was possible, but never investigated: Keep doing X11 but use Wayland as a backend.
This uses XWaylandās ārootfulā mode, which basically just gives you a normal Wayland window with all the X11 stuff happening inside of it:
https://www.phoronix.com/news/XWayland-Rootful-Useful
In other words, put such a window in fullscreen and you (more or less) have good old X11 running in a Wayland window.
(For me, personally, this wonāt be the way forward. But itās a very interesting project.)
Hahaha, Iām sure there were well over one thousand fireflies today! Basically at all times I could watch at least 15 of them around me. At better spots where one could see a few meters into the forest, there were easily 30 individuals, probably more. One even landed on my small finger. I didnāt feel anything at all, but my finger glowed. :-) Awwww! After a 20 meters ride it took off.
But it looks like I have to go already at 21:30 at sunset the next days. Today, I left the house at 22:00 and all the above happend in the first half. The second half of the walk was rather boring, maybe just around 70 glowworms in total. The extremely busy route yesterday was virtually dead this time I came around. They all have already gone to sleep, or something like that.
I also encountered two toads. I nearly stepped on the first one, but it luckily jumped to the side in time. No animals harmed.
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.
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.)
@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.
Having some fun with SIRDS this morning.
What you should see: https://movq.de/v/dae785e733/disp.png
And the tutorial I used for my C program: https://www.ime.usp.br/~otuyama/stereogram/basic/index.html
A bill from our ISP in 1998.
Weāre talking about a month here, 1998-07-27 to 1998-08-26.
Basic fee: 7.50 DM (about 6⬠today).
Online time: 516 minutes, 23.53 DM (about 20⬠today).
Thatās just the ISP costs, if Iām not mistaken. The underlying phone calls were pretty pricey as well.
How to Adjust Font Smoothing in macOS Sequoia & macOS Sonoma
Font Smoothing is a longstanding feature in MacOS that aims to make rendered screen text more legible, and it works by subtly blending the edges of display fonts with the background by using anti-aliasing. The idea is to reduce the jaggedness of screen text, but in practice nowadays it basically makes screen fonts on the ⦠[Read More](https://osxdaily.com/2025/06/04/how-adjust-font-smoothing-macos-sequoia-sonoma-v ⦠ā Read more
Over the past few weeks Iāve been experimenting with and doing some deep learning and researching into neutral networks and evolutionary adaptation of them. The thing is I havenāt gotten very far. Iāve been able to build two different approaches so far with limited results. The frustrating part is that these things are so ārandomā it isnāt even funny. Like I canāt even get a basic ANN + GA to evolve a network that solves the XOR pattern every time with high levels of accuracy. š
Status report on optional Rust in FreeBSD support
Shawn Webb has published a status\āØreport on work to provide basic support in FreeBSD for userland components
written in Rust.
We introduced a new BSD makefile, located at
share/mk/bsd.rust.mk
,
that enables building a Rust application during buildworld. As of ⦠ā Read more
How to Use Surfshark DNS on Mac, iPhone, iPad
Did you know that your internet service provider default DNS servers almost certainly track and log your online activity? Basically this means that every time you visit a website or use an internet-connected application from your Mac, iPhone or iPad, your ISP is aware of that. Many ISPās will not only log and track your ⦠Read More ā Read more
@bender@twtxt.net basically because we donāt readily use or support range hunters when requesting feeds itās ideal to keep feed small for the time being at least until we think about writing up a formal specification for this, but itās also only for Http hosted feeds
@bender@twtxt.net Basically the way Iām reading this is 1 RPM
. This is a rather aggressive rate limit actually. This basically makes Github inaccessible and useless for basically anything unless youāre logged in. You can basically kiss āpursuingā casually, anonymously goodbye.
Imagine if I imposed that kind of rate limit on twtxt.net?! š¤£
Also spent the morning continuing to think about a new design for EdgeGuardās WAF. Iām basically going to build an entirely new pluggable WAF that will be designed to only consider Rate Limiting, IP/ASN-based filtering, JavaScript challenge handling, Basic behavioral analysis and Anomaly detection.
The only part of this design Iām not 100% sure about is the Javascript-based challenge handling? š¤ Iām also considering making this into a āproof of workā requirement too, but I also donāt want to falsely block folks that a) turn Javascript⢠off or b) Use a browser like links
, elinks
or lynx
for example.
Hmmm š§
i started a little thing on my dreamwidth and called it a flash prompt box. basically itās a limited time thing where people can prompt me for stuff iām offering, like short fanfiction, photoshop-edited user icons, music recs, and a bit more! iām having sooo much fun with it so far itās been a blast just making stuff for friends :)
also more friends are making their own posts with the same concept which is SO cool to see
Move beyond basic threshold alerts! Define clear Service Level Objectives (SLOs) and measure Service Level Indicators (SLIs) to track real user impact. Use Prometheus to alert when your SLOs are at risk, ensuring you focus on what truly matters to your users. #Monitoring #SRE #Prometheus
Release Candidate of iOS 18.5, MacOS Sequoia 15.5, iPadOS 18.5 Available, Public Release Coming Soon
A release candidate build for iOS 18.5, iPadOS 18.5, and MacOS Sequoia 15.5 is now available for users enrolled in the beta testing programs. For users not in the beta testing programs, what this basically means is that the final versions of these system software releases is coming soon, perhaps even next week. macOS Sequoia ⦠[Read More ⦠ā Read more
@kat@yarn.girlonthemoon.xyz No no, itās just barks at the slightest thing going on around the neighborhod š like it just goes a bit nuts often 𤣠it was a rescue dog, two years old, and it wasnāt treated very well, a street dog. I think itās just basically afraid of every human in the world š¢
@kat@yarn.girlonthemoon.xyz Yeah right now Iām trying to see if I can āspread the CPU usage of fetching N feeds across M durationā so basically āsmoothā out the spikes in CPU usage.
git checkout main && git pull && make build
. Few bug fixes š
@prologic@twtxt.net done! hey i got a question, you got any clue why my feeds arenāt updating? maybe it has to do with the new cache flag but i messed with that a bit and didnāt notice a difference. basically itās like i have to manually restart yarnd
to see new posts itās really weird lol
i donāt think any of you know what a fan listing is but basically it was a fandom thing in the 2000s where people would make websites that other people could sign up for to show theyāre a fan of something. more info here.
anyway i made a fan listing kinda thing in PHP to learn the language. it was fun af
RVPC Adds BASIC Interpreter to ā¬1 Open Source RISC-V Computer
The RVPC, a fully open source hardware and software retro-style computer project built around the CH32V003 microcontroller, now supports a BASIC interpreter. This update further expands the capabilities of the ā¬1 RISC-V-based system, which already features VGA output and PS/2 keyboard input, despite its extremely limited resources. Originally conceived as a DIY challenge, the RVPC [ā¦] ā Read more
Barnes: Parallel ./configure
Tavian Barnes takes on\āØthe tedious process of waiting for configure
scripts to run.
I paid good money for my 24 CPU cores, but ./configure can only
manage to use 69% of one of them. As a result, this random project
takes about 13.5Ć longer to configure the build than it does to
actually do the build.The purpose of a ./configure script is basically to run the
compiler a bunch of times and check which runs succeeded. In this
way it ⦠ā Read more
@xuu@txt.sour.is Hahaha, thatās cool! You were (and still are) way ahead of me. :-)
We started with a simple traffic light phase and then added pedestrian crossing buttons. But only painting it on the canvas. In our computer room there was an actual traffic light on the wall and at the very end of the school year our IT basics teacher then modified the program to actually control the physical traffic light. That was very impressive and completely out of reach for me at the time. That teacher pulled the first lever for me ending up where I am now.
cacher
branch? š¤ It is recommended you take a full backup of you pod beforehand, just in case. Keen to get this branch merged and to cut a new release finally after >2 years š¤£
@kat@yarn.girlonthemoon.xyz Yes see UPGRADE.md ā I believe @xuu@txt.sour.is is now running this live after a couple of hiccups and a bug fix. So yeah if you can, that would be cool, basically looking for early beta testers (I was the alpha tester š¤£)
@kat@yarn.girlonthemoon.xyz my rule of thumb is try not to drink any caffeine past midday. This is basically based on experience and the half-life of caffeine in your system.
@bender@twtxt.net I use it. Itās not the feature I use the most in the fediverse, but I communicate this way with several friends. For example, itās the main way I talk to the original creator of the twtxt-el repository, the way people greet me for the first time or the way they notify me of some bugs in the software I maintain. I can even tell you that itās the main way I talk to some maintainers of the Emacs community. If there are any of you reading my words, speak up!
Why not have the same? There are things I want to say to @prologic@twtxt.net in private, why should I have to send him an email or private IRC? Or an public twt.
Of course, hereās a topic weāve already talked about: what is twtxt for you? For me it will always be a social network, in microblogging format, but an asynchronous way of communicating. And having a tool to control visibility is basic š
I look forward to hearing from you @eapl.me@eapl.me !
@movq@www.uninformativ.de Oh, thatās beautiful!
I opened up all the photos in new tabs and went through them. For a second, I wondered that it was snowing at your place right now. :-D
That made me realize that so far we basically had nearly no April weather whatsoever. May might be full of it then, letās see. :-)
Basic Orange Cat Activities ā Read more
SqliteCache
backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache
(which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? š¤
@kate@yarn.girlonthemoon.xyz Iāll cut a release soonā¢, but still a few more things to iron out 𤣠One of the new challenges is figuring out what to do with the āDiscoverā view now that is has an unconfined limit, on my pod (at least) itās now basically just ānoiseā š¤¦āāļø
@bender@twtxt.net @ionores@twtxt.net Yep, itās extremely seldom that a photo turns out looking better than reality. Very rarely does that happen. But basically never with sunsets. ;-) Maybe once a leap year Iām very surprised to wonder how that subject wasnāt better in person but actually on film.
SqliteCache
backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache
(which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? š¤
@abucci@anthony.buc.ci Apologies, the basic summary is as follows:
- Decided to rewrite the cache backend.
- It will now be a SQLite backend going forward.
- Iām planning on no data migration.
oh out of boredom yesterday i made my blog available via markdown files too so you can use charmbracelet/glow to read them in your terminal :)
basically i just set up a file directory on a path of my blog, organized the MD files by year, and so in theory you can navigate to that path and choose a folder, then copy a link to a markdown post and run this:
glow -p https://bubblegum.girlonthemoon.xyz/md/2025/2025-03-31%20premature%20reflections%20on%20sudden%20responsibility.md
and then as long as you have glow installed, you can read my posts from the terminal :D itās so cool
This is sooo cool, it reminds me of learning QBasic (and then Visual Basic) in the 90s
Easylang story
https://easylang.online/apps/story.html
@bender@twtxt.net I was a bit confused at first what that is: Apparently, itās the source code of Altair BASIC: https://gizmonaut.net/soapflakes/EXE-199711.html
(Of course they have a user agent filter. š Canāt download that PDF with wget.)
Hi, So i made a little MVP registry crawler tool for twtxt. It now has a basic UI to play with. It has a somewhat full history back to about 2018-ish. Plus some interesting bits that were timestamped to earlier.
Find it here: https://watcher.sour.is
Code base is found here: https://git.sour.is/sour-is/xt
In Mexico you couldnāt register the word Sonora (state), nor Taqueria (kind of restaurant) as there are two common words, but perhaps the combination of both is trademarkable, Iām not sure, so many ātaqueriasā here donāt file a trademark request. Itās usually āTaquerĆa [LAST_NAME]ā or āTaquerĆa [PLACE]ā.
At the same time, the word ātaqueriaā was trademarked in UK, like it would be āParisā or āPubā I guess, so basically Sonora Taqueria didnāt reply to the cease and desist, based on:
[Lizbeth GarcĆa]: A brand may not use a word that is generic or descriptive of the products or services it is putting into circulation on the market.
Since he (Ismael, Taqueriaās representative) didnāt get any response, he decided to leave it in the hands of his law firm.
In early 2023, after all the noise on the internet and the mobilization caused by this case, an agreement was finally reached with TaquerĆa to settle the matter peaceably.
In March 2023, Michelle and Sam decided to register the Sonora TaquerĆa brand and logo with the UK Intellectual Property Office.
(I didnāt submit a proposal of my own, because it would basically just be a duplicate of another one. š )
Anyone interested in the PicoCalc? https://www.clockworkpi.com/product-page/picocalc #basic
Perfect!
I now also implemented basic replying by hitting a
as in answering. Whatās missing is automatically adding mentions in the message text template. Thatās gonna be a bit more tricky, though.
tt
.) Now, this is the second attempt in tt2
.
Righto, now with added basic subject support. Hopefully!
i really wanna learn golang it looks fun and capable and i can read it kind of but every time i try it iām immediately stuck on basic concepts like āwhat the fuck is a pointerā (this has been explained to me and i still donāt get it). i did have types explained to me as like notes on code which makes sense a bit but iām mostly lost on basic code concepts
NXPās FRDM i.MX 91 Board Provides Low-Power Solution for Linux-Based IoT Systems
Following the release of the FRDM i.MX 93 board, NXP has launched the FRDM i.MX 91 development board, a compact platform based on the i.MX 91 applications processor. It is intended for early-stage development and evaluation of industrial and IoT systems that require basic Linux support, integrated connectivity, and hardware-level security. The board features a [ā¦] ā Read more
Siri Still Struggles to Answer Very Basic Questions
Siri launched on the iPhone 4S all the way back in 2011, and yet it still struggles to answer some of the most basic questions.
Daring Fireballās John Gruber today highlighted a recent post from a Reddit user wh ⦠ā Read more
@eapl.me@eapl.me @bender@twtxt.net @prologic@twtxt.net Not including a photo was a stupid move, sorry. There you go:
This particular one is 95mm wide and 185mm high. Fairly compact.
I can only use it figure out distances to other dates and to do some basic calendar math. Iām not able to actually schedule anything. But I grew up with a month calendar like you have there where all appointments of the entire family was recorded.
By far most of my paper use is drawing random stuff on scratch paper during meetings. :-D
PicoCalc Brings Classic Computing to ClockworkPi v2.0 with Raspberry Pi Pico
The PicoCalc is a compact computing platform designed to recreate the experience of early personal computers. Running on 260KB of memory, it allows users to code in BASIC, explore Lisp, interact with a UNIX-like environment, and run retro games and digital music. Its modular and open-source design makes it adaptable for various applications. Built on [ā¦] ā Read more
@prologic@twtxt.net Tolerant yes, but in the right places. This is just encouraging people to not properly care. The extreme end is HTML where parsers basically accept any input. Iām not a fan of that. Whatever.
@andros@twtxt.andros.dev I suggest to not touch it and work on a different project instead. :-D
No, in all seriousness, thatās a tough one. Try to figure out the requirements and write tests to cover them. In my experience, if there is no good documention, tests might also be lacking. It goes without saying that you have to understand the code segments first before you can begin to refactor them. Commit even earlier and more often than usual, this will help you bisecting potentially introduced bugs later on. Basically baby steps.
But it also depends on the amount of refactoring required. Maybe just scrap it entirely and start from scratch. This might not be feasible due to e.g. the overall project size, though.
Pineboards Introduces Modulo Carrier Boards for Raspberry Pi CM5 and CM4
Pineboards has introduced the Modulo4, Modulo5 Basic, and Modulo5 IO PoE+ carrier boards, adapting Raspberry Pi Compute Modules to the Raspberry Pi 5 form factor. These boards maintain compatibility with PCIe HATs, cases, and cooling solutions, with the Modulo5 IO PoE+ adding PoE+ support for network-powered operation. Pineboards indicates that with the release of the [ā¦] ā Read more
@arne@uplegger.eu Ohjemine, TYPO3! O_o Lass mich schreiend davonlaufen!
Mit dieser absoluten Katastrophensoftware vor dem Herrn haben wir mal ein Studienprojekt gemacht. Die hat alle Vorurteile komplett übererfüllt. Angefangen von Fehlerseiten, die statt 4xx oder dergleichen immer mit HTTP 200 ausgeliefert wurden oder auch, dass das generierte HTML leider einfach ungültig war. Ćber die Implementierung von Lƶschen durch einen Deleted-Schalter in der Datenbank, das Speichern von Passwƶrtern im Klartext bis hin zu vƶllig umstƤndlichen Bedienungskonzepten. Alles hat immer brutal viele Schritte gebraucht. Das Zeilennummernrumgeeier im TYPO-Script erinnerte eher an Basic. Uns kam es auch so vor, als ob man damit nicht ernsthaft was sinnvolles machen kƶnnte.
Zu allem Ćberfluss hatte irgendwer noch ein ganz hundsmiserables Buch ausgegraben, das als Vorbereitung dienen sollte. Ich kann mich zum Glück weder an den Titel noch den Autor erinnern, aber ich weiĆ noch, wie das komplett inkonsistent geschrieben war. Anfangs gabs mehrere Seiten zu Unicode und UTF-8 wurde angepriesen, aber alle Beispiele haben dann auf ISO-8859-1 gesetzt. Gezeigter Beispielcode war hƤufig unterste Schublade. Selten hab ich so merkwürdige ErklƤrungen gelesen: āWenn Sie die Sicherheitswarnhinweise stƶren, kommentieren Sie doch bitte im Quelltext die die()
-Funktion in $ZEILE
aus.ā Oder ein anderer Klassiker: āAusgeschrieben würde der Code wohl folgendes tunā¦ā. War sich der Autor also nicht ganz sicher, ob sein Codeschnipsel vllt. doch in Wahrheit was ganz anderes tut.
Seit diesem gigantischen Trauma (das hat mich wirklich sehr nachhaltig geprƤgt, wie man Dinge nicht machen sollte) hab ich erfolgreich einen Bogen um das TYPO3-Universum gemacht.
Ich kann nur hoffen, dass es zwischenzeitlich ein wenig besser geworden ist. Aber Deinem Kurzbericht zufolge scheint da ja immer noch der Wurm drin zu sein. Mein Beileid! :-(
For many years I have found Flask to be too basic a tool for modern development. But since I create APIs using Flask with Pydantic to validate the input data, some middlewares for parsing and Blueprint to separate the code into modules⦠I must admit that I am super comfortable, fast and easy to test.
#flask #python #pydantic
I made a draft of an āencrypted public messengerā, which was basically a Feed for an address derivate from the public ket, letās say āabcd..eaeaā
Anyone could check, āare there any messages for my address?ā and you get a whole list of timestamps and encrypted stuff.
Inside the encrypted message is a signature from the sender. That way you ācouldā block spam.
Only the owner of the private key could see who sent what, and soā¦
And even with that my concussion was that users expectations for a private IM might be far away from my experiment.
@prologic@twtxt.net they post pretty frequently yeah, new articles like every other day basically
@kat@yarn.girlonthemoon.xyz To improve you shell programming skills, I highly recommend to check out shellcheck
: https://github.com/koalaman/shellcheck It points out common errors and gives some suggestions on how to improve the code. Some details in shell scripting are very tricky to get right at first. Even after decades of shell programming, I run into ācorner casesā every now and then.
E.g. in getlyr
ās line 7 it warns:
echo -e $(gum style --italic --foreground "#f4b8e4" "'$artist', '$song'")
^-- SC2046: Quote this to prevent word splitting.
For more information:
https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
Most likely not all that problematic in this application, but itās good to know about this underlying concept. Word splitting is basically splitting tokens on whitespace, this can lead to interesting consequences as illustrated by this little code:
$ echo $(echo "Hello World")
Hello World
$ echo "$(echo "Hello World")"
Hello World
In the first case the shells sees two whitespace-separated tokens or arguments for the echo
command. This basically becomes echo Hello World
. So, echo
joins them by a single space. In the second one it sees one argument for the echo
command, so echo
simply echos this single argument that contains three spaces.
@kat@yarn.girlonthemoon.xyz definitely a fun way to get better at bash scripting by hand (AKA learn how it works besides the extreme basics i know) and use gum to make them cute too
Enhance build security and reach SLSA Level 3 with GitHub Artifact Attestations
Learn how GitHub Artifact Attestations can enhance your build security and help your organization achieve SLSA Level 3. This post breaks down the basics of SLSA, explains the importance of artifact attestations, and provides a step-by-step guide to securing your build process.
The post [Enhance build security and reach SLSA Level 3 with GitHub Artifact Attest ⦠ā Read more
haha, thatās gold xD.
#randomMemory I remember when I was starting to code, like 30 years ago, not understanding why my Basic file didnāt run when I renamed it to .exe
And nowadays, Iāve seen a few Go apps in a single executable, so twtxt.exe
could be a thing, he!
Micropub test of creating a basic h-entry
Why Canāt I Access Control Center from iPhone Mirroring?
One of the best features of modern MacOS versions, from Sequoia 15.0 onward, is iPhone Mirroring, which allows Mac users to interact with their iPhone and use their iPhone directly from their Mac. iPhone Mirroring is almost entirely full featured in that you can access basically every iPhone feature from the Mac⦠but āalmost entirelyā ⦠[Read More](https://osxdaily.com/2024/11/29/why-cant-i-access-control-center-from ⦠ā Read more
4rkal creates XMR āmicro-tippingā tool for P2Pool mini miners
4rkal1 has announced2 the beta release3 of Donate Monero Via P2Pool (DMVP2P) 4, a new tool that enables XMR micro-tipping via P2Pool mini 5 for miners on Linux and Windows:
Would love to get some feedback on a new project I started [..] Basically itās a simple GUI that will allow you to mine to a certain users address via p2pool mini. Think monerodevs but donating via ⦠ā Read more
Righto, @eapl.me@eapl.me, ta for the writeup. Here we go. :-)
Metadata on individual twts are too much for me. I do like the simplicity of the current spec. But I understand where youāre coming from.
Numbering twts in a feed is basically the attempt of generating message IDs. Itās an interesting idea, but I reckon it is not even needed. Iād simply use location based addressing (feed URL + ā#ā + timestamp) instead of content addressing. If one really wanted to, one could hash the feed URL and timestamp, but the raw form would actually improve disoverability and would not even require a richer client. But the majority of twtxt users in the last poll wanted to stick with content addressing.
yarnd actually sends If-Modified-Since
request headers. Not only can I observe heaps of 304 responses for yarnds in my access log, but in Cache.FetchFeeds(ā¦)
we can actually see If-Modified-Since
being deployed when the feed has been retrieved with a Last-Modified
response header before: https://git.mills.io/yarnsocial/yarn/src/commit/98eee5124ae425deb825fb5f8788a0773ec5bdd0/internal/cache.go#L1278
Turns out etags with If-None-Match
are only supported when yarnd serves avatars (https://git.mills.io/yarnsocial/yarn/src/commit/98eee5124ae425deb825fb5f8788a0773ec5bdd0/internal/handlers.go#L158) and media uploads (https://git.mills.io/yarnsocial/yarn/src/commit/98eee5124ae425deb825fb5f8788a0773ec5bdd0/internal/media_handlers.go#L71). However, it ignores possible etags when fetching feeds.
I donāt understand how the discovery URLs should work to replace the User-Agent
header in HTTP(S) requests. Do you mind to elaborate?
Different protocols are basically just a client thing.
I reckon itās best to just avoid mixing several languages in one feed in the first place. Personally, I find it okay to occasionally write messages in other languages, but if that happens on a more regularly basis, Iād definitely create a different feed for other languages.
Isnāt the emoji thing ājustā a client feature? So, feed do not even have to state any emojis. As a user Iād configure my client to use a certain symbol for feed ABC. Currently, I can do a similar thing in tt
where I assign colors to feeds. On the other hand, what if a user wants to control what symbol should be displayed, similar to the feedās nick? Hmm. But still, my terminal font doesnāt even render most of emojis. So, Unicode boxes everywhere. This makes me think it should actually be a only client feature.
How to Fix āRecentsā Folder Empty on Mac
The Mac āRecentsā folder in Finder is a useful catchall Smart Folder that, as the name implies, contains all recently opened, modified, or added files that are found within the file system. This means the āRecentsā folder should contain everything from text files, documents, PDFs, images, video, basically anything in the file system that has ⦠Read More ā Read more
How to Scroll-to-Top with Dynamic Island on iPhone 16, iPhone 15, & iPhone 14 Pro
Scroll-to-Top is a super useful gesture that has been around on the iPhone for a long time, basically rather than swiping to get back to the top of a long screen of text, email, webpage, or whatever, you just tap the top of the screen and it immediately scrolls to the top. This is a ⦠[Read More](https://osxdaily.com/2024/10/14/how-to-scroll-to-top-with-dynamic-island-on ⦠ā Read more
ki9 starts work on XMR price API with data from Bisq, Haveno-reto
Keith Irwin (ki91) has apparently started working on XMR Price F.Y.I. 2 - a new Monero price API with unbiased street price data from multiple sources, including Haveno-reto 3 and Bisq 4:
[X] Domain name service
[X] TLS certs
[X] Nginx proxy
[X] Basic 11ty site
[ ] Basic http API
[ ] Haveno-reto data
[ ] Bisq data
[ ] Coingecko data
[ ] Forex data
[ ] API
[ ] ... ā [Read more](https://monero.observer/ki9-starts-work-xmr-price-api-data-haveno-bisq/)
@prologic@twtxt.net I like the, allegedly, original:
āIt can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.ā
Not as simple as the interpretation you used, yet often context is king (or queen).
(#2024-09-24T12:39:32Z) @prologic@twtxt.net It might be simple for you to run echo -e "\t\t" | sha256sum | base64
, but for people who are not comfortable in a terminal and got their dev env set up, then that is magic, compared to the simplicity of just copy/pasting what you see in a textfile into another textfile ā Basically what @movq@www.uninformativ.de also said. Iām also on team extreme minimalism, otherwise we could just use mastodon etc. Replacing line-breaks with a tab would also make it easier to handwrite your twtxt. You donāt have to hardwrite it, but at least you should have the option to. Just as i do with all my HTML and CSS.
#fzf is the new emacs: a tool with a simple purpose that has evolved to include an #email client. https://sr.ht/~rakoo/omail/
Iām being a little silly, of course. fzf doesnāt actually check your email, but it appears to be basically the whole user interface for that mail program, with #mblaze wrangling the emails.
Iāve been thinking about how I handle my email, and am tempted to make something similar. (When I originally saw this linked the author was presenting it as an example tweaked to their own needs, encouraging people to make their own.)
This approach could surely also be combined with #jenny, taking the place of (neo)mutt. For example mblazeās mthread tool presents a threaded discussion with indentation.
@xuu@txt.sour.is I think it is more tricky than that.
āA company or entity ā¦ā
Also, as I understand it, āpersonal or household activityā (as you called it) is rather strict: An example could be you uploading photos to a webspace behind HTTP basic auth and sending that link to a friend. So, yes, a webserver is involved and you process your friendās data (e.g., when did he access your files), but itās just between you and him. But if you were to publish these photos publicly on a webserver that anyone can access, then itās a different story ā even though you could say that āthis is just my personal hobby, not related to any job or moneyā.
If you operate a public Yarn pod and if you accept registrations from other users, then Iām pretty sure the GDPR applies. š¤ You process personal data and you donāt really know these people. Itās not a personal/private thing anymore.
Iām bad with faces, I know that. But Iām having a really hard time recognizing Linus in this video:
https://www.youtube.com/watch?v=4WCTGycBceg
Basically a different person to me. Is it just me or has he really changed that much? š³
i feel like we should isolate a subset of markdown that makes sense and built it into lextwt. it already has support for links and images. maybe basic formatting bold, italic. possibly block quote and bullet lists. no tables or footnotes
@prologic@twtxt.net the basic idea was to stem the hash.. so you have a hash abcdef0123456789...
any sub string of that hash after the first 6 will match. so abcdef
, abcdef012
, abcdef0123456
all match the same. on the case of a collision i think we decided on matching the newest since we archive off older threads anyway. the third rule was about growing the minimum hash size after some threshold of collisions were detected.
So.. basically a rehash of the email āunsendā requests? What if i was to make a (delete: 5vbi2ea)
.. would it delete someone elses twt?
So yeah no, whilst it technically works, neither jenny
nor yarnd
support it very well. Only at a very basic level.
So this is a great thread. I have been thinking about this too.. and what if we are coming at it from the wrong direction? Identity being tied to a given URL has always been a pain point. If i get a new URL its almost as if i have a new identity because not only am I serving at a new location but all my previous communications are broken because the hashes are all wrong.
What if instead we used this idea of signatures to thread the URLs together into one identity? We keep the URL to Hash in place. Changing that now is basically a no go. But we can create a signature chain that can link identities together. So if i move to a new URL i update the chain hosted by my primary identity to include the new URL. If i have an archived feed that the old URL is now dead, we can point to where it is now hosted and use the current convention of hashing based on the first url:
The signature chain can also be used to rotate to new keys over time. Just sign in a new key or revoke an old one. The prior signatures remain valid within the scope of time the signatures were made and the keys were active.
The signature file can be hosted anywhere as long as it can be fetched by a reasonable protocol. So say we could use a webfinger that directs to the signature file? you have an identity like frank@beans.co
that will discover a feed at some URL and a signature chain at another URL. Maybe even include the most recent signing key?
From there the client can auto discover old feeds to link them together into one complete timeline. And the signatures can validate that its all correct.
I like the idea of maybe putting the chain in the feed preamble and keeping the single self contained file.. but wonder if that would cause lots of clutter? The signature chain would be something like a log with what is changing (new key, revoke, add url) and a signature of the change + the previous signature.
# chain: ADDKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: ADDURL https://txt.sour.is/user/xuu
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: REVKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: ...
@aelaraji@aelaraji.com Ahh it might very well be a Clownflare thing as @lyse@lyse.isobeef.org eluded to 𤣠One of these days Iām going to get off Clownflare myself, when I do Iāll share it with you. My idea is to basically have a cheap VPS like @eldersnake@we.loveprivacy.club has and use Wireguard to tunnel out. The VPS becomes the Reverse Proxy that faces the internet. My home network then has in inbound whatsoever.
Current flutter source has been pushed - https://github.com/stig-atle/YarnDesktopClient , flutter source is in main branch. The GTK4 version is in itās own branch (just wanted to keep a copy of that too).
Keep in mind itās early version. But it does have the basics implemented.
@bender@twtxt.net haha funny! though i just realized my ISP is the only one with fiber pulled to the property so i would have to get a phone line from them some how. The other ISP in the area is basically a mobile hotspot.
receieveFile()
)? š¤
he emailed my ISP about causing logging abuse. This is the only real ISP in my area, its gonna basically send me back to dialup.
Google Chrome will have Gemini LLM built into the browser.
I run Plan 9 on my server and my main home workstation (a raspberry pi). My ādaily driverā time is basically split between that and a Mac (excluding time on my phone, i suppose). I think it looks elegant, too. :-)
What is Git? Our beginnerās guide to version control
Letās get you started on your Git journey with basic concepts to know, plus a step-by-step on how to install and configure the most widely used version control system in the world.
The post What is Git? Our beginnerās guide to version control appeared first on The GitHub Blog. ā Read more
How to Hide iPhone Keyboard When Itās Covering Buttons & Wonāt Go Away
Some iPhone users may find that the onscreen keyboard occasionally gets stuck on screen and covers buttons or other elements on the the screen, preventing interaction with the iPhone and preventing the dismissal of the iPhone keyboard. This can happen for a variety of reasons, whether in Messages, Whatsapp, Instagram, FaceBook, Mail, and basically any ⦠[Read More](https://osxdaily.com/2024/05/01/fix-iphone ⦠ā Read more
Been clearing out my pod a bit and blocking unwanted domains that are basically either a) just noise and/or b) are just 1-way (whose authors never reply or are otherwise unaware of the larger ecosystem)
Let me know if yāall have any other candidates youād like me to add to the blocked domain list?
yarn should define its own federation protocol that extends the basic twtxt in ways that twtxt doesnāt allow. itās time. and iāve got ideas!
@lyse@lyse.isobeef.org its a hierarchy key value format. I designed it for the network peering tools i use.. I can grant access to different parts of the tree to other users.. kinda like directory permissions. a basic example of the format is:
@namespace
# multi
# line
# comment
root :value
# example space comment
@namespace.name space-tag
# attribute comments
attribute attr-tag :value for attribute
# attribute with multiple
# lines of values
foo :bar
:bin
:baz
repeated :value1
repeated :value2
each @
starts the definition of a namespace kinda like [name]
in ini format. It can have comments that show up before. then each attribute is key :value
and can have their own #
comment lines.
Values can be multi line.. and also repeated..
the namespaces and values can also have little meta data tags added to them.
the service can define webhooks/mqtt topics to be notified when the configs are updated. That way it can deploy the changes out when they are updated.