@carmenbianca@todon.eu avatar

carmenbianca

@carmenbianca@todon.eu

Cooperator @ Coop IT Easy in #Brussels, https://mastodon.social/@fsfe board member, author of #REUSE.software.

🐱️ beautiful

I toot mostly in English, Dutch, and French.

Some hashtags I like: #FreeSoftware #Vegan #Esperanto #Cooperative #Socialism #AntiCapitalism #BanCars #TTRPG

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

carmenbianca, to python
@carmenbianca@todon.eu avatar

i want to create a module but i need a 🦆

problem: sometimes i write a program that can be configured with json/yaml/toml/whatever. but i hate dealing with raw dictionaries and validating the data myself (or checking whether ["my"]["deep"]["key"] exists before accessing it). creating my own Config class to do that stuff for me is boring and repetitive.

what i want to do is this:

class MyConfig:
foo: str
bar: int

my_config = MyConfig.from_dict({"foo": "hello", " bar": 1})

... and have that be validated, ready to go, with convenience functions and everything. if a type doesn't match, raise an error. (also, some more validators like selections, or 'value matches regex'.)

i know attrs can do something like that, but the attributes are stored on the object instead of in an internal dict, and it's not a perfect match. pydantic has BaseSettings, but pydantic is so thoroughly overengineered that i don't want it.

but when i sit down to think about writing a module to do what i want, i realise i'm just reimplementing attrs, but lighter, without attributes stored on the object, and with certain convenience functions.

ought i just build my module on top of attrs, somehow? does my dream module already exist?

carmenbianca, to privacy French
@carmenbianca@todon.eu avatar

:blobcathissing:

faut payer pour une protection de base de la vie privée quoi

je me demande si un tel pop-up est légal

#privacy #RGPD

Freyja, (edited ) to random French
@Freyja@eldritch.cafe avatar

Liste des rassemblements anti transphobie partout en France et en Belgique le 5 mai

https://docs.google.com/document/d/1Z9iUvJpq2tKf6K-Yo58aFtll8FiBBxNi6GUmPBPlEYE/edit

carmenbianca,
@carmenbianca@todon.eu avatar

@Freyja Je ne suis pas au courant. Qu'est-ce que se passe en France ? Je peux lire où ?

enobacon, to random
@enobacon@urbanists.social avatar

The resume filtering most companies are doing for tech jobs is clearly only letting liars and unicorns through to the other side of the pile. Yes that's all HR staff and recruiters were doing before they were replaced with AI. Would be interesting to hear from someone on the other side trying to hire people, whether unicorns exist.

carmenbianca,
@carmenbianca@todon.eu avatar

@enobacon i'm a unicorn 🦄

egeexyz, to random
@egeexyz@mastodon.social avatar

I need more Linux, FOSS, and general tech bloggers in my feed. Link some for meee

carmenbianca,
@carmenbianca@todon.eu avatar

@egeexyz I sometimes sporadically write about on my blog https://carmenbianca.eu/en

Mostly I don't post, but when I do, it's some mild or hot take about free software. Mildest take: all distros except like five of them (Debian, Ubuntu, Fedora, openSUSE, maybe Arch) suck and shouldn't be used by 99% of people.

carmenbianca,
@carmenbianca@todon.eu avatar

@samueljohnson @egeexyz So the article explains in more detail, but the gist is that I do not trust the small team at Mint or insert-small-distro-here. Or, more precisely, I trust the giant community at Ubuntu/Debian a lot more, and appreciate the benefits of having such a large community over a small team of volunteers. Especially as pertains security, accessibility, internationalisation, QA, documentation, et cetera.

https://www.carmenbianca.eu/en/post/2020-01-05-big-distro/

carmenbianca,
@carmenbianca@todon.eu avatar

@samueljohnson No need to apologise :) I didn't specifically link that article in the first place.

I think we disagree on something sort-of-kind-of fundamental, but I'll concede a few things:

  • Ubuntu isn't very good.
  • Canonical isn't very good.

… But still, I'd recommend Ubuntu over Mint. This is because I view technology differently. I view operating systems as common digital infrastructure. And you don't build a society on a small team of volunteers—you build it on large collaborative projects that are far more able to address the diverse needs of everyone.

Regarding whether Mint is Ubuntu or not… I'm not sure how to make this argument. Mint is Mint. It's authored, remixed, and distributed by a separate group of people who have effective root access to all users' computers through package updates (as do all distros). It completely replaces the most important component, and any other modifications are untested by the Ubuntu community.

But yes, Ubuntu with Cinnamon isn't really Ubuntu either. It's not the thing you download from their website, and Cinnamon isn't in their main repository. For Debian it's a different matter.

danirabbit, to random
@danirabbit@mastodon.online avatar

