HNHacker News
TopNewBestAskShowJobs

gavinhoward

5,314 karma · joined February 16, 2015

Christian, programmer, blogger, in that order.

Blog: https://gavinhoward.com/

Contact: https://gavinhoward.com/contact/

submissionscomments
gavinhoward··on C stdlib isn't threadsafe and even safe Rust didn't save us
It is weird that I got this right before Rust did.

Because I use structured concurrency, I can make it so every thread has its own environment stack. To add to a new environment, I duplicate it, add the new variable, and push the new enviroment on the stack.

Then I can use code blocks to delimit where that stack should be popped. [1]

This is all perfectly safe, no `unsafe` required, and can even extend to other things like the current working directory. [2]

IMO, Rust got this wrong 10 years ago when Leakpocalypse broke. [3]

[1]: https://git.yzena.com/Yzena/Yc/src/branch/master/tests/yao/e...

[2]: https://gavinhoward.com/2024/09/rewriting-rust-a-response/#g...

[3]: https://gavinhoward.com/2024/05/what-rust-got-wrong-on-forma...

gavinhoward··on Secure Transport support in curl is on its way out
This makes me sad. Not the Secure Transport part, the BearSSL part.

I was about to use libcurl with BearSSL for a project.

gavinhoward··on Be a property owner and not a renter on the internet
https://www.usni.org/press/books/naval-shiphandlers-guide
gavinhoward··on Be a property owner and not a renter on the internet
Yes, please. That is a GREAT title.
gavinhoward··on Be a property owner and not a renter on the internet
I just beat a video game for the first time in my life. It was such a confidence boost and exactly what I needed because I bought the headset to fight depression (exercise).

I realized that VR, as a medium, is uniquely tuned to people, and I think you would have a great blog if you focused on just that: people.

What are some ideas for how can VR help people? Can it help people fight depression? Can it be used for physical or emotional therapy? Can it help them safely build skills that could improve their lives?

On that last one, I am reading a book about ship handling. It was a Christmas present because I will never be a captain in my life. But ship handling would work so well in VR. Even the commands are so standardized that players could give voice commands, a real bridge.

How many Make-a-Wish kids or others could have a wonderful time doing that? And that isn't even considering the idea of extending that game into space with Star Trek USS Enterprise or Star Wars Star Destroyers.

Your site could be the nexus of those great ideas. You could even have guest posts. I'd write one.

Anyway, sorry for the novel. VR has helped me feel better than I have in a long time.

gavinhoward··on Passkey technology is elegant, but it's most definitely not usable security
And that will quickly reverse once people start losing their accounts by losing passkeys or devices.

My extended family fought me about migrating to Signal for years. I stopped trying. One or two years later, they were all on it, acting as if they hadn't given me grief for it.

They have learned their lesson, though. A couple of them have come to me asking about passkeys, and I tell them the threat of losing access and let them make their decision. I think both of them chose to keep passwords.

gavinhoward··on Ask HN: Are you unable to find employment?
Thank you for your kind words!
gavinhoward··on Ask HN: Are you unable to find employment?
I haven't been able to get a job since the pandemic.

The problem is that I work best as a lone wolf, and that's not how software is done nowadays. For good reason, I might add, so I am not complaining.

Don't make my mistake and learn your soft skills.

https://gavinhoward.com/2024/06/my-programming-journey/

gavinhoward··on Microsoft Confirms Password Deletion for 1B Users
Your argument is exactly why people conflate passkeys with cloud syncing and vendor lock-in.
gavinhoward··on Microsoft Confirms Password Deletion for 1B Users
Do you have cloud sync? My point was that it is one or the other.
gavinhoward··on Microsoft Confirms Password Deletion for 1B Users
I mean if you don't gave cloud sync, then if you lose your phone, you have lost those passkeys.
gavinhoward··on Microsoft Confirms Password Deletion for 1B Users
Browsers could help with this. They just don't.
gavinhoward··on Microsoft Confirms Password Deletion for 1B Users
True, but you either have that or a catastrophic loss of identity if you lose it.
gavinhoward··on Microsoft Confirms Password Deletion for 1B Users
Cloud sync.
gavinhoward··on Microsoft Confirms Password Deletion for 1B Users
From the first, no.

It does handle the second and third, IIRC.

gavinhoward··on Microsoft Confirms Password Deletion for 1B Users
One thing passkey proponents forget is password-authenticated key exchanges (PAKEs).

PAKEs use passwords, and they are unphishable. That is the direction we should go to avoid vendor lock-in.

gavinhoward··on Unexpected Keyboard
This was...unexpected...

Unexpectedly good. I am definitely going to relearn typing on my phone just to use this.

gavinhoward··on From where I left
@antirez, if you manage to see this, can you tell me what you think of [1] as a funding model?

