frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Bringing Polars to .NET

https://github.com/ErrorLSC/Polars.NET
1•CurtHagenlocher•1m ago•0 comments

Adventures in Guix Packaging

https://nemin.hu/guix-packaging.html
1•todsacerdoti•2m ago•0 comments

Show HN: We had 20 Claude terminals open, so we built Orcha

1•buildingwdavid•2m ago•0 comments

Your Best Thinking Is Wasted on the Wrong Decisions

https://www.iankduncan.com/engineering/2026-02-07-your-best-thinking-is-wasted-on-the-wrong-decis...
1•iand675•2m ago•0 comments

Warcraftcn/UI – UI component library inspired by classic Warcraft III aesthetics

https://www.warcraftcn.com/
1•vyrotek•4m ago•0 comments

Trump Vodka Becomes Available for Pre-Orders

https://www.forbes.com/sites/kirkogunrinde/2025/12/01/trump-vodka-becomes-available-for-pre-order...
1•stopbulying•5m ago•0 comments

Velocity of Money

https://en.wikipedia.org/wiki/Velocity_of_money
1•gurjeet•7m ago•0 comments

Stop building automations. Start running your business

https://www.fluxtopus.com/automate-your-business
1•valboa•12m ago•1 comments

You can't QA your way to the frontier

https://www.scorecard.io/blog/you-cant-qa-your-way-to-the-frontier
1•gk1•13m ago•0 comments

Show HN: PalettePoint – AI color palette generator from text or images

https://palettepoint.com
1•latentio•14m ago•0 comments

Robust and Interactable World Models in Computer Vision [video]

https://www.youtube.com/watch?v=9B4kkaGOozA
2•Anon84•17m ago•0 comments

Nestlé couldn't crack Japan's coffee market.Then they hired a child psychologist

https://twitter.com/BigBrainMkting/status/2019792335509541220
1•rmason•19m ago•0 comments

Notes for February 2-7

https://taoofmac.com/space/notes/2026/02/07/2000
2•rcarmo•20m ago•0 comments

Study confirms experience beats youthful enthusiasm

https://www.theregister.com/2026/02/07/boomers_vs_zoomers_workplace/
2•Willingham•27m ago•0 comments

The Big Hunger by Walter J Miller, Jr. (1952)

https://lauriepenny.substack.com/p/the-big-hunger
2•shervinafshar•28m ago•0 comments

The Genus Amanita

https://www.mushroomexpert.com/amanita.html
1•rolph•33m ago•0 comments

We have broken SHA-1 in practice

https://shattered.io/
9•mooreds•34m ago•2 comments

Ask HN: Was my first management job bad, or is this what management is like?

1•Buttons840•35m ago•0 comments

Ask HN: How to Reduce Time Spent Crimping?

2•pinkmuffinere•36m ago•0 comments

KV Cache Transform Coding for Compact Storage in LLM Inference

https://arxiv.org/abs/2511.01815
1•walterbell•41m ago•0 comments

A quantitative, multimodal wearable bioelectronic device for stress assessment

https://www.nature.com/articles/s41467-025-67747-9
1•PaulHoule•43m ago•0 comments

Why Big Tech Is Throwing Cash into India in Quest for AI Supremacy

https://www.wsj.com/world/india/why-big-tech-is-throwing-cash-into-india-in-quest-for-ai-supremac...
2•saikatsg•43m ago•0 comments

How to shoot yourself in the foot – 2026 edition

https://github.com/aweussom/HowToShootYourselfInTheFoot
2•aweussom•43m ago•0 comments

Eight More Months of Agents

https://crawshaw.io/blog/eight-more-months-of-agents
4•archb•45m ago•0 comments

From Human Thought to Machine Coordination

https://www.psychologytoday.com/us/blog/the-digital-self/202602/from-human-thought-to-machine-coo...
1•walterbell•46m ago•0 comments

The new X API pricing must be a joke

