Blog Datasheets Home About me Clients My work Services Contact

G2Labs Grzegorz Grzęda

Blog posts

Here you have 239 posts about electronics and programming.

All waiting to be read ;)

September 2, 2024

Overview of ESP32 Development Tools

Overview of ESP32 Development Tools The ESP32 is a powerful and versatile microcontroller that is widely used in IoT and embedded systems development....

Read more

August 31, 2024

Advanced C Programming Techniques: Pointers to Functions

Advanced C Programming Techniques: Pointers to Functions In C programming, pointers are powerful tools that allow us to manipulate memory, access data structures, and optimize performance....

Read more

August 29, 2024

Tips and Best Practices for ATmega-328 Development

Tips and Best Practices for ATmega-328 Development The ATmega-328 microcontroller is a popular choice for embedded systems and Arduino development. It provides a wide range of features and functionalities, making it an excellent platform for creating innovative projects....

Read more

August 27, 2024

Building Scalable Microservices with Docker and Kubernetes

Building Scalable Microservices with Docker and Kubernetes Microservices architecture has gained significant popularity due to its ability to increase development velocity and scalability....

Read more

August 25, 2024

Debugging Techniques for ATmega-328 Projects

Debugging Techniques for ATmega-328 Projects Debugging is an essential part of the development process for ATmega-328 projects. Whether you are working on a simple microcontroller application or a complex embedded system, encountering bugs and issues is inevitable....

Read more

August 23, 2024

Exploring File I/O in Python

Exploring File I/O in Python In any programming language, the ability to read from and write to files is a necessary skill....

Read more

August 21, 2024

Overview of ATmega-328 Development Tools

Overview of ATmega-328 Development Tools ATmega-328 is a popular microcontroller unit, widely used in embedded systems and IoT applications. Developing for ATmega-328 requires the right set of development tools to effectively write, debug, and program the microcontroller....

Read more

August 19, 2024

The Basics of Networking for DevOps Engineers

The Basics of Networking for DevOps Engineers Networking is a critical component for DevOps engineers as it ensures seamless communication and connectivity between various components of an application or system....

Read more

August 17, 2024

Tips and Best Practices for nRF52 Development

Tips and Best Practices for nRF52 Development The nRF52 Series is a powerful and versatile family of microcontrollers developed by Nordic Semiconductor....

Read more

August 15, 2024

Effective Error Handling in C Programming

Effective Error Handling in C Programming Error handling is an essential aspect of writing robust and reliable software applications. Proper error handling allows us to gracefully handle unexpected issues and prevents our programs from crashing....

Read more

August 13, 2024

Debugging Techniques for nRF52 Projects

Debugging Techniques for nRF52 Projects Debugging plays a crucial role in the development of nRF52 projects. The nRF52 series of microcontrollers from Nordic Semiconductor is widely used in Bluetooth Low Energy (BLE) applications, IoT devices, and wearables....

Read more

August 11, 2024

Introduction to Data Structures in Python

Introduction to Data Structures in Python Data Structures are fundamental for efficient programming as they provide a way to organize and manipulate data....

Read more

August 9, 2024

Overview of nRF52 Development Tools

Overview of nRF52 Development Tools The nRF52 series from Nordic Semiconductor is a popular choice for building low-power and high-performance Bluetooth Low Energy (BLE) applications....

Read more

August 7, 2024

Working with Pointers and Memory Management in C

Working with Pointers and Memory Management in C Pointers are a powerful feature in the C programming language that allows you to work with memory directly....

Read more

August 5, 2024

ATmega-328 vs nRF52 vs ESP32: Choosing the Right MCU

ATmega-328 vs nRF52 vs ESP32: Choosing the Right MCU Microcontrollers (MCUs) play a crucial role in the development of various embedded devices....

Read more

August 3, 2024

Infrastructure-as-Code: Automating Infrastructure Management with Ansible

Infrastructure-as-Code: Automating Infrastructure Management with Ansible In today’s fast-paced and dynamic world of software development, infrastructure management can be a time-consuming and error-prone task....

Read more

August 1, 2024

ESP32 vs nRF52: A Comparison

ESP32 vs nRF52: A Comparison Introduction: In the world of embedded systems, two microcontrollers that have gained tremendous popularity are the ESP32 and the nRF52 series....

Read more

July 30, 2024

Python Decorators: Building Custom Functionality

Python Decorators: Building Custom Functionality In Python, decorators are a powerful feature that allows you to enhance the functionality of functions or classes....

Read more

July 28, 2024

Getting Started with ESP32 Development

Getting Started with ESP32 Development The ESP32 is a powerful and versatile microcontroller that has gained a lot of popularity in the world of IoT (Internet of Things) development....

Read more

July 26, 2024

Writing Clean and Maintainable Code in C

Writing Clean and Maintainable Code in C As software developers, one of our goals should always be to write clean and maintainable code....

Read more

July 24, 2024

Introduction to ESP32 Microcontroller

Introduction to ESP32 Microcontroller ESP32 is a highly popular and powerful microcontroller developed by Espressif Systems. It is equipped with a dual-core processor, Wi-Fi and Bluetooth capabilities, along with a rich set of peripherals....

Read more

July 22, 2024

Continuous Integration and Deployment: Best Practices for DevOps

Continuous Integration and Deployment: Best Practices for DevOps In the fast-paced world of software development, Continuous Integration (CI) and Continuous Deployment (CD) have become critical practices for robust and efficient development workflows....

Read more

July 20, 2024

Programming ATmega-328 using Arduino IDE

Programming ATmega-328 using Arduino IDE Introduction The ATmega-328 is a microcontroller chip widely used in Arduino boards. It is based on the AVR architecture and offers a great platform for building embedded systems....

Read more

July 18, 2024

Mastering Regular Expressions in Python

Mastering Regular Expressions in Python Regular expressions are powerful tools for pattern matching and text manipulation. They can be used in various programming languages, including Python....

Read more

July 16, 2024

Getting Started with ATmega-328 Development

Getting Started with ATmega-328 Development The ATmega-328 microcontroller, developed by Atmel Corporation, is a versatile and widely used microcontroller in the Arduino community....

Read more

July 14, 2024

Exploring Multithreading and Parallel Programming in C

Exploring Multithreading and Parallel Programming in C Introduction In today’s era of modern computing, where multi-core processors are becoming increasingly common, it is essential for developers to understand and harness the power of multithreading and parallel programming....

Read more

July 12, 2024

Introduction to ATmega-328 Microcontroller

Introduction to ATmega328 Microcontroller The ATmega328 microcontroller is a widely-used microcontroller chip in the world of embedded systems and electronics projects....

Read more

July 10, 2024

Building RESTful APIs in Python using Flask

Building RESTful APIs in Python using Flask Flask is a popular micro web framework written in Python, designed to build web applications with a simple and efficient approach....

Read more

July 8, 2024

Exploring the Features of nRF52 SoC

Exploring the Features of nRF52 SoC The nRF52 System on Chip (SoC) from Nordic Semiconductor is a versatile and powerful platform that offers a wide range of features for building IoT, wireless, and Bluetooth Low Energy (BLE) applications....

