<!doctype html>

<html lang="en" prefix="og: https://ogp.me/ns#" class="is-header-fixed">

<head>
	<meta charset="UTF-8">
	
	<meta name="viewport" content="width=device-width, initial-scale=1">
				
	<title>Ian O&#039;Byrne — Educator, Researcher, and Writer</title>
	
	
<!-- Search Engine Optimization by Rank Math - https://rankmath.com/ -->
<meta name="description" content="Hi, I&#039;m Ian. I help organizations build real capacity around digital literacy and AI — working with the people who design learning products, set institutional"/>
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
<link rel="canonical" href="https://wiobyrne.com/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Ian O&#039;Byrne — Educator, Researcher, and Writer" />
<meta property="og:description" content="Hi, I&#039;m Ian. I help organizations build real capacity around digital literacy and AI — working with the people who design learning products, set institutional" />
<meta property="og:url" content="https://wiobyrne.com/" />
<meta property="og:site_name" content="Ian O&#039;Byrne" />
<meta property="og:updated_time" content="2026-04-07T11:35:07+00:00" />
<meta property="og:image" content="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp" />
<meta property="og:image:secure_url" content="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp" />
<meta property="og:image:width" content="1000" />
<meta property="og:image:height" content="1000" />
<meta property="og:image:alt" content="Ian O&#039;Byrne" />
<meta property="og:image:type" content="image/webp" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Ian O&#039;Byrne — Educator, Researcher, and Writer" />
<meta name="twitter:description" content="Hi, I&#039;m Ian. I help organizations build real capacity around digital literacy and AI — working with the people who design learning products, set institutional" />
<meta name="twitter:creator" content="@wiobyrne" />
<meta name="twitter:image" content="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp" />
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="&lt;span class=&#039;p-author h-card&#039;&gt;wiobyrne&lt;/span&gt;" />
<meta name="twitter:label2" content="Time to read" />
<meta name="twitter:data2" content="Less than a minute" />
<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://wiobyrne.com/#person","name":"W. Ian O'Byrne","logo":{"@type":"ImageObject","@id":"https://wiobyrne.com/#logo","url":"https://wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp","contentUrl":"https://wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp","caption":"Ian O'Byrne","inLanguage":"en","width":"1000","height":"1000"},"image":{"@type":"ImageObject","@id":"https://wiobyrne.com/#logo","url":"https://wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp","contentUrl":"https://wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp","caption":"Ian O'Byrne","inLanguage":"en","width":"1000","height":"1000"}},{"@type":"WebSite","@id":"https://wiobyrne.com/#website","url":"https://wiobyrne.com","name":"Ian O'Byrne","alternateName":"Digitally Literate","publisher":{"@id":"https://wiobyrne.com/#person"},"inLanguage":"en","potentialAction":{"@type":"SearchAction","target":"https://wiobyrne.com/?s={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"ImageObject","@id":"https://wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp","url":"https://wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp","width":"200","height":"200","inLanguage":"en"},{"@type":"WebPage","@id":"https://wiobyrne.com/#webpage","url":"https://wiobyrne.com/","name":"Ian O&#039;Byrne \u2014 Educator, Researcher, and Writer","datePublished":"2015-06-19T13:17:34+00:00","dateModified":"2026-04-07T11:35:07+00:00","about":{"@id":"https://wiobyrne.com/#person"},"isPartOf":{"@id":"https://wiobyrne.com/#website"},"primaryImageOfPage":{"@id":"https://wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp"},"inLanguage":"en"}]}</script>
<!-- /Rank Math WordPress SEO plugin -->

<link rel='dns-prefetch' href='//secure.gravatar.com' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='preconnect' href='//i0.wp.com' />
<link rel='preconnect' href='//c0.wp.com' />
<link rel="alternate" type="application/rss+xml" title="Ian O&#039;Byrne &raquo; Feed" href="https://wiobyrne.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="Ian O&#039;Byrne &raquo; Comments Feed" href="https://wiobyrne.com/comments/feed/" />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://wiobyrne.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwiobyrne.com%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://wiobyrne.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwiobyrne.com%2F&#038;format=xml" />
<style id='wp-img-auto-sizes-contain-inline-css' type='text/css'>
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id='wp-emoji-styles-inline-css' type='text/css'>

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id='wp-block-library-inline-css' type='text/css'>
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}