[1]: https://gavinhoward.com/2023/11/how-to-fund-foss-save-it-fro... , though just read until you get to https://gavinhoward.com/2023/11/how-to-fund-foss-save-it-fro... .

gavinhoward··on Lies I was told about collab editing, Part 1: Algorithms for offline editing
Hey, I am trying to make a version control system with semantic diff. Electrical circuits and layouts are high on my list.

My profile has links to webpages with my contact info.

gavinhoward··on Haunted by my own projects
As of a few days ago, maybe, but the license is new, so the OSI hasn't checked it. AGPL-like.
gavinhoward··on Haunted by my own projects
I have spent nearly four years working on my own side project.

I am at the point where I can use it, which means that every feature can be a shiny new thing, yet be small enough to do quickly. So...get to that point as quickly as you can.

But on the flip side, I spent over three years working on my project before it was usable. How did I maintain motivation that long? Pure, searing hatred.

My project is a build system for removing my dependence on CMake. Yes, I hate CMake that much.

Hating CMake every time I had to use it was enough motivation.

So to not be haunted by your projects, run on hatred until you succeed. Or maybe any strong emotion.

gavinhoward··on Advent of Code 2024
This is the first year that I will do AoC. I have never wanted to, but I have a working language of my own now.

https://gavinhoward.com/2024/11/advent-of-code-2024-getting-...

gavinhoward··on Redis is trying to take over the all of the OSS Redis libraries
SQLite has the option to run on a pure in-memory database.
gavinhoward··on The Heart of Unix (2018)
> I hope to see more "sugar" in languages to take advantage of calling out to other programs for help.

How about [1] and [2]?

My language has those because its first program was its own build script, which requires calling out to a C compiler. It had that before printing to stdout.

Turns out, that made it far more powerful than I imagined without a standard library. Calling out to separate programs is far better than a standard library.

[1]: https://git.yzena.com/Yzena/Yc/src/commit/95904ef79701024857...

[2]: https://git.yzena.com/Yzena/Yc/src/commit/95904ef79701024857...

gavinhoward··on GnuCash 5.9
True, but I don't want to. And that is the biggest barrier of all.
gavinhoward··on GnuCash 5.9
This is absolutely a valid reason to not use GnuCash.

As for myself, I agree that the XML format is not great, but I use the SQLite format, which allows me to write scripts on it.

gavinhoward··on Rewriting Rust: A Response
> I'm sadly not very well versed with this alternative to OOP. But something tells me that a more "basic" and less dynamic scheme like that is probably best for performance reasons, since you'd either need a Julia-like JIT or a granular "dynamism knob" like https://github.com/marcoheisig/fast-generic-functions to truly amortize the cost of CLOS-like dispatch and polymorphism; though magic can be done, as the "Fast generic dispatch for Common Lisp" paper shows.

You know, for someone who isn't "well versed" with it, you certainly nailed exactly why I chose it. Also, simplicity. The "as easy as Python" is only possible if I remove complecting [1] things like inheritance.

> Huh! If this includes types deduced by compiler inference and not just user declarations (since Yao seems gradually typed, to my eyes), that'd be pretty impressive.

It does, actually. But Yao is not gradually typed, unfortunately. Too complecting.

[1]: https://www.youtube.com/watch?v=LKtk3HCgTa8

gavinhoward··on Rewriting Rust: A Response
Thank you for your kind words!
gavinhoward··on Rewriting Rust: A Response
> Serious mode off. When will we get Yao in the Linux kernel?

As soon as someone pays me long enough to get it there. :)

I only have 3 hours max a day (usually only 2) to work on Yao. And I have other projects I want to do as well.

But if someone paid, I sure could find the desire to work on it.

gavinhoward··on Rewriting Rust: A Response
> Huh, thanks for replying seriously to my snark, that's more than what I expected!

Quite frankly, the snark was warranted. I'm not a Lisper, but I do know more, and I should have been more precise.

> About CLOS, I suggest at least making method combination more flexible than C++'s override. At least a way to run both the parent and child methods is often needed (maybe in a specific order, maybe with a way to collect all the return values).

I agree with this. However, Yao will not have inheritance; instead, it will be more like Go: composition over inheritance. And interfaces. So I could be wrong, but without inheritance, I'm not sure the entire complexity of the CLOS is needed. Do correct me, though.

> Declarations are basically C/C++'s pragmas and __attribute__, but standardized and using a seamless syntax.

That's such a nicer description than in CLtL2. And yes, Yao will have them.

> The ClTl2 additions I'm talking about are ways for the compiler to give lexical information to macros: see https://github.com/Zulu-Inuoe/trivial-cltl2 and https://github.com/alex-gutev/cl-environments

If those are just for giving info to macros, Yao already has that; the lexer will tell keywords if the given token is a package, a keyword, an operator, a function, a type, etc., along with other info.

← PreviousPage 4 of 34Next →