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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreFebruary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreJanuary 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 moreDecember 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 moreDecember 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 moreDecember 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 moreDecember 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 moreDecember 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 moreDecember 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 moreDecember 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 moreDecember 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 moreNovember 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 moreNovember 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 moreNovember 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 moreNovember 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 moreNovember 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 moreNovember 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 moreNovember 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 moreSeptember 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 moreSeptember 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 moreSeptember 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 moreSeptember 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 moreSeptember 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 moreSeptember 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 moreSeptember 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 moreSeptember 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreAugust 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJuly 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreJune 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreMay 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreApril 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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 moreMarch 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