https://developer.x.com/
1•danver0•46m ago•0 comments

Show HN: RMA Dashboard fast SAST results for monorepos (SARIF and triage)

https://rma-dashboard.bukhari-kibuka7.workers.dev/
1•bumahkib7•47m ago•0 comments

Show HN: Source code graphRAG for Java/Kotlin development based on jQAssistant

https://github.com/2015xli/jqassistant-graph-rag
1•artigent•52m ago•0 comments

Python Only Has One Real Competitor

https://mccue.dev/pages/2-6-26-python-competitor
4•dragandj•53m ago•0 comments

Tmux to Zellij (and Back)

https://www.mauriciopoppe.com/notes/tmux-to-zellij/
1•maurizzzio•54m ago•1 comments
Open in hackernews

Show HN: Infat – Declaritive application assocation manager for macOS

https://github.com/philocalyst/infat
94•philocalyst•9mo ago
Bello! Made this to help navigate the tumultuous process of navigating to a new machine on Mac when you have a number of custom utilities setup for editing particular files. This is designed to make that as easy as possible, and add some magic on top of that, like setting mailto handlers or anything else of that breed. Use XDG_CONFIG_HOME to keep it organized.

Credit to https://github.com/moretension/duti for the original inspiration for the project.

Happy to answer and help with whatever.

Comments

deeThrow94•9mo ago
Oh this is very exciting! I do have a request, though—I want to list all file extensions an application can open, specifically so I can use this to ensure xcode isn't the default for anything but xcode-specific files.
philocalyst•9mo ago
Have an idea of how I would do this already, give me until the end of the week. To be clear, an interface like this?

Infat list [--identifier] [--application] Where identifier and application are mutually exclusive, and application lists the openers it is capable of opening by default? Merging the application flag for simplicities sake, so either returns a list with both their possibilities *and* the assigned apps.

Thoughts?

deeThrow94•9mo ago
Love it! Seems like it'd be easy to filter out extensions I wanna keep and switch them all to emacs or whatever.
mlenz•9mo ago
Great to see this, thanks for sharing! Do you have plans to make it available in nixpkgs and potentially as a home-manager or nix-darwin module? Then I could add it to my config and have everything set up automatically.
philocalyst•9mo ago
I don't use nixpkgs personally but would love to give it a shot, check the repo in a day or two to give me some time to learn to ropes! I'll shoot you an email if I need any help :)
SOLAR_FIELDS•9mo ago
The first question that came to mind for me is “is this already achievable with Nix-Darwin”? If not, it fits very well into the nix ecosystem
gitroom•9mo ago
Pretty slick honestly, swapping machines on Mac is usually a pain for me so this feels like a lifesaver.
Hnrobert42•9mo ago
See also Jeff Geerling's Ansible for configuring Macs. https://www.jeffgeerling.com/project/mac-development-ansible...
stinger•9mo ago
Running into this error - "Error: Failed to set default application: The file couldn’t be opened." This seems to be happening for extensions that I haven't opened yet (md, json, mailto, etc.) For a new laptop, this might not be available yet. Once I `touch` a file with those extensions, the config works!. FYI, I am using a config.toml file btw.
philocalyst•9mo ago
Okay, confusing -- just tried to replicate on my machine and couldn't get that error. When you say touch, you mean creating a file with that extension, or any interaction period?

