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.

pozbo , in data secured
@pozbo@lemmy.world avatar

Great title

Anticorp , in meanwhile electron

Everyone wants to removed about JavaScript. How about using languages like Python and Java to create websites? You have to use an entire bloated framework and compilation just to be able to use a language that was never intended to be used for websites. Java web frameworks are atrocious.

NatoBoram ,

The experience of using these JS frameworks is not comparable to using Java or Python as if they were PHP. There’s tangible (and monetary) benefits to using web tool for the web.

Anticorp ,

Right. JavaScript is a web tool and is used for the web. The other two I mentioned are not, yet they don’t get anywhere near the same amount of hate as JavaScript does. We get it, JavaScript has loose typing and was primarily a scripting language 30 years ago. Things change. JavaScript is a robust language capable of OOP now, and you can even add typing if that’s your hangup

someone_secret ,

Maybe for Java but Python does have Flask, which is anything but bloated.

Django, from what I heard, may be a bit bloated, but, from what I heard at least, it has some very useful tools

atyaz , in data secured

Does windows not have the concept of “recents” so you can find things you were just messing with easily

ImpossibleRubiksCube ,

It may have once, but it was a while back now…

Crashumbc ,

It did, but even then you could just open it again. NOT find out where the fuck it was stored…

Blank ,

Right click > Open file location

PushButton ,

Oh shit, look at that! Saved in Documents in my home directory!

ImpossibleRubiksCube , in data secured

“You have so many gigabytes on that disk, and so many different folders… it seems kind of selfish and draconian to insist on just one!”

fartsparkles , in data secured

PowerToys Run or Everything are the Windows search replacement everyone needs.

JBloodthorn ,
@JBloodthorn@kbin.social avatar

Seconding Everything. Being able to search for text inside of files has been a godsend.

thedoginthewok , (edited )

There’s an Addon for Powertoys Run that integrates Everything and it’s awesome.

fartsparkles ,

Omg I love you, thedoginthewok!

CodeBlooded , in Who is this "Jenkins" and what now has broken him?
@CodeBlooded@programming.dev avatar

Real talk- I agree with this meme as truth.

The more and more I use CICD tools, the more I see value in scripting out my deployment with shell scripts and Dockerfiles that can be run anywhere, to include within a CICD tool.

This way, the CICD tool is merely a launch point for the aforementioned deployment scripts, and its only other responsibility is injecting deployment tokens and credentials into the scripts as necessary.

Anyone else in the same boat as me?

I’d be curious to hear about projects where my approach would not work, if anyone is willing to share!

Edit: In no way does my approach to deployment reduce my appreciation for the efforts required to make a CICD pipeline happen. I’m just saying that in my experience, I don’t find most CICD platforms’ features to be necessary.

wso277 ,

This is pretty much what we do as well

All the build logic is coded in python scripts, the jenkins file only defines the stage (with branch restrictions) and calls the respective script function.

This means it works on all machines and if we need to move away from jenkins integration with a new ci platform would require minimal effort.

SpaceNoodle ,

Yeah, except for the Docker part

gornius ,

What’s wrong with Docker?

SpaceNoodle ,

TBF, the problem isn’t Docker, it’s overused containerization

CodeBlooded ,
@CodeBlooded@programming.dev avatar

I’ve found Docker helpful when I want to use it to build binaries or use CLI tools that may not be available directly on the CICD platform. Also, Docker makes it easier to run the same code on MacOS that I ended up running on a Linux CICD server.

What would you consider to be overuse of containers?

xilliah ,

What about related tools such as viewing artifacts such as for example total memory usage, and graphing that in the browser.

And sending emails, messages etc in case of a failure or change.

CodeBlooded ,
@CodeBlooded@programming.dev avatar

Most of those things mentioned aren’t bona fide needs for me. Once a developer is deploying their project, they’re watching it go through the pipeline so they can quickly respond to issues and validate that everything in production looks good before they switch contexts to something else.

I see what you’re saying though, depending on what exactly is being deployed, the policies of your organization, and maybe expectations that developers are working in another context once they kick off a deployment, it could be necessary to have alerting like that. In that case it may be wise to flex some features of your CICD platform (or build a more robust script for deployment that can handle error alerting, which may or may not be worth it).

xilliah ,

I come from game dev. We do lots of checks on the data that all kinds of people can screw up. So it’s important these situations are handled automatically with an email to the responsible person. A simple change can break the game, or someone might commit an uncompressed texture so the memory usage jumps up.

synae ,
@synae@lemmy.sdf.org avatar

You’re not advocating against CI like the meme seems to be, but rather for CI builds to be runnable on human’s machines and the results should be same/similar as in when running w/in the CI system. Which is what CI folks want anyway.

devious ,

