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
    P

    Phil Sturgeon

    philsturgeon.uk · Personal blog · on HN since 2014

    Phil Sturgeon, a PHP and API developer, writes about PHP, REST versus GraphQL, OpenAPI, JSON Schema and Markdown.

    Visit blogHN submissions
    Web DevelopmentProgramming
    What HN says

    HN links it for PHP history, such as the T_PAAMAYIM_NEKUDOTAYIM error name, and for OpenAPI and JSON Schema incompatibilities.

    Stats for nerds
    25HN people shared it
    24linked in comments
    136story points
    Apr 2019last shared
    2014people per year2019

    Top posts on HN

    1. 1
      A Response to REST Is the New SOAP
      1 person · 37 points · first shared 2017 · 5 comments on HN
    2. 2
      OpenAPI and JSON Schema Divergence: Part 1
      2 people · 29 points · first shared 2018 · 6 comments on HN
    3. 3
      If it aint broke don't fix it. A PHP (horror) story
      1 person · 17 points · first shared 2015 · 7 comments on HN
    4. 4
      GraphQL vs. REST: Overview
      3 people · 10 points · first shared 2017 · Discussion on HN
    5. 5
      T_PAAMAYIM_NEKUDOTAYIM v. Sanity
      5 people · 7 points · first shared 2017 · Discussion on HN
    6. 6
      The State of Markdown
      1 person · 6 points · first shared 2014 · Discussion on HN
    7. 7
      PHP 7 Feature Freeze
      2 people · 5 points · first shared 2015 · Discussion on HN
    8. 8
      Why is everyone outraged?
      2 people · 5 points · first shared 2016 · Discussion on HN
    9. 9
      The State of Markdown (2014) – Phil Sturgeon
      2 people · 4 points · first shared 2014 · Discussion on HN
    10. 10
      HTTP Documentation with API Blueprint
      1 person · 3 points · first shared 2015 · Discussion on HN

    What HN people wrote when they linked it

    • acemarkeApr 2019

      Some searching turns up some articles on incompatibilities between OpenAPI and JSON Schema [0] [1], and it's not immediately clear if they fit together well at this point.

      We've got some JSON Schema APIs in our services already and are using libs like the Python `json-schema` package to do validation with those. I also briefly experimented with Quicktype [2] to generate some TS types as a proof-of-concept.

      We're getting ready to do a pretty big rework of a lot of our services, and I'm interested in any info folks can provide on pros and cons of using OpenAPI vs JSON Schema for API definitions, and tooling around request validation and TS interface / client generation.

      [0] https://philsturgeon.uk/api/2018/04/13/openapi-and-json-schema-divergence-solved/

      [1] https://github.com/OAI/OpenAPI-Specification/issues/1532

      [2] https://quicktype.io/typescript/

    • footaMar 2017

      I've heard this argument often, what behavior are people referring to when they talk about these advantages?

      Is this just referring to using semantically correct HTTP status codes for things like caching, or is there more to it that I'm missing?

      edit: And also, and perhaps most important, what about REST makes it easier to take advantage of the transport layer's advantages?

      edit 2: This article has answered some of my questions and brought more clarity: https://philsturgeon.uk/api/2017/01/26/graphql-vs-rest-caching/

    • ermirMar 2019

      This is the same exact reason why PHP double colon errors still include the `T_PAAMAYIM_NEKUDOTAYIM` string somewhere in the error, as various error parsers still look for it even though the error messages have been updated to be clearer. The PHP team can't remove it or it will break tons of error parsers.

      https://philsturgeon.uk/php/2013/09/09/t-paamayim-nekudotayim-v-sanity/

    • exclusivOct 2016

      Yes it is comparable to Node. Most benchmarks show PHP with blocking calls against async Node calls. PHP has the tools to do async no problem. I use ReactPHP all the time to do this stuff; it works great for fast scraping.

      See an older counter-point with the much slower PHP 5.5:

      https://philsturgeon.uk/php/2013/11/12/benchmarking-codswallop-nodejs-v-php/

    • xellisxAug 2018

      Not as cool as this, but here are some PHP "frameworks" in a tweet (140 characters):

      http://www.twitto.org/

      https://gist.github.com/mathiasverraes/9046427

      https://philsturgeon.uk/php/2009/12/15/Twiny-Framework-the-framework-small-enough-to-tweet/

      https://gist.github.com/jeremeamia/2720020

    • derefrApr 2017

      The thing about One Special Bigger Request is that it isn't cacheable. GraphQL is no exception: https://philsturgeon.uk/api/2017/01/26/graphql-vs-rest-caching/

      If you want network-level caching, you want multiple atomic resource requests. HTTP2 enables this.

    Related

    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    Jason Millerjasonformat.com24 people

    Modern Script Loading

    Jason Miller
    Personal · last shared 2023
    Overreactedoverreacted.io186 people

    Goodbye, Clean Code

    Overreacted
    Personal · last shared 2026
    Pinterest Engineeringengineering.pinterest.com95 people

    Demystifying SEO with experiments

    Pinterest Engineering
    Company · last shared 2017
    Facebook Engineeringcode.facebook.com552 people

    Relicensing React, Jest, Flow, and Immutable.js

    Facebook Engineering
    Company · last shared 2021
    Dave Cheneydave.cheney.net271 people

    Why Slack is inappropriate for open source communications

    Dave Cheney
    Personal · last shared 2026
    Jepsenjepsen.io212 people

    Jepsen: PostgreSQL 12.3

    Jepsen
    Company · last shared 2026
    Jesse Wilsonpublicobject.com17 people

    Strict APIs vs. Forgiving APIs

    Jesse Wilson
    Personal · last shared 2025