56,966 blogs · [ { "id": "01a0877c-fc54-73f0-b5ca-f60ece2dad96", "title": "Zig crash - interfaces", "url": "https://giedrius.blog/zig-crash-interfaces/", "published_at": "2026-08-28T20:00:04+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ecef0f5a7", "title": "Hello Hugo!", "url": "https://giedrius.blog/hello-hugo/", "published_at": "2026-08-01T11:00:04+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ecfd7be6c", "title": "OpenTelemetry-go makes it hard to migrate to exponential histograms", "url": "https://giedrius.blog/2025/06/22/opentelemetry-go-makes-it-hard-to-migrate-to-exponential-histograms/", "published_at": "2025-06-22T10:56:40+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed0641e82", "title": "Jsonnet is not so bad", "url": "https://giedrius.blog/2025/03/24/jsonnet-is-not-so-bad/", "published_at": "2025-03-24T20:36:30+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed0ed9f76", "title": "Mirages of data ownership in Go", "url": "https://giedrius.blog/2025/03/05/mirages-of-data-ownership-in-go/", "published_at": "2025-03-05T14:51:25+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed1be099b", "title": "My gRPC Annoyances", "url": "https://giedrius.blog/2024/06/07/my-grpc-annoyances/", "published_at": "2024-06-07T14:18:01+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed2bcf211", "title": "How I Started Programming", "url": "https://giedrius.blog/2024/05/31/how-i-started-programming/", "published_at": "2024-05-31T09:40:00+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed319afdf", "title": "Dynamic hashrings with WAL in Thanos are bad", "url": "https://giedrius.blog/2024/05/24/dynamic-hashrings-with-wal-in-thanos-are-bad/", "published_at": "2024-05-24T14:30:01+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed400ea9c", "title": "Vertical compaction + hashmod foot gun in Thanos Compactor", "url": "https://giedrius.blog/2024/05/07/vertical-compaction-hashmod-foot-gun-in-thanos-compactor/", "published_at": "2024-05-07T14:54:21+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed4d11551", "title": "Perils of /metrics data assertions", "url": "https://giedrius.blog/2024/02/28/perils-of-metrics-data-assertions/", "published_at": "2024-02-28T10:17:44+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed54ac5e4", "title": "Starting up GitHub sponsors and some recent postings work", "url": "https://giedrius.blog/2024/02/22/starting-up-github-sponsors-and-some-recent-postings-work/", "published_at": "2024-02-22T19:04:51+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed5f255db", "title": "Reproducing flaky Go tests using Linux cgroups and systemd", "url": "https://giedrius.blog/2023/07/17/reproducing-flaky-go-tests-using-systemd/", "published_at": "2023-07-17T20:07:40+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed62a8927", "title": "Cheat Sheet Of How To Get Accepted Into LFX", "url": "https://giedrius.blog/2023/06/15/cheat-sheet-of-how-to-get-accepted-into-lfx/", "published_at": "2023-06-15T20:05:20+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed725f917", "title": "Why Thanos Receive Will Almost Always Be Faster Than Thanos Sidecar", "url": "https://giedrius.blog/2023/03/13/why-thanos-receive-will-almost-always-be-faster-than-thanos-sidecar/", "published_at": "2023-03-13T21:19:51+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed783b885", "title": "Taxonomy of PromQL engines", "url": "https://giedrius.blog/2023/02/25/taxonomy-of-promql-engines/", "published_at": "2023-02-25T17:19:34+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed7f43053", "title": "Distributed Systems Magic: K-way Merge in Thanos", "url": "https://giedrius.blog/2022/09/08/distributed-systems-magic-k-way-merge-in-thanos/", "published_at": "2022-09-08T15:59:56+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed8c10625", "title": "\"Observability Engineering\" Book Review", "url": "https://giedrius.blog/2022/05/23/observability-engineering-book-review/", "published_at": "2022-05-23T14:39:43+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed8c6a58f", "title": "Distributed Systems Magic: Groupcache in Thanos", "url": "https://giedrius.blog/2022/03/04/distributed-systems-magic-groupcache-in-thanos/", "published_at": "2022-03-04T10:19:50+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed98ea128", "title": "Things Learned From Trying to Migrate To Protobuf V2 API from gogoprotobuf (So Far)", "url": "https://giedrius.blog/2022/02/04/things-learned-from-trying-to-migrate-to-protobuf-v2-api-from-gogoprotobuf-so-far/", "published_at": "2022-02-04T16:03:25+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ed9912850", "title": "Things Learned From Speaking at a Physical Conference The First Time", "url": "https://giedrius.blog/2022/01/18/things-learned-from-speaking-at-a-physical-conference-the-first-time/", "published_at": "2022-01-18T20:12:20+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eda6a9c54", "title": "Custom Metric Retention Periods on Thanos", "url": "https://giedrius.blog/2021/12/07/custom-metric-retention-periods-on-thanos/", "published_at": "2021-12-07T20:38:21+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eda974a38", "title": "What Is The Optimal Split Interval For query-frontend?", "url": "https://giedrius.blog/2021/10/11/what-is-the-optimal-split-interval-for-query-frontend/", "published_at": "2021-10-11T15:03:56+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60edb8198d4", "title": "Surprising Behavior With inotify And ioutil", "url": "https://giedrius.blog/2021/03/06/surprising-behavior-with-inotify-and-ioutil/", "published_at": "2021-03-06T12:58:55+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60edbc7aa35", "title": "Running systemd Units Only If Certain CPU Features Are Available", "url": "https://giedrius.blog/2021/02/19/running-systemd-units-only-if-certain-cpu-features-are-available/", "published_at": "2021-02-19T15:13:17+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60edc551a68", "title": "Surprising Optimization When Appending Elements to an Array in ZSH", "url": "https://giedrius.blog/2021/01/18/surprising-optimization-when-appending-elements-to-an-array-in-zsh/", "published_at": "2021-01-18T19:32:00+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60edd07adc5", "title": "How to Visualize Prometheus TSDB With Thanos", "url": "https://giedrius.blog/2021/01/10/how-to-visualize-prometheus-tsdb-with-thanos/", "published_at": "2021-01-10T19:18:55+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60edd4f6830", "title": "Regular Meetings vs. Online Meetings", "url": "https://giedrius.blog/2020/12/23/regular-meetings-vs-online-meetings/", "published_at": "2020-12-23T19:15:11+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ede0e9b5a", "title": "Equivocal Puppet Class Parameters", "url": "https://giedrius.blog/2020/11/08/equivocal-puppet-class-parameters/", "published_at": "2020-11-08T20:13:43+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ede72b473", "title": "Yet Another Failed Website (Startup?) Idea: Discount Search Engine", "url": "https://giedrius.blog/2020/09/15/yet-another-failed-website-startup-idea-discount-search-engine/", "published_at": "2020-09-15T21:20:38+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eded47290", "title": "Dangers of IsEmpty() With Enums and FluentValidation", "url": "https://giedrius.blog/2020/09/01/dangers-of-isempty-with-enums-and-fluentvalidation/", "published_at": "2020-09-01T14:27:24+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60edfc6e2c7", "title": "Crash-Only Software In Practice With Filebeat On Kubernetes", "url": "https://giedrius.blog/2020/07/08/crash-only-software-in-practice-with-filebeat-on-kubernetes/", "published_at": "2020-07-08T20:28:27+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60edffc6268", "title": "Load Testing Thanos Query (StoreAPI)", "url": "https://giedrius.blog/2020/05/10/load-testing-thanos-query-storeapi/", "published_at": "2020-05-10T11:05:27+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee0f81806", "title": "How to solve puppetdb and SIGKILL problems", "url": "https://giedrius.blog/2020/04/22/how-to-solve-puppetdb-and-sigkill-problems/", "published_at": "2020-04-22T20:45:17+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee181ca54", "title": "Is it a good idea to use Prometheus for storing ASCII paintings?", "url": "https://giedrius.blog/2019/09/21/is-it-a-good-idea-to-use-prometheus-for-storing-ascii-paintings/", "published_at": "2019-09-21T10:35:31+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee2476b06", "title": "ABCs of Logstash capacity planning", "url": "https://giedrius.blog/2019/08/13/abcs-of-logstash-capacity-planning/", "published_at": "2019-08-13T18:26:43+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee270f54f", "title": "What I would love to see in the Puppet configuration management software", "url": "https://giedrius.blog/2019/07/25/what-i-would-love-to-see-in-the-puppet-configuration-management-software/", "published_at": "2019-07-25T20:01:09+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee2c96757", "title": "Designing API Like It Is An Everyday Thing", "url": "https://giedrius.blog/2019/07/18/designing-api-like-it-is-an-everyday-thing/", "published_at": "2019-07-18T21:35:39+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee3b78f3e", "title": "Property-based testing in Golang", "url": "https://giedrius.blog/2019/07/08/property-based-testing-in-golang/", "published_at": "2019-07-08T19:35:23+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee406aa15", "title": "What Is New In Thanos 0.5.0", "url": "https://giedrius.blog/2019/06/03/what-is-new-in-thanos-0-5-0/", "published_at": "2019-06-03T16:52:32+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee4c439a7", "title": "Push Vs. Pull In Monitoring Systems", "url": "https://giedrius.blog/2019/05/11/push-vs-pull-in-monitoring-systems/", "published_at": "2019-05-11T18:04:49+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee5a15fc5", "title": "Everything You Need To Know About The Index Cache Size in Thanos", "url": "https://giedrius.blog/2019/04/28/everything-you-need-to-know-about-the-index-cache-size-in-thanos/", "published_at": "2019-04-28T08:29:42+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee5c3eab7", "title": "Lessons Learned From Trying To Validate a Software Business Idea for the First Time", "url": "https://giedrius.blog/2019/02/17/lessons-learned-from-trying-to-validate-a-software-business-idea-for-the-first-time/", "published_at": "2019-02-17T13:42:13+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee647b764", "title": "Choosing Maximum Concurrent Queries in Prometheus Smartly", "url": "https://giedrius.blog/2019/01/13/choosing-maximum-concurrent-queries-in-prometheus-smartly/", "published_at": "2019-01-13T16:59:27+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee69f424a", "title": "Apply The Same Principle to Monitoring Alerts as to Software Bugs", "url": "https://giedrius.blog/2019/01/06/apply-the-same-principle-to-monitoring-alerts-as-to-software-bugs/", "published_at": "2019-01-06T14:04:52+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee6cbcd9c", "title": "Introducing SAM: Similar Alerts Manager (My Side-Project)", "url": "https://giedrius.blog/2018/12/29/introducing-sam-similar-alerts-manager-my-side-project/", "published_at": "2018-12-29T10:50:22+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee78b6871", "title": "2018 in books", "url": "https://giedrius.blog/2018/12/23/2018-in-books/", "published_at": "2018-12-23T10:05:30+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee7c0fa10", "title": "Capacity planning of Prometheus 2.4.2 + Thanos Sidecar 0.1.0", "url": "https://giedrius.blog/2018/12/16/capacity-planning-of-prometheus-2-4-2-thanos-sidecar-0-1-0/", "published_at": "2018-12-16T19:35:38+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee7d921ef", "title": "/etc/nsswitch.conf and /etc/hosts woes with the Alpine (and others) Docker image and Golang", "url": "https://giedrius.blog/2018/11/22/etc-nsswitch-conf-and-etc-hosts-woes-with-the-alpine-and-others-docker-image-and-golang/", "published_at": "2018-11-22T17:36:50+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee8a0ba0e", "title": "Go's http.Transport and 408 response code - what's the relationship?", "url": "https://giedrius.blog/2018/10/25/gos-http-transport-and-408-response-code-whats-the-relationship/", "published_at": "2018-10-25T19:31:18+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee93554d1", "title": "Are Scrum, Agile, and other iterative programming methodologies useful for niche programming specialties such as SREs, DevOps engineers, and so on?", "url": "https://giedrius.blog/2018/10/08/are-scrum-agile-and-other-iterative-programming-methodologies-useful-for-niche-programming-specialties-such-as-sres-devops-engineers-and-so-on/", "published_at": "2018-10-08T12:00:41+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ee9fea72e", "title": "Tutorial: Poor Man's Release/Shipping Process on GitLab", "url": "https://giedrius.blog/2018/10/01/tutorial-poor-mans-release-shipping-process-on-gitlab/", "published_at": "2018-10-01T20:15:55+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eea7de492", "title": "1 year anniversary of this blog - lessons, opinions, mistakes", "url": "https://giedrius.blog/2018/08/29/1-year-anniversary-blog-lessons-opinions-mistakes/", "published_at": "2018-08-29T16:40:03+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eeb5fe34b", "title": "Ancient specification \"bug\": you cannot use colons in your username with the HTTP basic authentication method", "url": "https://giedrius.blog/2018/08/02/ancient-specification-bug-you-cannot-use-colons-in-your-username-with-the-http-basic-authentication-method/", "published_at": "2018-08-02T19:21:11+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eeb85cbc7", "title": "Turbo-charging git-diff and making reviews easier", "url": "https://giedrius.blog/2018/07/23/turbo-charging-git-diff-and-making-reviews-easier/", "published_at": "2018-07-23T20:27:04+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eec104c92", "title": "scanf(3) is a newbie trap, use fgets(3) with sscanf(3) instead", "url": "https://giedrius.blog/2018/06/15/scanf-is-a-newbie-trap-use-fgets-sscanf-instead/", "published_at": "2018-06-15T23:11:53+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eecd25ac1", "title": "No, programming languages do not have speeds", "url": "https://giedrius.blog/2018/05/18/no-programming-languages-do-not-have-speeds/", "published_at": "2018-05-18T17:56:49+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eed21e899", "title": "10 nuggets of knowledge that I picked up from \"Code Complete\"", "url": "https://giedrius.blog/2018/04/27/10-nuggets-of-knowledge-that-i-picked-up-from-code-complete/", "published_at": "2018-04-27T22:15:59+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eedeaa537", "title": "Terraform vSphere provider 1.x now supports deploying OVA files, makes using ovftool on ESXi hosts obsolete", "url": "https://giedrius.blog/2018/04/23/terraform-vsphere-provider-1-x-now-supports-deploying-ova-files-makes-using-ovftool-on-esxi-hosts-obsolete/", "published_at": "2018-04-23T15:54:01+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eedeb5478", "title": "The State of Internet censorship in Lithuania (Beginning of 2018 Edition)", "url": "https://giedrius.blog/2018/03/24/the-state-of-internet-censorship-in-lithuania-beginning-of-2018-edition/", "published_at": "2018-03-24T20:14:24+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eee0309e4", "title": "Why os.move() Sometimes Does Not Work And Why shutil.move() Is The Savior?", "url": "https://giedrius.blog/2018/01/28/why-os-move-sometimes-does-not-work-and-why-shutil-move-is-the-savior/", "published_at": "2018-01-28T21:16:30+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eeedaa6f8", "title": "Tutorial: Automatic, Reproducible Preparation of Virtual Machine templates for your vSphere environment with HashiCorp's Packer", "url": "https://giedrius.blog/2018/01/14/tutorial-automatic-reproducible-preparation-of-virtual-machine-templates-for-your-vsphere-environment-with-hashicorps-packer/", "published_at": "2018-01-14T10:45:52+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60eef5d0bf7", "title": "What is Actually True and False in Python?", "url": "https://giedrius.blog/2018/01/04/what-is-actually-true-and-false-in-python/", "published_at": "2018-01-04T23:15:06+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef04221a4", "title": "How to Not Get Scammed by Taxi Drivers in the Israel's Ben-Gurion Airport", "url": "https://giedrius.blog/2017/11/17/how-to-not-get-scammed-by-taxi-drivers-in-the-israeli-ben-gurion-airport/", "published_at": "2017-11-17T22:53:27+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef05bce54", "title": "Confusion With File Redirection And sudo", "url": "https://giedrius.blog/2017/10/31/confusion-with-file-redirection-and-sudo/", "published_at": "2017-10-31T22:00:04+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef152c4da", "title": "Review of Dale Carnegie's \"How to Win Friends and Influence People\" for programmers", "url": "https://giedrius.blog/2017/10/25/review-dale-carnegie-how-to-win-friends-and-influence-people-for-programmers/", "published_at": "2017-10-25T07:56:22+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef1900358", "title": "Making Unwinding Functions in C Simple: Do Not be Afraid of Using Gotos", "url": "https://giedrius.blog/2017/10/22/making-unwinding-functions-in-c-simple-do-not-be-afraid-of-using-gotos/", "published_at": "2017-10-22T14:41:19+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef28a179a", "title": "Do not forget to open 443 port while using ovftool on ESXi hosts and deploying to a vCenter", "url": "https://giedrius.blog/2017/10/12/do-not-forget-to-open-443-port-while-using-ovftool-on-esxi-hosts/", "published_at": "2017-10-12T17:07:00+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef338dade", "title": "Ar KAM gali manipuliuoti sugeneruotus skaičius taip, kad į šauktinius būtų pakviesti tik atitinkami asmenys?", "url": "https://giedrius.blog/2017/09/30/ar-kam-gali-manipuliuoti-sugeneruotus-skaicius-taip-kad-i-sauktinius-butu-pakviesti-tik-atitinkami-asmenys/", "published_at": "2017-09-30T14:52:46+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef3e256f9", "title": "Short tale about proxies and /etc/hosts on GNU/Linux", "url": "https://giedrius.blog/2017/09/02/proxies-and-etc-hosts-on-gnu-linux/", "published_at": "2017-09-02T19:14:25+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef422b849", "title": "On Trustworthiness of Sources While Gathering Information About Software", "url": "https://giedrius.blog/2017/08/27/on-trustworthiness-of-sources-while-gathering-information-about-software/", "published_at": "2017-08-27T16:34:17+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef4c80dd4", "title": "Experience with Audio Books: 24 hour edition", "url": "https://giedrius.blog/2017/08/19/experience-with-audio-books-24-hour-edition/", "published_at": "2017-08-19T13:24:02+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef59135f1", "title": "Why You Should Read Programming Books", "url": "https://giedrius.blog/2017/08/16/why-you-should-read-programming-books/", "published_at": "2017-08-16T05:31:17+00:00" }, { "id": "01a0877c-fc54-73f0-b5ca-f60ef6587f55", "title": "About Me", "url": "https://giedrius.blog/about-me/", "published_at": "2017-08-13T19:41:34+00:00" } ] posts Claim your blog
Back to giedrius.blog
Blog · corpus.blog/blogs/giedrius.blog/posts

giedrius.blog

giedrius.blog

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017