{"id":31,"date":"2009-09-02T13:01:05","date_gmt":"2009-09-02T12:01:05","guid":{"rendered":"https:\/\/wade.one\/blog\/?p=31"},"modified":"2009-09-02T13:01:05","modified_gmt":"2009-09-02T12:01:05","slug":"another-day-another-group-of-php-funness","status":"publish","type":"post","link":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/","title":{"rendered":"Another day, another group of PHP &#8220;funness&#8221;"},"content":{"rendered":"<p>PHP and Serializing&#8230;don&#8217;t try and store the result in a plain text file, there&#8217;s just a chance you may end up storing NUL so when you go to read a line, you&#8217;ll end up only reading part of it (the serialized object had a stack trace in it from an exception.)<\/p>\n<p>Incidentally, don&#8217;t try and debug code that works &#8211; it&#8217;s always a good idea to read the code that is storing the data you think is wrong before trying to debug the output, I couldn&#8217;t work out why I wasn&#8217;t logging somethin only for certain exceptions, then eventually I checked the logging line and realised, for that particular exception I had decided to do a manual log entry rather than throw and catch an exception.<\/p>\n<p>And now here&#8217;s a cat:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-32 alignnone\" title=\"funny-pictures-cat-is-a-gargoyle\" src=\"https:\/\/wade.one\/blog\/wp-content\/uploads\/2009\/09\/funny-pictures-cat-is-a-gargoyle.jpg\" alt=\"funny-pictures-cat-is-a-gargoyle\" width=\"499\" height=\"324\" \/><\/p>\n<p>Courtesy of <a href=\"http:\/\/icanhascheezburger.com\/\" target=\"_blank\">ICanHazCheezburger<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP and Serializing&#8230;don&#8217;t try and store the result in a plain text file, there&#8217;s just a chance you may end up storing NUL so when you go to read a line, you&#8217;ll end up only reading part of it (the serialized object had a stack trace in it from an exception.) Incidentally, don&#8217;t try and &#8230; <a href=\"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/\" class=\"more-link\">Read More<span class=\"screen-reader-text\"> &#8220;Another day, another group of PHP &#8220;funness&#8221;&#8221;<\/span> &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[13,14],"tags":[],"class_list":["post-31","post","type-post","status-publish","format-standard","hentry","category-programming","category-random-stuff"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Another day, another group of PHP &quot;funness&quot; - wade.one<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Another day, another group of PHP &quot;funness&quot; - wade.one\" \/>\n<meta property=\"og:description\" content=\"PHP and Serializing&#8230;don&#8217;t try and store the result in a plain text file, there&#8217;s just a chance you may end up storing NUL so when you go to read a line, you&#8217;ll end up only reading part of it (the serialized object had a stack trace in it from an exception.) Incidentally, don&#8217;t try and ... Read More &quot;Another day, another group of PHP &#8220;funness&#8221;&quot; &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/\" \/>\n<meta property=\"og:site_name\" content=\"wade.one\" \/>\n<meta property=\"article:published_time\" content=\"2009-09-02T12:01:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wade.one\/blog\/wp-content\/uploads\/2009\/09\/funny-pictures-cat-is-a-gargoyle.jpg\" \/>\n<meta name=\"author\" content=\"Wade\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:site\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wade\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/\"},\"author\":{\"name\":\"Wade\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/f9dedd948575256e77a44aa1417f63de\"},\"headline\":\"Another day, another group of PHP &#8220;funness&#8221;\",\"datePublished\":\"2009-09-02T12:01:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/\"},\"wordCount\":150,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"image\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/funny-pictures-cat-is-a-gargoyle.jpg\",\"articleSection\":[\"Programming\",\"Random Stuff\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/\",\"name\":\"Another day, another group of PHP \\\"funness\\\" - wade.one\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/funny-pictures-cat-is-a-gargoyle.jpg\",\"datePublished\":\"2009-09-02T12:01:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/funny-pictures-cat-is-a-gargoyle.jpg\",\"contentUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2009\\\/09\\\/funny-pictures-cat-is-a-gargoyle.jpg\",\"width\":\"499\",\"height\":\"324\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2009\\\/09\\\/02\\\/another-day-another-group-of-php-funness\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wade.one\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Another day, another group of PHP &#8220;funness&#8221;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/\",\"name\":\"wade.one\",\"description\":\"wade womersley - york based software engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wade.one\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\",\"name\":\"Wade Womersley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"contentUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"width\":202,\"height\":200,\"caption\":\"Wade Womersley\"},\"logo\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/f9dedd948575256e77a44aa1417f63de\",\"name\":\"Wade\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/94100ef7361b8aaac136b852c8df93bdd10942165a122d5c56e4466cc403e5d9?s=96&d=retro&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/94100ef7361b8aaac136b852c8df93bdd10942165a122d5c56e4466cc403e5d9?s=96&d=retro&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/94100ef7361b8aaac136b852c8df93bdd10942165a122d5c56e4466cc403e5d9?s=96&d=retro&r=pg\",\"caption\":\"Wade\"},\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/author\\\/wade\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Another day, another group of PHP \"funness\" - wade.one","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/","og_locale":"en_GB","og_type":"article","og_title":"Another day, another group of PHP \"funness\" - wade.one","og_description":"PHP and Serializing&#8230;don&#8217;t try and store the result in a plain text file, there&#8217;s just a chance you may end up storing NUL so when you go to read a line, you&#8217;ll end up only reading part of it (the serialized object had a stack trace in it from an exception.) Incidentally, don&#8217;t try and ... Read More \"Another day, another group of PHP &#8220;funness&#8221;\" &raquo;","og_url":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/","og_site_name":"wade.one","article_published_time":"2009-09-02T12:01:05+00:00","og_image":[{"url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2009\/09\/funny-pictures-cat-is-a-gargoyle.jpg","type":"","width":"","height":""}],"author":"Wade","twitter_card":"summary_large_image","twitter_creator":"@wadewomersley","twitter_site":"@wadewomersley","twitter_misc":{"Written by":"Wade","Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/#article","isPartOf":{"@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/"},"author":{"name":"Wade","@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/f9dedd948575256e77a44aa1417f63de"},"headline":"Another day, another group of PHP &#8220;funness&#8221;","datePublished":"2009-09-02T12:01:05+00:00","mainEntityOfPage":{"@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/"},"wordCount":150,"commentCount":0,"publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"image":{"@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/#primaryimage"},"thumbnailUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2009\/09\/funny-pictures-cat-is-a-gargoyle.jpg","articleSection":["Programming","Random Stuff"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/","url":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/","name":"Another day, another group of PHP \"funness\" - wade.one","isPartOf":{"@id":"https:\/\/wade.one\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/#primaryimage"},"image":{"@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/#primaryimage"},"thumbnailUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2009\/09\/funny-pictures-cat-is-a-gargoyle.jpg","datePublished":"2009-09-02T12:01:05+00:00","breadcrumb":{"@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/#primaryimage","url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2009\/09\/funny-pictures-cat-is-a-gargoyle.jpg","contentUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2009\/09\/funny-pictures-cat-is-a-gargoyle.jpg","width":"499","height":"324"},{"@type":"BreadcrumbList","@id":"https:\/\/wade.one\/blog\/2009\/09\/02\/another-day-another-group-of-php-funness\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wade.one\/blog\/"},{"@type":"ListItem","position":2,"name":"Another day, another group of PHP &#8220;funness&#8221;"}]},{"@type":"WebSite","@id":"https:\/\/wade.one\/blog\/#website","url":"https:\/\/wade.one\/blog\/","name":"wade.one","description":"wade womersley - york based software engineer","publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wade.one\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3","name":"Wade Womersley","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","contentUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","width":202,"height":200,"caption":"Wade Womersley"},"logo":{"@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png"}},{"@type":"Person","@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/f9dedd948575256e77a44aa1417f63de","name":"Wade","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/94100ef7361b8aaac136b852c8df93bdd10942165a122d5c56e4466cc403e5d9?s=96&d=retro&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/94100ef7361b8aaac136b852c8df93bdd10942165a122d5c56e4466cc403e5d9?s=96&d=retro&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/94100ef7361b8aaac136b852c8df93bdd10942165a122d5c56e4466cc403e5d9?s=96&d=retro&r=pg","caption":"Wade"},"url":"https:\/\/wade.one\/blog\/author\/wade\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1300,"url":"https:\/\/wade.one\/blog\/2026\/05\/12\/php-8-5-fatal-error-backtraces-are-an-operations-feature\/","url_meta":{"origin":31,"position":0},"title":"PHP 8.5 Fatal Error Backtraces Are an Operations Feature","author":"Wade","date":"May 12, 2026","format":false,"excerpt":"PHP 8.5 adding backtraces to fatal errors is a practical production debugging improvement, not just nicer developer output.","rel":"","context":"In &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/wade.one\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1167,"url":"https:\/\/wade.one\/blog\/2026\/03\/31\/serverless-is-great-until-you-need-to-debug-it-at-2-a-m\/","url_meta":{"origin":31,"position":1},"title":"Serverless Is Great Until You Need to Debug It at 2 a.m.","author":"","date":"March 31, 2026","format":false,"excerpt":"I still like serverless, but the tradeoff is obvious when something breaks at 2 a.m. The architecture is easy to ship and harder to reason about when you need logs, context, and a fast path to the real failure.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1183,"url":"https:\/\/wade.one\/blog\/2026\/04\/15\/the-real-cost-of-fancy-cloud-abstractions\/","url_meta":{"origin":31,"position":2},"title":"The Real Cost of Fancy Cloud Abstractions","author":"","date":"April 15, 2026","format":false,"excerpt":"Fancy cloud abstractions often look like they remove complexity, but a lot of the time they just move it somewhere harder to see. That matters when something breaks and you need to debug it or hand it over to someone else.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":764,"url":"https:\/\/wade.one\/blog\/2015\/02\/07\/standardising-logging-and-parallelisation-in-multiple-languages\/","url_meta":{"origin":31,"position":3},"title":"Standardising logging and parallelisation in multiple languages","author":"Wade","date":"February 7, 2015","format":false,"excerpt":"Over the last few days I've been working on interfaces to use across multiple programming languages to standardise how some things are done. This stemmed from a requirement to allow processing to be dealt with in any language from any other language. People do this all the time, it's nothing\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/source-code-583537_640.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/source-code-583537_640.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/source-code-583537_640.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1189,"url":"https:\/\/wade.one\/blog\/2026\/04\/21\/the-difference-between-a-prototype-and-a-system\/","url_meta":{"origin":31,"position":4},"title":"The Difference Between a Prototype and a System","author":"","date":"April 21, 2026","format":false,"excerpt":"Prototypes are allowed to be clever and disposable. Systems are not. The difference shows up when something grows, someone new has to own it, or you need to debug it under pressure.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1168,"url":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/","url_meta":{"origin":31,"position":5},"title":"Why I Still Like Serverless for Small Teams","author":"","date":"April 1, 2026","format":false,"excerpt":"Serverless has real tradeoffs, but for small teams I still think it usually wins. The operational overhead stays low, the first version ships faster, and the mistakes are easier to afford early on.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/comments?post=31"}],"version-history":[{"count":0,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/31\/revisions"}],"wp:attachment":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/media?parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/categories?post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/tags?post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}