It will help you to improve your skills or how to understand how to start this journey!
Day 01/04/2022, 3:00 pm, place Reddit.com/r/place, landing of the redditors
In the IT world, April 1st is the day of jokes, absurd news or features come out as non-sense in the majority of websites. For example, StackOverflow this year put filters on its pages (like on Instagram).
Reddit after 5 years has put back on Place, that is a digital canvas where everyone did the part with a pixel every 5 minutes.
There aren’t the numbers of how many people attended but it was fun. I remember the first day that we had to conquer a space for our flag, I was in the r/italy group, and we had to fight for the territory.
The discord of the Italic group was a mess with too many people at same time writing. Many noticed the problem of the general channel which had a few hundred active users at the same time. Then their messages disappeared like pizza in an endless stream. It became like impossible to coordinate and the mods were few to manage everything so other channels were born such as the one for the English language to coordinate with allies.
Practically they were looking for countries with different time zones to cover their territories when they went to sleep and they made non-invasion agreements with the neighboring ones, if you notice in fact (here the final version, the click becomes 4000×4000, but we get there) you can find some hearts which indicated that there was no annoyance but a hand.
The r/finalclean version
I remember the 2017 edition, about a bot and maybe i joined the game. I was since few months on Reddit so it was kind of new, also I would did an AMA in italian just after few months on ItalyInformaticabut this year was different, I wanted to play.
So I tried like the other Fridays to conquer the Italian flag and fight the vandals.
Day 02/04/2022, Reddit /r/place, defense and conquest of the redditors
On the second day during the morning I decided to check if any bots had come out in the meantime. On GitHub there was one more reliable than the others but it did not have a management like check if the pixel is wrong and then put it, it did nothing but draw 5 minutes for 5 minutes based on the coordinates.
During the afternoon it turns out that the bot itself has improved heavily and so I study it for a moment. In the evening around 22 I decide to make a bot launcher for our needs.
Remember that it was a mess in the Discord server so get noticed by the mod was very difficult, so you were tagging them in channels with less noise. At the end I did a bot launcher that was downloading automatically the last version of our drawings with the boot rebooting. This to avoid to keep up manually with changes for all the users.
With this chaos of people the launcher was the only solution to make sure that users who wanted to use the bot were always up to date. Otherwise they had to manually update the file with each new design which happened quickly, such as various corrections or simplifications.
I can assure you that I have never seen so many people chatting at the same time discussing, and I have been using Telegram for years even during live events in groups of a thousand people.
I proposed a Bud Spencer on the white part of the flag with the coordinates. Because it was something that would have ensured the support of other countries such as Hungary, Germany and Spain as it is very famous in those countries. In the end he got the David but it was difficult to get noticed with the proposals in that mess.
Especially because in the evening they opened another 1000×1000 canvas on the left with other usable colors. Then they went wild to conquer a new piece on the right, today we see the result of having all those territories that could not manage them. In fact, that flag disappeared the next day.
However around 10:20 pm I get noticed by the mods for my launcher and I find myself in call with other devs who were modifying the bot.
The bot is the one used by everyone. The bot is in Python and allowed to manage multiple accounts but it worked with a configuration file.
The Discord server developers in the meantime added the overlay system.
The devs had started tweaking the bot which I had would avoided because it would have been difficult to update and keep up with it. In the IT field it is called a fork, or a derived version which must then be kept updated and which has changes.
The changes at the end was to use hardcode the image file, ignoring the parameter in the config file, to avoid mess from the users trying to tweak it with a web request to the repository for the coordinates.
Then my code was added to the whole thing, which underwent the best that also downloaded the image and checked if there were any news. The bot with the various changes around 02:00 was ready to be used with a readme.
At that point I was in the server’s “management” group and had access to write announcements and more. I went to sleep with the bot running.
Before moving on to the next day, let’s explain a bit how everything worked. The overlay system downloaded the image on the GitHub repository which was like for the pixel-by-pixel bot, the overlay was generated from the same image of the bot so with a swipe everything was updated automatically. With the bot updating the data it was practically okay, of course the bot underwent continuous updates but this is another matter.
Day 03/04/2022, Reddit.com/r/place, expansionism
The next day it turns out that the bot died at around 3 o’clock due to Reddit having gone 500 (the server was not responding) but I was sleeping the sleep of the needy. As no one released any updates to the image overnight, the bot did not restart.
However, during the day the bot receives many corrections from the original repo, including support for the new canvas and also the one that will pop up during the afternoon (below).
I also become “the one who manages the bot and responds to assistance” but it was manageable.
The readme was filled with FAQs and my nightmare turns up, doing support for, Windows!
Yes, on Linux there was no problem getting it going but on Windows there was always someone who didn’t know why it didn’t work etc. My job was populating the readme with the most common questions and threatening people to read it, because of course there were people who downloaded the bot and didn’t even install Python.
For the bot I put some windows specific fixes for the installation and some stuff in the readme, just to document everything.
Or then they get solved but it was all written in the readme. Fortunately I was helped by other users in the support because I am not using windows I wasn’t of much help …
Meanwhile he climbed the stiff neck in the chair and gave myself a hand as a mod. The server will reach 4100 users, including Italians and non-Italians, plus many other mods.
It turns out that a good part are high school students or working people but mainly computer scientists (mods).
Furthermore, it is possible to better communicate to the players what needs to be done with more announcements and no more silence as before, requests are answered if mods were invoked, who followed other discord as ambassadors, who was in constant call with others and etc. In a nutshell, we need 20 people on the board so as not to have to go crazy with such a flow between graphics, who informs / responds, who develops, etc. We have not reached that figure but they are what they need and if they have experience on the programs it is even better to be faster. Surely having everything on github has made life a lot easier, allowing us to centralize everything.
Towards the evening we created a group of people to define the roles so that the voice mods and the others share the fact of updating the overlays or correcting them as quickly as possible.
Also because if the bots acted on an outdated image, the work of others was cancelled. In fact, it happened that some allies redrawed things that we had removed because they did not have updated images. Fortunately it was possible to know who was drawing because with the mouse click a small tooltip with the name of the account appeared so it was then possible to trace the community.
For Sunday evening I did the guide to modify the bot to cover the new part conquered with the last section. In short, the readme included everything until one of our devs comes up with a script to automatically generate accounts for Reddit.
Let’s open another chapter for multiple accounts. The bot being multithreaded could manage multiple accounts and each one required to create an app (inside Reddit) so there were those who used the bot even with 10 at the same time. Over time then Reddit banned them but not from Reddit but only from r/place. You could also configure proxies to avoid getting caught and also specify different sections of the image to draw to deal with.
In a nutshell, the bot worked for you and was used to defend the ground, the estimates with the various counts are about 50 bots but I would add a 20/30% for multiple accounts in operation.
Day 04/04/2022, Reddit.com/r/place, out of the
The event ended on Monday, while various proposals had arrived to do the counting of bots and other things but my comment was simple. Is it worth it for something that ends tomorrow?
However, this time it was a working day so there were fewer updates of the bot also because they needed only some corrections. Also because this third night the bots were killed again but not all due to some corrections (always fault by to Reddit).
I also realize that in the assistance I was starting to become a bit unpleasant because the requests received were not as useful as the penny of change on the newsstands. The bot is also modified to add a bit of randomness in the requests to avoid bans but it was never understood how they worked.
There have been various assumptions, from how long the account existed, from karma, if from the same IP but there was not something fixed as a scheme.
However, the event suddenly ends around 1 in the morning with me who had just thrown myself to bed at which I turned off the bot, like so many others.
The event ended suddenly because the suddenly available colors that had increased out of all proportion suddenly became just one and white.
This resulted in all bots even if they specified the color to draw were replaced by a white pixel. This immediately made it clear who was using the bots demonstrating the trolling power of Reddit itself. After days of memes and battles for space, boom users delete their work by themselves.
Those who say that the French (bottom left) did not use bots are wrong, we were the ones who used little compared to many others.
Another premise is that the bot checked pixel by pixel if it was the same as that of the image, so our people who were so few, could not draw but mainly defend the part above. The system did it row by row and column by column so before reaching the end it would find something especially if it interacted every 5 minutes.
When there was this change of the pixels it was normal for the bots to go crazy because the image became different from the one it drew before so in this screen occurred at the change you immediately notice who used the bots a lot.
To have that effect, it’s probably a few hundred thousand bots with multiple accounts and not our few.
For this kind of events:
- A group of mods available or at least taking turns to manage players and provide instructions
- In this group some experienced programmers to provide the most reliable things possible, considering that having a stable program in 2/3 days does not exist
- That streamers are bad people, there have been cases where with hundreds of bots aided by their audience they literally obliterated spaces managed by others to put their face in. It also happened here on Monday with a Polish streamer who was removing Falcone and Borsellino
- The Easter egg of Among Us was incredible, they practically inserted them in the drawings of others and they were not noticed, at the end of the event almost 3000 were counted. They happened in the pizza or in the David
- We need a single coordination centre, having people who spend time correcting but don’t get the latest updates created problems for us in the early days because it prevented us from making drawings. Maybe a dedicated sub or telegram channel with only announcements outside of Reddit was useful for this and do a count too
- As today it is impossible how many on the server were Italians and non-Italians, but for the rule of 20/30% on 4100, you do your numbers
- An automatic bot that downloads the latest changes is as essential as the flow of image updates, otherwise people get impatient and start doing other things
- Conquering territories without defense is useless and just a waste of time, in fact I honestly did not participate on the other canvases
- Deciding democratically is important and was done for the drawings but how much I would have liked a Bud or a Terence (the last day they were in the vote)
- Coordinating, like some communities, between drawings and more requires motivated people with at least graphic skills. Making a drawing and then correcting it because the image had errors was really limiting
- People don’t know how to read the instructions, apart from the bot’s ignored readme speech (which is now a testament) people couldn’t install extensions or find references in pinned messages for example. So you have to be prepared to make documented and even a little threatening messages. My standard was physical threats to anyone who didn’t read the readme before asking for assistance, too bad we were online
- Bots are useful if you have a firepower of the order of 4/500, with an interval of 5 minutes you need such a number to control large or small spaces that are
- Reddit had the functionality to download the image based on zoom but many used screenshots…
- The launcher and setup are optimal for simplifying the users life that has proved complicated for many
An alternative weekend certainly but to be dosed every few years.
I say thanks to all the mods for availability but I don’t know how to associate discord names to accounts on Reddit or Github because apparently I’m the only old man using the same everywhere.
- d-beezee author of the account generator and the overlay system
A few other technical details
So anyone who is not a programmer can jump.
- The system exploited the websockets so it was a continuous flow
- The bot took the tiles of the drawing and did a search between the one to be drawn and the original with a match of similar colors in case of errors, so the original image could not cover spaces beyond 1000px otherwise it would take a long time to find pixels (including ignoring the transparencies that acted as a mask) and crashed (I did the tried test)
- The 2FA authentication created problems for the login but it could be circumvented by deactivating it or with a parameter, but I never said it so as not to have to do support for this too
- The original bot ultimately differs from ours which had less things including cleaner code and Tor support, I avoided for not having to explain this stuff as well
- On windows it needed PIP and often the alias for Python was not put and therefore the programs did not run and the bat files opened and closed the window
- Sometimes the bot seemed to crash but it was probably the queue in the websocket or something else that gave this impression
- As a bot, the data was more up-to-date because the browser cache was avoided and not everyone understood that they had to wait to see the pixel placed. Internet doesn’t mean real time to the millisecond especially with such a stream
- From what I saw Reddit downloaded the various tiles in PNG and then drew on them with the various pixels and then after a while updated them by making an interactive SVG
- The overlay did more or less the same thing but with a 4000×4000 image at the end, the bot instead use smaller sections
- The launcher had a setup with a prompt (not mine) which compiled the JSON and then the PNG update system which killed the process and restarted it if it saw new, so the user just had to launch it after putting the various dependencies
- If it were done only for windows I would never have touched the bot but now we don’t pay attention to these things anymore, luckily