There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

programmer_humor

This magazine is from a federated server and may be incomplete. Browse more on the original instance.

Annoyed_Crabby , in Responsive Design Go Brrrr

What’s the use case for such a big monitor anyway?

bjoern_tantau ,
@bjoern_tantau@swg-empire.de avatar

Demonstrating the power of tiling window managers.

stepan ,

Niri would rock on this thing!

umbrella ,
@umbrella@lemmy.ml avatar

thats a cool concept

scrawdaddy ,

You sent me down a rabbit hole. Now I’m using a hamerspoon script which mimicks paperwm/niri

Liking it so far!

nous ,

It is a digital signage display (ie in store ads, menus, displays etc) - not meant for desktop use.

turtlepower ,

Looks like Untitled Goose Game.

Darkraisisi ,
@Darkraisisi@feddit.nl avatar

Yeah he played some games on it to show the different scaling implications.

TxzK ,

Being able to fit a java class name in 1 line

ZILtoid1991 ,

And OOP in general. I also used to be infamous for such things, then I started to shorten the names, including using letters that are obvious to the user (e.g. int w, h; for width and height).

nyan ,

Eh, I’m sure we can overrun it just by gluing sufficient instances of Factory to the end of the classname.

airbussy , in Let's do micro service

But why? Microservices do have some good advantages in some scenarios

1984 , (edited )
@1984@lemmy.today avatar

Problem is that companies are using them for all scenarios. It’s often their entire tech stack now, with kubernetes.

It’s similar to the object oriented hype that came before it, where developers had to write all their programs in a way so they could be extended and prepared for any future changes.

Everything became complex and difficult to work with. And almost none of those programs were ever extended in any significant way where object oriented design made it easier. On the contrary, it made it far more difficult to understand the program since you had to know which method was called in which object due to polymorphism when you looked at the code. You had to jump around like crazy to see what code was actually running.

Now with kubernetes, it’s all about making the programs easier to scale and easier to develop for the developers, but it shifts the complexity to the infrastructure needed to support the networking requirements.

All these programs now need to talk over the network instead of simply communicating in the same process. And with that you have to think about failure scenarios, out of order communication, missing messages, separate databases and data storage for different services etc.

prof ,
@prof@infosec.pub avatar

You can have the best tool in the world and still find people just hitting their own face with it.

1984 ,
@1984@lemmy.today avatar

I don’t think people have a choice. If you join a company where they use kubernetes, you have to use that technology for everything. You can’t escape the complexity even if you just want to make a simple program. It still needs to run in kubernetes.

prof ,
@prof@infosec.pub avatar

Depends on who you think the people are.

CTOs, technical team leads and such can make those decisions. And devs can also suggest migrating to simpler solutions.

If a tech giant like Amazon can do it like they did with Prime Video, I don’t think it’s impossible other companies can do so too.

1984 ,
@1984@lemmy.today avatar

Yes but in practice, companies don’t want to replace their entire tech stacks, and specially if it’s a large company. It costs an enormous amount of money (because of the time and effort it takes) and means the entire company has to relearn how to work with that stack instead.

It’s not impossible and it can happen, but in my experience from working at probably 20 companies now, there is almost always a strong resistence to change.

People don’t even change their default search engine or browser most of the time.

bort ,

if you just want to make a simple program. It still needs to run in kubernetes.

“hello OPS-team. Here is my simple program. Have fun running it on your kubernetes”

magic_lobster_party ,

On the contrary, it made it far more difficult to understand the program since you had to know which method was called in which object due to polymorphism when you looked at the code. You had to jump around like crazy to see what code was actually running.

I agree with this point, but polymorphism is often the better alternative.

Using switch statements for the same thing still have the problem that you need to jump around like crazy just to find where the variable was once set. It also tends to make the code more bloated.

Same with using function references, except this time it can be any function in the entire program.

The solution is to only use polymorphism when it’s absolutely needed. In my experience, those cases are actually quite rare. You don’t need to use it everywhere.

1984 ,
@1984@lemmy.today avatar

Yeah I agree. With experience you know where to use it and where it really shines, and when not to use it because it will just make everything harder to reason about.

But a lot of devs are not that experienced when they make these decisions. All of us learn from mistakes, and those mistakes stay in the code base. :)

frezik ,

If object oriented design is fundamentally about components sending messages to each other, then microservices are a different route to OO design. If people are bad at OO design, then they’re likely bad at designing microservices, as well. The two aren’t so separate.

