HNHacker News
TopNewBestAskShowJobs

matthewmc3

77 karma · joined November 15, 2019

submissionscomments
matthewmc3··on LibreOffice breaks download records after declaring it has no AI features
Conversely, a no-AI ethos is one that will very likely need to be walked back at some point in the future for tech products. AI isn't going anywhere, so finding ways to use it constructively with your product is going to be a far better long term strategy. For now while it's new and scary and there's a lack of regulation and governance and ethical considerations - I can see why an anti-AI stance is popular, but it's not durable long term.
matthewmc3··on .gitignore Everything by Default
I'm not convinced about ignoring everything, but one of the best changes I ever made to my git workflow was ignoring all dotfiles by default by adding `.*` to ~/.config/git/ignore.

My projects do now have to have a boiler plate of unignoring the common ones (!.gitignore, !.gitattributes, !.github, !.editorconfig, etc), but then I'm free at any point to throw .foo.lang files, or .tmp/.cache dirs, or Claude helpers like .code_analysis.md, or .todos.txt, or whatever in my project without managing the fallout of forgetting to manage the .gitignore. I'm surprised more people don't go this route.

matthewmc3··on Apple introduces M6 and M5 Ultra
10% of Microsoft's revenue is Windows. Azure is closer to 40%. Their focus has shifted hard from software to services. Azure is making them around $100B and growing. It'd be far more surprising if they were putting their focus back to Windows in a saturated market given all the incentives they have to chase bigger revenue elsewhere.
matthewmc3··on Go: Support for Generic Methods
Exactly. We heard for years they wouldn't do generics it until they could do it right, and that was perfectly fine with me. Who wouldn't want a well thought out implementation? Then they released generics and it was like, "this is what you thought was the right way to do it?!"
matthewmc3··on Go: Support for Generic Methods
Generics being omitted wasn't pitched as a feature that I ever saw. The discussion was mostly around "hic sunt dracones" with generics. The Go authors were very aware from the get-go that generics are an incredibly difficult thing to implement well, and the commitment was always to not do it until they were really ready to tackle it. The bizarre thing to me is that when they did tackle it, they left this massive implementation gap, and then what little they did implement didn't seem useful enough that anything meaningful was added to the standard library. So all this talk about generics for years was a big nothing-burger. That is, I hope, until 1.27 when this gets released. Flags is one in particular I think is in desperate need of proper generic methods.
matthewmc3··on Rubish: A Unix shell written in pure Ruby
As far as I can tell with oils, they haven't fully defined what YSH is going to be yet - you basically have OSH (the bash compatibility syntax), with the option to add YSH features as a bolt on. It'd be like Zsh shipping with a built-in Fish-mode to create hybrid scripting. The interesting thing with shells like Xonsh and now rubish is that theoretically the shell language isn't some new thing you have to learn like with elvish and nushell, but is a known programming language with shell features. Rubish looks like it takes the most interesting parts of Oils and Xonsh, in that it's bash compatible, but you could also do a Ruby statement like `ls.each { |f| printf "%s: %d bytes\n", f, File.size(f) }`.
matthewmc3··on Filing the corners off my MacBooks
Scott Forstall here. I’ll resign before I apologize for the choices we make at Apple. All our research shows you’re gonna love it, and if you say you don’t it’s because you’re wrong, not me.
matthewmc3··on LibreOffice and the art of overreacting
> Moving the request to the Start Centre is not an escalation, but a change in location and frequency.

I support LibreOffice and what they're trying to do here, but this statement that it's not an "escalation" out of one side of their mouth and then admitting it's a "change in location and frequency" out of the other tells me that they are being disingenuous about it. An unobtrusive notice on where to donate seems like a reasonable direction, but if they don't view this obvious escalation as such, then what else will they do that they don't view as an escalation?

matthewmc3··on Hammerspoon
Wow... that's... incredible. I've used Hammerspoon forever and never knew that existed.

Just messing around I found you can extend the grid size with `hs.grid.setGrid('4x4')`, which you also may then want to shrink the text size with `hs.grid.ui.textSize = 30`, and finally if you use an alternative keyboard layout (eg: Colemak), you can set the grid to use it with `hs.grid.HINTS`. They really thought of everything with this feature.

