Skip to main content


congratulations Monero devs, your wallet RPC has successfully driven me insane. you can just make it look like you spent all your money by sending it to your own address, it doesn't include the incoming balance anywhere in the transaction data it returns. even though the wallet knows that it received money in that tx!!

anyways why am I worrying about this all I need to do is track incoming donations


Well, I just spent WAY more time than I expected chasing down errors in a simple handwritten RISC-V assembly program... It's literally just a test program for the QEMU rv64 virt board that initializes the UART and runs the e spigot algorithm, so that I have some known-good output to compare with when I start writing the assembler for my OS.


The more I learn about Makefiles, the sillier I think it is that we have fucking Autoconf and CMake and (insert other things here) complicating the build process when everything that they do for developers can be implemented in GNU Make.

You can define custom functions in Makefiles by defining a recursively expanded variable (use a bare =) that references $1, $2, etc. Those functions can return build rules or even entire recipes. You can use $(eval) to evaluate arbitrary text as Makefile expressions. There's even a $(let) operator for lexical scoping!

...Now I really want to implement one of those "easier to use" build systems as a Makefile...


I've been thinking about using Emacs as a project-aware desktop environment for a while now. I want to be able to freely mix browser windows, Emacs buffers, and other applications into a workspace for a specific project that I can save/resume at will, but KDE Activities just... don't work well enough yet to fit that need. Sure, they restore application windows, but not the actual content I was looking at, in most cases.

But, of course, with GNU Emacs, there's no way to set a buffer wallpaper image (outside of a patch whose documentation makes it seem rather janky), nor to embed X windows within an editor pane. Plus IMO the lack of symbol packages makes things a little messy.

So I guess I'm gonna have to write my own version of Emacs. Or "DEmacs" - Desktop Environment Macros.

or I could just be normal and try to make KDE Activities work better but I want a custom tiling window manager and a prettier Emacs anyway

〜キース:同性愛のアナキストの犬のアクション! reshared this.


Content warning: AoC Day 6 one-liner in Raku


〜キース:同性愛のアナキストの犬のアクション! reshared this.


Content warning: ~keith's adventures in Raku


〜キース:同性愛のアナキストの犬のアクション! reshared this.


KDE developers engaging in Kondage, Kiscipline, Kadism & Kasochism to get their Kello Korld test program to build

GNOME developers deleting their entire application codebase because basic functionality is "too complicated for most users"

Xfce developers explaining why it takes 5 centuries to switch GTK versions

CDE developers (they're all dead)
in reply to Pup Keith DX Director's Cut

Will do. But also already started a project for an open source modular desk last night that I'm going to call TOPdesk – with all modules being SUBsomething. :blobcat:


Rust is such a great (sarcasm) programming language that I can tell whenever its compiler is running by looking at the overheat warning light on my motherboard!

GCC doesn't have this issue, Lisp doesn't have this issue, the only times my computer's overheat warning light ever comes on are 1) when I mine Monero, or 2) when a package I'm emerging starts running the Rust compiler. What the fuck.
in reply to Pup Keith DX Director's Cut

Looks like the LLVM toolchain in general tends to run my CPU close to overheating. Again, what the fuck. Why does your fucking compiler generate the same amount of heat as mining cryptocurrency. Say what you will about GCC's performance, but at least it doesn't try to cook my fucking processor.
in reply to Pup Keith DX Director's Cut

"the problem is that you're compiling from source, just use the binary packages" No. Fuck off. I should not need a $10,000 computer with liquid hydrogen cooling just to use your compiler if it's so "superior". No ifs, ands, or buts.


I do actually get kinda pissed about how bad I am at Rust, because so much of the community acts as if they're superior because ~uwu memory safety~ and preaches about how it's every programmer's moral duty to either learn Rust or take themselves out of the software development gene pool. And then it's supposedly the only programming language that doesn't hate trannies. So I guess I just don't get to be part of a programming-related community that accepts me, huh.
Unknown parent

@tom That's fine, programming is supposed to be fun. I personally love Common Lisp, metaprogramming gives you cool new ways to approach problems and teaches you programming concepts other languages don't touch on as often. But just try a bunch of languages and figure out which ones you like!
in reply to Pup Keith DX Director's Cut

i just like rust cause it's fun, i don't even really understand memory safety or stuff. i like it for arbitrary personal reasons that probably don't matter, and im not even part of the community that much

:meowhuggies:


  • KopeteAccountManager
  • KopeteIdentityManager
  • KopetePasswordedAccount
  • KopetePassword
  • KopeteWalletManager
ah yes, a normal day in KDE programming
This entry was edited (1 year ago)


When I eventually start working on Shortwave (my Common Lisp Fedi server project) again, I really want to implement a user-whitelist mode for remote instances.

Essentially, it would block all federation traffic to and from the restricted instance, except for what should be visible to a set of known-good users (either manually approved by an admin, or followed by local users). All posts from local users would appear as followers-only to that instance, and wouldn't even reach it unless the author follows an account on there.

Also, Shortwave could potentially exchange block information with other servers, to prevent remote replies and shares from reaching users or instances the author (or author's instance) blocks. This would probably be done with a Bloom filter, so remote instances can't easily determine your exact block list. But this would only work on instances with explicit Shortwave compatibility.
This entry was edited (1 year ago)
in reply to Pup Keith DX Director's Cut

But I'm getting ahead of myself. It's still basically just a skeleton at this point; I kind of got stuck in architectural hell and created way too much abstraction right off the bat.

Luna Saphira Dragofelis 🐱 reshared this.


You know, I wonder how much latency and performance overhead you could reduce by dynamically generating code for and recompiling parts of the audio server according to your system configuration. Generally, I wonder how much more efficient our computers could be if systems-level components were created in a language with the rich metaprogramming capabilities of Lisp. Would the opportunities for dynamic recompilation and optimization outweigh the costs associated with such a runtime? And how could we reduce or eliminate those costs?
in reply to Urusan

As someone who has done a decent amount of work in a language where this idea is possible, the biggest difficulty will be that you may need to stop and compile at any time. In particular, if you want the most efficient code, the compiler may need more time than is possible with JIT compilation. That said, I do think this issue is solvable, and Julia is making good progress on it.

A more fundamental problem is the need for garbage collection. This is a problem for systems-level stuff.



Patches I want to make to Friendica next, in order:
  • Collect [spoiler] tag headings and use them as a content warning when no [abstract] is specified (but only for non-Friendica servers)
  • Batch server blocking
  • Support for Akkoma and Misskey quote reshares
  • Per-post "unlisted" privacy setting
  • Support for auto-expanding content warnings or hiding posts entirely based on ACF rules
This entry was edited (1 year ago)


Okay, so the patch was actually easier than I expected - after poking through the codebase and figuring out what was going on, it turns out there was just a check for public_contact() != $item['author-id'] in the code that displayed a content warning. So I just added a user-level configuration option to choose whether or not to display CWs on your own posts.

The hardest part was realizing what the problem was when the server was throwing 500 errors - I spent probably an hour trying to get it to give me any sort of debug log, only to realize that I had made not one, not two, but THREE different typos.

Now to rewrite history and destroy all traces of my mistake. :P


Content warning: Friendica abstracts are more complicated than I thought

This entry was edited (1 year ago)