/*# sourceURL=wp-block-library-inline-css */
</style>
<style id='wp-block-heading-inline-css' type='text/css'>
h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/heading/style.min.css */
</style>
<style id='wp-block-image-inline-css' type='text/css'>
.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:#5a5a5a40;border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto #5a5a5a40;outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:#5a5a5a40;border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:40px;min-width:40px;padding:0;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:9999999999}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/image/style.min.css */
</style>
<style id='wp-block-latest-posts-inline-css' type='text/css'>
.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-right:0}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/latest-posts/style.min.css */
</style>
<style id='wp-block-columns-inline-css' type='text/css'>
.wp-block-columns{box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns{align-items:normal!important}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/columns/style.min.css */
</style>
<style id='wp-block-group-inline-css' type='text/css'>
.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/group/style.min.css */
</style>
<style id='wp-block-paragraph-inline-css' type='text/css'>
.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/paragraph/style.min.css */
</style>
<style id='wp-block-preformatted-inline-css' type='text/css'>
.wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/preformatted/style.min.css */
</style>
<style id='wp-block-separator-inline-css' type='text/css'>
@charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/separator/style.min.css */
</style>
<style id='wp-block-table-inline-css' type='text/css'>
.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:initial;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:#0000}.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:initial}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:initial}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit}
/*# sourceURL=https://c0.wp.com/c/6.9.4/wp-includes/blocks/table/style.min.css */
</style>

<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.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}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<style id='global-styles-inline-css' type='text/css'>
: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: #ffffff;--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--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 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,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 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%);--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--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 rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}: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;}.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;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
/*# sourceURL=global-styles-inline-css */
</style>

<link rel='stylesheet' id='inline-footnotes-css' href='https://wiobyrne.com/wp-content/plugins/inline-footnotes/public/css/inline-footnotes-public.compressed.css?ver=1.0.0' type='text/css' media='all' />
<link rel='stylesheet' id='webmention-css' href='https://wiobyrne.com/wp-content/plugins/webmention/assets/css/webmention.css?ver=5.7.0' type='text/css' media='all' />
<link rel='stylesheet' id='readme-fonts-css' href='//fonts.googleapis.com/css?family=Noticia+Text:400,400i,700,700i|Open+Sans:700&#038;subset=latin' type='text/css' media='all' />
<link rel='stylesheet' id='bootstrap-css' href='https://wiobyrne.com/wp-content/themes/readme/css/bootstrap.min.css' type='text/css' media='all' />
<link rel='stylesheet' id='fontello-css' href='https://wiobyrne.com/wp-content/themes/readme/css/fonts/fontello/css/fontello.css' type='text/css' media='all' />
<link rel='stylesheet' id='prettify-css' href='https://wiobyrne.com/wp-content/themes/readme/js/google-code-prettify/prettify.css' type='text/css' media='all' />
<link rel='stylesheet' id='uniform-css' href='https://wiobyrne.com/wp-content/themes/readme/js/jquery.uniform/uniform.default.css' type='text/css' media='all' />
<link rel='stylesheet' id='magnific-popup-css' href='https://wiobyrne.com/wp-content/themes/readme/js/jquery.magnific-popup/magnific-popup.css' type='text/css' media='all' />
<link rel='stylesheet' id='fluidbox-css' href='https://wiobyrne.com/wp-content/themes/readme/js/jquery.fluidbox/fluidbox.css' type='text/css' media='all' />
<link rel='stylesheet' id='mediaelement-css' href='https://wiobyrne.com/wp-content/themes/readme/js/mediaelement/mediaelementplayer.min.css' type='text/css' media='all' />
<link rel='stylesheet' id='flexslider-css' href='https://wiobyrne.com/wp-content/themes/readme/js/jquery.flexslider/flexslider.css' type='text/css' media='all' />
<link rel='stylesheet' id='selection-sharer-css' href='https://wiobyrne.com/wp-content/themes/readme/js/selection-sharer/selection-sharer.css' type='text/css' media='all' />
<link rel='stylesheet' id='elastislide-css' href='https://wiobyrne.com/wp-content/themes/readme/js/responsive-image-gallery/elastislide.css' type='text/css' media='all' />
<link rel='stylesheet' id='main-css' href='https://wiobyrne.com/wp-content/themes/readme/css/main.css' type='text/css' media='all' />
<link rel='stylesheet' id='768-css' href='https://wiobyrne.com/wp-content/themes/readme/css/768.css' type='text/css' media='all' />
<link rel='stylesheet' id='992-css' href='https://wiobyrne.com/wp-content/themes/readme/css/992.css' type='text/css' media='all' />
<link rel='stylesheet' id='1200-css' href='https://wiobyrne.com/wp-content/themes/readme/css/1200.css' type='text/css' media='all' />
<link rel='stylesheet' id='1400-css' href='https://wiobyrne.com/wp-content/themes/readme/css/1400.css' type='text/css' media='all' />
<link rel='stylesheet' id='wp-fix-css' href='https://wiobyrne.com/wp-content/themes/readme/css/wp-fix.css' type='text/css' media='all' />
<link rel='stylesheet' id='theme-style-css' href='https://wiobyrne.com/wp-content/themes/readme/style.css' type='text/css' media='all' />
<script type="text/javascript" src="https://c0.wp.com/c/6.9.4/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://c0.wp.com/c/6.9.4/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" id="inline-footnotes-js-extra">
/* <![CDATA[ */
var inlineFootNotesVars = {"hover":""};
//# sourceURL=inline-footnotes-js-extra
/* ]]> */
</script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/plugins/inline-footnotes/public/js/inline-footnotes-public.compressed.js?ver=1.0.0" id="inline-footnotes-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/modernizr.min.js" id="modernizr-js"></script>
<link rel="https://api.w.org/" href="https://wiobyrne.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://wiobyrne.com/wp-json/wp/v2/pages/2040" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://wiobyrne.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 6.9.4" />