Or we could keep gun laws simple: only the military should carry firearms and police should only have access to them in an emergency. Safest guns are no guns
https://www.threads.net/@potus/post/C5_ocV0rZx2

carmenbianca,
@carmenbianca@todon.eu avatar

@danirabbit but then how am i supposed to signal that i have a big peepee

apart from my truck that i definitely use for hauling manly stuff that isn't groceries
apart from my eating big meaty meat
apart from my beer (but not the woke sort)
apart from my emotional suppression because crying is for women wimps

it is very important that everyone know i have a big peepee

carmenbianca, to python
@carmenbianca@todon.eu avatar

I wrote a blog post on how to set up for Python with Click and a whole host of other components.

It took me a few days to get this right. Maybe this will save someone some time.

https://www.carmenbianca.eu/en/post/2024-04-14-how-to-set-up-python-internationalisation-with-click-poetry-forgejo-and-weblate/

carmenbianca, to python French
@carmenbianca@todon.eu avatar

Coop IT Easy cherche deux profils pour rejoindre son équipe à . Notre mission, c'est de développer des outils de gestion libres pour l' .

Nous cherchons :

➡️ Un·e analyste/Responsable de projet
➡️ Un·e développeur·euse /

Plus d'informations sur le lien
↩️ https://coopiteasy.be/nos-offres-demploi/

diogoeichert, to python

Hey Python community, I need a good code formatter that works with VS Code. I've tried a few (autopep8, Black Formatter) but I could not circumvent their issues expanding tabs, regardless of every other possible setting in the project (I even have EditorConfig installed).

I'm looking for something that will ideally try to conform to PEP8, without being obnoxious expanding all tabs to spaces (we're not savages in this project). Thanks for any suggestions!

#format #linter #python #vscode

carmenbianca,
@carmenbianca@todon.eu avatar

@diogoeichert Tab characters make it impossible to determine the width of a line.

One of the things that code formatters do is splitting lines that are too long into multiple lines. If the tool cannot determine the width, this task becomes impossible. If it circumvents the problem by making an assumption of the width of the tab character, then the visual width of lines will be wildly inconsistent for people who do not use that width value in their editor.

Honestly just suck it up and use your code formatter's defaults. Life's a lot happier if you leave these stupid code debates in the dust bin of history and let the formatter take care of it.

carmenbianca,
@carmenbianca@todon.eu avatar

@veronica @diogoeichert This isn't 100% right. It's possible to do 'elastic tabstops' in Python just fine; tabs for indentation, spaces for alignment. The code will still run if you do this consistently.

(Of course, for projects with more than a few contributors, doing this consistently becomes an impossible chore where you constantly have to link <https://nickgravgaard.com/elastic-tabstops/> on PRs, but soit.)

… But it still ruins line widths, which is why I think it's a stupid idea. I value consistent line width a lot more than arbitrary indentation depth.

carmenbianca,
@carmenbianca@todon.eu avatar

@veronica @diogoeichert I agree that it was a mistake, but the following code runs just fine:

&lt;TAB&gt;def foo(  
&lt;TAB&gt;&lt;space&gt;bar  
&lt;TAB&gt;):  
&lt;TAB&gt;&lt;TAB&gt;print("hello world")  

It's perfectly possible to correctly use tab characters in Python, even when 'mixing' them with spaces. It's just a stupid and error-prone thing to do.

drewdevault, to random
@drewdevault@fosstodon.org avatar
carmenbianca,
@carmenbianca@todon.eu avatar

@drewdevault I have a faint feeling that the flow of useplaintext.email is rather topsy-turvy. Section 4, the one making the case for why plaintext is Good Actually, should go first! Maybe followed by etiquette, followed by all the e-mail client busywork.

carmenbianca,
@carmenbianca@todon.eu avatar

@drewdevault I guess that makes sense. My only remaining recommendation then is to s/open source/free software/ ;)

carmenbianca,
@carmenbianca@todon.eu avatar

@drewdevault Great success! Thanks.

j_bertolotti, to DnD
@j_bertolotti@mathstodon.xyz avatar

One of my most controversial opinions is probably that is actually easier (and less crunchy) to run than .

carmenbianca,
@carmenbianca@todon.eu avatar

@j_bertolotti Most systems are easier to run than tbh. D&D players get very intimidated by the idea of having to learn another system because the process of learning 5e traumatised them against reading rulebooks.

carmenbianca, to cooperatives
@carmenbianca@todon.eu avatar

I gave a talk on and at the general assembly of the @fsfe. The very very very short of it is that the philosophies of cooperatives and Free Software share an uncanny amount of fundamental values, such as , , , , , , and .

They both even have a litmus test: the seven cooperative principles and the four essential freedoms of Free Software.

