<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>The Teclado Blog</title><description>Kickstart your coding journey with practical programming tutorials.</description><link>https://blog.teclado.com/</link><item><title>Run Flask Apps with Docker Compose</title><link>https://blog.teclado.com/run-flask-apps-with-docker-compose/</link><guid isPermaLink="true">https://blog.teclado.com/run-flask-apps-with-docker-compose/</guid><description>Learn how to Dockerize a Flask app and then run it, PostgreSQL, Redis, Celery, and Flower with Docker Compose.</description><pubDate>Mon, 08 Apr 2024 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>VSCode for Django Development in 2024</title><link>https://blog.teclado.com/vscode-for-django-development-in-2024/</link><guid isPermaLink="true">https://blog.teclado.com/vscode-for-django-development-in-2024/</guid><description>Setting up Visual Studio Code for Django is straightforward! There are just a few extensions we recommend, and then you&apos;ll be good to go.</description><pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Run A/B Tests with PostHog and Flask</title><link>https://blog.teclado.com/a-b-tests-posthog-flask/</link><guid isPermaLink="true">https://blog.teclado.com/a-b-tests-posthog-flask/</guid><description>Learn how to use PostHog and feature flags to run A/B tests. This lets us compare two variants and see which performs better!</description><pubDate>Tue, 26 Mar 2024 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Feature flags in Flask using PostHog</title><link>https://blog.teclado.com/feature-flags-posthog-flask/</link><guid isPermaLink="true">https://blog.teclado.com/feature-flags-posthog-flask/</guid><description>Learn how to use PostHog feature flags in your Flask applications to change your app&apos;s behaviour in real time.</description><pubDate>Mon, 18 Mar 2024 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Tracking Web and Product Analytics with PostHog</title><link>https://blog.teclado.com/analytics-posthog-python-flask/</link><guid isPermaLink="true">https://blog.teclado.com/analytics-posthog-python-flask/</guid><description>Product and web analytics help you build what your users want. In this article, start learning about PostHog and how to use it with Flask or Django.</description><pubDate>Tue, 05 Mar 2024 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to: HTML contact form with Flask and Resend</title><link>https://blog.teclado.com/how-to-make-html-contact-form-flask-resend/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-make-html-contact-form-flask-resend/</guid><description>Learn how to create an HTML contact form, add it to your Flask website, and have it send you an email when someone submits it!</description><pubDate>Tue, 14 Nov 2023 00:00:00 GMT</pubDate><author>Leonardo Spairani</author></item><item><title>Build your first REST API with FastAPI</title><link>https://blog.teclado.com/build-your-first-rest-api-with-fastapi/</link><guid isPermaLink="true">https://blog.teclado.com/build-your-first-rest-api-with-fastapi/</guid><description>Get started with FastAPI by building a time-tracking API, including database connectivity, Pydantic models, GET and POST requests, and more!</description><pubDate>Mon, 31 Jul 2023 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Introduction to pytest: A Beginner&apos;s Guide</title><link>https://blog.teclado.com/pytest-for-beginners/</link><guid isPermaLink="true">https://blog.teclado.com/pytest-for-beginners/</guid><description>Add tests to your Python code with pytest. Let me show you how to write simple, effective tests!</description><pubDate>Mon, 03 Apr 2023 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to deploy Flask and MongoDB to Render</title><link>https://blog.teclado.com/how-to-deploy-flask-and-mongodb-to-render/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-deploy-flask-and-mongodb-to-render/</guid><description>In this post we show you how to deploy your Flask and MongoDB app for free to Render.com and MongoDB Atlas.</description><pubDate>Mon, 27 Feb 2023 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to customise pages and emails of Flask-Security-Too</title><link>https://blog.teclado.com/customise-pages-emails-flask-security-too/</link><guid isPermaLink="true">https://blog.teclado.com/customise-pages-emails-flask-security-too/</guid><description>When you add login, signup, or other features with Flask-Security-Too, you get some unstyled plain HTML pages. Learn how to customise and style them in this article.</description><pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>User email confirmations with Flask-Security-Too</title><link>https://blog.teclado.com/email-confirmation-flask-security-too/</link><guid isPermaLink="true">https://blog.teclado.com/email-confirmation-flask-security-too/</guid><description>Requiring user confirmation via email is traditionally not a simple thing to do. Flask extension Flask-Security-Too makes it much simpler.</description><pubDate>Mon, 13 Feb 2023 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Query string arguments in REST APIs with Flask</title><link>https://blog.teclado.com/query-string-arguments-in-flask-rest-apis/</link><guid isPermaLink="true">https://blog.teclado.com/query-string-arguments-in-flask-rest-apis/</guid><description>Query string arguments allow clients to send us extra data in the URL. Learn how to access query string arguments in a plain Flask route and in a Flask-Smorest API.</description><pubDate>Mon, 06 Feb 2023 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>User authentication in Flask with Flask-Security-Too</title><link>https://blog.teclado.com/user-authentication-flask-security-too/</link><guid isPermaLink="true">https://blog.teclado.com/user-authentication-flask-security-too/</guid><description>Learn how to easily add user login and signup to any Flask app using the popular extension Flask-Security-Too!</description><pubDate>Mon, 30 Jan 2023 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>New Free Course: FastAPI for Beginners</title><link>https://blog.teclado.com/new-free-course-fastapi-for-beginners/</link><guid isPermaLink="true">https://blog.teclado.com/new-free-course-fastapi-for-beginners/</guid><description>We&apos;ve finally published our latest course: FastAPI for Beginners. It&apos;s a free course to help you get started with FastAPI.</description><pubDate>Tue, 20 Dec 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to use pyenv to manage Python versions</title><link>https://blog.teclado.com/how-to-use-pyenv-manage-python-versions/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-use-pyenv-manage-python-versions/</guid><description>If you need to install multiple Python versions, going the ol&apos; installer route isn&apos;t the best idea. In this article I show you how I manage multiple Python versions, using pyenv.</description><pubDate>Mon, 28 Nov 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Create JWTs using Python for Flask or FastAPI</title><link>https://blog.teclado.com/jwts-python-fastapi-flask/</link><guid isPermaLink="true">https://blog.teclado.com/jwts-python-fastapi-flask/</guid><description>Learn how to create JWTs for authentication using either Flask or pure Python (for use in FastAPI and other frameworks).</description><pubDate>Wed, 02 Nov 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to run tasks periodically in Render.com</title><link>https://blog.teclado.com/python-run-task-periodically-cron-job/</link><guid isPermaLink="true">https://blog.teclado.com/python-run-task-periodically-cron-job/</guid><description>Have you ever had to run some code every hour, or every day, or every week? In this article I&apos;ll show you how to set it up, to run in the cloud, very easily!</description><pubDate>Mon, 24 Oct 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to upload files to Backblaze B2 using Python</title><link>https://blog.teclado.com/python-file-upload-backblaze-b2/</link><guid isPermaLink="true">https://blog.teclado.com/python-file-upload-backblaze-b2/</guid><description>If your web app handles user uploads, you need a place to store the files. This article shows you how to set up Backblaze B2, a cloud storage service, to store any uploaded files using Python.</description><pubDate>Thu, 20 Oct 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Exploring Python Task Queues: Celery and rq</title><link>https://blog.teclado.com/exploring-python-task-queues-celery-and-rq/</link><guid isPermaLink="true">https://blog.teclado.com/exploring-python-task-queues-celery-and-rq/</guid><description>An overview of how task queues work and how to set up an rq task queue and background worker using Redis. With examples.</description><pubDate>Thu, 13 Oct 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to deploy your first REST API with Flask for free</title><link>https://blog.teclado.com/how-to-deploy-your-first-rest-api-with-flask-for-free/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-deploy-your-first-rest-api-with-flask-for-free/</guid><description>Deploying a Flask app makes it available to everyone on the internet, so it&apos;s what you need to do to share your projects. In this post we&apos;ll show you how to do it using two different providers.</description><pubDate>Thu, 06 Oct 2022 00:00:00 GMT</pubDate><author>Luka Milivojevic</author></item><item><title>How to handle file uploads with Flask</title><link>https://blog.teclado.com/file-uploads-with-flask/</link><guid isPermaLink="true">https://blog.teclado.com/file-uploads-with-flask/</guid><description>Uploading files is tricky! In this post we show you two ways: a simple and a less simple, depending on your needs.</description><pubDate>Tue, 27 Sep 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Time Complexity and BigO Notation explained with Python</title><link>https://blog.teclado.com/time-complexity-big-o-notation-python/</link><guid isPermaLink="true">https://blog.teclado.com/time-complexity-big-o-notation-python/</guid><description>Understanding time complexity and BigO notation helps us write better and more efficient algorithms. In this post we explain the different time complexities with Python examples!</description><pubDate>Mon, 05 Sep 2022 00:00:00 GMT</pubDate><author>Burak Üren</author></item><item><title>Python lists: remove() vs pop()</title><link>https://blog.teclado.com/python-lists-remove-vs-pop/</link><guid isPermaLink="true">https://blog.teclado.com/python-lists-remove-vs-pop/</guid><description>To remove items from a list we can use remove() or pop(). They behave slightly differently, so let&apos;s take a look!</description><pubDate>Wed, 24 Aug 2022 00:00:00 GMT</pubDate><author>Luka Milivojevic</author></item><item><title>Build your first REST API with Flask and PostgreSQL</title><link>https://blog.teclado.com/first-rest-api-flask-postgresql-python/</link><guid isPermaLink="true">https://blog.teclado.com/first-rest-api-flask-postgresql-python/</guid><description>Learn to build a REST API to collect, aggregate, and serve temperature data using Flask and PostgreSQL!</description><pubDate>Thu, 18 Aug 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra, Luka Milivojevic</author></item><item><title>The @property decorator in Python</title><link>https://blog.teclado.com/property-decorator-in-python/</link><guid isPermaLink="true">https://blog.teclado.com/property-decorator-in-python/</guid><description>The property decorator allows us to define methods that act as attributes in Python classes. This simplifies using the objects, and extends what we can do when getting and setting attribute values.</description><pubDate>Thu, 12 May 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to simplify long if statements in Python</title><link>https://blog.teclado.com/simplify-long-if-statements-python/</link><guid isPermaLink="true">https://blog.teclado.com/simplify-long-if-statements-python/</guid><description>When Python if statements grow, they become difficult to work with. Learn how to simplify them using match-case and dictionaries in this post!</description><pubDate>Fri, 29 Apr 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Basics of Python a Beginner Should Know - Part 1</title><link>https://blog.teclado.com/basics-of-python-beginners-part-1/</link><guid isPermaLink="true">https://blog.teclado.com/basics-of-python-beginners-part-1/</guid><description>Learn some of the main building blocks of Python in this post! Including indentation, comments, operators, and conditionals.</description><pubDate>Wed, 20 Apr 2022 00:00:00 GMT</pubDate><author>Saurav Jain</author></item><item><title>How to Add API Key Authentication to a Flask app</title><link>https://blog.teclado.com/api-key-authentication-with-flask/</link><guid isPermaLink="true">https://blog.teclado.com/api-key-authentication-with-flask/</guid><description>Learn how to add API key authentication to your Flask apps using Flask-RESTful and SQLAlchemy.</description><pubDate>Thu, 17 Mar 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Changes to async event loops in Python 3.10</title><link>https://blog.teclado.com/changes-to-async-event-loops-in-python-3-10/</link><guid isPermaLink="true">https://blog.teclado.com/changes-to-async-event-loops-in-python-3-10/</guid><description>Python 3.10 deprecated a frequently-used function in the asyncio library. In this post we explain what the new best practice is and how to change your code to use it.</description><pubDate>Thu, 03 Mar 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Using &quot;match...case&quot; in Python 3.10</title><link>https://blog.teclado.com/python-match-case/</link><guid isPermaLink="true">https://blog.teclado.com/python-match-case/</guid><description>Learn about the new &quot;match...case&quot; syntax in Python 3.10, and how you can use it with a bunch of examples!</description><pubDate>Wed, 23 Feb 2022 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Introduction to Object-Oriented Programming in Python</title><link>https://blog.teclado.com/introduction-to-object-oriented-programming-in-python/</link><guid isPermaLink="true">https://blog.teclado.com/introduction-to-object-oriented-programming-in-python/</guid><description>Object-Oriented Programming can be very confusing. In this post we explain it from the ground up, using examples, to show you how and when to use it.</description><pubDate>Mon, 06 Dec 2021 00:00:00 GMT</pubDate><author>Vlad Dragusanu</author></item><item><title>Build a blog platform with Flask: writing and showing posts</title><link>https://blog.teclado.com/build-own-blog-platform-flask-python-part-1/</link><guid isPermaLink="true">https://blog.teclado.com/build-own-blog-platform-flask-python-part-1/</guid><description>Part 1 of this series to guide you through building a blog using Flask and Python! In this post you&apos;ll learn how to start your Flask app, set up a database, and create posts.</description><pubDate>Tue, 21 Sep 2021 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Dictionary Merge and Update Operators in Python 3.9</title><link>https://blog.teclado.com/python-dictionary-merge-update-operators/</link><guid isPermaLink="true">https://blog.teclado.com/python-dictionary-merge-update-operators/</guid><description>Python 3.9 introduced two new operators for dictionary merging and updating. Learn more about them, as well as other places where you can use them!</description><pubDate>Tue, 04 May 2021 00:00:00 GMT</pubDate><author>Vlad Dragusanu</author></item><item><title>Working with Python virtual environments: the complete guide</title><link>https://blog.teclado.com/python-virtual-environments-complete-guide/</link><guid isPermaLink="true">https://blog.teclado.com/python-virtual-environments-complete-guide/</guid><description>Working with dependencies is a fact of life. With this post, learn about dependency management in Python using virtual environments!</description><pubDate>Wed, 28 Apr 2021 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python Methods: Instance, Static and Class</title><link>https://blog.teclado.com/python-methods-instance-static-class/</link><guid isPermaLink="true">https://blog.teclado.com/python-methods-instance-static-class/</guid><description>What are @classmethod and @staticmethod? How are they different from instance methods? Learn about the three types of Python method in this post!</description><pubDate>Wed, 03 Mar 2021 00:00:00 GMT</pubDate><author>Vlad Dragusanu</author></item><item><title>How to Write Cleaner Python Code Using Abstract Classes</title><link>https://blog.teclado.com/python-abc-abstract-base-classes/</link><guid isPermaLink="true">https://blog.teclado.com/python-abc-abstract-base-classes/</guid><description>What are Abstract Classes? When are they useful? When should you use them? Let&apos;s take a look!</description><pubDate>Thu, 18 Feb 2021 00:00:00 GMT</pubDate><author>Petar Marković</author></item><item><title>30 Days Of Python</title><link>https://blog.teclado.com/30-days-of-python/</link><guid isPermaLink="true">https://blog.teclado.com/30-days-of-python/</guid><description>30 Days Of Python is a series that guides you through the initial stages of learning to code with Python. Totally free, with dozens of exercises and projects to complete!</description><pubDate>Sat, 28 Mar 2020 00:00:00 GMT</pubDate><author>Jose Salvatierra, Phil Best</author></item><item><title>Marshmallow serialization with MongoDB and Python</title><link>https://blog.teclado.com/marshmallow-serialization-mongodb-python/</link><guid isPermaLink="true">https://blog.teclado.com/marshmallow-serialization-mongodb-python/</guid><description>In this blog post we&apos;ll learn how to use the marshmallow library to serialize and deserialize data coming from both users and MongoDB!</description><pubDate>Thu, 26 Mar 2020 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Work with dates and times in Python using datetime</title><link>https://blog.teclado.com/how-to-work-with-dates-times-python-datetime/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-work-with-dates-times-python-datetime/</guid><description>Dates and times are essential in programming, but they come with complications: parsing and serializing, storing in databases, and working with timezones among others. Read this post to learn more about how to work with dates and times in Python effectively!</description><pubDate>Wed, 18 Mar 2020 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to add Menus to Tkinter applications</title><link>https://blog.teclado.com/how-to-add-menu-to-tkinter-app/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-add-menu-to-tkinter-app/</guid><description>Learn how to add menus to your GUI applications using Tkinter&apos;s Menu widget!</description><pubDate>Sun, 22 Dec 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Process or Thread, that is the question</title><link>https://blog.teclado.com/process-or-thread-that-is-the-question/</link><guid isPermaLink="true">https://blog.teclado.com/process-or-thread-that-is-the-question/</guid><description>When should you use processes and threads in Python? How can you make use of all your CPU has to offer? In this post we explore a few techniques to improve performance, easily.</description><pubDate>Wed, 18 Dec 2019 00:00:00 GMT</pubDate><author>Li Yin</author></item><item><title>How to add placeholders to Tkinter Entry fields</title><link>https://blog.teclado.com/tkinter-placeholder-entry-field/</link><guid isPermaLink="true">https://blog.teclado.com/tkinter-placeholder-entry-field/</guid><description>Native Tkinter Entry fields don&apos;t support placeholders. In this blog post we&apos;ll create our own custom Entry widget class that does!</description><pubDate>Tue, 12 Nov 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to set up a server using AWS</title><link>https://blog.teclado.com/how-to-set-up-a-server-using-aws/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-set-up-a-server-using-aws/</guid><description>Amazon Web Services is one of the most popular choices for cloud computing nowadays. It can be quite confusing though! In this blog post we&apos;ll learn how to provision a server that we can access using SSH.</description><pubDate>Thu, 24 Oct 2019 00:00:00 GMT</pubDate><author>Li Yin</author></item><item><title>Assignment expressions in Python</title><link>https://blog.teclado.com/python-assignment-expressions/</link><guid isPermaLink="true">https://blog.teclado.com/python-assignment-expressions/</guid><description>Learn about Python&apos;s new assignment expression syntax and walrus operator. Assignment expressions can cut down on boilerplate code and improve efficiency!</description><pubDate>Mon, 21 Oct 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Writing Clean Python</title><link>https://blog.teclado.com/writing-clean-python/</link><guid isPermaLink="true">https://blog.teclado.com/writing-clean-python/</guid><description>In this post we talk about some tips and techniques for writing clean, readable Python. Avoid common style mistakes and write beautiful Python code!</description><pubDate>Thu, 17 Oct 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python&apos;s namedtuples</title><link>https://blog.teclado.com/pythons-namedtuples/</link><guid isPermaLink="true">https://blog.teclado.com/pythons-namedtuples/</guid><description>Learn how to use the collection module&apos;s namedtuples to make your Python code even more clear and readable!</description><pubDate>Mon, 14 Oct 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Scrollable Frames in Tkinter</title><link>https://blog.teclado.com/tkinter-scrollable-frames/</link><guid isPermaLink="true">https://blog.teclado.com/tkinter-scrollable-frames/</guid><description>In this post we&apos;ll learn how to code a frame that has scrolling, in Tkinter. This is not a native widget in Tkinter so we have to do a bit of manual work!</description><pubDate>Thu, 10 Oct 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python&apos;s divmod Function</title><link>https://blog.teclado.com/pythons-divmod-function/</link><guid isPermaLink="true">https://blog.teclado.com/pythons-divmod-function/</guid><description>Learn all about Python&apos;s divmod function, which allows us to easily perform floor division and modulo operations in one go!</description><pubDate>Mon, 07 Oct 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Decimal vs float in Python</title><link>https://blog.teclado.com/decimal-vs-float-in-python/</link><guid isPermaLink="true">https://blog.teclado.com/decimal-vs-float-in-python/</guid><description>When working with fractions in Python, we tend to use floats, but we also have the decimal module. Learn how to use it, and its benefits over floats.</description><pubDate>Thu, 03 Oct 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python&apos;s format Function</title><link>https://blog.teclado.com/pythons-format-function/</link><guid isPermaLink="true">https://blog.teclado.com/pythons-format-function/</guid><description>You may be familiar with Python&apos;s format method, but what about the format function? Learn to use Python&apos;s formatting language without string interpolation!</description><pubDate>Mon, 30 Sep 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>How to interact with REST APIs from JavaScript</title><link>https://blog.teclado.com/how-to-interact-with-rest-apis-from-javascript/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-interact-with-rest-apis-from-javascript/</guid><description>Learn how to use JavaScript to interact with your REST APIs, using XMLHttpRequest and also fetch.</description><pubDate>Thu, 26 Sep 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python&apos;s Partition Method for Strings</title><link>https://blog.teclado.com/python-partition-method/</link><guid isPermaLink="true">https://blog.teclado.com/python-partition-method/</guid><description>In this post we cover a lesser known string method called partition. It has a lot of similarities to split, but there are some interesting differences.</description><pubDate>Mon, 23 Sep 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Flashing messages with Flask</title><link>https://blog.teclado.com/flashing-messages-with-flask/</link><guid isPermaLink="true">https://blog.teclado.com/flashing-messages-with-flask/</guid><description>Learn how to temporarily show messages in your websites when using Flask, by using the built-in message flashing mechanism. It&apos;s flexible yet straightforward!</description><pubDate>Thu, 19 Sep 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Formatting Integers in Different Bases in Python</title><link>https://blog.teclado.com/python-formatting-integers-in-different-bases/</link><guid isPermaLink="true">https://blog.teclado.com/python-formatting-integers-in-different-bases/</guid><description>In this post we dive deeper into Python&apos;s formatting syntax, learning about displaying numbers in different bases. We also make a neat colour converter too!</description><pubDate>Mon, 16 Sep 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Creating Snake Using Tkinter&apos;s Canvas Widget (Part 2)</title><link>https://blog.teclado.com/write-snake-game-python-tkinter-part-2/</link><guid isPermaLink="true">https://blog.teclado.com/write-snake-game-python-tkinter-part-2/</guid><description>In this post we finish off our Snake game using Tkinter&apos;s Canvas widget. Learn how to move objects on the Canvas, delete them, or add more.</description><pubDate>Thu, 12 Sep 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Nested String Interpolation in Python</title><link>https://blog.teclado.com/python-nested-string-interpolation/</link><guid isPermaLink="true">https://blog.teclado.com/python-nested-string-interpolation/</guid><description>In this post we continue looking at formatting, this time exploring nested string interpolation, which we can use to dynamically set formatting options.</description><pubDate>Mon, 09 Sep 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Creating Snake Using Tkinter&apos;s Canvas Widget (Part 1)</title><link>https://blog.teclado.com/write-snake-game-python-tkinter-part-1/</link><guid isPermaLink="true">https://blog.teclado.com/write-snake-game-python-tkinter-part-1/</guid><description>In this post we start work on recreating the popular arcade game, Snake, using Tkinter&apos;s versatile Canvas widget.</description><pubDate>Thu, 05 Sep 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Formatting Numbers for Printing in Python</title><link>https://blog.teclado.com/python-formatting-numbers-for-printing/</link><guid isPermaLink="true">https://blog.teclado.com/python-formatting-numbers-for-printing/</guid><description>Learn how to leverage Python&apos;s detailed formatting language to control how numbers are displayed in your applications.</description><pubDate>Mon, 02 Sep 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>How to write decorators in Python</title><link>https://blog.teclado.com/decorators-in-python/</link><guid isPermaLink="true">https://blog.teclado.com/decorators-in-python/</guid><description>Decorators in Python can be a confusing topic, particularly for newer students. In this post we&apos;ll explain them from the ground up, including how they work, their syntax, and much more!</description><pubDate>Thu, 29 Aug 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python&apos;s &quot;Ternary Operator&quot;</title><link>https://blog.teclado.com/python-pythons-ternary-operator/</link><guid isPermaLink="true">https://blog.teclado.com/python-pythons-ternary-operator/</guid><description>Learn about conditional statements in Python: a slightly obscure bit of syntax that allows for succinct conditional logic, particularly during assignments.</description><pubDate>Mon, 26 Aug 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Tkinter&apos;s Grid Geometry Manager</title><link>https://blog.teclado.com/tkinters-grid-geometry-manager/</link><guid isPermaLink="true">https://blog.teclado.com/tkinters-grid-geometry-manager/</guid><description>In this post we dive deeper into GUI development with Tkinter, exploring the grid geometry manager. Grid is a great alternative to pack for complex layouts.</description><pubDate>Thu, 22 Aug 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>How to set up Visual Studio Code for Python development</title><link>https://blog.teclado.com/how-to-set-up-visual-studio-code-for-python-development/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-set-up-visual-studio-code-for-python-development/</guid><description>Visual Studio Code is an amazing editor for Python. Here are a few extensions, tips, and tricks I&apos;ve learned over the years!</description><pubDate>Wed, 21 Aug 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Generating a Collection of Random Numbers in Python</title><link>https://blog.teclado.com/python-generating-a-collection-of-random-numbers/</link><guid isPermaLink="true">https://blog.teclado.com/python-generating-a-collection-of-random-numbers/</guid><description>In this post we learn about choices and sample: two useful functions in the random module used for generating collections of random values.</description><pubDate>Mon, 19 Aug 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Handling the next URL when logging in with Flask</title><link>https://blog.teclado.com/handling-the-next-url-when-logging-in-with-flask/</link><guid isPermaLink="true">https://blog.teclado.com/handling-the-next-url-when-logging-in-with-flask/</guid><description>Learn how to redirect users to their intended destination after logging in, instead of a default &quot;profile&quot; page every time. Simple, but can have a big impact in user experience!</description><pubDate>Thu, 15 Aug 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Updating Python Dictionaries</title><link>https://blog.teclado.com/python-updating-dictionaries/</link><guid isPermaLink="true">https://blog.teclado.com/python-updating-dictionaries/</guid><description>In this snippet post we look at the update method for dictionaries. We can use update to change several values at once or extend dictionaries with new keys.</description><pubDate>Mon, 12 Aug 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Side values in Tkinter&apos;s pack geometry manager</title><link>https://blog.teclado.com/side-values-in-tkinters-pack-geometry-manager/</link><guid isPermaLink="true">https://blog.teclado.com/side-values-in-tkinters-pack-geometry-manager/</guid><description>This week we continue our journey into GUI development with Tkinter, and explore how to use the side configuration option in the pack geometry manager.</description><pubDate>Thu, 08 Aug 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Extending Python Lists</title><link>https://blog.teclado.com/python-extending-lists/</link><guid isPermaLink="true">https://blog.teclado.com/python-extending-lists/</guid><description>In this week&apos;s Python snippet post we look at the extend method for lists. Extend works a lot like append, but allows us to append many values at once.</description><pubDate>Mon, 05 Aug 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Tkinter&apos;s Pack Geometry Manager</title><link>https://blog.teclado.com/tkinters-pack-geometry-manager/</link><guid isPermaLink="true">https://blog.teclado.com/tkinters-pack-geometry-manager/</guid><description>In this post we dive into GUI development and take an important step towards understanding Tkinter&apos;s pack geometry manager.</description><pubDate>Thu, 01 Aug 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python Dictionaries and Loops</title><link>https://blog.teclado.com/python-dictionaries-and-loops/</link><guid isPermaLink="true">https://blog.teclado.com/python-dictionaries-and-loops/</guid><description>In this post we cover various ways we can iterate over dictionaries. Learn how to use the items and values methods to write more Pythonic loops with dicts.</description><pubDate>Mon, 29 Jul 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Protecting endpoints in Flask apps by requiring login</title><link>https://blog.teclado.com/protecting-endpoints-in-flask-apps-by-requiring-login/</link><guid isPermaLink="true">https://blog.teclado.com/protecting-endpoints-in-flask-apps-by-requiring-login/</guid><description>In this post we&apos;ll learn to prevent unauthorised logins to our Flask endpoints. We&apos;ll also look at decorators so that we can secure endpoints with a single line of code for each!</description><pubDate>Thu, 25 Jul 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python&apos;s zip_longest Function</title><link>https://blog.teclado.com/python-zip_longest/</link><guid isPermaLink="true">https://blog.teclado.com/python-zip_longest/</guid><description>zip is an incredibly powerful tool, but it has its limitations. Learn about zip_longest so you can zip collections of any length without losing data!</description><pubDate>Mon, 22 Jul 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Coding Interview Problems: Palindromes</title><link>https://blog.teclado.com/coding-interview-problems-palindromes/</link><guid isPermaLink="true">https://blog.teclado.com/coding-interview-problems-palindromes/</guid><description>We&apos;re back tackling another common coding interview problem. This time we&apos;re tackling palindromes! Avoid common problems and impress at your next interview.</description><pubDate>Thu, 18 Jul 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Using zip in Python</title><link>https://blog.teclado.com/python-zip/</link><guid isPermaLink="true">https://blog.teclado.com/python-zip/</guid><description>Python&apos;s zip function is extremely powerful and can simplify your code greatly, particularly when working with multiple iterables at the same time. In this post we cover a few ways to use it!</description><pubDate>Mon, 15 Jul 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>How to add user logins to your Flask website</title><link>https://blog.teclado.com/how-to-add-user-logins-to-your-flask-website/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-add-user-logins-to-your-flask-website/</guid><description>Authentication (log in and sign up) can be tricky. In this blog post we&apos;ll guide you through adding it to a website or web app built entirely with Flask!</description><pubDate>Thu, 11 Jul 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to Start Learning Python</title><link>https://blog.teclado.com/how-to-start-learning-python/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-start-learning-python/</guid><description>Want to start learning Python? Wondering where and how to begin? We&apos;d love to help. In fact, it&apos;s what we do!</description><pubDate>Tue, 09 Jul 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>A Closer Look at Python&apos;s Print Function</title><link>https://blog.teclado.com/python-a-closer-look-at-print/</link><guid isPermaLink="true">https://blog.teclado.com/python-a-closer-look-at-print/</guid><description>Print is one of the first functions we encounter when learning Python, but it can do a lot more than say &quot;Hello, world!&quot;. Learn about print&apos;s other options and master this common function!</description><pubDate>Mon, 08 Jul 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Destructuring in Python</title><link>https://blog.teclado.com/destructuring-in-python/</link><guid isPermaLink="true">https://blog.teclado.com/destructuring-in-python/</guid><description>In this post we take a look at destructuring, also called &quot;unpacking&quot;. We can use it to split a collection into single values, e.g. for multiple assignment.</description><pubDate>Thu, 04 Jul 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python Easter Eggs</title><link>https://blog.teclado.com/python-easter-eggs/</link><guid isPermaLink="true">https://blog.teclado.com/python-easter-eggs/</guid><description>This week we take a look at some of Python&apos;s hidden Easter eggs, including perhaps the most important module in all of Python: antigravity.</description><pubDate>Mon, 01 Jul 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Coding Interview Problems: Rotating a List</title><link>https://blog.teclado.com/coding-interview-problems-rotating-a-list/</link><guid isPermaLink="true">https://blog.teclado.com/coding-interview-problems-rotating-a-list/</guid><description>In this post we tackle another common coding interview problem: rotating a list. Avoid common pitfalls and impress at your next coding interview.</description><pubDate>Thu, 27 Jun 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python Deques</title><link>https://blog.teclado.com/python-deques/</link><guid isPermaLink="true">https://blog.teclado.com/python-deques/</guid><description>Deques are a very handy collection type from the built-in &quot;collections&quot; module. They extend the functionality of lists and give us a couple more useful methods. Learn about them in this post!</description><pubDate>Mon, 24 Jun 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Simple JWT Authentication with Flask-JWT</title><link>https://blog.teclado.com/simple-jwt-authentication-with-flask-jwt/</link><guid isPermaLink="true">https://blog.teclado.com/simple-jwt-authentication-with-flask-jwt/</guid><description>Adding authentication in Flask applications can be really straightforward. Learn more about token-based authentication with Flask-JWT in this post.</description><pubDate>Thu, 20 Jun 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python Itertools Part 2 - Combinations &amp; Permutations</title><link>https://blog.teclado.com/python-itertools-part-2-combinations-permutations/</link><guid isPermaLink="true">https://blog.teclado.com/python-itertools-part-2-combinations-permutations/</guid><description>This week we continue our look at the itertools module, this time covering the permutations and combinations functions.</description><pubDate>Mon, 17 Jun 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Coding Interview: Find the Longest Word</title><link>https://blog.teclado.com/coding-interview-problems-find-the-longest-word-in-a-paragraph/</link><guid isPermaLink="true">https://blog.teclado.com/coding-interview-problems-find-the-longest-word-in-a-paragraph/</guid><description>In this post we tackle another common coding interview problem: finding the longest word in a paragraph. Avoid some common pitfalls and ace your interview.</description><pubDate>Thu, 13 Jun 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python Itertools Part 1 - Product</title><link>https://blog.teclado.com/python-itertools-part-1-product/</link><guid isPermaLink="true">https://blog.teclado.com/python-itertools-part-1-product/</guid><description>The itertools module contains a bunch of handy functions. Here we take a look at product, which can serve as a replacement for complex comprehensions.</description><pubDate>Mon, 10 Jun 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>What is CORS and how to &quot;fix&quot; it</title><link>https://blog.teclado.com/what-is-cors-and-how-to-fix-it/</link><guid isPermaLink="true">https://blog.teclado.com/what-is-cors-and-how-to-fix-it/</guid><description>CORS is a security feature of browsers, but is configured in the server side. It is used to control requests coming in from different domains. Learn more in this post!</description><pubDate>Thu, 06 Jun 2019 00:00:00 GMT</pubDate><author>Li Yin</author></item><item><title>Python&apos;s symmetric_difference Method for Sets</title><link>https://blog.teclado.com/python-symmetric-difference/</link><guid isPermaLink="true">https://blog.teclado.com/python-symmetric-difference/</guid><description>In this Python snippet post we cover a lesser known set method: symmetric_difference.</description><pubDate>Mon, 03 Jun 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Introduction to unit testing with Python</title><link>https://blog.teclado.com/introduction-to-unit-testing-with-python/</link><guid isPermaLink="true">https://blog.teclado.com/introduction-to-unit-testing-with-python/</guid><description>Testing is an essential part of software development. Start writing simple and effective tests with this blog post. It&apos;s easier than you think!</description><pubDate>Thu, 30 May 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python Comprehensions with Conditionals</title><link>https://blog.teclado.com/python-list-comprehensions-conditionals/</link><guid isPermaLink="true">https://blog.teclado.com/python-list-comprehensions-conditionals/</guid><description>In this snippet post we show you how to add conditional clauses to your list comprehensions. Once you know how to use it, this kind of filtering is very powerful.</description><pubDate>Mon, 27 May 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Coding Interview Problems: FizzBuzz</title><link>https://blog.teclado.com/interview-coding-problems-fizzbuzz/</link><guid isPermaLink="true">https://blog.teclado.com/interview-coding-problems-fizzbuzz/</guid><description>In this post we provide a walk through for a common interview problem: FizzBuzz. Avoid some common mistakes and breeze through this problem in your next coding interview.</description><pubDate>Thu, 23 May 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>List Comprehensions in Python</title><link>https://blog.teclado.com/python-list-comprehensions/</link><guid isPermaLink="true">https://blog.teclado.com/python-list-comprehensions/</guid><description>Learn how to use Python&apos;s list comprehension syntax: an awesome, Pythonic tool for creating new lists from existing iterables.</description><pubDate>Mon, 20 May 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Creating a New Sequence Type in Python - Part 3</title><link>https://blog.teclado.com/creating-a-new-sequence-type-in-python-part-3/</link><guid isPermaLink="true">https://blog.teclado.com/creating-a-new-sequence-type-in-python-part-3/</guid><description>In this post we continue our journey to create a new sequence type using classes and Python&apos;s special methods. This time we focus on operator overloading!</description><pubDate>Thu, 16 May 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python&apos;s Enumerate Function</title><link>https://blog.teclado.com/python-enumerate/</link><guid isPermaLink="true">https://blog.teclado.com/python-enumerate/</guid><description>In this Python snippet post we take a look at the enumerate function: a vital tool for creating Pythonic loops.</description><pubDate>Mon, 13 May 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Coding Interview Problems: Reversing a List (Python)</title><link>https://blog.teclado.com/coding-interview-problems-reversing-a-list-python/</link><guid isPermaLink="true">https://blog.teclado.com/coding-interview-problems-reversing-a-list-python/</guid><description>Reversing a list is one of the most commonly asked interview problems. It&apos;s asked to test fundamental knowledge and also your problem-solving skills. In this post we look at a couple different ways to reverse a list easily!</description><pubDate>Thu, 09 May 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Encrypting passwords in Python with passlib</title><link>https://blog.teclado.com/learn-python-encrypting-passwords-python-flask-and-passlib/</link><guid isPermaLink="true">https://blog.teclado.com/learn-python-encrypting-passwords-python-flask-and-passlib/</guid><description>The biggest problem with encryption is that we don&apos;t do enough of it. Learn how to easily secure personal data and encrypt passwords with Python and passlib.</description><pubDate>Thu, 09 May 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python Set Operators</title><link>https://blog.teclado.com/python-set-operators/</link><guid isPermaLink="true">https://blog.teclado.com/python-set-operators/</guid><description>In this post we cover shorthand operators for performing set operations in Python. We&apos;ll look at the three most common ones: union, intersection, and difference.</description><pubDate>Mon, 06 May 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>How to interact with APIs using Python</title><link>https://blog.teclado.com/how-to-interact-with-apis-using-python/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-interact-with-apis-using-python/</guid><description>APIs allow your code to interact with other code. In this post we&apos;ll learn more about what APIs are for, and how to use them from your Python code.</description><pubDate>Thu, 02 May 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Quick Sequence Reversal in Python</title><link>https://blog.teclado.com/python-quick-sequence-reversal/</link><guid isPermaLink="true">https://blog.teclado.com/python-quick-sequence-reversal/</guid><description>Learn to use extended slices to quickly reverse the order of any sequence!</description><pubDate>Mon, 29 Apr 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Creating a New Sequence Type in Python - Part 2</title><link>https://blog.teclado.com/creating-a-new-sequence-type-in-python-part-2/</link><guid isPermaLink="true">https://blog.teclado.com/creating-a-new-sequence-type-in-python-part-2/</guid><description>In this post we continue our journey to master Python&apos;s dunder methods by creating a new sequence type from scratch.</description><pubDate>Thu, 25 Apr 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>More Uses for Else in Python</title><link>https://blog.teclado.com/python-more-uses-for-else/</link><guid isPermaLink="true">https://blog.teclado.com/python-more-uses-for-else/</guid><description>Get familiar with the different uses for else in Python. It&apos;s not just for if statements: we can use it with loops, and for error handling too!</description><pubDate>Mon, 22 Apr 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Creating a New Sequence Type in Python - Part 1</title><link>https://blog.teclado.com/creating-a-new-sequence-type-in-python-part-1/</link><guid isPermaLink="true">https://blog.teclado.com/creating-a-new-sequence-type-in-python-part-1/</guid><description>Learn to exploit the power of Python&apos;s magic methods by creating a new sequence type from scratch!</description><pubDate>Fri, 19 Apr 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python Slices Part 2: The Deep Cut</title><link>https://blog.teclado.com/python-slices-part-2/</link><guid isPermaLink="true">https://blog.teclado.com/python-slices-part-2/</guid><description>In this post we take a deeper dive into Python slices, and pull back the curtain on the magic methods behind the slice notation we covered in earlier posts.</description><pubDate>Sun, 14 Apr 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python Slices</title><link>https://blog.teclado.com/python-slices/</link><guid isPermaLink="true">https://blog.teclado.com/python-slices/</guid><description>Slices are amazing whenever you want to use a piece of a larger sequence. Learn the basics of slicing in Python and add a powerful tool to your repertoire.</description><pubDate>Sun, 07 Apr 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Rounding in Python</title><link>https://blog.teclado.com/rounding-in-python/</link><guid isPermaLink="true">https://blog.teclado.com/rounding-in-python/</guid><description>Take a deep dive into Python&apos;s rounding functions! Learn about floor, ceil, trunc, and round, and avoid common rounding errors in Python.</description><pubDate>Sun, 31 Mar 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Python&apos;s modulo operator and floor division</title><link>https://blog.teclado.com/pythons-modulo-operator-and-floor-division/</link><guid isPermaLink="true">https://blog.teclado.com/pythons-modulo-operator-and-floor-division/</guid><description>Learn about the some less well-known operators in Python: modulo and floor division—as well as how they interact with each other and how they&apos;re related!</description><pubDate>Tue, 26 Mar 2019 00:00:00 GMT</pubDate><author>Phil Best</author></item><item><title>Logical comparisons in Python: and &amp; or</title><link>https://blog.teclado.com/logical-comparisons-in-python-and-or/</link><guid isPermaLink="true">https://blog.teclado.com/logical-comparisons-in-python-and-or/</guid><description>Learn about the intricacies of and &amp; or in Python, how they behave with True and False values, and also with any other type of value!</description><pubDate>Tue, 12 Mar 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Why does scraping fail with requests and BeautifulSoup?</title><link>https://blog.teclado.com/why-scraping-fail-requests-beautifulsoup-python/</link><guid isPermaLink="true">https://blog.teclado.com/why-scraping-fail-requests-beautifulsoup-python/</guid><description>Do you have scraping code which works in some websites but not others, even though you&apos;re sure the method you&apos;re using to get data out of the site is correct? JavaScript could be the problem!</description><pubDate>Wed, 27 Feb 2019 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Student stories: Programming with Pinstripes</title><link>https://blog.teclado.com/student-stories-chris-nyland-programming-with-pinstripes/</link><guid isPermaLink="true">https://blog.teclado.com/student-stories-chris-nyland-programming-with-pinstripes/</guid><description>Teclado student Chris Nyland shares his experiences working a full-time legal job while learning programming on the said, developing tools to help said job!</description><pubDate>Wed, 14 Nov 2018 00:00:00 GMT</pubDate><author>Chris Nyland</author></item><item><title>Monthly Python Talk</title><link>https://blog.teclado.com/teclado-monthly-python-talks/</link><guid isPermaLink="true">https://blog.teclado.com/teclado-monthly-python-talks/</guid><description>I&apos;ve been collecting interesting Python talks, for students of all skill levels. Come back every month for a new one!</description><pubDate>Mon, 15 Oct 2018 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Python: how to use multiple decorators on one function</title><link>https://blog.teclado.com/python-how-to-use-multiple-decorators-on-one-function/</link><guid isPermaLink="true">https://blog.teclado.com/python-how-to-use-multiple-decorators-on-one-function/</guid><description>Decorators are a confusing Python topic, especially when you see two or more used at once! Here&apos;s a simple explanation of what&apos;s going on.</description><pubDate>Fri, 05 Oct 2018 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Migrating from pip + virtualenv to Pipenv</title><link>https://blog.teclado.com/migrating-from-pip-virtualenv-to-pipenv/</link><guid isPermaLink="true">https://blog.teclado.com/migrating-from-pip-virtualenv-to-pipenv/</guid><description>Pipenv is the new recommended packaging tool for Python. You no longer need to use pip and virtualenv separately. Learn how to migrate and simplify your development workflow!</description><pubDate>Mon, 01 Oct 2018 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Token Authentication and Refreshing using Flask-JWT-Extended</title><link>https://blog.teclado.com/jwt-authentication-and-token-refreshing-in-rest-apis/</link><guid isPermaLink="true">https://blog.teclado.com/jwt-authentication-and-token-refreshing-in-rest-apis/</guid><description>JWTs are great for processing authentication in a REST API. How can you stop requiring users provide their username and password every time the token expires? Learn about token-based authentication and token refresh!</description><pubDate>Mon, 07 May 2018 00:00:00 GMT</pubDate><author>Li Yin</author></item><item><title>Continuous Python Learning</title><link>https://blog.teclado.com/continuous-python-learning-with-books/</link><guid isPermaLink="true">https://blog.teclado.com/continuous-python-learning-with-books/</guid><description>Learning Python after you&apos;ve become knowledgeable can be difficult. Content online may be either too simple, or too specialised... What should you do?</description><pubDate>Sun, 15 Apr 2018 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Handy Python Development Tools</title><link>https://blog.teclado.com/handy-python-development-tools/</link><guid isPermaLink="true">https://blog.teclado.com/handy-python-development-tools/</guid><description>Python is an extremely productive language, but did you know you can become even more productive by worrying less about potential mistakes and formatting inconsistencies?</description><pubDate>Sat, 14 Apr 2018 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Should I learn Flask or Django?</title><link>https://blog.teclado.com/learn-python-flask-or-django/</link><guid isPermaLink="true">https://blog.teclado.com/learn-python-flask-or-django/</guid><description>Flask and Django are two behemoths of Python web development. Which one should you learn?</description><pubDate>Tue, 02 Jan 2018 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Advanced configuration of Flask-JWT</title><link>https://blog.teclado.com/learn-python-advanced-configuration-of-flask-jwt/</link><guid isPermaLink="true">https://blog.teclado.com/learn-python-advanced-configuration-of-flask-jwt/</guid><description>Flask-JWT is a great library to add user authentication to our Flask apps. Sometimes we want to configure it past what it gives us out of the box. Learn how in this post!</description><pubDate>Tue, 19 Dec 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>String formatting in Python</title><link>https://blog.teclado.com/learn-python-string-formatting-in-python/</link><guid isPermaLink="true">https://blog.teclado.com/learn-python-string-formatting-in-python/</guid><description>Learn about all the different string formatting and interpolation techniques in Python2.7, 3.5, and 3.6. Concatenation, format, and the new f-strings!</description><pubDate>Tue, 19 Dec 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Sending e-mails with Python</title><link>https://blog.teclado.com/learn-python-send-emails/</link><guid isPermaLink="true">https://blog.teclado.com/learn-python-send-emails/</guid><description>Looking for an easy way to send e-mails using Python? This post looks into using two built-in libraries to get you sending e-mails in 5 minutes.</description><pubDate>Wed, 06 Dec 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Defining User Access Levels in Flask</title><link>https://blog.teclado.com/learn-python-defining-user-access-roles-in-flask/</link><guid isPermaLink="true">https://blog.teclado.com/learn-python-defining-user-access-roles-in-flask/</guid><description>Access levels can be a tricky thing—having users, moderators, and administrators. How can you handle allowing access only to certain things to certain people?</description><pubDate>Sat, 18 Nov 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>How to install NodeJS on Mac, Linux, and Windows</title><link>https://blog.teclado.com/how-to-install-nodejs-on-mac-linux-and-windows/</link><guid isPermaLink="true">https://blog.teclado.com/how-to-install-nodejs-on-mac-linux-and-windows/</guid><description>Quick instructions on how to install NodeJS on Mac, Linux, and Windows. For headache-free NodeJS installation.</description><pubDate>Sat, 23 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Interacting with REST APIs with Python</title><link>https://blog.teclado.com/learn-python-interacting-with-rest-apis-with-python/</link><guid isPermaLink="true">https://blog.teclado.com/learn-python-interacting-with-rest-apis-with-python/</guid><description>Interacting with REST APIs normally involves a lot of reading documentation. In this post we&apos;ll go through how to use Python requests to communicate with an existing REST API.</description><pubDate>Sat, 09 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>A word on programs</title><link>https://blog.teclado.com/a-word-on-programs/</link><guid isPermaLink="true">https://blog.teclado.com/a-word-on-programs/</guid><description>A common misconception is that things like mkdir, rm or adduser are different from things you install in your system (e.g. postgresql, or mongod). They are not. All of them are programs. Some already come installed, and others you have to install yourself. You can find out where a program executable lives using the which program: $ which mkdir /bin/cd $ which which /usr/bin/which However, there are some built-in commands in the Bourne Again SHell (BASH). They are not very many:</description><pubDate>Sat, 02 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Basic Linux console commands</title><link>https://blog.teclado.com/basic-linux-console-commands/</link><guid isPermaLink="true">https://blog.teclado.com/basic-linux-console-commands/</guid><description>A quick overview of commonly used Linux console commands and what they mean. Find your way around a console.</description><pubDate>Sat, 02 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Connecting to Linux servers</title><link>https://blog.teclado.com/connecting-to-linux-servers/</link><guid isPermaLink="true">https://blog.teclado.com/connecting-to-linux-servers/</guid><description>Read about connecting to a server via SSH and two types of authentication: username/password and SSH keys.</description><pubDate>Sat, 02 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Contents of files and introduction to Vi</title><link>https://blog.teclado.com/contents-of-files-and-introduction-to-vi/</link><guid isPermaLink="true">https://blog.teclado.com/contents-of-files-and-introduction-to-vi/</guid><description>Read and change files in the Linux console with the &apos;cat&apos; and &apos;vi&apos; commands.</description><pubDate>Sat, 02 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Password encryption with Flask and Python</title><link>https://blog.teclado.com/learn-python-password-encryption-with-flask/</link><guid isPermaLink="true">https://blog.teclado.com/learn-python-password-encryption-with-flask/</guid><description>Why encrypt? What is the difference between encryption, hashing, and encoding? Learn about it and authentication in this post.</description><pubDate>Sat, 02 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>The Linux Console</title><link>https://blog.teclado.com/understanding-the-linux-console/</link><guid isPermaLink="true">https://blog.teclado.com/understanding-the-linux-console/</guid><description>In my online courses I talk a lot about programming, design, and databases. Lately I’ve been saying more about Linux. Normally when you deploy an application to a web server, this server will be running Linux. It is important to know how to find your way in a Linux console, as that is all you will have access to when you are managing your server. This series will introduce you to Linux, and will help you find your way. Linux basics 1. Why would you want to use a console? 2. Basic Linu</description><pubDate>Sat, 02 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item><item><title>Why would you want to use a console?</title><link>https://blog.teclado.com/why-would-you-want-to-use-a-console/</link><guid isPermaLink="true">https://blog.teclado.com/why-would-you-want-to-use-a-console/</guid><description>The text console on a computer not only is faster for many tasks, but also required in some cases. For example, with remote servers.</description><pubDate>Sat, 02 Sep 2017 00:00:00 GMT</pubDate><author>Jose Salvatierra</author></item></channel></rss>