HNHacker News
TopNewBestAskShowJobs

richbell

3,652 karma · joined February 1, 2022

submissionscomments
richbell··on PostgreSQL Best Practices
> But definitely not within database functions and procedures.

I generally find Hungarian notation silly, however, there's a compelling argument to have them in functions and procedures — perhaps more than for views. The type of the variable matters just as much as where/how it was declared, such as in/out params.

That's the 'steelman' argument for them, as I understand it.

richbell··on PostgreSQL Best Practices
That's an easy swipe to make. What would you suggest instead?
richbell··on Discussion: Reduce error handling boilerplate in Golang using '?'
That is not what is being discussed and you know it.

Provide an example backing up your claim regarding pattern matching + union types:

> Like in the same way you might forget to write pattern matching code?

richbell··on Discussion: Reduce error handling boilerplate in Golang using '?'
> I have read this exact claim before, for what it is worth. Did you end up here simply because you repeated what you saw elsewhere without actually thinking about it?

I can't tell if you're being intentionally obtuse. It behooves you to research the topic being discussed, instead of writing long-winded snarky posts.

It is not worth continuing this discussion unless you can demonstrate, with explicit code examples, what you think we're talking about, and why you believe it is incorrect.

richbell··on Discussion: Reduce error handling boilerplate in Golang using '?'
> Like in the same way you might forget to write pattern matching code?

This is a lengthy response to seemingly ignore, or miss, the point being made.

It is literally impossible to "forget" if you have pattern matching + algebraic data types/enum/unions. Conversely, it is possible and easy with Go.

Nothing you have said acknowledges this.

richbell··on Discussion: Reduce error handling boilerplate in Golang using '?'
> How would you forget, exactly? Your tests are going to blow in your face should you ever leave out an entire feature from the implementation.

> ... this idea that you are going straight up forget without any notice of your forgetfulness, as fun as a trope as it is, just isn't realistic.

By forgetting. Copying `if err != nil` is a mundane and repetitive process, it's easy for your brain to go into auto-pilot.

> And no, pattern matching doesn't help you here as you still need to document what happens on those pattern matches. If you forget to document these cases you've still got the very same undefined behaviour. There is no escaping the need for the tests.

Pattern matching (with algebraic data types/enum/unions) helps because it forces you to check the error. It becomes impossible to use a return value without checking the error.

richbell··on Discussion: Reduce error handling boilerplate in Golang using '?'
> While I also don't like Go's error handling approach I thought Go compiler gives an error if a variable is unused, in this case `err`. Is this not the case?

This isn't foolproof. If you're calling multiple methods and reusing `err` it won't give an error because it's technically not unused.

richbell··on Discussion: Reduce error handling boilerplate in Golang using '?'
> I feel like error handling in Go is divided between people who have been using the language for a long time, and those who are new to it. If you're used to exceptions, and languages with some kind of '?' operator, typing `if err != nil` all the time is probably excruciating. They seem to be the most vocal in the survey about wanting beloved error handling features from their favorite languages.

This implies that the only people who dislike Go's error handling are newbies that "don't get it".

Go's error handling is objectively bad for two reasons:

1. You are never forced to check or handle errors. It's easy to accidentally miss an `if err != nil` check, I've seen sages and newbies alike make this mistake.

> Errors in Go are right there, in your face, and undeniable that the operation you are doing can be faulty somehow.

2. Repeating `if err != nil` ad nauseam is not handling errors. Knowing the operation can be faulty somehow is a good way of putting it, because in most cases it's difficult — if not impossible — to figure out what specific failures may occur. This is exacerbated by the historical reliance on strings. e.g., Is it a simple issue that can be easily recovered? Is it a fatal error?

richbell··on Google is making AI in Gmail and Docs free, but raising the price of Workspace
> [Billing and Service Notice] Google Workspace service and pricing updates

> Dear administrator,

> Starting today, your Google Workspace subscription includes new AI features designed to help your users improve their productivity and innovation. With these changes, we will also be updating subscription pricing starting March 17, 2025.

> ...

> These features were previously available only to users with a Gemini for Google Workspace Add-on, but now will be included with Google Workspace Business Standard plans. You will see these features added to your subscription in the coming weeks. Soon, you'll get access to even more Gemini features in your Google Workspace apps.

> Review the Google Workspace blog announcement to learn more about these changes.

> Starting March 17, 2025*, your Google Workspace Business Standard subscription price will be automatically updated to $14.00 per user, per month with an Annual/Fixed-Term Plan (or $16.80 if you have a monthly Flexible Plan).

richbell··on Google’s OAuth login doesn’t protect against purchasing a failed startup domain
Your comment didn't seem obviously sarcastic. Intent is hard to convey over text.
richbell··on Google’s OAuth login doesn’t protect against purchasing a failed startup domain
> Is someone's job to cruise around the various conferences and dev events to look for any Google mentions and report back.