I don’t think there is a single right or wrong answer but to play devils advocate making your CI tooling lightweight orchestration for your scripts that do the majority of the work means you lose the advantages of being able to easily add in third party tools that you want to integrate with your pipeline (quality, security, testing, reporting, auditing, artefact management, alerting, etc). It becomes more complex the more pipelines you are creating while maintaining a consistent set of tooling integrations.

gandalf_der_12te ,

Honestly, CI is only meaningful on bigger projects (more than 100 man-hours invested in total). So I most often go without.

But I do see its point.

killabeezio ,

Then you would probably enjoy concourse

Diplomjodler , in python < shell (for scripts)

Python is the second best language for everything. Having one language that does it all is better than learning several that might do it a little bit better.

sigh ,
@sigh@lemmy.world avatar

holy shit you’re right

bort ,

Careful, that attitude is how we ended up with this infestation of JavaScript!

grue ,

JavaScript is very much not the second best language for anything.

JavaScript came about because it was the only choice in the context for which it was designed, and then it metasticized into other contexts because devs that used it got Stockholm syndrome.

thomcat ,
@thomcat@midwest.social avatar

“Metastasized” is a fantastic verb for JavaScript

dukk ,

Speed is a serious problem in Python though. Python has its use cases, and so do other languages. Things would not end well if we started using Python for everything.

Chunk ,

I have worked on a lot of real time simulation with python glue. It is… not fun. I’m a better programmer for it though.

Diplomjodler , (edited )

If I wanted to write a 3D game engine, I wouldn’t use Python either. But there’s zero chance of me ever doing that. For 90% of things 90% of people do, Python works just fine. And the performance thing is actively being worked on and getting better all the time.

noli ,

This might be an unpopular opinion but python’s speed wouldn’t even be an issue if it was 5x slower than it is now.

Python is a language designed for write-time performance, not runtime performance.

Vulwsztyn ,

Not since 3.11, python is now one of the fastest languages

dukk ,

Definitely not even close to being one of the fastest languages, but still faster nonetheless.

entropicdrift ,

Python is the best “glue” language I’ve ever used. When you want to chain together your program’s high-level logic and all of the loops happen inside lower-level languages like Rust, Go, Zig, D or C, Python’s performance is perfectly adequate and it’s so clear and concise it reads like pseudocode.

nixfreak ,

Even worse when you look at a class that’s over 1k long.

Diplomjodler ,

As long as you do all your lookups with dicts or sets performance is pretty decent for smaller workloads.

grue ,

Python is secretly a functional-paradigm language. If you’re not making liberal use of comprehensions instead of loops (especially loops with LBYL conditions in them), you’re doing it wrong.

alr , in Colors, localized.

If you think French is bad…


<span style="color:#323232;">// Danish
</span><span style="color:#323232;">farve = "#(9+½+5)FFAA"
</span>
rclkrtrzckr OP ,

Please elaborate. Any background on this?

alr ,

The Danish word for 99 is nioghalvfems, which literally means “nine and half five.” Which you could be forgiven for assuming meant 11½. The trick is that a) “half five” actually means 4½, as in half less than five, and b) it’s implied that you’re supposed to multiply the second part by 20. So the proper math is 9 + (-½ + 5) * 20 = 99.

jayrhacker , in Java
@jayrhacker@kbin.social avatar

It's the same in the the standard c library, so Java is being consistent with a real programming language…

idunnololz ,
@idunnololz@lemmy.world avatar

Implying java isn’t a real programming language. Smh my head.

BlackVenom ,

Nice ATM machine.

idunnololz ,
@idunnololz@lemmy.world avatar

Smhmh my head

Glome ,

Java has many abstractions that can be beneficial in certain circumstances. However, it forces a design principle that may not work best in every situation.

I.e. inheritance can be both unnatural for the programmer to think in, and is not representative of how data is stored and manipulated on a computer.

whats_a_refoogee ,

You don’t have to use inheritance with Java. In fact, in most cases it’s better that you don’t. Practically all of the Java standard library doesn’t require the use of inheritance, same with most modern libraries.

On the contrary, I think inheritance is a very natural way to think. However, that doesn’t translate into readable and easy to maintain code in the vast majority of the cases.

I am not sure what you mean by how it’s stored or manipulated on a computer. A garbage collected language like Java manages the memory for you. It doesn’t really care if your code is using inheritance or not. And unless you’re trying to squeeze the last drops of performance out of your code, the memory layout shouldn’t be on your mind.

shotgun_crab ,

Composition + Interfaces is love

Von_Broheim ,

People hating on Java because “inheritance” usually don’t know the difference between inheritance and polymorphism. Stuff like composition and dependency inversion is black magic to them.

lightsecond ,