https://www.ica.coop/en/cooperatives/cooperative-identity

https://www.gnu.org/philosophy/free-sw.en.html

If you're thinking of starting a Free Software company, why not extend your values into the social realm and found a new ?

timonsku, to debian
@timonsku@mastodon.social avatar

You know what irks me the most about this change to pip behaviour in Debian. Linux is such a foot gun by design, you can do anything you want with usually no resistance or warning by the distro or kernel but this is where the line is drawn??

It's not like you couldn't have gone the other way and wrap system python packages into their venv.

Let people do unwise things, there are so many better defaults they could have chosen (redirect to local user with warning).

#debian #pip

carmenbianca,
@carmenbianca@todon.eu avatar

@timonsku I really disagree with this. So many people completely break their installation with sudo pip install, which many articles and tutorials foolishly recommend.

You can still do it, of course. wouldn't be a distribution if you couldn't circumvent this. You just now have to explicitly type sudo pip install --break-system-packages, which ought to make you think twice before doing something stupid.

carmenbianca,
@carmenbianca@todon.eu avatar

@timonsku In fact, the full error message contains heaps of helpful suggestions, including --break-system-packages.

carmenbianca,
@carmenbianca@todon.eu avatar

@timonsku It's not a reckless decision. sudo pip install is reckless, and the (now-"broken") tutorials were wrong to ever suggest it. And given that can't undo the decades of bad advice on the internet, preventing inexperienced people from destroying their systems is Good, Actually.

If this means that those inexperienced people subsequently don't know what to do, then that is still better than system breakage.

As for 'isolating' the system packages: That would be a far more impactful change than having to add a '--yes-i-know-what-im-doing-please-break-my-system' flag to a command. It would require all scripts and documentations that use sudo pip install (mainly Docker images) to have far greater changes than adding a single flag.

If you care about beginners and non-devs, you protect them from destroying their system. That's what this change does, and towards that end, it's excellent.

If you think the documentation can be improved, you can contact Debian's Python team. I have no doubt they would love such an improvement.

carmenbianca,
@carmenbianca@todon.eu avatar

@timonsku It's not any harder for the user though? The correct solution is to not run sudo pip install. You're not supposed to do it. There is no universe in which it is ever a good idea to run that command barring very few exceptions, system isolation or no. The fact that you could ever do that in a package-managed system is a bug.

Run sudo pipx install instead. Which it recommends.

How do you propose this can be fixed? Your proposal of 'isolate the system Python packages' also makes it more difficult for the user. Everything built on top of + would have to adjust to this new isolation system, which is heaps more work (and heaps more difficult) than adding a flag to a command that shouldn't be run in the first place.

carmenbianca,
@carmenbianca@todon.eu avatar

@timonsku Not really? The /usr and /usr/local split already exists, and has existed since forever. It still breaks installations. To break an installation, you just need to pip install some library that is used by an apt-installed package. Packages in /usr/local take precedence over packages in /usr, and if the /usr/local package is too old/recent, stuff breaks.

The sysconfig stuff isn't implemented yet.

The PEP also explicitly recommends what Debian implemented:

> To install packages with pip, you would also need to either suppress the EXTERNALLY-MANAGED marker file to allow pip to run or to override it on the command line. You may want to use the same means for suppressing the marker file in build chroots as you do in container images.

In fact, the PEP later explicitly mentions the flag:

> You can, of course, just ensure that your packaging process always calls pip install --scheme=posix_distro --break-system-packages, which would work too.

So this isn't even 's 'fault'—the pip maintainers created and recommend the flag.

carmenbianca,
@carmenbianca@todon.eu avatar

@timonsku @diazona pip isn't shipped by default either.

Codeberg, to opensource
@Codeberg@social.anoxinon.de avatar

: Tell us about your favourite / projects that are not available on mainstream platforms, whether on a self-hosted cgit or available as an archive download only.

The world is more than and .

carmenbianca,
@carmenbianca@todon.eu avatar

@Codeberg I just started a change log generator project and decided to host it on Codeberg/, sticking with the naming scheme. Progress is coming along nicely; it'll probably be functional within a week, and see a release before Christmas.

https://codeberg.org/carmenbianca/protokolo

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • InstantRegret
  • vwfavf
  • mdbf
  • everett
  • Youngstown
  • rosin
  • slotface
  • thenastyranch
  • ngwrru68w68
  • khanakhh
  • kavyap
  • ethstaker
  • DreamBathrooms
  • anitta
  • magazineikmin
  • GTA5RPClips
  • tacticalgear
  • cubers
  • Leos
  • osvaldo12
  • tester
  • Durango
  • cisconetworking
  • modclub
  • provamag3
  • normalnudes
  • JUstTest
  • All magazines