173 karma · joined May 18, 2023
I'm vaguely aware of a code leak but haven't delved into the details; I'm curious if you have a link to details about this data harvesting?
I know I _could_ define my own error type, but that's tedious, especially if there are many types of errors to handle. For my (non-production) purposes it's been fine.
What's the idiomatic way to handle errors? Is there a way to collect more detailed error information without excessive boilerplate?
I wish I could say I'm surprised by the animosity (and relative lack of substance) in some of the comments you've received, but I guess that's a problem with social media and/or humanity that's unlikely to have a technical solution.
For the most part it's not that I'm ceding the thinking to the machine; more often it suggests what I was going to type anyway, which if nothing else saves typing. It's especially helpful if I'm doing something repetitive.
Beyond that, it can save some cognitive load by auto completing a block of code that wouldn't have necessarily been very difficult, but that I would've had a stop to think about. E.g an API I'm not used to, or a nested loop or something.
The other big advantage that comes to mind is when I'm doing something I'm not familiar with, e.g. I recently started using Rust, and copilot has been a major help when I vaguely know what I _want_ to do but don't quite know how to get there on my own. I'm experienced enough to evaluate whether the suggested code does what I want. If there's anything in the output I don't understand, I can look it up.
> Are there tasks where you explicitly avoid them?
Not necessarily that I can think of, but after having copilot on for a little while it's gotten easier to tune it out when I'm not interested in its suggestions or when they're not helpful.
> How often do you find bugs in the generated code (and a corollary, how frequently has a bug slipped in that was only caught later)?
90% of the time I'm only accepting a single line of code at a time, so it's less a question of "is there a bug here" and more "does this do what I want or not?" Like, if I'm writing an email and gmail suggests an end to my sentence, I'm not worried about whether there's a bug in the sentence. If it's not what I want to say, I either don't take the suggestion, or I take the suggestion and modify it.
If I do accept larger chunks of suggested code, I review it thoroughly to the point where it's no longer "the AI's" code -- for all intents and purposes it's mine now. Like I said before, most of the time it's basically the code I was going to write anyway, I just got there faster.
I think there are many reasons why something that people do want might not (yet) exist. For example, a monopolized market where customers don't have many choices. Or like you mentioned, difficulty in competing with incumbent advantage. Or maybe people just don't know what they want (e.g. "faster horses")
IMO simple objections will not sway tech platforms from the status quo of free-for-all data hoarding. We must vote with our feet and move away from the data-hoarding incumbents towards user-centric alternatives. Where suitable alternatives don't exist, we'll need to create them.
Finally Apple's switched to USB-C so that we can cut down on cable waste!
Edit: downvoters, I'm genuinely curious to hear your perspective.
And which ones are those? Once I've selected the right provider, how do I reliably implement my backups?
> If you put yourself in a place where someone can take everything from you than it's a real risk that they might.
I'll just go ahead and stop using every major software product created in the last decade.
Despite my sarcasm you're not wrong, I agree completely with what you're saying. But to follow your advice is not easy, especially for the average user. IMO it's a problem with the way software is made, and while many of us are vaguely aware of the problem, there's been little progress towards solving it.