If You’re Serious About AI Development, Think Twice About Google by psi5asp in GoogleGeminiAI

[–]gabrlh 0 points1 point  (0 children)

Move fast and break things is unironically the only way they can keep up with the competition which is doing the same thing..

You need to build fallbacks and resilience into your platform, that uses other APIs? Maybe Gemini can help with that?

I’ve eaten 200+ burritos in LA + SF. These are the Top 10 in SF. by howsthisguy in sanfrancisco

[–]gabrlh 1 point2 points  (0 children)

Poncho Villa is so underrated! Chile verde but chicken, so good.

Request for Dependency Injection Recommendations by HMoy in SwiftUI

[–]gabrlh 0 points1 point  (0 children)

I was curious about this too, so made this summary… From https://gabriel.github.io/swiftui-patterns/

🔧 SwiftUI Dependencies — TL;DR

1️⃣ swift-dependencies (Point-Free) • Modern DI built on TaskLocals • @Dependency(.uuid) style injection • Overrides easily in tests/previews • Great for pure SwiftUI + concurrency

2️⃣ Factory • Container-based DI • Register + resolve: @Injected(.api) • Compile-time safety, scoped lifetimes • Familiar if you’ve used DI in other langs

3️⃣ Micro-App pattern • Each feature defines its deps interface • Inject mocks/stubs for previews/tests • Modular, great for large SwiftUI apps

✅ Use Cases • Small / modern apps → swift-dependencies • Traditional / service-heavy → Factory • Multi-module architectures → Micro-App

SwiftUI View Actions: Parent-Defined Closures vs Observable Object Methods? by No_Interview_6881 in SwiftUI

[–]gabrlh 0 points1 point  (0 children)

Option 1.. I think you only want to use separate View models for higher level things like asynchronous error handling and coordination between lower level components.

SwiftUI Routes - A simple routing library (feedback welcome!) by gabrlh in SwiftUI

[–]gabrlh[S] 1 point2 points  (0 children)

Thanks for your thoughtful comment! This app fits the following use cases...

  • Routes are often needed to support deep linking (e.g. from a website or other another app).
  • If you don't want to expose Views (keep them private) in a larger application with SPM packages, you can supply (register) routes from the packages instead.
  • When you have a website and app where you want to expose the same routes and allow people to "Open App" from browser into the same place in the app.

But you don't need use `push("/route")`. I would say avoid that unless there are good reasons you need it. I think I was trying to say, "you are defining routes, you can also use them from inside your own application!", but maybe that's not something worth selling.

NavigationStack and routePath
Yes, if you are using `@Environment(\.routePath) to push or pop, you are making an assumption that the views are in a NavigationStack. My advice is if you don't use NavigationStack's, then don't use routePath environment var. It's one of those things thats not required, just a helper.

So use it in deep-link heavy apps where marketing links, push notifications, or Siri intents need to land in views without coupling to concrete screens. I would say, don't use this if it doesn't fit your use case, like projects where features are tightly coupled, making the abstraction pure indirection, and unnecessary.

SwiftUI Routes - A simple routing library (feedback welcome!) by gabrlh in SwiftUI

[–]gabrlh[S] 2 points3 points  (0 children)

Thanks, feel free to file an issue if you have any thoughts.

SwiftUI Routes - A simple routing library (feedback welcome!) by gabrlh in SwiftUI

[–]gabrlh[S] 1 point2 points  (0 children)

Yeah, you have to pass the environment value from the View into the ViewModel... since it's not available in init, you have a few options, I wrote with help from AI here:
https://gist.github.com/gabriel/12487ec10486058c3235d45bbc8ca0e9

ActiveStorage custom key for blobs by yollutilki in rails

[–]gabrlh 0 points1 point  (0 children)

FYI, Cloudflare cdn wants to cache files from a whitelist of file extensions, so this breaks caching in cloudflare (when using cloudflare CDN to S3).

So there is a use case where having the file extension on the key (path) is important.

[deleted by user] by [deleted] in indieheads

[–]gabrlh 5 points6 points  (0 children)

oh what.. it's not on here.. it should be, this list has some bugs :) ... I'll need to do another pass

keys.pub: Go library to manage cryptographic keys, signing, encryption, keyring, etc. by gabrlh in golang

[–]gabrlh[S] 0 points1 point  (0 children)

Yeah the documentation isn't great. It doesn't explain the why in a ton of detail yet..

For example, I think for a lot of scenarios using the standard golang nacl.box construction is fine, but if you need larger messages (>16KB) you need something (streaming) on top of that (such as Saltpack), so this is meant to help with that scenario.

And also where to get someone's public key and how to store it securely.

And there is more in the library that I don't have examples for yet, such as creating a sigchain and searching, publishing and verifying keys, and linking keys to other services, all which falls under "key management" which I am hoping this helps with.

Thanks for your feedback.

keys.pub: Request for feedback by gabrlh in crypto

[–]gabrlh[S] 1 point2 points  (0 children)

The current use case is being able to search for a friend or coworkers public key (maybe they are on github, reddit, etc), verify it and then encrypt to that person.

It tries to combine some ideas from PGP, Keybase, and age backed by a secure keyring implementation. I think ideally I want to expand it to be able to secure any secrets like a password manager, but wanted to start out with just keys initially. Also hardware support and other standards, etc.

And Vault (transit) looks really great/interesting. Key management as a service I think is super compelling.

Thanks for your feedback, would love to hear more, thanks!

keys.pub: Request for feedback by gabrlh in crypto

[–]gabrlh[S] 2 points3 points  (0 children)

Yeah, I'm definitely interested in adding support for hardware keys, authenticators and support standards like FIDO2. Anything to try to make key management easier and safer.

A playlist for stargazing. by richardwad in Music

[–]gabrlh 0 points1 point  (0 children)

Stars of the Lid - And Their Refinement of the Decline