# ETOOBUSY đźš€ minimal blogging for the impatient

All series - from latest back to the first.

### Cryptopals

- Cryptopals
- Cryptopals 1 - Convert hex to base64
- Cryptopals 2 - Fixed XOR
- Cryptopals 3 - Single-byte XOR cipher
- Cryptopals 4 - Detect single-character XOR
- Cryptopals 5 - Implementing repeated-key XOR
- Cryptopals 6 - Break repeated-key XOR
- Cryptopals 7 - AES in ECB mode
- Cryptopals 8 - Detect AES in ECB mode
- Cryptopals 9 - Implement PKCS#7 padding
- Cryptopals 10 - Implement CBC mode
- Cryptopals 11 - An ECB/CBC detection oracle
- Cryptopals 12 - Byte-at-a-time ECB decryption (Simple)
- Cryptopals 13 - ECB cut-and-paste
- Cryptopals 14 - Byte-at-a-time ECB decryption (Harder)
- Cryptopals 15 - PKCS#7 padding violation
- Cryptopals 16 - CBC bitflipping attacks
- Cryptopals 17 - The CBC padding oracle
- Cryptopals Diversion 1 - A counter
- Cryptopals 18 - Implement CTR, the stream cipher mode
- Cryptopals 19 - Break fixed-nonce CTR mode using substitutions (part 1)
- Cryptopals 19 - Break fixed-nonce CTR mode using substitutions (part 2)
- Cryptopals 19 - Break fixed-nonce CTR mode using substitutions (part 3)
- Cryptopals 20 - Break fixed-nonce CTR statistically
- Cryptopals 21 - Implement the MT19937 Mersenne Twister RNG
- Cryptopals 22 - Crack an MT19937 seed
- Cryptopals 23 - Clone an MT19937 RNG from its output
- Cryptopals 24 - Create the MT19937 stream cipher and break it
- Cryptopals 25 - Break "random access read/write" AES CTR
- Cryptopals 26 - CTR bitflipping
- Cryptopals 27 - Recover the key from CBC with IV=Key
- Cryptopals 28 - Implement a SHA-1 keyed MAC
- Cryptopals 29 - Break a SHA-1 keyed MAC using length extension
- Cryptopals 30 - Break an MD4 keyed MAC using length extension
- Cryptopals Diversion 2 - Simulating Time Leaks
- Cryptopals 31 - Implement and break HMAC-SHA1 with an artificial timing leak
- Cryptopals 32 - Break HMAC-SHA1 with a slightly less artificial timing leak
- Cryptopals 33 - Implement Diffie-Hellman
- Cryptopals 34 - Implement a MITM key-fixing attack on Diffie-Hellman...
- Cryptopals 35 - Implement DH with negotiated groups...
- Cryptopals 36 - Implement Secure Remote Password (SRP)
- Cryptopals Diversion 3 - SRP server and client
- Cryptopals 37 - Break SRP with a zero key

### A toy AES implementation

- AES is doable
- AES - SubBytes
- AES - ShiftRows
- AES - multiplications in GF(256)
- AES - MixColumns
- AES - Key stuff
- AES - Cipher
- AES - Higher level functions

### Codeberg

### App::Easer

- App::Easer
- App::Easer example
- App::Easer "multilevel" example
- App::Easer released on CPAN
- App::Easer - new example
- App::Easer gets DWIM-mer
- Feature creeping in App::Easer
- App::Easer V2 is out... and can be improved!
- App::Easer validations

### skfold

- Restart from skfold
- skfold is usable!
- skfold - getting started with simple files
- skfold - repeated files
- skfold - one-off files
- Fatpacked skfold
- skfold - documentation
- skfold - a Docker image
- Docker image generation for skfold reshaped
- A long due interface change in skfold
- A skfold module for Mojolicious applications

### Terminal data viewer

- Curses::UI data viewer
- ESC like a Vim
- Curses::UI data viewer becomes dew
- Dew - running a command, lazily
- Naming items in dew

### QRate

- QRate
- QRate - High Level Design (provisional)
- QRate - encoding
- QRate - iterators for encoding
- QRate - decoding

### Netcat in Perl

### ASCII QR codes

### xmpl

- xmpl - an example web application
- xmpl - the key/value API
- xmpl - in-memory key/value store
- xmpl - on-file key/value store
- xmpl - remote key/value store
- xmpl - the API for browsers
- xmpl - the "healthz" API
- xmpl - the metrics API
- xmpl - the API for everything else
- xmpl - remote key/value store healthz revisited
- xmpl - visibility API
- xmpl - the identity API
- xmpl - the page configuration API
- xmpl - enhancements by Mark Lawrence

### Double Dobble

- Double Dobble - constraints
- Quest for Double Dobbles
- Double Dobble - easy optimization
- Double Dobble - slight improvement

### Perl Weekly Challenge 108

