Rebuttals on the Fediseer

I noticed recently that a few instances are just issuing counter-censures on the Fediseer just to be able to reply to the censures they received from others. While I get the need to say your piece, I didn’t like this utilization. So I wanted to provide an official way for instances to reply to censures and hesitations they received.

So now we’ve deployed Rebuttals. A Rebuttal is a “reply” to a censure or hesitation from another instance. If you have received both, the same rebuttal applies. This is set up this way so that rebuttals are not tied to any specific censure/hesitation and therefore being deleted when those are. If someone deletes and re-adds their censure against your instance, the same rebuttal will re-appear.

As always, remember there’s no hate speech allowed on the Fediseer, so make sure your rebuttals stay cool.

Also keep in mind the Fediseer is not a forum. There won’t be multi-threaded discussions going on. The expectation is that you can use the Rebuttals to explain why a censure is bogus and whatnot. Not to maintain flamewars.

I know there’s plenty of beefs on the Fediverse. I’m hoping with this feature won’t become fuel for them, but rather a way for everyone to feel they have a say in a neutral ground. I hope this can serve as a de-escalation as well. Sometimes an instance might receive a hesitation or censure from someone they don’t dislike, due to a misunderstanding. This will allow them to try and counter that, without having to counter-censure.

Let me know what you think in the comments below, by replying to this post on mastodon, or in the lemmy community.

Btw, since I have you here, did you know that you can support the hosting and development of the Fediseer? Currently I’m paying the hosting costs out of pocket. It’s not a lot but it would be nice if the infrastructure costs were self-sustaining. So if you find value in this service, feel free to throw some money at the development team.

AI Horde to receive NLNet grant!

Back in July I first discovered NLNet and decided to apply for their NGI Zero Core grant to help me help me continue developing the AI Horde. Today I’m excited to announce that the AI Horde has officially been greenlit as one of the projects which will receive the August 2023 grant!

You can see the entry for AI Horde on NLNet here: https://nlnet.nl/project/AI-Horde/

AI Horde has been a passion project from the start but it’s difficult to maintain the level of intensity I had for such a length of time. With my patreon funding significantly dwindling month-to-month, multiple of our backend developers dropping, and the need for me to also keep up with some of my real life duties as well as my other FOSS projects, development of the AI Horde has sadly slowed in recent months. While It rmains extraordinarily stable, it has had little to announce, and some new features are slower to “cook” and reliant in the work of valuable backend volunteers like Tazlin.

I am hoping that the addition of NLnet funding should help reintroduce some of that momentum as the release of the grant is contingent on specific milestones being reached.

I have plans for 5 roughly grouped areas of development, for which I have thought of various tasks to receive “bounties” for in the scope of this grant: AI Horde, Dreamer, Scribe, Alchemist and Godot Engine

The AI Horde tasks will focus on improving the middleware itself. Such as extending the shared key functionalities, improving the API documentation etc.

The Dreamer, Scribes and Alchemists tasks will focus on adding new functionalities to the the official workers, such as more generation workflows, batch processing etc.

Finally the Godot Engine tasks will improve the existing toolset of the AI Horde to support game development, such as improving my AI Horde Client, migrating it and Lucid Creations it to Godot Engine 4, etc.

The good news is that due to the way NLNet works, I had to submit stuff to work on, but I couldn’t work on them before the AI Horde was officially accepted (or rather, I could, but I couldn’t receive a “bounty” for them). Now that this is locked-in, I can start working on some of these with the added incentive of getting a reward at the end which can alleviate some of my ADHD executive disfunction. So if all goes well, you should start seeing more activity from me soon.

As always, if you want to support the AI Horde and my work in FOSS and the open commons, please do consider funding me at:

These funds go towards paying for the existing infrastructure first, and motivation continuous development second.

PS: Interestingly enough, it’s my birthday today too 😀

Fediseer Streamlining

Just one day ago I released my initial release of the Overseer and I was annoyed by the implementation almost immediately. The requirement to register on another Lemmy instance using a custom username and wait for manual approval (which could also lead to someone sniping that username, and forcing me to manually delete it), and THEN register your instance on the Overseer was just too clunky.

