The Curious Engineer

All blogs / Algorithms / data structures

Project Nayuki

nayuki.io

Algorithms / data structuresMathPerformance / optimization

’90’95’00’05’10’15’20’25
Posts
220 from 31 Jul 1990 to 20 Nov 2025
Posting
now and then (2 in the last year)
Kind
personal blog

2025 8

  1. Binary indexed tree
  2. Project Nayuki: Recent pages
  3. Pixel is a unit of length and area
  4. Hamming error-correcting codes
  5. Poor feedback from readers
  6. FastCGI library
  7. Calculate GCD (JavaScript)
  8. RollerCoaster Tycoon saved games

2024 5

  1. Concurrent programming with monitors
  2. Overview of Project Nayuki software licenses
  3. Forcing a file’s CRC to any value
  4. Cryptographic primitives in plain Python
  5. Binary array set

2023 4

  1. Sorting algorithms demo (Java)
  2. Unspecified edge cases in the DEFLATE standard
  3. Simple DEFLATE decompressor
  4. Fast Fibonacci algorithms

2022 4

  1. Web site notes
  2. AVL tree list
  3. Binomial heap
  4. Windows timestamp accessor library

2021 10

  1. My Mario Kart 64 time trial records
  2. Disjoint-set data structure
  3. Triangle solver (JavaScript)
  4. Project Euler solutions
  5. Image unshredder by annealing
  6. Free small FFT in multiple languages
  7. DWITE programming contest solutions
  8. Brainfuck interpreter (JavaScript)
  9. Tap to measure tempo (JavaScript)
  10. Fast Fourier transform in x86 assembly

2020 2

  1. Smallest enclosing circle
  2. Decent feedback from readers

2019 4

  1. Lowest SHA-512 value by brute force
  2. Montgomery reduction algorithm
  3. Barrett reduction algorithm
  4. Gauss–Jordan elimination over any field

2018 17

  1. Canada Tax-Free Savings Account simulator (JavaScript)
  2. Factorize Gaussian integer (JavaScript)
  3. Random password generator (JavaScript)
  4. Bitcoin cryptography library
  5. Animated floating graph nodes
  6. Full screen clock (JavaScript)
  7. Panel de Pon puzzle solver (JavaScript)
  8. Propositional sequent calculus prover
  9. 1D barcode generator (JavaScript)
  10. Chemical equation balancer (JavaScript)
  11. Reference Huffman coding
  12. Reference arithmetic coding
  13. Tiny PNG Output
  14. How to implement the discrete Fourier transform
  15. Next lexicographical permutation algorithm
  16. Knuth–Morris–Pratt string matching
  17. Unsigned int considered harmful for Java

2017 5

  1. Manufactoria solutions
  2. Casio fx-991MS tips and tricks
  3. Patchouli Knowledge laptop sticker
  4. Good Java idioms
  5. Some bit-twiddling functions explained

2016 12

  1. Java BigInteger was made for RSA cryptography
  2. Supplement to my résumé
  3. DEFLATE library (Java)
  4. Fast skipping in a linear congruential generator
  5. Karatsuba multiplication
  6. AES cipher internals in Excel
  7. NetPerSec (Nayuki’s version)
  8. Encrypted backup client for Dropbox
  9. Lyrics of Mahou Shoujo Pixy Misa Shouka
  10. Large arrays proposal for Java
  11. MamIRC, the headless IRC client
  12. A fundamental introduction to x86 assembly programming

2015 14

  1. Angles in elastic two-body collisions
  2. What are binary and text files?
  3. Simulated annealing on pixel colors
  4. Variations on Japanese romanization
  5. Symmetry sketcher (JavaScript)
  6. JSON library (Java)
  7. Handling physical quantities in math formulas
  8. Numerically stable law of cosines
  9. Tablet desk clock
  10. Overwriting confidential handwritten text
  11. Compact hash map (Java)
  12. NotepadCrypt format decrypter (Java)
  13. TTC fare guide for tourists
  14. Nanoblock modeling in POV-Ray

2014 23

  1. Huffman-coding English words
  2. The photographic exposure equation
  3. Native hash functions for Java
  4. Gamma-aware image dithering
  5. Absolute and relative lens apertures
  6. Fast SHA-2 hashes in x86 assembly
  7. Sinc-based image resampler
  8. E-Trade: An expensive, rigid brokerage
  9. Portable FloatMap format I/O (Java)
  10. Tiny Encryption Algorithm in x86 assembly
  11. Transcript of “New Money (Filling the Void)”
  12. Iterated popcount results in 0 or 1
  13. GIF optimizer (Java)
  14. Approximating Euler’s number correctly
  15. Optimizing brainfuck compiler
  16. RC4 cipher in x86 assembly
  17. Full transcription of Ichigo Mashimaro – Main Theme
  18. Extending the use of logarithmic scales
  19. Boolean algebra laws
  20. Computing Wikipedia’s internal PageRanks
  21. Guide to Canada income tax by successive approximation
  22. I type in Dvorak
  23. DES cipher internals in Excel

