HNHacker News
TopNewBestAskShowJobs

twp

974 karma · joined October 25, 2008

https://chezmoi.io https://github.com/twpayne
submissionscomments
twp··on If you don't have the factories, you lose the expertise
This reads like it was written by an LLM.
twp··on The exponential curve behind open source backlogs
AI reviews are flaky - maybe correct 80% of the time - and everyone hates flakiness.

AI code reviews easily double the work in reviewing: you have to both review the original code and the AI code review. The AI code review can be 80% correct, but you never know which 80% is correct and which 20% is garbage, so you have to review all the AI's comments.

twp··on Show HN: Shittp – Volatile Dotfiles over SSH
chezmoi has similar functionality, but it does install a binary on the target machine:

https://www.chezmoi.io/reference/commands/ssh/

twp··on AI documentation you can talk to, for every repo
deepwiki.com is untrustworthy AI slop. A true cancer.

deepwiki.com's generated page on my project contains several glaring errors. I hate to think of the extra support burden I will have to bear because of deepwiki.com publishing wrong information.

I asked the authors of the site (Andrew Gao) to remove their page on my project, but they ignored my request.

twp··on Kirigami-inspired parachute falls on target
This is really cool and innovative thinking, but anything aerodynamic does not scale linearly. It's really easy to make something light fall slowly. Baby spiders use "ballooning" -- a single thread -- to fall so slowly that they can travel far in thermal updrafts.

What's missing here is any evidence that the same cool parachutes will work on anything of significant mass, e.g. a parcel weighing 2kg or an average human weighing 80kg.

twp··on GitHub replaces dashbord feed with AI shit?
Ah! Thank you! How can I update the story URL to point to GitHub's new dashboard feed?
twp··on GitHub replaces dashbord feed with AI shit?
Original URL was https://github.com/dashboard-feed.

Presumably some HN mod changed the URL to point to something different?

twp··on Just use `git` to manage your dotfiles
> I know my way around emacs. vimdiff is a foreign country.

You don't have to use vimdiff. You can use any merge tool you want. See https://www.chezmoi.io/user-guide/tools/merge/.

> Often my changes are speculative or experimental. So I checkout, edit, apply and only then discover I’ve messed up. Or I can edit in place. Voila vimdiff!

> What’s the better way?

There are lots of options. See https://www.chezmoi.io/user-guide/frequently-asked-questions....

Personally, I tend to use `chezmoi edit` and then use git in my source directory to `git add -p . && git commit` the changes I want to keep and `git checkout` to discard the changes I don't want.

twp··on Dotfiles feel too personal to share
Please can you open an issue or discussion for these questions on https://github.com/twpayne/chezmoi - this way more people will both be able to help and more people will see the answer.
twp··on Dotfiles feel too personal to share
chezmoi includes secret scanning from https://gitleaks.io/ by default to catch when you accidentally add a file with a secret in it. To be even more confident, you should add gitleaks as a git hook to your repo however.
twp··on Dotfiles feel too personal to share
https://www.chezmoi.io/reference/commands/merge-all/ might help you here - it opens your preferred merge tool for the dotfiles that have drifted.
twp··on Dotfiles feel too personal to share
It's not a question of share everything or share nothing - with https://chezmoi.io you can choose exactly what you want to share:

* You can keep your entire dotfile repo secret by using any private git hosting, including your own git hosting or a private GitHub repo.

* You can keep individual files secret by using age or gpg encryption. If you repo is public, this only reveals the existence of the file, not its contents.

* You can keep individual parts of your dotfiles secrets, e.g. API keys, by encrypting them or storing them in your password manager. All popular password managers are supported.

Disclaimer: I'm the author of chezmoi.