While a few people did register, I realized almost immediately it’s very likely this would never take off. So I started rethinking how I could streamline this process so that it would require far less steps.

My initial plan was to simply register all available instances on the fediverse by default, and allow admins to claim them later. That would require me somehow being able to contact those admins directly. This led me to try to figure out the best way to do that where I discovered I could theoretically talk to any fediverse instance directly, and not have to rely on the a specific lemmy instance with all its limitations.

So I spent many many hours figuring out how to do that. The documentation is frustratingly sparse and incomplete on this point, with my best guide was this blogpost, from half a decade ago for a different language than python. Fortunately this day and age, I had access to ChatGPT, so I could ask it to translate the code on that page to python and then with some trial and error and digging in the official documentation, I had a working DM system for mastodon!

Then I set out to do the same for lemmy which is where the big frustration was waiting, as the documentation is practically non-existent, the messages are cryptic and Rust and the way it’s coded was completely impenetrable to me. Lots and lots of digging in the code, trial and error and asking around in desperation, and I managed to figure out that the main blocking point was a “type” key in my activitypub instance, instead of a fault in my payload.

Unfortunately figuring out how to “speak activitypub” took me the better part of my day. But the good news is that once I had that down, the rest was just a matter of time. I just had to refactor everything. And hell, while I am doing that, why not change the name and domain as well

And that’s how Fediseer.com is born!

I have already updated my previous post with the new workflow, but the big difference is that it completely removes the need for an extra lemmy instance one has to manually register. Instead one just has to “claim” their instance and they will get a PM directly in their mailbox!

Likewise, you can guarantee for a different instance even if their admins haven’t claimed it first and they will get a helpful PM informing them about it. If the instance doesn’t exist yet, all you need to do is search for it in the whitelist and it will be automatically added, and then can be guaranteed. My next step is to automatically import all known instances by pulling them from the federation, which should avoid the manual step of searching for them first.

So let’s see how it goes. Now with the ability to talk to fediverse instances directly, it also opens up some really fascinating doors for automation! Stay tuned!

Hordelib repo is temporarily down due to DMCA

As I mentioned last time, we received a DMCA take-down for a couple of missing attributions on AGPL3 files. We have since added those back, but as is the case with DMCAs, once you start them, they don’t stop on their own.

We had already send a counter-notice, but unfortunately not fast enough. The Hordelib repo has now been hidden from the world. You can read the whole bogus DMCA requesting it here.

I remind that hlky had made no attempt to request those attributions informally, just went straight to DMCA, which tracks since this person is always acting in bad faith. It just in this case it’s a convenient way to attack the AI Horde project once more.

This is a minor inconvenience, as the hordelib is still available in pypi, but annoying nonetheless.

Hopefully we’ll be back soon enough, and until then we’ll just re-host elsewhere for a while.

AI Horde’s AGPL3 hordelib receives DMCA take-down from hlky

I have tried to avoid writing about hlky drama for the sake of the AI Horde ecosystem. I don’t want to delve into negative situations and I was hoping by ignoring this person our community can focus on constructive matters in improving the Open Source Generative AI tools.

However recent developments have forced my hand, and I feel I need to write and inform the larger community about this. I will attempt to stick to the facts.

The AI Horde Worker includes a customized library: hordelib.This library is completely based on ComfyUI.

Yesterday we were forwarded 2 DMCA take-down requests from GitHub originating from hlky requesting to take down hordelib because of claims against a couple of files I ported from the previous library I was co-authoring with hlky, nataili.

Nataili was developed as AGPL3 from the start. This is the main reason I chose it as the backend to the AI Horde Worker instead of using a bigger player like Automatic1111 WebUI (which, back then, did not have a license.)

Unfortunately a big reason we abandoned nataili, is because hlky attempted to sabotage the AI Horde ecosystem and demanded that we stop using the nataili free software source library, going against everything the Open Source movement stands for. There is more drama pertaining to this behind the scenes, but as I said, I want to stick to the public facts in this post.

