- databases: postgres stores the lists in UTF-8 encoding and the forums and logins work off mysql (and php)
- php software (non-forum)
- Pear::MDB2: ezcorean software uses MDB2 to connect to the database (the miniBB and gnuboard connections are also used in those places).
- DB::Pager: all the pages which show a list of page numbers at the bottom, for the vocabulary lists.
- drupal was once used for the reading section, but it was totally incomprehensible to work with due to functions instantiating classes and calling their functions which call other functions, and it was buggy as hell .... In the end, the reading section is just a miniBB hack.
- hannaTheReader: for rss feeds
- ezcorean html parsing functions: these allow UTF-8 html (in KOrean) to be parsed according to split_variables (which depend on the source language -- korean, japanese, german,etc. ). Then the words become tokens and are searched for in the databse to create easy-to-read texts. Yes, php was a bad choice for any multibyte programming, and it has hit a wall as far as speed and file sizes which it can parse. I'm also afraid of changing servers or php versions as they change multibyte stuff on a whim.
- hanaTheReader background아깝다 I really should include this somehow ... ^_^
- javascript software: this site has not been shy by forcing the user to download large javascript files!
- overlib.js: for the dynamic pop-up enabling non-registered surfers to change the skin languageI don't use this as the site has been reduced to just a korean site due to my present involvment in Korean.
- listCollapse.js: for all the dynamic ul/ol lists in the boxes on the left which really enable navigation
- gnuboard forum furnished lots of the javascript code which I cavalierly reused. I made especially good use of the sideview function, to show a dropdown list of meanings from the database.
- forum software
- c++ cgi library: yes. believe it or not back in 2002 I tried to make my own library and make a c++ web site. It was fun. c++, mysql, linking libraries, uploading to sourceforge on an open source project. But, progress was slow because I had to compile to test, and NOBODY is programming in c++ for the web!@
- then i switched to php, which is like 'vb meets the web' mentality.
- TinyPHPForum: From April 05, 2005 - sept. 2005. chosen for its simplicity and multi-lingual code base. v2.0 RC5 © ... and some style sheet tgs from them still around. However, was flat-file, beginner coding, no options. Wanted something more.
- gnu board forum since looks like August 21 2005 to february 2006. database-driven, many features, excellent thoroughness. my introduction to php forum korea-style. however, lacked multi-lingual capabilities.
- miniBB: from February 15 2006. This was the complete forum for the question forum and the examples for the list at the same time, until I changed back to gnuboard for the question forums March 22 2008.
- gnu board again for the forum from March 22 2008, because the question forum is different from the resource side of the site.
At present, the site is a home-grown mixture of an interface to the lists in the postgres database, and a hack of minibb to pull up reply posts. Unfortunately for me, because it was easier for me to set up the postgres for all UTF-8 I put the the words themselves in there , but the follow-up posts are in mysql so it was a pain. The various study lists correspond to various "switch" variables which you can see in the URL. Then, the corresponding (postgres) table is brought up by adding the switch to a generic table prefix to make a table name up. In retrospect, all I did was write forum software, the switch could have been a field in a single table (like a forum_id), and put that in mysql and everything could be done with a single join. Instead, to associate the postgres words with the follow-up posts, the post_ids are given ranges with which posts are then associated by adding or subtracting a certain amount from the wordid in the postgres table. Unfortunately, when the site started, I had no idea it would end up as it is, however.
I also then ended up with a few interfaces for the site: the minibb interface (for grammar and the follow-up posts), a homegrown paging interface (which uses the DBPager class), and a hack of the minibb to make the reading section (of the site), and the gnuboard forum for the discussion forum. To integrate the same logins to work with these 3 different forums was a lot of time-consuming hacking. But I couldn't envision the purpose of the site until well into its development.