A

Ahmed Youssef

xmonader.github.io · Personal blog · on HN since 2018

Ahmed Youssef writes about Nim, Prolog, and compilers, including the free book Nim Days and a Prolog murder puzzle.

What HN saysHN commenters link his Nim Days book as a learning resource and his Prolog murder-solving post, and one says he loves Nim.
21HN people shared it
12linked it in comments
16stories submitted
289story points
3 months agolast shared
2018people per year2026

Most-shared posts

  1. 1
    Solving murder with Prolog
    6 people · 137 points · first shared 2018 · 18 comments on HN
  2. 2
    Nim days
    6 people · 13 points · first shared 2018 · discussion on HN
  3. 3
    Let's Build a Compiler (1995)
    5 people · 111 points · first shared 2019 · 18 comments on HN
  4. 4
    Nim: The good, the OK, and the hard
    2 people · 15 points · first shared 2018 · discussion on HN
  5. 5
    Nim: Building a Web Framework
    2 people · 5 points · first shared 2019 · discussion on HN
  6. 6
    Let's Build a Compiler (1988)
    2 people · 1 points · first shared 2019 · discussion on HN
  7. 7
    TicTacToe GUI – Nim Days
    1 people · 4 points · first shared 2024 · discussion on HN
  8. 8
    Nim Days: Chapter 21 Parser Combinators and Nim
    1 people · 1 points · first shared 2020 · discussion on HN
  9. 9
    Show HN: Boss Says – endless office platformer
    1 people · 1 points · first shared 2026 · discussion on HN
  10. 10
    Nim days book (still in progress)
    1 people · 1 points · first shared 2018 · discussion on HN

What HN people wrote when they linked it

aredirect · 2023-12-02
I subscribed to your channel, power to you to finish up this series :). I love Nim, I even wrote a book on it! https://xmonader.github.io/nimdays
ghufran_syed · 2018-12-24
Datalog is a form of prolog, used currently by a database called datomic as it's query language. If you wanted to play with datalog, the best way is to do the free tutorial at www.learndatalogtoday.org you don't need to anything about datomic or clojure in order to do the tutorial, and I found it really helpful to get an idea of how it would be really helpful for certain types of queries, compared to an analogous query in SQL (which I also like btw...) [Edit] - funny, someone just posted this other tutorial to HN too, haven't done it yet but looks fun and educational, it's a murder mystery! https://xmonader.github.io/prolog/2018/12/21/solving-murder-prolog.htm…
PMunch · 2018-06-13
This tutorial obviously only scratches the surface of what is possible in Nim. If you want to dig deeper I recommend reading through the learnxinyminutes entry, along with maybe https://xmonader.github.io/nimdays to see some examples. Then of course the official tutorials. Or if you just want to dig into the crazy stuff to see what is possible https://hookrace.net/blog/introduction-to-metaprogramming-in-nim/
hjek · 2018-12-27
> Hmm I'm fine with prolog, I love it, but I'm not sure how it can be used in practice. Well, that rings similar to what is said about Lisp sometimes, and I think it can easily be refuted by pointing to instances where it is being used in practice[0]. There are some problems that are fairly easy to solve in Prolog, but would be very difficult to express in SQL[1]. And recursive relations, which are at the core of Prolog, only made their way into SQLite 4 years ago[2]. My comment was specifically about those Prolog/Datalog implementations in Racket. Other Prolog implementations might be dealing sensibly with incremental updates (but I don't know). > Having seen companies where SQL was used very extensively for analytics, data storage etc I can't see how prolog wouldn't help. You can't see how Prolog wouldn't help, as in Prolog can only be an improvement over SQL? [0]: https://www.youtube.com/watch?v=G_eYTctGZw8 [1]: https://xmonader.github.io/prolog/2018/12/21/solving-murder-prolog.htm… [2]: https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQ…
JoelMcCracken · 2026-01-14
Yeah I figured that, but the combinations I was dealing with really weren’t that many. The problem was https://xmonader.github.io/prolog/2018/12/21/solving-murder-prolog.htm… and trying to solve it with list monad. Someday I hope to get back to it.
thaliaarchi · 2023-12-27
A rendered Markdown version of this book is available here: https://xmonader.github.io/letsbuildacompiler-pretty/
ofrzeta · 2023-12-26
https://xmonader.github.io/letsbuildacompiler-pretty/ "This is a prettified and modern, browsable version of Let’s Build a Compiler by Jack Crenshaw."
trealira · 2023-10-22
I haven't used it, but based on this, it seems good for declaratively solving problems given facts and constraints: https://xmonader.github.io/prolog/2018/12/21/solving-murder-prolog.htm…
metasyn · 2021-09-13
two resources i enjoyed: "nim in action" by dom96 https://www.manning.com/books/nim-in-action nim days by xmonader https://xmonader.github.io/nimdays/
svat · 2020-02-17
Also https://news.ycombinator.com/item?id=19890918 discusses https://xmonader.github.io/letsbuildacompiler-pretty/ which is a prettification of these plain .txt files — thanks to it I was able to read this series on my phone during lunch breaks.
ajusa · 2022-02-27
This is a really fantastic resource for learning programming with Nim. I've started recommending it to folks that are newer to programming that want to try Nim out for various reasons. The only downside is that it is written by a non-native english speaker, so some of the phrasing feels awkward at times. Of course, that's a non issue for this kind of technical material, it's very understandable and useful! You can also view the source of this material here: https://github.com/StefanSalewski/NimProgrammingBook For folks that are more experienced and learn by doing, the two resources I would recommend are https://nim-by-example.github.io/ and https://xmonader.github.io/nimdays/. The first is a solid overview of the basic language, while the second is a bunch of example projects. Other good resources if anyone is interested: Nim in Action (book) https://narimiran.github.io/nim-basics/ https://scripter.co/notes/nim The official Nim tutorial: https://nim-lang.org/docs/tut1.html Nim also had a devroom at FOSDEM this year! You can find it at https://fosdem.org/2022/schedule/track/nim_programming_language/. My favorite talks were on Polymorph (a really fast compile time ECS), Pararules (a super cool implementation of a rules engine) and Nim Metaprogramming in the real world (very useful lesser known patterns for using Nim's capabilities in a variety of projects).

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close