RSSAmplifier

Blog

(untitled)

bewagner.github.ioRSS feed ↗11 posts

Latest posts

Explaining Your Vegetarianism in Mandarin

I've been a vegetarian for around thirteen years. Naturally when eating with others, people want to know why I don't eat meat. So I've already had a lot of opportunities to practice explaining my vegetarianism. Usually I said something like '為了動物福利', so something like 'for animal welfare'. But I always felt that this does not fully explain my reasoning. Therefore…

Search

The State of DevOps

This post is about using data to understand how the software engineering community sees DevOps. We analyze these questions: Do developers value DevOps only once they have it? How does having DevOps impact job satisfaction? How is sentiment distributed across company sizes? But first, let's review what DevOps is. What is DevOps? Wikipedia defines it like this: DevOps is a set of practices that…

I ❤️ Bopomofo

Like most Mandarin learners, the first transliteration system I learned was Pinyin. From the beginning, I had difficulties with it. Some transliterations just didn't make sense to me. The biggest issue for me was that Pinyin uses Latin letters. Whenever I opened Pleco, my eyes were drawn to familiar characters, which made it harder to focus on Chinese characters. After spending time in…

My Pleco Flashcard Setup

Ever since I started learning Mandarin, I have been using Pleco . For most Mandarin learners I've met, it's the most important learning tool. Apart from its dictionary, I use Pleco for learning flashcards. The way I use the flashcard feature evolved over time, and this setup currently helps me learn new words faster. In this post you'll learn: the different test profiles I use how I…

用 CMake 的 FetchContent 來管理 C++ 依賴項

在這篇文章中,我們討論 C++ 依賴管理。 特別是 FetchContent 這個 CMake 功能,值得更多關注。 C++ 依賴管理常見做法 Git 子模組 過去我通常把每個依賴都加成 Git 子模組。 對於有現代 CMake 設定的套件,這通常已經夠用。 但這種方式有個痛點:每位使用者在建置前都要先執行: git submodule update - -init 這會增加上手成本,而且我自己也常忘記跑這個指令。 直接把依賴程式碼複製進 repo 這當然可行,但通常比子模組更難維護: 更新依賴麻煩 repository 容易膨脹 Conan(與其他套件管理器) 像 Conan 這類工具,對大型專案很有幫助。 當依賴非常耗時(例如 OpenCV)時也特別實用。 但在小型 side project 裡,常常又顯得太重。 而且套件管理器本身也會變成另一個依賴: 每個協作者和 CI…

C++ Dependency Management with CMake's FetchContent

In this post, we talk about dependency management in C++. In particular, we introduce FetchContent , a CMake feature that deserves more attention. Dependency management options in C++ Git submodules In the past, my default was adding each dependency as a git submodule. For dependencies with a modern CMake setup, this is usually enough to make them available. What I disliked about this approach is…

Using OpenCV to Detect Face Key Points with C++

This post follows up on Building a Face Detector with OpenCV in C++ . In this post we build on that code and detect face key points. Since we work with a relatively new OpenCV version (4.2.0), you may want to revisit the first post for installation details. The code is available on GitHub: blog-post-2 branch . Detecting face key points After detecting faces, we now want to detect key points. We…

Building a Face Detector with OpenCV in C++

Hi everyone! In this blog post, I explain how to build a face detection algorithm with the machine learning components in OpenCV . We will use OpenCV to read an image from a camera and detect faces in it. You can find all code for this blog post on GitHub . Installing OpenCV We use parts of OpenCV and the OpenCV_contrib module. The most convenient way to make sure you have access to these modules…

Differentiating Similar Words in Mandarin

When learning Mandarin, I often encounter vocabulary with an identical English translation. As an example, Pleco gives "frugal" as the meaning of 節省, 節儉, and 節約. Yet, native speakers use these words in different contexts. How can you find out where the differences are? And when should you use which word? Below I'll share my answer to these questions. Google it in Mandarin To keep it short, my…

About

Hi, my name is Benjamin Wagner! This blog is my personal notebook for things I learn along the way. I write about practical programming topics and language learning workflows that helped me make steady progress in Mandarin. Most posts are focused on one concrete problem: understanding a concept clearly, building something useful, and sharing a setup that others can reuse. If you enjoy hands-on…