This post explores the Z3 SMT solver's capabilities through practical Python examples, demonstrating its use in solving mathematical problems and optimizing solutions.
The post explores the historical development of Algebraic Data Types (AlgDTs), detailing their origins, key contributors, and the evolution of terminology. It begins with an overview of product and sum types, explaining their math...
The text discusses the accessibility of video games to non-gamers and provides recommendations for good introductory games. It also delves into the history and characteristics of different game genres, such as puzzle, farm sim, de...
The text explains a JavaScript parsing puzzle that prints 1 when x = 1 x --> 0. It discusses the legacy hack of Netscape Navigator 2 and the introduction of JavaScript and the <script> tag. It also explains why <!-- and --> weren’...
The text discusses the Hierarchy of Controls (HoC) in the context of software engineering, using the example of a production outage caused by a junior developer. It explains the different levels of controls - elimination, substitu...

0Hiatus

2024-09-11

...

0Toolbox languages

2024-07-15

The blog post discusses the concept of toolbox languages, which are programming languages that can solve problems without requiring third-party packages. The author provides examples of obscure toolbox languages such as AutoHotKey...
The blog post discusses the problem of composing two large TLA+ specs as part of a larger system. The author presents a complex solution aimed at advanced TLA+ users, using state machines and constraints on transitions. The main i...
The blog post discusses Empirical Software Engineering (ESE) and the challenges faced in the study of what works in software and why. It provides an overview of the talk given at DDD Europe, 2024, and references various papers and...
The blog post discusses the concept of software friction and how it relates to military operations, specifically in the US Marine Corps. It highlights the use of 'hot washes' as a tactic to reduce friction and improve future perfo...

0Software Friction

2024-05-01

The text discusses the concept of friction in software development, drawing parallels to military strategy. It explores the inevitability of friction, its properties, and ways to address it, such as smaller scopes, more autonomy, ...
The blog post discusses the common specification pitfall in Alloy and how to avoid it. It explains the use of facts in narrowing the scope of a problem, ruling out uninteresting cases, eliminating extraneous detail, optimizing a s...

0The Tale of Daniel

2024-04-01

The blog post explores the history of the name Daniel, tracing it back to ancient times and discussing its significance in different cultures and time periods. The author delves into ancient literature, historical events, and reli...
The blog post is about the missing graph data type and the responses the author received. The responses include information about the GraphBLAS API standard and python bindings, Gremlin, and Rubik's Cubes. The author also received...
The blog post discusses the lack of graph support in mainstream programming languages, the reasons behind it, and the challenges associated with implementing graph libraries. It highlights the different kinds of graphs, representa...
The blog post discusses the Picat research language and its planner module, which combines logic programming, imperative programming, and constraint solving. It explains the process of planning and showcases a pathing problem solu...
The blog post discusses an RNG that runs in your brain, explaining how to generate random numbers quickly using a simple method. The author explores the properties of the RNG, investigates its uniformity, and looks for better RNGs...
The blog post discusses the concept of formal specification, using the terms 'machine' and 'world' to differentiate between the parts of the system that can be controlled and those that cannot. It provides an example of a transfer...
The blog post is a writeup of all the talks the author saw at Strangeloop, including a brief description of each talk and the author's thoughts on them. The author also reflects on the conference as a whole and its impact on their...
The blog post provides a detailed explanation of the Liskov Substitution Principle, including its background, application, and limitations. It discusses the rule's application in programming languages, the relationship between typ...
The blog post provides annotated AutoHotKey scripts to help users navigate the intimidating tool, covering various functions such as fast folder opening, date insertion, hotkey extension, modal hotkey system, GUI demo, and timesta...
The author discusses the limitations of the four-document model (4doc) for user documentation, arguing that it is not universal or comprehensive. He compares it to the five-paragraph essay, stating that it leads to rigid thinking ...
The blog post discusses the differences between software engineering and traditional engineering. The author interviewed 17 people who have worked as both software and traditional engineers and found that there are more similariti...
The blog post discusses the release of AutoHotKey v2 and the changes it brings, including the removal of implicit strings, inconsistent function/command syntax, error level, object hash tables, and other issues. The author also ex...