January 2021 |
DWITE programming contest solutions | |
MATLAB language pet peeves | |
Tap to measure tempo (JavaScript) | |
Brainfuck interpreter (JavaScript) | |
Overview of Project Nayuki software licenses | |
Fast Fourier transform in x86 assembly | |
December 2020 |
The versatile sieve of Eratosthenes | |
Binary indexed tree | |
Convex hull algorithm | |
AVL tree list | |
Smallest enclosing circle | |
November 2020 |
Disjoint-set data structure | |
My favorite YouTube video channels | |
September 2020 |
Poor feedback from readers | |
July 2020 |
Skill levels in Scalable Vector Graphics (SVG) | |
May 2020 |
Decent feedback from readers | |
Free small FFT in multiple languages | |
April 2020 |
Project Euler solutions | |
Ending my support for Python 2 | |
March 2020 |
Time-based One-Time Password tools | |
Analog vs. digital games | |
Triangle solver (JavaScript) | |
February 2020 |
Common mistakes when using the metric system | |
My code style | |
Web site notes | |
January 2020 |
BitTorrent bencode format tools | |
November 2019 |
Summary of C/C++ integer rules | |
September 2019 |
Being a polyglot programmer | |
B-tree set | |
August 2019 |
Lowest SHA-512 value by brute force | |
July 2019 |
QR Code generator library | |
Barrett reduction algorithm | |
Montgomery reduction algorithm | |
About | |
Fast QR Code generator library | |
Transcription of Pokémon Game Boy music | |
June 2019 |
Gauss-Jordan elimination over any field | |
Reed-Solomon error-correcting code decoder | |
Sliding window minimum/maximum algorithm | |
Subtle ways to lose data | |
May 2019 |
Self-encrypted cache structure | |
December 2018 |
Don’t share commented-out code | |
November 2018 |
Simple DEFLATE decompressor | |
Canada Tax-Free Savings Account simulator (JavaScript) | |
GIF optimizer (Java) | |
Creating a QR Code step by step | |
October 2018 |
Factorize Gaussian integer (JavaScript) | |
Binary array set | |
Forcing a file’s CRC to any value | |
Sorting algorithms demo (Java) | |
Random password generator (JavaScript) | |
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) | |
Panel de Pon puzzle solver (JavaScript) | |
July 2018 |
Propositional sequent calculus prover | |
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 | |
sRGB transform library | |
Knuth-Morris-Pratt string matching | |
Next lexicographical permutation algorithm | |
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 |
Unsigned int considered harmful for Java | |
December 2017 |
Near-duplicate features of C++ | |
Binomial heap | |
September 2017 |
ProFont (Nayuki’s version) | |
July 2017 |
Manufactoria solutions | |
Java SE 5 is the most significant release | |
Casio fx-991MS tips and tricks | |
June 2017 |
Number-theoretic transform (integer DFT) | |
Patchouli Knowledge laptop sticker | |
May 2017 |
Good Java idioms | |
April 2017 |
Some bit-twiddling functions explained | |
March 2017 |
Simple GUI FLAC player (Java) | |
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 | |
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 | |
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) | |
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 | |
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 | |
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? | |
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 | |
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 | |