<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on Mariatta</title><link>https://mariatta.ca/tags/python/</link><description>Recent content in Python on Mariatta</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 16 Jun 2026 09:00:00 -0700</lastBuildDate><atom:link href="https://mariatta.ca/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>Waitlisted for the Core Devs Sprint: When the Bad News was Also the Good News</title><link>https://mariatta.ca/posts/waitlisted-core-devs-sprint/</link><pubDate>Tue, 16 Jun 2026 09:00:00 -0700</pubDate><guid>https://mariatta.ca/posts/waitlisted-core-devs-sprint/</guid><description>&lt;p&gt;Last week, I learned that I was one of 17 people
&lt;a href="https://discuss.python.org/t/2026-python-core-dev-sprint-at-openai/106928" target="_blank" rel="noopener"&gt;waitlisted for the Python Core Devs Sprint at OpenAI&lt;/a&gt;
this year.&lt;/p&gt;
&lt;p&gt;A waitlist that long realistically means I probably won&amp;rsquo;t get in. I was sad, of course. The sprint alternates between
Europe and the US. Traveling to Europe is &amp;hellip; hard and complicated. I couldn&amp;rsquo;t go to last year&amp;rsquo;s in Europe, because of
the location and work conflict. I was really hoping to go to this year&amp;rsquo;s US sprint. Next year it will be back in Europe,
out of reach again. That&amp;rsquo;s potentially not sprinting for three years in a row.&lt;/p&gt;</description></item><item><title>PyCascades 2026 Recap</title><link>https://mariatta.ca/posts/pycascades-2026-recap/</link><pubDate>Tue, 28 Apr 2026 09:36:42 -0700</pubDate><guid>https://mariatta.ca/posts/pycascades-2026-recap/</guid><description>&lt;h1 id="pycascades-2026-recap"&gt;PyCascades 2026 Recap&lt;/h1&gt;
&lt;p&gt;PyCascades 2026 took place in Vancouver this year. I only get to attend on the first day, because I had a 5 a.m. flight
to Washington DC the morning after.&lt;/p&gt;
&lt;p&gt;Still, the first day&amp;rsquo;s talks were all very insightful and interesting. The talks have now all been published, so I can
finally catch up on the ones I missed. You can watch the
&lt;a href="https://www.youtube.com/playlist?list=PLcNrB7gPa-NeyTIFSdtjnREcW6X9uxwsN" target="_blank" rel="noopener"&gt;full PyCascades 2026 playlist&lt;/a&gt; on YouTube.&lt;/p&gt;</description></item><item><title>Year of the Snake Recap</title><link>https://mariatta.ca/posts/year-of-snake-2025-recap/</link><pubDate>Mon, 09 Mar 2026 00:00:00 -0800</pubDate><guid>https://mariatta.ca/posts/year-of-snake-2025-recap/</guid><description>&lt;h2 id="looking-back-at-the-year-of-the-snake"&gt;Looking Back at the Year of the Snake&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s already March 2026, you might think it&amp;rsquo;s too late for anybody to share a recap of the year 2025. Well, the good
news is that we are still in the beginnings of Lunar New Year. So instead of recap of 2025, let&amp;rsquo;s review my Year of the
Snake instead.&lt;/p&gt;
&lt;p&gt;Last year was fun. I felt I was super busy with all the things, talks, conferences, but overall I felt good about it
all. Even though I spent a lot of time with the Python community, I also made sure to spend quality time with my family
and friends offline.&lt;/p&gt;</description></item><item><title>Disabling Signup in Django allauth</title><link>https://mariatta.ca/posts/disabling-signup-django-allauth/</link><pubDate>Fri, 03 Oct 2025 11:50:00 -0800</pubDate><guid>https://mariatta.ca/posts/disabling-signup-django-allauth/</guid><description>&lt;h2 id="django-allauth"&gt;Django allauth&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://allauth.org/" target="_blank" rel="noopener"&gt;Django allauth&lt;/a&gt; is a popular third party package that provides a lot of functionality for
handling user authentication, with support for social authentication, email verification, multi-factor authentication,
and more.&lt;/p&gt;
&lt;p&gt;It is a powerful library that greatly expands the built-in Django authentication system. It comes with its own basic
forms and models for user registration, login, logout, and password management.&lt;/p&gt;
&lt;p&gt;I like using it because often I just wanted to get a new Django project up and running quickly without having to write
up all the authentication-related views, forms, and templates myself. I&amp;rsquo;m using &lt;code&gt;django-allauth&lt;/code&gt; in
&lt;a href="https://portal.pyladies.com" target="_blank" rel="noopener"&gt;PyLadiesCon Portal&lt;/a&gt;, and in my personal project &lt;a href="https://secretcodes.dev" target="_blank" rel="noopener"&gt;Secret Codes&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Generating (and Sending) Conference Certificates Using Python</title><link>https://mariatta.ca/posts/create-send-certificates-with-python/</link><pubDate>Thu, 12 Dec 2024 00:00:00 -0800</pubDate><guid>https://mariatta.ca/posts/create-send-certificates-with-python/</guid><description>&lt;h2 id="pyladiescon-certificate-of-attendance"&gt;PyLadiesCon Certificate of Attendance&lt;/h2&gt;
&lt;p&gt;Not sure how common is this practice of giving out certificates to conference attendees. I&amp;rsquo;ve been attending mostly
Python-related conferences in North America, and we don&amp;rsquo;t usually get any certificates here. However, when I went to
Python Brasil in Manaus 2022, they gave me a certificate of attendance. And as a conference organizer, occasionally I&amp;rsquo;d
receive request from a few attendees and volunteers about such certificate, saying that their employer or school
requires it as proof of attendance.&lt;/p&gt;</description></item><item><title>Perks of Being a Python Core Developer</title><link>https://mariatta.ca/posts/perks-of-python-core/</link><pubDate>Tue, 08 Oct 2024 00:00:00 -0800</pubDate><guid>https://mariatta.ca/posts/perks-of-python-core/</guid><description>&lt;h2 id="things-you-can-getdo-as-a-python-core-developer"&gt;Things you can get/do as a Python core developer&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been a Python core developer since January 27, 2017.&lt;/p&gt;
&lt;p&gt;Being a Python core developer comes with perks, privileges, and also responsibilities.&lt;/p&gt;
&lt;p&gt;Sometimes I can&amp;rsquo;t tell whether something is a perk, or a privilege, or a responsibility. I think depends on who you&amp;rsquo;re
talking to, they might see it as an optional nice thing they could get/do, but the same thing might be seen as &lt;del&gt;burden&lt;/del&gt;
responsibility to others.&lt;/p&gt;</description></item><item><title>Python Core Sprint 2024: Day 5</title><link>https://mariatta.ca/posts/python-core-sprint-2024-day-5/</link><pubDate>Fri, 04 Oct 2024 20:17:00 -0800</pubDate><guid>https://mariatta.ca/posts/python-core-sprint-2024-day-5/</guid><description>&lt;h2 id="python-core-sprint-2024-day-5"&gt;Python Core Sprint 2024: Day 5&lt;/h2&gt;
&lt;h3 id="datetime-and-hypothesis"&gt;Datetime and Hypothesis&lt;/h3&gt;
&lt;p&gt;I reviewed some issues that came to the CPython repo. There were a few interesting tickets related to the &lt;code&gt;datetime&lt;/code&gt;
module. These issues were discovered by Hypothesis, a property-based testing tool for Python. I&amp;rsquo;ve been hearing a lot
about Hypothesis, but never really used it in production or at work. I watched a talk about it at PyCon US many years
ago, and I even had &lt;a href="https://mariatta.ca/posts/ice_cream_selfies/2023/pycon_2023/"&gt;ice cream selfie&lt;/a&gt; with Zac who maintains Hypothesis.
Anyway, I&amp;rsquo;ve just been interested in learning more about Hypothesis and how it could solve issues not caught by other
testing methods, and I think this is one of the perks of contributing to open source: getting exposed to things you
don&amp;rsquo;t normally use at work, and I think it&amp;rsquo;s a great way to learn new things.&lt;/p&gt;</description></item><item><title>Python Core Sprint 2024: Day 4</title><link>https://mariatta.ca/posts/python-core-sprint-2024-day-4/</link><pubDate>Thu, 26 Sep 2024 20:17:00 -0800</pubDate><guid>https://mariatta.ca/posts/python-core-sprint-2024-day-4/</guid><description>&lt;h2 id="python-core-sprint-2024-day-4"&gt;Python Core Sprint 2024: Day 4&lt;/h2&gt;
&lt;h3 id="pep-750"&gt;PEP 750&lt;/h3&gt;
&lt;p&gt;T-strings? Template strings? Has a name been decided yet?&lt;/p&gt;
&lt;p&gt;I chatted more with Dave Peck and Jim Baker about PEP 750, and they explained in more details about the use cases in DSL
(Domain Specific Language), for SQL and HTMLs. Guido, Lysandros, Jim, and Dave all met today to further refine the PEP,
and it sounds like they have a good plan for it. And a lot of people at the sprint also expressed their enthusiasm for
this PEP. So look forward to the updated PEP!&lt;/p&gt;</description></item><item><title>Python Core Sprint 2024: Day 3</title><link>https://mariatta.ca/posts/python-core-sprint-2024-day-3/</link><pubDate>Wed, 25 Sep 2024 20:17:00 -0800</pubDate><guid>https://mariatta.ca/posts/python-core-sprint-2024-day-3/</guid><description>&lt;h2 id="python-core-sprint-2024-day-3"&gt;Python Core Sprint 2024: Day 3&lt;/h2&gt;
&lt;h3 id="coffee"&gt;Coffee&lt;/h3&gt;
&lt;p&gt;Today I joined a group to have breakfast at Meta&amp;rsquo;s cafeteria. The cafeteria has an Espresso machine that we have to
operate ourselves. So, I learned how to use the Espresso machine on the spot, and made myself cappuccino. This was the
best cup of coffee I&amp;rsquo;ve had in the last 5 days.&lt;/p&gt;
&lt;h3 id="t-strings"&gt;T-strings&lt;/h3&gt;
&lt;p&gt;I chatted briefly with Lysandros about PEP 750. He mentioned that they will be re-working the proposal based on
community feedback so, and also said it will not be called a &amp;ldquo;tag&amp;rdquo; anymore, but T-strings, it could look slightly
different than what&amp;rsquo;s shown on the PEP today. Jim Baker should be here starting tomorrow to work on the PEP.&lt;/p&gt;</description></item><item><title>Python Core Sprint 2024: Day 2</title><link>https://mariatta.ca/posts/python-core-sprint-2024-day-2/</link><pubDate>Tue, 24 Sep 2024 20:17:00 -0800</pubDate><guid>https://mariatta.ca/posts/python-core-sprint-2024-day-2/</guid><description>&lt;h2 id="python-core-sprint-2024-day-2"&gt;Python Core Sprint 2024: Day 2&lt;/h2&gt;
&lt;h3 id="djangocon-us"&gt;DjangoCon US&lt;/h3&gt;
&lt;p&gt;I woke up a bit later this morning, so I missed the keynote, but thankfully the online platform allows me to watch the
recording, so I was still able to watch Mario Munoz&amp;rsquo; keynote: How To Be A Developer and Other Lies We Tell Ourselves. I
really enjoyed Mario&amp;rsquo;s keynote. I love it when presenters find unique and creative ways to present their talk, and Mario
really nailed it. His talk was very heartfelt and full of empathy.&lt;/p&gt;</description></item><item><title>Python Core Sprint 2024: Day 1</title><link>https://mariatta.ca/posts/python-core-sprint-2024-day-1/</link><pubDate>Mon, 23 Sep 2024 20:52:00 -0800</pubDate><guid>https://mariatta.ca/posts/python-core-sprint-2024-day-1/</guid><description>&lt;h2 id="python-core-sprint-2024-day-1"&gt;Python Core Sprint 2024: Day 1&lt;/h2&gt;
&lt;p&gt;This week I&amp;rsquo;m in Bellevue for the annual Python core sprint. This year, the sprint is hosted at the Meta Bellevue
campus, and coordinated by Itamar Oren from Meta. Other Python core devs and contributors who work at Meta are also
helping (Dino Viehland, Jason Fried, Matt Page, Parul Gupta, and Thomas Wouters).&lt;/p&gt;
&lt;p&gt;The PSF offers travel grants for Python core devs who are participating in the sprint and aren&amp;rsquo;t being sponsored by
their employer, which I signed up for. Thanks to the travel grant, my hotel stay is covered fully by The PSF.&lt;/p&gt;</description></item><item><title>How to Say Thanks to Python People</title><link>https://mariatta.ca/posts/how-to-thank-python-people/</link><pubDate>Thu, 05 Sep 2024 00:00:00 -0800</pubDate><guid>https://mariatta.ca/posts/how-to-thank-python-people/</guid><description>&lt;h2 id="the-python-community"&gt;The Python Community&lt;/h2&gt;
&lt;p&gt;Python is not just code, but a community. The Python community members contribute in many ways and in many forms. The
obvious ones are code contributions, by maintaining or contributing to the open source library that you depend on. Other
forms of contributions are in the form of documentation, tutorials, educational content, bloggers, and public speakers.
Other kind of contributions that are often unseen and not obvious are community leaders who run your local Python
meetups, and regional conferences.&lt;/p&gt;</description></item><item><title>Extending the Django OAuth Toolkit Application Model Mid-project</title><link>https://mariatta.ca/posts/extending-dj-oauth-toolkit-model/</link><pubDate>Fri, 30 Aug 2024 00:00:00 -0800</pubDate><guid>https://mariatta.ca/posts/extending-dj-oauth-toolkit-model/</guid><description>&lt;h2 id="django-oauth-toolkit"&gt;Django Oauth Toolkit&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://django-oauth-toolkit.readthedocs.io/en/latest/index.html" target="_blank" rel="noopener"&gt;Django Oauth Toolkit&lt;/a&gt; is a powerful library for
adding OAuth2 functionalities out of the box for your Django app. The library comes with pre-defined models, views,
urls, and templates for managing OAuth2 authorization and flow.&lt;/p&gt;
&lt;h2 id="the-application-model"&gt;The Application Model&lt;/h2&gt;
&lt;p&gt;Django OAuth Toolkit provides a basic model for the OAuth2 Application, this is a model that represents a Client on the
Authorization server. It has fields like &lt;code&gt;client_id&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;redirect_uris&lt;/code&gt;, &lt;code&gt;client_secret&lt;/code&gt;, etc.&lt;/p&gt;</description></item><item><title>PyLadiesCon Speaker Support</title><link>https://mariatta.ca/posts/pyladiescon-speaker-support/</link><pubDate>Wed, 28 Aug 2024 00:00:00 -0800</pubDate><guid>https://mariatta.ca/posts/pyladiescon-speaker-support/</guid><description>&lt;h2 id="speak-at-pyladiescon"&gt;Speak at PyLadiesCon&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://pretalx.com/pyladiescon-2024/cfp" target="_blank" rel="noopener"&gt;PyLadiesCon CFP&lt;/a&gt; is now open until September 15, 2024, and I would love to
support you in submitting your talk.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Perhaps you never gave a talk before, and unsure if speaking for you?&lt;/li&gt;
&lt;li&gt;Perhaps you want to give a talk, but don&amp;rsquo;t think you&amp;rsquo;re experienced enough?&lt;/li&gt;
&lt;li&gt;Perhaps you have a talk idea, but don&amp;rsquo;t know how to turn it into a proposal?&lt;/li&gt;
&lt;li&gt;Perhaps you tried submitting talks before, but always get rejected and feeling discouraged?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve been through all of the above before myself, and I know how you feel. Having a supportive community, and having
mentors who were willing to give personalized 1:1 feedback, have helped me overcome my fears and self-doubt, and be a
better speaker. The PyLadies community is here to support you.&lt;/p&gt;</description></item><item><title>PEP Talk</title><link>https://mariatta.ca/posts/talks/pep_talk/</link><pubDate>Sat, 29 Jul 2023 00:00:00 +0600</pubDate><guid>https://mariatta.ca/posts/talks/pep_talk/</guid><description>&lt;h2 id="talk-abstract"&gt;Talk Abstract&lt;/h2&gt;
&lt;p&gt;If you use Python, chances are you&amp;rsquo;ve heard of PEP 8, the Python style guide.&lt;/p&gt;
&lt;p&gt;But do you know what PEPs really are? PEPs are more than just a style guide. A PEP stands for Python Enhancement
Proposal. It&amp;rsquo;s a proposal documentation for when you want to change the Python programming language in a big way, for
example when you want to change the syntax of Python. Think of the addition of f-strings, the walrus operator, or the
ExceptionGroup, those changes all started with a PEP.&lt;/p&gt;</description></item><item><title>There's an API for That!</title><link>https://mariatta.ca/posts/talks/theres-an-api-for-that/</link><pubDate>Thu, 27 Jul 2023 00:00:00 +0600</pubDate><guid>https://mariatta.ca/posts/talks/theres-an-api-for-that/</guid><description>&lt;h1 id="theres-an-api-for-that"&gt;There&amp;rsquo;s an API For That!&lt;/h1&gt;
&lt;h2 id="talk-abstract"&gt;Talk Abstract&lt;/h2&gt;
&lt;p&gt;You might have seen bots like GitHub bots, Discord bots, Slack bots. How do these bots work? There&amp;rsquo;s an API for that!
You can use third-party APIs to build web apps and automations, including bots. Come learn the best practices on how to
work with APIs using Python.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contact me (links below) if you&amp;rsquo;d like to hear this talk at your event.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="presented-at"&gt;Presented At&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;WWCode BlockDataPy Dev Summit 2023&lt;/li&gt;
&lt;li&gt;PyCon Colombia 2020&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reactions"&gt;Reactions&lt;/h2&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true"&gt;&lt;p lang="en" dir="ltr"&gt;Watch the video Mariatta Wijaya &lt;a href="https://x.com/mariatta?ref_src=twsrc%5Etfw"&gt;@mariatta&lt;/a&gt;, She was one of our keynote speakers at Pycon Colombia 2022, we hope you enjoy it as much as we did&lt;br&gt;&lt;br&gt;Watch and share!&lt;a href="https://t.co/fycWIZwKzS"&gt;https://t.co/fycWIZwKzS&lt;/a&gt;&lt;a href="https://x.com/hashtag/PyConColombia?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#PyConColombia&lt;/a&gt; &lt;a href="https://x.com/hashtag/PyCon?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#PyCon&lt;/a&gt; &lt;a href="https://x.com/hashtag/speaker?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#speaker&lt;/a&gt; &lt;a href="https://x.com/hashtag/python?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#python&lt;/a&gt; &lt;a href="https://x.com/hashtag/keynote?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#keynote&lt;/a&gt; &lt;a href="https://x.com/hashtag/Conference?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Conference&lt;/a&gt; &lt;a href="https://t.co/vQib5VDUML"&gt;pic.twitter.com/vQib5VDUML&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Contributing to Python</title><link>https://mariatta.ca/posts/talks/contributing-to-python/</link><pubDate>Wed, 11 Jan 2023 00:00:00 +0600</pubDate><guid>https://mariatta.ca/posts/talks/contributing-to-python/</guid><description>&lt;h2 id="talk-abstract"&gt;Talk Abstract&lt;/h2&gt;
&lt;p&gt;Python is one of the most popular programming language out there, and it is also an open source project. The Python
community relies on contributions by volunteers, and you too can take part in this rewarding experience. Contributing to
open source is not just about opening pull requests. In this talk, we’ll go through the workflow of contributing to
CPython repository, as well as other ways to contribute to the project, including documentation, triaging, and
infrastructure.&lt;/p&gt;</description></item><item><title>Intro to Unit Testing and Continuous Integration</title><link>https://mariatta.ca/posts/talks/intro_to_unit_test_and_ci/</link><pubDate>Sat, 30 Jul 2022 00:00:00 +0600</pubDate><guid>https://mariatta.ca/posts/talks/intro_to_unit_test_and_ci/</guid><description>&lt;h2 id="talk-abstract"&gt;Talk Abstract&lt;/h2&gt;
&lt;p&gt;Having unit tests and continuous integration (CI) as part of your development are considered best practises. But how do
these things work? In this talk, we will cover the benefits of writing unit tests and how to get started with it in
Python. Then, we&amp;rsquo;ll step it up running tests as part CI. And that&amp;rsquo;s not all! CI is not just about running tests, but for
other things as well, like code quality checks, and even building and generating documentation.&lt;/p&gt;</description></item><item><title>Oops! I Became an Open Source Maintainer! 😱</title><link>https://mariatta.ca/posts/talks/oops-i-became-an-open-source-maintainer/</link><pubDate>Fri, 14 May 2021 17:09:00 +0600</pubDate><guid>https://mariatta.ca/posts/talks/oops-i-became-an-open-source-maintainer/</guid><description>&lt;h2 id="talk-abstract"&gt;Talk Abstract&lt;/h2&gt;
&lt;p&gt;I consider myself relatively new to the open source world; my first open source contribution was in summer of 2016.
Pretty soon I found myself being given commit rights to other people’s open source projects. Being a new open source
maintainer brings a set of unique challenges that I was not fully prepared for. In this talk, I will share my journey
and the things I’ve learned along the way, and some advice for other aspiring open source maintainers and contributors.&lt;/p&gt;</description></item><item><title>What Is a Python Core Developer?</title><link>https://mariatta.ca/posts/talks/what-is-a-python-core-dev/</link><pubDate>Sat, 03 Nov 2018 00:00:00 +0600</pubDate><guid>https://mariatta.ca/posts/talks/what-is-a-python-core-dev/</guid><description>&lt;h2 id="talk-abstract"&gt;Talk Abstract&lt;/h2&gt;
&lt;p&gt;How do you become a Python core developer? How can I become one? What is it like to be a Python core developer?&lt;/p&gt;
&lt;p&gt;These are the questions I often receive ever since I became a Python core developer a year ago. Contributing to Python
is a long journey that does not end when one earns the commit privilege. There are responsibilities to bear and
expectations to live up to.&lt;/p&gt;</description></item><item><title>Don't Be a Robot; Build The Bot!</title><link>https://mariatta.ca/posts/talks/dont-be-a-robot-build-the-bot/</link><pubDate>Wed, 17 Oct 2018 00:00:00 +0600</pubDate><guid>https://mariatta.ca/posts/talks/dont-be-a-robot-build-the-bot/</guid><description>&lt;h2 id="talk-abstract"&gt;Talk Abstract&lt;/h2&gt;
&lt;p&gt;Managing a large open source project like CPython is no easy task. Learn how the Python core team automated their GitHub
workflow with bots, making it easier for maintainers and contributors to collaborate together. Even if you’re not
managing a large project, you can still build your own bot! Hear some ideas on what you can automate on GitHub and
personalize your bot based on your own workflow. All you need is Python. Don’t be a robot; build the bot.&lt;/p&gt;</description></item></channel></rss>