Nevertheless, eventually we couldn’t maintain nataili so we decided to create hordelib instead which would also insulate us from hlky. However some critical components we needed for supporting our image alchemy and anti-CSAM capabilities were not available natively in comfyUI, so I ported over the necessary files from nataili for those purposes. Remember, these are files licensed under the AGPL3, so this is completely and irrevocably allowed.

In the process I stripped out the explicit license mention in those files, because our whole repository is licensed under AGPL3, and it goes against our style to add unnecessary licenses to each file. As far as I understood, this was allowed by the license terms.

The DMCA take-down claims that removing those copyright and license strings from those files is a sufficient reason to request the whole repository to be taken down!

I have since attempted to get some clarify on this issue on my own. The only relevant part from the license I can see is this

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

[…]
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or

AGPL3 License

And I mean, fair enough, this seems clear enough, but I need to point out that the original licenses put in those files by hlky did not require preservation of author attributions!

Nevertheless in the interest of expediency and in the spirit of open source I have since re-added the attributions to those files.

Unfortunately, once you send official DMCA notices, things start becoming serious and you never know which way the dice roll will go on this. I feel we have a pretty clear-cut case that we did nothing wrong here and certainly nothing that would require a whole FOSS library to be taken down!

I have sent a counterclaim to GitHub in an attempt to ensure they don’t take any take-down steps.

However, given the numerous bad faith acts by hlky to this day, the most prudent option would be to excise these files completely. I would rather not have any mention or contribution of this person in our library, as they go against everything the Free Software movement stands for!

If you have the skills to contribute an alternative code for a clip and blip interrogation modules, please contact me ASAP!

Likewise if you have any advice you can give on this issue I’d appreciate it.

The purpose of copylefts

Cory Doctorow knocks it out of the park with another great analysis of what the recent WotC decision means for the .

This perfectly showcases what a lot of people are missing about the strengths of the licenses like GPL and Creative Commons: These licenses are not meant to protect the creator (like copyrights) they are meant to protect the user!

When I share something I made and I provide it to your as AGPL, what I am effectively saying is that I want you to use this, and not only promise not to ever take it away from you, but also explicitly legally bind myself to that extend as well!

The point is that people change and things change, but just because I changed my mind later or got greedy, shouldn’t allow me to retroactively take away ideas I’ve given away. In fact things like AGPL shouldn’t even need to exist, and all ideas should work likewise.

But as always capitalism has ruined everything to the point where we need to make exceptions to avoid the expropriation of even things like human ideas.

This is why proponents constantly harp not to trust corporate licenses like these. They are not meant to protect you, they are meant to trick you.

Stable Horde now has a native mobile app!

A very cool person has developed a FOSS mobile app! This works both on Android and iOS.

It is not quite as feature complete as the other stable horde web clients like Artbot and Stable UI (which also work on phones perfectly well), but I’m sure it will get there very soon!

You can get it on Google Play Store and Apple App Store

Seeking video game writers

If you’ve been reading this blog, I’ve been posting about my efforts to create my own game, Hypnagonia. While technical and game design has seen good progress, I am still thoroughly struggling to come up with a storyline and other similar concepts such as short stories for non-combat encounters and so on.

While I’ve pinged a number of people in the past and some have expressed an initial interest, I haven’t seen anyone yet show any initiative, and I’m not the kind of person who pesters people to help me for free. I don’t even know if that would help or not, but I just can’t do it. If someone to whom I’ve talked, doesn’t show any initiative afterwards, I just drop it.

To that end, I am making yet another attempt to find writers who want to collaborate in making a free software game with a surreal theme and psychological concepts. I already have a barebones idea of how the overarching story should go, but I am incapable to fleshing that out myself.