<style>
	.inline-footnote,
	.inline-footnote:hover,
	.inline-footnote:active,
	.inline-footnote:visited {
		background-color: ;
		color:  !important;
	}
	.inline-footnote span.footnoteContent {
		background-color: ;
		color:  !important;
	}
</style>

<link rel="shortcut icon" href="http://idevicesinc.com/images/icons/favicon.png">

			
<!-- Body Font -->
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,300italic,400italic&subset=latin">
<style type="text/css">body, input, textarea, select, button { font-family: "Open Sans"; }</style>
			
<!-- Heading Font -->
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,300italic,400italic&subset=latin">
<style type="text/css">h1, h2, h3, h4, h5, h6 { font-family: "Open Sans"; }</style>
			
<!-- Menu Font -->
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,300italic,400italic&subset=latin">
<style type="text/css">.nav-menu { font-family: "Open Sans"; }</style>
			
<!-- Text Logo Font -->
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,300italic,400italic&subset=latin">
<style type="text/css">.site-title { font-family: "Open Sans"; }</style>
			
<!-- Content Width -->
<style type="text/css">.layout-fixed { max-width: 800px; }</style>
			
<!--[if lt IE 9]>
	<script src="https://wiobyrne.com/wp-content/themes/readme/js/ie.js"></script>
<![endif]-->

		<link rel="indieauth-metadata" href="https://wiobyrne.com/wp-json/indieauth/1.0/metadata" />
<link rel="authorization_endpoint" href="https://wiobyrne.com/wp-json/indieauth/1.0/auth" />
<link rel="token_endpoint" href="https://wiobyrne.com/wp-json/indieauth/1.0/token" />
<link rel="icon" href="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?fit=32%2C32&#038;ssl=1" sizes="32x32" />
<link rel="icon" href="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?fit=192%2C192&#038;ssl=1" sizes="192x192" />
<link rel="apple-touch-icon" href="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?fit=180%2C180&#038;ssl=1" />
<meta name="msapplication-TileImage" content="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?fit=270%2C270&#038;ssl=1" />
<link rel="webmention" href="https://wiobyrne.com/wp-json/webmention/1.0/endpoint" />
<style id='core-block-supports-inline-css' type='text/css'>
.wp-container-core-columns-is-layout-9d6595d7{flex-wrap:nowrap;}
/*# sourceURL=core-block-supports-inline-css */
</style>

</head>

