## Chapter 4: Kagomelia

The next big change in developement comes from the fact the focus was now on a database system, which main tasks are receiving and sending documents not intended to be read by humans. _ decided to stop implementing the system in PHP. _ chose C++ because _ already wrote some programs in it.

_ started implementing a whole bunch of libraries for creating an HTTP server and generation and caching of HTML documents. Because TLS was becoming standard on the Web, _ also implemented the protocol, although _ decided to use an external library for ciphers and hashes given my prior poor experience with cryptographic code. _ spent years writing code while looking at a black and white text console.

Simultaneously, _ had a vision of a world where _ characters live. The server was to be located within that world. _ named structures and other things to align with that vision. The decision could not be worse, as _ altered these names quite a few times. At one point, _ realized that _ need to think harder in order to understand these names with what was a function for. They had become a hassle and were slowing down developement, so _ decided to quit it and named everything normally.

_ treated the project as a collection of open source libraries. _ wanted them to be portable and usable for other purposes. _ thought of maintaining backward compatibility in a library that no one but _ uses. There was nothing to be backward compatible with, but _ thought of maintaining it for the sake of it. _ also wrote a lot of code for interface completeness, regardless of whether _ programs needed these functions or not. Well, at least _ learnt something from this experience.

When it comes to the Web site, _ wanted it to be a Web site that is sent by a server residing somewhere else. _ tried to mix the projects with the artistic vision that _ had. Unfortunately, these two does not combine well. The audience for the system and programs is different that the audience _ that would be interested in the artistic things. Although the biggest problem was that the artistic things distracts the user from the content the page is meant to convey.

For example, _ made a page resembling a textual terminal, that runs a fictional shell which users use to start programs, which were the Web apps and pages. There were problems with this approach.

First and foremost, as a user, you direct the browser to the site, you are presented with a terminal-like interface and then what? Most would probably close the window, not knowing what to do.

_ wanted this other world, this wierd system, to feel realistic. As _ realized later, by making it look and feel different from other pages on the Web, it actually started being less realistic, because if there really was another world, then in order to use the Web, persons there would need to receive and send the same Internet packets as humans do on Earth or they wouldn’t be able to connect.

_ do not want to go into details of this artistic vision, because it still holds, but now is more grounded and sound.

For a short period of time there was a Web site at `kagomeko.moe`, because _ once again moved the site to another domain. With this change, _ also stopped using a hosting service, because _ was developing my own server software. From that time, all content is served from _ home.

The multithreaded server was crashing once in a while at the time. Sometimes the threads did not finish for reasons _ do not know. It worked okay for days and then at some point in time it did not. _ also realized how many resources referenced by dynamic HTML documents are actually static. _ server design focusing on dynamic resources was not quite right.