I like to write programs. I like to explore problems. I write all of my programs to run under Linux.
php-malware-analysis. Deobfuscation and analysis of PHP malware captured by a WordPress honey pot
146kilo-in-go. Kilo text editor, from Build Your Own Text Editor, in Go
116reverse-php-malware. De-obfuscate and reverse engineer PHP malware
81userlandexec. userland exec for Linux x86_64
69ssh-tarpit-behavior. Results of running endlessh to tarpit ssh scanners
51interviewquestions. Links to my interview question repos
21crc32-file-collision-generator. Create files whose CRC32 value matches that of another file
20NudeDetectorPHP. PHP implementation of Rigan Ap-Apid's "An Algorithm for Nudity Detection"
19malware-phylogeny. malware phylogeny for WSO web shell, Shellbot IRC bot and algorithm
17infinite-fake-website. Lure SEO spammers down a hole with no bottom
14random-credit-card-numbers. Generate unique credit card numbers that pass the Luhn check
10udp-echo-server. Golang echo server, using UDP
9GoKilo. Kilo text editor, refactored into Go
8tree-pattern-matching. Hoffman and O'Donnel's "Pattern matching in trees" implemented in C
7binary_tree. Consolidated binary tree interview questions
6any-combinatory-logic. Combinatory Logic Interpreter with user-definable primitives and abstraction algorithms
5self-replicating-programs. Assorted self replicating programs: python, bash, php, m4, perl, awk, gpp
5tableaux-in-go. Prove propositional logic tautologies via Smullyan's tableaux method
5crapterpreter. An unremarkable interpreted programming language
4station. BME280, Raspberry Pi atmospheric data collection system
4combinatory-logic. Full featured combinatory logic interperter
3userlandexec-arm. userland exec for Linux ARM v7
3squava. Command line Squava game in Go, Alpha-beta minimax and Monte Carlo Tree Search
3nine-board. Nine-board Tic Tac Toe in your browser
3arithmetic-parser. Golang arithmetic expression parser and evaluator
2huffman. Programming job interview question, Huffman encoding
2tcp-self-connect. Illustrate TCP client self-connect/simultaneous open in ephemeral port range
2cryptoquip-solver. Try to solve newspaper "cryptoquip" monoalphabetic substitution cipher puzzles
2lisp-in-python-in-go. Peter Norvig's Lisp in Python reimplemented in Go
2lru-cache. Programming job interview design question - least recently used cache
2lambda-calculator. lambda calculus interpreter
2list-segment-implementation. A deliberately limited re-implementation of the "ls" command
2tree_symmetry. Coding problems relating to trees with more than 2 children per node
2utf8validator. UTF-8 byte stream validation programming job interview question
1quack. Queue data structure programmin job interview question
1commonwords. Revisiting Knuth and McIlroy's word count problem, in Go
1functional_dequeue. Investigations into the 3-stack constant time/space double-ended queue
1reservoir-sampling. Reservoir sampling as a Unix filter program
1smtphoneypot. SMTP honey pot, waste some spammer's time and efforts
1interpolating. caculate numerical values of an interpolating polynomial passing through N points
1bcd2. BCD arithmetic experiments
1dht11_service. DS18B20 and DHT11 Raspberry Pi data collector
1divisionwithout. Programing puzzle, integer division without using built-in division operator
1scapegoat-trees. Scapegoat Trees binary tree algorithm
1bediger4000.
1bitops. Solution to, and analysis of, a programmin job interview question
1graycode. Developer job interview question about generating Gray Code values
1probability-club. Programming job interview question about simulating probability of an odd game
1swapbits. Daily coding problems interview question: swap even and odd bits in 8-bit integer
1curried-arithmetic. Programming interview question involving curried functions
1jobscheduler. Job scheduler interview question
1monte-carlo-lock. Emulations of "machines" from Raymond Smullyan's book, The Lady or The Tiger
1fair-coin-flipping. Interview problem asking about rounds of flipping many coins at once
1cryptopals. Golang implementation of the cryptopals cryptography challenges
1linked_lists. Linked list interview questions and puzzles in Go
1kalah. The game of kalah, or mancala
1postorder-tree-traversal. Recreate binary tree from its post-order traversal
1programmers-calculator. Command line calculator with arithmetic and bitwise operators
1arithmetic-expressions. Arithmetic order of operations expression evaluator
1