Current Projects
- This site - uploading old blogs and writing new ones.
- Javascript toys for this site: a klotski puzzle, a funky clock and a hangman game.
- E2 yearnodes: 2013 2007 1995 1987 1978 1967 1954 1945 1936 1924
19191908 - An android app that is, essentially, a glorified todo sequence run out of a database.
- A thematic autobiography, religion is the next step. I will perform
a live readingthereof, eventually.
Completed Projects:
- Presentation about Encrypted Databases
- Presentation about how to use git
- Mini Lexer (Java)
- Write a multithreaded application: Handshake server (with classmates)
Stalled Projects:
- Deitel's simple compiler (Python)
- Enliterate a Bst (Python)
- Naive Mips register allocator
Fantasy Projects:
- MIT's simpleDB (java)
- Tcp/IP sim via MIPS perhaps
- Write a baysean http://www.paulgraham.com/spam.html spam filter or game AI
- Write a toy operating system: OSP/2, unsw kernel utilities
- An improvement to my file renamer, via plugin pushdown-automaton grammers
- Learn and build a nontrivial app in Clojure, Erlang, Forth, and either {Oberon, D, Rust, or Go}
- Pre-20th Century E2 yearnodes: 1896 1886 1877 1865 1855
18461831
Learn a variety of programming paradigms:
Write an application in animperativelanguage: C++, Oberon'7, D/GoWrite an application in anobject-orientedlanguage: Java, SmalltalkWrite an application in adynamiclanguage: Python, Ruby- Write an application involving a query language: SQL, Tutorial D
- Write an application in a functional language: C_Lisp Clojure, Sml, Haskell
- Write a program in assembly language: Pep8, MIPS, Dcpu10
- Write an application in a prototype-based language: Javascript, Io
- Write an application in a logic programming language: Prolog
- Write an application in a language supporting the Actor model: Erlang, Scala
- Write an application in a concatenative language: Forth
- Write an application with aspect-oriented components: AspectJ
- Write an application in a design-by-contract language: Eiffel
Enhance my understanding of the building blocks that we use as developers:
- Write a simple compiler: Basic
- Write a simple database manager: SimpleDB or MicroBase
- Write a multithreaded application: Handshake server
- Write a networking client: TCP
- Write a device driver: tape drive?
- Write a baysean spam filter or game AI
- Write an application that provides a plugin model
- Write a png renderer
- Write a toy operating system: OSP/2, unsw kernel utilities
Experience the ins and outs of programming for different platforms:
- Write a nontrivial desktop app
- Write a nontrivial web app
- Write a nontrivial mobile app
- Write a nontrivial game
- Write a nontrivial embedded app
Learn by teaching others:
- Present a lightning talk:
git/hub tutorial - Present at a local user group:
encrypted databases - Publish a tutorial
- Publish a constructive code review of an open source project
Adapted from Jason Rudolph's programming achievements