<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mdm12</title><link>https://news.ycombinator.com/user?id=mdm12</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 04 May 2026 20:49:51 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mdm12" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mdm12 in "Parse, Don't Validate and Type-Driven Design in Rust"]]></title><description><![CDATA[
<p>One option is dependent pairs, where one value of the pair (in this example) would be the length of the array and the other value is a type which depends on that same value (such as Vector n T instead of List T).<p>Type-Driven Development with Idris[1] is a great introduction for dependently typed languages and covers methods such as these if you're interested (and Edwin Brady is a great teacher).<p>[1] <a href="https://www.manning.com/books/type-driven-development-with-idris" rel="nofollow">https://www.manning.com/books/type-driven-development-with-i...</a></p>
]]></description><pubDate>Sat, 21 Feb 2026 20:47:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47104580</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=47104580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47104580</guid></item><item><title><![CDATA[New comment by mdm12 in "Study: Consumers Actively Turned Off by AI"]]></title><description><![CDATA[
<p>We're not done building the boring stuff or solving the hard problems either. One is, well, boring and the other is...hard. Easy enough to proxy out prompts to OpenAI for your next funding round, though.</p>
]]></description><pubDate>Thu, 01 Aug 2024 10:36:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41127766</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=41127766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41127766</guid></item><item><title><![CDATA[New comment by mdm12 in "Misty Programming Language"]]></title><description><![CDATA[
<p>Other languages that make heavy usage of non-ASCII Unicode characters (such as Lean) often have tooling support such that one can type '\' along with some combination of ASCII characters to generate characters like '≈', '≠' and 'ƒ'. Along with searchable documentation for the whole mapping of shorthand codes to the mapped Unicode values, of course.<p>Code is read more than written, so I have grown to appreciate programming languages that lean into non-ASCII characters for semantic clarity :)</p>
]]></description><pubDate>Sun, 31 Dec 2023 20:54:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=38827435</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=38827435</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38827435</guid></item><item><title><![CDATA[New comment by mdm12 in "Moving from relational data to events"]]></title><description><![CDATA[
<p>In event sourced systems, you project the event stream into read models, of which there can be many (relational, time series, etc.) If you're familiar with functional programming, it is essentially a fold operation over the stream of events into a single state.<p>Having worked with event sourced systems in the past, there are benefits in having a persisted explicit event history, but there is much added complexity (how do those read models actually get generated? how do you version the model? do you have snapshots of your read models?). In my experience, the additional complexity was not worth it for most contexts in which the pattern was applied...</p>
]]></description><pubDate>Sun, 17 Dec 2023 00:57:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=38669375</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=38669375</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38669375</guid></item><item><title><![CDATA[New comment by mdm12 in "A new F# compiler feature: graph-based type-checking"]]></title><description><![CDATA[
<p>Enjoy your F# journey! I have yet to find a more ergonomic, practical language for daily use :)</p>
]]></description><pubDate>Sun, 05 Nov 2023 17:40:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=38153412</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=38153412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38153412</guid></item><item><title><![CDATA[New comment by mdm12 in "A new F# compiler feature: graph-based type-checking"]]></title><description><![CDATA[
<p>I would recommend two. F# in Action [1] by Isaac Abraham is a great (and recent) introduction to the F# language. For a more philosophical, domain-oriented book, you can't go wrong with Scott Wlaschin's Domain Modeling Made Functional book[2]. Scott's blog[3] is also must-read material.<p>[1] <a href="https://www.manning.com/books/f-sharp-in-action" rel="nofollow noreferrer">https://www.manning.com/books/f-sharp-in-action</a><p>[2] <a href="https://pragprog.com/titles/swdddf/domain-modeling-made-functional/" rel="nofollow noreferrer">https://pragprog.com/titles/swdddf/domain-modeling-made-func...</a><p>[3] <a href="https://fsharpforfunandprofit.com/" rel="nofollow noreferrer">https://fsharpforfunandprofit.com/</a></p>
]]></description><pubDate>Sun, 05 Nov 2023 14:30:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=38151427</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=38151427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38151427</guid></item><item><title><![CDATA[New comment by mdm12 in "Is Htmx Gaining in Popularity?"]]></title><description><![CDATA[
<p>It may be sacrilege to say this, but I have adopted Retool in my organization for the purposes of quick-and-dirty internal apps that are essentially thin GUIs around internal data stores. It has worked out well for us and even stodgy backend engineers like myself can be productive with it.</p>
]]></description><pubDate>Sun, 09 Jul 2023 01:45:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=36650680</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=36650680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36650680</guid></item><item><title><![CDATA[New comment by mdm12 in "Functional Programming in Lean"]]></title><description><![CDATA[
<p>Congratulations on the publication! As a dabbler in strictly typed functional programming languages like Scala and F#, I have always been curious about proof-oriented languages such as Coq or Agda, but found it difficult to justify the time investment. Lean seems to position itself as a theorem proving language that also supports general-purpose programs. Looking forward to digging into your book!</p>
]]></description><pubDate>Mon, 29 May 2023 00:40:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=36109309</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=36109309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36109309</guid></item><item><title><![CDATA[New comment by mdm12 in "Microsoft 365 Copilot – your copilot for work"]]></title><description><![CDATA[
<p>We already have students using AI to generate answers for homework and teachers using automation to grade it. I would say we are already there.</p>
]]></description><pubDate>Thu, 16 Mar 2023 15:41:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=35183395</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=35183395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35183395</guid></item><item><title><![CDATA[New comment by mdm12 in "A senior engineer's guide to the system design interview"]]></title><description><![CDATA[
<p>I have seen this process described elsewhere as 'reverse system design', and it is my preferred approach to evaluating senior candidates as well.</p>
]]></description><pubDate>Thu, 02 Mar 2023 18:58:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=35000132</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=35000132</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35000132</guid></item><item><title><![CDATA[New comment by mdm12 in "Elixir for Humans Who Know Python"]]></title><description><![CDATA[
<p>Sounds like Gleam[0] would be up your alley :) As an F# guy myself, I am hoping it pans out, as I miss the BEAM platform!<p>[0] <a href="https://gleam.run/" rel="nofollow">https://gleam.run/</a></p>
]]></description><pubDate>Sat, 25 Feb 2023 21:38:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=34940724</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=34940724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34940724</guid></item><item><title><![CDATA[The Racket Manifesto (2015) [pdf]]]></title><description><![CDATA[
<p>Article URL: <a href="https://cs.brown.edu/~sk/Publications/Papers/Published/fffkbmt-racket-manifesto/paper.pdf">https://cs.brown.edu/~sk/Publications/Papers/Published/fffkbmt-racket-manifesto/paper.pdf</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=34751550">https://news.ycombinator.com/item?id=34751550</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Sat, 11 Feb 2023 11:54:29 +0000</pubDate><link>https://cs.brown.edu/~sk/Publications/Papers/Published/fffkbmt-racket-manifesto/paper.pdf</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=34751550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34751550</guid></item><item><title><![CDATA[New comment by mdm12 in "Austral: A systems language with linear types and capabilities"]]></title><description><![CDATA[
<p>My understanding is that the 'linear' terminology derives from the field of Linear Logic[1]. But, I am by no means an expert on theoretical computer science etymology!<p>[1] <a href="https://en.wikipedia.org/wiki/Linear_logic" rel="nofollow">https://en.wikipedia.org/wiki/Linear_logic</a></p>
]]></description><pubDate>Sat, 31 Dec 2022 14:35:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=34196761</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=34196761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34196761</guid></item><item><title><![CDATA[New comment by mdm12 in "Type-Signature.com"]]></title><description><![CDATA[
<p>In my perusals into the Haskell ecosystem, discovering Hoogle[1] was definitely a revelation on the power of a strongly-typed language. Sometimes, you know the _shape_ of the thing you are looking for, but not the name. The ability to search a repository of packages for all functions conforming to a certain type signature (e.g., (a -> Bool) -> [a] -> [a]) is a superpower.<p>[1] <a href="https://hoogle.haskell.org/" rel="nofollow">https://hoogle.haskell.org/</a></p>
]]></description><pubDate>Sat, 12 Nov 2022 01:37:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=33569111</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=33569111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33569111</guid></item><item><title><![CDATA[New comment by mdm12 in "The type system is a programmer's best friend"]]></title><description><![CDATA[
<p>Unit of measures are a great example of what a type system can do, and something not enough languages support. F#[1] and Scala[2] are two that I know of that do support UOMs.  Like you, I haven't had the need to use them in the domains I work in, but I imagine that they would be invaluable in certain contexts.<p>[1] <a href="https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/units-of-measure" rel="nofollow">https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...</a><p>[2] <a href="https://github.com/typelevel/squants" rel="nofollow">https://github.com/typelevel/squants</a></p>
]]></description><pubDate>Sat, 05 Nov 2022 13:32:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=33481294</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=33481294</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33481294</guid></item><item><title><![CDATA[New comment by mdm12 in "Applied category theory in chemistry, computing, and social networks [pdf]"]]></title><description><![CDATA[
<p>Not a dumb question at all!<p>The short answer is that a category also satisfies two rules: every object has an arrow to itself (identity) and if there are two arrows (a->b) and (b->c) there is an arrow (a->c) (associativity).<p>Other abstractions such as functors (mappings between categories) are built upon this relatively simple foundation. You can also think about categories of categories (they can be considered an object, after all!), and so on and so forth.<p>Some complain about the generality of Category Theory ('It is a theory about everything and nothing!'), but its generality makes it compelling for some for study.</p>
]]></description><pubDate>Tue, 01 Nov 2022 23:47:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=33429464</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=33429464</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33429464</guid></item><item><title><![CDATA[New comment by mdm12 in "Ask HN: Have You Left Kubernetes?"]]></title><description><![CDATA[
<p>Not the OP, but I have had success with CDK. The main advantages for me have been discoverability with respect to resource properties, along with proper, higher-level abstractions pertaining to AWS infrastructure. <a href="https://aws.amazon.com/blogs/devops/leverage-l2-constructs-to-reduce-the-complexity-of-your-aws-cdk-application/" rel="nofollow">https://aws.amazon.com/blogs/devops/leverage-l2-constructs-t...</a></p>
]]></description><pubDate>Mon, 01 Aug 2022 13:32:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=32305702</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=32305702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32305702</guid></item><item><title><![CDATA[New comment by mdm12 in "Ask HN: What is the job market like for niche languages (Nim, Crystal)?"]]></title><description><![CDATA[
<p>F# 6.0 added the 'task' computation expression, which is much more performant than the F# 'async' methods. It also makes interop with C# projects and libraries simpler, as is uses the same mechanism that C#'s async/await does. I have used it in production workflows without major performance issues FWIW.</p>
]]></description><pubDate>Sat, 23 Jul 2022 17:20:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=32205382</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=32205382</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32205382</guid></item><item><title><![CDATA[New comment by mdm12 in "Are forum platforms dead?"]]></title><description><![CDATA[
<p>Good on you for taking the road less traveled! I don't have the guts to pursue 'real' entrepreneurship like yourself, but I appreciate those who do!</p>
]]></description><pubDate>Wed, 20 Jul 2022 21:45:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=32172822</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=32172822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32172822</guid></item><item><title><![CDATA[New comment by mdm12 in "Are forum platforms dead?"]]></title><description><![CDATA[
<p>Now if we can only convince VCs that 'web3' really means 'we host the servers again' and not that other nonsense.</p>
]]></description><pubDate>Wed, 20 Jul 2022 21:31:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=32172643</link><dc:creator>mdm12</dc:creator><comments>https://news.ycombinator.com/item?id=32172643</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32172643</guid></item></channel></rss>