41554 blogs · [ { "id": "01a0877c-4f7d-709c-90ad-c4fe5f289092", "title": "Just Let Me Write Digits", "url": "https://gendignoux.com/blog/2026/07/13/input-digits.html", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed44fafa2", "title": "A Rubik's cube visualization for GoogleCTF 2017 | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2017/06/23/rubiks-cube.html", "published_at": "2026-03-02T17:39:28+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe5fcd083a", "title": "Quantifying the Swiss marriage tax", "url": "https://gendignoux.com/blog/2026/03/02/swiss-marriage-tax.html", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ec41a56b7", "title": "Programming projects | Programming | Guillaume Endignoux", "url": "https://gendignoux.com/programming/", "published_at": "2025-11-09T14:38:10+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ec366d807", "title": "Guillaume Endignoux | Official Home Page | Site Officiel", "url": "https://gendignoux.com/", "published_at": "2025-10-12T19:20:56+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ecd36b17b", "title": "Asynchronous streams in Rust (part 2) - Cancelling expired requests | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2021/04/08/rust-async-streams-futures-part2.html", "published_at": "2025-09-28T11:51:36+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ecd89f9f0", "title": "Asynchronous streams in Rust (part 1) - Futures, buffering and mysterious compilation error messages | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2021/04/01/rust-async-streams-futures-part1.html", "published_at": "2025-09-28T11:51:36+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7eceb26017", "title": "Lessons learned from stracing a password manager in Docker | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2020/09/06/strace-docker-password-manager.html", "published_at": "2025-09-28T11:51:36+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed09e1774", "title": "How I blog about math: an update on KaTeX with Jekyll | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2020/05/23/katex.html", "published_at": "2025-09-28T11:51:36+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed22245ef", "title": "Tutorial: Profiling Rust applications in Docker with perf | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2019/11/09/profiling-rust-docker-perf.html", "published_at": "2025-09-28T11:51:36+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed97cef97", "title": "Introduction to PDF syntax | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2016/10/04/pdf-basics.html", "published_at": "2025-09-28T11:51:36+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ec55d2c91", "title": "Research, publications and conference talks | Research | Guillaume Endignoux", "url": "https://gendignoux.com/research/", "published_at": "2025-09-07T14:54:50+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe60b09c21", "title": "The power of interning: making a time series database 2000x smaller in Rust", "url": "https://gendignoux.com/blog/2025/03/03/rust-interning-2000x.html", "published_at": "2025-03-03T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe613e6d85", "title": "Optimization adventures: making a parallel Rust workload even faster with data-oriented design (and other tricks)", "url": "https://gendignoux.com/blog/2024/12/02/rust-data-oriented-design.html", "published_at": "2024-12-02T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe62045879", "title": "Optimization adventures: making a parallel Rust workload 10x faster with (or without) Rayon", "url": "https://gendignoux.com/blog/2024/11/18/rust-rayon-optimized.html", "published_at": "2024-11-18T00:00:00+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ec4d7841d", "title": "Reading list | Reading list | Guillaume Endignoux", "url": "https://gendignoux.com/readlist/", "published_at": "2024-11-11T22:14:08+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe62df0d66", "title": "Making a const version of Rust's array::from_fn - How hard can it be?", "url": "https://gendignoux.com/blog/2024/06/17/const-array-from-fn.html", "published_at": "2024-06-17T00:00:00+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ecdf99a42", "title": "Back online: lessons learned from recovering my website after a data center fire | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2021/03/17/back-online.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ece3ba6fc", "title": "Reaching the (current) limits of Rust's type system with asynchronous programming | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2020/12/17/rust-async-type-system-limits.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ecf767094", "title": "Five years of Rust - a full-stack programming language for the next decade(s) | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2020/06/16/rust-5-years-full-stack.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ecfc6463b", "title": "Five years of Rust - a cross-platform programming language for the next decade(s) | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2020/06/16/rust-5-years-cross-platform.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed179a915", "title": "Rust 2020 | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2019/11/29/rust-2020.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed24fb8fb", "title": "Advent of Code in Rust: lessons learned | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2019/08/25/rust-advent-of-code.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed2bcf984", "title": "6 months into Rust: what was good in 2017 and what will be better in 2018? | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2018/02/05/rust-best-features-of-2017-and-beyond.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed376f17e", "title": "Rust from a C++ and OCaml programmer's perspective (Part 2) | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2017/09/29/rust-vs-cpp-ocaml-part2.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed3f09923", "title": "Rust from a C++ and OCaml programmer's perspective (Part 1) | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2017/09/05/rust-vs-cpp-ocaml-part1.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed4885ad0", "title": "GoogleCTF 2017 - Rubik write-up | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2017/06/23/googlectf-2017-rubik.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed53e52c6", "title": "Parsing HTTP/2 packets in Python with dpkt | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2017/05/30/dpkt-parsing-http2.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed628a85c", "title": "Conferences this semester | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2017/05/16/conferences.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed7277f7d", "title": "PlaidCTF 2017 - FHE write-up | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2017/04/24/plaidctf-2017-fhe.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed7d87b7d", "title": "Syntax and validation of PDF graphics | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2017/01/05/pdf-graphics.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed8616471", "title": "Caradoc v0.3 released | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2016/12/23/caradoc-version-0-3.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed8f76044", "title": "How secure is PDF encryption? | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2016/11/02/pdf-encryption.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed9585970", "title": "Pitfalls of PDF parsing and guidelines for file formats | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2016/10/19/pdf-parsing-pitfalls.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ed98599cf", "title": "Welcome to my blog! | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/2016/09/24/welcome.html", "published_at": "2024-06-16T19:16:45+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ec2de99ca", "title": "Latest blog posts | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/", "published_at": "2024-04-27T21:14:52+00:00" }, { "id": "01a0d112-0532-7176-a7f4-2e7ec5e7f3b2", "title": "Latest blog posts | Blog | Guillaume Endignoux", "url": "https://gendignoux.com/blog/page2/", "published_at": "2024-04-27T21:14:52+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe6395cebc", "title": "Thoughts on the xz backdoor: an lzma-rs perspective", "url": "https://gendignoux.com/blog/2024/04/08/xz-backdoor.html", "published_at": "2024-04-08T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe64507747", "title": "Making my website 10x smaller in 2024, with a dark mode", "url": "https://gendignoux.com/blog/2024/03/14/website-refresh.html", "published_at": "2024-03-14T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe65408615", "title": "STV-rs: Single Transferable Vote implementation in Rust", "url": "https://gendignoux.com/blog/2023/03/27/single-transferable-vote.html", "published_at": "2023-03-27T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe6550e2be", "title": "Testing SIMD instructions on ARM with Rust on Android", "url": "https://gendignoux.com/blog/2023/01/05/rust-arm-simd-android.html", "published_at": "2023-01-05T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe659310f8", "title": "Detecting SIMD support on ARM with Android (and patching the Rust compiler for it)", "url": "https://gendignoux.com/blog/2022/11/09/rust-simd-detect-arm-android.html", "published_at": "2022-11-09T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe66181470", "title": "Compiling Rust libraries for Android apps: a deep dive", "url": "https://gendignoux.com/blog/2022/10/24/rust-library-android.html", "published_at": "2022-10-24T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe66332944", "title": "Why my Rust benchmarks were wrong, or how to correctly use std::hint::black_box?", "url": "https://gendignoux.com/blog/2022/01/31/rust-benchmarks.html", "published_at": "2022-01-31T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe664a79ba", "title": "Horcrux: Implementing Shamir's Secret Sharing in Rust (part 2)", "url": "https://gendignoux.com/blog/2021/11/01/horcrux-2-implementation.html", "published_at": "2021-11-01T00:00:00+00:00" }, { "id": "01a0877c-4f7d-709c-90ad-c4fe67190b1c", "title": "Horcrux: Implementing Shamir's Secret Sharing in Rust (part 1)", "url": "https://gendignoux.com/blog/2021/11/01/horcrux-1-math.html", "published_at": "2021-11-01T00:00:00+00:00" } ] posts Claim your blog
Back to gendignoux.com
Blog · corpus.blog/blogs/gendignoux.com/posts

gendignoux.com

gendignoux.com

2026

2025

2024

2023

2022

2021