Read more

July 6, 2024

Deploying Applications with Docker: A DevOps Guide

Deploying Applications with Docker: A DevOps Guide In the world of software development, deploying applications can sometimes be a complex and error-prone process....

Read more

July 4, 2024

Understanding the Architecture of nRF52

Understanding the Architecture of nRF52 The nRF52 series from Nordic Semiconductor is a popular system-on-chip (SoC) solution for developing Bluetooth Low Energy (BLE) applications....

Read more

July 2, 2024

The Power of Python's List Comprehensions

The Power of Python’s List Comprehensions Python is known for its simplicity and readability, and one of the language’s most powerful features is list comprehensions....

Read more

June 30, 2024

Getting Started with nRF52 Development

Getting Started with nRF52 Development Introduction The nRF52 series of microcontrollers by Nordic Semiconductor is a popular choice for developing wireless applications....

Read more

June 28, 2024

A Deep Dive into Object-Oriented Programming in C

A Deep Dive into Object-Oriented Programming in C Object-oriented programming (OOP) is a powerful paradigm that helps in designing and organizing code by modeling real-world entities into objects....

Read more

June 26, 2024

Troubleshooting Common Issues in ESP32 Development: Tips and Tricks

Troubleshooting Common Issues in ESP32 Development: Tips and Tricks Developing for the ESP32 microcontroller can be an exciting and rewarding experience....

Read more

June 24, 2024

Linux ln command

Understanding the Power of the ln Command in Linux The Linux ln command is a versatile tool for creating links between files or directories....

Read more

June 22, 2024

Interfacing ESP32 with External Sensors: Accelerometers, GPS, and more

Interfacing ESP32 with External Sensors: Accelerometers, GPS, and more The ESP32 is a powerful microcontroller that offers built-in Wi-Fi and Bluetooth capabilities....

Read more

June 20, 2024

Linux find command

Using the Linux ‘find’ Command: A Comprehensive Guide with Examples As a programmer, effectively managing files and directories is essential, especially when dealing with large codebases or projects....

Read more

June 18, 2024

Low Power Deep Sleep Modes in ESP32: Exploring Power Saving Techniques

Low Power Deep Sleep Modes in ESP32: Exploring Power Saving Techniques The ESP32 is a powerful microcontroller that offers not only Wi-Fi and Bluetooth connectivity but also a range of low power modes....

Read more

June 16, 2024

Implementing OTA (Over-The-Air) Updates on ESP32 Projects

Implementing OTA (Over-The-Air) Updates on ESP32 Projects Updating firmware on embedded devices can often be a challenging task, requiring physical access to the device for reflashing....

Read more

June 14, 2024

Linux cat command

Mastering the ‘cat’ Command: A Versatile Tool for File Manipulation If you have spent some time working with Linux, chances are you have come across the cat command....

Read more

June 12, 2024

Developing with FreeRTOS on ESP32: Multitasking and Synchronization

Developing with FreeRTOS on ESP32: Multitasking and Synchronization Welcome back to our ongoing series on developing with FreeRTOS on the ESP32 microcontroller....

Read more

June 10, 2024

Linux tail command

Mastering the Linux ‘tail’ Command: A Deep Dive The tail command is an invaluable tool for any Linux user. With just a few keystrokes, you can access the last few lines of a file in real-time, monitor log files, or even follow changes in a continuously updated file....

Read more

June 8, 2024

Building Custom Web Interfaces for ESP32: Using Embedded Web Servers

Building Custom Web Interfaces for ESP32: Using Embedded Web Servers The ESP32 microcontroller has taken the world by storm with its powerful features and low cost....

Read more

June 6, 2024

Linux 'less' command

Using the Linux ‘less’ Command: A Comprehensive Guide As programmers, we often find ourselves working with large files or browsing through lengthy logs....

Read more

June 4, 2024

Time-Sensitive Networking (TSN) on ESP32: Achieving Deterministic Behavior

Time-Sensitive Networking (TSN) on ESP32: Achieving Deterministic Behavior In the world of IoT and embedded systems, achieving deterministic behavior in network communication is crucial....

Read more

June 2, 2024

Linux 'chmod' command

Understanding and Using the Linux ‘chmod’ Command When working on a Linux system, permissions play a vital role in maintaining the security and control of files and directories....

Read more

May 31, 2024

Secure Communication with ESP32: Implementing TLS/SSL

Secure Communication with ESP32: Implementing TLS/SSL In this blog post, we will explore how to implement TLS/SSL to ensure secure communication with an ESP32 microcontroller....

Read more

May 29, 2024

Linux 'touch' command

The Power of the Linux ‘touch’ Command: A Handy Guide In the Linux command line, there are numerous powerful utilities that can make your life easier and improve your productivity....

Read more

May 27, 2024

Advanced Power Management Techniques for ESP32: Maximizing Battery Life

Advanced Power Management Techniques for ESP32: Maximizing Battery Life ESP32, a powerful microcontroller with built-in Wi-Fi and Bluetooth capabilities, has become increasingly popular in IoT projects due to its versatility and low cost....

Read more

May 25, 2024

Linux 'man' command

Mastering the Linux ‘man’ Command The man command is a powerful tool included in most Linux distributions that provides extensive documentation for various commands, system calls, library functions, and configuration files....

Read more

May 23, 2024

MQTT Communication with ESP32 and ESP-IDF

MQTT Communication with ESP32 and ESP-IDF In this blog post, we will explore how to establish MQTT communication between an ESP32 microcontroller and a MQTT broker using the ESP-IDF framework....

Read more

May 21, 2024

Linux 'mv' command

Mastering the Linux ‘mv’ Command: A Comprehensive Guide The mv command in Linux is a powerful utility that allows you to move or rename files and directories with ease....

Read more

May 19, 2024

Implementing WebSocket Communication on ESP32

Implementing WebSocket Communication on ESP32 In today’s blog post, we’ll be diving into the world of WebSocket communication and exploring how it can be implemented on the ESP32 microcontroller....

Read more

May 17, 2024

Linux 'cp' command

Introduction to the Linux ‘cp’ Command As a programmer, one of the essential skills you will need to master when working with Linux systems is the ability to manage files and directories....

Read more

May 15, 2024

Real-time Operating Systems for ESP32: Choosing the Right One for Your Project

Real-time Operating Systems for ESP32: Choosing the Right One for Your Project Are you working on an embedded project that requires real-time capabilities?...

Read more

May 13, 2024

Linux 'ls' command

Using the Linux ls Command: A Comprehensive Guide The ls command is one of the most commonly used commands in Linux....

Read more

May 11, 2024

Introductory Guide to Working with SPI and I2C on ESP32

Introductory Guide to Working with SPI and I2C on ESP32 Image Source: Unsplash If you have been working with ESP32, you must have come across Serial Peripheral Interface (SPI) and Inter-Integrated Circuit (I2C) communication protocols....

Read more

May 9, 2024

Linux 'pwd' command

Understanding the ‘pwd’ Command in Linux The ‘pwd’ command in Linux is used to display the present working directory. It provides the absolute path of the current directory you are in....