All these programs now need to talk over the network instead of simply communicating in the same process.

This is where things go really wrong. Separating components over the network can be useful, but needs careful consideration. The end result can easily be noticeably slower than the original, and I’m surprised anybody thought otherwise.

1984 ,
@1984@lemmy.today avatar

It’s absolutely slower. There is no way to make a network request faster than a function call. It’s slower by probably thousands of times.

TrumpetX ,

I have to look it up every time, but this is always worth reading once a year to remind yourself:

gist.github.com/hellerbarde/2843375

1984 ,
@1984@lemmy.today avatar

Yeah I’ve seen it before. It’s a very good reminder for everyone to keep in mind isn’t it. :)

frezik ,

Since this is from 12 years ago, have any of these numbers changed much? Especially the SSD numbers.

TrumpetX ,

Not in any order of magnitude

frezik ,

By that chart, 1MB read from an SSD is only 4 times slower than 1MB read from RAM. Wouldn’t have to be an order of magnitude improvement to have an important affect there.

addie ,
@addie@feddit.uk avatar

Think you’re understating it there. Network call takes milliseconds at best. Function call, if the CPU has correctly predicted the indirect branch, is basically free, but even if it hasn’t then you’re talking nanoseconds. It’s slower by millions of times.

1984 ,
@1984@lemmy.today avatar

Yeah it’s insane. But of course if scaling different parts of the application, I guess micro services are the way to do it. But otherwise one could scale the entire app by just putting more of the entire app on servers. No need for micro services. It just needs to be written to be able to listen to message queues and you can have any number of app instances.

frezik ,

In theory, it can be faster with parallelization. Of course, all the usual caveats about parallelization apply, and you’re most likely going to create a slower system if you don’t think it through.

namingthingsiseasy ,

There is no way to make a network request faster than a function call.

Apologies in advance if this it too pedantic, but this isn’t necessarily true. If you’re talking about an operation call that takes ~seconds to run, then the network overhead is negligible. And if you need specialized hardware for it, then it definitely could be delegate it out to a separate machine over the network. Examples could include requiring a GPU, more RAM, or even a faster CPU if your main application is running on more power-efficient CPUs.

I’m not saying that this is true in every case - they are definitely niche cases. But I definitely wouldn’t say that network requests are never faster than local function calls.

Corbin ,

Well put. And this is a generic pattern; for example, GPUs are only faster than CPUs if the cost of preparing the GPU and retrieving the result is faster than directly evaluating the algorithm on the CPU. This also applies to main memory! Anything outside of the CPU can incur a latency/throughput/scaling tradeoff.

BellyPurpledGerbil ,

I don’t disagree with there being tradeoffs in terms of speed, like function vs network requests. But eventually your whole monolith gets so fuckin damn big that everything else slows down.

The whole stack sits in a huge expensive VM, attached to maybe 3 or 4 large database instances, and dev changes take forever to merge in or back out.

Every time a dev wants to locally test their build, they type a command and have to wait for 15-30 minutes. Then troubleshoot any conflicts. Then run over 1000 unit tests. Then check that they didn’t break coverage requirements. Then make a PR. Which triggers the whole damn process all over again except it has to redownload the docker images, reinstall dependencies, rerun 1000+ unit tests, run 1000+ integration tests, rebuild the frontend, which has to happen before running end to end UI tests, pray nothing breaks, merge to main, do it ALL OVER AGAIN FOR THE STAGING ENVIRONMENT, QA has to plan for and execute hundreds of manual tests, and we’re not even at prod yet. The whole way begging for approvals from whoever gets impacted by anything from a one line code change to thousands.

When this process gets so large that any change takes hours to days, no matter how small the change is, then you’re fucked. Because unfucking this once it gets too big becomes such a monstrous effort that it’s equivalent to rebuilding the whole thing from scratch.

I’ve done this song and dance so many times. If you want your shit to be speedy on request, great, just expect literally everything else to drag down. When companies were still releasing software like once a quarter this made sense. It doesn’t anymore.

1984 ,
@1984@lemmy.today avatar

I agree with you, and that is a hellish environment to work in.

There must be a better middle ground for all of this.

vrighter ,

but they have a lot more disadvantages for most scenarios (if you’re not a faang scale company, you probably don’t need them)

fidodo ,

