curl is just the hobby

Jan Gampe took things to the next level by actually making this cross-stitch out of the pattern I previously posted online. The flowers really gave it an extra level of charm I think.

This quote is from a comment by an upset user on my blog, replying to one of my previous articles about curl.

Fact check: while curl is my hobby, I also work on curl as a full-time job. It is a business and I serve and communicate with many customers on a daily basis. curl provides service to way more than a billion people. I claim that every human being on the planet that is Internet-connected uses devices or services every day that run curl.

The pattern

curl in San Francisco

Meanwhile, another “curl craft” seen in the wild recently is this ad in San Francisco (photo by diego).

The full command line looks like:

curl --request PUT \
--url https://api.stytch.com/v1/b2b/organizations/{ID} \
-d '{
"mfa_policy": "REQUIRED_FOR_ALL",
"mfa_methods": "RESTRICTED",
"allowed_mfa_methods": ["totp", "sms_otp"]
}'

I would personally perhaps protest against the use of PUT for POSTing JSON, but nobody asked me.

Update

Quote from the hacker news thread about the ad shown in the photo from San Francisco:

hi, Stytch team member here who worked on the PUT request ad from Daniel’s post — feel free to AMA

TL;DR on ‘why pay to put a curl request on an ad’ is what you all have already said — (1) unique concentration of tech in SF; and (2) to specifically engage software engineers. More on each…

(1) We wouldn’t have run this ad in Sydney, or New York, or LA. SF definitely has an uniquely tech-oriented culture, and in particular has lots of startups in our ideal customer persona (ICP) at Stytch – in this case, engineers building B2B SaaS apps.

But in addition to the people who live in SF, even more software engineers visit the city for conferences, or events, or to fundraise. For example, while our ads are up over the next month, SF will host Stripe Sessions and POSTCon (two entire conferences focused around APIs), plus RSA (security focused).

(2) And although even with that, only a small segment of the pop will understand the ads, those people might be intrigued enough to actually look at them – and our ultimate goal is to get more engineers to look at our code & our docs. Another perk is that engineers can’t use ad blockers if the ad is on a bus shelter 🙂

So that was a bit of the thinking for us – on why SF & why a PUT request on a billboard. We’re also making the physical ads into an anchor for a ‘marketing moment’ for Stytch — so pair offline ads with digital marketing, as well. So if we’re successful, maybe you’ll see more on that, soon.

11 thoughts on “curl is just the hobby”

  1. Once again thanks for the amazing work!


    I would personally perhaps protest against the use of PUT for POSTing JSON, but nobody asked me.

    Hmmm now I wanna know more 🙂

    1. POST is for creating new items, PUT is for updating existing data.

      But I think this advertisement is suggesting changing policies. So PUT does make sense in this context.

  2. The comment that includes this delicious excerpt couldn’t be a better illustration of the en#$%ification of the Internet by the current generation of technolibertarian boobs that think every thought and molecule in the universe can only be managed with 19th century property rights.

  3. What a “lovely” way to thank someone who maintains one of the foundations of the world’s tech ?
    Ah, the wonders of open source…

  4. > I would personally perhaps protest against the use of PUT for POSTing JSON, but nobody asked me.

    I have seen POST requests to make a GET request… And the worst, I have to adapt to that use case without chance of fix it ?.

      1. While not typical, this is now ‘not against standard’. https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.1. Web logging applications will typically record the web request including the query string but not the body. For our SPA app, the request contained PII data which couldn’t be logged. Server/network caching was not a concern (individualized data cached in browser by SPA). We ended up with a different solution but considered GET with a body.

        1. @Dave: agreed. RFC 9110 however tightened the language somewhat and says ” A client SHOULD NOT generate content in a GET request unless it is made directly to an origin server that has previously indicated, in or out of band, that such a request has a purpose and will be adequately supported”

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.