running from source

I write the client and server entirely in python, which can run straight from source. I don't recommended this for someone who just wants to get the program working, but rather for those who have a general interest or wish to modify the program.

what you will need

You will need to install python 2.7 and several python modules. To see what your system needs, just keep running client.pyw and see what it complains about missing.

I recently got the client working on Ubuntu 13.10, which required:

YMMV. Feel free to email me if you run into trouble or discover any neat tricks.

OS X 10.9 required a similar pattern to above, though wx was simpler. I use the cocoa package straight from wxPython's site.

For Windows, you'll find this page very helpful. I have a fair bit of experience with Windows python, and I've compiled a couple of the weirder modules myself, so send me a mail if you need help.

Some people have encountered problems with wxPython 3.0, so I use 2.9.x in my official releases. Again, YMMV.

Once you have everything set up, client.pyw and server.pyw should look for and run off the database files just like the executables.

I develop hydrus on 64-bit Win 7, so the program is much more stable and reasonable on Windows. I am developing for Linux and OS X, but I do not have as much experience with them, so I would particularly appreciate your Linux/OS X bug reports and any informed suggestions.

my code

I find I work very much on a conceptual, boxes-and-arrows level. Although I can code in any language, I find the pedantic intricacies of C and its low-level friends a pain, and not worth the performance gain. Python works with little hassle and semantically rich in a way I appreciate; one line of intelligent and word-heavy python can do the work of 20 robotic t+=ord(j_temp)%2;s in C, and with far less fear of memory leaks or injection attacks or buffer overflows. I like long variable names and copious whitespace. I don't do much commenting because I am working alone and it usually makes quick sense to me, even when I haven't seen something for ages. If my code looks kooky to you, I'm sorry; my nerdism is INFJ, not INTP/J.

If you want to contribute to the project, please do! You can send the changes over github, or just email them to me. I'm pretty OCD about my code style and grammar though, so be warned that I'll probably rewrite everything you submit!

I'm not enough of a participant in the open source community to release my code under a specific licence, so everything is just WTFPL. In our internet age, I see copyright and copyleft as equally impotent.