Design and DevOps
SOLID architecture in C++ and Python. CI/CD pipeline using Gitlab/GitHub.
Source code analysis
Code analysis, call graph visualization, debugging, and optimization.
Interactive Data Visualization
Either for a desktop app or a web app. The data can be obtained from a static Excel data or by web crawling.
Embedded software products need a systematic integration test between the software and the hardware.
Degoogling Android Phone
Privacy in our smartphone is becoming more important. Big tech offer many useful solutions while they are collecting our private data. Using Android OS on our phone without Google services is one big step to more privacy in our life.
Latest Articles and Videos
Understanding Inter-Process Communications in C++ using ZeroMQ
You want to start a new project with several threads or processes that communicate with each other and are confused how to implement it? Or maybe you want to refactor an old buggy software that involves the inter-thread/process communication (IPC)? This article should give you a fast and deep understanding about the IPC. But first let we refresh our knowledge.Learn More
An Asset Portfolio Watchlist That Respects Your Privacy
Introducing the AssetFolio application that mainly designs to solve the privacy issue of the online watchlist. The application tracks all of the investment activities and tracks the price of security assets. In the watchlist mode, we can see the realtime price of our securities, see the picture below. The application is open-source and you can see the code and build by yourself for your desktop application.Learn More
How to Easily Build an Old GCC on Fedora 29
As a software developer, sometimes I need to build an older GCC. The reasons to build such a GCC may vary, from the old software to be built to the desktop OS which doesn't install the appropriate GCC toolchain. In my last case, it was the incompatibility between Fedora 29 which has the version 8.2.1 installed, and an open-source software module which needs CUDA 9.2 or 10.0.Learn More
Book Review: The Hacker's Guide to Python a.k.a Serious Python
In my opinion, the book may be suitable for data scientists and intermediate Python developer who lacks some Python system tool or for intermediate Python developer. The book provides a deep inside of the Python world and the history of some modules and libraries in the past years. There are also six interviews with some experts which share their interesting experience.Learn More
How to Manage Software Documentation in a Good Way
I believe that documentation plays a vital part in any software project. In reality, however, during my involvement in different projects of large corporations, their documentation quality is far beyond the established open-source projects. Several times when I join a software project, the documents are not structured and spreads in different places.Learn More
How to Setup Nginx for a PHP application on Fedora 28/29
After switching from Linux Mint to Fedora 28/29 on my laptop, I had difficulties to run my Grav CMS or other PHP projects on Fedora OS. In the last 2 months, I've learned several things about the different between the Ubuntu-based OS and the RHEL-based OS. They are similar but some small differences can take so much time to run one application from other OS to another OS.Learn More
My Take-Aways after Attending PyCon.DE 2018 in Karlsruhe
On October 24th until 26th 2018, I attended my second german Python Conference (PyCon.DE) in Karlsruhe. During the three days venue, I've met many interesting persons and attending interesting talks. In this article, I would like to write down the list and the take- away messages from the conference, so that in future I can recap it again.Learn More
Black Screen Issue on Fedora 29 with Nvidia GPU
Today, I spent about 4 hours only to figure out why my Fedora 29 shows a black screen after the login screen. I've already used Fedora since 3 months. After using Ubuntu, Xubuntu, Linux Mint, and Manjaro, I decided to try Fedora due to the SE Linux security feature. At the beginning, I encountered a lot of issues since installing Nvidia driver in Linux is not so easy like other drivers.Learn More
Singleton Pattern in C++
In 2008 I've learned about singleton during my undergraduate studies. At that time I tried to learn all the design patterns of the software development techniques. The reference book was the 'Design Patterns: Elements of Reuseable' by Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm. The book describes about the motivation, the concept and provides some general example codes. Even though I did several exercises, it was very difficult to fully understand and to keep it in my brain.Learn More
Writing Modern CMake Files
If you are a C++ developer, the word CMake shall not be a new word for you. The first time I know _CMake_ was back in 2009 when I join the Hector team at TU Darmstadt to develop the elevation map from scratch. At that time, I learned the basic of _CMake_ and then used it very minimal just to build my own component. Last year during the Self-Driving Car Engineer Nanodegree, I used and write _CMake_ to build some C++ files. In November 2017, I encountered a challenge where I have to build software modules and libraries with _CMake_ for multi-variant projects.Learn More
A Retrospect of my Autonomous Driving Knowledge
I was interested in the autonomous driving technology since 2009 where I did my Bachelor thesis at Honda Research Institute Europe in Offenbach. At that time, many students and researchers trying to analyze the camera images using the image processing algorithms and neural networks. During my Master degree, I learned the basic of Computer Vision, Machine Learning, and Robotics.Learn More
Understanding the Process Crash and Backtracing in Linux
In the infotainment system projects which I involved, the most critical issues are the application crashes. In Linux, if an application crash occurs, the Linux kernel will send a signal to the application process and write a core file (coredump).Learn More
Building an Encrypted Website or Blog
In my last article, I wrote about how we can build a professional personal site without monthly fees. This time I would like to share how we can build **our own secure** website or blog. _secure_ means here that our website uses the secure protocol (HTTPS) instead of HTTP. In short, HTTPS is HTTP over SSL with a certificate authentication. _Our own website_ means that we have control of our data. As we know from the late leaks, the internet is fully monitored by several organizations which we don't know. Thus, HTTPS is very important to be utilized if we want to build a secure website.Learn More
Building a Personal Site using Pelican
I would like to share my experience building this site using the Pelican site generator. In the last two years, I was trying several CMS, web frameworks and static-site generators for different purposes. At the end, I found out that Pelican is the most suitable for my requirements.Learn More