Project Nayuki


Recent pages

Page Last updated
December 2018
Subtle ways to lose data
Don’t share commented out code
Web site notes
November 2018
Decent feedback from readers
Overview of Project Nayuki software licenses
Simple DEFLATE decompressor
Canada Tax-Free Savings Account simulator (JavaScript)
GIF optimizer (Java)
Project Euler solutions
Poor feedback from readers
Creating a QR Code step by step
October 2018
Factorize Gaussian integer (JavaScript)
My favorite YouTube video channels
Binary array set
AVL tree list
Forcing a file’s CRC to any value
Sorting algorithms demo (Java)
Random password generator (JavaScript)
QR Code generator library
Calculate GCD (JavaScript)
Animated floating graph nodes
Bitcoin cryptography library
September 2018
Cryptographic primitives in plain Python
Optimal text segmentation for QR Codes
Fast discrete cosine transform algorithms
Full screen clock (JavaScript)
About
Panel de Pon puzzle solver (JavaScript)
July 2018
Propositional sequent calculus prover
Binary indexed tree
AA tree set
TTC fare guide for tourists
1D barcode generator (JavaScript)
Chemical equation balancer (JavaScript)
June 2018
Reference Huffman coding
Reference arithmetic coding
Tiny PNG Output
Fast QR Code generator library
Convex hull algorithm
sRGB transform library
Disjoint-set data structure
Knuth-Morris-Pratt string matching
Next lexicographical permutation algorithm
Smallest enclosing circle
Free small FFT in multiple languages
How to implement the discrete Fourier transform
May 2018
Elliptic curve point addition in projective coordinates
April 2018
Pervasive Displays e-paper panel hardware driver
March 2018
Problems with plurals in English
February 2018
B-tree set
Unsigned int considered harmful for Java
December 2017
Near-duplicate features of C++
Binomial heap
October 2017
The versatile sieve of Eratosthenes
September 2017
ProFont (Nayuki’s version)
July 2017
Manufactoria solutions
Java SE 5 is the most significant release
Casio fx-991MS tips and tricks
Transcription of Pokémon Game Boy music
June 2017
Number-theoretic transform (integer DFT)
Sliding window minimum/maximum algorithm
Patchouli Knowledge laptop sticker
May 2017
MATLAB language pet peeves
Good Java idioms
Common mistakes when using the metric system
April 2017
Some bit-twiddling functions explained
March 2017
Simple GUI FLAC player (Java)
Fast Fourier transform in x86 assembly
FLAC library (Java)
Git library (Java)
Designing better file organization around tags, not hierarchies
February 2017
Benchmark of Nayuki’s FLAC encoder
Simple FLAC implementation
Undefined behavior in C and C++ programs
January 2017
Being a polyglot programmer
Gauss-Jordan elimination over any field
Reed-Solomon error-correcting code decoder
December 2016
GO Train acceleration analyzed by video
November 2016
Band-limited square waves
October 2016
CSC258 computer debugger
Gaussian blur demo
September 2016
Java BigInteger was made for RSA cryptography
July 2016
Supplement to my résumé
DEFLATE library (Java)
June 2016
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)
Java Native Interface compared to Python/C API
Knuth’s -yllion number notation
March 2016
Encrypted backup client for Dropbox
February 2016
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
December 2015
Angles in elastic two-body collisions
What are binary and text files?
November 2015
Image unshredder by annealing
Simulated annealing demo
October 2015
Variations on Japanese romanization
Symmetry sketcher (JavaScript)
September 2015
JSON library (Java)
Handling physical quantities in math formulas
August 2015
RollerCoaster Tycoon saved games
July 2015
Numerically stable law of cosines
May 2015
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
November 2014
Huffman-coding English words
The photographic exposure equation
Native hash functions for Java
October 2014
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
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
Graphic overview of Canada income tax, RRSP, and TFSA
November 2013
Java’s signed byte type is a mistake
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
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
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
Unusual chemical symbols in English
Automatic Minesweeper solver
November 2012
Facebook anniversary ray trace
Prayer brackets
September 2012
Unspecified edge cases in the DEFLATE standard
July 2012
Dumb PNG output (Java)
April 2012
Sister Princess Winamp skins
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