this post was submitted on 17 Jan 2025
385 points (98.7% liked)

Programmer Humor

20155 readers
1977 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 

cross-posted from: https://lemmy.blahaj.zone/post/20883609

show transcriptcompiler-specific posts:
every software is like. your mission-critical app requires you to use the scrimble protocol to squeeb some snorble files for sprongle expressions. do you use:

  • libsnorble-2-dev, a C library that the author only distributes as source code and therefore must be compiled from source using CMake
  • Squeeb.js, which sort of has most of the features you want, but requires about a gigabyte of Node dependencies and has only been in development for eight months and has 4.7k open issues on Github
  • Squeeh.js, a typosquatting trojan that uses your GPU to mine crypto if you install it by mistake
  • Sprongloxide, a Rust crate beloved by its fanatical userbase, which has been in version 0.9.* for about four years, and is actually just a thin wrapper for libsnorble-2-dev
  • GNU Scrimble, a GPLv3-licensed command-line tool maintained by the Free Software Foundation, which has over a hundred different flags, and also comes with an integrated Lisp interpreter for scripting, and also a TUI-based Pong implementation as an "easter egg", and also supports CSV, XML, JSON, PDF, XLSX, and even HTML files, but does not actually come with support for squeebing snorble files for ideological reasons. it does have a boomeresque drawing of a grinning meerkat as its logo, though
  • Microsoft Scrimble Framework Core, a .NET library that has all the features you need and more, but costs $399 anually and comes with a proprietary licensing agreement that grants Microsoft the right to tattoo advertisements on the inside of your eyelids
  • snorblite, a full-featured Perl module which is entirely developed and maintained by a single guy who is completely insane and constantly makes blog posts about how much he hates the ATF and the "woke mind-virus", but everyone uses it because it has all the features you need and is distributed under the MIT license
  • Google Squeebular (deprecated since 2017)
top 37 comments
sorted by: hot top controversial new old
[–] monk@lemmy.unboiled.info 1 points 5 days ago

Oh no, a library you have to compile. Are you serious?

[–] RustyShackleford@programming.dev 75 points 1 week ago* (last edited 5 days ago) (3 children)
  • libsnorble-2-dev, a C library that the author only distributes as source code and therefore must be compiled from source using CMake

Of the available options, this is easily the best since I can use my own compilation flags to tune the library for my specific target architecture/CPU which can possibly change as the deployment profile for the business case evolves. Assuming it's OSS, I can also fork and adjust the library itself for said "mission-critical" use case.

Also, the Google product being deprecated since '17 is too real πŸ˜…...

[–] skip0110@lemm.ee 22 points 1 week ago

Yup. If source is not available I’m not using it if I have any choice in the matter. Binary distribution is nice, but I’d rather have source.

Plus I’m sure some kind soul has created a build pipeline that autogenerates binaries from the source. I can always either use that or clone and customize it. It’s a natural separationβ€”as a dev I’d like my responsibility to end at β€œI merged working code to trunk”.

[–] Ephera@lemmy.ml 16 points 1 week ago (1 children)

And here I would argue that the Rust library is strictly better, specifically because it will come with an automated or precompiled build of the C library. Compiling C is such a pain.

[–] jdeath@lemm.ee 8 points 1 week ago (1 children)

i just knew the fanatical rust fans would just have to push Sprongloxide. Broken records!

I personally love Rust, but since I'm already familiar with C/CMake, I just don't think I need to "re-invent the wheel". In this case, using the Rust wrapper option is more like "trying to put a winter tire around an all-weather tire".

[–] mkwt@lemmy.world 15 points 1 week ago (1 children)

Also, on Gentoo Linux, there will be an ebuild that integrates all of the cmake options into the rest of the packaging system and manage the dependencies

[–] RustyShackleford@programming.dev 5 points 1 week ago* (last edited 1 week ago) (2 children)

Any similar system for Kubuntu 24.04 LTS noobs/normies like me? I don't know what "ebuild" is, but it sounds cool (of course, I could look it up, but I thought I'd just ask).

I'm not a dev-ops dude, but for work, I develop parametric CAD solutions and generative DNNs for CAD. Lots of linear algebra and Pytorch on the GNU-Linux side; lots of Grasshopper for Rhino8 on the Win11 side. Hence, I use Docker to separate my experimental build environments from my production ones.

I've been kinda maintaining my shit "by hand", so to speak, for years now, and I think I'm ready for some automation in that regard.

[–] Illecors@lemmy.cafe 5 points 1 week ago (2 children)

An ebuild is a definition - a recipe, if you will - of how a package is built from some source by portage, a Gentoo package manager.

Very few things are trully impossible in linux land, but having multiple package managers on a single system is just asking for trouble.

You could try setting up a gentoo prefix and get the benefits of portage that way, but I've not beem able to accomplish that the single time that I tried.

Ah okay, specific for Gentoo, I see. Thus, since I'm in *buntu land (--minimal-install, so no snap fuckery), it's better to just set up an apt repo and use my build containers to push to that.

[–] balsoft@lemmy.ml 1 points 1 week ago

Very few things are trully impossible in linux land, but having multiple package managers on a single system is just asking for trouble.

Nix/Guix are specifically designed to not interfere with the rest of your system.

[–] balsoft@lemmy.ml 1 points 1 week ago* (last edited 1 week ago)

You can try out Nix. It can be installed right there on your Kubuntu box, without any conflicts with apt or other package managers.

