Show more
~b boosted

We've published A Scheme Primer!

This primer serves as a quick skim tutorial to get started fast, or as a more in-depth read... ending with the finale of a 30 line example of a Scheme interpreter written in Scheme!

~b boosted

#ProTip: is the most useful website you've never heard of.

~b boosted


- Moved repo to, and development has resumed with new contributors!

- Site is now at!

- Chat is at, on IRC/Matrix

- Forum is moving to

- Gitea federation is WIP

- I've resumed work on Vervis, intending to relaunch it and put federated patches/MRs in the spec

- Simplified 1st spec draft is WIP

- I may step down at some point, project future seems bright now ^_^


~b boosted

Introducing the Himitsu keyring & password manager for Unix
June 20, 2022

A project, influenced by 's factotum.

~b boosted

My list of outlined infant programs and libraries

I may not have enough effective time to complete and perfect these ideas myself, but I'm posting in the hopes others can carry the torch.

Some rationale for the list:

The "darian" and "mayan" libraries if successful will prove that the stdlib design choices for timekeeping, including Hare's timescales and timezones, are robust and expandable as advertised. Also, Martian time is cool.

The "ninefmt" library will provide a friendlier alternative to the stdlib's POSIX subset of strftime "%Y-%m-%d" specifiers. plan9front's tmdate(2) defines a nice "YYYY MM DD" syntax.

The "jsonld" and "activity" libraries will form the bedrock for an eventual Fediverse server. I'd love to see another interoperable contender written in Hare. Something modular and simple.

The "chess" library will allow Hare to prove itself as a robust language for complex algorithms and large data. Imagine Deep Blue in Hare, or another implementation.

Speaking of science, maybe there should be science/physics-related library. Any ideas?

The "ed" (and "vi") utilities will allows Hare devs to code in their own dogfood. I also have my sights on sam/acme, and structural regular expressions in particular:

Reach out if interested.

~b boosted
~b boosted
~b boosted

As I announced earlier, I've been working on an alternative to PrivacyTools, PrivacyGuides, etc. All of them target non technical users, have sponsors and affiliate links.

The Privacy Raccoon - Digital Self-defense against mass surveillance

It's not finished yet, there's a lot of work to do. But I wanted to announce it so people can contribute to it. If you're interested in contributing, go here:

~b boosted

telex muzeum v trebotove. maji tam nejmin 10 funkcnich dalnopisu propojenych pres ustrednu a spoustu dalsich kramu. stoji to za navstevu. stop

~b boosted
@Moon @zxcvfadsf @p I think putting arbitrary images (who decides there is a dog emoji but not an axolotol one?) within text should have never been the job of the text encoding system. All of that crap should be entirely up to the frontend displaying the text which may interpret some string as a custom image (like :pleromatan:), or otherwise if you want images within text just write in some rich-markup language like HTML TempleOS's hypertext :templeos:
~b boosted
@hiro @zxcvfadsf @Moon I don't know how Hindi works but Arabic is a rendering problem.

> would require color as an intrinsic property of characters

That was the exact moment we decided to destroy ourselves.

There's no guarantee that users you are talking to are also Mastodon users.

Don't encourage monopolization the network. Other servers are equally just as part of the Fediverse.

Show thread

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

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

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

~b boosted
~b boosted
:9front: 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.)



² The plumber handles this: . The overview is that it's sort of like things like OSX's "open" or XDG's (:vomit:) "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.


⁴ 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: . Here's the fossil paper, too, for good measure: .

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.

Show more
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.