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:
- sudo pip install beautifulsoup4
- sudo pip install pyyaml
- sudo pip install python-potr
- sudo pip install hsaudiotag
- sudo pip install PyPDF2
- sudo pip install flvlib
- sudo pip install pafy
- sudo apt-get install python-numpy
- sudo apt-get install python-opencv
- and installing a recent version of wxPython, which is difficult and best done like so
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.
Some people have encountered problems with wxPython 3.0, so I use 2.9.x. 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 coding
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.