{"id":4486,"date":"2025-09-10T16:40:40","date_gmt":"2025-09-10T14:40:40","guid":{"rendered":"https:\/\/rent-a-pilot.nl\/?p=4486"},"modified":"2025-09-10T16:43:07","modified_gmt":"2025-09-10T14:43:07","slug":"why-a-database-column-named-content-cost-me-a-day-of-debugging-and-how-it-is-linked-to-aviation-safety","status":"publish","type":"post","link":"https:\/\/rent-a-pilot.nl\/nl\/why-a-database-column-named-content-cost-me-a-day-of-debugging-and-how-it-is-linked-to-aviation-safety\/","title":{"rendered":"Why a database column named &#8220;content&#8221; cost me a day of debugging and how it is linked to aviation safety"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Yesterday I spent 8 hours debugging a broken AI system.<br>The symptom: searches for &#8220;Keytruda&#8221; (a rather unique word) returned no results, despite the database containing clear information about this medication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The cause? A database column named &#8220;<strong>content<\/strong>&#8221; that stored <strong>content<\/strong>, configured through a parameter called &#8220;<strong>Content Column Name<\/strong>.&#8221;<br>My confusion caused the json content to become nested one level too deep into the database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This naming ambiguity cascaded through the entire system, fragmenting data and breaking search functionality. The fix was embarrassingly simple: rename the column to &#8220;inhoud&#8221; (Dutch for content).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading\">Easy fix: The Dutch Advantage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dutch developers have a secret weapon here. We can use Nederlandse termen to eliminate English ambiguity:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li>content \u2192 <strong>inhoud<\/strong> vs <strong>configuratie<\/strong><\/li>\n\n\n\n<li>data \u2192 <strong>gegevens<\/strong> vs <strong>datatype<\/strong><\/li>\n\n\n\n<li>process \u2192 <strong>verwerken<\/strong> vs <strong>proces<\/strong><\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The linguistic separation creates conceptual clarity. You can&#8217;t accidentally use &#8220;inhoud&#8221; for configuration settings.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/rent-a-pilot.nl\/wp-content\/uploads\/2025\/09\/content-content-1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"712\" height=\"883\" src=\"https:\/\/rent-a-pilot.nl\/wp-content\/uploads\/2025\/09\/content-content-1.jpg\" alt=\"\" class=\"wp-image-4497\" srcset=\"https:\/\/rent-a-pilot.nl\/wp-content\/uploads\/2025\/09\/content-content-1.jpg 712w, https:\/\/rent-a-pilot.nl\/wp-content\/uploads\/2025\/09\/content-content-1-242x300.jpg 242w, https:\/\/rent-a-pilot.nl\/wp-content\/uploads\/2025\/09\/content-content-1-10x12.jpg 10w\" sizes=\"auto, (max-width: 712px) 100vw, 712px\" \/><\/a><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">The ASD-STE100 Connection<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This reminded me of <strong>ASD Simplified Technical English (ASD-STE100)<\/strong> &#8211; the aerospace industry&#8217;s controlled language standard with a restricted vocabulary of ~900 approved words and strict grammar rules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I learned to use this to write <strong>Maintenance Manuals<\/strong> for the Fokker 100 and 70 in the 90&#8217;s. Back then it was still called <strong>AecMA Simplified English<\/strong>.  It is now maintained by the Aerospace and Defence Industries Association of Europe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The standard eliminates ambiguity from maintenance manuals through <strong>rules<\/strong> like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>One word = one meaning only<\/li>\n\n\n\n<li>Maximum 20 words per sentence<\/li>\n\n\n\n<li>No synonyms (choose &#8220;repair&#8221; OR &#8220;fix&#8221;, never both)<\/li>\n\n\n\n<li>Prohibited constructions that create parsing ambiguity<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Native English writers hated it, they said it sounds like Mickey Mouse English. I love it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Deconfuser ahead:<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&#8220;Remove the bolt holding the fuel line&#8221;<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This could mean:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Remove the bolt <em>that holds<\/em> the fuel line<\/li>\n\n\n\n<li>Remove the bolt <em>while you hold<\/em> the line<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Your choice as a writer. Make it matter. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Switch the pump on.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Great, and how am I going to do that?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O wait, you mean:<br>Set the pump switch in &#8220;on&#8221; position.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">There is an precise list of nouns that you may not use as verbs.<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Switch is NOT<br>&#8211; to switch <br>but <br>&#8211; he device that is a switch. <\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">The Software Parallel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Software faces the same challenge. We use terms like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;data&#8221; for both information and data types<\/li>\n\n\n\n<li>&#8220;process&#8221; for both actions and system processes<\/li>\n\n\n\n<li>&#8220;status&#8221; for both states and messages<\/li>\n\n\n\n<li>&#8220;result&#8221; for both outcomes and return values<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Nederlands to the rescue<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I use Dutch words to name variables if I find the English version too confusion. Sometimes I forget and or don&#8217;t care or want to make my code look &#8220;international&#8221; and that is when the crap can start happening.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Takeaway<\/h2>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background wp-block-paragraph\" style=\"border-left-color:var(--wp--preset--color--vivid-cyan-blue);border-left-width:4px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\"><strong>Technical communication isn&#8217;t just about conveying information &#8211; it&#8217;s about eliminating every possible misinterpretation.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My AI now works perfectly. All because I choose better words and spotted the nested column.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:italic;font-weight:100\">Sometimes the most advanced fix is the simplest one.<\/p>","protected":false},"excerpt":{"rendered":"<p>Yesterday I spent 8 hours debugging a broken AI system.The symptom: searches for &#8220;Keytruda&#8221; (a rather unique word) returned no results, despite the database containing clear information about this medication. The cause? A database column named &#8220;content&#8221; that stored content, configured through a parameter called &#8220;Content Column Name.&#8221;My confusion caused the json content to become [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4489,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[9,20,41],"tags":[],"class_list":["post-4486","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-airplanes","category-internet","category-synology"],"_links":{"self":[{"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/posts\/4486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/comments?post=4486"}],"version-history":[{"count":14,"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/posts\/4486\/revisions"}],"predecessor-version":[{"id":4506,"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/posts\/4486\/revisions\/4506"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/media\/4489"}],"wp:attachment":[{"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/media?parent=4486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/categories?post=4486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rent-a-pilot.nl\/nl\/wp-json\/wp\/v2\/tags?post=4486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}