~login@TTBP



08 january 2018

writo

There was a time when I didn't like writo. It was slow, it had one-off errors that I had to work around, and its resize mechanism went haywire sometimes. I hated writo, but I was in love with the idea of writo. An infinite persistent drawable world with no private ownership. It could show that human honour could make the need for rules and enforcement obsolete if there were infinite resources at our collective disposal. It could be the proof that the tragedy of the commons was a bogus theory made up by people with big heads and small hearts to justify capitalism and nothing other than that. It could show that we the human species could achieve world peace by furthering the frontiers of space. The earth is not limitless, but space truly is (as far as we know).

With the loving care and tireless dedication of ~selfsame, writo overcame its flaws and became perfect. There were no more one-off errors and the program resized when the window size was changed like water in a new-sized container. Sure, the controls were a little hard to get used to and changing the colour on Terminal for macOS required setting the "Show Alternate Screen" option so that PageUp and PageDown were sent as inputs to the server instead of just scrolling the Terminal up or down a page.

I was so happy with writo, but I felt horrible when it hit me that this wonderful thing was only visible to the thousand-odd members of https://tilde.town. writo is collective art! It should be displayed in public, proud and tall! I, struck with inspiration, set out to find where the world of writo was stored.

I asked twice on https://tilde.town's internal IRC and tried to find out who made writo. I searched the https://tilde.town home page for clues, where I found that ~selfsame (you wonderful person!) was the one behind writo. I scoured ~selfsame's directory to look for writo, and it was harder than I anticipated. Finally, I found a file called world.edn.

world.edn is now symlinked to https://tilde.town/~login/writo/world.edn for easy access, but I didn't know what format it was in when I found it. Why didn't this guy just use JSON? I searched the web for .edn and found that it was a data-storage format called Extensible Data Notation. I found out how this format worked and found a library that converts from .edn to Python's native dictionary format. There was a small hickup with how this library handled vectors (it made them mutable, making it impossible to import .edn maps that used them as keys). I edited the library to treat .edn vectors as Python tuples instead of Python lists, which completely solved the problem. By now, I was wondering why the wonderful ~selfsame hadn't come up with a public-facing web-page for writo. As it turns out, he already had! I was happy that this existed, but sad that all my work had gone to waste. I opened the public-facing web page and was stunned to find out that it wasn't updated in months, couldn't show negative coordinates, and was exclusively in black and white! My work had not gone to waste after all. I set out to create a coloured version of the public-facing page that update every hour and could show negative coordinates. I'm happy to report that ~login's writo-viewing page is at https://tilde.town/~login/writo. It's in full colour, and if you have JavaScript enabled, automatically puts the origin at the centre of the page. If you want to find the origin but don't want to enable JavaScript, you can go to https://tilde.town/~login/writo/index.html#origin. This should, at the very minimum, take care of horizontal scrolling for you.

I hope you enjoy viewing writo at https://tilde.town/~login/writo/, and if you find any problems or have any suggestions for improvement, please send me an email. My (https://tilde.town-only) email address is login@tilde.town. If ~selfsame appreciates this, I'll be really happy!