The problem is that they become a buzz word for at scale companies that need them because they have huge complex architects, but then non at scale companies blindly follow the hype when they were created out of necessity for giant tech stacks that are a totally different use case.

fidodo ,

They add a lot of overhead and require extra tooling to stay up to date in a maintainable way. At a certain scale that overhead becomes worth it, but it takes a long time to reach that scale. Lots of new companies will debate which architecture to adopt to start a project, but if you’re starting a brand new project it’s probably too early to benefit from the extra overhead of micro architectures.

Of course there are pros and cons to everything, don’t rely on memes for making architecture decisions.

anakin78z ,
@anakin78z@lemmy.world avatar

I guess I’m not sure how others build with micro services, but using AWS SAM is stupid simple, and the only maintenance we’ve ever had to do is update a Node version. 🤷

lemmyvore ,

SAM is serverless but that doesn’t necessarily mean micro services.

tsonfeir , in Let's do micro service
@tsonfeir@lemm.ee avatar

In comparison with… and examples?

vzq , in Gotta use all those brain cells

I’m always astounded how eager the average software engineer is to trade away actual coding work for busybody overhead crap jobs.

NigelFrobisher ,

Often the only way to progress is to take a role where you spend hours each day edging middle management.

vzq ,

What is “progress”?

dabu ,
@dabu@lemmy.world avatar

Higher salary, usually

kralk ,

The corollary is - I’m surprised how many programmers are opposed to documenting what they’re doing?

vzq ,

That’s not what I meant. You know that.

wizardbeard ,

I’m probably a freak, but I can’t stand working on something complex, being pulled away from it for a week or two, and not being able to pick things back up because it’s not documented well. Especially when I’m the only person to blame.

I also make scripts and programs with the goal to hand them off when I’m done. I’ve got more than enough to keep me busy at work without having to be the only person able to support my projects forevermore. Ultimately I’m still the go to, but I never want to be so critical that I can’t take time off, or that I’m effectively on call 24/7. I want the credit, but the whole point is to reduce responsibility by making shit more efficient and easy.

1984 ,
@1984@lemmy.today avatar

Because they give them nice titles, and young devs want the status of the title. :)

I tried being a manager but I hated everything about it. The dishonesty, the politics, the useless meetings.

I’m back in a development role now and I’m super happy and excited to start the day. Almost no meetings!

SpaceNoodle ,

Guess which one pays better and gives me more free time to work on my own passion projects.

vzq ,

Obviously you do you and you do not owe anyone anything (least of all your employer).

However, something does not sit well with me about the fact that we’ve created a system where the most driven and ambitious people are removed from the production process as quickly as possible.

It says A LOT about what we value as an industry.

pantyhosewimp ,

Yes. I have worked in a financial company and a lot of teams in that particular company were structured with 2 or 3 Americans with no skills other than exposure to internal company info, the kind of stuff that should just be written down in a wiki somewhere. And when real work needs to be done they (metaphorically of course) drag an Indian contractor out of a cage who actually knows what’s going on and how to do anything. And they do it with disdain as if being a contributing member of society is a bad thing.

Just being in a meeting with some of these teams made me feel like I was a Harkonnen from Dune.

SpaceNoodle ,

Oh, you’ve misjudged my drive and ambition.

boredtortoise ,

Would be nice to be paid well to do what’s interesting

Blamemeta ,

No we’re not eager. Paperwork is just part of any job.

NigelFrobisher , in Let's do micro service

Pretty sure microservice architecture was invented by enterprise architects as a way to justify their existence, and by dev teams in general to explain why adding new features now takes so long (we have adopted best practice!).

Tyoda , in I am a sinner

Deprecated schmeprecated! Remove it or I’m going to keep using it! (and sleep well)

brisk , in I am a sinner
GissaMittJobb , in Let's do micro service

It’s a tool like any other, appropriate under some circumstances and inappropriate in others.

Blindly rejecting it without considering whether it’s appropriate in the context is honestly just as bad as choosing it without considering whether it’s appropriate in the context, fwiw.

Arkaelus , in Gotta use all those brain cells

Heeey! It’s not, like… JUST that, okay?! No, I’m not in denial, shut up!

30p87 , in Certified in AI

If I see someone boasting about programming with AI, in 0.1% of cases they use it responsibly (as a tool to quickly get introduced into a topic and brainstorm ideas) and the rest of times they’re probably a script kiddie letting ChatGPT do advent of code or smth and calling themselves programmers.

