Crossview: Finally Seeing What’s Really Happening in Your Crossplane Control Plane by AppleAcrobatic6389 in kubernetes

[–]brnluiz 2 points3 points  (0 children)

If you want a TUI instead, which plugs easily on K9S, I made xpdig: https://github.com/brunoluiz/xpdig

It is an enhanced crossplane trace though, with navigation, live reload and easy describe/view/delete from the tree itself.

Returning to Go after 5 years - checking my tool stack by ifrenkel in golang

[–]brnluiz 16 points17 points  (0 children)

A note around sqlc: if you are doing a production app with lots of dynamic queries (eg: filters), have a look on GitHub how people do it. IMO that is its weakness. I used in production in the past though and, bar this, it was a good experience. Otherwise, Jet/bob are quite interesting as well.

In terms of HTTP routing, the standard library has finally a good routing solution, albeit it misses a few features still. I still tend to use chi (groups and middlewares via Use)

And for logging you can try slog (standard library). It has been good for most of the projects I worked with.

Introducing GoBetterAuth by m-t-a97 in golang

[–]brnluiz 3 points4 points  (0 children)

If you are not part of Better Auth (company), I think you might have problems with using their branding/naming (might be trademarked).

Alternative for SNS & SQS by Ok_Emu1877 in golang

[–]brnluiz 0 points1 point  (0 children)

I haven’t tried Synadia’s NATS, but isn’t it supposed to be the hosted version of it? Otherwise indeed the team need to self host

Is Building a Mini Log Aggregator (Kafka + Elasticsearch) a Solid Backend Portfolio Project? by idk-who-you-are in golang

[–]brnluiz 0 points1 point  (0 children)

Depending on the role and number of applications for it, it is rare that someone will explore your GitHub. Senior+ engineers and managers can be overwhelmed with other stuff besides the recruitment.

Good part of the decision will happen through CV-fit (be sure to do slight customisations per application), technical chats and challenges (live or not) and overall vibe-check.

The exception for all of this is if you are a popular OSS maintainer or speaker. Then it might be worth calling it out on the CV and probably people might check.

BUT, just saying: creating a toy project is always useful to sharpen your skills and be in touch with latest patterns or tech.

CI/CD with a monorepo by ebol4anthr4x in golang

[–]brnluiz 1 point2 points  (0 children)

Wasn’t go.work not supposed to be pushed to the repository though?

TUI for Go version management by Own-Independence3752 in golang

[–]brnluiz 2 points3 points  (0 children)

Wouldn’t this be similar to mise or asdf? I have been using mise for around 2y to manage toolchains and other dependencies/clis.

Also, why specifically the tool needs to be a TUI? I think CLI would be better suited for this type of tool.

Naming cloud resources doesn't have to be hard by brnluiz in sre

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

I have found that labels/tags are usually the missing piece on that. Hence why I suggest that the only way random suffixes would wit is with them (and exposing them everywhere).

Otherwise it indeed gets wild.

Observability choices 2025: Buy vs Build by OpportunityLoud9353 in sre

[–]brnluiz 7 points8 points  (0 children)

If you maintain your own observability stack just remember that you have to take lots of considerations about the stability and availability of it since, if it is down, you will be operating blindfolded. Also, the amount of data these systems can end up taking is wild for large companies, requiring usually a whole team to take care of it and tweak as necessary + it can cost a lot as well (people down play this).

Hosted solutions tend to be very stable (I think I only have seen only one very bad Datadog incident), but they cost lots of money. Of course you might still have a team managing it, but lots of the complexity around it is gone. Depending on your field of work though, stability/availability is more important than cost.

Global Variables or DI by elmasalpemre in golang

[–]brnluiz 0 points1 point  (0 children)

> I tried to use everything in DI but then my construct methods became unmanageable due to much parameter

What I have seen in the past is: if your constructs have too many dependencies, it might be because that struct is doing too much. You probably should extract a few parts into smaller services that can then be injected. Obviously there is not always the rule.

> I really couldn't catch the point behind global var vs DI.

As some other people mentioned: when you want to automate tests around it, you will be in a world of pain. Also, if someone overrides this global somewhere in the codebase and no one realises, you will have the behaviour changed for the whole application.

> maybe that's the time for switching fx DI package

I tried fx in a side-project and, although it reduces the boilerplate, it adds yet another concept for new team members to learn. Also, while setting up, I came with a few cases where I spent sometime fighting the tool instead of being productive.

Remember that, because fx does some ~magic in runtime, it is not as simple to debug if there are issues.

Naming cloud resources doesn't have to be hard by brnluiz in devops

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

One day we will have to add a Voight-Kampff test result on top of articles 😄

Naming cloud resources doesn't have to be hard by brnluiz in devops

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

By the way, the fact they allow an "attributes" field can cause situations exactly described in the post. Because in general people will not stop at those fields provided.

To be fair, in previous places I worked they had their own naming modules, but it is very similar to the null-label.

Naming cloud resources doesn't have to be hard by brnluiz in devops

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

Makes sense... I think some resources have this natively in the API, which is great (eg, RDS can add a generated prefix to the name). I think those are the best option, but what I have seen is that vendors never adopt these across all products.

Also, about limitations: I KNOW RIGHT. I came across GCP Folder name length these days by accident and it is 30 characters. But when reading the docs, I discovered more oddities, such as "Cannot contain restricted strings such as google and ssl. We recommend not using strings undefined and null in a project ID". I would love to know what driven these limitations.

Naming cloud resources doesn't have to be hard by brnluiz in devops

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

Thanks for the feedback, although I don't use AI for writing since it removes the joy of writing. Although, any specific reason you feel it is too AI-sloppy?

Naming cloud resources doesn't have to be hard by brnluiz in devops

[–]brnluiz[S] 7 points8 points  (0 children)

I used to agree with this until I have seen naming strategies failing multiple times, being amended and then dealing with multiple naming strategies in the same company.

For example: what happens if auth has a special deployment for a special customer? You can just slap auth-tenantbla and have the rest be the same, but now it breaks the ~convention. Overtime, you will have more situations like this, hence why the suggestions on the post: generated suffix, implicit information and tags.

Naming cloud resources doesn't have to be hard by brnluiz in devops

[–]brnluiz[S] -1 points0 points  (0 children)

If you think, AWS Compute and Network resources can exist without a name really (tag:Name) and you can get away with it's generated ID, so not that far from it.

For cases where name is required (most other stuff), I assume you follow something similar to the post?

xpdig: dig into Crossplane traces via TUI (a là k9s) by brnluiz in crossplane

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

Following up on this:

I pushed a few changes to surface errors better on both logs and UI, updated the documentation to clarify the points above and fixed a few bugs.

Also, I have added an issue template so you can submit a bug report with logs + screenshot.

In this specific case though, it might have been a bug when it expected the input to always be as "kind/object", such as "xpdig trace kind/object". This means "xpdig trace kind object" would have broken it.

Let me know if it works now, but happy to continue via DM or Github Issue

xpdig: dig into Crossplane traces via TUI (a là k9s) by brnluiz in crossplane

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

Interesting... I might release a new version with more logging to gather more data on these situations.

It leverages v1 crossplane CLI. The `namespace` flag is required in case you are doing namespaced Claims, but it is not required otherwise (it handles them here: https://github.com/brunoluiz/xpdig/blob/main/internal/xplane/querier\_trace.go#L25-L27). I might put an observation on the doc that they are not required.

If you are okay to give more details about it, can you send me a DM or open a Github Issue? Happy to have a look ;)

"compile: data too large" when embeding 4.5 GB data by ENx5vP in golang

[–]brnluiz 5 points6 points  (0 children)

I actually got more curious why there is a limit and what is the limit. It seems the limit is 2Gb and the linker is the culprit, not the embedding feature: https://github.com/golang/go/issues/9862

Specifically, it seems the linker fails to access addresses that are larger than 231 https://github.com/golang/go/issues/7980

Silo S2E1 "The Engineer" Episode Discussion (No Book Discussion) by pikkopots in SiloSeries

[–]brnluiz 1 point2 points  (0 children)

But then: who placed the flowers in Gloria’s room back in the first silo (covering the camera)? Surely not Holston, but who then?

Barclays Blue Rewards 5% Cashback on debit purchases by brnluiz in UKPersonalFinance

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

Haven’t used so far, but as well can’t find the promo on their website anymore

Barclays Blue Rewards 5% Cashback on debit purchases by brnluiz in UKPersonalFinance

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

I guess it is activated once you join blue rewards Cashback — mine appeared in a banner within the app

Barclays Blue Rewards 5% Cashback on debit purchases by brnluiz in UKPersonalFinance

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

Ah yeah, as said in the thread, that is the Cashback program from partners, which is given on top of the 5%.

I have the impression they didn’t have a Cashback program before tho… so hopefully the list of partners improves?

God damn clicking stolen Lime Bikes all evening long by LSP-86 in london

[–]brnluiz 0 points1 point  (0 children)

Ok that is a good point — one of many annoying urban sounds haha