<?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>Mon, 09 Mar 2026 00:00:00 -0800</lastBuildDate><atom:link href="https://mariatta.ca/tags/python/index.xml" rel="self" type="application/rss+xml"/><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"&gt;&lt;p lang="en" dir="ltr"&gt;Watch the video Mariatta Wijaya &lt;a href="https://twitter.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://twitter.com/hashtag/PyConColombia?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#PyConColombia&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/PyCon?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#PyCon&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/speaker?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#speaker&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/python?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#python&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/keynote?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#keynote&lt;/a&gt; &lt;a href="https://twitter.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>