The article details the process of porting PuTTY to Windows on Arm, including compilation adjustments and a technical exploration of NEON-accelerated cryptography for performance improvements.
chiark-greenend-org-uk-sgtatham
28 items from chiark-greenend-org-uk-sgtatham
The article describes the automated solver for the Net puzzle game, written in response to an email query. It explains the solver's approach to solving the network connection puzzle.
The article describes a technique for generating Minesweeper grids that are guaranteed to be solvable without guessing. It explains the algorithm used in the author's puzzle game to ensure logical deduction is always possible.
PuTTY was created in 1996 as a free SSH client for Windows. The article traces its development history from inception through 2020, covering its evolution and key milestones over more than two decades.
PuTTY 0.78 now supports OpenSSH-style certificates for both host and user keys. This feature allows users to authenticate using certificate-based methods instead of traditional public key authentication.
The article describes two algorithms for randomly generating aperiodic tilings, specifically Penrose and Hat tilings, used in the puzzle game Loopy. These algorithms enable the creation of non-repeating tile patterns for gameplay purposes.
The article describes algorithms for generating the aperiodic Spectre tiling used in the puzzle game Loopy. It explains combinatorial coordinate systems that enable efficient computation of the tiling pattern.
The article provides guidance on effectively interpreting error messages, especially those from operating systems and networks. It is adapted from a talk the author gave to colleagues.
The article describes the major design limitation of C11's _Generic feature and presents various workarounds, primarily involving using additional _Generic instances to address the original limitation.
This article provides a detailed introduction to C++20 coroutines, written as the author taught themselves about the system. It explains custom coroutine implementations and their underlying mechanisms.
The article discusses the philosophy of coroutines, exploring why the author finds them appealing and examining different ways to use and conceptualize them in programming.
The author argues that command-line tools should not print lengthy help text alongside error messages. This practice is criticized as unhelpful and potentially confusing for users.
The author expresses strong dislike for bubblesort, calling it an awful sorting algorithm and wishing people would stop teaching it.
This guide provides advice on writing effective commit messages in version control systems. It focuses on including relevant facts and rationale to make commits more informative and useful for developers.
This article presents a sequel to previous posts on combinatorial coordinates, applying regular-language theory to work with aperiodic tilings using finite-state transducers. It explores mathematical techniques for handling non-periodic tiling patterns through computational methods.
This article presents a follow-up to previous work on finite-state transducers for aperiodic tilings, exploring further developments in the mathematical approach to these complex geometric patterns.
The article defines "symbiosisware" as software consciously designed for only the creator's personal use. It discusses this concept of software created specifically for one's own needs rather than for broader distribution.
The article presents a taxonomy of frustrating code review behaviors and provides analysis of these patterns. It categorizes common problematic approaches that occur during the code review process.
The article details the author's historical mistakes in implementing loop detection algorithms for graphs while developing puzzle games. It serves as a cautionary guide about common pitfalls in graph traversal and cycle detection.
The article discusses how bug trackers could improve query functionality by using more accurate data representation. It explores design considerations for separating concerns in bug tracking systems.
Post-quantum public-key encryption systems are designed to remain secure even against quantum computers. This article explains simplified versions of these cryptosystems at a pop-science level for general understanding.
XOR
1.0The article introduces the boolean and bitwise XOR operators, explaining their uses and leading into more advanced topics related to these operations.
The author discusses why they keep personal projects in Git repositories without using forge-style websites like GitHub or GitLab. They explain the reasons for this approach and describe how others can interact with their projects through alternative methods.
The article explains the design intentions and technical aspects behind the PuTTY logo and icon collection, addressing a user's question about their history.
The article describes personal computing habits focused on preventing digital items from accumulating indefinitely in a disorganized way. It advocates for a policy of transience to avoid permanent clutter in digital systems.
The author expresses critical views about context-free grammars and parser generators, arguing they are less useful than desired. The piece presents a series of semi-connected rants on these parsing topics.
The article describes using algebraic field extensions to brute-force solutions to Langley's geometry problem. It presents an application of extending rational numbers to solve elementary geometry puzzles through computational methods.
The article presents an algorithm that can transform aperiodic tilings that cannot be processed by finite-state transducers into ones that can. This builds on previous work about finite-state transducers for aperiodic tilings.