# ETOOBUSY ðŸš€ minimal blogging for the impatient

All tagged posts will be sorted here.

### # 2fa

### # Alpine

### # AoC 2016-11

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

### # AoC 2016-19

### # Aquarium

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

### # Autobiographical numbers

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

### # Curses::UI

### # Javascript

### # Linux

### # Mojolicious

### # OpenSSH

- Encrypt, the hard way - a caveat
- Encrypt, the hard way
- OpenSSH IdentitiesOnly
- Run an OpenSSH server as a regular, unprivileged user
- SSH through a proxy
- OpenSSH Server: ChrootDirectory
- Setting up an SFTP server
- OpenSSH Server: understanding Allow* and Deny* stuff

### # OpenSSL

- Encrypt, the hard way - a caveat
- Encrypt, the hard way
- Certificate expiration date
- mTLS authentication for (nginx) Kubernetes Ingress

### # Ordeal::Model

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

### # Perl

- PWC239 - Consistent Strings
- PWC239 - Same String
- PWC238 - Persistence Sort
- PWC238 - Running Sum
- PWC237 - Maximise Greatness
- PWC237 - Seize The Day
- PWC236 - Array Loops
- PWC236 - Exact Change
- PWC228 - Empty Array
- PWC228 - Unique Sum
- PWC227 - Roman Maths
- PWC227 - Friday 13th
- PWC226 - Zero Array
- PWC226 - Shuffle String
- PWC225 - Left Right Sum Diff
- PWC225 - Max Words
- PWC224 - Additive Number
- PWC224 - Special Notes
- PWC223 - Box Coins
- PWC223 - Count Primes
- PWC222 - Last Member
- PWC222 - Matching Members
- PWC221 - Arithmetic Subsequence
- PWC221 - Good Strings
- PWC220 - Squareful
- PWC220 - Common Characters
- PWC219 - Travel Expenditure
- PWC219 - Sorted Squares
- PWC218 - Matrix Score
- PWC218 - Maximum Product
- PWC217 - Max Number
- PWC217 - Sorted Matrix
- PWC216 - Word Stickers
- PWC216 - Registration Number
- PWC215 - Number Placement
- PWC215 - Odd One Out
- PWC214 - Collect Points
- PWC214 - Rank Score
- PWC213 - Shortest Route
- PWC213 - Fun Sort
- PWC212 - Rearrange Groups
- PWC212 - Jumping Letters
- PWC211 - Split Same Average
- PWC211 - Toepliz Matrix
- PWC210 - Number Collision
- PWC210 - Kill and Win
- PWC209 - Merge Account
- PWC209 - Special Bit Characters
- PWC208 - Duplicate and Missing
- PWC208 - Minimum Index Sum
- PWC207 - H-Index
- PWC207 - Keyboard Word
- PWC206 - Array Pairings
- PWC206 - Shortest Time
- PWC205 - Maximum XOR
- PWC205 - Third Highest
- PWC204 - Reshape Matrix
- PWC204 - Monotonic Array
- PWC203 - Copy Directory
- PWC203 - Special Quadruplets
- PWC202 - Widest Valley
- PWC202 - Consecutive Odds
- PWC201 - Penny Piles
- PWC201 - Missing Numbers
- PWC200 - Seven Segment 200
- PWC200 - Arithmetic Slices
- PWC199 - Good Triplets

### # R

### # RakuLang