matthewmc3··on Block the “Upgrade to Tahoe” alerts
Tahoe will be gone in 7 months when macOS 27 comes out. Meanwhile we've been talking about ads in the Windows 11 start bar since 2021 and Gnome 3's Gnaval gazing since who knows when?

Apple tries something weird every now and then and then a year later we get something different. Yes, Tahoe was a giant miss, but I'd wager macOS is not what really attracts devs to Apple anyway - it's the hardware that makes Macs such an appealing dev machine. Large glass trackpads with incredible touch controls, aluminum bodies, long lasting batteries, cool and quiet, great screens, years of support - the list goes on.

Snapdragon is only just now finally taking off in the Windows/Linux space, so the landscape could finally change here soon, but for now anyone who's gone ARM is not looking to ever go back to x64 hardware - at least for development (gaming is another convo).

matthewmc3··on A Love Letter to FreeBSD
Honest question - if it comes in binary form, how can you know it's the same core ZFS code BSD uses?
matthewmc3··on What Killed Perl?
You forgot perhaps the most important one:

3. six

`six` was instrumental in repairing the Python schism by giving people a way to incrementally move their 2.7 code to Python 3, and write code that was compatible in both. The six project didn't exist at first and the path to Python 3 was too painful without it. Six solved all that by smoothing over built-in libraries with different casing between versions, incompatible core libraries, the addition of unicode strings, print changing to a function, etc, etc. Perl 5 to Perl 6 (aka Raku) never got that.

matthewmc3··on Google can now read your WhatsApp messages
So if Google is to learn from others’ past mistakes, it ought to be able to leverage Gemini as long as the user can easily and fully swap out Gemini for an alternative. That was the problem regulators had with IE and the App Store.
matthewmc3··on More on Apple's Trust-Eroding 'F1 the Movie' Wallet Ad
That album still shows up today in jarring ways in Apple Music when you use the Create Station feature because it was on everyone’s phones and their algorithm still isn’t good enough to recognize when one of these things is not like the others.
matthewmc3··on How I use Kate editor
> You can't navigate to a hidden folder by typing its name (let's not get too creative!).

You can, actually. ⌘-SHIFT-G in Finder lets you navigate to any folder by typing in the path - even hidden paths. No mortal user would ever be expected to know or discover that, but it's there.

matthewmc3··on I've been using Claude Code for a couple of days
The just sounds like ⌘-Z with extra steps.
matthewmc3··on Fish 4.0: The Fish of Theseus
Fish has a lot of features out of the box I find really useful:

* Command auto suggestions as you type based on your history

* History search (using up arrow) based on a partial command

* Helpful completions and descriptions when you hit TAB

* Muti-line command editing

* Syntax highlighting

You can get all those same features in Zsh by using plugins, but those features work out-of-the-box with Fish with zero configuration. Zsh is a bit of a pain to configure, and pretty anemic without plugins. Fish makes configuration optional because it works how you'd hope your shell would out of the box. Even though Zsh has those features as plugins, they're kinda janky, not well maintained, and often conflict with other plugins.

Additionally, Fish also has:

* Excellent built in commands (string, math, argparse)

* Sane scripting (word parsing where you don't need to quote everything, etc)

* Great documentation

* A web-based configuration if you're into that sort of thing (it's a bit of a gimmick for beginners)

The main reason I use Zsh (or Bash) at all is for POSIX/portability, or for when I can't install something else. But for an interactive shell on a machine I control, it's hard to compete with Fish for speed, features, and ease of use.

matthewmc3··on Okay, I Like WezTerm
You can get the rest of the way there by combining the Hammerspoon method of launching with WezTerm's ToggleAlwaysOnTop feature. I use a similar method described here: https://github.com/wez/wezterm/issues/1751#issuecomment-2299...

You could probably even use Hammerspoon to initiate the keyboard shortcut if you didn't want to mark the window manually.

matthewmc3··on Ask HN: Best Alternative to Homebrew in 2021?
The bigger irony is that Python has had its own venv built in since 3.3. I haven’t needed virtualenv for years.