Could you please try to replicate with verbosity enabled (-v) and email me the output or file an issue at the repo with the results and full summary? It's helpful for tracking. Sorry this isn't a quick fix :(

stinger•9mo ago
Thanks. Looks like the update fixed it.
dmwood•9mo ago
Shell dependencies for install? Got: bash-3.2# just package && mv dist/infat* /usr/local/bin/infat # Wildcard because output name includes platform bash: just: command not found
alkh•9mo ago
just is a great command runner[1], not a shell script. Looks like it is needed if you build from source or install from Github releases. Alternatively, use `brew install philocalyst/tap/infat`(haven't done it myself but I bet it has just as a dependency anyway) [1] https://github.com/casey/just
philocalyst•9mo ago
No dependencies for install, just is the command runner I use to keep things organized, it's a replacement for make(1). If it hurts to download just, you can build using SPM:

swift build -c release

mv .build/PLATFORM/release/infat /usr/local/bin

alkh•9mo ago
That's great, I've struggled with this problem a lot. To double-check, this essentially allows you to specify a default app that is being opened when you click on a file via Finder or via terminal's `open` program, correct? I haven't seen this exact clarification in README
philocalyst•9mo ago
Yep! Just added a clarification in the README.

After running `infat set IINA mov`: https://jezq5q9mfh.ufs.sh/f/Ii8qBn67qEOu1ZUKDXSn3BIE8fDuiWay...

timenova•9mo ago
This is amazing! I set a few extensions manually.

However, does anyone know a way to set all text-like documents to open with a single editor (for example Zed) on Mac? Even text files without any extensions?

philocalyst•9mo ago
It wouldn't be possible with the current interface, but I have a feeling it's possible. I'm thinking it's part of a new configuration option "type" that allows you to define openers for categories of files (text,video,etc.)

I can get it out in a week ;)

timenova•9mo ago
That would be amazing honestly!
hk1337•9mo ago
Is there a way to pass arguments or some other options? For example, TextEdit can be opened in plain text or rich text mode.
philocalyst•9mo ago
There is not, infat is subject to the limitations of Apple's API for setting handlers, which do not support passing in any data that an application could work with. If you wanted to, and have the time, I would recommend setting up a wrapper with https://github.com/sveinbjornt/Platypus with applescript. Then you could make an alternate for whichever mode you please and set it as an opener using infat. Clunky but functional.
goranmoomin•9mo ago
This is a bit tangent, but does anyone know how to block an app from ever deciding to become a file handler on macOS?

Every time I install Chrome on my machine (for testing purposes), macOS decides that Chrome is going to be the default file handler for a bunch of file associations, including HTML, WebP, and so on… and I have to figure out which was which for all of the mappings (which is super frustrating).

I can read Info.plist from the bundle of the specific app (in this case, Google Chrome) that declares all of the UTIs, and then figure out which file associations that Chrome has messed up, but I don’t know how to get the default file associations (if it was not Chrome) before it.

philocalyst•9mo ago
MacOS doesn't give any way to block an association from happening, I'm assuming they're using the same API's under the hood that Duti is using, and the only way you could block that from being accessed is by disabling the Launch services API.

In the next release of Infat, I'm introducing listing the openers from the plist (As you're doing now). If you record these values, then get their set defaults through infat, you could put those into your config and load from you config whenever they're overriden!

Best I got... Shameless promotion

AdieuToLogic•9mo ago
> This is a bit tangent, but does anyone know how to block an app from ever deciding to become a file handler on macOS?

The information below does not "block an app" from taking over file handler associations. It may be beneficial on its own and/or provide a starting point for further exploration.

> Every time I install Chrome on my machine (for testing purposes), macOS decides that Chrome is going to be the default file handler for a bunch of file associations, including HTML, WebP, and so on… and I have to figure out which was which for all of the mappings (which is super frustrating).

The following command can display current file extension associations for a user account:

  plutil -convert xml1 \
    ~/Library/Preferences/com.apple.LaunchServices.plist \
    -o -
In the XML output of the above should be the associations. As for determining changes, if Time Machine has been enabled, then changes to this plist can be identified.

Also regarding a Chrome OS-X/macOS installation - it installs plists for unconditional background updates. This may not be a desirable feature.

emmelaich•9mo ago

    ~/Library/Preferences/com.apple.LaunchServices/com.apple.LaunchServices.plist