<body class="home wp-singular page-template-default page page-id-2040 wp-theme-readme">

    <div id="page" class="hfeed site">
        <header id="masthead" class="site-header" role="banner">
			<h1 class="site-title">
											<a href="https://wiobyrne.com/" rel="home">Ian O'Byrne</a>
									</h1>
			
			
			<nav id="primary-navigation" class="site-navigation primary-navigation" role="navigation">
				<a class="menu-toggle toggle-link"></a>
				
				<div class="nav-menu">
					<ul id="nav" class="menu-custom vs-nav"><li id="menu-item-2245" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2245"><a href="https://wiobyrne.com/start/">Start Here</a>
<ul class="sub-menu">
	<li id="menu-item-2263" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2263"><a href="https://wiobyrne.com/start/">Start Here</a></li>
	<li id="menu-item-2886" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2886"><a href="https://wiobyrne.com/education/">Education</a></li>
	<li id="menu-item-2262" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2262"><a href="https://digitallyliterate.net/cv/">CV</a></li>
</ul>
</li>
<li id="menu-item-7153" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7153"><a href="https://wiobyrne.com/ai-literacy-for-educators/">Courses</a></li>
<li id="menu-item-6720" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6720"><a href="https://wiobyrne.com/collaborate/">Collaborate</a></li>
<li id="menu-item-2049" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2049"><a href="https://wiobyrne.com/blog/">Blog</a></li>
<li id="menu-item-2877" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2877"><a href="https://digitallyliterate.net/newsletter/">Newsletter</a></li>
<li id="menu-item-2878" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2878"><a href="https://digitallyliterate.net/">Digital Garden</a></li>
<li id="menu-item-2055" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2055"><a href="https://wiobyrne.com/contact/">Contact</a></li>
</ul>				</div>
			</nav>
			
									<div class="search-container easing">
							<a class="search-toggle toggle-link"></a>
							
							<div class="search-box" role="search">
								<form class="search-form" method="get" action="https://wiobyrne.com/">
									<label>
										<span class="screen-reader-text">Search for:</span>
										
										<input type="search" name="s" id="search-field" placeholder="type and hit enter &#8230;">
									</label>
									
									<input type="submit" class="search-submit" value="Search">
								</form>
							</div>
						</div>
								
			<div class="social-container">
				<a class="social-toggle toggle-link"></a>
				
							</div>
        </header>
<div id="main" class="site-main">
	<div id="primary" class="content-area">
		<div id="content" class="site-content" role="main">
						
			<div class="layout-fixed">
											<article id="post-2040" class="post post-2040 page type-page status-publish">
																<header class="entry-header" style="display: none;">
									<h1 class="entry-title"><span class='p-name'>Home</span></h1>
								</header>
								
								<div class="entry-content">
									<div class='e-content'>
<div class="wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%"><div class="wp-block-image">
<figure class="aligncenter size-full"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="740" height="740" src="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?resize=740%2C740&#038;ssl=1" alt="Ian O'Brien" class="wp-image-7094" srcset="https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?w=1000&amp;ssl=1 1000w, https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?resize=600%2C600&amp;ssl=1 600w, https://i0.wp.com/wiobyrne.com/wp-content/uploads/2026/03/ian-obyrne-avatar.webp?resize=780%2C780&amp;ssl=1 780w" sizes="(max-width: 740px) 100vw, 740px" /></figure>
</div></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:80%">
<p><strong>Hi, I&#8217;m Ian.</strong> I help organizations build real capacity around digital literacy and AI — working with the people who design learning products, set institutional policy, and develop the frameworks educators actually use.</p>



<p>I&#8217;ve co-authored the <a href="https://foundation.mozilla.org/en/initiatives/web-literacy/" rel="nofollow noopener" target="_blank">Mozilla Web Literacy Framework</a> and the <a href="https://ncte.org/statement/nctes-definition-literacy-digital-age/" rel="nofollow noopener" target="_blank">NCTE Definition of Literacy in the Digital Age</a>. Associate Professor at the College of Charleston. 15 years at the intersection of technology, literacy, and learning. <a href="https://wiobyrne.com/education/">Full background →</a></p>



<p><a href="https://wiobyrne.com/collaborate/"><strong>Work With Me</strong></a> · <a href="https://wiobyrne.com/start/"><strong>Start Here</strong></a> · <a href="https://wiobyrne.com/education/"><strong>CV &amp; Research</strong></a></p>
</div>
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Recent Writing</h2>


