W ostatnim czasie to już druga audycja poświęcona obalaniu mitów o Machiavellim. Wszyscy wiemy, co oznacza "makiawelizm" i jak się przejawia. Ale czy myślimy słusznie? 📻 Dzisiaj (w Tygodniku Spraw Obywatelskich) wysłuchałem ciekawej rozmowy z autorem polskiej książki o Machiavellim - tu jest link:
A miesiąc temu był odcinek podcastu Dwie Lewe Ręce z serii o [O KSIĄŻKACH] „Książę” Niccolò Machiavelli. Tam mówili o Machiavellim jeszcze pochlebniej - link:
Conversio ad mentulam caninam. Non posso dire alla lettera che sia sbagliata, ma se non padroneggi il testo latino, e guardi direttamente la traduzione in nota, è inevitabile che pensi che "patrono e benefattore suo" siano apposizioni di "Pontefice" (e "suo" significhi "di F. Vettori"), mentre nell'originale sono apposizioni di "Francesco Vettori" (e "suo" vuol dire "dell'autore).
Tradurre le parole nell'ordine in cui le trovi è un'ingenuità da ginnasio. #machiavelli #CazzoScrivi
I'm afraid it's time to look into having save/restore for my #Machiavelli#Fediverse#bot. If you're wondering why I've done everything to do without so far, the answer is (de)serialization.
I think I've satisfactorily completed the decoupling of games from channels in my #Machiavelli#Fediverse#bot. The next steps is to generate IDs for each game and provide a to (re)attach channels to games. I would like game IDs to be “meaningful” in some way, so I'm probably going to go with an ID based on the name of the user that created the game and the date when it was started, unless somebody can come up with a fancier idea.
There's been a lot of talk about #accessibility on the #Fediverse these days, so now I'm wondering how accessible my #Machiavelli#bot@fedichiavelli
—this is something I know nothing about, I don't even know if and how visually impaired people play #cards, and would something like my bot make it easier or harder for them?
OK seriously. The #latency is unbearable. This is going to be the insurmountable issue with the #Machiavelli bot. Over 3 minutes for the reply to federate back. I guess playing will be very … relaxed.
OK I'm going to start a new game of #Machiavelli to test the bot. Everybody is free to join in (reply 'join game' to any of the posts in the thread) at any time, even while the game is ongoing (good for testing!)
@fedichiavelli machiavelli create ; join game ; machiavelli start
Wow the official #Mastodon#Android app sucks hard. @Azalais is helping me test my #Machiavelli game management bot and there's apparently no way to see on screen at the same time the reply combo the bot sends (public message with table layout + direct message with player cards).
I've made an effort to minimize the “noise” produced by the bot, but it's still pretty verbose. Part of the issue as usual is that even unlisted messages ultimately are visible to followers, so maybe I should adopt the @pluralistic strategy of adding a CW to collapse them at least?
One of my favorite #cardGames is #Machiavelli, similar to #Rummy but where the players have the opportunity to rearrange all played groups and runs as they please to make it easier to add their cards (as long as at the end of the play everything on the table is valid).
I've found enough time today to set up the infrastructure for #LAN play for the #Machiavelli bot I'm writing. It's the opposite of refined, and barely functional. In particular, expect delivery issues for messages in multi-player at the moment because the server basically brute-force sending, which as anybody that has don any decent socket programming knows, it's the worst possible way to do things.
It turns out that the issue wasn't with the socket handling but with the client-side line-base wrapper. Fixed the issue, tested a full “multiplayer” LAN game between me and myself.
So if you pull https://codeberg.org/Oblomov/machiavelli-fedi-bot
you can now play #Machiavelli at #LAN#party!
(Conditions apply. There is still a lot to clear up about the way messages and channels are handled, but if one of the participants starts with 'machiavelli create' you're set.)
I've pushed today's work on my #Machiavelli game managing #bot to the repository https://codeberg.org/Oblomov/machiavelli-fedi-bot
It's still not “fedi ready” (can only be played on console and on LAN for testing), but it's getting there.
I'm going out this evening so probably no more progress today —and time will get even shorter in the coming days.
Still, once the infrastructure is more refined, it may be ready for testing, at which point the obvious question is “where”.
The natural place for it would be botsin.space, but as bots go the #Machiavelli one is a bit atypical: during matches, I expect traffic to be more frequent that for other bots, even though I'm working on minimizing the amounts of messages exchanged. There's also the issue of the message limit, as I'm not 100% that a single table description would always fit in 500 characters.
One more step I have to do before finally getting to work on the actual #Mastodon backend for my #Machiavelli#game#bot is decouple the whole messaging system from the game logic. This is technical debt accrued from the original #IRC bot plugin, where for simplicity the class handling the logic sent public and private messages to update users about the game status.
#gamedev log for the #Machiavelli#bot: I've completed the overhaul of message reaction system, and taken the opportunity to fix a few inconsistencies and even a couple of bugs. I've been thinking about introducing a coalescing step so that reactions of the same kind are only output once —for example, there's not need to respond with multiple intermediate table updates, only the final state is necessary. This would allow users to play multiple sets in a single command without flooding.
On the upside, the bot structure is clean enough that I was able to build a web interface to the game engine in just a couple of hours. The components are just a trivial web server in #Python that serves a couple of static files and converts POST requests to bot commands, an #HTML “template” that displays the table and use cards and #JavaScript client code to convert user interactions to appropriate POSTs, and the responses to HTML updates.
Aside from the drag & drop issue, trying to support mobile for my web frontend to the #Machiavelli#bot is a whole new mess. Screen estate is at a premium, but towards the end of a game there's going to be a lot of card groups on the table, so that making them all visible while still allowing interaction with each individual card in it is … nontrivial. At the very least there needs to be a way to zoom in and out, and possibly also to rearrange the groups on the table to make interaction easier.
So, apparently when playing an ace of diamonds on my web frontend for the #Machiavelli bot, the move gets blocked by the ad blocker, because it POSTs something like play/AD/14
Updates to the #machiavelli bot have been slower these days, what with the end of summer vacation and my own fascination with the web (HTML+JS) interface to the bot. I'm honestly surprised by how relatively easily I've managed to set up a rather functional interface that allows access to most of the card/group manipulation features of the underlying engine. it has also exposed a number of small kinks that need some ironing out.
I'm not entirely sure if I'll develop this UI much further, even though I wouldn't mind setting up a website not unlike https://lichess.org but for #Machiavelli. I think I'll add a few more features that I believe may be useful also for the #Fediverse#bot, and finally get to the actual bot.