- PWC239 - Consistent Strings
- PWC239 - Same String
- PWC238 - Persistence Sort
- PWC238 - Running Sum
- PWC237 - Maximise Greatness
- PWC237 - Seize The Day
- PWC236 - Array Loops
- PWC236 - Exact Change
- PWC228 - Empty Array
- PWC228 - Unique Sum
- PWC227 - Roman Maths
- PWC227 - Friday 13th
- PWC226 - Zero Array
- PWC226 - Shuffle String
- PWC225 - Left Right Sum Diff
- PWC225 - Max Words
- PWC224 - Additive Number
- PWC224 - Special Notes
- PWC223 - Box Coins
- PWC223 - Count Primes
- PWC222 - Last Member
- PWC222 - Matching Members
- PWC221 - Arithmetic Subsequence
- PWC221 - Good Strings
- PWC220 - Squareful
- PWC220 - Common Characters
- PWC219 - Travel Expenditure
- PWC219 - Sorted Squares
- PWC218 - Matrix Score
- PWC218 - Maximum Product
- PWC217 - Max Number
- PWC217 - Sorted Matrix
- PWC216 - Word Stickers
- PWC216 - Registration Number
- PWC215 - Number Placement
- PWC215 - Odd One Out
- PWC214 - Collect Points
- PWC214 - Rank Score
- PWC213 - Shortest Route
- PWC213 - Fun Sort
- PWC212 - Rearrange Groups
- PWC212 - Jumping Letters
- PWC211 - Split Same Average
- PWC211 - Toepliz Matrix
- PWC210 - Number Collision
- PWC210 - Kill and Win
- PWC209 - Merge Account
- PWC209 - Special Bit Characters
- PWC208 - Duplicate and Missing
- PWC208 - Minimum Index Sum
- PWC207 - H-Index
- PWC207 - Keyboard Word
- PWC206 - Array Pairings
- PWC206 - Shortest Time
- PWC205 - Maximum XOR
- PWC205 - Third Highest
- PWC204 - Reshape Matrix
- PWC204 - Monotonic Array
- PWC203 - Copy Directory
- PWC203 - Special Quadruplets
- PWC202 - Widest Valley
- PWC202 - Consecutive Odds
- PWC201 - Penny Piles
- PWC201 - Missing Numbers
- PWC200 - Seven Segment 200
- PWC200 - Arithmetic Slices
- PWC199 - Good Triplets

### # Tournaments games allocation

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

### # accounting

### # ack

### # acme2

### # active directory

- ActiveDirectory password encoding in Perl and shell
- ActiveDirectory password reset with LDIF
- Active Directory time thing
- Active Directory Bit Fields

### # advent of code

- AoC 2022/16 - OMG what an improvement
- AoC 2022/16 - Paying a debt
- AoC 2022/25 - Wind down, hot air up!
- AoC 2022/24 - These elves require a lot of patience...
- AoC 2022/23 - Unstable diffusion
- AoC 2022/22 - Dicey assumptions
- AoC 2022/21 - When Wolfram Alpha failed me...
- AoC 2022/20 - Merry go round
- AoC 2022/19 - Head cracking
- AoC 2022/18 - Cooling surface
- AoC 2022/17 - Tetris-ish accumulation
- AoC 2022/16 - Pressured shame
- AoC 2022/15 - Diamonds are squares in disguise
- AoC 2022/14 - Sand accumulation
- AoC 2022/13 - Nested lists
- AoC 2022/12 - Human-machine interface solution
- AoC 2022/11 - Monkey business
- AoC 2022/10 - Cathode Ray Tube
- AoC 2022/9 - That little tail...
- AoC 2022/8 - Messy tree patch
- AoC 2022/7 - ENOSPC - no space left on device
- AoC 2022/6 - Canned diversity
- AoC 2022/5 - Insane crane
- AoC 2022/4 - Poor planning
- AoC 2022/3 - Misplaced supplies and where to find them
- AoC 2022/2 - Rock Paper Scissors cheat guide
- AoC 2022/1 - Caloric snacks
- Advent of Code puzzle input downloader
- Advent of Code 2022 is coming
- AoC 2021/3 - Aiming for reuse
- AoC 2021/02 - Ready, set, go!
- AoC 2021/01 - Up and down
- AoC 2021/25 - Sea traffic jam
- AoC 2021/24 - Blockchain under the sea
- AoC 2021/23 - Then came amphipods...
- AoC 2021/22 - Add and remove
- AoC 2021/21 - Many-Worlds over Copenhagen
- AoC 2021/20 - Flashy enhancements
- AoC 2021/19 - GPS is smarter - part 3
- AoC 2021/19 - GPS is smarter - part 2
- AoC 2021/19 - GPS is smarter
- AoC 2021/18 - Fishy accordion
- AoC 2021/17 - Ballistic
- AoC 2021/16 - Bitstream decoding
- AoC 2021 completed!
- AoC 2021/15 - A* in the sea
- AoC 2021/14 - Exponential polymerization
- AoC 2021/13 - Transparent origami
- AoC 2021/12 - A trip in the caves
- AoC 2021/11 - Calm Dumbo Octopuses
- AoC 2021/10 - Syntax scoring
- AoC 2021/09 - Flood fill
- AoC 2021/8 - Treachery is contagious
- AoC 2021/7 - Median crabs
- AoC 2021/6 - Lanternfishes going round and round
- AoC 2021/5 - Hyperstuff
- AoC 2021/4 - Giant Squid overkill solution
- Advent of Code 2021 is onto us!
- Fun with Advent of Code 2018
- Advent of Code 2018, puzzle 6: get the job done!
- Pronunciation defects
- Advent of Code 2018/04 made me feel old
- AoC 2017 - completed!
- AoC 2017/12 - Rediscovering Union-Find
- AoC 2016/24 - Brute-force for a Traveling-Salesman-like problem
- AoC 2016/19 - Dynamic Josephus
- AoC 2016/19 - Halving Josephus
- AoC 2016/19 - Josephus problem
- AoC 2016/15 - Chinese Reminder Theorem - again!
- AoC 2016/11 - Optimization
- AoC 2016/11 - Part 2 solution
- AoC 2016/11 - New successors
- AoC 2016/11 - New heuristic
- AoC 2016/11 - New identifier
- AoC 2016/11 - New parsing
- AoC 2016/11 - New representation
- AoC 2016/11 - New algorithm: A*
- AoC 2016/11 - Part 2 introduction
- AoC 2016/11 - Part 1 solution
- AoC 2016/11 - Initial algorithm: Dijkstra
- AoC 2016/11 - Initial data structure
- AoC 2016/11 - Input parsing
- AoC 2016/11 - Introduction
- Advent of Code 2020 - Day 13

