Library, mostly Java, with all sorts of useful code pieces and courageous attempts by myself. In particular it has
-
some persistent data structures: B-trees, sets, maps, ropes, priority queues
-
primitive data types, including primitive sets or maps, which is actually generated by a script.
-
a pair type for generic use, and a 'tuple type' called Fixie...
-
an re-implementation of streams. This 'streamlet' implementation, unlike Java streams, do not drain up upon the first retrieval; and it provide a 'key-value' based stream (Streamlet2) which is more suitable in map processing.
-
a generic lexer and parser for an operator-based grammar, which is adapted around the repository
-
some functional programming language interpreters and compilers, current one and a previous one
-
some logic interpreter (a.k.a. Prolog) and compiling them into Java lambdas
-
some numerical algorithms, BFGS or what...
-
stock quote readers, some stock indicator calculations (and some dangerous quantitative strategies that could not earn me money)
some code come with simple JUnit test cases, in src/test/java folder.
Most often I come to a new book in library, tried to grasp some ideas from it, and write something new into this repo. Obviously I am a wheel-reinventer. You can see I tend to write the same thing again and again, and I hope I learnt something through the process.
Recently I was thinking about a new name for this muddle of stuff... maybe call it 'pointless', or call it 'dangerous' :-) lots of rename refactoring need to be done though.
An enthusiastic programmer, with some computer science, maths background. I write Java for living (curriculum vitae).
Get following reasonable things ready:
- Linux, unix, or cygwin
- git
- openJDK
- Apache Maven
- eclipse
- rlwrap if you want more command-line convenience
Import the Hong Kong Post root CA:
curl -sL http://www1.ecert.gov.hk/root/root_ca_1_pem.crt > /tmp/root_ca_1_pem.crt keytool -import -trustcacerts -keystore ${JAVA_HOME}/lib/security/cacerts -storepass changeit -alias hong_kong_post_root -file /tmp/root_ca_1_pem.crt
Check-out and execute run.sh. It builds Java code, and performs some pre-compilation.
Execute command mvn eclipse:clean eclipse:eclipse and imports the project into any workspace.
printf '? dump something, nl' | ./run.sh --quiet
./run.sh evaluate 'true'
printf 'inputs...\ninputs...\n' | ./run.sh filter reverse
./run.sh --use MONAD filter --do 'concatm . map {sh/ {}} . split {10}'