<-- En robe en jean aprĂšs trois jours en vĂȘtements androgynes, Ă  me faire appeler « Monsieur », en train d’attendre que mon document LaTeX mentionnant une hypothĂšse holistique du self-harm s’auto-exporte et se compile avec #Guix et #noweb, flappant en me tapant les mains et en Ă©coutant NIN, me retenant d’éclater d’un rire diabolique

I recently got back to my work on literate #GRASP, and I think things finally started to look good. I implemented a new document representation (the previous one was built from cons-cells and multiple hacks), and I have some working tests that are capable of rendering this representation to "unicode-art" strings, and I'm currently working on a new parser that would work well with that representation.

I still have a long way to go before I get a running system, and I don't think it's a very good literature, but if you're a #Scheme maniac or a fan of #LiterateProgramming and you don't find the #Java runtime environment too repulsive, I invite you to follow the work and provide your feedback:

https://github.com/panicz/grasp/blob/main/literate/grasp.org

Currently, when exported to pdf, the document has about 100 pages, and it mainly describes language extensions that were developed for Kawa Scheme to develop GRASP. I think it might be a delight to people who enjoy studying language extensions, but unfortunately the part about the architecture and implementation of GRASP has yet to be developed.

(the document is written in #Emacs #OrgMode using its #noweb component for literate programming. I recommend reading it from Emacs rather than from its github preview)

grasp/literate/grasp.org at main · panicz/grasp

The GRAphical Scheme Programming Environment. Contribute to panicz/grasp development by creating an account on GitHub.

GitHub

OK j’ai passĂ© une partie de la semaine derniĂšre Ă  lire de la documentation LaTeX, Ă  me lancer dans une crise existentielle, Ă  trouver un nouveau pseudo + Ă©ventuellement Ă  accepter mon identitĂ© de personne non-binaire, Ă  me mettre en retard de plus d’une semaine sur une fiche de lecture Ă  rendre, Ă  faire planter mon seul terminal Linux, Ă  concevoir (dans ma tĂȘte) une infrastructure de blog pĂ©renneℱ, Ă  tenter d’installer Alpine Linux, MX Linux, NetBSD, et OpenBSD, sur un ordinateur dĂ©fectueux achetĂ© dans un destockage d’entreprise, et Ă  accepter sur le principe les consĂ©quences du fait que j’avais survĂ©cu Ă  un #gĂ©nocide dĂ©matĂ©rialisĂ© et hybride, et que mon travail Ă©tait une responsabilitĂ© collective.

Cet aprĂšs-midi, j’ai donc pris mes responsabilitĂ©s et contactĂ© une camarade pour lui demander de l’aide sur mon tĂ©lĂ©phone, et Ă©ventuellement lui emprunter un ordinateur d’ici la rĂ©ception de mon Framework 12.

Bref : mes billets seront directement publiĂ©s sur IPFS en tant que documents PDF, et rĂ©fĂ©rencĂ©s avec #Keyoxide en tant que preuves de type lien.

Cela signifie que si votre navigateur a le plugin #IPFS, il fetchera automatiquement mes billets au format PDF
 et, en principe, qu’il les partagera tous.

Mes billets seront convertis du format LaTeX au format HTML avec NoWeb, et peut-ĂȘtre convertis au format GemText pour un export #Gemini avec un fork de Pandoc ou Skribilo (seuls les liens ayant une option [GemText=(...),] seront exportĂ©s). Ils seront accessibles Ă  l’URL miroir.blog.tld sauf que je ne suis pas encore sĂ»r·e de l’URL vu que je ne suis pas sĂ»re de vouloir encore m’appeler OcĂ©ane. Je demanderai conseil autour de moi, je garderai peut-ĂȘtre « OcĂ©ane » comme pseudo (ou comme prĂ©nom) donc je renouvellerai le nom de domaine ocĂ©ane.fr, en tout cas pour l’annĂ©e suivante.

Je pourrai Ă©ventuellement traiter ocĂ©ane.fr comme le miroir officiel de la liste de preuves Keyoxide vers laquelle redirigera un autre nom de domaine, mais je pourrai aussi utiliser un SLD dans la grande tradition du web 3 lol. (Je n’ai pas l’intention de m’investir dans les cryptomonnaies, mais ça peut parler Ă  certaines personnes et faire les ponts entre libertarianisme et anarchisme – je veux partager des ressources au plus grand monde possible, et dire « Twitter est co-responsable d’un gĂ©nocide » Ă  des libertarien·nes me branche aussi – le FQDN de mon miroir n’a pas de raison particuliĂšre de changer le contenu de mes billets.)

Je compte partager mes modifications avec la communautĂ© de rĂ©daction de l’outil utilisĂ© et mettre tout le reste en programmation lettrĂ©e avec #NoWeb. Mon Ă©diteur de texte (Emacs) contiendra un script local (au rĂ©pertoire de mon blog) de prĂ©-remplissage des documents .tex basĂ© sur un script Perl extrayant les Ă©lĂ©ments de configuration lettrĂ©e du document le plus rĂ©cent dans l’arborescence git (par date de commit), et la syntaxe interprĂ©tĂ©e sera exportĂ©e dans un dossier /tmp/ci-blog/. De la sorte, Ă  quelques exceptions triviales prĂšs, mon blog sera entiĂšrement reproductible, en sus du code source de mes documents, accessibles dans mon projet git.

De la sorte, si un serveur OpenPGP devait ĂȘtre partagĂ© sur IPFS, mon blog survivrait littĂ©ralement (en thĂ©orie et dans le cas de colonies extraterrestres) Ă  une vitrification totale et irrĂ©mĂ©diable de la planĂšte Terre. La disparition ponctuelle de mon miroir ne serait mĂȘme pas Ă  proprement parler une perte car elle stimulerait l’apparition de pairs partageant mes documents IPFS.

J’ai rĂ©alisĂ© ce travail grĂące au dĂ©fi #100DaysToOffload (lien), dans Emacs, en configurant et utilisant un systĂšme de rĂ©fĂ©rences acadĂ©miques pendant un an. cc #ToutEstMieuxAvecEmacs

PS : merci Ă  mon mĂ©cĂšne LiberaPay, je suis obligĂ©e de me bouger Ă  cause de lui 😅 je n’en demandais pas tant donc je suis trĂšs touchĂ©e.

#Blog #Blogging #BloggingTools #BloggingSoftware #CIBlog #CIBlogging

Framework Laptop 12 pre-orders are now open!

Framework Laptop 12 is a 12.2” convertible with stylus support. Designed for easy customization, upgrades, and repairs.

Framework

time to iterate for vectors now that I have my punch out grid for enough chars.

all the caps are done. lowers done. this isnthe biiiig version of course. goal is some stamps.
also to mess with subtrsctive modelling and ultimately make a high carbon steel set of them at a few sizes.

then I can do more #programming. LOL

we are bridging #digital and #analogue hard over here.

hammers, steel, wood, chisels, sanding, and letters!!!? yep.

#fontforge #typography #stamps #noweb lol

@nixCraft at the same time, everything related to standard tools is not bloated and works on both relatively weak and more powerful hardware
#noWeb
@alxlg Interesting, but I need actual TeX, because I'm using #noweb for #literateprogramming. Is #Typst #freesoftware?
#Tech #Rant One thing I dislike about #LiterateProgramming in #OrgMode is that code chunks are not cross-referenced or labeled in the finished document, as they are in #noweb. #GNU #Linux #Emacs #programming
NEW by @rrix: A toolkit for Literate Programming imapfilter configurations | Emacs noweb

Over on imapfilter filters my imap I have cooked up a simple Org Babel page which generates a set of mail filtering rules for the imapfilter utility. It's operated using Lua, but with a lot of rules it gets a bit difficult to manage. I broke my configuration up in to a number of org-mode tables that are processed by ten lines of Emacs Lisp which turns it in to Lua code that is written to the imapfilter configuration.

While I don't publish the raw org-mode file since it has un-published headings with rules I don't want to publish, the usage flow is pretty simple, so let me walk you through it:

  • in the imapfilter configuration I define a handful of lua helper functions which take a list of mails to act on, a search key, and a destination to move the matching mails.

  • Define some emacs-lisp which takes a table as variable; these are passed in to the ELisp as list of lists, the inner list being a single row. This is stored in a named Org Mode source block. It takes each row and turns it in to a single Lua statement:

    (thread-last tbl (seq-map (lambda (row) (format "mb = file_by_%s(mb, \"%s\", \"%s\")" (first row) (second row) (third row)))) (s-join "\n"))
  • Define a table with at least three rows

    • the first is the "type" of rule – notice in the format call that the string contains file_by_%s, this first row is used to pick one of the helpers.
    • the second row is the value to filter on, that subject, sender, or destination.
    • the third row is the destination to send it.
  • Create "lua" source code blocks with noweb syntax enabled, and with a tangle destination of the imapfilter configuration. That calls, via noweb, our code generation elisp, passing in each table, and then tangling that generated lua in to the configuration file. <<call-imapfilter-from-table(social-lists)>>

The end result is a set of tables which can be shared or published, edited and reordered etc, easily, and then seamlessly exported as a configuration file.

I do this as well in some other places:

Using literate programming for generating configuration is really fun and lets you scale your code and configuration while keeping it legible!

https://cce.whatthefuck.computer/updates#20231002T162108.807896 #Emacs #noweb #true
Literate Programming with Org Babel - The Complete Computing Environment

The equivalent of #Vinyl on the internet is communicating via mailing lists with people you know and mostly like. Ideally on your own domain. #RetroNet #NoWeb #AsyncCommunication #Decentralised #BringBackThe90s