HNHacker News
TopNewBestAskShowJobs

sltr

448 karma · joined December 15, 2020

https://www.slater.dev/
submissionscomments
sltr··on My first attempt at iOS app development
> haven't paid for the Apple Developer Program yet

Then you aren't even half done. You still have to undergo the memorable experience of code sign and app store review.

First wrote iOS apps in 2010. Loathed it then, loathed it now.

I shun these devices for which I can't write my own software without permission.

sltr··on Canonicals Interview Process
I interviewed in November 2022. Sounds unchanged, with the essay (24-pages) and bizarre focus on my early life.

Progressed pretty far into the process. 94% on intelligence assessment and positive on the behavioral. Then in a call with HR, I was was told a COVID vaccine was required. I said I was unwilling to take an mRNA vaccine. Rejected by email after that. (I did get Novavax a couple of months later when it became available in my area).

Overall, my impression was negative. Success at Canonical means you fit into a narrow model, subject yourself to unwarranted character judgments, and don't have an opinion about much.

sltr··on IRS Direct File
I've filed with freetaxusa for about 6 years. It's been great. Does everything TurboTax can. It's free, but I splurge and spend all of $8 for Deluxe to show support.

Anything to unseat Intuit. That said, a direct file option would be best, but I don't trust myself to fill the forms correctly.

sltr··on The Myth of Developer Obsolescence
I agree with this. "Companies which overuse AI now will inherit a long tail of costs" [1]

[1] AI: Accelerated Incompetence. https://www.slater.dev/accelerated-incompetence/

sltr··on Dependency injection frameworks add confusion
https://blog.ploeh.dk/2025/01/27/dependency-inversion-withou...
sltr··on Ask HN: What are good high-information density UIs (screenshots, apps, sites)?
https://www.dict.cc/
sltr··on Open source Google Analytics replacement
I see this too on my CF Pages-hosted blog.

Analytics only work if the agent runs JS. CF on the other hand counts file fetches, which can't be circumvented.

There's always a baseline of bot traffic.

sltr··on Getting Older Isn't What You Think
Everyone is their current age for the first time.

It's almost a tautology, but when I remember it, I feel more dignified about my age and more empathetic for others' age anxiety.

sltr··on That's How We've Always Done Things Around Here
Chesteron's Fence [1] states "Do not remove a fence until you know why it was put up in the first place", and it has a corollary: Don't put up unnecessary fences. They'll be hard to remove even though they serve no purpose.

[1] https://fs.blog/chestertons-fence/

sltr··on We identified a North Korean hacker who tried to get a job at Kraken
Reminds me of the Lazarus Heist [1]

[1] https://www.bbc.co.uk/programmes/w13xtvg9

sltr··on The Friendship Recession: The lost art of connecting
Yes, but IRL those expressions are not persisted to Redis
sltr··on The Friendship Recession: The lost art of connecting
> it requires a lot of energy to form adult friendships

My experience corroborates this. Reminded me of https://news.ycombinator.com/item?id=43473618

sltr··on The Friendship Recession: The Lost Art of Connecting
What are plausible antidotes to this trend? I was reminded of the Stoop Coffee blog post about two months ago.

Found it:

https://news.ycombinator.com/item?id=43473618

sltr··on The Friendship Recession: The lost art of connecting
> online friendships require a different set of social behaviors than in-person ones

Yeah. In real life there's no karma value next to your name and no string of reactions next to every statement you utter.

Imagine a VR-based dystopia which displayed such information to everyone you encounter.

sltr··on Y Combinator CEO: quarter of the current YC startups, 95% of code is by AI
Makes sense to validate businesses as early and cheaply as possible.

While AI accelerates initial product development, there might be a tail end of costs, like tech debt that plagues a product for years. For startups that die, it won't matter, and startups that "make it" (in VC terms, i.e. jackpots) can afford to rebuild the whole product from scratch.

sltr··on Simple Web Server

    docker run --rm -p 8080:80 -v "$(pwd):/usr/share/nginx/html:ro" nginx:alpine
will host the current directory on 8080
sltr··on You cannot have our user's data
> public but in my control

I think we have a word for that - copyright

sltr··on You cannot have our user's data
> a racketeer like CloudFlare

Could anyone teach me what makes this a fair characterization of Cloudflare?

sltr··on That's not an abstraction, that's a layer of indirection
When discussing the definition of abstraction, Koppel's article "Abstraction: Not What You Think It Is" offers a helpful framing and disambiguation.

https://www.pathsensitive.com/2022/03/abstraction-not-what-y...

sltr··on Launch HN: Silurian (YC S24) – Simulate the Earth
Check out Climavision. They use AI to generate both hyper-local ("will there be a tornado over my town in the next 30 minutes?") and seasonal ("will there be a draught next fall?") forecasts, and they do it faster than the National Weather Service. They also operate their own private radar network to fill observational gaps.

Disclosure: I work there.

https://climavision.com/

sltr··on Don't DRY Your Code Prematurely
Jimmy Koppel wrote about this 6 years ago [1]. It's one of the first exercises in his software design course [2].

Two identical pieces of code can have different specifications.

  # x is an age of a person; the code checks if the person is past the retirement age in the US
  def is_of_retirement_age(x):
    return x >= 65;

  # x is an ASCII character which is already known to be alphanumeric; this code checks if it’s a letter.
  def is_ascii_letter(x):
    return x >= 65;

