1<!DOCTYPE html> 2<html lang="en-US" class="no-js"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <link rel="profile" href="https://gmpg.org/xfn/11"> 7 <link rel="pingback" href="http://david.carter-tod.com/wp/xmlrpc.php"> 8
8<script> 9(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement); 10//# sourceURL=twentyfifteen_javascript_detection 11</script>
11 12<title>featured – A poke with a sharp stick</title> 13<meta name='robots' content='max-image-preview:large' /> 14 <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> 15 <link rel='dns-prefetch' href='//secure.gravatar.com' /> 16<link rel='dns-prefetch' href='//v0.wordpress.com' /> 17<link rel="alternate" type="application/rss+xml" title="A poke with a sharp stick » Feed" href="http://david.carter-tod.com/wp/feed/" /> 18<link rel="alternate" type="application/rss+xml" title="A poke with a sharp stick » Comments Feed" href="http://david.carter-tod.com/wp/comments/feed/" /> 19<link rel="alternate" type="application/rss+xml" title="A poke with a sharp stick » featured Tag Feed" href="http://david.carter-tod.com/wp/tag/featured/feed/" />
20<script> 21window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/david.carter-tod.com\/wp\/wp-includes\/js\/wp-emoji-release.min.js?ver=e43ca2e08514a658ca6b2df4078bb377"}}; 22/*! This file is auto-generated */ 23!function(s,n){var o,i,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); 24</script>
24 25<link rel='stylesheet' id='twentyfifteen-jetpack-css' href='http://david.carter-tod.com/wp/wp-content/plugins/jetpack/modules/theme-tools/compat/twentyfifteen.css?ver=11.9.3' media='all' /> 26<style id='wp-emoji-styles-inline-css'> 27 28 img.wp-smiley, img.emoji { 29 display: inline !important; 30 border: none !important; 31 box-shadow: none !important; 32 height: 1em !important; 33 width: 1em !important; 34 margin: 0 0.07em !important; 35 vertical-align: -0.1em !important; 36 background: none !important; 37 padding: 0 !important; 38 } 39</style> 40<link rel='stylesheet' id='wp-block-library-css' href='http://david.carter-tod.com/wp/wp-includes/css/dist/block-library/style.min.css?ver=e43ca2e08514a658ca6b2df4078bb377' media='all' /> 41<style id='wp-block-library-inline-css'> 42.has-text-align-justify{text-align:justify;} 43</style> 44<style id='wp-block-library-theme-inline-css'> 45.wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} 46</style> 47<style id='classic-theme-styles-inline-css'> 48/*! This file is auto-generated */ 49.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 50</style> 51<link rel='stylesheet' id='mediaelement-css' href='http://david.carter-tod.com/wp/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' media='all' /> 52<link rel='stylesheet' id='wp-mediaelement-css' href='http://david.c
52arter-tod.com/wp/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=e43ca2e08514a658ca6b2df4078bb377' media='all' /> 53<style id='global-styles-inline-css'> 54:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--dark-gray: #111;--wp--preset--color--light-gray: #f1f1f1;--wp--preset--color--yellow: #f4ca16;--wp--preset--color--dark-brown: #352712;--wp--preset--color--medium-pink: #e53b51;--wp--preset--color--light-pink: #ffe5d1;--wp--preset--color--dark-purple: #2e2256;--wp--preset--color--purple: #674970;--wp--preset--color--blue-gray: #22313f;--wp--preset--color--bright-blue: #55c3dc;--wp--preset--color--light-blue: #e9f2f9;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
54--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--gradient--dark-gray-gradient-gradient: linear-gradient(90deg, rgba(17,17,17,1) 0%, rgba(42,42,42,1) 100%);--wp--preset--gradient--light-gray-gradient: linear-gradient(90deg, rgba(241,241,241,1) 0%, rgba(215,215,215,1) 100%);--wp--preset--gradient--white-gradient: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(230,230,230,1) 100%);--wp--preset--gradient--yellow-gradient: linear-gradient(90deg, rgba(244,202,22,1) 0%, rgba(205,168,10,1) 100%);--wp--preset--gradient--dark-brown-gradient: linear-gradient(90deg, rgba(53,39,18,1) 0%, rgba(91,67,31,1) 100%);--wp--preset--gradient--medium-pink-gradient: linear-gradient(90deg, rgba(229,59,81,1) 0%, rgba(209,28,51,1) 100%);--wp--preset--gradient--light-pink-gradient: linear-gradient(90deg, rgba(255,229,209,1) 0%, rgba(255,200,158,1) 100%);--wp--preset--gradient--dark-purple-gradient: linear-gradient(90deg, rgba(46,34,86,1) 0%, rgba(66,48,123,1) 100%);--wp--preset--gradient--purple-gradient: linear-gradient(90deg, rgba(103,73,112,1) 0%, rgba(131,93,143,1) 100%);--wp--preset--gradient--blue-gray-gradient: linear-gradient(90deg, rgba(34,49,63,1) 0%, rgba(52,75,96,1) 100%);--wp--preset--gradient--bright-blue-gradient: linear-gradient(90deg, rgba(85,195,220,1) 0%, rgba(43,180,211,1) 100%);--wp--preset--gradient--light-blue-gradient: linear-gradient(90deg, rgba(233,242,249,1) 0%, rgba(193,218,238,1) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
54.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 55:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 56:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 57:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 58</style> 59<link rel='stylesheet' id='twentyfifteen-fonts-css' href='http://david.carter-tod.com/wp/wp-content/themes/twentyfifteen/assets/fonts/noto-sans-plus-noto-serif-plus-inconsolata.css?ver=20230328' media='all' /> 60<link rel='stylesheet' id='genericons-css' href='http://david.carter-tod.com/wp/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css?ver=3.1' media='all' /> 61<link rel='stylesheet' id='twentyfifteen-style-css' href='http://david.carter-tod.com/wp/wp-content/themes/twentyfifteen/style.css?ver=20260819' media='all' /> 62<style id='twentyfifteen-style-inline-css'> 63 64 /* Custom Header Background Color */ 65 body:before, 66 .site-header { 67 background-color: #f7f7f7; 68 } 69 70 @media screen and (min-width: 59.6875em) { 71 .site-header, 72 .secondary { 73 background-color: transparent; 74 } 75 76 .widget button, 77 .widget input[type="button"], 78 .widget input[type="reset"], 79 .widget input[type="submit"], 80 .widget_calendar tbody a, 81 .widget_calendar tbody a:hover, 82 .widget_calendar tbody a:focus { 83 color: #f7f7f7; 84 } 85 } 86 87 88 /* Custom Sidebar Text Color */ 89 .site-title a, 90 .site-description, 91 .secondary-toggle:before { 92 color: #000000; 93 } 94 95 .site-title a:hover, 96 .site-title a:focus { 97 color: rgba( 0, 0, 0, 0.7); 98 } 99 100 .secondary-toggle { 101 border-color: rgba( 0, 0, 0, 0.1); 102 } 103 104 .secondary-toggle:hover, 105 .secondary-toggle:focus { 106 border-color: rgba( 0, 0, 0, 0.3); 107 } 108 109 .site-title a { 110 outline-color: rgba( 0, 0, 0, 0.3); 111 } 112 113 @media screen and (min-width: 59.6875em) { 114 .secondary a, 115 .dropdown-toggle:after, 116 .widget-title, 117 .widget blockquote cite, 118 .widget blockquote small { 119 color: #000000; 120 } 121 122 .widget button, 123 .widget input[type="button"], 124 .widget input[type="reset"], 125 .widget input[type="submit"], 126 .widget_calendar tbody a { 127 background-color: #000000; 128 } 129 130 .textwidget a { 131 border-color: #000000; 132 } 133 134 .secondary a:hover, 135 .secondary a:focus, 136 .main-navigation .menu-item-description, 137 .widget, 138 .widget blockquote, 139 .widget .wp-caption-text, 140 .widget .gallery-caption { 141 color: rgba( 0, 0, 0, 0.7); 142 } 143 144 .widget button:hover, 145 .widget button:focus, 146 .widget input[type="button"]:hover, 147 .widget input[type="button"]:focus, 148 .widget input[type="reset"]:hover, 149 .widget input[type="reset"]:focus, 150 .widget input[type="submit"]:hover, 151 .widget input[type="submit"]:focus, 152 .widget_calendar tbody a:hover, 153 .widget_calendar tbody a:focus { 154 background-color: rgba( 0, 0, 0, 0.7); 155 } 156 157 .widget blockquote { 158 border-color: rgba( 0, 0, 0, 0.7); 159 } 160 161 .main-navigation ul, 162 .main-navigation li, 163 .secondary-toggle, 164 .widget input, 165 .widget textarea,
166 .widget table, 167 .widget th, 168 .widget td, 169 .widget pre, 170 .widget li, 171 .widget_categories .children, 172 .widget_nav_menu .sub-menu, 173 .widget_pages .children, 174 .widget abbr[title] { 175 border-color: rgba( 0, 0, 0, 0.1); 176 } 177 178 .dropdown-toggle:hover, 179 .dropdown-toggle:focus, 180 .widget hr { 181 background-color: rgba( 0, 0, 0, 0.1); 182 } 183 184 .widget input:focus, 185 .widget textarea:focus { 186 border-color: rgba( 0, 0, 0, 0.3); 187 } 188 189 .sidebar a:focus, 190 .dropdown-toggle:focus { 191 outline-color: rgba( 0, 0, 0, 0.3); 192 } 193 } 194 195</style> 196<link rel='stylesheet' id='twentyfifteen-block-style-css' href='http://david.carter-tod.com/wp/wp-content/themes/twentyfifteen/css/blocks.css?ver=20240715' media='all' /> 197<link rel='stylesheet' id='upw_theme_standard-css' href='http://david.carter-tod.com/wp/wp-content/plugins/ultimate-posts-widget/css/upw-theme-standard.min.css?ver=e43ca2e08514a658ca6b2df4078bb377' media='all' /> 198<link rel='stylesheet' id='social-logos-css' href='http://david.carter-tod.com/wp/wp-content/plugins/jetpack/_inc/social-logos/social-logos.min.css?ver=11.9.3' media='all' /> 199<link rel='stylesheet' id='jetpack_css-css' href='http://david.carter-tod.com/wp/wp-content/plugins/jetpack/css/jetpack.css?ver=11.9.3' media='all' />
200<script src="http://david.carter-tod.com/wp/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 200
200
201<script src="http://david.carter-tod.com/wp/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
vendor: 1 bytes, line 201
201
202<script id="twentyfifteen-script-js-extra"> 203var screenReaderText = {"expand":"<span class=\"screen-reader-text\">expand child menu<\/span>","collapse":"<span class=\"screen-reader-text\">collapse child menu<\/span>"}; 204</script>
vendor: 1 bytes, line 204
204
205<script src="http://david.carter-tod.com/wp/wp-content/themes/twentyfifteen/js/functions.js?ver=20250729" id="twentyfifteen-script-js" defer data-wp-strategy="defer"></script>
205 206<link rel="https://api.w.org/" href="http://david.carter-tod.com/wp/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="http://david.carter-tod.com/wp/wp-json/wp/v2/tags/12" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://david.carter-tod.com/wp/xmlrpc.php?rsd" /> 207 208 <style>img#wpstats{display:none}</style> 209 <style id="twentyfifteen-header-css"> 210 .site-header { 211 212 /* 213 * No shorthand so the Customizer can override individual properties. 214 * @see https://core.trac.wordpress.org/ticket/31460 215 */ 216 background-image: url(http://david.carter-tod.com/wp/wp-content/uploads/2020/03/cropped-IMG_20180731_063542893_HDRb.jpg); 217 background-repeat: no-repeat; 218 background-position: 50% 50%; 219 -webkit-background-size: cover; 220 -moz-background-size: cover; 221 -o-background-size: cover; 222 background-size: cover; 223 } 224 225 @media screen and (min-width: 59.6875em) { 226 body:before { 227 228 /* 229 * No shorthand so the Customizer can override individual properties. 230 * @see https://core.trac.wordpress.org/ticket/31460 231 */ 232 background-image: url(http://david.carter-tod.com/wp/wp-content/uploads/2020/03/cropped-IMG_20180731_063542893_HDRb.jpg); 233 background-repeat: no-repeat; 234 background-position: 100% 50%; 235 -webkit-background-size: cover; 236 -moz-background-size: cover; 237 -o-background-size: cover; 238 background-size: cover; 239 border-right: 0; 240 } 241 242 .site-header { 243 background: transparent; 244 } 245 } 246 </style> 247 <style id="custom-background-css"> 248body.custom-background { background-image: url("http://david.carter-tod.com/wp/wp-content/uploads/2020/03/IMG_20180728_154343765_HDRb.jpg"); background-position: center center; background-size: auto; background-repeat: repeat; background-attachment: fixed; } 249</style> 250 251<!-- Jetpack Open Graph Tags --> 252<meta property="og:type" content="website" /> 253<meta property="og:title" content="featured – A poke with a sharp stick" /> 254<meta property="og:url" content="http://david.carter-tod.com/wp/tag/featured/" /> 255<meta property="og:site_name" content="A poke with a sharp stick" /> 256<meta property="og:image" content="https://s0.wp.com/i/blank.jpg" /> 257<meta property="og:image:alt" content="" /> 258<meta property="og:locale" content="en_US" /> 259<meta name="twitter:creator" content="@dtod" /> 260 261<!-- End Jetpack Open Graph Tags --> 262</head> 263 264<body class="archive tag tag-featured tag-12 custom-background wp-embed-responsive wp-theme-twentyfifteen"> 265<div id="page" class="hfeed site"> 266 <a class="skip-link screen-reader-text" href="#content"> 267 Skip to content </a> 268 269 <div id="sidebar" class="sidebar"> 270 <header id="masthead" class="site-header"> 271 <div class="site-branding"> 272 <p class="site-title"><a href="http://david.carter-tod.com/wp/" rel="home" >A poke with a sharp stick</a></p> 273 <p class="site-description">by david tod</p> 274 275 <button class="secondary-toggle">Menu and widgets</button> 276 </div><!-- .site-branding --> 277 </header><!-- .site-header --> 278 279 <div id="secondary" class="secondary"> 280 281 282 283 <div id="widget-area" class="widget-area" role="complementary"> 284 <aside id="text-3" class="widget widget_text"><h2 class="widget-title">About Me</h2> <div class="textwidget"><p>IT Analyst in Southwest VA. Originally from England, born in Liverpool, and brought up mostly in Steyning, West Sussex. Started life as David Tod, but changed my name in 1993. Changed it back in 2015.</p> 285<p>Went to college in at the University of Bristol, lived in Italy and Japan before coming to the U.S. Somehow via an MA in English and PhD work in Instructional Technology, have ended up as an IT Analyst.</p> 286<p>Now living in Blacksburg, Virginia with two lovely daughters.</p> 287<p>If you wish to email me, you’ll notice that I own my last name as a domain, so my email address is my first name at my last name dot com.</p> 288<p><a href="https://mastodon.cloud/@dtod" rel="me">Mastodon</a></p> 289<p>On Twitter at <a href="https://twitter.com/dtod">https://twitter.com/dtod</a></p> 290<p>LinkedIn: <a href="https://www.linkedin.com/in/david-tod-8493bb4/">https://www.linkedin.com/in/david-tod-8493bb4/</a></p> 291</div> 292 </aside><aside id="categories-3" class="widget widget_categories"><h2 class="widget-title">Categories</h2><nav aria-label="Categories"> 293 <ul> 294 <li class="cat-item cat-item-2">
294<a href="http://david.carter-tod.com/wp/category/blackboard/">Blackboard</a> (7) 295</li> 296 <li class="cat-item cat-item-3"><a href="http://david.carter-tod.com/wp/category/blacksburg/">Blacksburg</a> (16) 297</li> 298 <li class="cat-item cat-item-5"><a href="http://david.carter-tod.com/wp/category/family/">Family</a> (10) 299</li> 300 <li class="cat-item cat-item-9"><a href="http://david.carter-tod.com/wp/category/football/">Football</a> (3) 301</li> 302 <li class="cat-item cat-item-8"><a href="http://david.carter-tod.com/wp/category/soccer/">Soccer</a> (5) 303</li> 304 <li class="cat-item cat-item-1"><a href="http://david.carter-tod.com/wp/category/uncategorized/">Uncategorized</a> (6) 305</li> 306 <li class="cat-item cat-item-4"><a href="http://david.carter-tod.com/wp/category/virginia/">Virginia</a> (12) 307</li> 308 <li class="cat-item cat-item-6"><a href="http://david.carter-tod.com/wp/category/work/">Work</a> (50) 309</li> 310 </ul> 311 312 </nav></aside> </div><!-- .widget-area --> 313 314 </div><!-- .secondary --> 315 316 </div><!-- .sidebar --> 317 318 <div id="content" class="site-content"> 319 320 <section id="primary" class="content-area"> 321 <main id="main" class="site-main"> 322 323 324 <header class="page-header"> 325 <h1 class="page-title">Tag: <span>featured</span></h1> </header><!-- .page-header --> 326 327 328<article id="post-279" class="post-279 post type-post status-publish format-standard has-post-thumbnail hentry category-blackboard tag-featured"> 329 330 <a class="post-thumbnail" href="http://david.carter-tod.com/wp/2015/07/20/bbworld-2015/" aria-hidden="true"> 331 <img width="300" height="300" src="http://david.carter-tod.com/wp/wp-content/uploads/2015/07/bbworld.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="BBWorld 2015" decoding="async" fetchpriority="high" srcset="http://david.carter-tod.com/wp/wp-content/uploads/2015/07/bbworld.png 300w, http://david.carter-tod.com/wp/wp-content/uploads/2015/07/bbworld-150x150.png 150w" sizes="(max-width: 300px) 100vw, 300px" /> </a> 332 333 334 <header class="entry-header"> 335 <h2 class="entry-title"><a href="http://david.carter-tod.com/wp/2015/07/20/bbworld-2015/" rel="bookmark">BBWorld 2015</a></h2> </header><!-- .entry-header --> 336 337 <div class="entry-content"> 338 <p>Just arrived at the hotel. DevCon starts tomorrow.</p> 339<p>I’m in a bit of a bad mood. The drive up was horrendous. Dense traffic the whole way from Blacksburg, with multiple slow-downs all the way, and stoppages at Staunton and of course on 95 from Fredericksburg on up. Near DC it just got worse, but really from Roanoke, I was never more than a hundred yards from cars and trucks <em>the whole way</em>.</p> 340<p>I got here around 7pm. Self-parked my car, which was interesting. That’s around the back. The first set of elevators in the parking lot didn’t work and you have to walk a way and go down a floor to get to the front desk. Definitely felt like a second class citizen. Oh, and parking is $26 a day, which was <em>not</em> mentioned on my reservation.</p> 341<p>At 9pm it was still over 90 degrees outside and incredibly humid. DC is a swamp and Vegas is an oven. I’m not sure why Blackboard chooses these places.</p> 342<p>Back to my room to relax and my TV isn’t working. The engineer had to reboot it at least three times. Yes, that’s reboot, not turn if off and on again.</p> 343<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" data-shared="" class="share-email sd-button share-icon" href="mailto:?subject=%5BShared%20Post%5D%20BBWorld%202015&body=http%3A%2F%2Fdavid.carter-tod.com%2Fwp%2F2015%2F07%2F20%2Fbbworld-2015%2F&share=email" target="_blank" title="Click to email a link to a friend" data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="78e8452f34" data-email-sh
343are-track-url="http://david.carter-tod.com/wp/2015/07/20/bbworld-2015/?share=email"><span>Email</span></a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" data-shared="sharing-twitter-279" class="share-twitter sd-button share-icon" href="http://david.carter-tod.com/wp/2015/07/20/bbworld-2015/?share=twitter" target="_blank" title="Click to share on Twitter" ><span>Twitter</span></a></li><li class="share-reddit"><a rel="nofollow noopener noreferrer" data-shared="" class="share-reddit sd-button share-icon" href="http://david.carter-tod.com/wp/2015/07/20/bbworld-2015/?share=reddit" target="_blank" title="Click to share on Reddit" ><span>Reddit</span></a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" data-shared="sharing-facebook-279" class="share-facebook sd-button share-icon" href="http://david.carter-tod.com/wp/2015/07/20/bbworld-2015/?share=facebook" target="_blank" title="Click to share on Facebook" ><span>Facebook</span></a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;width:150px;"><ul style="background-image:none;"><li class="share-print"><a rel="nofollow noopener noreferrer" data-shared="" class="share-print sd-button share-icon" href="http://david.carter-tod.com/wp/2015/07/20/bbworld-2015/" target="_blank" title="Click to print" ><span>Print</span></a></li><li class="share-end"></li></ul></div></div></div></div></div> </div><!-- .entry-content --> 344 345 346 <footer class="entry-footer"> 347 <span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="http://david.carter-tod.com/wp/2015/07/20/bbworld-2015/" rel="bookmark"><time class="entry-date published" datetime="2015-07-20T03:11:12+01:00">July 20, 2015</time><time class="updated" datetime="2016-04-20T16:16:38+01:00">April 20, 2016</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="http://david.carter-tod.com/wp/category/blackboard/" rel="category tag">Blackboard</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="http://david.carter-tod.com/wp/tag/featured/" rel="tag">featured</a></span> </footer><!-- .entry-footer --> 348 349</article><!-- #post-279 --> 350 351<article id="post-175" class="post-175 post type-post status-publish format-standard has-post-thumbnail hentry category-blacksburg category-virginia tag-featured"> 352 353 <a class="post-thumbnail" href="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/" aria-hidden="true"> 354 <img width="500" height="372" src="http://david.carter-tod.com/wp/wp-content/uploads/2015/06/ignorant-people-500x372.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Emails my daughters’ school might have sent…but didn’t" decoding="async" /> </a> 355 356 357 <header class="entry-header"> 358 <h2 class="entry-title"><a href="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/" rel="bookmark">Emails my daughters’ school might have sent…but didn’t</a></h2> </header><!-- .entry-header --> 359 360 <div class="entry-content"> 361 <h1>I have no clue what’s going on…</h1> 362<p>I’ve always assumed that part of the reason I have no clue what is going on at my daughters’ schools is that we’re in separate households. It’s becoming clearer that no, it’s not that. Our local school system is just pretty awful at communicating with parents….I mean, really, really bad…so bad, you second guess yourself and, as in my case, go into the school offices multiple times every year to make sure that this time they really do have my contact information. <a href="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/#more-175" class="more-link">Continue reading <span class="screen-reader-text">Emails my daughters’ school might have sent…but didn’t</span></a></p> 363<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" data-shared="" class="share-email sd-button share-icon" href="mailto:?subject=%5BShared%20Post%5D%20Emails%20my%20daughters%27%20school%20might%20have%20sent...but%20didn%27t&body=http%3A%2F%2Fdavid.carter-tod.com%2Fwp%2F2015%2F06%2F30%2Femails-my-daughters-school-might-have-sent-but-didnt%2F&share=email" target="_blank" title="Click to email a link to a friend" data-email-sh
363are-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-share-nonce="6a7fde7c39" data-email-share-track-url="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/?share=email"><span>Email</span></a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" data-shared="sharing-twitter-175" class="share-twitter sd-button share-icon" href="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/?share=twitter" target="_blank" title="Click to share on Twitter" ><span>Twitter</span></a></li><li class="share-reddit"><a rel="nofollow noopener noreferrer" data-shared="" class="share-reddit sd-button share-icon" href="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/?share=reddit" target="_blank" title="Click to share on Reddit" ><span>Reddit</span></a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" data-shared="sharing-facebook-175" class="share-facebook sd-button share-icon" href="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/?share=facebook" target="_blank" title="Click to share on Facebook" ><span>Facebook</span></a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;width:150px;"><ul style="background-image:none;"><li class="share-print"><a rel="nofollow noopener noreferrer" data-shared="" class="share-print sd-button share-icon" href="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/" target="_blank" title="Click to print" ><span>Print</span></a></li><li class="share-end"></li></ul></div></div></div></div></div> </div><!-- .entry-content --> 364 365 366 <footer class="entry-footer"> 367 <span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="http://david.carter-tod.com/wp/2015/06/30/emails-my-daughters-school-might-have-sent-but-didnt/" rel="bookmark"><time class="entry-date published" datetime="2015-06-30T17:04:59+01:00">June 30, 2015</time><time class="updated" datetime="2016-04-20T14:54:24+01:00">April 20, 2016</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="http://david.carter-tod.com/wp/category/blacksburg/" rel="category tag">Blacksburg</a>, <a href="http://david.carter-tod.com/wp/category/virginia/" rel="category tag">Virginia</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="http://david.carter-tod.com/wp/tag/featured/" rel="tag">featured</a></span> </footer><!-- .entry-footer --> 368 369</article><!-- #post-175 --> 370 371<article id="post-228" class="post-228 post type-post status-publish format-standard has-post-thumbnail hentry category-work tag-featured"> 372 373 <a class="post-thumbnail" href="http://david.carter-tod.com/wp/2014/10/03/federal-gsa-per-diem-calculator/" aria-hidden="true"> 374 <img width="665" height="372" src="http://david.carter-tod.com/wp/wp-content/uploads/2016/04/perdiemcalc-665x372.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Federal GSA Per Diem Calculator" decoding="async" /> </a> 375 376 377 <header class="entry-header"> 378 <h2 class="entry-title"><a href="http://david.carter-tod.com/wp/2014/10/03/federal-gsa-per-diem-calculator/" rel="bookmark">Federal GSA Per Diem Calculator</a></h2> </header><!-- .entry-header --> 379 380 <div class="entry-content"> 381 <p>In my spare time recently I’ve been working on a small programming project, which is now live at <a href="http://www.perdiemcalc.net/">http://www.perdiemcalc.net/</a>. It’s an extension of work I began many years ago when I was at <a href="http://www.wcc.vccs.edu/">Wytheville Community College</a> (WCC).</p> 382<h2>History</h2> 383<p>As I describe on the <a href="http://www.perdiemcalc.net/about.php">About page</a>, the issue I had at WCC was a constant back and forth with my business office as I struggled to get the travel documentation correct for the Per Diem allocation.</p> 384<p><a href="http://commons.wikimedia.org/wiki/File:ME_401_QuickJob.png"><img loading="lazy" decoding="async" class="aligncenter" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/44/ME_401_QuickJob.png/640px-ME_401_QuickJob.png" alt="" width="640" height="199" /></a>Finally I dug into the regulations and wrote a web page with a bunch of JavaScript to make the process easier for me and others at the institution. It turned out to be very useful to other state agencies in Virginia, so it has followed me into my current position and to various urls over time. Around October each year as the rates are due to change, I tend to start hearing from anyone from the Attorney-General’s office to the most obscure agency you can probably think of.</p> 385<p>The genesis of this new version is that some institutions in Virginia have started to use the Federal GSA rates for travel reimbursement and wrote to me to ask for a ver
385sion of the calculator that used these rates. There are a lot more localities in the GSA rates and the pop-up approach I’d used before just wasn’t going to work. It seemed like an opportunity to create something with a much wider audience and do some of the re-architecture that had bubbled in my head for many years. With the permission of my employer I embarked on this as an external project.</p> 386<h2>New Skills</h2> 387<p>Technically, in the very first version it was completely self-contained JavaScript. I’d been tinkering with JavaScript since <a href="http://dailyjs.com/2010/05/24/history-of-javascript-1/">it first was made available for Netscape</a>, and this was a continuation of that work. My initial data structures were pretty naive and I had to include a lot of cross-browser hacks, but it worked. I modernized and simplified over the years, but the basic approach didn’t change.</p> 388<p>This new version, however, is more or less a complete rewrite. I used it as an opportunity to refresh some skills and revisit the state of the art in some technologies.</p> 389<p><a title="agile programming - i'm glad it has a name by Acid Pix, on Flickr" href="https://www.flickr.com/photos/acidpix/4349033562"><img loading="lazy" decoding="async" class="alignright" src="https://farm5.staticflickr.com/4059/4349033562_b0042fe8f1_n.jpg" alt="agile programming - i'm glad it has a name" width="320" height="240" /></a></p> 390<p>My first rewrite was on Google App Engine or more accurately as a Google Apps Script. I got it working pretty well, but ran into some limitations in terms of deployment. I couldn’t for example, deploy it to a custom url. I junked some of that work, but in the process became more familiar with json and how I wanted the design to work.</p> 391<p>In the current version there’s some use of <a href="http://jquery.com/">JQuery</a> and a fair amount of <a href="http://www.w3schools.com/json/">json</a>. I’ve also taken the raw data from the GSA and put it into a backend database. That part is a simple MySQL backend, with PHP for the dynamic requests. The code is also written in such a way that I can extend it to other data sets and much more easily update the data as new rates are issued each year.</p> 392<p>Other technologies I’m tinkering with include Google Analytics (although I have a lot of experience with that already), and Google AdSense. I’m also tracking my work in <a href="http://trello.com">Trello</a>. I don’t have the code in version control, but I do have a test and production instance for my development work, and keep the code on Dropbox. I’ve become more familiar with my web host in the process too.</p> 393<h2>Looking Forward</h2> 394<p>Nothing is ever finished. I have a feature card in Trello prompting me to add Recent Searches as an option for people. At the same time, I’m always looking for something to subtract, to simplify, or to uncomplicate.</p> 395<p>I’ve not entirely worked out a support model yet for questions, comments and feedback. For now, I’m happy with less being more. I welcome feedback, but this is a solid design that has worked well over the years. I’m curious to see if people will find this useful. If they do, that’s great, and even if they don’t I’m glad I had a reason to learn some new things.</p> 396<div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-email"><a rel="nofollow noopener noreferrer" data-shared="" class="share-email sd-button share-icon" href="mailto:?subject=%5BShared%20Post%5D%20Federal%20GSA%20Per%20Diem%20Calculator&body=http%3A%2F%2Fdavid.carter-tod.com%2Fwp%2F2014%2F10%2F03%2Ffederal-gsa-per-diem-calculator%2F&share=email" target="_blank" title="Click to email a link to a friend" data-email-share-error-title="Do you have email set up?" data-email-share-error-text="If you're having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself." data-email-sh
396are-nonce="d638a4d516" data-email-share-track-url="http://david.carter-tod.com/wp/2014/10/03/federal-gsa-per-diem-calculator/?share=email"><span>Email</span></a></li><li class="share-twitter"><a rel="nofollow noopener noreferrer" data-shared="sharing-twitter-228" class="share-twitter sd-button share-icon" href="http://david.carter-tod.com/wp/2014/10/03/federal-gsa-per-diem-calculator/?share=twitter" target="_blank" title="Click to share on Twitter" ><span>Twitter</span></a></li><li class="share-reddit"><a rel="nofollow noopener noreferrer" data-shared="" class="share-reddit sd-button share-icon" href="http://david.carter-tod.com/wp/2014/10/03/federal-gsa-per-diem-calculator/?share=reddit" target="_blank" title="Click to share on Reddit" ><span>Reddit</span></a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" data-shared="sharing-facebook-228" class="share-facebook sd-button share-icon" href="http://david.carter-tod.com/wp/2014/10/03/federal-gsa-per-diem-calculator/?share=facebook" target="_blank" title="Click to share on Facebook" ><span>Facebook</span></a></li><li><a href="#" class="sharing-anchor sd-button share-more"><span>More</span></a></li><li class="share-end"></li></ul><div class="sharing-hidden"><div class="inner" style="display: none;width:150px;"><ul style="background-image:none;"><li class="share-print"><a rel="nofollow noopener noreferrer" data-shared="" class="share-print sd-button share-icon" href="http://david.carter-tod.com/wp/2014/10/03/federal-gsa-per-diem-calculator/" target="_blank" title="Click to print" ><span>Print</span></a></li><li class="share-end"></li></ul></div></div></div></div></div> </div><!-- .entry-content --> 397 398 399 <footer class="entry-footer"> 400 <span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="http://david.carter-tod.com/wp/2014/10/03/federal-gsa-per-diem-calculator/" rel="bookmark"><time class="entry-date published" datetime="2014-10-03T01:18:01+01:00">October 3, 2014</time><time class="updated" datetime="2016-04-20T16:19:52+01:00">April 20, 2016</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="http://david.carter-tod.com/wp/category/work/" rel="category tag">Work</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="http://david.carter-tod.com/wp/tag/featured/" rel="tag">featured</a></span> </footer><!-- .entry-footer --> 401 402</article><!-- #post-228 --> 403 404 </main><!-- .site-main --> 405 </section><!-- .content-area --> 406 407 408 </div><!-- .site-content --> 409 410 <footer id="colophon" class="site-footer"> 411 <div class="site-info"> 412 <a href="https://wordpress.org/" class="imprint"> 413 Proudly powered by WordPress </a> 414 </div><!-- .site-info --> 415 </footer><!-- .site-footer --> 416 417</div><!-- .site --> 418
419<script type="speculationrules"> 420{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/wp\/*"},{"not":{"href_matches":["\/wp\/wp-*.php","\/wp\/wp-admin\/*","\/wp\/wp-content\/uploads\/*","\/wp\/wp-content\/*","\/wp\/wp-content\/plugins\/*","\/wp\/wp-content\/themes\/twentyfifteen\/*","\/wp\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 421</script>
421 422 423
423<script type="text/javascript"> 424 window.WPCOM_sharing_counts = {"http:\/\/david.carter-tod.com\/wp\/2015\/07\/20\/bbworld-2015\/":279,"http:\/\/david.carter-tod.com\/wp\/2015\/06\/30\/emails-my-daughters-school-might-have-sent-but-didnt\/":175,"http:\/\/david.carter-tod.com\/wp\/2014\/10\/03\/federal-gsa-per-diem-calculator\/":228}; 425 </script>
425 426
426<script id="sharing-js-js-extra"> 427var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"}; 428</script>
vendor: 1 bytes, line 428
428
429<script src="http://david.carter-tod.com/wp/wp-content/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js?ver=11.9.3" id="sharing-js-js"></script>
vendor: 1 bytes, line 429
429
430<script id="sharing-js-js-after"> 431var windowOpen; 432 ( function () { 433 function matches( el, sel ) { 434 return !! ( 435 el.matches && el.matches( sel ) || 436 el.msMatchesSelector && el.msMatchesSelector( sel ) 437 ); 438 } 439 440 document.body.addEventListener( 'click', function ( event ) { 441 if ( ! event.target ) { 442 return; 443 } 444 445 var el; 446 if ( matches( event.target, 'a.share-twitter' ) ) { 447 el = event.target; 448 } else if ( event.target.parentNode && matches( event.target.parentNode, 'a.share-twitter' ) ) { 449 el = event.target.parentNode; 450 } 451 452 if ( el ) { 453 event.preventDefault(); 454 455 // If there's another sharing window open, close it. 456 if ( typeof windowOpen !== 'undefined' ) { 457 windowOpen.close(); 458 } 459 windowOpen = window.open( el.getAttribute( 'href' ), 'wpcomtwitter', 'menubar=1,resizable=1,width=600,height=350' ); 460 return false; 461 } 462 } ); 463 } )(); 464var windowOpen; 465 ( function () { 466 function matches( el, sel ) { 467 return !! ( 468 el.matches && el.matches( sel ) || 469 el.msMatchesSelector && el.msMatchesSelector( sel ) 470 ); 471 } 472 473 document.body.addEventListener( 'click', function ( event ) { 474 if ( ! event.target ) { 475 return; 476 } 477 478 var el; 479 if ( matches( event.target, 'a.share-facebook' ) ) { 480 el = event.target; 481 } else if ( event.target.parentNode && matches( event.target.parentNode, 'a.share-facebook' ) ) { 482 el = event.target.parentNode; 483 } 484 485 if ( el ) { 486 event.preventDefault(); 487 488 // If there's another sharing window open, close it. 489 if ( typeof windowOpen !== 'undefined' ) { 490 windowOpen.close(); 491 } 492 windowOpen = window.open( el.getAttribute( 'href' ), 'wpcomfacebook', 'menubar=1,resizable=1,width=600,height=400' ); 493 return false; 494 } 495 } ); 496 } )(); 497</script>
497 498
498<script src='https://stats.wp.com/e-202641.js' defer></script>
498 499
499<script> 500 _stq = window._stq || []; 501 _stq.push([ 'view', {v:'ext',blog:'35258089',post:'0',tz:'1',srv:'david.carter-tod.com',j:'1:11.9.3'} ]); 502 _stq.push([ 'clickTrackerInit', '35258089', '0' ]); 503 </script>
503 504</body> 505</html> 506 507 508<!-- Page supported by LiteSpeed Cache 7.1 on 2026-10-06 11:54:06 -->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.