Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    M

    Moserware

    moserware.com · Personal blog · on HN since 2007

    Moserware is a software developer's blog with long, illustrated explainers on networking, cryptography, and programming ideas.

    Visit blogHN submissions
    NetworkingSecurityProgramming
    What HN says

    HN commenters recommend its HTTPS handshake post as a primer on TLS, and list the blog among the best that post rarely.

    Stats for nerds
    102HN people shared it
    80linked in comments
    2.8Kstory points
    Oct 2024last shared
    2009people per year2024

    Top posts on HN

    1. 1
      The First Few Milliseconds of an HTTPS Connection (2009)
      21 people · 1.1K points · first shared 2009 · 37 comments on HN
    2. 2
      A Stick Figure Guide to the Advanced Encryption Standard (AES)
      18 people · 767 points · first shared 2009 · 24 comments on HN
    3. 3
      Computing Your Skill
      14 people · 245 points · first shared 2010 · 10 comments on HN
    4. 4
      A full TCP/IP stack in under 200 LoC (and the power of DSLs)
      21 people · 186 points · first shared 2009 · 20 comments on HN
    5. 5
      Does Your Code Pass the Turkey Test? (2008)
      10 people · 147 points · first shared 2008 · 120 comments on HN
    6. 6
      Who Is This “Licklider” Guy? (2008)
      3 people · 83 points · first shared 2008 · 11 comments on HN
    7. 7
      Notes from porting C# code to PHP
      2 people · 70 points · first shared 2010 · 25 comments on HN
    8. 8
      How .NET Regular Expressions Really Work
      1 person · 62 points · first shared 2009 · 6 comments on HN
    9. 9
      Just Enough MBA to Be a Programmer
      3 people · 50 points · first shared 2009 · 10 comments on HN
    10. 10
      Building an Object-Oriented Parasitic Metalanguage
      1 person · 21 points · first shared 2008 · Discussion on HN

    What HN people wrote when they linked it

    • tikhonjMar 2013

      I think this roughly reflects my philosophy in languages as well. You basically have two options: you can bend your problem to your language or your language to your problem. The former is epitomized by Java and Python--all Java and Python code looks the same, regardless of what it's actually doing. The latter is the domain of Lisp and Haskell and Forth and so on.

      I'm unabashedly in favor of the latter.

      Ultimately, it's easier to reason about some domain in that domain. I would love my code for any particular project to look very similar to what I would write on a whiteboard when solving the problem. If I'm solving something inherently mathematical, I want the code to resemble math notation. If I'm writing some parsing code, I want it to resemble a grammar. If I'm writing an interpreter, I want it to resemble the operational semantics of the language. This fits into more "practical" domains as well: if I'm writing a web app, I want the routing to look like, well, routing and the database code to look as close to the database structure as possible.

      Any details in the implementation rather than the domain should be separated from the domain logic. If you're trying to make the domain logic mirror the domain itself, this is essentially inevitable. This makes your code more general and easier to debug. You can redirect your domain logic to a different backend, and it's much easier to figure out whether you have a problem in the implementation or the logic.

      More generally,…

    • 10renSep 2009

      It was a risk though, because I had to trust that I understood the problem domain well enough to invest a lot of time in the parser/interpreter. - First comment on blog http://www.moserware.com/2008/04/towards-moores-law-software-part-3-of-3.html?showComment=1208359740000#c3537318119823933797

      Solving a problem is hard. Generalizing it to a class of problems is harder. Encapsulating it in a language with specialized syntax and semantics is harder still.

      I think this is one reason that DSLs are not that popular, and is one reason why most new languages mimic existing languages like crazy (apart from for user-familiarity to ease adoption). The exceptions, like brainfuck and lolcats, use familiar semantics; and are only novel in syntax.

      As for a Moore's Law for software, I'm going with Fred Brooks' Law of "No Silver Bullet". Complexity is hard, the best we can do is abstract away foundational concepts into components, as we understand them, and then SOTSOG.

      The TCP/IP diagram syntax is really cool - but because it's clear, not because it's short; I think the parsing code in C would actually be shorter than the ASCII art.

    • gwernFeb 2012

      From reading about DF, and especially the NYT profile of DF and the creators, I get the strong impression that DF is very much being done the hard way, even ignoring the C++ aspects, and one could cut down the complexity tremendously with good abstractions and things like DSLs.

      (Think the Viewpoints OS strategy - with good enough abstractions and DSLs, you can do an OS or languages in very small sourcebases; I'm still in awe of their TCP/IP strategy - parsing the RFC illustrations! http://www.moserware.com/2008/04/towards-moores-law-software-part-3-of-3.html )

      That would be a project worth doing.

    • e12eOct 2018

      I'm reminded about the STEPS report of using ascii art from the rfcs as a DSL for describing tcp:

      Writeup/comment:
      http://www.moserware.com/2008/04/towards-moores-law-software-part-3-of-3.html

      Comment thread:
      https://news.ycombinator.com/item?id=846028

      The vpri texts:
      http://www.vpri.org/writings.php

      Appendix e and section "A Tiny TCP/IP Using Non-deterministic Parsing" of "STEPS Toward The Reinvention of Programming: First Year Progress Report, December 2007.":

      http://www.vpri.org/pdf/tr2007008_steps.pdf

    • hawskiMar 2017

      Does implementing TCP/IP stack using the RFC (as in parsing diagrams straight from RFC) counts?

      Then it was done in OMeta [1].

      Previous discussion: A full TCP/IP stack in under 200 LoC (and the power of DSLs) [2].

      There's also a PNG parser (but it is not parsing any documentation) in 20 lines of OMeta [3].

      [1] http://www.moserware.com/2008/04/towards-moores-law-software-part-3-of-3.html

      [2] https://news.ycombinator.com/item?id=846028

      [3] http://joshondesign.com/2013/03/18/ConciseComputing

    • sklogicMay 2016

      I did it many times elsewhere in this thread already.

      For example, this one: http://www.moserware.com/2008/04/towards-moores-law-software-part-3-of-3.html

      Or Nanopass itself, not just as a tool for building DSLs, but as an example of a nice and clean DSL (of course, if it could bootstrap itself it would have been even better):

      https://github.com/akeep/nanopass-framework

      Or everything you can find in my github repositories (username: combinatorylogic).

    Related

    Daniel LeCheminantdanlec.com16 people

    As much Stack Overflow as possible in 4096 bytes

    Daniel LeCheminant
    Personal · last shared 2018
    Stack Abusestackabuse.com28 people

    A SQLite Tutorial with Node.js

    Stack Abuse
    Company · last shared 2024
    Wikimedia Blogblog.wikimedia.org177 people

    Why it took a long time to build the tiny link preview on Wikipedia

    Wikimedia Blog
    Company · last shared 2024
    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    Daniel Miesslerdanielmiessler.com241 people

    It’s Time to Get Back to RSS

    Daniel Miessler
    Personal · last shared 2026
    HttpWatch Blogblog.httpwatch.com18 people

    The Day Google Decided HttpWatch Was ‘Unwanted Software’

    HttpWatch Blog
    Company · last shared 2018
    Patrick McManusbitsup.blogspot.com32 people

    Google fixes nearly decade-old Linux kernel TCP bug

    Patrick McManus
    Personal · last shared 2020
    Vadoswarevadosware.io22 people

    Self-hosted email is the hardest it's ever been, but also the easiest

    Vadosware
    Personal · last shared 2025