ligma.pro is one of the many independent Mastodon servers you can use to participate in the fediverse.
"pissed everyone off in literally record time" - Recommended by 10 out of 10 people who, for some sad reason, have a dedicated column up to watch #fediblock.

Administered by:

Server stats:

2
active users

Haelwenn /элвэн/ :triskell:
Quiet public

/var/tmp/portage/media-gfx/inkscape-1.3.2-r2/work/inkscape-1.3.2/src/3rdparty/2geom/include/2geom/path.h:846:20: error: no member named 'unique' in 'std::shared_ptr<Geom::PathInternal::PathData>'

Why is it always C++ that breaks like this.

pistolero
Public
@lanodan

> Why is it always C++ that breaks like this.

You know why.
Haelwenn /элвэн/ :triskell:
Public
@p Yeah, pretty much rhetorical.

I'd have to include Python in the "Why is it always you when something breaks?"
pistolero
Public
@lanodan So far, once I get a Python program to execute, it usually runs reliably without weird crashes; the first half is similar. C++ is built on sand.

This is why it's not so weird for gamedev: they tend to completely isolate their builds and bundle in everything. But for desktop software like browsers and Inkscape and whatever else, it's dependency hell to get it to build and then once it does, the wind blows at a GUI toolkit and every C++ program explodes. You'd think it'd be the opposite for a language that is built and linked versus an interpreted language.
Haelwenn /элвэн/ :triskell:
Public
@p Well Python problem more that code tends to rot, specially for big programs and quite few times it's the standard library which broke API.
And quite few times means coredump-less crashes in the middle of runtime, enjoy the data loss.
pistolero
Public
@lanodan Yeah, I was complaining about this a few weeks ago and I forget who it was (I think laurel) that said it's because of the data science guys. I think, although I do not like his language and I hear from someone that met him that he is an off-putting person, Guido was keeping things stable and when he wandered off, the movefastbreakthings kids took over, or at least the phenomenon of Python being a disaster seems to have started after his exit. (Ironically, Ruby programs I wrote 20 years ago still run as long as they keep to the stdlib; I don't think anyone would have figured Ruby for the stable project run by adults when compared to Python, but I think that's the fault of the Rails dinguses. Even I expected Python to be more boring and stable.)
Dr. NEETzsche, GED
Public
@p Why do you think it turned out this way?

@lanodan
pistolero
Public
@NEETzsche @lanodan I think Guido had some ego-investment: while he was BDFL, he didn't want to read that Python was shit, and usually they'd name him. Now it's a committee. Keeping Python stable as a platform for development is now no single person's job: no one person receives the angry emails, no one person is dedicated to it.

Ruby has a release engineer and if your shit breaks anyone's code, it doesn't get into the release. It is someone's fault.
Dr. NEETzsche, GED
Public
@p I kind of want to attribute it to better versioning, but your explanation might make more sense. I had a few experiences where a Python library didn't change, but it relied on some C++ library that did, and the package manager that the Python library use didn't specify which version of the C++ library to get like it's done in `Gemfile.lock` or `requirements.txt`. But that's just an anecdote and the details of it escape me because it was like 7 years ago now.

@lanodan
pistolero
Public
@NEETzsche @lanodan I think `$language_specific_package_manager install $package` is the type of thing that causes that. There is something about typing in a version number and releasing a tarball with a Changelog that forces people to think about what they are doing.
Haelwenn /элвэн/ :triskell:
Public

@p @NEETzsche Tarball? With a Changelog?
Just $lang_pkg publish at some random commit point, what do you mean you want it's exact Source Code?

(Of all the things to not enforce with the git integrations pretty much all those things have…)

pistolero
Public
@lanodan @NEETzsche

> what do you mean you want it's exact Source Code?