2013 22

  1. Fast MD5 hash implementation in x86 assembly
  2. Fast SHA-1 hash implementation in x86 assembly
  3. Fast Whirlpool hash in x86 assembly
  4. Java’s signed byte type is a mistake
  5. So you want to be a day trader? Bad idea.
  6. Master theorem solver (JavaScript)
  7. A math/programming view of Canada GST/HST credit calculation
  8. Galois linear feedback shift register
  9. Automatic Caesar cipher breaker (JavaScript)
  10. Resizing images by area
  11. Frog Fractions guide
  12. Primitive recursive functions
  13. Example of simplifying and improving code
  14. My university courses
  15. Site map
  16. Recommended articles from Canadian Couch Potato investment blog
  17. Polynomial arithmetic shorthand
  18. Public transit and monotonicity
  19. Understanding Facebook IDs
  20. Dvorak keyboard in use warning sign
  21. Is there an ideal comparison sort?
  22. Graphic overview of Canada income tax, RRSP, and TFSA

2012 9

  1. Transcription of Hare Tokidoki Egao
  2. Unusual chemical symbols in English
  3. Automatic Minesweeper solver
  4. Facebook anniversary ray trace
  5. Prayer brackets
  6. Dumb PNG output (Java)
  7. Sister Princess Winamp skins
  8. Transcription of Nyanyanyanyanyanyanya!
  9. Transcription of Crystal Energy – Guitar solo

2011 17

  1. How to batch-tag photos on Facebook
  2. Binary counter in brainfuck
  3. Transcription of Miracle∞Hinacle
  4. Transcription of Chasse – Instrumental solo
  5. BMP I/O library (Java)
  6. Transcription of o-Hanabatake
  7. Calculate prime factorization (JavaScript)
  8. Calculate divisors (JavaScript)
  9. Transcription of Kana’s Theme
  10. Transcription of Every Day
  11. A septillion CPU cycles a year
  12. Finding dust by lighting from a grazing low angle
  13. Next-hop routing in real life
  14. 國內 doesn’t mean domestic
  15. Caesar cipher (JavaScript)
  16. Vigenère cipher (JavaScript)
  17. Countable sets and Kleene star

1990 1

  1. GIF89a specification (HTML)

Undated 63

  1. Project Nayuki: All pages
  2. Qr code generator library
  3. Knuths yllion number notation
  4. Java native interface compared to python c api
  5. Batch up new messages in gmail for better productivity
  6. Being a polyglot programmer
  7. Gaussian blur demo
  8. The versatile sieve of eratosthenes
  9. Csc258 computer debugger
  10. Band limited square waves
  11. Go train acceleration analyzed by video
  12. Transcription of pokemon game boy music
  13. Reed solomon error correcting code decoder
  14. Btree set
  15. Undefined behavior in c and cplusplus programs
  16. Simple flac implementation
  17. Benchmark of nayukis flac encoder
  18. Designing better file organization around tags not hierarchies
  19. Git library java
  20. Flac library java
  21. Simple gui flac player java
  22. Srgb transform library
  23. Common mistakes when using the metric system
  24. Matlab language pet peeves
  25. Sliding window minimum maximum algorithm
  26. Near duplicate features of cplusplus
  27. Number theoretic transform integer dft
  28. Convex hull algorithm
  29. Fast discrete cosine transform algorithms
  30. Java se 5 is the most significant release
  31. Profont nayukis version
  32. Fast qr code generator library
  33. My favorite youtube video channels
  34. Pervasive displays epaper panel hardware driver
  35. Problems with plurals in english
  36. Elliptic curve point addition in projective coordinates
  37. Aa tree set
  38. Optimal text segmentation for qr codes
  39. Creating a qr code step by step
  40. Dont share commented out code
  41. Subtle ways to lose data
  42. Self encrypted cache structure
  43. Summary of c cpp integer rules
  44. Bittorrent bencode format tools
  45. My code style
  46. Analog vs digital games
  47. Time based one time password tools
  48. Ending my support for python 2
  49. Skill levels in scalable vector graphics svg
  50. Practical guide to xhtml
  51. Png file chunk inspector
  52. Nintendo 64 over svideo
  53. How to download private facebook videos
  54. Macshift nayukis version
  55. I dislike dividends
  56. Zellers congruence
  57. Why i write
  58. Png library
  59. Sqlite database file visualizations
  60. Deflate specification v1 3 html
  61. Tax brackets visualizations
  62. Drinking distilled water
  63. Meanings of home equity