- All positive integer sums
- All positive integer sums, as iterator
- All partitions of a set - preliminary considerations
- All partitions of a set - rearranging addends
- Combinations iterator
- All partitions of a set into same-sized subsets
- All partitions of a set into differently arranged subsets
- All partitions of a set
- All partitions of a set - W. Luis MochĂˇn style

### PlantUML

### Josephus problem (AoC 2016/19)

### Radioisotope Thermoelectric Generators (AoC 2016/11)

- AoC 2016/11 - Introduction
- AoC 2016/11 - Input parsing
- AoC 2016/11 - Initial data structure
- AoC 2016/11 - Initial algorithm: Dijkstra
- AoC 2016/11 - Part 1 solution
- AoC 2016/11 - Part 2 introduction
- AoC 2016/11 - New algorithm: A*
- AoC 2016/11 - New representation
- AoC 2016/11 - New parsing
- AoC 2016/11 - New identifier
- AoC 2016/11 - New heuristic
- AoC 2016/11 - New successors
- AoC 2016/11 - Part 2 solution
- AoC 2016/11 - Optimization

### Conway's Game of Life

- Conway's Game of Life
- Multidimensional Conway's Game of Life
- Multidimensional Conway's Game of Life - the NestedLoops way
- The Definitive Conway's Game of Life

### Fantasy Name Generator

- Fantasy Name Generator - a grammar
- Fantasy Name Generator - a parser
- Global matching in scalar context
- nayme - a Fantasy Name Generator

### Base64

### Playing Cards with SVG

- A card layout
- A card layout - extended
- A card layout - in Perl
- Some SVG cards
- Cardstom
- Cardstom - more flexible

### Algorithm::Loops

- Algorithm::Loops
- A simplified recursive implementation of NestedLoops
- A simplified iterative implementation of NestedLoops
- Benchmarking simplified implementations of NestedLoops
- Iterator from loop
- Loop from iterator
- Iterator for NestedLoops
- Support of dynamic dimensions for nested loops

### Bounding Box for SVG Paths

- Parsing SVG paths
- Why all this SVG?
- SVG path bounding box: segments
- SVG path bounding box: merge multiple boxes
- SVG path bounding box: quadratic BĂ©zier curves
- SVG path bounding box: cubic BĂ©zier curves
- Ellipses (for SVG): parameter and angles
- Ellipses (for SVG): mapping to SVG representation
- Ellipses (for SVG): finding the center
- Ellipses (for SVG): parameter values
- Ellipses (for SVG): transformation implementation
- SVG path bounding box: arcs of ellipses

### BĂ©zier curves

### Ordeal::Model

- Global string matching quirks
- A parser for Ordeal::Model
- Ordeal::Model::Parser: grammar
- Ordeal::Model::Parser: entry point
- Ordeal::Model::Parser: parsing generics
- Ordeal::Model::Parser: parsing generics, 2
- Ordeal::Model::Parser: parsing

### Transforming Randomization

- A 4-faces die from a 6-faces die
- A D4 from a D6, with time guarantees
- A D4 from a D6 - squeeze more
- Rejection method
- Same rejection method?
- Unbounding the x axis in the rejection method

### Tournaments games allocation

- Allocating games in tournaments
- Allocating games in tournaments - example
- Allocating games in tournaments - premium games and players
- Allocating games in tournaments - 3 players practicalities
- Allocating games in tournaments - 6 players matches
- Allocating games in tournaments - 6 players matches, again
- Allocating games in tournaments - 6 players matches, premium
- Allocating games in tournaments - a program
- Torneo - a tournament management system

### Autobiographical numbers

- Autobiographical numbers
- Autobiographical numbers constraints - basic
- Autobiographical numbers constraints - last is zero
- Autobiographical numbers constraints - weighted sum
- Autobiographical numbers constraints - luckier weighted sum
- Autobiographical numbers constraints - step up

### Aquarium

- Aquarium - parse puzzle input
- Aquarium - print puzzle
- Aquarium - constraints
- Aquarium - search the solution space
- Aquarium - cooperating constraint
- Aquarium - more cooperation from constraints
- Aquarium - search differently
- Aquarium - exploiting redundant constraints

### Shell Tricks

- A shell approach
- Shell script help
- Richâ€™s sh (POSIX shell) tricks
- Shell quoting for exec
- Building shell arguments list dynamically
- Shell logging helpers
- Shell variables tests: is it defined?
- Shell variables tests: is it true?
- Shell variables tests: is it lengthy?
- Shell scaffolding script

### Command-line Docker Applications

### Playing with CAs

- Bare-bones Root CA
- Bare-bones Web Server
- Intermediate CAs are hard!
- Example on Certificates
- Generating "Example on Certificates"
- Going Back on Alpine Linux 3.6
- Intermediate CA Investigation
- Easy dumping of OpenSSL "stuff"
- Intermediate CA Solution
- ekeca
- Certificate example now with ekeca
- Certificate example on GitHub