<ul class="wp-block-latest-posts__list has-dates wp-block-latest-posts"><li><a class="wp-block-latest-posts__post-title" href="https://wiobyrne.com/karpathy-found-the-pattern/"><span class='p-name'>Karpathy Found the Pattern. Educators Have Been Teaching It for Years.</span></a><time datetime="2026-04-25T15:10:44+00:00" class="wp-block-latest-posts__post-date">April 25, 2026</time><div class="wp-block-latest-posts__post-excerpt">Andrej Karpathy is a well-known AI researcher and educator. He helped build early AI systems at OpenAI and led AI work at Tesla. For me, what makes him stand out isn’t just the tech, it&#8217;s how clearly he explains it. He’s one of the people helping the rest of us understand what this new wave&#8230; <span class="more"><a class="more-link" href="https://wiobyrne.com/karpathy-found-the-pattern/">Continue reading <span class="meta-nav">&#8594;</span></a></span></div></li>
<li><a class="wp-block-latest-posts__post-title" href="https://wiobyrne.com/writing-is-a-process-so-is-losing-your-voice/"><span class='p-name'>Writing Is a Process. So Is Losing Your Voice.</span></a><time datetime="2026-04-24T14:46:06+00:00" class="wp-block-latest-posts__post-date">April 24, 2026</time><div class="wp-block-latest-posts__post-excerpt">I&#8217;ve been getting a lot of great feedback on my last post about building an AI model of my voice. One in particular surfaces a tension I&#8217;ve been having while working with generative AI. Why would I want to create a model that knows how I write? I&#8217;m still confused as to the &#8216;why&#8217; —&#8230; <span class="more"><a class="more-link" href="https://wiobyrne.com/writing-is-a-process-so-is-losing-your-voice/">Continue reading <span class="meta-nav">&#8594;</span></a></span></div></li>
<li><a class="wp-block-latest-posts__post-title" href="https://wiobyrne.com/i-trained-a-local-ai-to-write-like-me/"><span class='p-name'>I Trained a Local AI to Write Like Me</span></a><time datetime="2026-04-16T16:49:32+00:00" class="wp-block-latest-posts__post-date">April 16, 2026</time><div class="wp-block-latest-posts__post-excerpt">A few weeks ago, I pulled up a list of models running on my home server and noticed one I&#8217;d half-forgotten. It was called ian-writer, it was nine gigabytes, and its entire purpose was to sound like me. That&#8217;s a strange thing to sit with. I&#8217;ve been publishing the Digitally Literate newsletter for over a&#8230; <span class="more"><a class="more-link" href="https://wiobyrne.com/i-trained-a-local-ai-to-write-like-me/">Continue reading <span class="meta-nav">&#8594;</span></a></span></div></li>
<li><a class="wp-block-latest-posts__post-title" href="https://wiobyrne.com/audit-your-local-ai-setup/"><span class='p-name'>What Are You Actually Running? How to Audit Your Local AI Setup</span></a><time datetime="2026-04-15T13:36:46+00:00" class="wp-block-latest-posts__post-date">April 15, 2026</time><div class="wp-block-latest-posts__post-excerpt">A methodology for getting honest about what&#8217;s on your machine — before it gets complicated. Most people who run local AI tools have, at some point, lost track of what they&#8217;ve actually built. Not because they weren&#8217;t paying attention. Because the thing grows. I&#8217;d been building and accumulating files for months. An IAN.MD, I use&#8230; <span class="more"><a class="more-link" href="https://wiobyrne.com/audit-your-local-ai-setup/">Continue reading <span class="meta-nav">&#8594;</span></a></span></div></li>
<li><a class="wp-block-latest-posts__post-title" href="https://wiobyrne.com/building-flynn/"><span class='p-name'>Building Flynn: A Telegram Bot for Obsidian Using Local AI</span></a><time datetime="2026-04-14T12:57:05+00:00" class="wp-block-latest-posts__post-date">April 14, 2026</time><div class="wp-block-latest-posts__post-excerpt">This is the technical companion to I Built an AI Chief of Staff to Manage My Life Across Five Domains. That post covers the why. This one covers the how. Flynn is a Telegram bot that captures notes from your phone and routes them into your Obsidian vault using a local AI model. It runs&#8230; <span class="more"><a class="more-link" href="https://wiobyrne.com/building-flynn/">Continue reading <span class="meta-nav">&#8594;</span></a></span></div></li>
</ul>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div class="wp-block-group has-very-light-gray-background-color has-background" style="padding-top:1.5rem;padding-bottom:1.5rem;padding-left:1.5rem;padding-right:1.5rem"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h3 class="wp-block-heading">Digitally Literate</h3>