Someone in Google's security team likely saw the talk, or the original blog post, and pushed internally for them to award something.

richbell··on Google’s OAuth login doesn’t protect against purchasing a failed startup domain
I'm not sure I agree that it's a flaw in Google's OAuth implementation. Domain ownership is the source of truth for many systems and, as the article alludes to, expired domains can be abused in a variety of ways.
richbell··on I got OpenTelemetry to work. But why was it so complicated?
> I say that because, as soon as Dynatrace agents got installed on the app hosts, we started having various 'heisenbugs' requiring node restarts

Our containers regularly fail due vague LD_PRELOAD errors. Nobody has invested the time to figure out what the issue is because it usually goes away after restarting; the issue is intermittent and non-blocking, yet constant.

It's miserable.

richbell··on I had to take down my course-swapping site or be expelled
> would you care to elaborate on how exactly you found those files and if this might have been the reason for the heavy handed response? usually swagger files would be locked down on the backend .

Presumably by visiting `https://site.com/swagger-ui` or one of the other common doc endpoints. It's not that hard, and many places do not lock them down (even if they should).

richbell··on Translating 10M lines of Java to Kotlin
> That doesn’t seem to be the case based on the study.

The study does not say that camelCase is unequivocally as easy, or easier, to read.

Selecting the correct identifier from a list of 2-3 words (expandAliasTable, expandAliasTitle, etc.) is a wholly different exercise.

richbell··on Translating 10M lines of Java to Kotlin
I mean, it's harder to read compared to normal text with spaces and punctuation.
richbell··on Matt Mullenweg temporarily shuts down some Wordpress.org functions
This reminds me of how people were making death threats and adding "in Minecraft" at the end.

https://www.yahoo.com/tech/man-arrested-making-minecraft-dea...

richbell··on Matt Mullenweg temporarily shuts down some Wordpress.org functions
As far as I can tell, he just posted on Twitter.

https://knowyourmeme.com/memes/events/tumblr-ceo-transphobic...

richbell··on How we centralized and structured error handling in Golang
I agree; I've wasted countless hours troubleshooting errors returned in complex Go applications. The original error is not sufficient.
richbell··on UK's Online Safety Act comes into force
> “Pakistani grooming gangs in Rotherham are targeting young British girls” — harmful because it could promote social unrest.

Incidentally, someone tried to edit the Wikipedia article to instead be about "moral panic".

https://archive.ph/VnXtV

richbell··on Gitlab names Bill Staples as new CEO
No single pane of glass is a deal-breaker for me, sorry.
richbell··on Two decades after Enron's bankruptcy, the company is back as a crypto firm?
> But the good thing about Aerons is that parts are easily available.

The tilt lock on mine recently broke. Any suggestions on where to look for replacements?

richbell··on Tip pressure might work in the moment, but customers are less likely to return
Square is the most egregious offender of this in my neck of the woods. Outrageous tip options (usually starting at 20%) and a large screen that make your selection obvious leave a bad taste in my mouth.

I've witnessed multiple businesses switch to Square and the suggested tips skyrocket. I don't know if it's a default or just a coincidence.

richbell··on Hacker in Snowflake extortions may be a U.S. soldier
Thanks for sharing context. That definitely reflects poorly on him and hurts his credibility.

When I read "an investigative journalist is publishing information alleging criminal activity" my reaction was "so what?" What you linked is not that.

richbell··on Hacker in Snowflake extortions may be a U.S. soldier
Falsely?
richbell··on Hacker in Snowflake extortions may be a U.S. soldier
> See the Boston bombings debacle on this very website.

I'm familiar. I don't see the relevance considering that the linked article does not reveal anyone's names or addresses.

richbell··on Git-crypt – transparent file encryption in Git
I believe git-secret[0] does what you describe. The author of Lunar[1] uses it to hide the private elements in a public repo.

[0]: https://sobolevn.me/git-secret/

[1]: https://github.com/alin23/Lunar/

richbell··on Hacker in Snowflake extortions may be a U.S. soldier
> This Krebs guy is a doxxer through and through, I wouldn't take anything that he writes down as being serious.

Can you explain your definition of "doxxing" and why you believe that means nothing he writes is serious?

richbell··on Deprecating outdated issues on the GitHub public roadmap
Perhaps. The point remains that GitHub currently offers a self-hosted solution (GitHub Enteprise Server), and saying that the cloud version is the exact same (no cons) isn't true.
richbell··on Lies we tell ourselves to keep using Golang (2022)
I wish the discourse that Go is a "simple" language would die.

Despite its veneer, once you start writing Go it quickly becomes apparent that it isn't simple. Hidden complexity and footguns are abundant (e.g., https://archive.ph/WcyF4).

It's nevertheless a useful language, and I use it quite a bit, but it's not "simple".

← PreviousPage 2 of 34Next →