[1] https://www.pathsensitive.com/2018/01/the-design-of-software...

[2] https://www.mirdin.com

sltr··on AvaloniaUI: Create Multi-Platform Apps with .NET
WPF and Xamarin dev here who wrote a new (not ported) codebase on Avalonia.

- Avalonia has a guide just for people like you and me [1].

- Avalonia's flavor of XAML has small divergences from WPF that will have you hitting their docs often. There are some nice quality-of-life improvements, for example you can bind a Button click handler directly to a method without ICommand. The major concepts are the same e.g. data binding, dependency properties.

- Coming from WPF, it's possible you've used MVVM and dependency injection. You'd be going against a strong cultural grain to not use them in Avalonia. But I would be surprised if your WinForms app is architected like that, so it may be a design challenge extracting coherent ViewModels and properties from the ball of mud that many WinForms apps become.

- For macOS, read up on notarization [2] and, if you're publishing to the Mac App Store, the review process.

- I recommend starting with example apps (look in the Showcase) or with the Avalonia template solution which just runs out of the box.

- The Avalonia team iterates quickly. Expect to upgrade NuGets frequently, and don't get too far behind. There was recently a big jump from version 10 to 11. Good for you for starting after that.

- Not Avalonia specifically but if you're not used to .NET Core check out #nullable enable. Can't live without it now, but was confusing at first.

- Be sure to check out all of the official and community libraries [3]. I bet my design big on `ReactiveUI` and it's gone well.

[1] https://docs.avaloniaui.net/docs/get-started/wpf/

[2] https://docs.avaloniaui.net/docs/deployment/macOS

[3] https://github.com/AvaloniaCommunity/awesome-avalonia

sltr··on AvaloniaUI: Create Multi-Platform Apps with .NET
Citation? Not sure what's wrong with text rendering in the tens or hundreds of GUI toolkits that are not Qt.
sltr··on AvaloniaUI: Create Multi-Platform Apps with .NET
Production user here. I've found no money "gotchas". They're above reproach. In fact, I've received considerable free support from their devs on GitHub Issues [1].

The Avalonia business model is based on selling XPF, which runs WPF (Windows-only) apps on other platforms. That's very interesting to big corps with existing codebases.

See my comment [2]

[1] https://github.com/AvaloniaUI/Avalonia/issues

[2] https://news.ycombinator.com/item?id=39246988#39249128

sltr··on AvaloniaUI: Create Multi-Platform Apps with .NET
I can speak in favor of Avalonia from experience [1] for exactly this use case:

- You want to target Windows, macOS, Linux, Android, iOS, and browser from one codebase.

- You've already decided to use .NET / XAML. (So you're not comparing to e.g. Flutter)

I chose Avalonia over the alternatives [2] that also match this criteria. It's been a good experience, and I'm overall happy with the app. The solution template "just works" on all platforms, and iteration from it to my finished app was straightforward. I found libraries for everything, whether Avalonia-specific or just .NET. The Avalonia community is active, and the devs are responsive on GitHub. Avalonia as a company will be around as they have a strong business model selling XPF.

Some downsides are:

- Mobile is not as polished. Avalonia started on desktop and expanded to other platforms. Some controls feel awkward on mobile, because they were originally for desktop. Example: TextBox. If Mobile is your primary concern, consider Uno or Xamarin [2].

- The "non-native controls" approach has pros and cons. Your controls render the same everywhere, but they can feel out of place, depending on your styling. For example, buttons in my app don't look like iOS buttons, which Apple cares about a lot. However, my users already familiar with the look on Windows or Android can easily use the app on iOS and vice-versa.

- Build times for mobile and web are slow. I mostly edit-compile-debug on desktop and then smoke test on other platforms.

- You still have the usual deployment and distribution challenges for each platform: desktop installers; macOS requires notarization; iOS requires App Store review. For most of that, Avalonia has excellent docs [3] and there are supporting libraries [4].

[1] I created FitEdit. https://github.com/endurabyte/FitEdit/

[2] https://github.com/robloo/PublicDocs/blob/master/XAMLFramewo...

[3] https://docs.avaloniaui.net/

[4] https://github.com/velopack/velopack

sltr··on Ask HN: Programming Courses for Experienced Coders?
Correction: His name is Jimmy Koppel, not Jeremy. My bad
sltr··on Ask HN: Programming Courses for Experienced Coders?
Same difference between reading a textbook vs taking a lecture. He brings it to life. There's also personal feedback. His content isn't available in any other format I know of.

Do have a look at the testimonials. He hits the nail on the head on many ideas I could intuit but didn't have words for.

I don't know of any books or speakers to compare him to. He's a unique bridge between academia and industry. I suppose you could say his teachings are available in the many academic papers he sources, but those papers are dense. His curation and contextualizion gets the ideas in a form I can comprehend and apply at work.

sltr··on Ask HN: Programming Courses for Experienced Coders?
It's not Elixir, but I'm working through Jeremy Koppel's "Advanced Software Design Course". I've been coding for 22 years and it is definitely growing me.

https://www.mirdin.com/

← PreviousPage 5 of 5