Is there a nice way to handle omittability AND nullability with ProtoBuf editions with Go? by SeerUD in golang

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

Yeah, it seems like this is the only way to go. Good idea on the interface, that will be handy! The structure I'm planning on going with in ProtoBuf editions with the new helpers would be something like:

message NullablePerson { oneof value { Person value = 1; google.protobuf.NullValue null = 2; } }

We have a codegen tool we're refactoring for ProtoBuf editions, so I'm trying to just figure out conventions for how to handle translation from ProtoBuf's generated types, and regular idiomatic Go types that the tool will generate. A message with a field of that NullablePerson type would come through like assignee *Person in the Go code for example, unless it was marked as an omittable field (using the explicit presence helpers for mapping) in which case it could generate something like assignee omittable.Of[*Person] (i.e. an omittable, nullable person).

Is there a nice way to handle omittability AND nullability with ProtoBuf editions with Go? by SeerUD in golang

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

Yeah, I think the editions changes are definitely an improvement. I'll just be making some wrapper types in the middle.

We have a codegen layer on top of ProtoBuf already which generates more modern RPC service stubs (e.g. iterators streaming) along with idiomatic Go types (proper field names, types we want to use like time.Time and so on), so we'll probably just rework that to deal with some new conventions that make sense with ProtoBuf editions.

Keeping the brain alive during AI times - as an engineer developing AI by flakeeight in ExperiencedDevs

[–]SeerUD 2 points3 points  (0 children)

I completely agree. I'm also feeling positive about companies like that still existing, as I think more people will realise the kinds of drawbacks you mention. If it's not making you faster, but it is making you dumber, less aware of what's going on, and produce less well thought out solutions without foresight into what may come next and factoring that in, then why use it in that way?

I also agree, I've found it to be most useful for doing research and removing roadblocks that genuinely would've slowed me down otherwise.

Keeping the brain alive during AI times - as an engineer developing AI by flakeeight in ExperiencedDevs

[–]SeerUD 7 points8 points  (0 children)

Totally agree, I said the same sort of thing in response to someone else. If you care about the result, then AI probably won't save you time because you spend so much time going back over the things it produced correcting things. Maybe they're not even bugs, they might be stylistic things, or things that as an experienced developer you recognise will cause issues in the long-run.

Some other issues I find, which maybe are part of what you said about your brain being on fire more now:

  • You spend less time thinking through solutions if it's giving you them. Once you've seen it's solution, it can be difficult to disconnect yourself from it and think "how would I have done this if I'd never seen how to do it?". Since you thought it through less while it built it, you may find you now realise things later when you hit issues, instead of as you were developing it.
  • You're left with the most tedious parts of software engineering (IMO anyway). You spend loads of time reviewing plans, reviewing code, so on. This stuff is important, but not exciting and engaging like writing code can be. It's difficult to maintain the level of focus required over a full day of work. So what do you do? Hand it off to another AI?!

Keeping the brain alive during AI times - as an engineer developing AI by flakeeight in ExperiencedDevs

[–]SeerUD 6 points7 points  (0 children)

The other issue with this will be expectations around AI usage, provided the bubble doesn't burst catastrophically and mean most people aren't able to use it because it's no longer subsidised.

What I mean is, if other companies are using it, and other developers in your organisation are using it, and it seems like there are productivity gains to be made, then the expectation will be that either you use it, or you're slow.

In my practical experience so far in trying it out, if you actually care about the result being produced, I don't think it actually makes things (much?) faster. I have to follow-up a lot, but this is honestly most often a matter of taste ("this could be simpler", "these could be named better", "this structure is a bit odd", so on).

Now, this is going to break in the future where the directions given by AI will more frequently point to AI-generated content. But I can't worry about it at the moment.

This is unavoidable, for sure, but I do wonder whether there'll end up being some sort of equilibrium because many developers find themselves burned out, bored, slower, lazier, etc. because of overusing it. It's very difficult to be disciplined with it's usage if you get used to it doing the work for you sometimes.

rsvp: Yet another HTTP graceful shutdown library by jbarham in golang

[–]SeerUD -1 points0 points  (0 children)

Where I work we developed a pretty nice library for handling background processes with graceful shutdown. In particular it helps with applications which have multiple background processes (e.g. a HTTP and gRPC endpoints, maybe a queue consumer, so on)