... but that didn't seem to be the right file either? Sequioa 15.4 here.
badmonster•9mo ago
Would you consider adding support for domain-specific overrides (e.g., open *.notion.site links with Chrome but other URLs with Safari) in future versions?
beaugunderson•9mo ago
I use Hammerspoon for this and it's super configurable via Lua--open some URLs with Chrome profile 1, some with profile 2, some in incognito, open normal Spotify links with the Spotify app, normal Zoom links with Zoom (skip opening a tab that then opens the zoom:// link), etc.

For Google Drive links I open a picker that lets me choose from two chrome profiles and incognito.

badmonster•9mo ago
cool
037•9mo ago
Would you mind sharing some tips on how to set that up? A code snippet or a link to the relevant docs would be super helpful.
beaugunderson•9mo ago
Certainly, the bulk of the functionality is provided by URLDispatcher:

https://www.hammerspoon.org/Spoons/URLDispatcher.html

Here's a cleaned up version of my config... I also mapped global cmd-shift-1/2/i to focus my profile and incognito windows (and create a window if none already existed):

https://gist.github.com/beaugunderson/d1ca2218b9b272f3ac3573...

037•9mo ago
Thanks a lot — that’s way more than I expected!
philocalyst•9mo ago
Thank you for the question! I didn’t even think of this use case. I’ll setup regex (and wildcards) but not scripting.

Check back in a week!

philocalyst•9mo ago
Walking this back, the API only allows setting this up for app bundles, which adds another layer of complexity I'm not down for. I want it to be a CLI tool, it doesn't need a helper or any other layers.

As a kind of apology, I made a drop-in hammerspoon config that should accomplish exactly what you wanted: https://gist.github.com/philocalyst/ad9f6d7cc08a9cdefa795e1b...

And if you've never used it before: https://www.hammerspoon.org/go/

FabHK•9mo ago
Typo: Declarative (think of declaration, not declarition)
philocalyst•9mo ago
THANK YOU! i knew something was wrong. i knew i knew i was missing it ;)
037•9mo ago
I love that it’s a command line tool — I’ll try it soon.

I use OpenIn for this [1] (it’s paid, but a one-time purchase at a very reasonable price). It works with URLs too, supports “browser profiles”, and lets you create logic using JavaScript (e.g., do X if the filename contains Y, or do Z if a modifier key is pressed).

It works really well and even has the ability to “fix” what external apps have changed. I plan to use this on new Macs to reconstruct my app associations and rules.

I do wish the rules were defined in plain text files — sometimes it’s hard to follow the logic through the UI and the way it handles things.

Another comment mentions Hammerspoon (which I used in the past — it was very nice). Maybe I can rebuild part of my current setup with it.

[1] https://loshadki.app/openin4/

philocalyst•9mo ago
I loveee hammerspoon. And had a subscription to OpenIn a bit back. Advanced scripting isn’t going to happen, even paging out to another script. Recently committed to Regex which would cover most of that. I’ll look into how it “fixes” old associations.
philocalyst•9mo ago
Walking back my regex commitment, just a heads-up/apology if you had your hopes up. Want this to stay as a CLI and not a dynamic app. Let me know if there's anything else you could see useful that would fit within that scope!
KolenCh•9mo ago
I see that you mentioned it is inspired by duti. I think may be adding a comparison on how it solves what it couldn’t would be beneficial.

From quick skim and memory it seems a notable one is url scheme association.

One problem I had with duti is to associate extensions automatically from a pre defined “table”. Automating that involves shell scripting[^1]. Also associating extension to softwares that hasn’t been installed. Another pain point is there’s two ways to associate and depending on different cases one is better than another.

[1]: https://github.com/ickc/bootstrapping-os-environments/blob/m...

igor47•9mo ago
Does anyone know of a similar tool to manage associations on Linux? I'm tired of having random files opening with random tools whenever I install them. Recently, csv files began opening with krita for instance...
millzlane•9mo ago
This is pretty sweet! Could this set tel: to open in teams?