• Martin Thoma
  • Home
  • Categories
  • Tags
  • Archives
  • Support me

Recent Posts

Designing Event-Driven Systems in Local Python Applications

Designing Event-Driven Systems in Local Python Applications

An event-driven system decouples producers of events and the effects that those events should have on the remaining software system. An event-driven software architecture can help you write cleaner code. Most software engineers are likely familiar with pre-defined event systems such as those provided by frontend frameworks/languages: keypress in … Read More »
Let your computer speak to you

Let your computer speak to you

A Text-to-Speech pipeline I recently injured my eye during a hike. Don’t worry, it’s be fine soon — but it made me think about text-to-speech (TTS) software again. You probably all know the robotic voices that can read text, but are extremely hard to understand: Martin Thoma · eSpeak NG … Read More »
9 Clean Code Patterns I wish I knew earlier

9 Clean Code Patterns I wish I knew earlier

Do you know the feeling when you look back at code which you wrote early in your career? I always feel a bit horrified. But there is a positive side to it: I learned something new 😄 A core part of good software is readability. Keeping the mental complexity low so … Read More »
Python 3.10 is Released

Python 3.10 is Released

Photo by Vraj Shah from pexels and Mike from pexels, edited by Martin Thoma Python 3.10 was released on the 4th of October 2021 according to PEP 619. Let’s see what’s in store for us. Type Annotations I absolutely love type annotations. Since Python 3.6, they … Read More »
Library vs Service: 7 Arguments to consider

Library vs Service: 7 Arguments to consider Learn what the difference is and when to use which

Shared code can be in a library or in a service. Image by Martin Thoma. Preventing code duplication is a software development principle called DRY — Don’t Repeat Yourself. DRY is important because duplicated code usually means way more code that needs to be maintained. If you … Read More »
8 Techniques To Speed up Your Database

8 Techniques To Speed up Your Database “If everything seems under control, you’re not going fast enough”

Photo by Christina Morillo (original). Thank you! Almost all web services for end-users have the need to store data. Almost all of them store them in a database. And quite a lot use a relational database like PostgreSQL, MySQL/MariaDB, or MSSQL. Database systems are pretty awesome because you can … Read More »
Scaling Vertically vs Scaling Horizontally

Scaling Vertically vs Scaling Horizontally Be smart or throw money at the problem

Image by Martin Thoma The beauty of software development is that almost arbitrary many can profit from a developer’s work. Web services such as Facebook or YouTube have several hundred developers, but hundreds of millions of users. However, having many users is not for free. The servers need to … Read More »
Programming Interviews: Fizz Buzz

Programming Interviews: Fizz Buzz An all-time programming classic for interviews

When companies interview potential new software developers, they typically also have a programming interview to make sure that the candidate can actually write very simple programs. Fizz Buzz is a very simple classical example. The problem is easy to describe and the solution is easy as well. Problem Statement Write … Read More »
Encryption vs Encoding vs Hashing

Encryption vs Encoding vs Hashing They might appear in the same context, but they are vastly different

Encryption is about keeping a secret and being able to restore it. Hashing is about fingerprinting — you don’t need to restore the original, but you need to make sure it is identical. Encoding is about data representation to enable information exchange. Encoding does not involve keeping secrets. This was … Read More »
Merkle Trees

Merkle Trees The concept and applications - plain and simple!

A Merkle Tree is a binary tree with the data at the leaf nodes. All inner nodes are hashes. A Merkle Tree is a data structure that is used in Peer-to-Peer Networks. It is a binary tree in which the value of an inner node is the hash of its … Read More »
  • Martin Thoma - A blog about Code, the Web and Cyberculture
  • E-mail subscription
  • RSS-Feed
  • Privacy/Datenschutzerklärung
  • Impressum
  • Powered by Pelican. Theme: Elegant by Talha Mansoor