HackerTrans
TopNewTrendsCommentsPastAskShowJobs

Expurple

no profile record

Submissions

A Big Standard Library Is Overkill

home.expurple.me
4 points·by Expurple·vor 10 Tagen·0 comments

An Update on Kagi Translate

blog.kagi.com
5 points·by Expurple·letzten Monat·0 comments

Flat Error Codes Are Not Enough

home.expurple.me
3 points·by Expurple·vor 3 Monaten·1 comments

How to Make an Open-Source Project Suit Your Needs

home.expurple.me
3 points·by Expurple·vor 4 Monaten·2 comments

An Ode to Bzip

purplesyringa.moe
11 points·by Expurple·vor 4 Monaten·0 comments

Designing Error Types in Rust Applications

home.expurple.me
2 points·by Expurple·vor 5 Monaten·0 comments

Fearless Website Updates with Hugo

home.expurple.me
1 points·by Expurple·vor 7 Monaten·0 comments

comments

Expurple
·vor 3 Monaten·discuss
In pushback against “Stop Forwarding Errors, Start Designing Them” [1]

[1]: https://fast.github.io/blog/stop-forwarding-errors-start-des...
Expurple
·vor 3 Monaten·discuss
Sure. But any nontrivial C codebase will have UB regardless of your intentions. This has been proven time and time again.
Expurple
·vor 3 Monaten·discuss
But are they "no UB in the code" great? For my use, Opus is absolutely good enough at Rust
Expurple
·vor 4 Monaten·discuss
Yeah, it's almost always more effective to work with an existing project as a starting point
Expurple
·vor 4 Monaten·discuss
> that's probably due to the lack of a stable ABI complicating dynamic linking enough to make LGPL less viable

They could use MPL. It's an alternative "weak copyleft" license that's not concerned with dynamic linking
Expurple
·vor 5 Monaten·discuss
> I can ask copilot to build my project and verify tests results, but [..] added value is almost none.

The added value is that it can iterate autonomously and finish tasks that it can't one-shot in its first code edit. Which is basically all tasks that I assign to Copilot.

The added value is that I get to review fully-baked PRs that meet some bar of quality. Just like I don't review human PRs if they don't pass CI.

Fully agree on IDEs, though. I absolutely still need an IDE to iterate on PRs, review them, and tweak them manually. I find VSCode+Copilot to be very good for this workflow. I'm not into vibe coding.
Expurple
·vor 5 Monaten·discuss
This. If you use a modern frontier model like Opus 4.5, there's nothing to learn. No special prompting techniques. You give it a task, and most of the time it's capable of solving a big chunk quickly. You still need to babysit it, review its plan/code and make adjustments. But that's already faster than achieving the same results manually. Especially when you're at low energy levels and can't bring yourself to look into a task and figure it out from zero.
Expurple
·vor 5 Monaten·discuss
> Now they have a profit motive for slowing down the normal service.

Sure. But for now, this is a competitive space. The competitors offer models at a decent quality*speed/price ratio and prevent Anthopic from going too far downhill.

Actually, as I think about it... I don't enjoy any other model as much as Opus 4.5 and 4.6. For me, this is no longer a competitive space. Anthropic are in full right to charge premium prices for their premium product.
Expurple
·vor 6 Monaten·discuss
Checked exceptions don't force you to catch them on every level. You can mark the caller as `throws Exception` just like you can mark the caller as returning `anyhow::Result`. There is no difference in this regard.

If anything, `?` is better for actual "handling". It's explicit and can be questioned in a code review, while checked exceptions auto-propagate quietly, you don't see where it happens and where a local `catch` would be more appropriate. See the "Can you guess" section of the post. It discusses this.
Expurple
·vor 6 Monaten·discuss
> you can still ignore the return value

Only when you don't need the Ok value from the Result (in other words, only when you have Result<(), E>). You can't get any other Ok(T) out of thin air in the Err case. You must handle (exclude) the Err case in order to unwrap the T and proceed with it.

> It also litters your code with branches, so not ideal for either I-cache or performance.

That's simply an implementation/ABI issue. See https://github.com/iex-rs/iex/

Language semantics-wise, Result and `?` are superior to automatically propagated exceptions.
Expurple
·vor 6 Monaten·discuss
Poor man's checked exceptions. That's important. From the `?` you always see which functions can fail and cause an early return. You can confidently refactor and use local reasoning based on the function signature. The compiler catches your mistakes when you call a fallible function from a supposedly infallible function, and so on. Unchecked exceptions don't give you any of that. Java's checked exceptions get close and you can use `throws Exception` very similarly to `anyhow::Result`. But Java doesn't allow you to be generic over checked exceptions (as discussed in the post). This is a big hurdle that makes Result superior.
Expurple
·vor 6 Monaten·discuss
Anyhow erases the type of the error, but still indicates the possibility of some error and forces you to handle it. Functionality-wise, it's very similar to `throws Exception` in Java. Read my post
Expurple
·vor 6 Monaten·discuss
How would you implement a C++ ban in Chromium?
Expurple
·vor 6 Monaten·discuss
You should compare exceptions to Result-style tagged unions in a language with exhaustiveness checks, like Rust. Not to return codes in C, lmao.

Everyone (except Go devs) knows that those are the worst. Exceptions are better, but still less reliable than Result.

https://home.expurple.me/posts/rust-solves-the-issues-with-e...
Expurple
·vor 6 Monaten·discuss
> advice: submit the binary you used to generate the site to source control.

Or use HVM and submit the .hvm file (which is just a text file with the Hugo version that you use)
Expurple
·vor 6 Monaten·discuss
You don't need a test suite. Your website is the test suite. You can build it with an old version of Hugo, build it with a new version of Hugo, and then diff the output folders: https://home.expurple.me/posts/fearless-website-updates-with...
Expurple
·vor 7 Monaten·discuss
Why not donate to gnome or kde to improve those directly?