# Puzzles

Published articles for Puzzles.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Solving a Double-Sided Wooden Puzzle with Coordinate Systems and Search Pruning

DevFeed: [Solving a Double-Sided Wooden Puzzle with Coordinate Systems and Search Pruning](<https://devfeed.tech/articles/how-wooden-puzzles-can-destroy-dev-teams-27374.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/evil-puzzle.htm>)

Author: Khan Academy

Published: 2015-07-06T22:00:00Z

Content type: article

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>)

Tags: [dev](<https://devfeed.tech/tags/dev.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [logic](<https://devfeed.tech/tags/logic.md>), [news](<https://devfeed.tech/tags/news.md>), [program](<https://devfeed.tech/tags/program.md>), [puzzle](<https://devfeed.tech/tags/puzzle.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>), [web-frontend](<https://devfeed.tech/tags/web-frontend.md>)

### AI overview

John Sullivan describes how five Khan Academy developers wrote solvers for a double-sided wooden puzzle. The article covers representing piece positions, handling rotations and reflections, and pruning the search space to improve placement search.

### Source excerpt

By John Sullivan Last week a mysterious double-sided puzzle appeared at Khan Academy. To solve the puzzle you ... Read more

## Five Minutes of Prime Time

DevFeed: [Five Minutes of Prime Time](<https://devfeed.tech/articles/five-minutes-of-prime-time-37667.md>)

Original publisher: [Read original article](<https://susam.net/five-minutes-of-prime-time.html>)

Published: 2026-05-16T00:00:00Z

Content type: opinion

Language: en

Sources: [Susam Pal](<https://devfeed.tech/sources/susam-pal.md>)

Topics: [Mathematics](<https://devfeed.tech/topics/mathematics.md>)

Tags: [games](<https://devfeed.tech/tags/games.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [number](<https://devfeed.tech/tags/number.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>), [rsa](<https://devfeed.tech/tags/rsa.md>)

### AI overview

A personal story about nerd culture at RSA, including mathematics and physics forums, monthly team challenges, and a five-minute contest to write as many prime numbers between 1 and 1000 as possible.

### Source excerpt

Let me share a very silly story from roughly 18 years ago! In 2008, I joined RSA, the network security company named after the initials of the inventors of the RSA algorithm, Rivest, Shamir and Adleman, who were also the founders of RSA, the company. There was a bit of a nerd culture in the workplace where topics like prime numbers, combinatorics, probability theory, etc. were discussed fervently. A prime-number employee number was considered a lucky charm. I had a rather nice large five-digit prime number as my employee number, which I remember being quite pleased about. There were internal forums for almost all kinds of topics. A few I remember fondly were a mathematics forum where colleagues would challenge each other with mathematical puzzles and a similar physics forum where, for some reason, crafting contrived paradoxes using special and general relativity and putting them up for debate was a common activity. The participants would analyse each paradox to determine if it truly was one or if it could be resolved into something that was no longer a paradox. I loved hanging out on those forums and made many friends there. The mathematics forum, in particular, gave me plenty of fun problems to think about. In fact, my Langford Pairing (2011) post was the result of a question I had stumbled upon there. The human resources (HR) department used to organise afternoon games once every month where people would self-organise into teams and solve a small challenge. There was a cash prize for the winning team each time. The HR folks were very well aware of the nerd culture and the fascination with prime numbers, but they probably did not know enough about exactly what type of problems we were fascinated with. So in one of the monthly game events, the HR team gave us this challenge. Write as many prime numbers between 1 and 1000 as you can in 5 minutes. The 5-minute timer started immediately. Really, that was the challenge. We all looked at each other in surprise, wondering

## Evil Trout + DEG

DevFeed: [Evil Trout + DEG](<https://devfeed.tech/articles/evil-trout-deg-40647.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2026-03-31-evil-trout-plus-deg/>)

Published: 2026-03-31T00:00:00Z

Content type: article

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Demo](<https://devfeed.tech/topics/demo.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [deal](<https://devfeed.tech/tags/deal.md>), [demo](<https://devfeed.tech/tags/demo.md>), [developers](<https://devfeed.tech/tags/developers.md>), [games](<https://devfeed.tech/tags/games.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>), [steam](<https://devfeed.tech/tags/steam.md>)

### AI overview

Evil Trout founder Robin Ward describes investing in Doseo's puzzle game DEG after playing its demo during Steam Next Fest. The funding will support the game's improvement and marketing; a full release is planned for later in 2026.

### Source excerpt

During the last Steam Next Fest, I played a demo of a puzzle game called DEG that was getting a lot of buzz. The game is made for people who like grid puzzles like Sudoku, or Nurikabe, with many additional unique concepts and puzzle ideas that are tutorialized silently to the player. Needless to say, I was hooked. I reached out to Doseo, its creator, and inquired about investing in the game. We discussed how he would use additional money to improve and market the game, and a deal was struck.

## Whodunit: LLM Murder Mysteries

DevFeed: [Whodunit: LLM Murder Mysteries](<https://devfeed.tech/articles/whodunit-llm-murder-mysteries-37524.md>)

Original publisher: [Read original article](<https://blog.apartment304.com/whodunit-llm-murder-mysteries/>)

Author: James Heller

Published: 2025-08-26T07:00:00Z

Content type: article

Language: en

Sources: [Apartment 304](<https://devfeed.tech/sources/apartment-304.md>)

Topics: [LLM Techniques](<https://devfeed.tech/topics/llm-techniques.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [ai-authored](<https://devfeed.tech/tags/ai-authored.md>), [apartment-304](<https://devfeed.tech/tags/apartment-304.md>), [custom-software-solutions](<https://devfeed.tech/tags/custom-software-solutions.md>), [devops](<https://devfeed.tech/tags/devops.md>), [devops-engineer](<https://devfeed.tech/tags/devops-engineer.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [language-models](<https://devfeed.tech/tags/language-models.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [llm](<https://devfeed.tech/tags/llm.md>), [logic](<https://devfeed.tech/tags/logic.md>), [models](<https://devfeed.tech/tags/models.md>), [puzzle](<https://devfeed.tech/tags/puzzle.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [software-engineer](<https://devfeed.tech/tags/software-engineer.md>), [strategies](<https://devfeed.tech/tags/strategies.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

This article describes building Whodunit, a low-tech murder-mystery game whose mysteries are written with large language models. It discusses developing a mental model for calling LLMs, testing LLM services and Go libraries, improving logical soundness through trial and error, and managing unreliable LLM APIs.

### Source excerpt

Can Large Language Models write engaging mysteries? Find out in this week's episode of "Whodunit?"

## Functional Interfaces Can Extend Other Interfaces

DevFeed: [Functional Interfaces Can Extend Other Interfaces](<https://devfeed.tech/articles/a-functional-intreface-can-extend-other-interfaces-30755.md>)

Original publisher: [Read original article](<http://blog.vanillajava.blog/2025/02/a-functional-intreface-can-extend-other.html>)

Author: Peter Lawrey (noreply@blogger.com)

Published: 2025-02-20T09:04:00Z

Content type: article

Language: en

Sources: [Vanilla Java](<https://devfeed.tech/sources/vanilla-java.md>)

Topics: [interfaces](<https://devfeed.tech/topics/interfaces.md>)

Tags: [functional](<https://devfeed.tech/tags/functional.md>), [interface](<https://devfeed.tech/tags/interface.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>)

### AI overview

The article explains that a functional interface can extend marker, functional, and non-functional interfaces, as well as an annotation.

### Source excerpt

A functional interface can extend a marker interface, functional interface, non-functional interface, and an annotation. A recent X poll suggested 25% of those responding didn't know that.

## A Java Conversion Puzzler: Understanding Implicit Casting and Overflow

DevFeed: [A Java Conversion Puzzler: Understanding Implicit Casting and Overflow](<https://devfeed.tech/articles/a-java-conversion-puzzler-understanding-implicit-casting-and-overflow-30739.md>)

Original publisher: [Read original article](<http://blog.vanillajava.blog/2024/12/a-java-conversion-puzzler-understanding.html>)

Author: Peter Lawrey (noreply@blogger.com)

Published: 2024-12-07T22:23:00Z

Content type: article

Language: en

Sources: [Vanilla Java](<https://devfeed.tech/sources/vanilla-java.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [floating-point](<https://devfeed.tech/topics/floating-point.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [critical](<https://devfeed.tech/tags/critical.md>), [exercise](<https://devfeed.tech/tags/exercise.md>), [floating-point](<https://devfeed.tech/tags/floating-point.md>), [info](<https://devfeed.tech/tags/info.md>), [java](<https://devfeed.tech/tags/java.md>), [performance](<https://devfeed.tech/tags/performance.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>)

### AI overview

This article explains a Java conversion puzzle involving compound assignment, implicit casting, floating-point rounding, and integer overflow. It shows why adding 0.0f can produce different results for int and long values, including a conversion to Integer.MIN_VALUE when the rounded value is cast back to int.

### Source excerpt

This article explores a subtle Java conversion puzzle that challenges assumptions about how arithmetic operations, implicit casting, and floating-point conversions interact. Inspired by complexities often encountered in low-latency and high-performance environments, it demonstrates why a keen understanding of Java's type system is essential for building reliable and efficient applications. Introduction The following example demonstrates a scenario where an innocuous-looking arithmetic operation leads to a surprising result. While such questions are rare and arguably impractical, they highlight subtle behaviours that can affect correctness and performance, especially in critical systems like high-frequency trading platforms or complex data-processing pipelines. The Problem: A Surprising Print Statement Consider the following code: int i = Integer.MAX_VALUE; i += 0.0f; int j = i; System.out.println(j == Integer.MAX_VALUE); // true At first glance, one might assume that adding 0.0f to an int should not change its value. Indeed, the output true reinforces this notion. However, if you change int i for long i, things get weird: long i = Integer.MAX_VALUE; // only the type of i is changed i += 0.0f; int j = (int) i; System.out.println(j == Integer.MAX_VALUE); // false System.out.println(j == Integer.MIN_VALUE); // true What is going on, you might wonder? Let me start by explaining why using a long gives such a strange result. Understanding the Implicit Casting The key detail lies in how Java handles the += operator. It is not strictly equivalent to a = a + b; but rather: a += b; has a subtle difference which most of the time doesn't matter: // has an implicity cast here a = (typeOf(a)) (a + b); Another subtle feature of addition is that the result is the "wider" of the two types. This means that: i += 0.0f; is actually: i = (int) ((float) i + 0.0f); // or i = (long) ((float) i + 0.0f); The result of (float) i can be imprecise due to floating-point rounding. A float has a 2

## Why Does Math.round(0.49999999999999994) Round to 1?

DevFeed: [Why Does Math.round(0.49999999999999994) Round to 1?](<https://devfeed.tech/articles/why-does-math-round-0-49999999999999994-round-to-1-30750.md>)

Original publisher: [Read original article](<http://blog.vanillajava.blog/2024/12/why-does-mathround049999999999999994.html>)

Author: Peter Lawrey (noreply@blogger.com)

Published: 2024-12-07T21:02:00Z

Content type: tutorial

Language: en

Sources: [Vanilla Java](<https://devfeed.tech/sources/vanilla-java.md>)

Topics: [floating-point](<https://devfeed.tech/topics/floating-point.md>), [Java](<https://devfeed.tech/topics/java.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [exercise](<https://devfeed.tech/tags/exercise.md>), [floating-point](<https://devfeed.tech/tags/floating-point.md>), [info](<https://devfeed.tech/tags/info.md>), [java](<https://devfeed.tech/tags/java.md>), [precision](<https://devfeed.tech/tags/precision.md>), [programming](<https://devfeed.tech/tags/programming.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>)

### AI overview

This article explains why Java 6 can return 1 when Math.round() is applied to a value slightly below 0.5. It attributes the result to binary floating-point representation, rounding behavior, and implementation details, and contrasts Java 6 with Java 7.

### Source excerpt

1. Defining the Problem In many numerical computations, one would reasonably expect that rounding 0.499999999999999917 should yield 0, since it appears to be slightly less than 0.5. Yet, in Java 6, calling Math.round() on this value returns 1, a result that may initially seem baffling. This seemingly minor discrepancy stems from the interplay of binary floating-point representation, rounding modes, and the particular internal implementation details of Math.round() in earlier Java releases. For professionals in performance-sensitive environments--such as those working in financial technology or high-precision scientific applications--understanding these subtleties is more than just an academic exercise. Even tiny rounding differences can influence trading algorithms, pricing models, or simulations. Moreover, developers and enthusiasts who appreciate the low-level mechanics behind Java's numeric types will find valuable insights into how these internal workings affect everyday programming tasks. This article delves into why this unexpected rounding occurs, sheds light on the constraints of double-precision arithmetic, and contrasts the behaviour in Java 6 against newer versions like Java 7. Consider, for instance, the closely related question: Why does Math.round(0.49999999999999994) return 1 rather than 0? Although it might initially seem like a bug, it is, in fact, a predictable outcome once we acknowledge the inherent imprecision of floating-point arithmetic. By the end, you will have a clearer understanding of why these rounding anomalies happen, and how to avoid or mitigate their effects in your own code. 2. The IEEE 754 64-bit Double-Precision Format Component Bit Count Interpretation Sign 1 Determines the sign of the number: 0 indicates a positive value, 1 indicates a negative value. Exponent 11 Encodes the exponent using a bias of 1023. The stored value E is interpreted as E - 1023 for the actual exponent. Mantissa (Fraction) 52 Represents the significand (fract

## The names of birds, part 3

DevFeed: [The names of birds, part 3](<https://devfeed.tech/articles/the-names-of-birds-part-3-38663.md>)

Original publisher: [Read original article](<https://ericlippert.com/2023/02/01/the-names-of-birds-part-3/>)

Author: ericlippert

Published: 2023-02-01T17:01:15Z

Content type: article

Language: en

Sources: [Eric Lippert](<https://devfeed.tech/sources/eric-lippert.md>)

Topics: [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>), [.env](<https://devfeed.tech/topics/dotenv.md>)

Tags: [logic](<https://devfeed.tech/tags/logic.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

This installment uses a self-referential kestrel in combinatory logic to explore the consequences of the identity Kxy=x. It argues that if the kestrel is fond of itself, then it is fixated on itself and the forest contains only that one bird, making it lonely.

### Source excerpt

In the autumn of last year my friend Joan and I went on a little trip up to the Skagit valley north of Seattle to photograph birds of prey; I managed to get a blurry but recognizable shot of this ... Continue reading ->

## Using Advent of Code to Practice Python and Algorithm Implementation

DevFeed: [Using Advent of Code to Practice Python and Algorithm Implementation](<https://devfeed.tech/articles/the-kata-27312.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/201908/the-kata/>)

Published: 2019-08-13T00:00:00Z

Content type: opinion

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Advent of Code](<https://devfeed.tech/topics/advent-of-code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Mazes](<https://devfeed.tech/topics/maze.md>)

Tags: [adventofcode](<https://devfeed.tech/tags/adventofcode.md>), [algorithm](<https://devfeed.tech/tags/algorithm.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

The author describes using Advent of Code puzzles to deepen Python knowledge and practice algorithm implementation. A maze-solving problem provided practice with graph traversal, shortest-path reasoning, and measuring traveled distance.

### Source excerpt

I'm learning python for some time now. I've made myself familiar with the syntax and then started looking into other ways to increase my knowledge about language and learn its quirks. I've found a very nice site that allows me to practice basics and strengthen different kind of muscles that I'm using in my day job - adventofcode. Read more

## Teaching Mathematics--Graph Theory

DevFeed: [Teaching Mathematics--Graph Theory](<https://devfeed.tech/articles/teaching-mathematics-graph-theory-40212.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/06/26/teaching-mathematics-graph-theory/>)

Published: 2011-06-26T16:19:20Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [graph theory](<https://devfeed.tech/topics/graph-theory.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>)

Tags: [campolindo](<https://devfeed.tech/tags/campolindo.md>), [education](<https://devfeed.tech/tags/education.md>), [google](<https://devfeed.tech/tags/google.md>), [graph-theory](<https://devfeed.tech/tags/graph-theory.md>), [introspection](<https://devfeed.tech/tags/introspection.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [methods-of-proof](<https://devfeed.tech/tags/methods-of-proof.md>), [primer](<https://devfeed.tech/tags/primer.md>), [puzzles](<https://devfeed.tech/tags/puzzles.md>), [seven-bridges](<https://devfeed.tech/tags/seven-bridges.md>), [seven-hills](<https://devfeed.tech/tags/seven-hills.md>), [teaching](<https://devfeed.tech/tags/teaching.md>)

### AI overview

A mathematics teacher describes using puzzles and student-led discovery to introduce graph theory in high-school and middle-school lectures. The article presents the Seven Bridges of Königsberg problem as a central example and discusses mathematics as a non-linear process of questions, conjectures, and proof.

### Source excerpt

Community Service Mathematics is supposed to be a process of discovery. Definitions, propositions, and methods of proof don't come from nowhere, although after the fact (when presented in a textbook) they often seem to. As opposed to a textbook, real maths is highly non-linear. It took mathematicians quite a lot of fuss to come up with the quadratic formula, and even simple geometric conjectures were for the longest time the subject of hot debate.