We’re gate-keeping the most mainstream programming language now? Next you’ll say English isn’t a real language because it doesn’t have a native verb tense to express hearsay.

kaba0 ,

And it is not forced at all. Noone holds a gun to your head to write extends. “Favor composition over inheritance” has been said as a mantra for at least a decade

jayrhacker ,
@jayrhacker@kbin.social avatar

Java is, of course, Turing Complete™️ but when you have to hide all the guns and knives in jdk.internal.misc.Unsafe something is clearly wrong.

kaba0 ,

Memory is an implementation detail. You are interested in solving problems, not pushing bytes around, unless that is the problem itself. In 99% of the cases though, you don’t need guns and knives, it’s not a US. school (sorry)

LeFantome ,

I do not like Java but this is a strange argument. The people that invented Java felt that most of the C language should be wrapped in unsafe.

Opinions can vary but saying Java is not a real language is evidence free name calling. One could just as easily say that any language that does not allow you to differentiate between safe and unsafe baheviour is incomplete and not a “real” language. It is not just the Java and C# people that may say this. As a C fan, I am sure you have heard Rust people scoff at C as a legacy language that was fine for its day but clearly outclassed now that the “real” languages have arrived. Are you any more correct than they are?

Beanie , in Stop doing Color Management!

I mean… ‘I would like green apples please’ is a perfectly sensible sentence

oxideseven , in Sometimes there is a better choice than Javascript

Doing Odin Project now and the constant shiting on JS online is sort of crushing my motivation. 😫

ursakhiin ,

JS is fine. But as with any tool it’s not the best for every scenario.

The flak JS tends to get us mostly because of the rise of popularity is Node.js leading to backend JavaScript beginning commonplace. which it’s overall a poor choice for backend when compared to many other languages as the strengths that JS has are more tailored to frontend.

elbarto777 ,

Don’t listen to the javascript haters.

BrucePotality ,

Don’t worry about, JS is a fine language and is used by all of the top companies. If you want to get a job as a software developer you have decent odds if you learn JS

FoxBJK ,
@FoxBJK@midwest.social avatar

As someone currently job hunting - native JS isn’t enough anymore. Everyone wants React devs. I see some posts for Vue or Angilar and sometimes even TypeScript but the vast majority want React coders now.

towerful ,

Very true.
If you are learning JavaScript, typescript is absolutely worth learning as well.
React and Vue have some additional paradigms, but it is basically just JavaScript/typescript.
It’s a lot to learn all in one step.

I guess it’s like trying to learn C# and Unity all in one

garyyo ,

If you don’t hate a programming language you simply haven’t used it enough or are delusional. Every language sucks in its own special way, js ain’t special.

z3n0x ,
@z3n0x@feddit.de avatar

cue “if those kids could read they’d be very upset”

Reliant1087 ,

I agree with you that every language has its flaws but JS feels like it was a hodgepodge created without any design philosophy in mind. I don’t use C or lisp in day to day work but I can appreciate their philosophies and power. Can’t say the same about JS.

fkn ,

That’s because it literally is the result of mozila, Microsoft and later Google fighting about what the right language choices were/are. Browser detection scripts and shims are still a thing, but back in the day we had to code that shit by hand every, and I mean every, minor version release of every browser.

Reliant1087 ,

This is super interesting. But why isn’t HTML or CSS a similar mess? I found their structure to be more logical than JS. Parts of JS feels like it’s intended as a backend language but parts of it don’t.

fkn ,

Wait, you don’t think html is a mess? Lol.

Css benefited from coming much later than the other two… But it also has issues.

Reliant1087 ,

I mean semantic html seems like a pretty okay markup language.

fkn ,

Lol. That’s like saying js is ok as long as you never use the parts that 90% of js developers use.

Reliant1087 ,

Really? I find that css is pretty much the ugly part of html. Html is no worse than markdown or latex. If you just wrote plain HTML and were okay with how it rendered, you would have nicely structured code.

fkn ,

My point is that if you only use the parts that don’t bring confusion you have a problem… Nobody ever does that in production… Much less with any frameworks. There is no such thing as semantic html at scale or in any modern framework.

Reliant1087 ,

That isn’t the fault of the language though. It does what it was designed to well. Maybe it is I’ll suited to achieve things it wasn’t designed to do?

I could absolutely write code to do data analytics with C and gnuplot, does that mean they’re the appropriate tools for doing that when pandas, SPSS, Julia or matlab exists? Probably not.

fkn ,

Maybe I misunderstood your position. It seems like you are now saying you understand how html messy?

Blackmist ,

If it has a design philosophy, it’s “never show an error, even when the user is wrong”.

Reliant1087 ,

Made me lol :)

HKayn ,
@HKayn@dormi.zone avatar