Read more

May 7, 2024

Leveraging Bluetooth in ESP32: Creating Smart IoT Devices

Leveraging Bluetooth in ESP32: Creating Smart IoT Devices Bluetooth technology has revolutionized how we connect and communicate with devices wirelessly. With the advent of IoT and the growing demand for smart devices, understanding and leveraging Bluetooth capabilities have become essential for developers....

Read more

May 5, 2024

Linux 'cd' command

Mastering the ‘cd’ Command in Linux The ‘cd’ command is a fundamental tool in Linux that allows you to navigate between directories within your file system....

Read more

May 3, 2024

Esp-IDF: Understanding ESP32's Official Development Framework

Esp-IDF: Understanding ESP32’s Official Development Framework The ESP32 is a highly popular and versatile microcontroller developed by Espressif Systems. With its powerful capabilities and built-in Wi-Fi and Bluetooth connectivity, it has gained traction in various applications like Internet of Things (IoT) devices, wearables, and home automation....

Read more

May 1, 2024

Linux 'tar' command

Mastering the Linux ‘tar’ Command: A Comprehensive Guide with Examples Introduction The tar command is an essential tool for managing files and directories in Linux....

Read more

April 29, 2024

ESP32 Development Environment: Setting up Arduino IDE for ESP32 Programming

ESP32 Development Environment: Setting up Arduino IDE for ESP32 Programming The ESP32 is a powerful microcontroller that is widely used in IoT applications....

Read more

April 27, 2024

Linux 'rm' command

Mastering the Linux ‘rm’ Command: A Guide The rm command in Linux is a powerful tool for removing files and directories....

Read more

April 25, 2024

Deep Dive into ESP32 WiFi Connectivity: Understanding WiFi Modes and Configurations

Deep Dive into ESP32 WiFi Connectivity: Understanding WiFi Modes and Configurations Welcome to another blog post on ESP32 WiFi connectivity! In this post, we will take a deep dive into understanding WiFi modes and configurations on the popular ESP32 microcontroller....

Read more

April 23, 2024

Linux 'mkdir' command

Mastering the mkdir Command in Linux As a programmer, it is essential to develop familiarity with the command-line interface in Linux....

Read more

April 21, 2024

Exploring the GPIOs in ESP32: Usage and Configuration

Exploring the GPIOs in ESP32: Usage and Configuration The ESP32 is a powerful microcontroller with built-in Wi-Fi and Bluetooth capabilities, making it a favorite among IoT enthusiasts....

Read more

April 19, 2024

Exampe event handling library in C/CMake

Writing an Event Handling Library with Context and Payload in C as a CMake Project Event handling is a crucial aspect of many software applications, allowing different components to communicate and react to specific events....

Read more

April 17, 2024

ESP32 vs. Other Microcontrollers: Pros and Cons

ESP32 vs. Other Microcontrollers: Pros and Cons Microcontrollers have revolutionized the world of embedded systems, enabling developers to create innovative and connected devices....

Read more

April 15, 2024

Pointers to functions in C

Pointers to functions in C are a powerful feature that allows you to store the address of a function in a variable and use this variable to call the function....

Read more

April 13, 2024

Getting Started with ESP32: A Comprehensive Guide

Getting Started with ESP32: A Comprehensive Guide The ESP32 is a powerful microcontroller that is widely used in IoT projects and applications....

Read more

April 11, 2024

A primer on Jinja2

Jinja2 is a popular template engine for Python, often used with web frameworks like Flask. It allows for dynamic generation of HTML, XML, or other types of files by combining a template with a data source....

Read more

April 9, 2024

Implementing a Simple Stepper Motor Control with AVR Atmega-328

Implementing a Simple Stepper Motor Control with AVR Atmega-328 Stepper motors are widely used in various applications ranging from robotics, CNC machines, 3D printers, to automation systems....

Read more

April 7, 2024

Guides on learning Rust

Practice by Building Projects Building real-world projects is a critical step in mastering Rust. It allows you to apply theoretical knowledge in practical scenarios, solidifying your understanding and developing problem-solving skills in Rust....

Read more

April 5, 2024

Building a Real-time Clock (RTC) using AVR Atmega-328

Building a Real-time Clock (RTC) using AVR Atmega-328 Welcome to another blog post! Today, we are going to explore the fascinating world of building a Real-time Clock (RTC) using AVR Atmega-328 microcontroller....

Read more

April 3, 2024

Rust ecosystem

Explore the Ecosystem Crates and Cargo Crates: In Rust, libraries are referred to as crates. They are the building blocks for creating applications and libraries....

Read more

April 1, 2024

Using Interrupts to Optimize Power Consumption in AVR Atmega-328

Using Interrupts to Optimize Power Consumption in AVR Atmega-328 Power consumption is a critical aspect to consider when developing embedded systems....

Read more

March 30, 2024

Advanced topics in Rust

Dive Into Rust’s Advanced Features Traits and Generics Traits: Traits in Rust are similar to interfaces in other languages....

Read more

March 28, 2024

Implementing Digital Input Debouncing on AVR Atmega-328

Implementing Digital Input Debouncing on AVR Atmega-328 Debouncing is a common problem when working with digital inputs in microcontroller-based systems, especially mechanical switches and buttons....

Read more

March 26, 2024

Flask configuration and environment

Configuring your Flask application properly is crucial for handling different environments (development, testing, production) and managing application settings securely and efficiently....

Read more

March 24, 2024

Introduction to Interfacing LCD Display with AVR Atmega-328

Introduction to Interfacing LCD Display with AVR Atmega-328 Displaying information is an integral part of embedded systems, and LCD (Liquid Crystal Display) modules are commonly used for this purpose....

Read more

March 22, 2024

Testing in Flask

Testing is a critical part of developing robust and reliable Flask applications. Flask provides support for unit testing, which allows you to verify that your code behaves as expected....

Read more

March 20, 2024

Debugging Techniques for AVR Atmega-328 Projects

Debugging Techniques for AVR Atmega-328 Projects As an AVR programmer, you might have encountered various bugs and issues while working on projects using the Atmega-328 microcontroller....

Read more

March 18, 2024

Another look at authentication in Flask

Authentication is a crucial aspect of many web applications, and Flask provides the flexibility to implement it in various ways, depending on the complexity and requirements of your application....

Read more

March 16, 2024

Developing Custom Libraries for AVR Atmega-328 Programming

Developing Custom Libraries for AVR Atmega-328 Programming Developing custom libraries is a powerful way to simplify and modularize your AVR Atmega-328 projects....

Read more

March 14, 2024

RESTfull API in Flask

Building RESTful APIs is a common use case for Flask, given its simplicity and flexibility. Flask doesn’t have built-in support for creating RESTful APIs, but it can be easily achieved with the help of extensions and a few design principles....

Read more

March 12, 2024

Memory Organization and Data Storage in AVR Atmega-328

Memory Organization and Data Storage in AVR Atmega-328 As a programmer, understanding how memory is organized and data is stored is crucial for optimizing code and ensuring efficient use of resources....

