Say "Fediverse", not "Mastodon". They are not interchangeable. If you're on Mastodon, you are inextricably on the Fediverse too.

Thanks to @vladh’s great work, now has tuple unpacking, as per the spec section 6.6.47.3

const (a, b, c): (i64, str, f64) = (2i, "hello", 1.0);

git.sr.ht/~sircmpwn/harec/comm

harelang.org/specification/

I'm surprised there's no (FLOSS) piano app for Android (F-droid). Anyone know of one?

Implementing regular expressions in Hare
harelang.org/blog/2022-06-03-i

fossil/venti really are very nice and it is great to have a system that is very easy to hack.

I looked over to check the time and it was the Plan 9 clock, which always takes a second to read. The dots indicating the hours are all the same shape/color, and the hour hand is the same thickness as the minute hand. I figured it'd be trivial to tweak, so I popped up the source. Finding the source is a pain in most Linux distros, but on Plan 9, the location of the source code is at the bottom of the man page. But you don't even need to do that: there's a program called src(1)¹ that can print the location of the source code, or just open it up in your editor². So instead of untarring anything or apt-get source or whatever, I just typed src clock.

The source was easy to read, about a hundred lines, and I did the tweak and thought "Oh, I should post a patch to fedi, there are people on fedi that use this." But I'd made the changes already, so what do I do to get a diff?

This is the magic part: yesterday(1)³. You type yesterday $filename and it mounts the archive (for which you do not need root, because you control your namespace so every mount works like FUSE, and the fileserver enforces permissions itself, so unlike zfs or whatever, any user can securely inspect snapshots and filesystem history) and then prints out the path to that file from yesterday's dump (or whenever, just yesterday is the default). So you can do "diff {yesterday /sys/src/cmd/clock.c} /sys/src/cmd/clock.c"⁴ and this gives you the diff. Whole process took about five minutes from wanting to tweak something to installing the new version and retrieving the diff. It was quicker to do than to explain. Nearly everything on Plan 9 is like that, you see something you wanna tweak and you can tweak it with no friction, because the source is simple and available and because of fossil and venti⁵, you can get the full history of arbitrary files. Here's the diff and a screenshot. (The clock is still nothing impressive but it is somewhat faster to read it; anyway, this is how you do that.) -- ¹ http://man.9front.org/1/src ² The plumber handles this: http://man.9front.org/4/plumber . The overview is that it's sort of like things like OSX's "open" or XDG's () "xdg-open", but arbitrary data instead of filenames/URLs only, and the plumber is much more hacker-friendly. So the plumbing file says things like "if it looks like the path to a C file, send it to the 'edit' port" and whatever editor you have open listens for things sent to "edit", sort of like pub-sub. There are also rules in$home/lib/plumbing for starting whatever it is that you want to start, so if there's nothing listening for "plumb to edit" you can tell it how to start up your editor.

³ http://man.9front.org/1/yesterday