<p>A free weekly newsletter on digital literacy and AI — written for educators, researchers, and anyone trying to think clearly about technology. Over ten years. 400+ issues. No hype.</p>



<p><a href="https://digitallyliterate.net" rel="nofollow noopener" target="_blank"><strong>Browse the archive →</strong></a>&nbsp;&nbsp;·&nbsp;&nbsp;<a href="https://buttondown.email/digitallyliterate" rel="nofollow noopener" target="_blank"><strong>Subscribe free →</strong></a></p>
</div></div>



<div style="display:none" aria-hidden="true">
<a rel="me nofollow noopener" href="https://mastodon.social/@Wiobyrne" target="_blank">Mastodon</a>
<a rel="me nofollow noopener" href="https://bsky.app/profile/wiobyrne.bsky.social" target="_blank">Bluesky</a>
<a rel="me nofollow noopener" href="https://digitallyliterate.net/" target="_blank">Digital Garden</a>
</div>

</div>									
																	</div>
							</article>
							
							

<div id="comments" class="comments-area">
		
	
	</div>									</div>
		</div>
	</div>
</div>

        <footer id="colophon" class="site-footer" role="contentinfo">
						
			<div class="site-info">
				<p>
					<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.				</p>
			</div>
		</footer>
	</div>
    
	
	<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/readme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/fastclick.js" id="fastclick-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/jquery.fitvids.js" id="fitvids-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/google-code-prettify/prettify.js" id="prettify-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/jquery.validate.min.js" id="validate-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/jquery.uniform/jquery.uniform.min.js" id="uniform-js"></script>
<script type="text/javascript" src="https://c0.wp.com/c/6.9.4/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/jquery.isotope.min.js" id="isotope-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/jquery.magnific-popup/jquery.magnific-popup.min.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/jquery.fluidbox/jquery.fluidbox.min.js" id="fluidbox-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/mediaelement/mediaelement-and-player.min.js" id="mediaelement-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/jquery.flexslider/jquery.flexslider-min.js" id="flexslider-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/readingTime.js" id="readingTime-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/share.min.js" id="share-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/selection-sharer/selection-sharer.js" id="selection-sharer-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/responsive-image-gallery/r-gallery.js" id="r-gallery-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/socialstream.jquery.js" id="socialstream-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/main.js" id="main-js"></script>
<script type="text/javascript" src="https://wiobyrne.com/wp-content/themes/readme/js/wp-fix.js" id="wp-fix-js"></script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://wiobyrne.com/wp-includes/js/wp-emoji-release.min.js?ver=6.9.4"}}
</script>
<script type="module">
/* <![CDATA[ */
/*! This file is auto-generated */
const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(window._wpemojiSettings=a,"wpEmojiSettingsSupports"),s=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const a=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===a[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(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\u1fac8")}return!1}function f(e,t,n,a){let r;const o=(r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),s=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(e=>{s[e]=t(o,e,n,a)}),s}function r(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}a.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let 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("+f.toString()+"("+[JSON.stringify(s),u.toString(),c.toString(),p.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"});const r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=e=>{i(n=e.data),r.terminate(),t(n)})}catch(e){}i(n=f(s,u,c,p))}t(n)}).then(e=>{for(const n in e)a.supports[n]=e[n],a.supports.everything=a.supports.everything&&a.supports[n],"flag"!==n&&(a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&a.supports[n]);var t;a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&!a.supports.flag,a.supports.everything||((t=a.source||{}).concatemoji?r(t.concatemoji):t.wpemoji&&t.twemoji&&(r(t.twemoji),r(t.wpemoji)))});
//# sourceURL=https://wiobyrne.com/wp-includes/js/wp-emoji-loader.min.js
/* ]]> */
</script>
</body>
</html>