Due to the scope of the game, I have space for both writers who want to put a lot of effort, as well as those who only want to provide something occasionally.

  • I need a lead writer who will take over the overarching campaign concept, and build upon in their own style. You will have almost full creative control of the main storyline.
  • I need writers who will contribute short stories which to be injected into the game at various points. These include
    • Non-combat encounters inside the dream, which provide multiple-choice options for the player .
    • Storylines around each Injustice objective (example: Write the storyline events through which the player character will breakthrough out of their abusive relationship).
    • Ideas for new Torments and Character Archetypes.
    • Naming for cards with existing effects.
    • Thematic ideas for cards which I (or we together) will translate into game mechanics.

The important disclaimer is that this is a voluntary position, with full ownership of the end-product. You will be contributing your work into the Commons as the game is Free/Libre Software. This means not only will you retain ownership of your stories and ideas, but you will also have ownership of the final game product to showcase your talents elsewhere.

If this sounds interesting to you, please join my discord server and let me know in the #story-design channel. I repeat, I am not one to chase people around and I have a no-pressure approach to collaborators. If you want to help, I’d love to have you, but you need to provide your own drive to create! 🙂

I really want to create a video game that will truly enrich the commons. If you want to be part of this, join me!

Finally, a name

I’ve been working on my Godot-based deckbuilder for a few months now and I still hadn’t managed to find something to call it. I’ve been calling it “Project Dreams” to signify that it’s a provisional name, but it’s been really bothering me that I couldn’t find something appropriate.

So in the past few days, I took the time to start brainstorming for names in the discord server, along with the other contributors. My requirements for a name was

  • It has to be catchy (in a poetic or mysterious sense)
  • It has to somehow refer to one of the main themes of the game (dreams, torments, psychology, surrealism, therapy), preferably more than one at the same time.
  • Bonus points if it includes alliteration or portmanteau.

After tons of back and forth, I was almost done with choosing one of the options, but one of the last things I did, was throw the word “surreal” through a thesaurus, just to see what I find, and it showed me a word I’ve never seen before: Hypnagogia.

Hypnagogia is the experience of the transitional state from wakefulness to sleep: the hypnagogic state of consciousness, during the onset of sleep. (The opposite transitional state from sleep into wakefulness is described as hypnopompic.) Mental phenomena that may occur during this “threshold consciousness” phase include hypnagogic hallucinations, lucid thought, lucid dreaming, and sleep paralysis. The latter two phenomena are themselves separate sleep conditions that are sometimes experienced during the hypnagogic state

https://en.wikipedia.org/wiki/Hypnagogia

I don’t know why it was shown as a relevant word to “surreal”, but it immediately clicked for me, because with only a single letter change, I could create an interesting portmanteau.

Hypnagonia

In case you don’t get it, this is a mix of the aforementioned Hypnagogia + Agony (or “Αγωνιά in greek) and It hits so many of my requirements at the same time:

  • It refers to sleep
  • It references agony (being tormented by your own psyche is a core theme of the game)
  • The original word is close enough to the concept of surreality that the thesaurus brings it up as a suggestion.
  • It’s a portmanteau
  • It sounds exotic. Kinda like a fantasy setting
  • It is unique. I don’t conflict with anything else out there (from what I can see)

I did try a few other variations of this, but I believe this one is the catchiest. And I’m also fed up looking for names, so I just went ahead and finally renamed everything!

In case you’re interested, here’s some other names I was considering:

  • Retrospections
  • Remedy of Reverie
  • Theraltes (Therapy + Ephialtes)
  • Lucidium (Lucid + Somnium)

OCTGN is going cross-platform

I’ve talked a bit before about my favourite card-game playing engine on the net, OCTGN and the games I’ve developed for it. I just wanted to spread the news that the client is improving and even though there’s been few public releases since 3.1.0.10, this is because the developers were working on making the client cross-platform via Mono.

I know many Free Software enthusiasts are not crazy about Mono, but this was the only viable option for an app that was in MS dotNet, so this is definitelly better than the alternative as OCTGN is heads and shoulders above all other card game engines in my opinion, both for its usability and looks, but also for its natural support for a proper scripting language in the form of python, rather than no scripting or having an custom one that one needs to learn, like GCCG.

Good stuff.