⁴ While grabbing the link to the 9front manual, I noticed that the man page also covers diffy`, which basically does this. I did not know about diffy. Sometimes I post this stuff and someone says "Who cares?" and "Why would you post this?" and that's why. I hope it is useful or interesting to whoever reads it, but trying to explain it is often very useful to me, I find stuff out or it makes me think things through more carefully than just using it.

⁵ I will keep posting this until I am blue in the face: http://doc.cat-v.org/plan_9/4th_edition/papers/venti/ . Here's the fossil paper, too, for good measure: http://doc.cat-v.org/plan_9/4th_edition/papers/fossil/ .
clock.diff
clock.png

wth does this mean?

the fediverse

Does anyone know of any good literature on datetime arithmetic? Or perhaps a really good software library (standard or third-party)? Especially anything that tackles non-communitivity, overflows or nonexistant dates/times (due to timezone effects).

I'm looking to rehaul the stdlib datetime module soon, and we want it to be very robust and of high quality. Will also be helpful in some Hare projects, like a scheduler.

The closest thing to a useful standard I've found is this:

In the mean time, I'm trying to create a formalisation of datetime arithmetic so we can have something theoretically sound to implement. Something which takes advantage of Hare's language features. If you're interested, let me know. The more gray matter, the better. Boosts welcome.

Simple software manifesto
"Are we simple yet?"
arewesimpleyet.org/

( edition) is very nice and works well. Installed it a few days ago on an old machine.

Duck Chess - https://duckchess.com/

--

Chess involving a rubber duck aka chess for programmers!
#FairMail just got discontinued.

As announced by the developer himself, he stopped maintaining all of his apps. All of the repositories are archived and apps were pulled from the Play Store.

Appeal response: https://forum.xda-developers.com/t/closed-app-5-0-fairemail-fully-featured-open-source-privacy-oriented-email-app.3824168/page-1087#post-86909811

https://forum.xda-developers.com/t/closed-app-5-0-fairemail-fully-featured-open-source-privacy-oriented-email-app.3824168/page-1087#post-86909853

This is a big problem with the Play Store, and one of the reasons I don't like it: you never know when your app is going to be literally yeeted the fuck out of there.

Many good apps were pulled from there, with no support nor any regarding for the life of the people that earn money with this model.

Apple is no different, it just doesn't publish your app directly if you don't comply with its guidelines.

I don't know if Marcel will ever read this, but I'm really sorry that you had to end this. I used FairMail in the past and it was a great app, very well crafted. Thank you for your work!

--

On a side note, read also this: https://forum.xda-developers.com/t/closed-app-5-0-fairemail-fully-featured-open-source-privacy-oriented-email-app.3824168/page-1087#post-86909365

That is the balance of the experience of the person behind FairMail.

To be honest, people should really appreciate more programmers that spend their (free) time working on software that respects privacy and freedoom other apps do not.

https://github.com/M66B/FairEmail/blob/master/PRIVACY.md

See if the Gmail app does the same. It does not.

I really hope he recovers from this at some point of his life, because this might be a very depressing situation.

This thunderstorm in is the perfect imbridus ambiance .

How to install a Vim plugin from a git repository
torresjrjr.com/archive/2022-05

But I'm not convinced that PGP is so wonky just because it is trying to do something hard. PGP, remember, is 30 years old, and dramatically under-resourced. When Snowden used PGP to contact journalists with his disclosures, the tool he used had a single, half-time volunteer maintainer:

41/

Maintaining my first project: part V, the return

The eternal dilemma of hacking: make something work *now* or explore some fun side track?

Why in-depth image descriptions are not as helpful as you might think

Imagine you're using an online shop. What you'll typically see is a list of products where each list item has a small preview image, a product name and some other metadata.
Now imagine that the shop displays a long textual description for each product instead. This is what the timeline appears like to screen reader users if long image descriptions are used. And unlike people seeing the text, they don't have the luxury of skimming to grasp vital information quickly -- they have to wait for the screen reader to read it all.

In-depth descriptions are only helpful when the user has decided the content is interesting to them. Currently, most fedi frontends put them in the attachment's alt attribute, which is fine if the user is currently viewing a single post instead of the timeline. But on the timeline, it's much more important to have quick summaries instead.
In terms of the example above, it's the same difference as when viewing a single product vs. the product list. You're only interested in the details if a product is interesting to you.

Image description on fedi are a step up from having none at all, but they're still inadequate. Ideally, you could provide both a quick summary and an in-depth description, and the UI presents both in a way that's the most helpful.
Since this possibility doesn't exist, please consider keeping image descriptions short and putting the long description in the post body.

Knuth’s desktop from 1994.

I thought about it and probably if it wasn't for Mastodon's dumb exclusive advertising I would've joined the Fediverse earlier.
Like many others my first contact with the existence of the Fediverse was Mastodon. I only knew Mastodon existed, Mastodon is the main #1 thing. I kind of saw the term Fediverse around and its wikipedia page but my brain kind of ignored the possibility of joining an instance running something different, since I had the impression Mastodon is the only one worth(?I think?).
Either way Mastodon was never appealing to me, I wasn't a fan of it, so I didn't join. (if curious, this is partly because Mastodon seemed to try to be heavily inspired by the experience/atmosphere of Twitter, while somehow seeming duller than it, which I didn't appreciate too much).

If right from the beginning I was introduced to this as the Fediverse being this general network which offers me multiple flavours of server software I can try, each being well advertised and showcased too AND it was clear it didn't matter which I joined, there would be more chances I would've joined earlier, when I first heard about all of this.

This interconnection and variety of choice is fun and appealing! It is a cool novelty into itself and its full potential should be shown off, instead of mentally locking new users into Mastodon. Or at least this is what I think and what I would value myself.

and, well, for the record, the first time I joined fedi was the time I learned about Pleroma and the fact I don't miss anything if I join it vs joining a Masto instance.

Maintaining my first project: part IV, the end