News for hackers. Stuff that matters.

AndrewHampton

Re:Ask HN: Alternatives to GitHub on Monday August 17, 2026 @02:35PM (#49335617)
I love jj and am a fan of the ideas of AT protocol, so tangled has been on my radar for a while. Last I checked though, it sounded like it was much better suited for open source code, not private repositories. Is that still the case?
Re:Many SWE-bench-Passing PRs would not be merged on Wednesday March 11, 2026 @07:53PM (#47344261)
This seems like an important caveat to the SWE-bench, but the trend is still clearly AI becoming more and more capable.
Re:Web Components: The Framework-Free Renaissance on Friday February 20, 2026 @12:53PM (#47091346)
I love web components. The one thing I really wish browsers supported though was a per-site custom element registry that persisted across page loads.

Give me 10mb and an API like service workers have to manage a library of custom elements that can be used on my site as soon as the page loads.

Re:Ruby Prism Skill – CLI skill for understanding Ruby files on Tuesday February 10, 2026 @08:09AM (#46959241)
We've been experimenting with various skills and MCPs in our day-to-day Ruby development at Poll Everywhere. This is the internal skill that's been most useful for preserving the context window while letting agents explore Ruby code.

It's a CLI wrapper around Ruby's Prism gem that lets the agent do this:

  $ prism -o app/models/user.rb

  User < ApplicationRecord [1-75]
    includes Agreeable
    includes Auditable
    has_many :polls
    has_many :questions, through: :polls
    has_many :votes
    has_many :reports, dependent: :destroy
    #audit_create [41-43]
    #allowed_to_participate_in?(poll) [45-66]
    #restricted_from_participation_in?(poll) [68-70]
    #recently_created? [72-74]

  $ prism -m 'recently_created?' app/models/user.rb

  === METHOD: recently_created? ===
  Lines 72-74:
    def recently_created?
      created_at.after?(5.minutes.ago)
    end
The idea is to give the agent a token-efficient way to understand what's going on in Ruby code.
Re:Ian's Shoelace Site on Monday February 02, 2026 @07:52AM (#46855443)
Back in 2004, while bored in my college dorm, I learned the Ian Knot from this site. I've used it ever since. A few weeks ago, my 10 year old decided it was time to learn how to tie his shoes "dad's way". I was pleasantly surprised to see the site was still up, so I used it to help teach him how to do it.
Re:Jujutsu for Everyone on Sunday August 31, 2025 @01:24PM (#45084985)
Is `jj split` a good option?
Re:Terence Tao's NSF grants suspended on Friday August 01, 2025 @08:21AM (#44755724)
Tangle has a great breakdown of what this means in their article yesterday: https://www.readtangle.com/emil-bove-trump-lawyer-federal-ju...

Turns out, it's complicated.

Re:The Physicians Are Healing Themselves, with Ozempic on Monday February 10, 2025 @12:32PM (#43002827)
Part of me wonders if I should be on ozempic since I have a family history of several of the issues it's reported to help with.

Another part of me wonders if all the ozempic headlines I've seen over the past few months are just an incredibly effective and well orchestrated ad campaign.

Re:Cosmos Keyboard: Custom-Build a Keyboard Fit to You on Tuesday January 14, 2025 @04:12PM (#42703940)
I used this to build my current keyboard a few months ago. It was my first hand-wired keyboard, and this made it much more approachable. Thanks for creating it!
Re:Triptych Proposals on Monday January 06, 2025 @04:46PM (#42616301)
What HTTP method would you expect the second example to use? `GET /users/delete?id=354`?

The first has the advantage of being a little clearer at the HTTP level with `DELETE /users/354`.

Re:Git-absorb: Git commit –fixup, but automatic on Thursday September 26, 2024 @10:13AM (#41658649)
Yeah, I use about a dozen git aliases in my normal workflow. In case it's helpful, here are the relevant ones for this flow:

  alias git_main_branch='git rev-parse --abbrev-ref origin/HEAD | cut -d/ -f2'
  alias gapa='git add --patch'
  alias grbm='git rebase -i --autosquash $(git_main_branch)'
  alias gfx='git commit --fixup $(git log $(git_main_branch)..HEAD --oneline| fzf| cut -d" " -f1)'
Another favorite is:

  alias gmru="git for-each-ref --sort=-committerdate --count=50 refs/heads/ --format='%(HEAD) %(refname:short) | %(committerdate:relative) | %(contents:subject)'| fzf | sed -e 's/^[^[[:alnum:]]]*[[:space:]]*//' | cut -d' ' -f1| xargs -I _ git checkout _"
gmru (git most recently used) will show you the branches you've been working on recently and let you use fzf to select one to check out.
Re:Git-absorb: Git commit –fixup, but automatic on Thursday September 26, 2024 @07:38AM (#41657176)
This was 100% my inspiration. I used emacs+magit for years. After switching away from emacs for dev work, I still cracked it open for git interactions for another year or so. Eventually, I moved entirely to the shell with a bunch of aliases to replicate my magit workflow.
Re:Git-absorb: Git commit –fixup, but automatic on Thursday September 26, 2024 @07:30AM (#41657120)
Yeah, it's definitely less powerful that what absorb is doing. I wasn't trying to argue that it was equivalent. I just wanted to share a bash one-liner that I've had success with in case others find it helpful.

> What if I want some parts of it into one commit and another parts into another?

Looks like absorb will automatically break out every hunk into a separate fixup commit. My one-liner will create 1 fixup commit for everything that's staged. That's typically what I need, but on the occasions it's not, I use `git add -p`, as kadoban mentioned, to stage exactly what I want for each commit.

Re:Git-absorb: Git commit –fixup, but automatic on Wednesday September 25, 2024 @08:50PM (#41653389)
FWIW, I've been using this alias for the past couple years for fixup commits, and I've been happy with it:

> gfx='git commit --fixup $(git log $(git merge-base main HEAD)..HEAD --oneline| fzf| cut -d" " -f1)'

It shows you the commits on the current branch and lets you select one via fzf. It then creates the fixup commit based on the commit you selected.

A similar program exists for 4 towns in West Virginia: https://ascendwv.com
Re:Distributed Authorization on Tuesday April 16, 2024 @04:48PM (#40056996)
> A team I worked with in the past came to the same conclusion - turning authorization rules into WHERE clauses is a very efficient way to solve this problem, if you can figure out a clean way to do it.

For rails specifically, https://github.com/polleverywhere/moat was built with this in mind. It's heavily inspired by Pundit, but let's you write policies at the `ActiveRecord::Relation` level. So `policy_filter(Article).find_by!(id: params[:id])` would run something like `select * from articles where id = ? and id in (select id from articles where owner_id = ?);`.

Re:Htmx and Web Components: A Perfect Match on Thursday January 18, 2024 @08:17AM (#39041297)
Another option would be for the B to dispatch a `CustomEvent` on itself. That event will bubble up the DOM until it hits A. A would then need an event listener that would probably stop propagation and do whatever bookkeeping is necessary.
Re:Kitty – A fast, featureful, GPU based terminal emulator on Wednesday September 30, 2020 @08:49PM (#24645993)
Thanks for the correction, good to know.
Re:Kitty – A fast, featureful, GPU based terminal emulator on Wednesday September 30, 2020 @07:32PM (#24645363)
This Kitty terminal isn't new. Going by the history on GitHub, this terminal predates the one you linked by a couple years.
Re:GitHub isn't fun anymore on Wednesday June 17, 2020 @09:01AM (#23550827)
I never used the old trending page, but it sounds like the Changelog Nightly newsletter [1] is basically the same thing. It goes out every day at 9PM Pacific. It has 3 sections:

- most starred repositories that haven't been in the newsletter before

- most starred repositories that were created that day

- most starred repositories

1: https://changelog.com/nightly

Poll Everywhere (YC S08) has Q&A question support with voting. I'm a developer at Poll Everywhere and we use it during our weekly townhalls. Our company was 40% remote before the coronavirus crisis, and my experience with the Q&A poll as a remote worker has been great.
Oh, we do. We are generally pretty great at filling in good details in the body. I didn't mention that originally because I didn't think it was noteworthy.

The main problem is very commit titles that end up looking like:

  feat(SomeScope.OtherScope.Class): add support for abc and xyz option
We've been following conventional commits for our front end code for the last year or so at my work. In other repositories, we've loosely followed the keep a change log conventions. I find conventional commits great when your repository will produce a package to be consumed by others. For example, conventional commits for our shared JS code helps us produce great change logs and helps us easily follow semver for the NPM packages our other applications use.

However, I don't find it that useful in the the final applications, even counter productive, since it typically will take up quite a bit of space in the commit title. Many of our front end devs completely ignore title length conventions now.

Re:Ugly Gerry – Font created from congressional districts on Thursday August 01, 2019 @12:27PM (#20585399)
FiveThirtyEight did a great podcast series on gerrymandering in 2017 [1]. It turns out to be a much more complicated topic than I expected. Some gerrymandering is even legally required to ensure proper representation of minority groups even if they live in somewhat distributed communities.

1: https://fivethirtyeight.com/tag/gerrymandering-podcast/

Although I believe it was a good idea to remove them, I miss the vote score shown on comments. I had a script that would highlight the top comments. This would frequently reveal insightful comments 2 or 3 levels deep in a random thread I would have otherwise missed.
Re:Github restricts public Faceswap repo to logged-in users on Sunday February 17, 2019 @11:56AM (#19185377)
> We will take a zero tolerance approach to anyone using this software for any unethical purposes and will actively discourage any such uses.

Why not change the license to enforce the use restictions?

In case you're interested, Steve Yegge had a recent post about the origin of the marketplace: https://medium.com/s/story/jeff-bezos-jack-ma-and-the-quest-...

Older »