RSSAmplifier

Blog

Sebastian Witowski

Sebastian Witowski - Python freelancer, consultant, and trainer.

switowski.comRSS feed ↗59 posts

Latest posts

The macOS Apps I'm Using

A list of my favorite currently used macOS apps.

I Like Makefiles

Fancy new build tools come and go, but I think I will stick with using makefiles to orchestrate everyday tasks in my projects.

Web Automation With n8n, Telegram, Online Forms, and a Bit of Python

How I used a bunch of open-source tools to automate the management of my side project.

I've Built My First Successful Side Project, and I Hate It

How I learned the old truth that when building a software product and selling it to people, "building" is just the beginning. And often, it's the easiest part.

My Stream Deck Setup

My setup and some tips and tricks for other MacOS users who want to make the most of their Stream Decks.

You Don't Need Stream Deck, You Need Macros

How can creating your own keyboard shortcuts make your life easier, and why don't you need a device like Stream Deck for that?

Managing Gigabytes of Images with git-annex

What is git-annex, how to set it up to store large files in Google Drive or NAS, and how I use it to seamlessly manage a git repository of 20GB (and counting)?

No "Hello", No "Quick Call", and no Meetings Without an Agenda

When working remotely, asking for help is often just a few keystrokes away. So it's tempting to "quickly" ask someone for support when you get stuck.

How to Enjoy Your Next Conference Better

Or "how to win friends (without influencing people) at a conference".

A Beginner's Guide to Continuous Integration in Python

If you want to learn how to implement continuous integration in your project, here is my "CI 101: A Beginner's Guide to Continuous Integration" talk in writing.

pre-commit vs. CI

Should I use pre-commit? Or should I set up a continuous integration in my GitLab/GitHub repository?

Should I Have a Blog?

Is starting a blog in times of withering attention span still worth it?

Dear Conference Organizer

Things I loved, things I hated, and things I would improve at the conferences I've been to. Also - why I'm not a fan of online conferences.

map() vs. List Comprehension

Is the map() function faster than a corresponding list comprehension? That depends! Let's see how using lambda functions can affect the performance of map().

Inlining Functions

Running one big blob of code is often faster than splitting your code into well-separated functions. But there are other ways you can improve the speed of your code without sacrificing its readability.

Pathlib for Path Manipulations

pathlib is an interesting, object-oriented take on the filesystem paths. With plenty of functions to create, delete, move, rename, read, write, find, or split files, pathlib is an excellent replacement for the os module. But is it faster?

How to Make a Great Conference Talk

Are you an aspiring conference speaker looking to improve your presentation skills? Check out my guide for tips and tricks to help you make great talks that engage your audience.

String Formatting

With four different ways of formatting strings in Python 3.6 and above, it's time to look at which one is the fastest.

Compare to None

What's the best way to compare something to None in Python?

WTF Excel?!

For a tool that probably underlies most of the financial systems in the world, Excel has some incredibly weird limitations and quirks. Let me share a few WTFs I encountered when working with it.

Dictionary Comprehension

Is using dictionary comprehension faster than calling the dict() function? And what's the most efficient way to create a dictionary from two iterables?

How I Organize My Notes With Obsidian

After years of using Evernote, I finally found a worthy replacement. And not only for Evernote but for two other tools as well. Let me show you how I organize my notes, mind maps, tasks, and long-term goals in Obsidian.

dict() vs. {}

Is using {} faster than dict()? If yes, then why? And when would you use one version over the other?

How to Benchmark (Python) Code

There are plenty of ways to measure the speed of your code. Let me show you a few that I considered for the Writing Faster Python series.

Upgrade Your Python Version

Can we speed up our code examples by simply upgrading the Python version? And if yes, by how much?

Add Comments To Your Commands

Here is a quick tip: if you add a comment to an important command, it will be easier to find it later or understand what it did.

New Blog, Who Dis?

I've got this shiny, new blog design. Let me tell you how I got here. It all started with an idea for a dark theme...

Python Versions Management With pyenv

pyenv is a tool that lets you easily install new Python versions and switch between them.

25 IPython Tips for Your Next Advent of Code

I don't always do the Advent of Code challenges. But when I do, I do them in IPython. Let me show you why.

Remove Duplicates From a List

What's the fastest way to remove duplicates from a list?

type() vs. isinstance()

What's the difference between type() and isinstance() methods, and which one is better for checking the type of an object?

Membership Testing

Why iterating over the whole list is a bad idea, what data structure is best for membership testing, and when it makes sense to use it?

Checking for True or False

How can we compare a variable to True or False, what's the difference between "is" and "==" operators, and what are truthy values?

Sorting Lists

What's the fastest way to sort a list? When can you use sort() and when you need to use sorted() instead?

For Loop vs. List Comprehension

Simple "for loops" can be replaced with a list comprehension. But is it going to make our code faster? And what limitations list comprehension has?

Ordered Dictionaries

Dictionaries in the latest Python versions preserve the insertion order. So, is there any reason to use the OrderedDict as we used to do in the past?

Easy Speedup Wins With Numba

Numba library has plenty of tools to speed up your mathematical-heavy programs. From a simple @jit decorator, all the way to running your code on a CUDA GPU.

Find Item in a List

How to quickly find something in a collection of items, like a list or a range? When a generator expression is a great solution, and when it's not?

Ask for Forgiveness or Look Before You Leap?

Is it faster to "ask for forgiveness" or "look before you leap" in Python? And when it's better to use one over the other?

Writing Faster Python - Introduction

Introduction to the "Writing Faster Python" series. What it is about, how do I benchmark, frequently asked questions, and additional resources.

Let's Write an IPython Extension the Hard Way

How a 5-minute hack for %reload function turned into a rabbit hole of different Python tools and techniques.

My Favorite CLI Tools

26 CLI tools that I love. And one that is OK.

18 Plugins for Writing Python in VS Code

List of my favorite VS Code plugins that helps me build Python application.

My Favorite Macbook Tools

I'm programming on a Macbook, and I love it. Here are some of the tools that make my life easier.

5 Ways of Debugging with IPython

Tips and tricks on how to use IPython as your debugger.

Disable pip Outside of Virtual Environments

How to stop pip from running outside of a virtual environment and messing up your dependencies?

How to Prepare for the CAPM Certification Exam

Earlier this year, I passed the CAPM exam with a very good score. This is how I prepared for it.

You Don't Have to Migrate to Python 3

Python 3 is great! But not every Python 2 project has to be migrated. There are different ways how you can prepare for the upcoming Python 2 End of Life.

IPython Extensions Guide

What are IPython extensions, how to install them, and how to write and publish your own extension?

Automatically Reload Modules with %autoreload

Tired of having to reload a module each time you change it? %autoreload to the rescue!