41554 blogs · [ { "id": "01a08748-a0cf-73f8-aead-4a6d71aa9637", "title": "Container Primitives - Linux Namespaces", "url": "https://blog.farhan.codes/2025/08/18/container-primitives-linux-namespaces/", "published_at": "2025-08-18T00:00:00+00:00" }, { "id": "01a08748-a0d0-7349-a724-877739b994e8", "title": "BSD WiFi Buffer Management", "url": "https://blog.farhan.codes/2025/06/30/bsd-wifi-buffer-management/", "published_at": "2025-06-30T00:00:00+00:00" }, { "id": "01a08748-a0d0-7349-a724-87773a634c19", "title": "Power Management During Driver Development Environment", "url": "https://blog.farhan.codes/2025/04/11/power-management-during-driver-development-environment/", "published_at": "2025-04-11T00:00:00+00:00" }, { "id": "01a08748-a0d0-7349-a724-87773abfa928", "title": "Debugging a running FreeBSD kernel in a VM using kgdb", "url": "https://blog.farhan.codes/2023/12/21/debugging-a-running-freebsd-kernel-in-a-vm-using-kgdb/", "published_at": "2023-12-21T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb180892d7", "title": "Sarf Generator", "url": "https://blog.farhan.codes/2023/11/21/sarf-generator/", "published_at": "2023-11-21T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1898d8b8", "title": "Benchmarking Base32 vs Base64", "url": "https://blog.farhan.codes/2023/01/02/benchmarking-base32-vs-base64/", "published_at": "2023-01-02T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb18f0e10d", "title": "Let IRC Die", "url": "https://blog.farhan.codes/2022/12/30/let-irc-die/", "published_at": "2022-12-30T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1992515a", "title": "Simple dtrace use-case", "url": "https://blog.farhan.codes/2022/07/22/simple-dtrace-use-case/", "published_at": "2022-07-22T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb199bc804", "title": "My FreeBSD Development Environment", "url": "https://blog.farhan.codes/2022/03/16/my-freebsd-development-environment/", "published_at": "2022-03-16T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1a7f476a", "title": "Rebuilt This Blog", "url": "https://blog.farhan.codes/2021/08/04/rebuilt-this-blog/", "published_at": "2021-08-04T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1ab29568", "title": "Unexpected IPv6 Behavior on Linux", "url": "https://blog.farhan.codes/2020/05/18/unexpected-ipv6-behavior-on-linux/", "published_at": "2020-05-18T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1ba24803", "title": "Capturing Input/Output of Another Process in C", "url": "https://blog.farhan.codes/2019/08/26/capturing-input/output-of-another-process-in-c/", "published_at": "2019-08-26T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1c06daba", "title": "Avoiding Redundancy with Function Pointers", "url": "https://blog.farhan.codes/2019/07/24/avoiding-redundancy-with-function-pointers/", "published_at": "2019-07-24T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1c2913e0", "title": "Generating a \"vanity\" PGP Key ID Signature", "url": "https://blog.farhan.codes/2019/02/14/generating-a-vanity-pgp-key-id-signature/", "published_at": "2019-02-14T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1d1edccc", "title": "Passing by Reference, C's Garbage Collection", "url": "https://blog.farhan.codes/2019/01/13/passing-by-reference-cs-garbage-collection/", "published_at": "2019-01-13T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1d8feb0b", "title": "SHA1 on FreeBSD Snippet", "url": "https://blog.farhan.codes/2018/10/01/sha1-on-freebsd-snippet/", "published_at": "2018-10-01T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1d95140e", "title": "Including optimized-out kernel symbols in dtrace on FreeBSD", "url": "https://blog.farhan.codes/2018/08/16/including-optimized-out-kernel-symbols-in-dtrace-on-freebsd/", "published_at": "2018-08-16T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1e26da71", "title": "Linux maintains bugs, The real reason ifconfig on Linux is deprecated", "url": "https://blog.farhan.codes/2018/06/25/linux-maintains-bugs-the-real-reason-ifconfig-on-linux-is-deprecated/", "published_at": "2018-06-25T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1e8ec02c", "title": "fsync(2) on FreeBSD vs Linux", "url": "https://blog.farhan.codes/2018/05/16/fsync2-on-freebsd-vs-linux/", "published_at": "2018-05-16T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1eaaaafc", "title": "Tracing ifconfig commands from userspace to device driver", "url": "https://blog.farhan.codes/2018/02/23/tracing-ifconfig-commands-from-userspace-to-device-driver/", "published_at": "2018-02-23T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1ede7f76", "title": "That time I Reverse-Engineered the Motorola CBEP Protocol", "url": "https://blog.farhan.codes/2017/12/04/that-time-i-reverse-engineered-the-motorola-cbep-protocol/", "published_at": "2017-12-04T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb1fa37429", "title": "Migrating from FreeNAS to FreeBSD", "url": "https://blog.farhan.codes/2017/11/21/migrating-from-freenas-to-freebsd/", "published_at": "2017-11-21T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb2019b2a2", "title": "FreeBSD kernel Makefile variables SRCTOP and SYSDIR", "url": "https://blog.farhan.codes/2017/11/15/freebsd-kernel-makefile-variables-srctop-and-sysdir/", "published_at": "2017-11-15T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb20f274da", "title": "Switched from Ubuntu-based to Fedora", "url": "https://blog.farhan.codes/2017/09/25/switched-from-ubuntu-based-to-fedora/", "published_at": "2017-09-25T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb21e3b6a0", "title": "Custom Kernel Modules for Chromebook", "url": "https://blog.farhan.codes/2017/04/16/custom-kernel-modules-for-chromebook/", "published_at": "2017-04-16T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb22a2b8bf", "title": "Draw this shape without picking up your pen", "url": "https://blog.farhan.codes/2017/03/30/draw-this-shape-without-picking-up-your-pen/", "published_at": "2017-03-30T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb23841b0e", "title": "FreeBSD and Linux Remote Dual Booting", "url": "https://blog.farhan.codes/2017/03/10/freebsd-and-linux-remote-dual-booting/", "published_at": "2017-03-10T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb23ded54c", "title": "My Python3 Programming Environment", "url": "https://blog.farhan.codes/2016/12/26/my-python3-programming-environment/", "published_at": "2016-12-26T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb24193eca", "title": "Hotspot Hijacking & Password Capturing", "url": "https://blog.farhan.codes/2016/04/18/hotspot-hijacking-password-capturing/", "published_at": "2016-04-18T00:00:00+00:00" }, { "id": "01a08748-a0d1-7354-9fc9-05eb245714a7", "title": "Easytether running on ARMv7l Chromebook", "url": "https://blog.farhan.codes/2015/11/03/easytether-running-on-armv7l-chromebook/", "published_at": "2015-11-03T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f35633b1c566", "title": "Differences between Mint and Ubuntu", "url": "https://blog.farhan.codes/2015/10/18/differences-between-mint-and-ubuntu/", "published_at": "2015-10-18T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f3563428a70f", "title": "Adding Arbitrary XML to python-docx", "url": "https://blog.farhan.codes/2015/08/15/adding-arbitrary-xml-to-python-docx/", "published_at": "2015-08-15T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f35634e15549", "title": "Convert Docx to Markdown", "url": "https://blog.farhan.codes/2014/12/31/convert-docx-to-markdown/", "published_at": "2014-12-31T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f35635d7409d", "title": "Duplicate a Django modelformset_factory Form", "url": "https://blog.farhan.codes/2014/12/14/duplicate-a-django-modelformset_factory-form/", "published_at": "2014-12-14T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f35636b3ce7d", "title": "Custom Django Fixture Imports", "url": "https://blog.farhan.codes/2014/12/06/custom-django-fixture-imports/", "published_at": "2014-12-06T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f35637a21b4b", "title": "Hotspot Hijacking & Password Capturing", "url": "https://blog.farhan.codes/2012/03/16/hotspot-hijacking-password-capturing/", "published_at": "2012-03-16T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f35637c07906", "title": "Old Chat Framework in C", "url": "https://blog.farhan.codes/2011/03/06/old-chat-framework-in-c/", "published_at": "2011-03-06T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f35638057bdd", "title": "Simple Economics of the IPv6 Transition", "url": "https://blog.farhan.codes/2010/01/22/simple-economics-of-the-ipv6-transition/", "published_at": "2010-01-22T00:00:00+00:00" }, { "id": "01a08748-a0d2-7090-b79c-f3563856d9c5", "title": "About", "url": "https://blog.farhan.codes/about/", "published_at": null }, { "id": "01a08748-a0d2-7090-b79c-f35638a18756", "title": "Current and Future Projects", "url": "https://blog.farhan.codes/projects/", "published_at": null }, { "id": "01a08748-a0d2-7090-b79c-f35639007591", "title": "Open Source Contributions", "url": "https://blog.farhan.codes/opensource/", "published_at": null } ] posts Claim your blog
Back to blog.farhan.codes
Blog · corpus.blog/blogs/blog.farhan.codes/posts

blog.farhan.codes

blog.farhan.codes

2025

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2012

2011

2010

Undated