Read more

March 10, 2024

Error handling in Flask

Another advanced aspect of Flask development: Error Handling. Proper error handling in Flask not only improves the reliability of your application but also enhances the user experience by providing informative feedback when things go wrong....

Read more

March 8, 2024

SPI Communication with AVR Atmega-328: An In-Depth Guide

SPI Communication with AVR Atmega-328: An In-Depth Guide Welcome to another guide on AVR microcontrollers! In this post, we will dive deep into SPI (Serial Peripheral Interface) communication with the Atmega-328 microcontroller....

Read more

March 6, 2024

Advanced form handling in Flask

Let’s delve deeper into the nuances of form handling in Flask, particularly focusing on advanced use cases, customization, and security considerations....

Read more

March 4, 2024

I2C Communication with AVR Atmega-328: A Step-by-Step Tutorial

I2C Communication with AVR Atmega-328: A Step-By-Step Tutorial The Inter-Integrated Circuit (I2C) protocol is widely used for communication between microcontrollers and peripheral devices in embedded systems....

Read more

March 2, 2024

Form handling in Flask

Form Handling in Flask is an important aspect for creating interactive and user-friendly web applications. Flask doesn’t include a form-handling component by default, but it can be efficiently handled using extensions like Flask-WTF, which integrates the WTForms package with Flask....

Read more

February 28, 2024

More about databases in Flask

Expanding further on database integration in Flask, especially with Flask-SQLAlchemy, let’s explore more advanced topics like relationship management, complex queries, and best practices for structuring your database interactions....

Read more

February 27, 2024

Serial Communication with UART on AVR Atmega-328

Serial Communication with UART on AVR Atmega-328 In this blog post, we will explore how to establish serial communication with UART (Universal Asynchronous Receiver Transmitter) on AVR Atmega-328 microcontroller....

Read more

February 24, 2024

Databases in Flask

Database integration is a crucial aspect of many web applications, and Flask provides the flexibility to integrate with a variety of database systems, both SQL and NoSQL....

Read more

February 23, 2024

Implementing PWM (Pulse Width Modulation) on AVR Atmega-328

Implementing PWM (Pulse Width Modulation) on AVR Atmega-328 Pulse Width Modulation (PWM) is a technique widely used in embedded systems to control the amount of power delivered to a load....

Read more

February 20, 2024

Simple authentication blueprint example in Flask

Creating an authentication blueprint in Flask involves setting up routes and views for user authentication processes like registration, login, logout, and possibly password reset....

Read more

February 19, 2024

Exploring ADC (Analog-to-Digital Conversion) in AVR Atmega-328

Exploring ADC (Analog-to-Digital Conversion) in AVR Atmega-328 Introduction Analog-to-Digital Conversion (ADC) is a vital part of many embedded systems. It allows us to convert real-world analog signals into digital representations for processing and analysis by a microcontroller....

Read more

February 16, 2024

Flask blueprints

Blueprints in Flask is a powerful feature for structuring and organizing larger Flask applications. Blueprints in Flask A Blueprint in Flask is a way to organize a group of related views and other code....

Read more

February 15, 2024

Using Timers and Interrupts in AVR Atmega-328

Using Timers and Interrupts in AVR Atmega-328 Introduction In embedded systems, timers and interrupts play a crucial role in precise timing and event-based control....

Read more

February 12, 2024

A Flask primer

Flask is a lightweight and flexible web framework for Python that’s easy to learn and simple to use, making it a great choice for beginners in web development....

Read more

February 11, 2024

Working with GPIOs on AVR Atmega-328: A Hands-On Guide

Working with GPIOs on AVR Atmega-328: A Hands-On Guide The AVR Atmega-328 microcontroller is widely used in many embedded systems and Arduino boards....

Read more

February 8, 2024

Subparsers in Python `argparse`

The argparse module in Python is a powerful tool for creating command-line interfaces. One of its advanced features is the use of subparsers, which allow your program to handle different subcommands, each with its own set of arguments....

Read more

February 7, 2024

Exploring the AVR Instruction Set for Atmega-328

Exploring the AVR Instruction Set for Atmega-328 If you’re diving into the world of embedded systems programming, chances are you’ll come across the AVR microcontrollers....

Read more

February 4, 2024

Understanding Python stack trace

Stack traces in Python are an essential tool for diagnosing errors in a program. When an exception occurs, Python prints a stack trace, also known as a traceback, which is a report of the active stack frames at a certain point in time during the execution of a program....

Read more

February 3, 2024

Getting Started with C Programming for AVR Atmega-328

Getting Started with C Programming for AVR Atmega-328 Welcome to this beginner’s guide on C programming for AVR Atmega-328 microcontrollers! In this post, we will cover the basics of setting up the development environment, writing a simple C program, and uploading it to the microcontroller....

Read more

February 1, 2024

List comprehension in Python

List comprehension in Python is a concise and efficient way to create lists. It’s a single line of code that can replace multiple lines of loops and conditional statements....

Read more

January 30, 2024

Introduction to AVR Assembly Language Programming with Atmega-328

Introduction to AVR Assembly Language Programming with Atmega-328 What is Assembly Language Programming? Assembly language programming is a low-level programming language that is specific to a particular computer architecture or processor....

Read more

January 28, 2024

Concurrency in Rust

Understand Concurrency Rust’s Approach to Concurrency Safety and Fearless Concurrency: Rust’s main selling point in concurrency is its emphasis on safety....

Read more

January 26, 2024

Exploring the Features and Architecture of AVR Atmega-328

Exploring the Features and Architecture of AVR Atmega-328 The AVR Atmega-328 is a popular microcontroller unit (MCU) widely used in various embedded systems and Arduino boards....

Read more

January 24, 2024

Error handling in Rust

Explore Error Handling Error Handling in Rust No Exceptions: Unlike many modern languages, Rust doesn’t use exceptions. Instead, it uses type-based error handling, primarily through two types: Result and Option....

Read more

January 22, 2024

Understanding AVR Atmega-328: A Beginner's Guide

Understanding AVR Atmega-328: A Beginner’s Guide Are you new to microcontrollers and interested in learning about the AVR Atmega-328? You’re in the right place!...

Read more

January 20, 2024

Ownership and borrowing in Rust

Deep Dive Into Ownership and Borrowing Ownership Fundamental Concept: Ownership is a set of rules that the Rust compiler checks at compile time....

Read more

January 18, 2024

Developing secure applications with the nRF52: cryptography and secure boot

Developing Secure Applications with the nRF52: Cryptography and Secure Boot The nRF52 series of microcontrollers are widely used in a variety of applications, ranging from wearables to IoT devices....

Read more

January 16, 2024

Rust basic syntax

Start With Basic Syntax Basic Structure of a Rust Program Main Function: Like C, Rust programs start execution from a main function....

Read more

January 14, 2024

Integrating nRF52 with cloud platforms (AWS, Azure, etc.)

Integrating nRF52 with Cloud Platforms (AWS, Azure, etc.) The nRF52 series of microcontrollers by Nordic Semiconductor is widely used in Internet of Things (IoT) applications due to its low power consumption and Bluetooth compatibility....