### # aes

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

### # ag

### # algorithm

- AoC 2022/16 - OMG what an improvement
- AoC 2022/16 - Paying a debt
- AoC 2022/25 - Wind down, hot air up!
- AoC 2022/24 - These elves require a lot of patience...
- AoC 2022/23 - Unstable diffusion
- AoC 2022/22 - Dicey assumptions
- AoC 2022/21 - When Wolfram Alpha failed me...
- AoC 2022/20 - Merry go round
- AoC 2022/19 - Head cracking
- AoC 2022/18 - Cooling surface
- AoC 2022/17 - Tetris-ish accumulation
- AoC 2022/16 - Pressured shame
- AoC 2022/15 - Diamonds are squares in disguise
- AoC 2022/14 - Sand accumulation
- AoC 2022/13 - Nested lists
- AoC 2022/12 - Human-machine interface solution
- AoC 2022/11 - Monkey business
- AoC 2022/10 - Cathode Ray Tube
- AoC 2022/9 - That little tail...
- AoC 2022/8 - Messy tree patch
- AoC 2022/7 - ENOSPC - no space left on device
- AoC 2022/6 - Canned diversity
- AoC 2022/5 - Insane crane
- AoC 2022/4 - Poor planning
- AoC 2022/3 - Misplaced supplies and where to find them
- AoC 2022/2 - Rock Paper Scissors cheat guide
- AoC 2022/1 - Caloric snacks
- AoC 2021/3 - Aiming for reuse
- AoC 2021/02 - Ready, set, go!
- AoC 2021/01 - Up and down
- AoC 2021/25 - Sea traffic jam
- AoC 2021/24 - Blockchain under the sea
- AoC 2021/23 - Then came amphipods...
- AoC 2021/22 - Add and remove
- AoC 2021/21 - Many-Worlds over Copenhagen
- AoC 2021/20 - Flashy enhancements
- AoC 2021/19 - GPS is smarter - part 3
- AoC 2021/19 - GPS is smarter - part 2
- AoC 2021/19 - GPS is smarter
- AoC 2021/18 - Fishy accordion
- AoC 2021/17 - Ballistic
- AoC 2021/16 - Bitstream decoding
- AoC 2021 completed!
- AoC 2021/15 - A* in the sea
- AoC 2021/14 - Exponential polymerization
- AoC 2021/13 - Transparent origami
- AoC 2021/12 - A trip in the caves
- AoC 2021/11 - Calm Dumbo Octopuses
- AoC 2021/10 - Syntax scoring
- AoC 2021/09 - Flood fill
- AoC 2021/8 - Treachery is contagious
- AoC 2021/7 - Median crabs
- AoC 2021/6 - Lanternfishes going round and round
- AoC 2021/5 - Hyperstuff
- AoC 2021/4 - Giant Squid overkill solution
- Advent of Code 2021 is onto us!
- Raku cglib: A* algorithm
- AoC 2017 - completed!
- Complexity ramblings
- AoC 2017/12 - Rediscovering Union-Find
- AoC 2016/24 - Brute-force for a Traveling-Salesman-like problem
- Iterator-based implementation of Permutations
- Permutations with Heap's Algorithm
- AoC 2016/19 - Dynamic Josephus
- AoC 2016/19 - Halving Josephus
- AoC 2016/19 - Josephus problem
- AoC 2016/15 - Chinese Reminder Theorem - again!
- AoC 2016/11 - Optimization
- AoC 2016/11 - Part 2 solution
- AoC 2016/11 - New successors
- AoC 2016/11 - New heuristic
- AoC 2016/11 - New identifier
- AoC 2016/11 - New parsing
- AoC 2016/11 - New representation
- AoC 2016/11 - New algorithm: A*
- AoC 2016/11 - Part 2 introduction
- AoC 2016/11 - Part 1 solution
- AoC 2016/11 - Initial algorithm: Dijkstra
- AoC 2016/11 - Initial data structure
- AoC 2016/11 - Input parsing
- AoC 2016/11 - Introduction
- The blessing of forgetting
- Simpler Priority Queue
- Priority Queue documentation
- Monte Carlo Tree Search - an implementation
- Monte Carlo Tree Search - basics
- Red Blob Games
- Stein's algorithm for GCD
- Support of dynamic dimensions for nested loops
- Iterator for NestedLoops
- Loop from iterator
- Iterator from loop
- Benchmarking simplified implementations of NestedLoops
- A simplified iterative implementation of NestedLoops
- A simplified recursive implementation of NestedLoops
- Algorithm::Loops
- Parsing SVG paths
- Parsing toolkit in cglib
- SVG DOM tree visit
- Resolving a (Steiner) design - constraints and search
- Resolving a (Steiner) design
- Torneo - a tournament management system
- Conway's Game of Life - Sweeping counting
- Allocating games in tournaments - a program
- Allocating games in tournaments - 6 players matches, premium
- Allocating games in tournaments - 6 players matches, again
- Allocating games in tournaments - 6 players matches
- Allocating games in tournaments - premium games and players
- Allocating games in tournaments - example
- Allocating games in tournaments
- Autobiographical numbers constraints - step up
- Autobiographical numbers constraints - luckier weighted sum
- Autobiographical numbers constraints - weighted sum
- Autobiographical numbers constraints - last is zero
- Autobiographical numbers constraints - basic
- Autobiographical numbers
- More constraint programming
- Dijkstra's Algorithm
- A binomial algorithm
- Basic Priority Queue with Heaps
- Depth First Visit of a Graph
- Generic Graph Representation
- Discrete Optimization
- The extended Euclid's algorithm
- A RANDOM Maze with Curses
- Removing loops from a path
- A Quest for Voronoi Diagrams - 2. Fortune's Implementation
- A Quest for Voronoi Diagrams - 1. The Problem(s)