twp··on The Night Watch (2013) [pdf]
This is, without doubt, the greatest sequence of words on programming ever committed to magnetic storage.
twp··on Help Me Help You, Maintainers
As the maintainer of several popular open source projects (e.g. https://chezmoi.io), the forms of help I appreciate the most are:

* User support. Answering questions in discussions, social media, and GitHub issues. This helps on multiple levels: it saves me time that I would otherwise have to spend, and builds a community around the project.

* Documentation improvements. Better documentation means less user support work and helps everybody.

* Issue reports with a clear, minimal, way to reproduce the problem.

* Pull requests that follow the contributing guidelines of the project. This means that they follow the project's conventions, include tests, don't break any existing tests, and so on.

I don't write open source software to make money. I write open source software because I enjoy building high-quality software and I get a buzz from helping people.

twp··on The Chromecast 2's device authentication certificate has expired
Google are aware of the problem and are working on a fix: https://www.reddit.com/r/Chromecast/comments/1j7caui/comment...

Still very annoying.

twp··on Hyperspace
CLI tool to find duplicate files unbelievably quickly:

https://github.com/twpayne/find-duplicates

twp··on Ask HN: What's the best implementation of Conway's Game of Life?
Game of life implemented as sets in Clojure:

(defn neighbors [[x y]] #{[(dec x) (dec y)] [(dec x) y] [(dec x) (inc y)] [ x (dec y)] [ x (inc y)] [(inc x) (dec y)] [(inc x) y] [(inc x) (inc y)]})

(defn count-neighbors [world cell] (count (set/intersection (neighbors cell) world)))

(def rules #{[true 2] [true 3] [false 3]})

(defn live [world cell] (contains? rules [(contains? world cell) (count-neighbors world cell)]))

(defn evolve [world] (into #{} (filter #(live world %) (reduce set/union (map neighbors world)))))

Full source: https://github.com/twpayne/life/blob/master/clojure/src/life...

twp··on Google preps 'Jarvis' AI agent that works in Chrome
How can I stop this bullshit from ever affecting my life?
twp··on Ask HN: Good Sites for/with AI Enthusiasts?
Keep a broad perspective: https://pivot-to-ai.com/
twp··on Better Dotfiles
In my case, I have things like Github Personal Access Tokens stored in my password manager and then use chezmoi's templates to populate them in my dotfiles, for example:

https://github.com/twpayne/dotfiles/blob/master/home/dot_zsh...

This means that: 1. My secrets are safely stored in my password manager so I can share my dotfiles. 2. When I update the secret in my password manager it automatically gets updated in my dotfiles when I run `chezmoi apply`.

twp··on Better Dotfiles
stow's approach of using symlinks is extremely limiting. For example, it means you can't have templates (for small machine-to-machine differences and secrets) or encrypted files. chezmoi does have a symlink mode, like stow, but using symlinks has multiple downsides: https://www.chezmoi.io/user-guide/frequently-asked-questions...

chezmoi was actually inspired by Puppet, not stow.

Source: me, I'm the author of chezmoi.

twp··on Better Dotfiles
How do you handle differences between machines? How do you handle secrets? How do you run scripts?
twp··on Better Dotfiles
Unfortunately there's no other way of doing this, except for adding a shell alias. See https://www.chezmoi.io/user-guide/frequently-asked-questions....
twp··on Ask HN: Developer PC setup automations for company owned devices
Some teams are using https://chezmoi.io to set up and maintain their developer's machines. It runs on Linux, macOS, and Windows.

https://install.doctor/ is a higher level option which uses chezmoi.

twp··on The 4-chan Go programmer
Sending channels over channels (i.e. chan chan) is a common pattern for publish-subscribe systems, e.g.

https://github.com/twpayne/go-pubsub/blob/master/pubsub.go

twp··on Leaving Neovim for Zed
Yes, vscode-neovim makes VSCode's editor be Neovim. It works very well with other VSCode extensions. For example, you can type `gd` to go to the definition of a C++ identifier.
twp··on Leaving Neovim for Zed
If you want true Neovim in VSCode check out

  https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim
You get a real, actual VIM (no half-assed bindings), and all the bells and whistles that come with VSCode.
twp··on Troubled Amazon drone delivery program faces latest challenge: Annoyed residents
Little-known fact about current drone deliveries: you can only deliver to people with a garden. People with gardens are a very small percentage of the population.

Until Amazon (or others) can solve delivering to a balcony or a letterbox, they'll not be able to deliver to high-density population areas.

twp··on Magic Wormhole: get things from one computer to another, safely
Seconded, magic-wormhole is fantastic and has "just worked" for me several times. Thank you for all your work in creating this brilliant software!
twp··on GitHub was down
https://www.githubstatus.com/ reports no problems, but it's clearly down for a lot of people (including me).
Page 1 of 7Next →