Read more

January 12, 2024

Setting up Rust environment

Set Up Your Environment Installing Rust Rustup: The recommended way to install Rust is through rustup, which is a command-line tool for managing Rust versions and associated tools....

Read more

January 10, 2024

Building wireless mesh networks with the nRF52

Building Wireless Mesh Networks with the nRF52 Wireless mesh networks provide an effective solution for enabling communication between devices in a decentralized manner....

Read more

January 8, 2024

Rust core concepts

Rust is a modern programming language that focuses on performance, safety, and concurrency, making it a powerful tool for a wide range of applications....

Read more

January 6, 2024

Implementing real-time operating systems (RTOS) on the nRF52

Implementing Real-Time Operating Systems (RTOS) on the nRF52 Real-Time Operating Systems (RTOS) play a crucial role in developing embedded systems that require predictable timing and reliable performance....

Read more

January 4, 2024

Set default terminal profile in VS Code

To start a terminal session inside VS Code, press Ctrl+` . Or click Terminal in the lower window. On Linux OS, the VS Code obviosly starts up your ordinary bash (or whatever you actually use on your system) terminal session....

Read more

January 2, 2024

Optimizing code size and performance on the nRF52

Optimizing Code Size and Performance on the nRF52 When developing for constrained embedded systems like the nRF52, it is crucial to optimize code size and performance to ensure efficient resource utilization....

Read more

December 29, 2023

Debugging techniques for nRF52 applications

Debugging Techniques for nRF52 Applications Debugging can be a challenging task for any programmer, but with the right techniques and tools, it becomes more manageable....

Read more

December 25, 2023

Exploring power management techniques on the nRF52

Exploring Power Management Techniques on the nRF52 Power management is a crucial aspect of any IoT device, especially for battery-powered devices....

Read more

December 21, 2023

Introduction to the nRF52 SoftDevice: architecture and concept

Introduction to the nRF52 SoftDevice: Architecture and Concept The nRF52 SoftDevice is a crucial component when working with Nordic Semiconductor’s nRF52 series of microcontrollers....

Read more

December 17, 2023

Over-the-Air (OTA) firmware updates using the nRF52

Over-the-Air (OTA) Firmware Updates using the nRF52 Firmware updates are a critical aspect of a connected device’s lifecycle. Over-the-Air (OTA) updates allow you to update the firmware of a device remotely, without requiring physical access....

Read more

December 13, 2023

Developing custom BLE profiles with the nRF52

Developing custom BLE profiles with the nRF52 Bluetooth Low Energy (BLE) is a popular wireless communication technology that is widely used in IoT devices....

Read more

December 9, 2023

Implementing Bluetooth Low Energy (BLE) on the nRF52

Implementing Bluetooth Low Energy (BLE) on the nRF52 Bluetooth Low Energy (BLE) is a wireless communication technology designed for short-range communication between devices with low power consumption....

Read more

December 5, 2023

Using the ADC module on the nRF52

Using the ADC Module on the nRF52 The nRF52 is a powerful microcontroller that boasts a range of features, including an Analog-to-Digital Converter (ADC) module....

Read more

December 1, 2023

Exploring PWM functionality on the nRF52

Exploring PWM functionality on the nRF52 In this blog post, we will dive into the Pulse Width Modulation (PWM) functionality on the nRF52 platform....

Read more

November 27, 2023

Interfacing sensors with the nRF52

Interfacing Sensors with the nRF52 The nRF52 is a powerful microcontroller that integrates Bluetooth Low Energy (BLE) capabilities. It is widely used in IoT applications where wireless connectivity and sensor integration are essential....

Read more

November 23, 2023

Implementing SPI communication on the nRF52

Implementing SPI Communication on the nRF52 Welcome to another exciting blog post on programming! In this article, we’ll dive into the implementation of Serial Peripheral Interface (SPI) communication on the powerful nRF52 microcontroller....

Read more

November 19, 2023

Using I2C protocol with the nRF52

Using I2C Protocol with the nRF52 The I2C (Inter-Integrated Circuit) protocol is a popular serial communication protocol that allows multiple devices to communicate with each other over a single bus....

Read more

November 15, 2023

Exploring the UART communication on the nRF52

Exploring the UART Communication on the nRF52 The nRF52 is a powerful and versatile microcontroller that supports various communication protocols. In this blog post, we will be focusing on exploring UART (Universal Asynchronous Receiver-Transmitter) communication on the nRF52....

Read more

November 11, 2023

Understanding the GPIOs on the nRF52

Understanding the GPIOs on the nRF52 The nRF52 is a versatile microcontroller that offers a wide range of features for building embedded systems....

Read more

November 7, 2023

Getting started with the nRF52 development kit

Getting Started with the nRF52 Development Kit The Nordic nRF52 development kit is a powerful tool for developing applications on the nRF52 series of microcontrollers....

Read more

November 3, 2023

Introduction to the nRF52 microcontroller: features and capabilities

Introduction to the nRF52 Microcontroller: Features and Capabilities Microcontrollers are small computer chips that are used to control and manage electronic devices....

Read more

September 25, 2023

MQTT Best Practices for Intermediate C and Python Programmers: Tips for Efficient Implementation

MQTT Best Practices for Intermediate C and Python Programmers: Tips for Efficient Implementation Message Queuing Telemetry Transport (MQTT) is a lightweight messaging protocol commonly used in the Internet of Things (IoT) and other applications that require low bandwidth and low latency communication....

Read more

September 21, 2023

Exploring MQTT Message Filtering in C and Python Development: Intermediate Concepts

Exploring MQTT Message Filtering in C and Python Development: Intermediate Concepts MQTT, or Message Queuing Telemetry Transport, is a lightweight messaging protocol that is widely used in the Internet of Things (IoT) and other real-time communication applications....

Read more

September 17, 2023

Managing MQTT Session Persistence in C and Python Applications: Intermediate Techniques

Managing MQTT Session Persistence in C and Python Applications: Intermediate Techniques As an intermediate developer building MQTT-based applications in C and Python, you may find that managing session persistence becomes a critical aspect of your implementation....

Read more

September 16, 2023

ESP32 programmer

Recently I made a EPS32 programmer. Besides standard EN/IO0 pin handling through the transistor net and the RTS/DTR signals, I added more LEDs to see what is currently going on....

Read more

September 13, 2023

Building Scalable MQTT Systems for C and Python Projects: Intermediate Implementation

Building Scalable MQTT Systems for C and Python Projects: Intermediate Implementation In this blog post, we will explore intermediate implementation techniques for building scalable MQTT (Message Queuing Telemetry Transport) systems in C and Python....

Read more

September 9, 2023

Integrating MQTT with C and Python Web Applications: Intermediate Development Strategies

Integrating MQTT with C and Python Web Applications: Intermediate Development Strategies In this blog post, we will explore the integration of MQTT (Message Queuing Telemetry Transport) with C and Python web applications....

Read more

September 5, 2023

Troubleshooting MQTT Connectivity Issues in C and Python Programs: Intermediate Solutions

Troubleshooting MQTT Connectivity Issues in C and Python Programs: Intermediate Solutions MQTT (Message Queuing Telemetry Transport) is a popular messaging protocol for communication between devices in the Internet of Things (IoT) applications....

Read more

September 1, 2023

Designing Efficient MQTT Payloads for C and Python Applications: Intermediate Tips

Designing Efficient MQTT Payloads for C and Python Applications: Intermediate Tips In this blog post, we’ll explore some intermediate tips for designing efficient MQTT payloads for C and Python applications....

Read more

August 28, 2023

Incorporating MQTT Retained Messages in C and Python Projects for Intermediate Programmers

Incorporating MQTT Retained Messages in C and Python Projects for Intermediate Programmers In this post, we will explore how to incorporate MQTT retained messages in C and Python projects....

Read more

August 24, 2023

Using MQTT with SSL/TLS for Secure Communication in C and Python Applications

Using MQTT with SSL/TLS for Secure Communication in C and Python Applications Security is a critical aspect of any communication protocol, especially when dealing with sensitive data....

Read more

August 20, 2023

Working with MQTT Topics and Subscriptions in C and Python: Intermediate Development Techniques

Working with MQTT Topics and Subscriptions in C and Python: Intermediate Development Techniques In this blog post, we’ll delve into the intricate world of MQTT (Message Queuing Telemetry Transport) topics and subscriptions, exploring advanced development techniques in C and Python....

Read more

August 16, 2023

Handling MQTT Connection Management in C and Python Applications: Best Practices for Intermediate Programmers

Handling MQTT Connection Management in C and Python Applications: Best Practices for Intermediate Programmers MQTT (Message Queuing Telemetry Transport) is a popular messaging protocol for connecting devices to the Internet....

Read more

August 12, 2023

Optimizing Memory Footprint in MQTT Clients for C and Python Development

Optimizing Memory Footprint in MQTT Clients for C and Python Development As developers, we often find ourselves working with memory-constrained devices and environments, where every byte of memory counts....

Read more

August 8, 2023

An In-depth Look at QoS Levels in MQTT for Intermediate C and Python Programmers

An In-depth Look at QoS Levels in MQTT for Intermediate C and Python Programmers MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol that is widely used in IoT (Internet of Things) and other resource-constrained environments....

Read more

August 6, 2023

Advancing your career with clean code mastery in C and Python programming

Advancing Your Career with Clean Code Mastery in C and Python Programming As a programmer, advancing your career requires more than just learning new frameworks or languages....

Read more

August 4, 2023

Using MQTT for Real-time Data Streaming in C and Python Applications

Using MQTT for Real-time Data Streaming in C and Python Applications Real-time data streaming is essential for many applications such as IoT, telemetry, and monitoring systems....

Read more

August 2, 2023

Code review techniques for enforcing clean code standards in C and Python projects

As software developers, we strive for clean, maintainable, and efficient code. Code reviews are an integral part of the software development process, helping to ensure that code adheres to established standards and best practices....

Read more

July 31, 2023

Integrating MQTT with C and Python IoT Projects: Tips and Tricks for Intermediate Programmers

Integrating MQTT with C and Python IoT Projects: Tips and Tricks for Intermediate Programmers As the Internet of Things (IoT) continues to grow, the need for efficient and reliable communication protocols becomes increasingly important....

Read more

July 29, 2023

Leveraging modern tooling and IDE features for clean code development in C and Python

In today’s fast-paced programming environment, leveraging modern tooling and IDE features can greatly enhance our ability to write clean and efficient code in languages like C and Python....

Read more

July 27, 2023

Securing MQTT Communication in C and Python: Best Practices for Intermediate Developers

Securing MQTT Communication in C and Python: Best Practices for Intermediate Developers Introduction Secure communication is a critical aspect of developing IoT applications....

Read more

July 25, 2023

Best practices for handling input and output in clean C and Python code

Handling input and output is a crucial aspect of developing clean and efficient code in both C and Python. In this blog post, we will explore the best practices for handling input and output in clean C and Python code, with extensive examples in both languages....

Read more

July 23, 2023

Handling MQTT Message Queuing for C and Python Programmers

Handling MQTT Message Queuing for C and Python Programmers Message Queuing Telemetry Transport (MQTT) is a lightweight and efficient messaging protocol designed for use in situations where low bandwidth and high latency are common....

Read more

July 21, 2023

Avoiding code smells and anti-patterns in C and Python programming

As developers, we strive to write clean, efficient, and maintainable code. However, as projects grow in size and complexity, it’s easy for code to start exhibiting “code smells” and anti-patterns....

Read more

July 19, 2023

Implementing MQTT Communication in C and Python Applications: A Step-by-Step Guide

Implementing MQTT Communication in C and Python Applications: A Step-by-Step Guide In this blog post, we will explore how to implement MQTT (Message Queuing Telemetry Transport) communication in C and Python applications....

Read more

July 17, 2023

Writing modular and reusable code in C and Python

As a programmer, one of the key principles to adhere to is writing code that is modular and reusable. This allows for easier maintenance, testing, and expansion of the codebase....

Read more

July 15, 2023

Understanding the MQTT Protocol: Intermediate Concepts for C and Python Developers

Understanding the MQTT Protocol: Intermediate Concepts for C and Python Developers MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol designed for constrained devices and low-bandwidth, high-latency, or unreliable networks....

Read more

July 13, 2023

Embracing functional programming concepts for clean code in Python

Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data....

Read more

July 11, 2023

Getting Started with MQTT: A Guide for Intermediate C and Python Programmers

Getting Started with MQTT: A Guide for Intermediate C and Python Programmers As an intermediate C and Python programmer, you may be familiar with the basics of network programming and messaging protocols....

Read more

July 9, 2023

Utilizing clean code principles for efficient memory management in C

Memory management is a critical aspect of programming, especially in low-level languages like C. In this blog post, we will explore how to leverage clean code principles for efficient memory management in C, as well as demonstrate memory management concepts with extensive examples in C and Python....

Read more

July 7, 2023

Generate secrets for MQTT

I created a small simple project to generate x509 secrets for MQTT. This allows to use a custom certification authority, give security to MQTT broker and endpoints....

Read more

July 5, 2023

Mastering the art of function and class organization in C and Python

Functions and classes are fundamental building blocks in C and Python programming languages. Mastering the organization of functions and classes is crucial for writing clean, maintainable, and efficient code....

Read more

July 4, 2023

MQTT topic wildcards

In the realm of Internet of Things (IoT) and machine-to-machine (M2M) communication, MQTT (Message Queuing Telemetry Transport) has emerged as a lightweight and efficient protocol....

Read more

July 2, 2023

Code readability and maintainability tips for C and Python developers

As a developer, writing readable and maintainable code is crucial for the success and longevity of a project. Code that is easy to understand and modify not only helps during initial development but also saves time and effort when making changes or fixing issues in the future....

Read more

July 1, 2023

Understanding the memset() function in C

Understanding the memset() function in C In the C programming language, the memset() function is a commonly used utility that allows you to set a specific value to a block of memory....

Read more

June 29, 2023

The memcpy() function in C: A beginner's guide

The memcpy() Function in C: A Beginner’s Guide In C programming, the memcpy() function is a fundamental part of the standard library that enables you to copy a specified number of bytes from one memory location to another....

Read more

June 27, 2023

Testing strategies for clean code in C and Python

Testing strategies for clean code in C and Python Testing is an integral part of the software development process, and it plays a crucial role in ensuring that our code is clean, robust, and maintainable....

Read more

June 26, 2023

libc - limits header

Definition of limits of standard data types. Limits for floating-point types are defined in <float.h>. Limits for width-specific integral types and other typedefs are defined in <stdint....

Read more

June 24, 2023

Refactoring legacy code using clean code principles in C and Python

Refactoring Legacy Code Using Clean Code Principles in C and Python In the world of software development, it’s not uncommon to encounter legacy code that is difficult to understand, maintain, and extend....

Read more

June 23, 2023

libc - stdbool header

Definition of bool type in C. Platform dependant implementation, but has to allow standard logical operations in C to carry on....

Read more

June 20, 2023

libc - stddef header

Definition several implicit types used by the C language in expressions, etc. 1 #include <stddef.h> Defined types ptrdiff_t result of pointer substraction....

Read more

June 19, 2023

Effective error handling and exception management in C and Python

Effective Error Handling and Exception Management in C and Python Error handling and exception management are crucial aspects of programming. Handling errors and exceptions effectively can improve the reliability and robustness of a program....

Read more

June 17, 2023

libc - ctype.h functions

Here I gathered the return values of ctype.h functions: ✅ - return value != 0 (true) ❌ - return value == 0 (false) Every function has the same signature: int isXXX(char c):...

Read more

June 15, 2023

Writing clear and concise comments in C and Python code

Writing Clear and Concise Comments in C and Python Code Comments in code serve as a form of documentation, providing insights into the logic and purpose of the code....

Read more

June 14, 2023

libc - strlen()

The strlen() function in C is used to find the length of a string. It is defined in the string.h header file and takes a string as input....

Read more

June 12, 2023

The importance of clean code in C and Python programming

The Importance of Clean Code in C and Python Programming Clean code is essential for creating and maintaining reliable and efficient software in both C and Python programming languages....

Read more

June 11, 2023

libc - toupper()

The toupper() function is a standard library function in the C programming language. It is defined in the ctype.h header file and is used to convert lowercase letters to uppercase letters in a string....

Read more

June 8, 2023

libc - tolower()

The tolower() function is a standard library function in the C programming language. It is defined in the ctype.h header file and is used to convert uppercase letters to lowercase letters in a string....

Read more

June 7, 2023

Understanding Pointers in C and Python: A Comprehensive Guide

Pointers are a fundamental concept in programming languages like C and Python. They allow us to work with memory addresses and access data directly, providing a powerful mechanism for memory management and efficient data manipulation....

Read more

June 5, 2023

Simple NTP client in Python

NTP stands for Network Time Protocol and is the backbone of the Internet. Each secure connection needs a timestamp for procise event processing....

Read more

June 3, 2023

The psychology of clean code: Understanding the human factor

The Psychology of Clean Code: Understanding the Human Factor As programmers, we often strive to write clean, understandable, and maintainable code....

Read more

June 2, 2023

Open/Close principle

In software architecture its all about happy clients. Happy clients gets from working software and well delivered requirements. When clients change their minds at the end its up to us, The Coders, to how we respond to those changes....

Read more

May 30, 2023

JavaScript Array Transformation: Map and Filter

JavaScript Array Transformation: Map and Filter In JavaScript, when we’re juggling arrays of objects or any kind of data, we often find ourselves needing to transform this data in some way....

Read more

May 29, 2023

Leveraging SOLID principles in modern web application development

Leveraging SOLID Principles in Modern Web Application Development In the world of software development, the SOLID principles are a set of five design principles that help developers to create well-structured, maintainable, and scalable code....

Read more

May 27, 2023

JS spread operator

All these examples can be run on the ReplIt, setting to NodeJS, HTML/CSS/JS or just entering debug mode on your browser....

Read more

May 25, 2023

Best practices for writing clean and SOLID JavaScript code

Best Practices for Writing Clean and SOLID JavaScript Code As a developer, writing clean and maintainable code is crucial for the success of any software project....

Read more

May 24, 2023

Bit-bang in embedded development

The slang term bit bang is as old as computer science. Simply put: bit banging is a software technique of generating electrical patterns and/or transmit data through a digital system without the use of dedicated hardware....

Read more

May 21, 2023

The role of SOLID principles in agile development

The role of SOLID principles in agile development SOLID principles are a set of design principles that are essential for writing clean, maintainable, and scalable code....

Read more

May 21, 2023

Visitor design pattern

When we have a collection of concrete classes and we want to perform some operations, we usually need to manually invoke each method ‘by hand’....

Read more

May 18, 2023

Template Method design pattern

Suppose that you want to create an architecture for your simple computing software. For each case you have to input some integers and perform some calculations....

Read more

May 17, 2023

Refactoring legacy code to adhere to SOLID principles

Refactoring Legacy Code to Adhere to SOLID Principles In software development, refactoring is the process of restructuring existing computer code without changing its external behavior....

Read more

May 15, 2023

Observer design pattern

One of the most commonly (and usually subconsciously) used pattern. Present especially in GUI frameworks, but not only. Everywhere, where there is a data producer and multiple data consumers....

Read more

May 13, 2023

Clean code guidelines for intermediate developers: A roadmap

Clean Code Guidelines for Intermediate Developers: A Roadmap As an intermediate developer, it’s important to understand the significance of writing clean, maintainable code....

Read more

May 12, 2023

Factory Method design pattern

The Factory Method is just an implementation of the Template Method but for building objects. Let us consider an IRL example, I’ve recently coded....

Read more

May 9, 2023

Composite design pattern

In applications, we have a desire to aggregate objects into collections. This way we have a coherent container where we can organize those objects....

Read more

May 9, 2023

Practical examples of applying SOLID principles to real-world scenarios

Practical Examples of Applying SOLID Principles to Real-World Scenarios In the world of object-oriented programming, the SOLID principles are a set of guidelines for writing clean, maintainable, and extensible code....

Read more

May 6, 2023

Virtual destructor in C++

You may have noticed, that every time, when an interface is being introduced, there is a virtual destructor declared. 1 2 3 4 5 struct IInterface{ virtual ~IInterface() {} virtual void someMethod() = 0; }; But actually, what for is that destructor need to be virtual?...

Read more

May 5, 2023

Mastering code cohesion and coupling for cleaner designs

Mastering Code Cohesion and Coupling for Cleaner Designs As a programmer, you strive to write clean, maintainable, and scalable code. To achieve this, it’s essential to understand and master the concepts of code cohesion and coupling....

Read more

May 3, 2023

Exploring the Builder Pattern in C++ and C

Exploring the Builder Pattern in C++ and C When building complex objects in programming, especially in C++ and C, the Builder Design Pattern offers a structured approach to construct composite objects....

Read more

May 1, 2023

Design patterns and SOLID principles: A comprehensive overview

Design patterns and SOLID principles: A comprehensive overview In the world of software development, writing code is not just about solving a problem at hand; it’s also about structuring the code in a way that makes it maintainable, scalable, and easy to work with....

Read more

April 30, 2023

Implementing the Null Object Pattern in C++ and C

Implementing the Null Object Pattern in C++ and C In programming, especially when developing complex applications, maintaining a consistent structure is crucial....

Read more

April 28, 2023

Abstract factory pattern

The main idea behind the abstract factory is to obscure the creation of objects. Why to complicate this basic concept? Because of the potential ‘multi-platform code compilation’....

Read more

April 27, 2023

Design patterns intro

What binds a society of professionals, are: line of conduct, common principles, pattern for ways to behave, create, legal bodies recognizing members of that society, … We, the Coders share at least the first three of those commonalities....

Read more

April 26, 2023

Strategies for improving code readability and maintainability

Strategies for Improving Code Readability and Maintainability As programmers, we spend a significant amount of time reading and understanding code. Therefore, it is crucial to write code that is easy to read, understand, and maintain....

Read more

April 24, 2023

Git versioning projects

Premise While developing a project usually I don’t need to version it. The git history does all what I need. But when my project should be used somewhere else, I can’t rely on commit-to-commit history....

Read more

April 24, 2023

VT100 shell coloring for python logging

You can use my Python package vt100logging. Install it: pip install vt100logging. Or use this code snippet: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 import logging LOGGER:logging....

Read more

April 23, 2023

Writing clean and SOLID code in object-oriented programming

Writing Clean and SOLID Code in Object-Oriented Programming As developers, we all strive to write code that is easy to understand, maintain, and extend....

Read more

April 21, 2023

Set up github keys

When I want to set up my new Linux environment for using my GitHub resources, I need to set up a secure key to authenticate....

Read more

April 19, 2023

Embracing the Interface Segregation Principle in your codebase

Embracing the Interface Segregation Principle in Your Codebase In the world of software development, the Interface Segregation Principle (ISP) is one of the five SOLID principles of object-oriented programming....

Read more

April 18, 2023

My git aliases

When embarking on the journey of code development, one tool that becomes indispensable is Git. It’s like a magic diary that keeps a record of all your changes and organizes your project’s history....

Read more

April 15, 2023

C containers library

I created a simple C containers library. Due to its simplicity I recommend it for small, embedded projects, were we:...

Read more

April 14, 2023

Using Dependency Injection to adhere to SOLID principles

Using Dependency Injection to adhere to SOLID principles In object-oriented programming, SOLID is a set of principles that when followed, can lead to better, more maintainable and scalable code....

Read more

April 12, 2023

Simple event handler library

I created a simple library for handling events. Due to its simplicity I recommend it for small, embedded projects, were we:...

Read more

April 11, 2023

Unit testing and SOLID principles: Best practices

Unit testing and SOLID principles: Best practices In the software development world, unit testing and SOLID principles play a crucial role in ensuring the quality, maintainability, and extensibility of the codebase....

Read more

April 9, 2023

Get directory of currently run python script

Delving into Python’s os.path: Unveiling the Current Script’s Directory In the dynamic world of Python programming, understanding and manipulating file paths is a frequent necessity, especially when dealing with file I/O operations, logging, data reading/writing, and more....

Read more

April 7, 2023

Creating flexible and extensible code with the Liskov Substitution Principle

Creating Flexible and Extensible Code with the Liskov Substitution Principle In object-oriented programming, the Liskov Substitution Principle (LSP) is a fundamental principle that ensures the proper usage of subtypes in a way that does not break the behavior of the parent type....

Read more

April 5, 2023

Virtual machine library

I created a library as an extensible virtual machine. Due to its simplicity I recommend it for small, embedded projects, were we:...

Read more

April 3, 2023

The importance of interfaces in SOLID design

The importance of interfaces in SOLID design In software development, the SOLID principles are a set of five design principles that help developers create well-structured, easy-to-maintain, and scalable code....

Read more

April 2, 2023

Flow library

I created a library for a flow control. Due to its simplicity I recommend it for small, embedded projects, were we:...

Read more

March 30, 2023

Determining the Path of the Currently Running Bash Script

Determining the Path of the Currently Running Bash Script For beginner programmers working with Bash scripts, a common requirement is to find the directory where the current script is located....

Read more

March 29, 2023

Applying SOLID principles in your everyday coding

Applying SOLID Principles in Your Everyday Coding As a software developer, you are constantly faced with the challenge of writing maintainable, scalable, and efficient code....

Read more

March 27, 2023

Simple command line interface library

I created a simple library for a command line interface. Due to its simplicity I recommend it for small, embedded projects, were we:...

Read more

March 26, 2023

Refactoring techniques for cleaner code

Refactoring Techniques for Cleaner Code As developers, we often find ourselves working with code that is messy, hard to understand, and difficult to maintain....

Read more

March 22, 2023

The Open/Closed Principle: What it is and why it matters

The Open/Closed Principle: What it is and why it matters The Open/Closed Principle is one of the fundamental principles in object-oriented programming....

Read more

March 21, 2023

Check if a directory exists in python

Checking File Existence in Python: A Guide to Using the os Module As a Python programmer, you often need to interact with the file system – whether it’s reading data from files, writing data to files, or checking if a file exists....

Read more

March 18, 2023

TDD rules

TDD is a hard piece of bread. Both for the Coder and for the rest of the World. Lets look at some basics of TDD so we could tackle with this concept 🕵️‍....

Read more

March 17, 2023

Writing clean and maintainable code: A guide for intermediate programmers

As an intermediate programmer, you’ve likely improved your coding skills and have a good understanding of various programming languages. However, writing clean and maintainable code is crucial for enhancing the readability, scalability, and ease of maintenance of your software....

Read more

March 15, 2023

Solid principles

There is a set of principles how to organize code in a project. It’s more a moral conduct than a recipe....

Read more

March 14, 2023

Exploring the Single Responsibility Principle in depth

In the world of software development, the Single Responsibility Principle (SRP) is a fundamental concept that plays a crucial role in designing maintainable and scalable code....

Read more

March 12, 2023

Understanding Data Sizes in C: Insights for the Embedded Programme

In the world of programming, especially when delving into the realms of C and embedded systems, an understanding of how much space your data occupies in memory is not just beneficial – it’s essential....

Read more

March 10, 2023

Understanding the DRY principle: Don't Repeat Yourself

Understanding the DRY Principle: Don’t Repeat Yourself As programmers, we all strive to write clean, efficient, and maintainable code. One of the key principles that helps us achieve this is the DRY principle, which stands for “Don’t Repeat Yourself”....

Read more

March 9, 2023

Welcome to my blog: A Journey Through Code and Electronics

Hello, wonderful readers! 🥰 I’m thrilled to welcome you to my blog, a space where passion for coding and electronics converges with the art of craftsmanship....

Read more