Hacker Blogs
Work in progress: 15,409 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #687

T

The If Works

Personal blog · blog.jcoglan.comprogrammingweb

The If Works is a personal blog at blog.jcoglan.com about programming and web. Since 2008, 93 different Hacker News readers have linked it 114 times, most often “Why GitHub is not your CV [2013]”. It is still writing: the last post was on 2026-03-23, and you can follow it by feed.

Visit the blog
114mentions?
13recommend?
93HN people?
2008–2026first – last linked?
Links on Hacker News per year · peak 19 in 2014

Sometimes recommended · 13 of 39 sampled comments recommend it?

Why HN links it

Readers link James Coglan's posts for explanations of diff algorithms (Myers, patience), monads and promises in JavaScript, and his argument against using GitHub as a CV.

Recommended for · 13 comments
Commenters recommend the diff-algorithm and promises/monads posts and call the JavaScript monad translation helpful.

Summarised by Claude from a sample of 39 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Why GitHub is not your CV [2013]
    15 people · 15 mentions · first linked 2014-02-10
  2. The Myers diff algorithm: part 1
    7 people · 10 mentions · first linked 2017-02-23
  3. The patience diff algorithm (2017)
    5 people · 5 mentions · first linked 2020-05-31
  4. Haskell to JavaScript: Introduction to monads
    4 people · 6 mentions · first linked 2014-08-18
  5. Promises are the monad of asynchronous programming
    4 people · 4 mentions · first linked 2011-03-11
  6. Generic Returns in Rust
    4 people · 4 mentions · first linked 2019-04-22
  7. Uses for Nested Promises
    4 people · 4 mentions · first linked 2026-03-23
  8. Callbacks are imperative, promises are functional
    4 people · 4 mentions · first linked 2014-01-10
  9. Deriving the Y combinator (2008)
    3 people · 3 mentions · first linked 2008-02-08
  10. Introduction to monads in JavaScript
    3 people · 3 mentions · first linked 2011-03-09

