HN user

wwalexander

1,176 karma
Posts2
Comments217
View on HN

Another fun New Reddit quirk: on iOS, the un-dismissable “better in the app” popover makes scroll stop working, meaning you can’t scroll up to get the iOS-native “Open in App” toolbar that actually opens the app, so your only option is to click their hand-rolled button that just opens the App Store listing, or reload the page and tap the native “Open in App” button before the popover reappears.

I much prefer the interface of Pixelmator and Pages to Photoshop and InDesign, and paying once (for the non-AI-augmented version of Pixelmator, which Apple indicate will continue to receive some manner of updates going forward) is a nice plus.

It’s unfortunate there’s not a real Illustrator equivalent; Pixelmator has okay enough vector editing and export support for my needs, but notably will render the canvas rasterized at whatever the nominal resolution is even when zoomed in editing an SVG. Vector exports work as expected, just the editing is rasterized. Still, a small price to pay for not paying monthly for Adobe’s mountain of crufty malware.

If only Philips would support USB-C for their OneBlade electric razors, instead of a USB-A to proprietary figure 8 barrel plug cable.

ccTLD hacks are both semantically incorrect and geopolitically unstable.

The .io TLD will likely be phased out in the future due to geopolitics, and all the companies who decided it was more important to signal how hacker jargon aware their startup was will have to go through the very difficult process of changing domains.

In order to log into IRS.gov to get a code to pay my USA taxes, I had to verify my USA ID via a private company called ID.me, whose domain name AND company name are now forever tied to the whims of the government of Montenegro.

Not really fixable, unfortunately. The API requires an network call for each comment:

The v0 API is essentially a dump of our in-memory data structures. We know, what works great locally in memory isn't so hot over the network.

When I played around with making a client, I found the best approach was to only load the first level of comments, and asynchronously fetch children inside DisclosureGroups on appear.

Then I realized the only reason I was making an HN app was so it didn’t blind me at night, and then I realized Lobsters has all the same stories as this place but lets me filter out vibe coding articles, and I just gave up.

It's the same thing. In the latter case, something has validated that your NonEmpty has a first and a last element.

No, it has parsed it into a structure that structurally has at least one element, not just the promise that there ought to be one. From the original “Parse, don’t validate” article:

    data NonEmpty a = a :| [a]
> your type still permits {name: "\0\0\0\0\0\0", host: "!"}

I actually originally wrote it with an array of EmailNameCharacters, etc but didn’t want to overcomplicate the example.

This is just validation that is using the type system to indicate the validation has already occurred. I think the real point of “parse, don’t validate” is to make the type system give you structural guarantees that couldn’t exist otherwise (e.g. always having a first/last element in the NonEmpty example from the original article). If you’re just branding the types as “parsed” (in reality, simply validated) you still have to know that the invariants you care about hold when using the “parsed” type (e.g. splitting the email type using “@“ will always yield 2 elements), instead of the structure of the type holding that info inherently (e.g. struct Email { name: String, host: String }).

Will this support expansion in the case of all bays being filled?

EDIT: Nevermind, the product page has an option to add up to 32 additional drives via expansion units. Nice!

In addition, every software company seems to go their own way and have their own “style”

Hence Apple using the same set of SF Symbols across all their platforms. And I don't think icons are intended to be used to initially identify the purpose of a button, but instead to provide a quick visual anchor once you are already familiar. Sure, there are some buttons that everyone will use more (like Save or Open), but I don't think there's anything wrong with allowing every button to have this sort of quick visual lookup. Predicting user behavior is hard.

I strongly dislike Ive's influence overall, but skeuomorphism made it incredibly difficult and cost-prohibitive for a single indie developer to make an app that felt like a polished first-party experience for iOS. I'm glad it's gone. You're still welcome to do it if you want and you have the whimsy and artistic talent (or design team) for it.

Yes, I have been listening to Gruber complain about them for a year now. His critique is that "Apple's HIG used to say not to," not anything about what actually makes them bad.

Curiously, I haven't heard him talk about Apple Intelligence in Shortcuts, or any of the cool new features in Tahoe. Design is how it looks, I guess.

This is about setting keyboard shortcuts for custom actions for applications, not window traversal on the desktop.

The "All Applications" section lets you define global shortcuts. As long as there is a menu bar item for it (in this case, one from the Window menu) you can define a shortcut for it.

BBEdit 16 2 months ago

Thank you very much for this recommendation! Most of my work is in Xcode, and in an ideal world Xcode would just support third-party syntax highlighting (or LSP), and I've been looking for a Mac-assed simple editor for those scenarios where I just want basic syntax support for a random text file. CotEditor is perfect!