# \#suggestion

**URL:** https://forum.devtalk.com/tag/suggestion/414.md

[Latest](https://forum.devtalk.com/latest.md) · [Categories](https://forum.devtalk.com/categories.md) · [Tags](https://forum.devtalk.com/tags.md)

---

## [Agile Web Development with Rails 8: Post a corrected version that works, please (errors start from p.9)](https://forum.devtalk.com/t/agile-web-development-with-rails-8-post-a-corrected-version-that-works-please-errors-start-from-p-9/245174)

<div class="topic-metadata">

**Author:** [@DcsMarionDickten](https://forum.devtalk.com/u/DcsMarionDickten)\
**Replies:** 0\
**Last updated:** [16 May 2026 16:30 UTC](https://forum.devtalk.com/t/agile-web-development-with-rails-8-post-a-corrected-version-that-works-please-errors-start-from-p-9/245174 "2026-05-16T16:30:02Z")

</div>

I’m a seasoned Rails programmer trying to get up to date with the newest releases. Right from the beginning of the book there were so many things that did not work that I really cannot recommend the book for any beginner…

---

## [Programming Clojure, Fourth Edition: Use of the symbol \*name\* in defrecord example](https://forum.devtalk.com/t/programming-clojure-fourth-edition-use-of-the-symbol-name-in-defrecord-example/245039)

<div class="topic-metadata">

**Author:** [@mnardell](https://forum.devtalk.com/u/mnardell)\
**Replies:** 0\
**Last updated:** [15 May 2026 15:22 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-use-of-the-symbol-name-in-defrecord-example/245039 "2026-05-15T15:22:22Z")

</div>

Use of the symbol name in defrecord example potentially confusing This is a small stylistic point, not quite an errata. On page 5, there is a small snippet of code, (defrecord name \\\[field1 field2 field3\\\]). If typed in…

---

## [Programming Clojure, Fourth Edition: Include how to call Java variable argument methods in the "Calling Java" section. (p. 231)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-include-how-to-call-java-variable-argument-methods-in-the-calling-java-section-p-231/242370)

<div class="topic-metadata">

**Author:** [@santiagocabrera96](https://forum.devtalk.com/u/santiagocabrera96)\
**Replies:** 0\
**Last updated:** [23 April 2026 17:54 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-include-how-to-call-java-variable-argument-methods-in-the-calling-java-section-p-231/242370 "2026-04-23T17:54:47Z")

</div>

How to call Java methods with variable argument list is explained in page 231. While it makes sense given that it is where arrays are introduced. It is confusing to me that it is not in section “Calling Java” (p.37). A r…

---

## [Programming Clojure, Fourth Edition: ex-info should include the cause. (p. 224)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-ex-info-should-include-the-cause-p-224/242369)

<div class="topic-metadata">

**Author:** [@santiagocabrera96](https://forum.devtalk.com/u/santiagocabrera96)\
**Replies:** 0\
**Last updated:** [23 April 2026 17:32 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-ex-info-should-include-the-cause-p-224/242369 "2026-04-23T17:32:01Z")

</div>

In page 224, the following code is suggested. (defn load-resource \[path\] (try (if (forbidden? path) (throw (ex-info "Forbidden resource" {:status 403 :resource path})) (slurp path…

---

## [Programming Clojure, Fourth Edition: Clarify that set! can only be called inside binding context. (p. 173)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-clarify-that-set-can-only-be-called-inside-binding-context-p-173/241969)

<div class="topic-metadata">

**Author:** [@santiagocabrera96](https://forum.devtalk.com/u/santiagocabrera96)\
**Replies:** 0\
**Last updated:** [20 April 2026 17:56 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-clarify-that-set-can-only-be-called-inside-binding-context-p-173/241969 "2026-04-20T17:56:11Z")

</div>

In section “Managing Per-Thread State with Vars” it explains clojure’s set! special form (p. 173). It explains the usage of set! inside clojure.xml, but omits that it must be inside a binding context, because if the curr…

---

## [Programming Clojure, Fourth Edition: Calling doc on function declared in different namespace.](https://forum.devtalk.com/t/programming-clojure-fourth-edition-calling-doc-on-function-declared-in-different-namespace/240699)

<div class="topic-metadata">

**Author:** [@santiagocabrera96](https://forum.devtalk.com/u/santiagocabrera96)\
**Replies:** 0\
**Last updated:** [9 April 2026 15:14 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-calling-doc-on-function-declared-in-different-namespace/240699 "2026-04-09T15:14:38Z")

</div>

Title: Programming Clojure, Fourth Edition: Calling doc on function declared in different namespace (page 25) On page 25 of the book, when declaring the greeting function, it is in src/examples/exploring.clj a newcomer…

---

## [High Performance PostgreSQL for Rails: Suggest installing Postgres.app using Homebrew (page 7)](https://forum.devtalk.com/t/high-performance-postgresql-for-rails-suggest-installing-postgres-app-using-homebrew-page-7/229420)

<div class="topic-metadata">

**Author:** [@douglasshuang](https://forum.devtalk.com/u/douglasshuang)\
**Replies:** 1\
**Last updated:** [7 April 2026 19:39 UTC](https://forum.devtalk.com/t/high-performance-postgresql-for-rails-suggest-installing-postgres-app-using-homebrew-page-7/229420 "2026-04-07T19:39:28Z")

</div>

Hi @andatki, Happy New Year! Just getting back into the book after a long pause and decided to restart from the beginning. Postgres.app is available on Homebrew as the cask postgres-unofficial: ❯ brew info --cask post…

---

## [Programming Clojure, Fourth Edition: lazy streams (p. 104)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-lazy-streams-p-104/239451)

<div class="topic-metadata">

**Author:** [@grylix](https://forum.devtalk.com/u/grylix)\
**Replies:** 0\
**Last updated:** [29 March 2026 13:43 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-lazy-streams-p-104/239451 "2026-03-29T13:43:39Z")

</div>

On Page 104 you describe several ways to define lazy streams in general or the stream of the fibonacci numbers in general. I propose to demonstrate the definition of streams as the fixed point of a given function which …

---

## [Programming Clojure, Fourth Edition: Semantics of some (p. 74)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-semantics-of-some-p-74/238577)

<div class="topic-metadata">

**Author:** [@grylix](https://forum.devtalk.com/u/grylix)\
**Replies:** 0\
**Last updated:** [21 March 2026 23:12 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-semantics-of-some-p-74/238577 "2026-03-21T23:12:23Z")

</div>

On page 74 you write Note that the value returned is the value in the sequence, which would act as a truthy value if this was used as a conditional test. I assume, that you refer to the general use of some, but then…

---

## [Programming Clojure, Fourth Edition: Different Java class (page 81)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-different-java-class-page-81/238378)

<div class="topic-metadata">

**Author:** [@grylix](https://forum.devtalk.com/u/grylix)\
**Replies:** 0\
**Last updated:** [20 March 2026 12:41 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-different-java-class-page-81/238378 "2026-03-20T12:41:02Z")

</div>

On page 80 (at the bottom) you execute the command (first (System/getProperties)) and on top of page 81 you show the output as \` → #object\[java.util.Hashtable$Entry 0x12468a38 “java.runtime.name=Java™ SE Runtime E…

---

## [Programming Clojure, Fourth Edition: tail recursion (suggestion, page 42)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-tail-recursion-suggestion-page-42/234164)

<div class="topic-metadata">

**Author:** [@grylix](https://forum.devtalk.com/u/grylix)\
**Replies:** 0\
**Last updated:** [14 February 2026 22:26 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-tail-recursion-suggestion-page-42/234164 "2026-02-14T22:26:52Z")

</div>

On page 42 you write recur binds new values for loop’s bindings and returns control to the top of the loop. I recommend to add, that recur must be invoked in a tail-recursive position, this is what I asked myself wh…

---

## [Programming Clojure, Fourth Edition: Fallthough for cond (p. 41, suggestion)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-fallthough-for-cond-p-41-suggestion/234118)

<div class="topic-metadata">

**Author:** [@grylix](https://forum.devtalk.com/u/grylix)\
**Replies:** 0\
**Last updated:** [14 February 2026 11:33 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-fallthough-for-cond-p-41-suggestion/234118 "2026-02-14T11:33:15Z")

</div>

On page 41 you write cond has no default fallthrough expression, I first thought, that the conditions must be exhaustive (as e.g. in Rust for the match expression or with the new case-statement in Java), but this is …

---

## [Programming Clojure, Fourth Edition: Access static methods (page 38)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-access-static-methods-page-38/234117)

<div class="topic-metadata">

**Author:** [@grylix](https://forum.devtalk.com/u/grylix)\
**Replies:** 0\
**Last updated:** [14 February 2026 10:30 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-access-static-methods-page-38/234117 "2026-02-14T10:30:04Z")

</div>

You could on page 38 mention, that the qualified name of a static method can be used as a function to be used later. Example: user=\> Math/sin #object\[user$invoke\_\_Math\_sin\_\_202 0x7573e12f “user$invoke\_\_Math\_sin\_\_202@…

---

## [Programming Clojure, Fourth Edition: disambiguation comment (page 38)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-disambiguation-comment-page-38/234004)

<div class="topic-metadata">

**Author:** [@grylix](https://forum.devtalk.com/u/grylix)\
**Replies:** 0\
**Last updated:** [13 February 2026 16:56 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-disambiguation-comment-page-38/234004 "2026-02-13T16:56:55Z")

</div>

(.x p) ;; or (.-x p) for disambiguation with 0-arity methods I was thinking some time over this comment and did not understand it; in particular as the .x method is not a 0-arity method, but then I got it: you mean th…

---

## [Programming Clojure, Fourth Edition: Reference to regexp (page 26)](https://forum.devtalk.com/t/programming-clojure-fourth-edition-reference-to-regexp-page-26/233860)

<div class="topic-metadata">

**Author:** [@grylix](https://forum.devtalk.com/u/grylix)\
**Replies:** 2\
**Last updated:** [13 February 2026 09:18 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-reference-to-regexp-page-26/233860 "2026-02-13T09:18:57Z")

</div>

On page 26 you explain the use of anonymous functions with the example (require '\[clojure.string :as str\]) (filter indexable-word? (str/split "A fine day it is" #"\\W+")) -\> ("fine" "day") You explain the invocation of s…

---

## [Advanced Hands-on Rust: get\_handle is unwieldy (page 118)](https://forum.devtalk.com/t/advanced-hands-on-rust-get-handle-is-unwieldy-page-118/231450)

<div class="topic-metadata">

**Author:** [@NekoiNemo](https://forum.devtalk.com/u/NekoiNemo)\
**Replies:** 0\
**Last updated:** [26 January 2026 20:03 UTC](https://forum.devtalk.com/t/advanced-hands-on-rust-get-handle-is-unwieldy-page-118/231450 "2026-01-26T20:03:46Z")

</div>

The function body as it’s presented is quite unwieldy. It was probably a good opportunity to point out to the audience that ? can also be used to shortcirquit an Option as well, not just a Result: impl AssetStore { pu…

---

## [Eloquent Ruby, Second Edition: safe navigation explanation (page 44)](https://forum.devtalk.com/t/eloquent-ruby-second-edition-safe-navigation-explanation-page-44/224409)

<div class="topic-metadata">

**Author:** [@lucashaley](https://forum.devtalk.com/u/lucashaley)\
**Replies:** 1\
**Last updated:** [14 December 2025 01:38 UTC](https://forum.devtalk.com/t/eloquent-ruby-second-edition-safe-navigation-explanation-page-44/224409 "2025-12-14T01:38:28Z")

</div>

It would be excellent to have a little more explanation about why the code returns false for the last example in the section: docs&.​first​&.​words​&.​first​&.​reverse.​

---

## [Programming Clojure, Fourth Edition, B1.0: pages 48, 49](https://forum.devtalk.com/t/programming-clojure-fourth-edition-b1-0-pages-48-49/221902)

<div class="topic-metadata">

**Author:** [@lkuty](https://forum.devtalk.com/u/lkuty)\
**Replies:** 4\
**Last updated:** [30 November 2025 19:48 UTC](https://forum.devtalk.com/t/programming-clojure-fourth-edition-b1-0-pages-48-49/221902 "2025-11-30T19:48:49Z")

</div>

In the foolowing paragraph, it could be interesting to write what the EDN acronym means. Additionally, there are variants in clojure.edn namespace, which specifically reads edn data (a subset of Clojure data with fewe…

---

## [Advanced Hands-on Rust: Rust 2024, gen, and the rand crate](https://forum.devtalk.com/t/advanced-hands-on-rust-rust-2024-gen-and-the-rand-crate/223552)

<div class="topic-metadata">

**Author:** [@b3rts](https://forum.devtalk.com/u/b3rts)\
**Replies:** 0\
**Last updated:** [21 November 2025 16:44 UTC](https://forum.devtalk.com/t/advanced-hands-on-rust-rust-2024-gen-and-the-rand-crate/223552 "2025-11-21T16:44:15Z")

</div>

This is probably going to come up if it hasn’t already, but if you try to use Rust 2024 edition with the Advanced Hands-on Rust code, you’re going to have issues with the rand crate. In Rust 2024, gen is now a reserved k…

---

## [Agile Web Development with Rails 8: p99 (a) typo](https://forum.devtalk.com/t/agile-web-development-with-rails-8-p99-a-typo/221150)

<div class="topic-metadata">

**Author:** [@art1](https://forum.devtalk.com/u/art1)\
**Replies:** 0\
**Last updated:** [3 November 2025 00:19 UTC](https://forum.devtalk.com/t/agile-web-development-with-rails-8-p99-a-typo/221150 "2025-11-03T00:19:33Z")

</div>

Title: Agile Web Development with Rails 8: p99 Errata: (a) typo “… text/fixtures/files” errata: “… test/fixtures/files” / (b) “… the new\_product method in test/models/products.rb” errata: “test/models/product\_test.rb…

---

## [The Ray Tracer Challenge: Magnitude of vector \[page 9\]](https://forum.devtalk.com/t/the-ray-tracer-challenge-magnitude-of-vector-page-9/218328)

<div class="topic-metadata">

**Author:** [@Rukkie](https://forum.devtalk.com/u/Rukkie)\
**Replies:** 0\
**Last updated:** [11 October 2025 00:04 UTC](https://forum.devtalk.com/t/the-ray-tracer-challenge-magnitude-of-vector-page-9/218328 "2025-10-11T00:04:07Z")

</div>

2, 3, & 6 are nice numbers for this test and do not require the result to be expressed in the form of a square root: Scenario: Computing the magnitude of vector(2, 3, 6) Given: v ← vector(2, 3, 6) Then magnitude(v) = …

---

## [Write Better with Vale: Suggestion to include a 'Troubeshooting' section for typical issues](https://forum.devtalk.com/t/write-better-with-vale-suggestion-to-include-a-troubeshooting-section-for-typical-issues/217442)

<div class="topic-metadata">

**Author:** [@s2k](https://forum.devtalk.com/u/s2k)\
**Replies:** 1\
**Last updated:** [9 October 2025 04:16 UTC](https://forum.devtalk.com/t/write-better-with-vale-suggestion-to-include-a-troubeshooting-section-for-typical-issues/217442 "2025-10-09T04:16:33Z")

</div>

Some programs automatically save YAML files with the extension ‘yaml’, which isn’t recognised by vale (which exclusively uses ‘yml’. I suggest putting a hint about this potential issue in the book. It took me a good whi…

---

## [Variable Inertia (NKTg Law) in Frontend Development: Core Library & API](https://forum.devtalk.com/t/variable-inertia-nktg-law-in-frontend-development-core-library-api/216958)

<div class="topic-metadata">

**Author:** [@NKTgLaw](https://forum.devtalk.com/u/NKTgLaw)\
**Replies:** 0\
**Last updated:** [1 October 2025 14:09 UTC](https://forum.devtalk.com/t/variable-inertia-nktg-law-in-frontend-development-core-library-api/216958 "2025-10-01T14:09:30Z")

</div>

The NKTg Law (Law of Variable Inertia) introduces a new way to treat inertia not only as a theoretical physics concept but as quantifiable data that can be computed, simulated, and integrated into applications. A key mi…

---

## [Elixir Patterns: LLM Agent implementation (page 200)](https://forum.devtalk.com/t/elixir-patterns-llm-agent-implementation-page-200/215417)

<div class="topic-metadata">

**Author:** [@arthurbailao](https://forum.devtalk.com/u/arthurbailao)\
**Replies:** 0\
**Last updated:** [20 September 2025 02:24 UTC](https://forum.devtalk.com/t/elixir-patterns-llm-agent-implementation-page-200/215417 "2025-09-20T02:24:09Z")

</div>

Chris McCord said on his keynote at ElixirConf US 2025 that “Agents are easier than you think” and provided a basic draft on how to implement an LLM Agent using a GenServer. So maybe you could add a section into the chap…

---

## [Designing Elixir Systems with OTP: Fix Mastery.Boundary.Validator.check\_field() (page 118)](https://forum.devtalk.com/t/designing-elixir-systems-with-otp-fix-mastery-boundary-validator-check-field-page-118/35323)

<div class="topic-metadata">

**Author:** [@marcotaubmann](https://forum.devtalk.com/u/marcotaubmann)\
**Replies:** 2\
**Last updated:** [8 September 2025 19:56 UTC](https://forum.devtalk.com/t/designing-elixir-systems-with-otp-fix-mastery-boundary-validator-check-field-page-118/35323 "2025-09-08T19:56:01Z")

</div>

When testing the code of page 118 in iex -S mix i think you should get: iex(1)\> Mastery.Boundary.QuizValidator.errors(%{mastery: 3}) \[title: "is required"\] But instead you get: iex(1)\> Mastery.Boundary.QuizValidator.…

---

## [Rails Scales!: Correct outdated references to chapter transitions (p125, p191)](https://forum.devtalk.com/t/rails-scales-correct-outdated-references-to-chapter-transitions-p125-p191/212539)

<div class="topic-metadata">

**Author:** [@joevgreathead](https://forum.devtalk.com/u/joevgreathead)\
**Replies:** 0\
**Last updated:** [27 August 2025 18:52 UTC](https://forum.devtalk.com/t/rails-scales-correct-outdated-references-to-chapter-transitions-p125-p191/212539 "2025-08-27T18:52:13Z")

</div>

It seems like a chapter may have been moved at some point during editing and references to this old order caused some confusion for me while reading. There are two references which tell me this. At the end of chapter 5 …

---

## [Advanced Hands-on Rust: minor typo on page xiv (page 14)](https://forum.devtalk.com/t/advanced-hands-on-rust-minor-typo-on-page-xiv-page-14/208252)

<div class="topic-metadata">

**Author:** [@rogerkoehler](https://forum.devtalk.com/u/rogerkoehler)\
**Replies:** 0\
**Last updated:** [25 July 2025 22:02 UTC](https://forum.devtalk.com/t/advanced-hands-on-rust-minor-typo-on-page-xiv-page-14/208252 "2025-07-25T22:02:28Z")

</div>

Bevy updates regularly, and the book would be out-of-date by the time it wasn printing.

---

## [Agile Web Development with Rails 8: Page 9](https://forum.devtalk.com/t/agile-web-development-with-rails-8-page-9/197349)

<div class="topic-metadata">

**Author:** [@nfstern](https://forum.devtalk.com/u/nfstern)\
**Replies:** 2\
**Last updated:** [18 July 2025 16:31 UTC](https://forum.devtalk.com/t/agile-web-development-with-rails-8-page-9/197349 "2025-07-18T16:31:18Z")

</div>

Title: Agile Web Development with Rails 8 (page 9) Suggestion: Add watchman to the list of packages to install In Chapter 6 page 71 when you start the server this pops up in the log: sh: 1: watchman: not found. It can…

---

## [High Performance PostgreSQL for Rails: Explanation regarding the use of includes with a limit (Page 124)](https://forum.devtalk.com/t/high-performance-postgresql-for-rails-explanation-regarding-the-use-of-includes-with-a-limit-page-124/161023)

<div class="topic-metadata">

**Author:** [@viktorianer](https://forum.devtalk.com/u/viktorianer)\
**Replies:** 1\
**Last updated:** [12 July 2025 03:26 UTC](https://forum.devtalk.com/t/high-performance-postgresql-for-rails-explanation-regarding-the-use-of-includes-with-a-limit-page-124/161023 "2025-07-12T03:26:22Z")

</div>

Dear Andrew, @andatki I found the explanation regarding the use of .includes() with a limit in the context of vehicle reservations to be quite insightful. However, I believe the discussion on performance implications c…

---

## [Programming Phoenix LiveView:Please consider replacing WrongLive to GuessLive](https://forum.devtalk.com/t/programming-phoenix-liveview-please-consider-replacing-wronglive-to-guesslive/196096)

<div class="topic-metadata">

**Author:** [@siraj-samsudeen](https://forum.devtalk.com/u/siraj-samsudeen)\
**Replies:** 1\
**Last updated:** [1 July 2025 22:40 UTC](https://forum.devtalk.com/t/programming-phoenix-liveview-please-consider-replacing-wronglive-to-guesslive/196096 "2025-07-01T22:40:02Z")

</div>

The name chosen for the guess module is WrongLive - each time I see this, my brain fires up with the usual connotations of the word wrong (thinking that this is the wrong way to code, and then there is a right way to cod…

[Next page](https://forum.devtalk.com/tag/suggestion/414.md?match_all_tags=true&page=1&tags%5B%5D=suggestion)
