HNHacker News
TopNewBestAskShowJobs

syhol

160 karma · joined September 25, 2019

submissionscomments
syhol··on Flix – A powerful effect-oriented programming language
Very similar to the koka language. I hope these effect systems become mainstream.
syhol··on Tools I love: mise(-en-place)
Good: `mise prune --yes`

Mise tracks config files to make sure it doesn't delete used versions: `mise config ls --tracked-configs`

syhol··on The Offline Club
I got excited when I saw the title, thinking it was local-first software advocacy. But I guess if local-first software advocacy gets me excited, then maybe I should turn off the screen and touch some grass.
syhol··on Fun with uv and PEP 723
Mise has a very similar feature with its shebangs: https://mise.jdx.dev/tips-and-tricks.html#shebang

    #!/usr/bin/env -S mise x xh jq fzf gum -- bash
    todo=$(xh 'https://jsonplaceholder.typicode.com/todos' | jq '.[].title' | fzf)
    gum style --border double --padding 1 "$todo"
It makes throwing together a bash scripts with dependencies very enjoyable
syhol··on Containerization is a Swift package for running Linux containers on macOS
Many OS's have their own (sometimes multiple) container technologies, but the ecosystem and zeitgeist revolves around OCI Linux containers.

So it's more cultural than technical. I believe you can run OCI Windows containers on Windows with no VM, although I haven't tried this myself.

syhol··on Oldest Chromium issue fixed after 17 years
"Don't retract bookmark sub-menus after drag and drop" - The 17 year old issue (2008) was locked for comments recently, so I don't have any other way to celebrate. I've been subscribed to this issue for over half of my life. I can't say I really care about it anymore, but it feels momentous enough to warrant sharing.
syhol··on Show HN: "Git who" – A new CLI tool for industrial-scale Git blaming
I've been using `git summary` from tj/git-extras for a while. It seems to do a similar job.
syhol··on Fish 4.0: The Fish of Theseus
The two most popular zsh plugins are total clones of this at 31k and 20k gh stars respectively. Not an award but certainly an indication of its success.
syhol··on Mise: Dev tools, env vars, task runner
> that uses a tool that is not yet in mise registry

Yes, you can directly get tools from npm/pypi/cargo/github-releases/asdf-plugins/vfox-plugins without anyone touching the mise registry. The registry is just a convenient index of short names e.g. "fzf@0.56.3" maps to ubi:junegunn/fzf@0.56.3 which will download the appropriate arch binary from the v0.56.3 junegunn/fzf GitHub release.

> if I want to provide a python runtime that is compiled slightly differently

The default uses precompiled binaries, but with one setting it can use python-build/pyenv under the hood, then all the pyenv env vars can be used to configure the build process.

syhol··on Mise: Dev tools, env vars, task runner
I feel like nix has been thoroughly discussed in this post already, so you're not the only guy.

> You don't need to mess around with shell hacks

Shell integration is optional, you can use `mise en` just like `nix-shell` or `nix develop`. You could also just invoke commands/scripts through mise tasks or mise exec.

> based on a string in one of several dozen dotfiles

The "Idiomatic" files like .nvmrc, .python-version, etc are supported but most people just use a mise.toml, which (a bit like flake files) contains all the config for the environment.

> but when tools are published through NPM or RubyGems or Crates or just on github that you have to run `go install` to get, then it's a bit of faff

And this is what mise excels at: `mise use npm:cowsay` or `mise use ubi:junegunn/fzf`

I think Nix/Guix are great, but also terrible. For me today, it's not worth the pain.

syhol··on Mise: Dev tools, env vars, task runner
Definitely, the CLI is more intuitive, and using paths instead of shims makes it faster and more reliable.
syhol··on Mise: Dev tools, env vars, task runner
`mise use uv`, there, I fixed it for you.

Mise actually has a great integration with uv, like auto venv activation.

syhol··on Mise: Dev tools, env vars, task runner
I like Devbox and I'm familiar with its features so I'll just mention the extras the mise has.

The ubi backend means I can use nearly any binary published on GitHub without needing to worry about a flake or nixpkgs. Just get the binary directly from the author. Same for many of the other backends https://mise.jdx.dev/dev-tools/backends/.

Tasks are very powerful, they can use dependencies, flags, args, completions, and watches. Also can be defined either as strings in the config or point to shell scripts or even python/node/whatever scripts.

The shebang trick is very fun for writing portable shell scripts https://mise.jdx.dev/tips-and-tricks.html#shebang

The fact that mise doesn't depend on nix is both a blessing and a curse. I have less tools available and I don't have the power of a package manager, but on the flip side I don't need to deal with the idiosyncrasies of nix.

syhol··on Mise: Dev tools, env vars, task runner
All the features are opt-in. I started using mise because I wanted something like asdf only without the bad UX, and mise can use asdf plugins.

For env vars, you don't need to load them into your shell if you don't want to. When you run a task, mise will make sure the env vars in your config are set, so thats not something you need to worry about.

I still use shell scripts like you describe, mise just supercharges them a bit. When I need to make sure my teammates have the tools in that script (like jq) installed, mise just ensure they are installed before running the command, as long as you declare them in your tools list.

If your setup works for you thats great.

syhol··on Mise: Dev tools, env vars, task runner
I briefly tried devenv and I find it much easier to use than raw nix, but I also had issues with my nix install on macos (using both the official and the DS installer). It worked well on my linux machine.

Today though mise has so many other great features, I would still choose it over devenv or devbox.

syhol··on Mise: Dev tools, env vars, task runner
I'm using it to unify my teams toolchain without resorting to nix or running everything in docker.

I still use docker to run services and I still like the idea of nix, but the DX of mise is too good. Tasks are really nice too, all my repo scripts now have completions.

syhol··on HonoJS: Small, simple, and ultrafast web framework for the Edges
Sounds like the Backends For Frontends pattern. Sam Newman has a nice write-up on this.
syhol··on Passkeys – Under the Hood
Yes, my bad.
syhol··on Passkeys – Under the Hood
> And if you then get rid of passwords, you are down to one factor

I agree this is a bit of a shame. I'm hoping platforms support using passkeys with other factors.

> You had better not lose your phone

You can sync passkeys between devices and backup to a cloud.

> big companies can't agree with each other on how to do this

This was the case 18 months ago, I'm not so sure it is anymore. On my Google account I can setup a passkey passwordless login with a 3rd party password manager. I can do the exact same thing with my Microsoft account. There are still rough edges, for example to setup the passkey on MS I had to select the method "Use your Windows PC" but it all works.

syhol··on Passkeys – Under the Hood
Not sure it's that hard to explain the basics. Passkeys are like very big passwords that password manages store for you, only with extra features. I don't think you need to touch on the public key encryption side of it.

Big Tech don't insist on their solutions, they just default to it which I think is fair.

Also WebAuthN is passkeys from what I understand. Not a previous effort.

syhol··on Passkeys – Under the Hood
My passkeys are kept in my password manager. Many support them now: 1Password, Keeper, Dashlane, BitWarden, and I know KeePassX is working on support.

Sure it's not as secure as a hardware token but it's a nice sweet spot between convenience and security.

However I wish more platforms let me use TOTP and passkeys together for MFA. That way I don't need to put all my trust in a single password manager company. 2FAS with it's browser plugin gives a really slick experience and it backups to Google/Apple storage with a separate password to encrypt your OTP secret keys.

syhol··on Maybe Functions
Just an essay, Nothing else
syhol··on NHS England gives key role in handling patient data to US spy tech firm Palantir
Good luck getting any talking therapy through the NHS. From what I understand it's not an area they invest in.
← PreviousPage 2 of 2