### # algorithms

### # alien

### # alpine

- LaTeX in Alpine Linux
- An update to quenv
- Timezone notes
- quenv - quick environment
- A Gnuplot Docker Image
- Gnuplot Headache
- Going Back on Alpine Linux 3.6

### # anticipation

### # aquarium puzzle game

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

### # ascii

### # asciinema

### # audio

### # audiobook

### # authentication

### # awk

### # base64

### # bash

### # basic

### # bayes

### # black lives matter

### # blog

- Three days of pause
- kramdown Table of Contents in pages
- 1000th consecutive posting day
- A Jekyll performance trick
- Happy New Year!
- Blog posts rearrangement
- ETOOBUSY turns 1000
- ETOOBUSY on Codeberg
- Sunsetting Disqus in this blog
- Happy 2022! And a reflection
- One complete year, yay!
- Faster Jekyll
- GitHub SHA1 Link
- Stockpile of posts gets interactive
- Stockpile of posts gets shortcuts to items
- Stockpile of posts gets dates in listing
- Added series to the blog
- 2020 in retrospect
- Updating GitHub Pages stuff
- Stockpiling blog posts
- Blog: align master to commit
- One year of posting on ETOOBUSY
- Trigger rebuild of blog in GitHub Pages
- Blog post publishing: merciless lazyness
- Posts publishing routine in a script
- Dice for Bargain Basement Bathysphere (of Beachside Bay)
- Rebase and retag, automatically
- Rebase and retag
- Publishing time for busypub
- Generating busypub's LAST_URI
- Notifications for busypub
- ETOOBUSY automated publishing
- Counting tags in this blog
- Escape of the dead
- Vue this blog
- Announceable Summary for Posts
- Preview for Jekyll blog on GitHub Pages
- Jekyll blog on GitHub Pages

