Project Nayuki

Recent pages

Page Last updated
October 2016
The versatile sieve of Eratosthenes
Overview of Project Nayuki software licenses
Project Euler solutions
Unsigned int considered harmful for Java
Gaussian blur demo
Decent feedback from readers
September 2016
Being a polyglot programmer
Smallest enclosing circle
Manufactoria solutions
Java BigInteger was made for RSA cryptography
Disjoint-set data structure
Knuth-Morris-Pratt string matching
Next lexicographical permutation algorithm
Factorize Gaussian integer (JavaScript)
Poor feedback from readers
July 2016
GIF optimizer (Java)
Supplement to my résumé
DEFLATE library (Java)
June 2016
Simple DEFLATE decompressor
Reference arithmetic coding
Reference Huffman coding
Fast skipping in a linear congruential generator
Karatsuba multiplication
Barrett reduction algorithm
Montgomery reduction algorithm
Batch up new messages in Gmail for better productivity
May 2016
AES cipher internals in Excel
Tablet desk clock
NetPerSec (Nayuki’s version)
Good Java idioms
Java Native Interface compared to Python/C API
Knuth’s -yllion number notation
April 2016
QR Code generator library
Free small FFT in multiple languages
March 2016
Encrypted backup client for Dropbox
February 2016
Full screen clock (JavaScript)
Computing Wikipedia’s internal PageRanks
January 2016
Lyrics of Mahou Shoujo Pixy Misa Shouka
Large arrays proposal for Java
MamIRC, the headless IRC client
A fundamental introduction to x86 assembly programming
AVL tree list
Canada Tax-Free Savings Account simulator (JavaScript)
Forcing a file’s CRC to any value
December 2015
TTC fare guide for tourists
How to implement the discrete Fourier transform
Angles in elastic two-body collisions
What are binary and text files?
Animated floating graph nodes
November 2015
Bitcoin cryptography library
Image unshredder by annealing
Simulated annealing demo
Web site notes
Gauss-Jordan elimination over any field (Java)
October 2015
Variations on Japanese romanization
Symmetry sketcher (JavaScript)
September 2015
JSON library (Java)
Cryptographic primitives in plain Python
Handling physical quantities in math formulas
August 2015
Tiny PNG Output (C)
RollerCoaster Tycoon saved games
July 2015
Numerically stable law of cosines
May 2015
Fast Fourier transform in x86 assembly
Overwriting confidential handwritten text
April 2015
Compact hash map (Java)
March 2015
NotepadCrypt format decrypter (Java)
My Mario Kart 64 time trial records
Fast Fibonacci algorithms
GIF89a specification (HTML)
Triangle solver (JavaScript)
January 2015
Nanoblock modeling in POV-Ray
1D barcode generator (JavaScript)
December 2014
Panel de Pon puzzle solver (JavaScript)
November 2014
Huffman-coding English words
The photographic exposure equation
Native hash functions for Java
October 2014
Binomial heap
Binary array set
Gamma-aware image dithering
Absolute and relative lens apertures
September 2014
Fast SHA-2 hashes in x86 assembly
Sinc-based image resampler
Windows timestamp accessor library
Random password generator (JavaScript)
E-Trade: An expensive, rigid brokerage
August 2014
Portable FloatMap format I/O (Java)
Tiny Encryption Algorithm in x86 assembly
Transcript of “New Money (Filling the Void)”
July 2014
Iterated popcount results in 0 or 1
April 2014
Approximating Euler’s number correctly
Optimizing brainfuck compiler
March 2014
RC4 cipher in x86 assembly
Full transcription of Ichigo Mashimaro – Main Theme
Lowest SHA-512 value by brute force
February 2014
Extending the use of logarithmic scales
Boolean algebra laws
January 2014
Guide to Canada income tax by successive approximation
I type in Dvorak
DES cipher internals in Excel
December 2013
Fast Whirlpool hash in x86 assembly
Fast SHA-1 hash implementation in x86 assembly
Fast MD5 hash implementation in x86 assembly
DWITE programming contest solutions
Some bit-twiddling functions explained
Graphic overview of Canada income tax, RRSP, and TFSA
November 2013
Java’s signed byte type is a mistake
Propositional sequent calculus prover
So you want to be a day trader? Bad idea.
Master theorem solver (JavaScript)
October 2013
A math/programming view of Canada GST/HST credit calculation
September 2013
Galois linear feedback shift register
August 2013
Resizing images by area
Automatic Caesar cipher breaker (JavaScript)
Frog Fractions guide
Primitive recursive functions
Casio fx-991MS tips and tricks
July 2013
Example of simplifying and improving code
June 2013
Site map
My university courses
May 2013
Recommended articles from Canadian Couch Potato investment blog
April 2013
Polynomial arithmetic shorthand
March 2013
Chemical equation balancer (JavaScript)
Public transit and monotonicity
February 2013
Understanding Facebook IDs
Dvorak keyboard in use warning sign
January 2013
Is there an ideal comparison sort?
Brainfuck interpreter (JavaScript)
December 2012
Transcription of Hare Tokidoki Egao
Sorting algorithms demo (Java)
Unusual chemical symbols in English
Automatic Minesweeper solver
November 2012
Facebook anniversary ray trace
Prayer brackets
Calculate GCD (JavaScript)
September 2012
Unspecified edge cases in the DEFLATE standard
July 2012
Dumb PNG output (Java)
April 2012
Sister Princess Winamp skins
Patchouli Knowledge laptop sticker
Transcription of Crystal Energy – Guitar solo
Transcription of Nyanyanyanyanyanyanya!
December 2011
How to batch-tag photos on Facebook
November 2011
Binary counter in brainfuck
September 2011
Transcription of Chasse – Instrumental solo
Transcription of Miracle∞Hinacle
Tap to measure tempo (JavaScript)
August 2011
BMP I/O library (Java)
Transcription of o-Hanabatake
July 2011
Calculate divisors (JavaScript)
Calculate prime factorization (JavaScript)
Transcription of Every Day
Transcription of Kana’s Theme
June 2011
A septillion CPU cycles a year
Finding dust by lighting from a grazing low angle
Next-hop routing in real life
國內 doesn’t mean domestic
May 2011
Vigenère cipher (JavaScript)
Caesar cipher (JavaScript)
Countable sets and Kleene star