I tried to install that auto-translator but it couldn't find most of the dependencies and this turns out to have been because I have disabled installing "wheels", by which Python means precompiled packages (many of which are certain to not work on my machine because half these goddamn things link against libs for systemd, which was open about having the specific mission of creating vendor lock-in for RedHat, which company is now basically dead but its zombie code continues to ruin the earth) and half these dipshits don't even publish the source so you can only pip install the binary. I manually built and installed three or four of the packages and then one of them wouldn't build and I gave up. The juice is not worth the squeeze.
Himbo Techbro

@p
When I started using Python in 2008, your app ran everywhere Python did. Period. Any Linux distro, every weird niche OS, OS X, even Windows after installing a single msi.

It also meant that your app could be very small and easy to distribute.

Now, every fucking Python application, no matter how small, basically has to install an entire "distribution" of Python, kept entirely separate from the rest of the system, if for no other reason than there's massive breaking changes every version, they've committed themselves to a new version every two years (I believe), and so you can only use the system Python if you're willing to use a very, *very* narrow window of systems and release versions.

This is the direct result of no longer being able to tell people "No, fuck off" in online spaces without getting targeted and harassed on social media, oddly enough by the people who claim to be against harassment.
@NEETzsche @lanodan

Zergling_man
Public
@r000t @lanodan @NEETzsche @p It's because the webdevs found python.
My python programs run anywhere, though they do pretty much all use fstrings and async so they don't run on anything older than like 3.8.
pistolero
Public
@Zergling_man @r000t @NEETzsche @lanodan The webdevs found Python way before Python turned to shit.
Zergling_man
Public
@p @lanodan @r000t @NEETzsche I blame them for it.
pistolero
Public
@r000t @NEETzsche @lanodan

> OS X, even Windows after installing a single msi.

Old builds of Python still run on Plan 9, just it's old, no one wants to maintain it, no one wants to port Python 3. But if you grab old Python and build it, you can run Mercurial, you can run old versions of Django.

> Now, every fucking Python application, no matter how small, basically has to install an entire "distribution" of Python, kept entirely separate from the rest of the system, if for no other reason than there's massive breaking changes every version,

It's fucked in the head.
Haelwenn /элвэн/ :triskell:
Public
@p @NEETzsche @r000t Reminds me that I've never tried compiling Perl on Plan9, it's been upstreamed at least so could be in a better situation than Python.
If it works could be kind of fun to hook a Plan9 VM to cpantesters.org
pistolero
Public
@lanodan @NEETzsche @r000t

> it's been upstreamed at least

Holy shit. Last I saw of it was there was a .iso(!!) and it had some guy's source tree and prebuilt binaries for, like, 5.8.

It is kind of ironic if there is real upstream support, given Rob Pike's remark that Unix was dead and Perl wrote the eulogy.
Ayam Geprek
Public
@p @NEETzsche @r000t @lanodan my Python 3 code I wrote ten years ago still works well; maybe I just wrote it wrong? I do note what library versions I use in the Readme but I haven't needed to hunt down old libraries to make code work. I mostly stick to standard lib and don't try to be "cute"...
pistolero
Public
@goo @NEETzsche @lanodan @r000t Ha, yeah, I have written basically no Python; I have hacked packages that needed hacking in order to work, that's it.
:gcp: is happening
Public
@r000t @p @NEETzsche @lanodan not to mention that modern python is 75% binary

virtual/vendored envs are a real cancer of the semicolon, https://kristoff.it/blog/python-training-wheels/
pistolero
Public
@i @r000t @NEETzsche @lanodan Well, by size, obviously a .so is going to be bigger than a few hundred lines of Python. Did they publish anything by file count?
:gcp: is happening
Public
@p @NEETzsche @r000t @lanodan there's some more stats at the source, https://py-code.org/stats with sql examples and a clickhouse instance to query their data however you want https://py-code.org/datasets
py-code.orgPyPI DataPyPI code explorable on Github
:gcp: is happening
Public
@p @NEETzsche @lanodan @r000t tensorflow for instance, takes many times more space than all the python files combined
pistolero
Public
@i @NEETzsche @lanodan @r000t holy goddamning shit
Himbo Techbro
Public

