Sebastian Witowski

Sebastian Witowski - Python freelancer, consultant, and trainer.
https://switowski.com (RSS)
visit blog
macOS Apps That I'm Using
16 Nov 2024 | original ↗

A list of my favorite, currently used macOS apps.

I Like Makefiles
18 Sept 2024 | original ↗

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
22 Aug 2024 | original ↗

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
19 Aug 2024 | original ↗

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
13 May 2024 | original ↗

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
9 May 2024 | original ↗

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
13 Mar 2024 | original ↗

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
16 Jan 2024 | original ↗

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
3 Jan 2024 | original ↗

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

A Beginner's Guide to Continuous Integration in Python
23 Dec 2023 | original ↗

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
28 Nov 2023 | original ↗

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

Should I Have a Blog?
14 Nov 2023 | original ↗

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

Dear Conference Organizer
22 Oct 2023 | original ↗

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
31 Jul 2023 | original ↗

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
24 Jul 2023 | original ↗

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
17 Jul 2023 | original ↗

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
20 Mar 2023 | original ↗

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
2 Mar 2023 | original ↗

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
23 Feb 2023 | original ↗

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

WTF Excel?!
26 Jan 2023 | original ↗

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
19 Jan 2023 | original ↗

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
23 Dec 2022 | original ↗

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. {}
1 Dec 2022 | original ↗

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

How to Benchmark (Python) Code
17 Nov 2022 | original ↗

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
14 Nov 2022 | original ↗

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

Add Comments To Your Commands
20 Oct 2022 | original ↗

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?
14 Oct 2022 | original ↗

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
3 Feb 2021 | original ↗

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
27 Jan 2021 | original ↗

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
22 Oct 2020 | original ↗

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

type() vs. isinstance()
15 Oct 2020 | original ↗

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

Membership Testing
8 Oct 2020 | original ↗

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
1 Oct 2020 | original ↗

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
24 Sept 2020 | original ↗

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
17 Sept 2020 | original ↗

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
10 Sept 2020 | original ↗

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
3 Sept 2020 | original ↗

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
27 Aug 2020 | original ↗

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?
19 Aug 2020 | original ↗

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
18 Aug 2020 | original ↗

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
16 Jul 2020 | original ↗

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

My Favorite CLI Tools
18 Jun 2020 | original ↗

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

18 Plugins for Writing Python in VS Code
27 Apr 2020 | original ↗

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

My Favorite Macbook Tools
9 Jan 2020 | original ↗

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
23 Dec 2019 | original ↗

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

Disable pip Outside of Virtual Environments
28 Nov 2019 | original ↗

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

How to Prepare for the CAPM Certification Exam
14 Nov 2019 | original ↗

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
30 Oct 2019 | original ↗

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
15 Oct 2019 | original ↗

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

Automatically Reload Modules with %autoreload
1 Oct 2019 | original ↗

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

It's 2019 and I'm Still Using Python 2
28 Aug 2019 | original ↗

Slides for my talk "It's 2019 and I'm still using Python 2. Should I be worried?"

Wait, IPython Can Do That?!
7 Jul 2019 | original ↗

Slides for my talk "Wait, IPython can do that?!"

Creating Magic Functions in IPython - Part 3
15 Feb 2019 | original ↗

In this last part of the magic functions series, we will create a Magics class.

Creating Magic Functions in IPython - Part 2
8 Feb 2019 | original ↗

Continue the magic functions journey and create a cell magic function that checks type hints in IPython.

Creating Magic Functions in IPython - Part 1
1 Feb 2019 | original ↗

Learn how to make your own magic functions in IPython by creating a line magic function.

__str__ vs. __repr__
25 Jan 2019 | original ↗

How to easily remember the difference between __str__ and __repr__ functions in Python?

Git Aliases Don't Have to Be Boring!
18 Jan 2019 | original ↗

Git aliases can be far more advanced than just a simple "l = log". Check out those seven examples of what else you can do.

Configuring Git
11 Jan 2019 | original ↗

What can you find inside the .gitconfig file and how can you make git look much nicer with a few simple settings there?

IPython Startup Files
4 Jan 2019 | original ↗

How you can automatically run Python scripts when starting IPython and why this can be useful?

↑ these items are from RSS. Visit the blog itself at https://switowski.com to find other articles and to appreciate the author's digital home.