### # board game

- Ordeal::Model gets a Raw backend
- Cardstom - more flexible
- Cardstom
- Some SVG cards
- A card layout - in Perl
- A card layout - extended
- A card layout
- Dice for Bargain Basement Bathysphere (of Beachside Bay)
- Escape of the dead
- The Spatial Game of Ur

### # board games

### # boardgamearena

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

### # bookmark

### # bookmarks

### # bounding box

- SVG path bounding box: arcs of ellipses
- SVG path bounding box: cubic BÃ©zier curves
- SVG path bounding box: quadratic BÃ©zier curves
- SVG path bounding box: merge multiple boxes
- SVG path bounding box: segments

### # bÃ©zier

- SVG path bounding box: arcs of ellipses
- SVG path bounding box: cubic BÃ©zier curves
- SVG path bounding box: quadratic BÃ©zier curves
- Extremes for BÃ©zier curves
- Derivatives of BÃ©zier curves
- BÃ©zier curves

### # cairo

### # carton

### # cc0

### # cglib

- Graph visit algorithms in cglib-raku
- Raku cglib: a priority queue
- Codingame library in Raku
- AoC 2017/12 - Rediscovering Union-Find
- Iterator-based implementation of Permutations
- Dijkstra Algorithm - as functions only
- Generalized Chinese Remainder Theorem
- The Definitive Conway's Game of Life
- Simpler Priority Queue
- Priority Queue documentation
- Resolving a (Steiner) design - constraints and search
- Resolving a (Steiner) design
- Autobiographical numbers constraints - step up
- Autobiographical numbers constraints - luckier weighted sum
- Autobiographical numbers constraints - weighted sum
- Autobiographical numbers constraints - last is zero
- Autobiographical numbers constraints - basic
- Autobiographical numbers
- More constraint programming
- The extended Euclid's algorithm

### # charm

### # chatbots

### # cli

- Ledger & co.
- Assemble images in a PDF
- No voids, please
- Crop an image with ImageMagick
- ClouDNS CLI MVP is available
- ClouDNS CLI: update
- ClouDNS CLI

### # client

- Add a base URL to xlinx
- New App::Easer release 2.006
- App::Easer validations
- App::Easer V2 is out... and can be improved!
- App::Easer - moving ahead with tests
- App::Easer priorities in options collection
- App::Easer options collection
- App::Easer - more tests for V2
- App::Easer and Moo
- App::Easer - auto-commands reflection
- App::Easer - tree auto-command
- App::Easer V2 - tests ahead
- App::Easer V2 - an object in the object (sort of)
- App::Easer V2 - let's start!
- Evolving App::Easer
- App::Easer guides
- App::Easer smarter environment variables
- App::Easer new defaults handling
- Feature creeping in App::Easer
- App::Easer gets DWIM-mer
- Web nostalgia: MojoX::Mechanize
- App::Easer - new example
- App::Easer released on CPAN
- App::Easer "multilevel" example
- App::Easer example
- App::Easer
- Thread of tweets via API
- Tweets from a user
- Getting started with MojoX::Twitter
- Scrape a Thread of Tweets
- Extract links/images from files or URLs