56,966 blogs · [ { "id": "01a0c50c-aaf6-7129-9eae-30c117498f84", "title": "UTM and other tracking parameters", "url": "https://fekir.info/post/utm-and-other-tracking-parameters/", "published_at": "2026-09-18T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1054f38a7b5", "title": "Install Android programs from the Play Store without an account", "url": "https://fekir.info/post/install-android-programs-from-play-store-without-account/", "published_at": "2026-06-29T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1054f3ea44e", "title": "PowerShell TUI programs for Windows", "url": "https://fekir.info/post/powershell-tui-programs-for-windows/", "published_at": "2026-06-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1054f7e6846", "title": "TUI environment for Linux", "url": "https://fekir.info/post/tui-environment-for-linux/", "published_at": "2026-06-07T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055071d803", "title": "NFC and RicaricaMi", "url": "https://fekir.info/post/nfc-reader-and-ricaricami/", "published_at": "2026-06-01T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10550b2fdcd", "title": "Rockbox on iPod", "url": "https://fekir.info/post/rockbox-on-ipod/", "published_at": "2026-05-08T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055127ff93", "title": "Jailbreak a Kindle Touch", "url": "https://fekir.info/post/jailbreak-kindle-touch/", "published_at": "2026-04-27T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055171f6e9", "title": "Bit fields in C and C++", "url": "https://fekir.info/post/bitfields-in-c-and-cpp/", "published_at": "2026-04-19T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10551f0468f", "title": "Configure Firefox", "url": "https://fekir.info/post/configure-firefox/", "published_at": "2026-04-13T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055206d13d", "title": "Recursive mutex", "url": "https://fekir.info/post/recursive-mutex/", "published_at": "2026-03-30T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105520bcbb8", "title": "Templated constructor", "url": "https://fekir.info/post/templated-constructor/", "published_at": "2026-03-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10552d16ae5", "title": "Home-made system monitor", "url": "https://fekir.info/post/home-made-system-monitor/", "published_at": "2026-03-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10552e22e53", "title": "News feeds", "url": "https://fekir.info/post/news-feed/", "published_at": "2026-03-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055337282b", "title": "Colored error messages in make", "url": "https://fekir.info/post/colored-error-messages-in-make/", "published_at": "2026-03-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055371d14d", "title": "Implement a type erased container and iterator", "url": "https://fekir.info/post/implement-type-erased-container-and-iterator/", "published_at": "2026-02-24T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10554703c11", "title": "Implement a random access iterator from scratch", "url": "https://fekir.info/post/implement-random-access-iterator/", "published_at": "2026-02-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055538908e", "title": "tee on steroids with awk", "url": "https://fekir.info/post/tee-on-steroids-with-awk/", "published_at": "2026-01-28T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105557040f8", "title": "Disable vctip for good", "url": "https://fekir.info/post/disable-vctip-for-good/", "published_at": "2026-01-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105562fc6b3", "title": "Change metadata settings in mp4 files", "url": "https://fekir.info/post/change-metadata-in-mp4-files/", "published_at": "2026-01-17T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055660e057", "title": "Cautionary tales on online accounts", "url": "https://fekir.info/post/cautionary-tales-online-accounts/", "published_at": "2025-12-18T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105573f3967", "title": "Automated text editing", "url": "https://fekir.info/post/automated-text-editing/", "published_at": "2025-12-03T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10558316987", "title": "The future of computing does not look bright", "url": "https://fekir.info/post/future-of-computing-does-not-look-bright/", "published_at": "2025-11-23T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10558f1d611", "title": "Considerations on User Interfaces", "url": "https://fekir.info/post/considerations-on-user-interfaces/", "published_at": "2025-10-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10559df1cd2", "title": "More constexpr with optional and view types", "url": "https://fekir.info/post/more-constexpr-with-optional-and-view-types/", "published_at": "2025-10-03T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055a309123", "title": "More constexpr with variants and view types", "url": "https://fekir.info/post/more-constexpr-with-variant-and-view-types/", "published_at": "2025-09-13T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055a642f50", "title": "Extension methods in C++", "url": "https://fekir.info/post/extension-methods-in-cpp/", "published_at": "2025-08-27T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055ada92f0", "title": "Download Java dependencies", "url": "https://fekir.info/post/download-java-dependencies/", "published_at": "2025-07-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055b03cb1a", "title": "Recovery system and personalized live distribution", "url": "https://fekir.info/post/recovery-system-personalized-live-distribution/", "published_at": "2025-07-06T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055bb90dd5", "title": "Testing a parser", "url": "https://fekir.info/post/parser-improvements/", "published_at": "2025-06-28T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055c6fd278", "title": "A minimal pull parser", "url": "https://fekir.info/post/pull-parser/", "published_at": "2025-06-24T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055c748ef8", "title": "A minimal SAX parser", "url": "https://fekir.info/post/sax-parser/", "published_at": "2025-06-20T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055d27fa2d", "title": "A minimal DOM parser", "url": "https://fekir.info/post/dom-parser/", "published_at": "2025-06-16T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055d883915", "title": "Constexpr std::type_info::name", "url": "https://fekir.info/post/constexpr-type_info-name/", "published_at": "2025-05-31T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055e141eb7", "title": "How to assemble an Android Program", "url": "https://fekir.info/post/how-to-assemble-an-android-program/", "published_at": "2025-05-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055e356f50", "title": "Helper function for creating a handwritten vtable", "url": "https://fekir.info/post/helper-functions-for-handwritten-vtable/", "published_at": "2025-05-07T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055e55706f", "title": "Owning type erasure on the stack", "url": "https://fekir.info/post/owning-type-erasure-on-the-stack/", "published_at": "2025-05-01T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055f543198", "title": "String parameters", "url": "https://fekir.info/post/string-parameters/", "published_at": "2025-04-18T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055f5b99db", "title": "Compile-time testing in C++", "url": "https://fekir.info/post/compile-time-test-suite/", "published_at": "2025-04-09T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1055fdd1cbe", "title": "Change audio settings in mkv files", "url": "https://fekir.info/post/change-audio-settings-mkv/", "published_at": "2025-04-07T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105609ba7e4", "title": "Drive partitioning", "url": "https://fekir.info/post/drive-partitioning/", "published_at": "2025-04-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105616d9da2", "title": "Use ODR violations in C++ for removing old code", "url": "https://fekir.info/post/abuse-odr-violations/", "published_at": "2025-03-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10561bdfcf2", "title": "Redirect output to file in PowerShell", "url": "https://fekir.info/post/redirect-output-to-file-in-powershell/", "published_at": "2025-03-16T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056224c698", "title": "Full system backups", "url": "https://fekir.info/post/full-system-backups/", "published_at": "2025-03-11T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10562c1624a", "title": "How to pin packages in Debian", "url": "https://fekir.info/post/debian-pinning-packages/", "published_at": "2025-03-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10563850822", "title": "Windows Server on a laptop", "url": "https://fekir.info/post/windows-server-on-a-laptop/", "published_at": "2025-03-02T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10564065ddb", "title": "A C++ class generator", "url": "https://fekir.info/post/cpp-class-generator/", "published_at": "2025-02-21T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10564207b4d", "title": "File optimizations", "url": "https://fekir.info/post/file-optimizations/", "published_at": "2025-02-11T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056439649b", "title": "Execute programs in parallel", "url": "https://fekir.info/post/execute-programs-in-parallel/", "published_at": "2025-01-30T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105646021cf", "title": "Constructors and related functions", "url": "https://fekir.info/post/constructor-and-related-functions/", "published_at": "2025-01-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10564cd16ce", "title": "VPN with WireGuard", "url": "https://fekir.info/post/vpn-wireguard/", "published_at": "2025-01-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105652c275a", "title": "Design a short string class", "url": "https://fekir.info/post/short-string-class/", "published_at": "2025-01-07T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10565d27e79", "title": "Switch between Windows and POSIX shells", "url": "https://fekir.info/post/switch-between-windows-and-posix-shells/", "published_at": "2024-12-31T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10565edda5f", "title": "Windows paths... what a mess", "url": "https://fekir.info/post/windows-paths-what-a-mess/", "published_at": "2024-12-15T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10566e706a0", "title": "Replace file in an android program", "url": "https://fekir.info/post/replace-files-in-android-program/", "published_at": "2024-12-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10566f9ec35", "title": "Configure Thunderbird", "url": "https://fekir.info/post/configure-thunderbird/", "published_at": "2024-12-01T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10567f7a029", "title": "Fake time in Virtualbox", "url": "https://fekir.info/post/fake-time-in-virtualbox/", "published_at": "2024-11-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10568c36d3c", "title": "Fake network card on GNU/Linux systems", "url": "https://fekir.info/post/fake-network-card-on-linux/", "published_at": "2024-10-27T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10568cf5a41", "title": "Register function at link time", "url": "https://fekir.info/post/register-functions-at-link-time/", "published_at": "2024-10-18T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10568fbb599", "title": "Copy Android application folder with adb", "url": "https://fekir.info/post/copy-application-folder-with-adb/", "published_at": "2024-10-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10569c04ed9", "title": "A C++ test suite in 100 lines of code", "url": "https://fekir.info/post/cpp-test-suite-in-100-lines-of-code/", "published_at": "2024-09-29T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10569fab32b", "title": "Virtual functions, overloads, and default parameters - pick one", "url": "https://fekir.info/post/virtual-functions-overloads-default-parameters-pick-one/", "published_at": "2024-09-20T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056a98c0f8", "title": "Conditional compilation", "url": "https://fekir.info/post/conditional-compilation/", "published_at": "2024-09-11T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056b72ec22", "title": "Query the number of elements in an array", "url": "https://fekir.info/post/query-number-of-elements-in-array/", "published_at": "2024-08-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056c31e963", "title": "Recover files from damaged media", "url": "https://fekir.info/post/recover-files-damaged-media/", "published_at": "2024-07-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056d088092", "title": "Remove noise from audio files", "url": "https://fekir.info/post/remove-noise-from-audio-files/", "published_at": "2024-07-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056d9125f4", "title": "Windows Server as Desktop Environment", "url": "https://fekir.info/post/windows-server-as-desktop/", "published_at": "2024-07-06T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056e00333c", "title": "Self-hashing code in C++", "url": "https://fekir.info/post/self-hashing-code-in-cpp/", "published_at": "2024-06-01T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056eb0ff1a", "title": "Reuse an old smartphone", "url": "https://fekir.info/post/reuse-an-old-smartphone/", "published_at": "2024-05-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1056f892887", "title": "A computer as a webserver", "url": "https://fekir.info/post/a-computer-as-webserver/", "published_at": "2024-04-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10570265ea5", "title": "Lazy initialization, an alternative to double-checked locking", "url": "https://fekir.info/post/lazy-initialization/", "published_at": "2024-03-31T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105702baab7", "title": "How to assemble a Java Program", "url": "https://fekir.info/post/how-to-assemble-a-java-program/", "published_at": "2024-03-24T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10570afb805", "title": "Work with PDF files", "url": "https://fekir.info/post/work-with-pdf-files/", "published_at": "2024-03-03T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057158ed75", "title": "TUI programs for Windows", "url": "https://fekir.info/post/tui-programs-for-windows/", "published_at": "2024-02-27T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105722e63dd", "title": "Generic owning type erasure", "url": "https://fekir.info/post/generic-owning-type-erasure/", "published_at": "2024-02-17T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10572c05039", "title": "Midnight Commander cheat sheet (part 2)", "url": "https://fekir.info/post/mc-cheat-sheet-2/", "published_at": "2024-02-13T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10573be1c41", "title": "Introduce chrono in an existing codebase", "url": "https://fekir.info/post/introduce-chrono/", "published_at": "2024-02-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10574780ebe", "title": "Midnight Commander cheat sheet", "url": "https://fekir.info/post/mc-cheat-sheet/", "published_at": "2024-02-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10574feb4b6", "title": "Query properties of a class", "url": "https://fekir.info/post/query-properties-of-class/", "published_at": "2024-02-01T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10575566514", "title": "Passwords", "url": "https://fekir.info/post/passwords/", "published_at": "2024-01-18T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10575b5ac6a", "title": "Destructure a C++ function", "url": "https://fekir.info/post/destructure-cpp-function/", "published_at": "2024-01-11T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057618752c", "title": "Mount archives", "url": "https://fekir.info/post/mount-archives/", "published_at": "2024-01-09T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105764cdd74", "title": "Mount folder", "url": "https://fekir.info/post/mount-folders/", "published_at": "2023-12-18T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10576c14de8", "title": "Owning type erasure for simple types", "url": "https://fekir.info/post/owning-type-erasure-for-simple-types/", "published_at": "2023-12-06T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10577027bef", "title": "Execute a function after a return statement", "url": "https://fekir.info/post/do-something-after-return-statement/", "published_at": "2023-11-21T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10577088245", "title": "Comma operator in C++", "url": "https://fekir.info/post/comma-operator-in-cpp/", "published_at": "2023-11-15T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10577eb8b52", "title": "A computer for retrogaming", "url": "https://fekir.info/post/a-computer-for-retrogaming/", "published_at": "2023-10-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105780689e8", "title": "git and binary files", "url": "https://fekir.info/post/git-and-binary-files/", "published_at": "2023-10-16T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10578e01b27", "title": "Detect transparent comparators", "url": "https://fekir.info/post/detect-transparent-comparator/", "published_at": "2023-10-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10578ec3c9d", "title": "Insert an element in a map efficiently", "url": "https://fekir.info/post/insert-elements-in-map-efficiently/", "published_at": "2023-10-07T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057961859e", "title": "Prefer function overloads to std::variant", "url": "https://fekir.info/post/prefer-function-overloads-to-variant/", "published_at": "2023-09-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057a3b95b4", "title": "Mapping types in C++", "url": "https://fekir.info/post/mapping-types-in-cpp/", "published_at": "2023-08-26T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057b10c78f", "title": "Dependency injection in CMake", "url": "https://fekir.info/post/dependency-injection-in-cmake/", "published_at": "2023-07-31T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057c07ed6a", "title": "Bookmarklets", "url": "https://fekir.info/post/bookmarklets/", "published_at": "2023-07-08T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057cb15fb6", "title": "How to get the parent branch in git", "url": "https://fekir.info/post/git-parent-branch/", "published_at": "2023-07-02T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057d893608", "title": "Backup webpage", "url": "https://fekir.info/post/backup-webpage/", "published_at": "2023-06-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057e2914a4", "title": "Comparison of ebook readers", "url": "https://fekir.info/post/comparing-ebook-readers/", "published_at": "2023-06-11T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057eed66ee", "title": "CMake, MSVC, and Ninja", "url": "https://fekir.info/post/cmake-msvc-and-ninja/", "published_at": "2023-06-01T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1057fc3fe07", "title": "Emacs cheat sheet - part 2", "url": "https://fekir.info/post/emacs-cheat-sheet-2/", "published_at": "2023-05-24T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105803b54eb", "title": "Reproducible zip archives", "url": "https://fekir.info/post/reproducible-zip-archives/", "published_at": "2023-05-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10580d35e45", "title": "Force null checks", "url": "https://fekir.info/post/force-null-check/", "published_at": "2023-05-11T08:00:00+00:00" } ] posts Claim your blog
Back to fekir.info
Blog · corpus.blog/blogs/fekir.info/posts

fekir.info

fekir.info

2026

2025

2024

2023