@p
Another fun thing about using Python for any kind of ML/AI application is, let's say you have three different projects.

All three will be installing 10GB of tensorflow or tamingtransformers or pytorch or whatever, a few more GB of kernels for your GPU, and so on.

Each.

No opportunity to share unless you just so happen to be using a deduplicating filesystem. Even then, you'll still be downloading them again.
@i @NEETzsche @lanodan

nnn day 22 :nix: :gnome:
Public

@r000t @i @p by the fucking nine and i plan on doing ml/ai @lanodan @NEETzsche

pistolero
Public
@r000t @i @NEETzsche @lanodan Rampant abuse of pip for datasets is thankfully confined to pip, but a service that did that kind of thing, like standardized dataset acquirer, that'd be cool. I installed some STT thing on the uConsole and it dumped the shit into /etc. So that device now has a 10GB /etc.
nnn day 22 :nix: :gnome:
Public

@i @r000t @p @lanodan @NEETzsche wew, crisp font rendering

RedTechEngineer
Quiet public
@p @NEETzsche @r000t @lanodan wouldn't just be easier to use flatpak :^)
pistolero
Public
@RedTechEngineer @NEETzsche @lanodan @r000t They can't use Flatpak, they're all on Macs.
Haelwenn /элвэн/ :triskell:
Public
@p @RedTechEngineer @NEETzsche @r000t Where I think its equivalent is .dmg which for me is an abbreviation of damage.
pistolero
Public
@lanodan @NEETzsche @RedTechEngineer @r000t Ha, it's the .app structure from NeXT. You cram a bunch of libraries and executables and icons into a special directory structure and the Mac presents it as a single file that you double-click to launch the "app".
app.png [fsebugoutzone.org]
Public
@r000t @p @NEETzsche @lanodan

Design-by-committee
Phantasm
Public
@feld @p @NEETzsche @r000t @lanodan What I hate about this PEP implementation even more is that it also breaks user installs and forces user level package installs into venvs. Of course anybody can bypass the check by specifying the --break-system-packages flag which in this case makes no sense.
Haelwenn /элвэн/ :triskell:
Public
@phnt @feld @p @NEETzsche @r000t It should have never ended up doing that as user installs are in a different place but well… Python.
Haelwenn /элвэн/ :triskell:
Public
@phnt @NEETzsche @feld @p @r000t At least it didn't break PYTHON_PATH because otherwise I think I would have exploded.
pistolero
Public
@feld @r000t @NEETzsche @lanodan It used to be possible to have multiple versions of a library installed.

(Anyway, my package manager is written in C and it's just tarballs anyway, so the worst-case scenario is I can fix it with a statically linked busybox. It's a good idea to keep a statically linked busybox everywhere you can.)
Public
@p @feld @NEETzsche @r000t @lanodan >Anyway, my package manager is written in C
I mean, it also is about not messing with the files provided by the packages installed by the package manager. Letting both it and pip dangle in the same namespace would eventually result in the same mess as when you install a bunch of software with ./configure && make && make install.
>It's a good idea to keep a statically linked busybox everywhere you can.
Had this shit happen when updating old Gentoo install a while ago. Python (and thus emerge) weren't broken but coreutils and tar were due to some glibc conflict. Had to remove a bunch of binaries in /bin and replace them with symlinks to busybox which surprisingly worked and let me fix essential packages.
pistolero
Public
@mint @NEETzsche @feld @lanodan @r000t I just make /bbbin and shove the symlinks into there and then put that ahead in the path, or you can set a compile-time option to tell the shell to use its own builtins wherever possible instead of checking $PATH and it saves a lot of typing.
Public
@p @feld @NEETzsche @r000t @lanodan I think I've tried putting them in some other dir in PATH, but emerge didn't pick it up for whatever reason.
Public
@feld @p @NEETzsche @r000t @lanodan It appears Arch/Artix do that as well.