What Hacker News says?

  1. > The second link is merely an animated gif of an octopuss. Now that is funny. Either the blogger changed his URL structure in the time I copy/pasted, or I did a dumb: https://blog.jcoglan.com/2013/11/15/ > If she did somehow draw a causal link between those activities and not using github (she doesn't), it would imply that women should also be absent from Facebook, Pinterest and Instagram. They aren't. Wait a minut…

    Comment linking /2013/11/15/

    on “The Other Side of Diversity”
  2. Submitted Callbacks are imperative, promises are functional as a story · 353 points

    HN discussion
  3. I'd point you to a few well written articles that address this line of thinking pretty well: * http://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-an... * https://blog.jcoglan.com/2013/11/15/why-github-is-not-your-c... * http://www.garann.com/dev/2012/you-keep-using-that-word/

    Comment linking /2013/11/15/why-github-is-not-your-cv/

    on “The Other Side of Diversity”
  4. Submitted Announcing Building Git as a story · 291 points

    HN discussion
  5. A day later I looked at this again and I'm a little closer to understanding. var listPromise = new Promise(); creates an object that, being a Promise object, has certain methods and internal state, derived from the prototype of Promise. for (var k in listPromise) promises[k] = listPromise[k]; This confused me because I thought "k" was a stand-in for a numeric index, e.g. that it was doing promises[0] = listPromise[0…

    Comment linking /2011/03/11/promises-are-the-monad-of-asynchronous-programming/

    on “Callbacks are imperative, promises are functional”
  6. Submitted Why you should never use hash functions for message authentication as a story · 171 points

    HN discussion
  7. > Github acts as a portfolio site for programmers. No [1] [2]. It is not your resume or your CV. You should be able to highlight projects or accomplishments on your CV - github gives you no control over the layout of your profile. > The usual refrain when doing hiring is "check a candidate's Github." (I'm assuming you mean something that they do rather than something they don't do) I'm not saying you can't look at b…

    Comment linking /2013/11/15/why-github-is-not-your-cv/

    on “Using a single AWS account is a serious risk”
  8. Submitted Introduction to monads in JavaScript as a story · 155 points

    HN discussion
  9. At least you should try. Maybe start small (and stay small..), there is always some path to escape from cubicle nation.. ;) As for "github is your CV" hype: http://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-an... https://blog.jcoglan.com/2013/11/15/why-github-is-not-your-c...

    Comment linking /2013/11/15/why-github-is-not-your-cv/

    on “Ask HN: My 56-year-old father is a developer having a tough time finding a job”
  10. Submitted The Myers diff algorithm: part 1 as a story · 148 points

    HN discussion
  11. vcmiraldo · 2021-07-08Recommends
    you'll probably enjoy the patience diff: https://blog.jcoglan.com/2017/09/19/the-patience-diff-algori...

    Comment linking /2017/09/19/the-patience-diff-algorithm/

    on “Difftastic: Syntax-aware structured diff tool”
  12. Submitted The Myers diff algorithm: part 1 as a story · 148 points

    HN discussion
  13. Yes: here's an interesting discussion of promises (in JavaScript) in terms of monads: http://blog.jcoglan.com/2011/03/11/promises-are-the-monad-of...

    Comment linking /2011/03/11/promises-are-the-monad-of-asynchronous-programming/

    on “Guido van Rossum Deconstructing Twisted's Deferreds”
  14. Submitted The Myers diff algorithm that is used in Git (2017) as a story · 122 points

    HN discussion
  15. Another explanation of Myers diff algorithm that I found interesting: https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm...

    Comment linking /2017/02/12/the-myers-diff-algorithm-part-1/

    on “Myers Diff Algorithm – Code and Interactive Visualization”
  16. Submitted Why GitHub is not your CV as a story · 107 points

    HN discussion
  17. > the biggest problem is that the SHA1 digest of a message is not an authenticator of that message, because an attacker can generate the same digest given only the contents of the message. Curious, if the secret token comes after the message & there is proper delimiters to separate the message from the secret, where is the vulnerability? Take a look at this link: https://blog.jcoglan.com/2012/06/09/why-you-should-ne…

    Comment linking /2012/06/09/why-you-should-never-use-hash-functions-for-message-authentication/

    on “Telegram’s Cryptanalysis Contest”
  18. Submitted Translation from Haskell to JavaScript (Introduction to monads) as a story · 64 points

    HN discussion
  19. related: http://www.artima.com/forums/flat.jsp?forum=106&thread=3... http://tratt.net/laurie/tech_articles/articles/a_modest_atte... http://www.tbray.org/ongoing/When/201x/2011/12/27/Type-Syste... http://blog.jcoglan.com/2011/12/29/black-box-criteria/ http://www.stanford.edu/class/cs242/slides/Types.ppt

    Comment linking /2011/12/29/black-box-criteria/

    on “Experiment: Unit testing isn't enough; You need static types, too ”
  20. Submitted Hilbert’s Rusty Hotel as a story · 43 points

    HN discussion
  21. You are correct, thanks for the clarification. From https://www.gnu.org/software/diffutils/manual/diffutils.html... > You can think of this as subtracting older from yours and adding the result to mine, or as merging into mine the changes that would turn older into yours. The point stands: taking history in account is unconvincing, as it assumes intent where none is explicitly given. In the example, if the top branc…

    Comment linking /2017/05/08/merging-with-diff3

    on “Anu: A sound, distributed version control systema”
  22. Submitted Writing a language in 15 minutes as a story · 28 points

    HN discussion
  23. ionfish · 2011-04-10Recommends
    James Coglan has written a lot [1] about these issues. His series on evented programming [2] is a good place to start. [1] http://blog.jcoglan.com/ [2] http://blog.jcoglan.com/2010/02/21/events-theyre-not-just-fo...

    Comment linking /2010/02/21/events-theyre-not-just-for-the-dom-you-know/

    on “The jQuery Divide:Understand where jQuery ends and JavaScript begins”
  24. Submitted Composing DSLs in JavaScript as a story · 17 points

    HN discussion
  25. jacobr · 2012-02-21Recommends
    Great article, I learned a lot from http://blog.jcoglan.com/2011/03/05/translation-from-haskell-... as well.

    Comment linking /2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read/

    on “Learn from Haskell - Functional, Reusable JavaScript”
  26. Submitted Announcing Vault: safer passwords for the web as a story · 11 points

    HN discussion
  27. New link: https://blog.jcoglan.com/2011/03/05/translation-from-haskell...

    Comment linking /2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read/

    on “Functors, Applicatives, and Monads in Plain English”
  28. Submitted Why GitHub is not your CV [2013] as a story · 10 points

    HN discussion
  29. hyperpape · 2016-04-22Recommends
    You could try "You Could Have Invented Monads" for an explanation of why they're valuable https://blog.jcoglan.com/2011/03/05/translation-from-haskell... (linking to the JS version, which links to the Haskell version). But while I liked that tutorial, I think what worked was time. I tried to write Haskell and slowly got a feel for them. After awhile, I started to read JS and Java code and think "oh, another monad".

    Comment linking /2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read/

    on “Functors, Applicatives, and Monads in Plain English”
  30. Submitted Heist (Scheme in Ruby) 0.2 adds proper list support, better documentation as a story · 10 points

    HN discussion

Search all of HN for blog.jcoglan.com

Linked by the same people?