News for hackers. Stuff that matters.

jez

Re:Find the flattest route between any two points in SF on Monday October 05, 2026 @07:36PM (#49972225)
It would be neat if it there were an option which added distance and elevation gain, but minimized the grade.

For example, a route from SOMA to Nob Hill can be made flatter by approaching from either the east or west. Technically the "flattest" as measured by elevation gain between the two is straight up Taylor from Market, but it's much nicer to bike to the top of Nob Hill by going out of the way (e.g. Polk → California, Embarcadero → Broadway, etc.)

Re:Slack Code on Thursday August 20, 2026 @11:01AM (#49375630)
Somehow I was hopeful that this would be an announcement about adding syntax highlighted code blocks to Slack messages.
Re:Splitting a Git Commit on Tuesday August 18, 2026 @04:02PM (#49351829)
This is a relatively recent feature. I was first introduced to it in GitHub's release notes for Git 2.54:

https://github.blog/open-source/git/highlights-from-git-2-54...

And discussion at the time:

https://news.ycombinator.com/item?id=47837698

Re:qm on Friday July 31, 2026 @02:51PM (#49127176)
SQLite has a conceptually similar contribution process:

> the project does not accept patches from random people on the internet

https://sqlite.org/copyright.html

In their case, it's motivated by a desire to keep copyrighted code out of the SQLite implementation, but I'm sure it has a nice benefit of making it so that an extremely widely used project doesn't get drive by, low effort code review requests while still allowing the community to engage.

Asking that "random people on the internet" don't sent code is not altogether a novel, post-AI idea.

Re:Commenting and Approving Pull Requests on Saturday April 25, 2026 @11:11AM (#47902091)
> Additionally, some repos can be configured to automatically merge PRs when all requirements are met, one of which might be your approval.

If anyone at GitHub is reading this, I’d love a fourth checkbox in the “leave a review” modal that is “Approve but disable auto merge” (alongside Comment/Approve/Request changes)! Even just surfacing “this PR has auto merge enabled” near the Approve button would be great.

Re:MacBook Neo and How the iPad Should Be on Saturday April 25, 2026 @03:24AM (#47899453)
I want the same mode, but on iOS! Imagine carrying nothing but the phone in your pocket, sitting down at your desk, plugging your phone into the monitor, which has your keyboard and mouse docked, and you have a full development environment.
Even in Vim, the editing experience falls over when making markdown tables that have non-trivial content in their cells (multiple paragraphs, a code block, etc.). I recently learned that reStructuredText supports something called "list tables":

https://docutils.sourceforge.io/docs/ref/rst/directives.html...

Where a table is specified as a depth-2 list and then post processed into a table. Lists support the full range of block elements already: you can have multiple paragraphs, code blocks, more lists, etc. inside a list item.

This syntax inspired the author of Markdoc[1] (who came from an rST background) to support tables using `<hr>`-separated lists[2] instead of nested lists (to provide more visual separation between rows).

I have found various implementations of list table filters for Pandoc markdown[3][4], but have never gotten around to using any of them (and I've tossed around ideas of implementing my own).

[1] https://markdoc.dev

[2] https://markdoc.dev/docs/tags#table

[3] https://github.com/pandoc-ext/list-table

[4] https://github.com/bpj/pandoc-list-table

Re:DaVinci Resolve releases Photo Editor on Tuesday April 14, 2026 @12:25AM (#47761231)
What is your Linux photo editing software of choice?
Re:Making Firefox's right-click not suck with about:config on Wednesday March 04, 2026 @03:39PM (#47253463)
Still the only thing I miss about the Firefox right-click context menu coming from Chrome is that Firefox doesn't have a "Look up '<selection>'" in the menu on macOS, to look up in the macOS dictionary, for looking up words I don't know.

https://bugzilla.mozilla.org/show_bug.cgi?id=1116391

A more complicated version of this problem exists in TypeScript and Ruby, where there are only arrays. Python’s case is considerably simpler by also having tuples, whose length is fixed at the time of assignment.

In Python, `x = []` should always have a `list[…]` type inferred. In TypeScript and Ruby, the inferred type needs to account for the fact that `x` is valid to pass to a function which takes the empty tuple (empty array literal type) as well as a function that takes an array. So the Python strategy #1 in the article of defaulting to `list[Any]` does not work because it rejects passing `[]` to a function declared as taking `[]`.

Re:What does " 2>&1 " mean? on Thursday February 26, 2026 @08:37PM (#47175188)
I have used this in the past when building shell scripts and Makefiles to orchestrate an existing build system:

https://github.com/jez/symbol/blob/master/scaffold/symbol#L1...

The existing build system I did not have control over, and would produce output on stdout/stderr. I wanted my build scripts to be able to only show the output from the build system if building failed (and there might have been multiple build system invocations leading to that failure). I also wanted the second level to be able to log progress messages that were shown to the user immediately on stdout.

    Level 1: create fd=3, capture fd 1/2 (done in one place at the top-level)
    Level 2: log progress messages to fd=3 so the user knows what's happening
    Level 3: original build system, will log to fd 1/2, but will be captured
It was janky and it's not a project I have a need for anymore, but it was technically a real world use case.
Re:What does " 2>&1 " mean? on Thursday February 26, 2026 @07:00PM (#47174198)
Another fun consequence of this is that you can initialize otherwise-unset file descriptors this way:

    $ cat foo.sh
    #!/usr/bin/env bash

    >&1 echo "will print on stdout"
    >&2 echo "will print on stderr"
    >&3 echo "will print on fd 3"

    $ ./foo.sh 3>&1 1>/dev/null 2>/dev/null
    will print on fd 3
It's a trick you can use if you've got a super chatty script or set of scripts, you want to silence or slurp up all of their output, but you still want to allow some mechanism for printing directly to the terminal.

The danger is that if you don't open it before running the script, you'll get an error:

    $ ./foo.sh
    will print on stdout
    will print on stderr
    ./foo.sh: line 5: 3: Bad file descriptor
Re:Stripe valued at $159B, 2025 annual letter on Tuesday February 24, 2026 @01:24PM (#47140671)
For comparison, Visa's stated FY 2025 (ended Sep 30, 2025) payments volume was $14.2T.

rough math, but:

$14.2T / $1.9T * 1.6% = 12% global GDP

Re:Stripe valued at $159B, 2025 annual letter on Tuesday February 24, 2026 @01:09PM (#47140444)
Paypal TPV YoY growth for 2025 was 7%[1].

Stripe cites 34% growth for the same period and metric.

[1]: https://s205.q4cdn.com/875401827/files/doc_financials/2025/q...

Re:Stripe valued at $159B, 2025 annual letter on Tuesday February 24, 2026 @12:00PM (#47139461)
The tender offer announced in the article is open to former employees as well, so they personally profit regardless of Stripe being public (unless the claim is that by being public the valuation would be materially higher than the stated valuation for this offer).
Re:We installed a single turnstile to feel secure on Tuesday February 24, 2026 @11:49AM (#47139326)
As others have mentioned, it comes down to the threat model, but sometimes the threat model itself is uncomfortable to talk about.

It’s sad to think about, but in my recollection a lot of intra-building badge readers went up in response to the 2018 active shooter situation at the YouTube HQ[1]. In cases like this, the threat model is “confine a hostile person to a specific part of the building once they’ve gotten in while law enforcement arrives,” less than preventing someone from coat tailing their way into the building at all.

[1] https://news.ycombinator.com/item?id=16748529

Re:Four Column ASCII (2017) on Tuesday February 17, 2026 @12:43PM (#47050409)
I have a command called `ascii-4col.txt` in my personal `bin/` folder that prints this out:

https://github.com/jez/bin/blob/master/ascii-4col.txt

It's neat because it's the only command I have that uses `tail` for the shebang line.

Re:I set all 376 Vim options and I'm still a fool on Tuesday January 20, 2026 @09:53AM (#46692387)
On a US keyboard layout this is the same number of keys because { and } are Shift+[ and Shift+]
Re:Test Your Square Brackets on Thursday January 15, 2026 @11:52AM (#46635387)
Something I never understood about this: is the pipe necessary, or just to have another symbol contributing to the mayhem?

    :(){:&;:};:
This is the same number of characters but doesn’t use a pipe, and I was never able to figure out why it seems so universally to use a pipe.
Re:Chase to become new issuer of Apple Card on Wednesday January 07, 2026 @08:51PM (#46536093)
Far be it from me to get in the way of someone protesting megabank centralization, but...

I have to imagine that this bank relationship will be different from those previous acquisitions? I never interacted with Goldman Sachs for the duration I've had my Apple Card—the relationship is entirely with Apple and their iOS app. I don't imagine that to be much different when Chase is the issuer.

Re:Chase to become new issuer of Apple Card on Wednesday January 07, 2026 @08:48PM (#46536068)
Does that mean that this new partnership will be better because Chase is better at consumer banking than Goldman Sachs, or Chase negotiated a deal that will not cause them to lose a lot of money?

If it's the latter, does that mean that the card rewards for Apple Card will get worse?

Older »