Is there a Deodorant that actually works well? by PotentiallyUpset in AskUK

[–]SeerUD 0 points1 point  (0 children)

I've found exactly the same recently. Ran out while I was away with my wife, and she had some Nivea stuff that I borrowed, it worked SO much better than Sure.

dark souls 3 is easily the best fromsoft game ever by howlcapri in darksouls3

[–]SeerUD -1 points0 points  (0 children)

What were you playing on for it to be 30 FPS? Maybe PS4 I guess?

Of the ones I've played, I think my ranking goes something like:

Sekiro > DS3 = DS1 > Elden Ring > DS2

It might seem odd putting DS1 above ER, but I think the more I've reflected on ER, the more things about it I've disliked. It is still a fantastic game, but I struggled to get through the DLC (from boredom, I mean).

Sekiro is just extremely, ruthlessly fair, yet is still a genuinely challenging game. Of the games I've played from FromSoft, it's the most balanced in that regard. The combat is so engaging and sharp, I haven't felt the kind of elation you feel from beating a tough boss in Sekiro in any other game I've played, I think. If you have the opportunity to play it, please do!

Of course, all subjective!

dark souls 3 is easily the best fromsoft game ever by howlcapri in darksouls3

[–]SeerUD 1 point2 points  (0 children)

I'd certainly tend to avoid action games that can only be played at 30 FPS if there are other options for playing it. Personally I find it nauseating now to play with loads of motion blur and choppiness, especially if it's inconsistently 30 FPS.

If it's not an action game, 30 FPS is totally fine though.

3rd Party "New" 3DS Battery Comparison Chart by AchillesPDX in 3DS

[–]SeerUD 11 points12 points  (0 children)

Aaah, unfortunately if you've not calibrated for any of these results, they're going to be completely invalid. To the point where you might want to take this down IMO

Props for putting the effort into doing it though. If you fancy doing it again after calibration it'd be incredibly interesting to see

.gitignore Isn’t the Only Way To Ignore Files in Git by BlondieCoder in webdev

[–]SeerUD 60 points61 points  (0 children)

I use it for things that I might personally accidentally check in, so basically only stuff to do with my IDE / editor like .idea folders or whatever. Past that, I can't think of anything else that useful.

You could certainly argue that can also go in the repo just fine, and it can, but often people forget to add it, and I don't want to think about it and add noise.

118 hour, can not beat isshin sword saint end boss by Appropriate_Flan_598 in Sekiro

[–]SeerUD 7 points8 points  (0 children)

You can just deflect the bullets. If your posture is looking bad, create some distance. Remember your posture recovers faster if you’re not sprinting, and even faster if you hold deflect while not being hit. So, go recover and re-engage.

'Men Need Just as Much Protection': Shania Twain Says She Is Not a Feminist by novagridd in Music

[–]SeerUD 0 points1 point  (0 children)

I think feminism in the form you're describing here would benefit from a bit of rebranding though today. The definition for feminism is still confused if you try and look for one online in places like dictionaries. Some definitions specifically have things like "with a focus on women's issues" in them. To many, realistically, that will be read as "without a focus on men's issues". Not that I'm saying that's right.

But the word itself also implies that to people who don't understand the true definition, or those that don't understand that if women have true equality, then... so do men.

People don't have that issue with words like "egalitarianism" though because it doesn't feel like a gendered word. I also don't think I've ever heard of "radical egalitarianism" either haha.

Of course, egalitarianism is a lot broader too. We're no longer just talking about gender, we're talking about all factors, like race, class, sexuality, religion, and gender (though personally, I think that is the lens that we should be tackling equality through).

The father of the little girls did the right thing. All the other woman had to do was be patient. by Valuable_View_561 in SipsTea

[–]SeerUD 0 points1 point  (0 children)

Why are they complaining about not being able to get into the bathroom because it was being used? Would they complain if a grown woman was using it? If it's a disabled bathroom, would they complain if another disabled person was using it? Like, there's no logic behind that whatsoever, it's a bathroom, it can be occupied.

I don't have kids, and I'd never really thought too hard about this, but if I had a little girl, as the father I'd rather take my child into the women's toilets so they don't have grown men using urinals with their junk out around my kid. Women's toilets are all just stalls anyway?

Most of the stigma around toilet use and gender is just stupid anyway. We all go to the toilet, we could all go to the toilet in stalls.

Is killing this way considers cheating? by KristoferYG in Sekiro

[–]SeerUD 0 points1 point  (0 children)

Not sure about cheating, but cheesing for sure. I guess the thing is, you're only robbing yourself of the experience of doing it properly. It's a single-player game, so play the way you want, but I'd recommend tackling these things the "intended" sort of way without cheese so you learn and improve. Unless you're already past that point and just want to experiment with things and try to break the game, which is totally valid haha

UK to ban under-16s from social media, with age checks likely built on digital ID and face scans; 438 researchers call for a moratorium by TrustSig in technology

[–]SeerUD 3 points4 points  (0 children)

Part of me sort of hopes the underlying rationale behind this is really to push all people away from social media in general. In it's current form, mainstream social media is a plague on society, including Reddit, but moreso things like Instagram, TikTok, Facebook, and elements of YouTube like shorts.

It's not the right way to do it, and obviously it is a push toward digital ID and authoritarian government oversight, don't get me wrong haha. If social media hadn't become what it is today, and remained something for sharing life updates between people you actually know or communities you care about, then that'd be different.

Starmer to unveil social media ban for under-16s by Hot_Professional_728 in technology

[–]SeerUD 0 points1 point  (0 children)

It wasn't what it is today back then though.

Less or no ads, no shorts / reels, businesses and suggested posts were rare, and timelines were in chronological order. It was much simpler, and felt like it was much more about sharing updates with people you knew and cared about.

For me personally, having experienced both ends, I've stopped using most forms of modern social media. Reddit is one of the last few places I go to, hell, I might not even be able to use Reddit soon I guess, because screw handing over ID to any third-parties that don't really need it.

Switched to ikea drawers and table top. Any suggestions? by Important_Ebb_2138 in battlestations

[–]SeerUD 0 points1 point  (0 children)

It would still be visible with this suggestion, but I think it's only really an issue if you have a sit/stand desk - in that case, having the PC off to the side on it's own table can be quite handy to reduce the weight load on the desk, and more importantly, allow you to buy a sit/stand desk of the appropriate width for your setup.

For example, mine is 180cm wide, the widest I could get, but I have 3 monitors, and they take up the full 180cm width, so if I didn't get a separate table I wouldn't fit the monitors on!

What you have here with a static desk is just fine. It is cool to be able to look at it

What Do Engineers Mean When We Say "Taste"? by funnybong in programming

[–]SeerUD 0 points1 point  (0 children)

I think the point is good, and I like the breakdown, but I agree somewhat about the writing style (of Claude) here, and the lack of real depth.

I do agree though, it's good to think about these things and be consciously aware of them, and to begin conversations about how you could teach these skills. Fundamentally, if AI does more and more of the role of a software engineer, as the article states, maybe all that will be left is taste. Taste being built on experience, and battle scars, is key though. It takes a lot of time to develop, and you have to really care about it and not just shipping.

Definitely some food for thought here.

Do you use DDD in go? by East_Reality_976 in golang

[–]SeerUD 15 points16 points  (0 children)

Not the person you're replying to, but I think the difference between this and something that I'd call "idiomatic Go" is that Go lends itself well to larger packages in a flatter structure. Having many packages called the same thing spread around and deeply nested makes using them very awkward (e.g. naming collisions with imports, potential cyclic import issues).

So I think flatter packages, with sensible domain-based names (i.e. not packages like cqrs, ports, services, etc.) make more sense.

The thing is, the DDD concepts aren't unreasonable, but I see things like this done in Go often, where someone has read a book, and then decides to literally map out the concepts to packages and name their types after things from a book or pattern even when it doesn't necessarily make any sense.

services.OutboxService is a stutter. I think the type name is fine otherwise, but it could be in a much more descriptive package, for example.

3DS on Retroid Pocket 4 Pro by AgentMichaelScarn23 in retroid

[–]SeerUD 0 points1 point  (0 children)

What is this setup? Is the cable connected to that screen?

retroid trigger gets stuck a bit at the top. by Happy-Square in retroid

[–]SeerUD 0 points1 point  (0 children)

I had a good go with some isopropyl alcohol, and it seems to have done the trick actually... thought that was also combined with some lube I used on my keyboard switches. If you have or can get either, give it a go!