It's somewhat similar to portage with its ebuilds in that it's source-first and allows you to set up complex dependency trees and configure every package in them. In your case it would allow you to avoid manual rebuilds and just build&install all your custom software with one command from one directory containing some .nix files that describe how to fetch, configure and compile every package. (Actually, for your dependencies those files are likely to be in nixpkgs already - you can check at https://search.nixos.org/packages. In that case, you don't have to write any packaging instructions or even build everything, as Nix will intelligently download the binary versions which are helpfully provided by the Nix community).

It's quite different from most other package managers/build systems, though, being much "simpler" (it can be described as lambda calculus on files with syntax sugar) but much "harder" (the learning curve is actually a learning wall with the first section requiring mountain climbing experience and covered in barbed wire). If you've been maintaining builds for multiple packages by hand for years, though, it shouldn't be too bad.

[–] hobbsc@lemmy.sdf.org 35 points 1 week ago (2 children)

you folks are still scrimbling? hacker news says you can get much better results if you dronkle instead. in fact, you don't even have to worry about your implementation, just use the kneeb.io api for all of your dronkling (and scrimbling i guess via their legacy api deprecated last month). they just got seed funding and they reinvested that into their infrastructure. this is a no brainer!

[–] Malgas@beehaw.org 12 points 1 week ago

Seriously, it's like nobody in this thread even read the seminal paper, "Scrimbling Considered Harmful".

[–] ebolapie@lemmy.world 5 points 1 week ago

You forgot to treat us like we're stupid and close the thread as answered

[–] Kaput@lemmy.world 26 points 1 week ago (2 children)

will it run on a turbo-encabulator?

[–] nicknonya@lemmy.blahaj.zone 15 points 1 week ago* (last edited 1 week ago)

if you can find a turbo-enCOBOL sneeble implementation sure

[–] bulwark@lemmy.world 8 points 1 week ago (1 children)

Lol I named my wifi this. No one gets it but me. 😒

[–] Flamekebab@piefed.social 3 points 1 week ago

Probably distracted by all the side fumbling.

[–] breakingcups@lemmy.world 21 points 1 week ago (2 children)

All accurate, except the Microsoft one. Microsoft makes you pay for enterprise development tools, but not for libraries.

[–] Scoopta@programming.dev 16 points 1 week ago

While you aren't wrong I think you're kinda missing the spirit of the joke.

[–] jdeath@lemm.ee 2 points 1 week ago (1 children)

.NET ecosystem is filled to the brim with paid libraries tho.

it's like, want to parse JSON? only 399 for enterprise use. i had never seen so many paid libraries until i worked at a .NET shop

[–] vithigar@lemmy.ca 0 points 1 week ago

For what it's worth, in that specific example at least JSON parsing has been available as part of the base .NET libraries since .NET 3.

[–] Corbin@programming.dev 21 points 1 week ago

Yeah, writing your own squeeblerizer sucks, but there's no better option. GNU Scrimble can be used off-the-shelf as a passthrough, so the only real tasks are implementing Squeeb's algorithm and a sprongler; then, your entire pipeline is merely something like:

$ gscrimble --passthrough --args -- ./your_squeeb | ./your_sprongler

Edit: Whoops! Forgot to mention, GNU Scrimble also has Snorble support out-of-the-box, and Scrimble clients have content auto-negotiation, so your_squeeb can just take JSON on stdin. GNU Scrimble is really nice for this sort of thing, just...big.

And if you want to sprongle directly into a database or etc. then you can write your_sprongler to taste. Full disclosure: I have a fairly fast implementation of Squeeb's algorithm in rpypkgs. However, I'd really recommend writing your own; it's like twenty lines of code you can copy from Wikipedia and it'll give you a good basis for extending it with your own desired changes later.

You can read snorblite's code if you need to figure out a specific sprongling technique, but it's way easier to just go look up the original SprongCode from SprongReg. Use a search engine to get around the university's paywall. This gets you the SprongCode UUID and you don't have to read code written by a batshit fascist.

[–] rothaine@lemm.ee 20 points 1 week ago

I'm trying to use emscripten to compile libsnorble to wasm so I can use it in an electron app but it's not working. Can anyone help me?

"Just use squeeb JS lol"

But squeeb.js can't squeeb snorbles with Windows line endings!

[–] purplemonkeymad@programming.dev 14 points 1 week ago (1 children)

I feel like it's missing the perfect light weight version that appears to do everything you want. Except it's written in java, has not been updated for 4 years, and for some strange reason only works with oracle java.

[–] FooBarrington@lemmy.world 4 points 1 week ago

And, worst of all, it has a bug that slightly mangles output - except if running on Windows Vista.

The Docker container has 10 million weekly downloads.

[–] ArcaneSlime@lemmy.dbzer0.com 14 points 1 week ago (1 children)

Snorblite for sure, fuck the ATF.

[–] DokPsy@lemmy.world 11 points 1 week ago (1 children)

So, while I agree on that part, the maintainer of snorblite is one step from getting shut down by the feds due to radical actions and an alleged affiliation to a known csa distribution network. As soon as he's brought in for questioning, all data tied to his machines will be deleted and we'll have to rely on forks of the library from previous versions with outdated dependencies.

Not the first time and won't be the last, we'll endure.

[–] casmael@lemm.ee 12 points 1 week ago

Congratulations on squeebling meme of the week - this one really sprangled my sprongle

[–] neidu3@sh.itjust.works 9 points 1 week ago* (last edited 1 week ago)

Snorblite, pecause I actally understand and can debug perl.

Libsnorble as a close second.

[–] Scoopta@programming.dev 8 points 1 week ago

I'd probably do libsnorble and then snorblite, mainly just because I prefer C, don't mind source distribution and the rest sound cursed for one reason or another.

just fork snorblite

[–] Feathercrown@lemmy.world 3 points 1 week ago
[–] chocosoldier@lemmy.blahaj.zone 1 points 1 week ago (1 children)

yay -S scrimble

what have I won?

[–] monk@lemmy.unboiled.info 2 points 5 days ago

no, that's the old version of the GNU one