41554 blogs ยท [ { "id": "01a08777-838e-7071-a764-d105819dd983", "title": "Emacs cheat sheet", "url": "https://fekir.info/post/emacs-cheat-sheet/", "published_at": "2023-05-02T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10582439266", "title": "tmux cheat sheet", "url": "https://fekir.info/post/tmux-cheat-sheet/", "published_at": "2023-04-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10582f2f4bf", "title": "Android release notes", "url": "https://fekir.info/post/android-release-notes/", "published_at": "2023-04-19T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10583061274", "title": "Verify the size of a webpage", "url": "https://fekir.info/post/verify-size-of-webpage/", "published_at": "2023-04-12T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10583bc2850", "title": "Blacklist dependencies in CMake", "url": "https://fekir.info/post/blacklist-dependencies-in-cmake/", "published_at": "2023-04-03T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10583bef60d", "title": "Wine and X", "url": "https://fekir.info/post/wine-and-x/", "published_at": "2023-02-16T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10584204283", "title": "A computer as a home media center", "url": "https://fekir.info/post/a-computer-as-a-home-media-center/", "published_at": "2023-02-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105842b7c59", "title": "Create dummy deb packages", "url": "https://fekir.info/post/create-dummy-deb-packages/", "published_at": "2023-01-26T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10584aeb23d", "title": "Windows release notes", "url": "https://fekir.info/post/windows-release-notes/", "published_at": "2023-01-17T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058505442d", "title": "E-Ink photo frame", "url": "https://fekir.info/post/eink-photoframe/", "published_at": "2023-01-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105851b8670", "title": "dynamic_cast and multiple inheritance", "url": "https://fekir.info/post/dynamic_cast-and-multiple-inheritance/", "published_at": "2022-12-19T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058603b547", "title": "Magic numbers for runtime checks", "url": "https://fekir.info/post/magic-number-for-runtime-checks/", "published_at": "2022-12-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058684b225", "title": "Let It Snow! Let It Snow! Let It Snow! ๐ŸŒจ๏ธ", "url": "https://fekir.info/post/let-it-snow/", "published_at": "2022-11-27T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10586871334", "title": "Micro-optimizations", "url": "https://fekir.info/post/micro-optimizations/", "published_at": "2022-11-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105875cdc7f", "title": "Mimick Mozilla Prism with profiles and KDE", "url": "https://fekir.info/post/mimick-mozilla-prism-with-profiles-and-kde/", "published_at": "2022-11-03T08:00:00+00:00" }, { "id": "01a0c50c-aaf7-736c-a4b5-de79ce4432aa", "title": "Mimic Mozilla Prism with profiles and KDE", "url": "https://fekir.info/post/mimic-mozilla-prism-with-profiles-and-kde/", "published_at": "2022-11-03T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10587898c19", "title": "When you cannot call hidden friends in C++", "url": "https://fekir.info/post/when-you-cannot-call-hidden-friends-in-cpp/", "published_at": "2022-10-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058835f984", "title": "How to write friend functions", "url": "https://fekir.info/post/how-to-write-friend-functions/", "published_at": "2022-10-15T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10588cc176c", "title": "Showcase: a test article", "url": "https://fekir.info/post/showcase/", "published_at": "2022-09-30T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10589beefac", "title": "decltype on a temporary lambda", "url": "https://fekir.info/post/decltype-lambda/", "published_at": "2022-09-19T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058a492072", "title": "Extract tokens from Microsoft Authenticator", "url": "https://fekir.info/post/extract-tokens-from-microsoft-authenticator/", "published_at": "2022-09-13T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058a6c9b94", "title": "Type erased view types in C++", "url": "https://fekir.info/post/type-erased-view-types-in-cpp/", "published_at": "2022-09-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058af3838b", "title": "Considerations about iOS", "url": "https://fekir.info/post/considerations-about-ios/", "published_at": "2022-08-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058bcb235b", "title": "Find and fix code smells in C++ with regexes", "url": "https://fekir.info/post/problematic-pattern-regex/", "published_at": "2022-08-16T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058c5ac164", "title": "Toolchain file in CMake", "url": "https://fekir.info/post/toolchain-file-in-cmake/", "published_at": "2022-07-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058d2e7a21", "title": "Digital audio library", "url": "https://fekir.info/post/organize-audio-library/", "published_at": "2022-06-26T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058dd5bcf2", "title": "Undefined behavior - the ugly", "url": "https://fekir.info/post/undefined-behavior-the-ugly/", "published_at": "2022-06-15T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058e87c686", "title": "Write a custom virtual table in C++", "url": "https://fekir.info/post/write-custom-virtual-table-in-cpp/", "published_at": "2022-06-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058ef6cb71", "title": "Smart devices", "url": "https://fekir.info/post/smart-devices/", "published_at": "2022-05-31T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1058f49f9a8", "title": "A static word cloud with HTML and CSS", "url": "https://fekir.info/post/word-cloud/", "published_at": "2022-05-26T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10590138730", "title": "Conditional import and optional runtime dependencies in Java", "url": "https://fekir.info/post/optional-imports-in-java/", "published_at": "2022-05-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105905b16f8", "title": "The sad state of the web", "url": "https://fekir.info/post/sad-state-of-the-web/", "published_at": "2022-04-19T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10590ec0757", "title": "Write programs for Android without writing apps", "url": "https://fekir.info/post/write-programs-for-android-without-writing-apps/", "published_at": "2022-03-31T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059184ad0f", "title": "Disk power management", "url": "https://fekir.info/post/disk-power-management/", "published_at": "2022-03-21T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105926f4395", "title": "Merge video files", "url": "https://fekir.info/post/merge-video-files/", "published_at": "2022-03-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10592f651db", "title": "Compile-time optimizations in Java", "url": "https://fekir.info/post/compile-time-optimizations-in-java/", "published_at": "2022-03-07T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10593a42414", "title": "Analyze configure times with CMake", "url": "https://fekir.info/post/analyze-configure-times-with-cmake/", "published_at": "2022-03-04T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059483064e", "title": "Recreate EFI partition with GRUB", "url": "https://fekir.info/post/restore-efi-partition-with-grub/", "published_at": "2022-02-27T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10594b3f7a9", "title": "Customize PowerShell", "url": "https://fekir.info/post/customize-powershell/", "published_at": "2022-02-21T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10595319437", "title": "Clean zip archives", "url": "https://fekir.info/post/clean-zip-archives/", "published_at": "2022-02-15T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105960323ec", "title": "vi cheat sheet", "url": "https://fekir.info/post/vi-cheat-sheet/", "published_at": "2022-02-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105960e9f0e", "title": "Analyze build times with clang", "url": "https://fekir.info/post/analyze-build-times-with-clang/", "published_at": "2022-01-30T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105966ec336", "title": "Automate git interactive add", "url": "https://fekir.info/post/automate-git-interactive-add/", "published_at": "2022-01-21T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105973866f0", "title": "Git aliases gotchas", "url": "https://fekir.info/post/git-aliases-gotcha/", "published_at": "2022-01-16T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105979bb428", "title": "How to declare function pointers", "url": "https://fekir.info/post/declare-function-pointers/", "published_at": "2022-01-11T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10598313b61", "title": "Webserver in PHP", "url": "https://fekir.info/post/webserver-in-php/", "published_at": "2021-12-26T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10598e154f5", "title": "Toolbox of a GNU/Linux C++ programmer", "url": "https://fekir.info/post/linux-cpp-toolbox/", "published_at": "2021-12-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059910a4cd", "title": "SSH everywhere", "url": "https://fekir.info/post/ssh-everywhere/", "published_at": "2021-11-24T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105992c00c6", "title": "Compile-time string operations", "url": "https://fekir.info/post/compile-time-string-operations/", "published_at": "2021-10-30T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10599c3352f", "title": "Macros usages in C++", "url": "https://fekir.info/post/macro-usages-in-cpp/", "published_at": "2021-10-24T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10599caa2d8", "title": "Testing the health of a website", "url": "https://fekir.info/post/testing-website-health/", "published_at": "2021-10-19T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d10599fe0320", "title": "Parallelize bulk operations", "url": "https://fekir.info/post/parallelize-bulk-operations/", "published_at": "2021-10-15T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059a029d68", "title": "A minimal C++ development environment", "url": "https://fekir.info/post/minimal-cpp-dev-env/", "published_at": "2021-09-24T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059a5a8a30", "title": "Guaranteed copy elision", "url": "https://fekir.info/post/guaranteed-copy-elision/", "published_at": "2021-09-16T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059a6a3892", "title": "constexpr tree structures", "url": "https://fekir.info/post/constexpr-tree/", "published_at": "2021-08-09T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059a91ce0f", "title": "constexpr linked list", "url": "https://fekir.info/post/constexpr-linked-list/", "published_at": "2021-08-03T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059b8b4fd2", "title": "natstepfilter", "url": "https://fekir.info/post/natstepfilter/", "published_at": "2021-07-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059ba6a6ea", "title": "Change the date of a photo to match Exif", "url": "https://fekir.info/post/change-date-of-photo-to-match-exif/", "published_at": "2021-07-20T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059bc61823", "title": "CMake, custom targets, and commands", "url": "https://fekir.info/post/cmake-custom-targets-and-commands/", "published_at": "2021-07-16T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059c2e5352", "title": "Migrate from Subversion to git", "url": "https://fekir.info/post/migrate-svn-to-git/", "published_at": "2021-07-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059c3ccd0f", "title": "A better LaTeX environment", "url": "https://fekir.info/post/better-latex-environment/", "published_at": "2021-06-29T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059d01d066", "title": "Natvis files", "url": "https://fekir.info/post/natvis/", "published_at": "2021-06-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059dd841df", "title": "std::span, the missing constructor", "url": "https://fekir.info/post/span-the-missing-constructor/", "published_at": "2021-06-12T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059eb291d9", "title": "Less assembly does not mean faster code", "url": "https://fekir.info/post/less-assembly-does-not-mean-faster-code/", "published_at": "2021-06-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d1059f85bdbd", "title": "Clang-tidy on Windows", "url": "https://fekir.info/post/clang-tidy-windows/", "published_at": "2021-05-28T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a00c7f63", "title": "Recording macros in VIM", "url": "https://fekir.info/post/vim-macros/", "published_at": "2021-05-20T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a09f4880", "title": "Backup user data with rsync", "url": "https://fekir.info/post/backups-with-rsync/", "published_at": "2021-05-18T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a0cb7804", "title": "Risks of rooting Android", "url": "https://fekir.info/post/risk-of-rooting-android/", "published_at": "2021-05-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a1058486", "title": "Synchronize contacts between Android and Thunderbird", "url": "https://fekir.info/post/syncronize-contacts-between-thunderbird-and-android/", "published_at": "2021-05-02T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a16ea513", "title": "Deducing return types in C++", "url": "https://fekir.info/post/deducing-return-types-in-cpp/", "published_at": "2021-04-21T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a22c06d9", "title": "Support FOSS", "url": "https://fekir.info/post/support-foss/", "published_at": "2021-03-22T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a2fa30af", "title": "Botstrapping and cross-compiling", "url": "https://fekir.info/post/bootstrapping-and-crosscompiling/", "published_at": "2021-03-17T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a3d2976f", "title": "Linker error with static member variable", "url": "https://fekir.info/post/linker-error-with-static-member-variable/", "published_at": "2021-03-15T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a3fa321e", "title": "Should I root my Android phone", "url": "https://fekir.info/post/should-root-my-phone/", "published_at": "2021-03-12T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a48a0c41", "title": "Remove Android system applications (an example)", "url": "https://fekir.info/post/remove-android-system-apps-example/", "published_at": "2021-03-06T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a4eac424", "title": "Analyze Apache access logs", "url": "https://fekir.info/post/analyze-apache-access-logs/", "published_at": "2021-03-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a539c690", "title": "Introduction to make", "url": "https://fekir.info/post/introduction-to-make/", "published_at": "2021-02-27T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a56e18cc", "title": "PHP as static site generator", "url": "https://fekir.info/post/php-as-static-site-generator/", "published_at": "2021-02-21T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a66be8c8", "title": "Git is actually easier than svn", "url": "https://fekir.info/post/git-is-easier-than-svn/", "published_at": "2021-02-18T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a70acff2", "title": "Quick GIMP tricks", "url": "https://fekir.info/post/quick-gimp/", "published_at": "2021-02-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a70ee6ea", "title": "MathML support in Chromium-based browsers", "url": "https://fekir.info/post/mathml-support-in-chromium-based-browsers/", "published_at": "2021-02-07T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a7370bb9", "title": "git, cygwin and WSL", "url": "https://fekir.info/post/git-cygwin-and-wsl/", "published_at": "2021-02-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a771f9db", "title": "Namespace vs struct", "url": "https://fekir.info/post/namespace-vs-struct/", "published_at": "2021-01-27T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a7774bc5", "title": "Decomposing an expression", "url": "https://fekir.info/post/decomposing-an-expression/", "published_at": "2021-01-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a7accfa5", "title": "C++ performance guidelines", "url": "https://fekir.info/post/cpp-performance-guidelines/", "published_at": "2021-01-03T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a7f1d7d3", "title": "string_view(s)", "url": "https://fekir.info/post/string_views/", "published_at": "2020-12-17T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a81efa20", "title": "Cygwin and WSL", "url": "https://fekir.info/post/cygwin-and-wsl/", "published_at": "2020-12-08T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a8768c07", "title": "How to force return value optimization", "url": "https://fekir.info/post/how-to-force-return-value-optimization/", "published_at": "2020-10-05T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a91b734d", "title": "Thoughts on public virtual inheritance", "url": "https://fekir.info/post/thoughts-on-public-inheritance/", "published_at": "2020-10-01T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105a9ddce6c", "title": "Restrict interface with private inheritance", "url": "https://fekir.info/post/restrict-interface-with-private-inheritance/", "published_at": "2020-08-28T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105aa5ec22f", "title": "Minimize Debian", "url": "https://fekir.info/post/minimize-debian/", "published_at": "2020-08-24T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105ab113ea9", "title": "Library dependency graphs in CMake", "url": "https://fekir.info/post/library-dependency-graphs-in-cmake/", "published_at": "2020-08-17T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105abe62115", "title": "The private implementation pattern (PIMPA)", "url": "https://fekir.info/post/the-private-implementation-pattern/", "published_at": "2020-08-01T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105ac1972b0", "title": "Extending the generic thread-safe mutexed_obj class", "url": "https://fekir.info/post/extend-generic-thread-safe-mutexed_obj-class/", "published_at": "2020-07-25T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105ac2f03e9", "title": "How to envelop a class with suffixes and prefixes and discover properties fields in C++", "url": "https://fekir.info/post/how-to-envelop-class-with-suffixes-and-prefixes/", "published_at": "2020-07-13T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105ac75fcde", "title": "We already have uniform initialization, stop proposing braced initialization as a solution for everything", "url": "https://fekir.info/post/we-already-have-uniform-initialization/", "published_at": "2020-07-07T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105acecd1c4", "title": "Windows hardening (part 2)", "url": "https://fekir.info/post/windows-hardening-2/", "published_at": "2020-06-10T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105ad4a5de0", "title": "Windows hardening", "url": "https://fekir.info/post/windows-hardening/", "published_at": "2020-05-29T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105ad7259ee", "title": "Recover music files (part 2)", "url": "https://fekir.info/post/music-recover-2/", "published_at": "2020-05-14T08:00:00+00:00" }, { "id": "01a08777-838e-7071-a764-d105adc33e10", "title": "Recover music files", "url": "https://fekir.info/post/music-recover/", "published_at": "2020-04-26T08:00:00+00:00" } ] posts Claim your blog
Back to fekir.info
Blog ยท corpus.blog/blogs/fekir.info/posts

fekir.info

fekir.info

2023

2022

2021

2020