41554 blogs · [ { "id": "01a087bb-794b-7231-a7f5-9d0f45ea63e3", "title": "I Wrote a NuGet Package!", "url": "https://owl.billpg.com/i-wrote-a-nuget-package/", "published_at": "2026-09-05T14:41:07+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f46b301f5", "title": "Am I worried AI will take my job?", "url": "https://owl.billpg.com/am-i-worried-ai-will-take-my-job/", "published_at": "2026-07-18T08:41:28+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f46ffdc49", "title": "8086 Segmented Memory Was a Good Idea. (Almost.)", "url": "https://owl.billpg.com/8086-segmented-memory-was-a-good-idea-almost/", "published_at": "2026-06-21T13:41:55+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f479a160c", "title": "On no! I’ve invented SVG badly!", "url": "https://owl.billpg.com/on-no-ive-invented-svg-badly/", "published_at": "2026-05-29T05:21:11+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f481a9988", "title": "Notes from a Helpful Glober — “Stationary”", "url": "https://owl.billpg.com/notes-from-a-helpful-glober-stationary/", "published_at": "2026-05-12T16:50:32+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f48290e07", "title": "Hearthfire Part One: Lighting the Flame", "url": "https://owl.billpg.com/hearthfire-part-one-lighting-the-flame/", "published_at": "2026-05-08T18:54:20+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f491b4980", "title": "Let’s Measure Gravity!", "url": "https://owl.billpg.com/lets-measure-gravity/", "published_at": "2026-04-21T18:53:09+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f49626950", "title": "2001: A TV Series", "url": "https://owl.billpg.com/2001-a-tv-series/", "published_at": "2026-04-04T17:47:38+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f4996b1c9", "title": "“All files are numbers”", "url": "https://owl.billpg.com/all-files-are-numbers/", "published_at": "2026-03-27T17:46:42+00:00" }, { "id": "01a087bb-794b-7231-a7f5-9d0f49e3660d", "title": "The Short History of a Very Confused Plant Pot", "url": "https://owl.billpg.com/the-short-history-of-a-very-confused-plant-pot/", "published_at": "2026-03-17T20:25:39+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-57332ded750a", "title": "“Too Clever By Half”", "url": "https://owl.billpg.com/too-clever-by-half/", "published_at": "2026-03-03T19:29:01+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-57332e170825", "title": "Let’s All Burn Our Waste Paper!", "url": "https://owl.billpg.com/lets-all-burn-our-waste-paper/", "published_at": "2026-03-02T17:31:40+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-57332ee0e755", "title": "Gravity on a Flat Earth? Notes from a Helpful Glober.", "url": "https://owl.billpg.com/gravity-on-a-flat-earth-notes-from-a-helpful-glober/", "published_at": "2026-02-24T20:52:43+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-57332fa7c7cf", "title": "The Road Not Taken: A World Where IPv4 Evolved", "url": "https://owl.billpg.com/ipv4x/", "published_at": "2026-02-10T22:14:52+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-5733305ecb06", "title": "SixGate Part Two – A Security Analysis", "url": "https://owl.billpg.com/sixgate-part-two-a-security-analysis/", "published_at": "2026-02-05T20:01:40+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-573330897e0f", "title": "Sixgate – IPv6 Without Leaving Anyone Behind", "url": "https://owl.billpg.com/sixgate/", "published_at": "2026-01-29T19:14:42+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-5733317dc82b", "title": "Python’s Truthiness: A Code Smell Worth Sniffing", "url": "https://owl.billpg.com/pythons-truthiness-a-code-smell-worth-sniffing/", "published_at": "2025-11-17T18:20:51+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-5733318dcf4d", "title": "Will We Run Out of Unicodes?", "url": "https://owl.billpg.com/the-expanding-universe-of-unicode/", "published_at": "2025-11-10T19:40:40+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-573331f4070d", "title": "Rufus – An Adventure in Downloading", "url": "https://owl.billpg.com/rufus-an-adventure-in-downloading/", "published_at": "2025-10-20T07:17:17+00:00" }, { "id": "01a0bdcb-08b4-7015-9595-573332b32311", "title": "The UKIP Effect – How to Win by Not Winning", "url": "https://owl.billpg.com/the-ukip-effect/", "published_at": "2025-10-08T17:58:44+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820a370390", "title": "Dear string-to-integer parsers…", "url": "https://owl.billpg.com/dear-string-to-integer-parsers/", "published_at": "2025-07-29T17:11:17+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820ad30a3b", "title": "What type of UUID should I use?", "url": "https://owl.billpg.com/what-type-of-uuid-should-i-use/", "published_at": "2025-04-17T17:29:32+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820b4dfacb", "title": "I want a less powerful programming language for Christmas.", "url": "https://owl.billpg.com/i-want-a-less-powerful-programming-language-for-christmas/", "published_at": "2025-02-12T21:44:24+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820bd6cdec", "title": "Why do we repeatedly hash passwords in a loop?", "url": "https://owl.billpg.com/why-do-we-repeatedly-hash-passwords-in-a-loop/", "published_at": "2023-03-28T16:49:34+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820c520dc6", "title": "What’s a kWh? (And other money-saving tips)", "url": "https://owl.billpg.com/whats-a-kwh-and-other-money-saving-tips/", "published_at": "2022-12-09T19:21:30+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820cefe924", "title": "You don’t have to wear a blazer to school on a hot day!", "url": "https://owl.billpg.com/blazer/", "published_at": "2022-07-18T16:57:13+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820cf35cd7", "title": "My adventure into self web-hosting (Part 1)", "url": "https://owl.billpg.com/web-hosting-1/", "published_at": "2022-03-25T20:20:41+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820dc97a37", "title": "My Incredibly Stupid Diary", "url": "https://owl.billpg.com/incredibly-stupid-diary/", "published_at": "2022-03-18T19:06:05+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820e1a27d0", "title": "Data-Mining Wikipedia for Fun and Profit", "url": "https://owl.billpg.com/data-mining-wikipedia/", "published_at": "2021-07-06T18:59:54+00:00" }, { "id": "01a0bdd1-a8ab-70e5-8ca5-bf820e3a16d2", "title": "POP3 – The ideas that didn’t make it.", "url": "https://owl.billpg.com/pop3-didnt-make-it/", "published_at": "2021-04-29T17:09:39+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e1f3b87b", "title": "Farewell, Hackensplat Industries!", "url": "https://owl.billpg.com/hackensplat/", "published_at": "2021-04-23T16:00:29+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e2e924c3", "title": "POP3 – Delete Immediately", "url": "https://owl.billpg.com/pop3-deli/", "published_at": "2021-04-07T18:03:51+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e357ae53", "title": "Write Your Own POP3 Service", "url": "https://owl.billpg.com/pop3-write-your-own/", "published_at": "2021-03-26T18:31:19+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e3b2dfec", "title": "POP3 – Goodbye to numeric message IDs!", "url": "https://owl.billpg.com/pop3-message-ids/", "published_at": "2021-03-22T19:57:42+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e3e2becf", "title": "POP3 – A Commit and Refresh Mechanism", "url": "https://owl.billpg.com/pop3-commit-refresh/", "published_at": "2021-03-22T19:08:48+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e4599ec8", "title": "Why the UK should re-join the EU.", "url": "https://owl.billpg.com/why-the-uk-should-re-join-the-eu/", "published_at": "2020-12-30T17:59:00+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e46934f1", "title": "POP3 – UIDL is a required command!", "url": "https://owl.billpg.com/pop3-uidl/", "published_at": "2020-12-17T20:06:55+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e4c5ae0a", "title": "The Brexit Chart War", "url": "https://owl.billpg.com/the-brexit-chart-war/", "published_at": "2020-01-30T15:23:00+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e5bdd969", "title": "Brexit – Is that it?", "url": "https://owl.billpg.com/brexit-is-that-it/", "published_at": "2020-01-20T18:42:00+00:00" }, { "id": "01a0bdd5-643c-731a-bd97-0da9e655368b", "title": "Should MPs who “cross the floor” face a by-election?", "url": "https://owl.billpg.com/should-mps-who-cross-the-floor-face-a-by-election/", "published_at": "2019-11-13T22:36:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678a5ac665", "title": "A flag for Milton Keynes", "url": "https://owl.billpg.com/mkflag/", "published_at": "2019-09-26T19:19:18+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678a6fa081", "title": "Dear WordPress. Please stop using MySQL.", "url": "https://owl.billpg.com/dear-wordpress-please-stop-using-mysql/", "published_at": "2019-06-20T18:56:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678b56aba8", "title": "#DeniedMyVote at the 2019 European Elections", "url": "https://owl.billpg.com/deniedmyvote-at-the-2019-european-elections/", "published_at": "2019-05-24T18:04:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678c24073d", "title": "My Crazy Software Engineer Tattoo (that I didn’t get)", "url": "https://owl.billpg.com/my-crazy-software-engineer-tattoo-that-i-didnt-get/", "published_at": "2019-04-04T17:19:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678c8a2265", "title": "What’s a gallon?", "url": "https://owl.billpg.com/whats-a-gallon/", "published_at": "2019-02-06T23:16:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678cc85ad2", "title": "GIT isn’t perfect. (And other blasphemies.)", "url": "https://owl.billpg.com/git-isnt-perfect-and-other-blasphemies/", "published_at": "2018-12-09T11:35:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678d02e905", "title": "Falco T310 – Unleashed", "url": "https://owl.billpg.com/falco-t310-unleashed/", "published_at": "2018-01-25T13:10:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678d506d2f", "title": "Why I willingly bought a Windows Phone", "url": "https://owl.billpg.com/why-i-willingly-bought-a-windows-phone/", "published_at": "2017-10-26T19:29:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678d80b1e9", "title": "Is your API broken?", "url": "https://owl.billpg.com/is-your-api-broken/", "published_at": "2014-07-16T23:54:00+00:00" }, { "id": "01a0bdd8-a267-73ed-ab0d-13678dd78623", "title": "NEVER sanitize your inputs!", "url": "https://owl.billpg.com/never-sanitize-your-inputs/", "published_at": "2013-09-08T20:18:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b838e51416", "title": "I need a good podcast catcher (and a bit of a rant)", "url": "https://owl.billpg.com/i-need-a-good-podcast-catcher-and-a-bit-of-a-rant/", "published_at": "2013-06-15T16:35:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b83905cecc", "title": "PHP – Some strings are more equal than others", "url": "https://owl.billpg.com/php-some-strings-are-more-equal-than-others/", "published_at": "2012-04-29T21:33:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b8393ef220", "title": "Clever and totally pointless – my first publication", "url": "https://owl.billpg.com/clever-and-totally-pointless-my-first-publication/", "published_at": "2011-06-24T20:28:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b8398600e3", "title": "Vinegar – refined Vigenère – can you break my cipher?", "url": "https://owl.billpg.com/vinegar-refined-vigenere-can-you-break-my-cipher/", "published_at": "2011-02-12T16:32:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b839ce6f7f", "title": "The cult of 140", "url": "https://owl.billpg.com/the-cult-of-140/", "published_at": "2011-02-09T23:02:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b83abb3807", "title": "‘First Past the Post’ isn’t.", "url": "https://owl.billpg.com/first-past-the-post-isnt/", "published_at": "2011-01-10T22:03:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b83af576ca", "title": "Digital photography is not rocket science. It just seems that way.", "url": "https://owl.billpg.com/digital-photography-is-not-rocket/", "published_at": "2010-09-26T21:03:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b83be281e5", "title": "reddit’d (Followup to ‘Construct Something Else’)", "url": "https://owl.billpg.com/redditd-followup-to-construct-something-else/", "published_at": "2010-09-14T00:12:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b83ca35747", "title": "Construct something else! (C#)", "url": "https://owl.billpg.com/construct-something-else-c/", "published_at": "2010-09-12T11:34:00+00:00" }, { "id": "01a0bddc-b9e4-71c3-b674-61b83cd76aa1", "title": "Google snooping WiFi? Don’t panic! Don’t panic!", "url": "https://owl.billpg.com/google-snooping-wifi-dont-panic-dont-panic/", "published_at": "2010-05-22T21:40:00+00:00" }, { "id": "01a0bddf-7dc0-704d-9dff-068eaaa15f18", "title": "Wishing for a destructor (C#)", "url": "https://owl.billpg.com/wishing-for-a-destructor-c/", "published_at": "2010-03-28T16:13:00+00:00" }, { "id": "01a0bddf-7dc0-704d-9dff-068eaac3bee4", "title": "Paying for Power", "url": "https://owl.billpg.com/paying-for-power/", "published_at": "2010-02-28T23:31:00+00:00" }, { "id": "01a0bddf-7dc0-704d-9dff-068eab38932d", "title": "The Making of an Evil Genius", "url": "https://owl.billpg.com/the-making-of-an-evil-genius/", "published_at": "2010-01-23T16:32:00+00:00" }, { "id": "01a0bddf-7dc0-704d-9dff-068eabdbe6cf", "title": "is, then as (C#)", "url": "https://owl.billpg.com/is-then-as-c/", "published_at": "2009-12-07T21:11:00+00:00" }, { "id": "01a0bddf-7dc0-704d-9dff-068eacd28b89", "title": "Computers are fast!", "url": "https://owl.billpg.com/computers-are-fast/", "published_at": "2009-11-29T18:15:00+00:00" }, { "id": "01a0bddf-7dc0-704d-9dff-068ead346efb", "title": "About This Blog", "url": "https://owl.billpg.com/about-this-blog/", "published_at": "2009-11-12T18:27:00+00:00" } ] posts Claim your blog
Back to owl.billpg.com
Blog · corpus.blog/blogs/owl.billpg.com/posts

owl.billpg.com

owl.billpg.com

2026

2025

2023

2022

2021

2020

2019

2018

2017

2014

2013

2012

2011

2010

2009