Don’t let it get to you. This is mostly just a circlejerk by people who don’t even use JS themselves.

glad_cat ,

Honest answer: JS is a shitty language and I despise it. BUT you can learn a ton of stuff with that, all the features (loops, conditions, variables, etc.) that exist in other languages. You will hate JS one day too, but right now it’s good to learn, and when you’ll switch to other languages, you’ll be happy you learned something.

So yes, JS sucks, but no, it won’t be useless for your future. Keep on working, programming is really fun.

Ghostalmedia , in Who is this "Jenkins" and what now has broken him?
@Ghostalmedia@lemmy.world avatar

“Leeroy Jenkins” is what my backend guys say right before they huck a major DB upgrade into prod without testing it in staging.

steal_your_face ,
@steal_your_face@lemmy.ml avatar

Our old Jenkins box is called Leroy, and my old place it was called Jankins. Thankfully we’ve moved on from that trash.

intelati ,

Always Friday at 16:59 right?

Ghostalmedia ,
@Ghostalmedia@lemmy.world avatar

Right before a long weekend where Monday is a government holiday.

Also, Leeroy tried to optimize his PTO and hooked a backpacking trip onto the long weekend. He will be out all week and will have no phone reception.

Eufalconimorph ,

But he will have chicken.

fkn , in Who is this "Jenkins" and what now has broken him?

I know this is a meme, but just in case someone doesn’t actually know. CI saves literally thousands upon thousands of dev hours a year, even for small teams.

Jajcus ,

And a lot of users' frustration, especially on more niche platforms (Linux, ARM, etc.) - things look much better on release when the code have been regularly compiled and, hopefully tested, on all platforms, not just the one the lead developer uses.

Dasnap ,
@Dasnap@lemmy.world avatar

It wouldn’t surprise me if this meme was made by an ops guy.

synae ,
@synae@lemmy.sdf.org avatar

Ops loves CI systems, if the artifact doesn’t come from Jenkins (or friends) it simply doesn’t exist to us.

Dasnap ,
@Dasnap@lemmy.world avatar

I’m also ops and I get it, it just seems like they’re shitposting.

synae ,
@synae@lemmy.sdf.org avatar

I sure hope so ;) else I’m on the wrong /c

Dasnap ,
@Dasnap@lemmy.world avatar

We only have serious IT discussions here.

engineZ ,

Probably also causes lots of hours of maintenance and troubleshooting…but it’s a net gain in the end.

fkn ,

I can’t even imagine not having a ci pipeline anymore. Having more than a single production architecture target complete with test sets, Security audits, linters, multiple languages, multiple hour builds per platform… hundreds to thousands of developers… It’s just not possible to even try to make software at scale without it.

astral_avocado ,
@astral_avocado@programming.dev avatar

Multiple hour builds dear god 😵‍💫

Dasnap ,
@Dasnap@lemmy.world avatar

If you fuck up the setup and deploy to multiple environments at once with each one set to rebuild an image/program things can get long. You really have to fuck it though.

CoderKat ,

As annoying as it is when someone else breaks the CI pipeline on me, it is utterly invaluable for keeping the vast majority of commits from being able to break other people (and from you breaking others). I can’t imagine not having some form of CI to preventing merging bad code.

csm10495 ,
@csm10495@sh.itjust.works avatar

You should have seen my last job.

rambaroo ,

Hah, or my current one. Before we had CI you just directly committed to master (on SVN). It was incredible how unstable our build was. It broke basically everyday. Then one of the senior back end guys got promoted to architect and revamped the whole thing. Probably saved the company tens of millions dollars in man hours, at the very least.

TheBananaKing ,

I often wonder if there isn’t some goodharty kind of local-maximum trap hiding in this…

Eufalconimorph ,

Even better is when you restrict merges to trunk/main/master/develop (or whatever you call it) to only happen from the CI bot *after all tests (including builds for all supported platforms) pass. Nobody else breaks the CI pipiline, because breaking changes just don’t merge. The CI pipeline can test itself!

devious ,

Why waste time with CI when you can save on thousands of dev hours by limiting yourself to only one giant fuck off release every year!

/Taps forehead so hard it causes brain damage

Sigmatics , in Who is this "Jenkins" and what now has broken him?

Yeah sure. Try building anything more complex than helloworld.c with a build.sh

jcg ,

More complex build systems are just build.sh calling other build.sh in different configurations and using different software. It’s build.sh all the way down.

Sigmatics ,

The point is that “build.sh” implies a single file, which becomes an absolute nightmare to maintain on larger projects

YurkshireLad , in Who is this "Jenkins" and what now has broken him?

If I break our master build in CI, I get multiple emails and people saying “fix this”!!! I wouldn’t have to fix it if you stopped letting people commit directly to master and stopped using git rebase! 😁

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