wizardbeard ,

Same thing with all the folks who took the “copy pasting from stackoverflow” joke literally.

I regularly have to find guidance online through code examples, but you need to understand what the code you’ve found actually does under the hood for when it inevitably has issues because it wasn’t made for your specifc use case.

floofloof ,

Do people actually copy and paste code with no understanding of how it works, from SO or Copilot? I always thought this was just a joke.

datavoid ,

I feel like there is almost no chance of a copilot program working as expected without having an understanding of the code it writes. It makes some hilariously bad choices at times, and frequently drops and changes code that was added previously.

Redkey , (edited )

As someone who has often been asked for help or advice by other programmers, I know with 100% certainty that I went to university and worked professionally with people who did this, for real.

“Hey, can you take a look at my code and help me find this bug?”
(Finding a chunk of code that has a sudden style-shift) “What is this section doing?”
“Oh that’s doing XYZ.”
“How does it work?”
“It calculates XYZ and (does whatever with the result).”
(Continuing to read and seeing that it actually doesn’t appear to do that) “Yes, but how is it calculating XYZ?”
“I’m not 100% sure. I found it in the textbook/this ‘teach yourself’ book/on the PQR website.”

Emmie , in AI Suggestions

Ai wIlL eNsLAve huMaNs aNd rUlE tHe wOrLD

AI:

dariusj18 ,

If anything this is a great example of why that could happen. Simple leaps of logic without context.

Emmie , (edited )

I am just making fun of all those AI doomsayers on Reddit. It’s nowhere close enough to be even called such. It’s just a mindless algorithm, a tool. Math operation. Are calculators smart? Well yes from a certain point of view.

quinkin , in I am a sinner

Finally finish acceptance testing, get the changes deployed to production, wrap up the documentation. Job well done.

Bing. Email from vendor “we are entirely changing our API, it’s now push instead of pull”.

aluminium , in Let's do micro service

Typical issue of the corportate programming world being a hivemind. Just because many big tech companies use it you can’t blindly implement it for your 5 developer team.

And it for sure has its usecases - like if you run something with constant load swings that does n’t need to be 100 percent accurate like Youtube it makes sense. You can have a service for searches, comments, transcoding, recommendations, … which all scale independently trading in some accuracy. Like when you post a comment another person doesn’t need to see it within 1 second on another comment service instance.

Traister101 , in Companies are not your friend

JetBrains might not be my friend but they don’t hold anywhere near the dev tool monopoly Adobe does for artists. Know what happens if JetBrains starts to blow massive ass? I finally sit down and figure out how to get my terminal editor working with my LSP. Yeah I lose some productivity but not as much as I’d lose by using Visual Studio or fuckn Eclipse.

waz ,

Also, doesn’t the jetbrains license let you continue to use the version that was the latest as of when your license ended. It’s a small difference, but also kinda huge.

RonSijm ,
@RonSijm@programming.dev avatar

No. I know this because a couple of times my license expired, and 30 days before it does you’ll just get a little warning in the IDE - or in tools like Resharper. After that it just stops working.

Michal ,

Iy used to he that, but they’re pushing the new subscription model now and i don’t think the old one can still be purchased.

ResoluteCatnap , (edited )

It’s the version from when you paid your annual subscription (or 12 monthly payments ago) plus any bugfixes.

So you buy 4.3.2 and you will always have access to 4.3.Z

2 months later they release 5.0.0. Your subscription let’s you use 5.0.0. If you cancel your subscription then can go back to your perpetual version 4.3.Z

At least that’s how it’s supposed to work

floofloof ,

At what point do I get to keep 5.0 instead?

kieran ,

Assuming you keep paying, 12 months from its release if you pay monthly or you’ll get a licence for whatever version is newest at the point you renew if you pay yearly

Buckshot ,

I think another key difference is everyone can use whatever tool they like and still work on the same codebase. They don’t have proprietary file formats that lock in you and your entire team forever.

YIj54yALOJxEsY20eU ,

If you are interested there is a great repo to get you up an running on neovim without messing with anything. I got LSP support out of the box and took me less than a week to fully transition away from vscode. It’s called kickstart and is maintained by one the neovim contributors. I’ve done minimal tweaking months later.

Kolanaki , in Companies are not your friend
@Kolanaki@yiffit.net avatar

Then why is Gabe Newell on my Friends list? 😌

  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines