<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Mauve fast and break things]]></title><description><![CDATA[Technology, creativity, culture and how they facilitate each other.]]></description><link>https://blog.barney.is</link><image><url>https://substackcdn.com/image/fetch/$s_!Yg_k!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65aefbd6-ca05-446a-b8b6-c360764cef11_400x400.png</url><title>Mauve fast and break things</title><link>https://blog.barney.is</link></image><generator>Substack</generator><lastBuildDate>Wed, 08 Apr 2026 14:43:07 GMT</lastBuildDate><atom:link href="https://blog.barney.is/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Barnaby Keene]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[barney@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[barney@substack.com]]></itunes:email><itunes:name><![CDATA[Barnaby]]></itunes:name></itunes:owner><itunes:author><![CDATA[Barnaby]]></itunes:author><googleplay:owner><![CDATA[barney@substack.com]]></googleplay:owner><googleplay:email><![CDATA[barney@substack.com]]></googleplay:email><googleplay:author><![CDATA[Barnaby]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Let the kids vibe]]></title><description><![CDATA[Positive reflections on the fear uncertainty and doubt surrounding "vibecoding".]]></description><link>https://blog.barney.is/p/let-the-kids-vibe</link><guid isPermaLink="false">https://blog.barney.is/p/let-the-kids-vibe</guid><dc:creator><![CDATA[Barnaby]]></dc:creator><pubDate>Sun, 06 Jul 2025 14:46:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c2ee743c-fb49-4e0b-8616-202cae9f8b48_1456x816.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You know vibe-coding has been the talk of the town recently. Opinions all over, it's great, it's terrible, engineering is dead, it's revolutionised, it's killing our ability to think, it's democratising software, it's risking critical infrastructure and security.</p><p>History repeats itself though, and I've seen this before and if you look carefully, you have too.</p><p>In music, there was this idea of a "bedroom producer". A kid who doesn't have access to a million dollar recording studio, a Nord Stage keyboard, a set of ATC studio monitors, a mixing table the size of a rich family's kitchen counter tops. No, they cracked FL Studio, pirated their VSTs, produced tracks that clipped, distorted, mixed "badly", had muddy lows and tinny highs but nobody cared because the ones that produced soulful connecting music succeeded because they just vibed.</p><p>Making things with code is part engineering and part art, and a good chunk of &#8220;software engineers&#8221; are creatives at heart. Creativity requires failure and experimentation, this new wave of creative-coding through language models enables a kind of flow that was previously not possible. Sure you&#8217;re going to introduce bugs and security flaws and you&#8217;re not going to understand anything it spits out, but the curious ones, the ones who want to understand and better their craft will use this as a launch pad into a new creative endeavour. And maybe one day those folks will get their big break with their million dollar recording studio.</p><p>So let the bedroom producers create, let the vibe coders vibe code.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.barney.is/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">you can subscribe if you want but it&#8217;s not really worth it, I post like once a decade&#8230;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[On the phenomenon of the Personal Brand]]></title><description><![CDATA[Why do we brand ourselves like products? What even is a personal brand and where did the term come from? If you work in tech, creative or angel investing you've probably heard the term. In this article I dive into the possible reasons why this idea has been growing so much.]]></description><link>https://blog.barney.is/p/on-the-phenomenon-of-the-personal</link><guid isPermaLink="false">https://blog.barney.is/p/on-the-phenomenon-of-the-personal</guid><dc:creator><![CDATA[Barnaby]]></dc:creator><pubDate>Sun, 10 Dec 2023 17:22:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1f3aa89f-a1ec-47c2-9062-9de0f5c8ebde_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The phrase is a recent occurrence, Google&#8217;s data show it goes back to 1937 but it appears to be mostly just the words &#8220;personal&#8221; and &#8220;brand&#8221; appearing next to each other. The actual phrase itself seems to have started to pick up in the 90s with business books about networking, mostly in finance.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ywJ1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ywJ1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png 424w, https://substackcdn.com/image/fetch/$s_!ywJ1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png 848w, https://substackcdn.com/image/fetch/$s_!ywJ1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png 1272w, https://substackcdn.com/image/fetch/$s_!ywJ1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ywJ1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png" width="982" height="286" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:286,&quot;width&quot;:982,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:50704,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ywJ1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png 424w, https://substackcdn.com/image/fetch/$s_!ywJ1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png 848w, https://substackcdn.com/image/fetch/$s_!ywJ1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png 1272w, https://substackcdn.com/image/fetch/$s_!ywJ1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34c2d494-c17f-43e9-ac1b-db84535f251b_982x286.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">the different casing of &#8220;email&#8221; over the decades deserves a whole post of its own tbh&#8230;</figcaption></figure></div><p>Then with the 2000s we had &#8220;Be your own brand&#8221; by David McNally and a few other notable titles as the world of internet entrepreneurship was maturing as a very real avenue folks were exploring back then.</p><p>And nowadays, the advice to brandify yourself is everywhere in industries dominated by relationship-driven transactions. And that ranges from the creative world all the way to finance. It&#8217;s powerful, it&#8217;s useful, it&#8217;s a great career move but it&#8217;s also somewhat odd.</p><h2>The why behind personal brands</h2><p>Job retention in certain sectors has dropped slightly but not as much as I assumed, and in some areas it has risen slightly! Researcher Craig Copeland <a href="https://www.ebri.org/content/trends-in-employee-tenure-1983-2022">wrote for EBRI</a> &#8220;Over the past 40 (or nearly 40 years) years, the median tenure of all wage and salary workers ages 25 or older has stayed at approximately five years.&#8221;</p><p>Though the picture becomes more interesting when getting into the weeds of it all. Generational differences are by far the biggest factor, essentially the older generations stay at the same employer for longer. Which fits a little better with my preconceived notions. Though this isn&#8217;t just generational, it&#8217;s also age. The thesis there is that older folks value stability and tenure often provides that.</p><p>As a side note, <a href="https://journals.sagepub.com/doi/10.1177/001979390305600308">this paper</a> from Rodriguez and Zavodny found, among other things, that older folks were more likely to be laid off in an economic downturn compared to younger workers, despite younger workers voluntarily changing jobs more frequently.</p><p>So what does this have to do with personal brands? Essentially, my hypothesis is that more younger people are either self employed contractors, job hopping or getting into content production work due to the internet. Of course those who don&#8217;t do this will get older and if what we know about age is causal then those people will contribute to lengthening tenure statistics, thus keeping the average steady.</p><p>But in the last year I&#8217;ve anecdotally seen a lot more focus from my peers on Personal Branding. Blog writing, LinkedIn and Twitter activity, open source work for the sake of open source work, speaking at meetups.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dRLa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dRLa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png 424w, https://substackcdn.com/image/fetch/$s_!dRLa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png 848w, https://substackcdn.com/image/fetch/$s_!dRLa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png 1272w, https://substackcdn.com/image/fetch/$s_!dRLa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dRLa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png" width="1298" height="554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce969275-0667-4839-b055-23b5bebf42fc_1298x554.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:554,&quot;width&quot;:1298,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101333,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dRLa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png 424w, https://substackcdn.com/image/fetch/$s_!dRLa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png 848w, https://substackcdn.com/image/fetch/$s_!dRLa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png 1272w, https://substackcdn.com/image/fetch/$s_!dRLa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce969275-0667-4839-b055-23b5bebf42fc_1298x554.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Forbes published this in 2013, by that time I already had a badly designed wordpress site on southclaw.net</figcaption></figure></div><h2>Internet identities</h2><p>There&#8217;s a slightly more nuanced side of this I want to talk about though, it&#8217;s specific to the internet culture side of things, and it&#8217;s something I&#8217;ve thought about a lot while rethinking my writing strategy. Myself and a lot of people I know have a handle, a username, a moniker, a nick(name). An identifier specifically for internet communication. If you read this publication before I changed the domain, you might remember it was <code>southcla.ws</code>, which is a neat little domain name trick I used to express my own username.</p><p>I&#8217;ve been known as &#8220;Southclaw&#8221; (and later, southclaws) for a long time. Since the time when &#8220;social media&#8221; was largely on forums that looked like this:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9J3s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9J3s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png 424w, https://substackcdn.com/image/fetch/$s_!9J3s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png 848w, https://substackcdn.com/image/fetch/$s_!9J3s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png 1272w, https://substackcdn.com/image/fetch/$s_!9J3s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9J3s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png" width="377" height="112" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:112,&quot;width&quot;:377,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9J3s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png 424w, https://substackcdn.com/image/fetch/$s_!9J3s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png 848w, https://substackcdn.com/image/fetch/$s_!9J3s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png 1272w, https://substackcdn.com/image/fetch/$s_!9J3s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab762bb7-4d53-4ddb-b3ef-779fca0bc561_377x112.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-czf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-czf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png 424w, https://substackcdn.com/image/fetch/$s_!-czf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png 848w, https://substackcdn.com/image/fetch/$s_!-czf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png 1272w, https://substackcdn.com/image/fetch/$s_!-czf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-czf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png" width="1035" height="221" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:221,&quot;width&quot;:1035,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-czf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png 424w, https://substackcdn.com/image/fetch/$s_!-czf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png 848w, https://substackcdn.com/image/fetch/$s_!-czf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png 1272w, https://substackcdn.com/image/fetch/$s_!-czf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff91d0a4c-5e3c-459b-be56-89b64ae0d2d7_1035x221.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">with over 6k posts, i was something of a&#8230; forum celebrity &#128527;</figcaption></figure></div><p>And that expanded even more when I added an S, bought the southcla.ws domain, changed my handle everywhere to &#8220;southclaws&#8221;, in many ways that was the settling of my &#8220;personal brand&#8221;.</p><p>In many ways, I&#8217;m a bit proud of this social-capital built up over years. The website is useful as a digital business card, and everything stems from there as &#8220;&lt;whatever site&gt;/southclaws&#8221;. There&#8217;s a certain clout I&#8217;ve noticed in a few folks from the days of IRC that arises from having a unique handle.</p><p>(also, if you&#8217;re interested in internet culture, do look up the origin of the term &#8220;handle&#8221; it&#8217;s rooted in truck drivers and amateur radio nerds! Perhaps that should be a future post&#8230;)</p><h2>Optimising for context</h2><p>In the last year I&#8217;ve attended a lot more in-person events. This is partly due to the lasting effects of Covid disappearing from daily life, but also partly my work and my personal interest in meeting more people of more varied backgrounds here in London.</p><p>One thing that&#8217;s very difficult about a brand optimised for text-based medium such as the internet is telling people with your voice. Outside of the times when it&#8217;s a simple LinkedIn swap, saying &#8220;south [at sign] C, L, A, dot W, S&#8221; out loud is hilarious but also kind of awkward for everyone involved.</p><p>My background is in tech, and I earned by stripes on internet forums by writing code and then teaching code to others. But my whole professional being is not just about technology and code any more. With that, not everyone I&#8217;m talking to understands that &#8220;.ws&#8221; is a valid top-level-domain. I&#8217;ve had estate agents, recruiters, investors and many more folks &#8220;correct&#8221; my email address to all manner of things:</p><ul><li><p>south@claws.com</p></li><li><p>south@cla.ws.com</p></li><li><p>south@claws (no TLD!)</p></li><li><p>southclaws@gmail.com (technically I do own this but I never check the inbox - it just auto responds with a message telling the sender my actual email address)</p></li></ul><p>The culmination of these experience has lead me to believe that, while custom domains are really cool for showing off to fellow technologists, they&#8217;re not actually that useful in the real world, and when in a loud, crowded environment it&#8217;s much simpler to hear &#8220;at gmail dot com&#8221;.</p><p>And so, we reach the <em>true</em> deep dark motivation for this article. To shill my new websites and get you to email me!</p><h2>New year, new me </h2><p>As I mentioned above, my professional &#8220;brand&#8221; isn&#8217;t really solely technology. I want to write more long-form articles with the research work put in. But at the same time, I&#8217;ve also got over 10 years of tech industry experience that could be perceived as a wealth of knowledge given the right font choice!</p><h3>My digital business card</h3><p>Hopefully saying &#8220;barney dot is&#8221; proves to be vastly simpler in a bustling cocktail bar on a Thursday night. Not that I frequently tell people my website in cocktail bars, but as they say, hope for the best plan for the worst!</p><p><strong><a href="https://barney.is">https://barney.is</a></strong></p><p>It exists purely as a traditional &#8220;home page&#8221;. Somewhere I can call my own, not too tightly tied to my internet identity and simple enough that it&#8217;s memorable and sharable in a variety of forms.</p><p>And yes I did choose &#8220;.is&#8221; because it&#8217;s the TLD of Iceland, my favourite country on earth. It&#8217;s also probably not going anywhere any time soon.</p><p>I&#8217;ve also got a brand new email address, which I was going to write about but dunking on email is played out.</p><p>Send me digital postcards, my username is <strong>barney</strong> @ my new mail provider <strong><a href="https://hey.com">hey.com</a></strong> (I&#8217;m assuming we still do that thing where we obfuscate the email address in creative ways to prevent spam? Honestly, I just do it out of habit nowadays&#8230;)</p><h3>Technical writing</h3><p>And my technical writing will now continue to live with my still-alive internet identity, which was originally the domain of this Substack publication so hopefully that won&#8217;t cause too much confusion with readers or Google indexing:</p><p><strong><a href="https://southcla.ws/">https://southcla.ws/</a></strong></p><p>It&#8217;s a hand-written blog, which is best for that kind of content. Substack is amazing for the simplicity of getting straight to writing but lacks some of the features one might want for things like code snippets or interactive elements.</p><h3>Whatever you call this thing</h3><p>The astute reader may have noticed the domain name for this site has now changed to <strong>blog.barney.is</strong>! I did consider <em>yet another</em> domain for this publication, purely because I really really enjoy branding things. But I decided that was a distraction and I should just sit down and write more often.</p><p><strong><a href="https://blog.barney.is">https://blog.barney.is</a></strong></p><p>Technology, culture, creativity and how they facilitate each other. I hope you continue to enjoy reading!</p><p></p><div><hr></div><p><em><strong>honourable mentions and writing inspirations - basically just blogs I shamelessly copy</strong></em></p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:70829,&quot;name&quot;:&quot;The Odin Times&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d7749e-1ef2-44d3-a926-20929afd34c2_285x285.png&quot;,&quot;base_url&quot;:&quot;https://blog.joinodin.com&quot;,&quot;hero_text&quot;:&quot;A newsletter about investing, tech, economics and more.&quot;,&quot;author_name&quot;:&quot;Patrick Ryan&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://blog.joinodin.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!qSBN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d7749e-1ef2-44d3-a926-20929afd34c2_285x285.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">The Odin Times</span><div class="embedded-publication-hero-text">A newsletter about investing, tech, economics and more.</div><div class="embedded-publication-author-name">By Patrick Ryan</div></a><form class="embedded-publication-subscribe" method="GET" action="https://blog.joinodin.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><p>Paddy,<span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Patrick Ryan&quot;,&quot;id&quot;:11918825,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/01e34855-dba7-42e9-bf1a-59a98e11a0fe_3557x3557.jpeg&quot;,&quot;uuid&quot;:&quot;453d5db1-a623-4126-94b6-1d3c8a00c901&quot;}" data-component-name="MentionToDOM"></span> the best writer I have the privilege to frequently sit in the same room as (he&#8217;s also bossman at <a href="https://www.joinodin.com/">Odin</a>, where I tap keys, click mouses and draw rectangles for a living). I don&#8217;t know how he manages to write more than once a year with a startup on one shoulder and a newborn on the other. Huge source of inspiration, big ups.</p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:159185,&quot;name&quot;:&quot;Slow Boring &quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb681e-a14d-4bbb-a8fe-951c29603e3f_256x256.png&quot;,&quot;base_url&quot;:&quot;https://www.slowboring.com&quot;,&quot;hero_text&quot;:&quot;Start your day with pragmatic takes on politics and public policy.&quot;,&quot;author_name&quot;:&quot;Matthew Yglesias&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://www.slowboring.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!gzxV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb681e-a14d-4bbb-a8fe-951c29603e3f_256x256.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">Slow Boring </span><div class="embedded-publication-hero-text">Start your day with pragmatic takes on politics and public policy.</div><div class="embedded-publication-author-name">By Matthew Yglesias</div></a><form class="embedded-publication-subscribe" method="GET" action="https://www.slowboring.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Matthew Yglesias&quot;,&quot;id&quot;:580004,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20964455-401a-494d-a8ef-9835b34e9809_3024x3024.png&quot;,&quot;uuid&quot;:&quot;93ea3d3d-8bc6-4adc-b3d2-6a7150e7260c&quot;}" data-component-name="MentionToDOM"></span> I&#8217;ve followed Matt&#8217;s work for a long time, since he wrote for Vox and ran The Weeds podcast. His writing makes the important parts of politics and policy interesting to me, which is great given the less important parts of politics are often the most written-about.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Does the future web need trademarks?]]></title><description><![CDATA[This thought crossed my mind while reading a story about a founder who lost their Twitter handle to a competitor and essentially had no recourse&#8230;]]></description><link>https://blog.barney.is/p/does-the-future-web-need-trademarks</link><guid isPermaLink="false">https://blog.barney.is/p/does-the-future-web-need-trademarks</guid><dc:creator><![CDATA[Barnaby]]></dc:creator><pubDate>Thu, 06 Apr 2023 20:59:43 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ec0f7ac8-2572-41b2-9b58-e8352013835e_1457x1049.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This thought crossed my mind while reading a story about a founder who lost their Twitter handle to a competitor and essentially had no recourse to get it back. This situation also popped up during the rollout of paid &#8220;Verified&#8221; badges on Twitter. I managed to get &#8220;southclaws.eth&#8221; on the Ethereum Name Service which is cool, but what if it takes off and I also managed to grab &#8220;Microsoft.eth&#8221;. Currently we have centralised systems in place to prevent this, trademark offices and, if worse comes to worse, courtrooms. What does this look like in the wild west of web3 and beyond? Food for thought&#8230;</p>]]></content:encoded></item><item><title><![CDATA[Moving from Ghost to Substack]]></title><description><![CDATA[On the phenomenon of caring less and less about walled gardens.]]></description><link>https://blog.barney.is/p/migrating-from-ghost-to-substack</link><guid isPermaLink="false">https://blog.barney.is/p/migrating-from-ghost-to-substack</guid><dc:creator><![CDATA[Barnaby]]></dc:creator><pubDate>Tue, 07 Mar 2023 07:16:41 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e8b27625-27e1-4e99-8a2b-748669bd9cea_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There&#8217;s a common political idea that dates back to the 1800s (that some attribute to John Adams, though this <a href="https://quoteinvestigator.com/2014/02/24/heart-head/">seems contested</a>) proclaiming that as folks age, their political beliefs adopt a more conservative-leaning vibe. While <a href="https://www.pewresearch.org/fact-tank/2014/07/09/the-politics-of-american-generations-how-age-affects-attitudes-and-voting-behavior/">Pew</a>, <a href="https://www.nyu.edu/about/news-publications/news/2021/december/america-more-liberal-than-50-years-ago-but-change-not-reflected-.html">NYU</a> and others have challenged this idea in recent years, it&#8217;s a model of individual development that I&#8217;ve seen echoed somewhat in other areas of technology and culture.</p><p>While I was in college, I had a lot of spare time for tinkering and learning outside of my classes. As with many folks who studied software-related subjects, I learnt a lot about the non-software side of the craft. Hosting websites, Linux, administrating servers, sharing access with others and orchestrating deployed applications. Essentially, the software equivalent skillset of a building site or a truck depot manager.</p><p>With this newfound knowledge, I suddenly had the ability to run my own services on the public internet. As with many college students, I didn&#8217;t have much money. I couldn&#8217;t pay for several subscriptions, and why would I when I can spin up my own WordPress website on a $5/month server?</p><p>And with that began an era of running every container under the sun and assigning it a domain name. I would host websites for friends, infrastructure for projects I helped with, I even hosted an Iodine DNS server which meant I could get free internet access on metered connections.</p><p>I was in it partly for control. But not control over my data, as is the common logical justification for self-hosting. The feeling of operating a small fleet of machines and software for some reason made the nerd in me happy. I even open-sourced the stack I had crafted under the brand <a href="https://github.com/picostack/core">&#8220;picostack&#8221;</a> as I thought it would be useful for small shops that didn&#8217;t need Kubernetes.</p><p>It turns out that small shops that don&#8217;t need Kubernetes just buy hosted services. Need a log aggregator? <a href="https://www.datadoghq.com/">There</a> <a href="https://logz.io/">are</a> <a href="https://www.papertrail.com/">plenty</a>. I was learning by experience what over-engineering was.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ptpO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ptpO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png 424w, https://substackcdn.com/image/fetch/$s_!ptpO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png 848w, https://substackcdn.com/image/fetch/$s_!ptpO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png 1272w, https://substackcdn.com/image/fetch/$s_!ptpO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ptpO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png" width="1456" height="797" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:797,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:362468,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ptpO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png 424w, https://substackcdn.com/image/fetch/$s_!ptpO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png 848w, https://substackcdn.com/image/fetch/$s_!ptpO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png 1272w, https://substackcdn.com/image/fetch/$s_!ptpO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b7e1e4-5973-49f0-8327-f8360ccdb18e_1608x880.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Fast forward 8 years and I&#8217;m deleting another server. This time from Fly.io, which is my new favourite platform for getting code in front of people as fast as possible. I run <a href="https://www.storyden.org/">Storyden</a>&#8217;s demo site there, plus all of <a href="https://www.joinodin.com/">Odin&#8217;s</a> services.</p><p>But a simple static blog doesn&#8217;t need to be self-hosted. Sure, I don&#8217;t <em>own my data</em> but I also just don&#8217;t have the capacity or the time to care. So where&#8217;s this going? We know over-engineering is bad, there are plenty of articles about that on the internet, I&#8217;m not here to preach that dead horse to the choir.</p><h2>Over-engineering is borrowing future context</h2><p>When I discuss &#8220;technical debt&#8221; I frame it as consciously borrowing time from your future to utilise now, in the hopes that you can leverage that time now and win overall in the long run.</p><p>Young software engineers can leverage knowledge in the same way by over-engineering projects. So I often encourage it when mentoring folks with their projects, in the same way that I treat technical debt as a positive if handled well.</p><p>I may have spent a bunch of time in 2014 wiring up micro-services, self-hosting GitLab and operating my own metrics but if I spent that time years later doing the same thing, I would have ultimately come off worse. Why? Because my time was worth far less in 2014 compared to 2018 when I joined the workforce and started using these technologies in the Real World&#8482;.</p><p>And it&#8217;s not only about understanding conceptually how modern infrastructure works. These experiences also allowed me to appreciate under-engineering fairly early on in my career and focus on building and solving.</p><p>Coming back to John Adams, the actual meaning behind this idea of changing your political leanings as you age, while contested, certainly resonates with some people&#8217;s model of personal development. Different things matter to you at different parts of your life, and leveraging what&#8217;s going to help you most right now to get to where you want to be is a skill you should always be sharpening.</p><p>So if you&#8217;re studying and you&#8217;ve got some spare time, go over-engineer a to-do list app, and you&#8217;ll learn a lot. And if you frequently mentor or teach, consider this idea when introducing the ideas of complexities and over-engineering, allowing people to weather the storm helps them see why the sunny side is so sunny.</p>]]></content:encoded></item><item><title><![CDATA[web3 first impressions]]></title><description><![CDATA[I've played with cryptocurrencies for a while, since around 2015 if memory serves.]]></description><link>https://blog.barney.is/p/web3</link><guid isPermaLink="false">https://blog.barney.is/p/web3</guid><dc:creator><![CDATA[Barnaby]]></dc:creator><pubDate>Thu, 16 Jun 2022 22:46:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ViTF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ViTF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ViTF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!ViTF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!ViTF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!ViTF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ViTF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;web3 first impressions&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="web3 first impressions" title="web3 first impressions" srcset="https://substackcdn.com/image/fetch/$s_!ViTF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!ViTF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!ViTF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!ViTF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ebc157-384e-47aa-8b9c-cd2e6cf3be4d_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><p>I've played with cryptocurrencies for a while, since around 2015 if memory serves. That has involved buying some Ethereum and bitcoin on Kraken and learning how to trade and spot patterns and read the charts. For most of this, I treated cryptocurrencies as currencies. Either stores of value for an individual or transfers of value between parties.</p><p>This weekend I finally jumped into "web3". I bought a .eth Ethereum Name Service token which is kind of like a web address for the crypto world. <code>southclaws.eth</code> now points... nowhere, but it exists.</p><p>I also minted a non-fungible token on the Ropsten test network using some free Ethereum (10 to be exact) I got from some test site that mints you Ethereum out of nowhere for test and development purposes.</p><h2>The "ah-ha moment"</h2><p>I've been a bit disconnected from this world for a while (outside of trading a bit, which is somewhat lucrative but also extremely boring) and was fairly critical of not just NFTs but the "web3" movement as a whole.</p><p>I think I get it now though.</p><p>Blockchains aren't here to solve every problem (contrary to what founders would have you believe) but there are some key areas of both technology and culture I believe will be most impactful.</p><h2>Identity</h2><p>At the core of these areas of impact lies identity. This makes sense, the whole cryptocurrency movement is rooted in individualism and to an extent, small-government libertarianism. Identity is important to people and especially important to those who despise Facebook, Google and various other tech monopolies.</p><p>I knew this, but it really <em>clicked</em> when Chris Dixon wrote this on Twitter</p><div class="captioned-image-container"><figure><blockquote><p>You can easily confirm this by going to other services and viewing my profile. <br><br>Rainbow - <a href="https://t.co/GHDxdTYL9z">https://t.co/GHDxdTYL9z</a><br>Showtime - <a href="https://t.co/pX2HM0eQjP">https://t.co/pX2HM0eQjP</a><br><br>More technical people can view the data directly on the Ethereum blockchain.</p><p>&#8212; cdixon.eth (@cdixon) <a href="https://twitter.com/cdixon/status/1479920749200695305?ref_src=twsrc%5Etfw">January 8, 2022</a></p></blockquote></figure></div><p>This immediately illustrated the <em>portability</em> element of "web3" and how this information being <em>decentralised</em> does mean the actual app or website doesn't <em>really</em> matter that much.</p><p>And you can still run a targeted ads business around this, it doesn't disrupt existing revenue models but it does mean platforms like this must compete more for your attention because you can much more easily pick up and leave.</p><p>This reminds me of the days of <a href="https://en.wikipedia.org/wiki/Trillian_(software)">Trillian</a> where I had one app hooked up to Skype, Facebook and MSN all at once. And if I wanted to move, I could, because everything was backed by <a href="https://en.wikipedia.org/wiki/XMPP">Jabber/XMPP</a> - a standard messaging protocol.</p><p>The problem with standardised protocols like this is they are slow. Much like governments. Facebook (and others) moved to their own proprietary format to support things like reactions, replies, audio messages, stickers, etc. XMPP is still in use by a few platforms nowadays but multiple competing clients on top of a single standard is a thing of the past for messaging.</p><h2>Authentication</h2><p>Another area I've really enjoyed using web3 technology is authenticating on websites. No emails or passwords for a lot of services which is great. The UX is pretty smooth and <a href="https://eips.ethereum.org/EIPS/eip-2255">permissions are built-in</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YYJT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YYJT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png 424w, https://substackcdn.com/image/fetch/$s_!YYJT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png 848w, https://substackcdn.com/image/fetch/$s_!YYJT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png 1272w, https://substackcdn.com/image/fetch/$s_!YYJT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YYJT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;web3 first impressions&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="web3 first impressions" title="web3 first impressions" srcset="https://substackcdn.com/image/fetch/$s_!YYJT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png 424w, https://substackcdn.com/image/fetch/$s_!YYJT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png 848w, https://substackcdn.com/image/fetch/$s_!YYJT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png 1272w, https://substackcdn.com/image/fetch/$s_!YYJT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb55cd5d-a5e9-4a28-8b39-9628fad36abd_700x1186.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sw9U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sw9U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png 424w, https://substackcdn.com/image/fetch/$s_!sw9U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png 848w, https://substackcdn.com/image/fetch/$s_!sw9U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!sw9U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sw9U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;web3 first impressions&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="web3 first impressions" title="web3 first impressions" srcset="https://substackcdn.com/image/fetch/$s_!sw9U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png 424w, https://substackcdn.com/image/fetch/$s_!sw9U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png 848w, https://substackcdn.com/image/fetch/$s_!sw9U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!sw9U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68310ba1-0f19-4830-926b-794f4fd00cdf_698x1184.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>There are also projects like Magic.link and Login.xyz building neat products in the authentication and decentralised identity space.</p><h2>Costs</h2><p>The most irritating thing about web3 is how <em>everything</em> costs money. Buy a .eth domain? that costs money, which is fine, normal domains do too. Want to set the equivalent of an "A" record, which normal domains use to point to web servers? That costs money too. Even making the domain you just spent $15 on your "primary" domain costs another $15.</p><p>This is not financially accessible and at this point is just a techy plaything for affluent gadget enthusiasts. Far from the "democratising finance" vision of early Bitcoin. Now I understand this experience is specific to Ethereum and layer 2 chains exist to bring the cost down. I haven't evaluated any of these solutions yet.</p><p>But it's early days, Ethereum is still in flux and <em>supposedly</em> will become more affordable when the network completes its seemingly Sisyphean task of moving to proof-of-stake (which also has its democracy problems.)</p><div><hr></div><p>I do want to play more with the web3 and crypto technology though. I write about products, startups, writing code and building things so if that's your thing, consider subscribing! I aim to keep to a 1 to 2-week cadence for posts.</p>]]></content:encoded></item><item><title><![CDATA[Building your own personal Google]]></title><description><![CDATA[I've never been good at keeping notes.]]></description><link>https://blog.barney.is/p/building-wisplight</link><guid isPermaLink="false">https://blog.barney.is/p/building-wisplight</guid><dc:creator><![CDATA[Barnaby]]></dc:creator><pubDate>Wed, 08 Jun 2022 21:02:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!r_Wy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r_Wy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r_Wy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!r_Wy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!r_Wy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!r_Wy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r_Wy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!r_Wy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png 424w, https://substackcdn.com/image/fetch/$s_!r_Wy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png 848w, https://substackcdn.com/image/fetch/$s_!r_Wy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png 1272w, https://substackcdn.com/image/fetch/$s_!r_Wy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07d1011d-e624-47c3-bddf-fc445139c4de_1024x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><p>I've never been good at keeping notes. I have a Notion file with 36 links in it, it was last updated in 2019. I also have a Pocket account, I use it to read things on the tube. My usage varies, I don't always save things there, and when I do it's usually longer articles that I know I won't read if they're stuck in a browser tab.</p><p>I've also tried Google Keep, Evernote, Feedly, posting things in <a href="https://makeroom.club">my chat room</a> in the hopes they will come up in conversation later. I'm just not good at keeping notes.</p><p>The problem with all of these is manual work. When I read something, I'm not considering the conversation I'll have 6 months later when I may want to refer back to it. I read it, absorb the information as best I can, close the tab and move on with my day.</p><h2>My issue with browser history</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0OSf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0OSf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png 424w, https://substackcdn.com/image/fetch/$s_!0OSf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png 848w, https://substackcdn.com/image/fetch/$s_!0OSf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png 1272w, https://substackcdn.com/image/fetch/$s_!0OSf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0OSf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!0OSf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png 424w, https://substackcdn.com/image/fetch/$s_!0OSf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png 848w, https://substackcdn.com/image/fetch/$s_!0OSf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png 1272w, https://substackcdn.com/image/fetch/$s_!0OSf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9252ffc4-c74b-4bed-bbd4-6b3333a90a68_2000x988.png 1456w" sizes="100vw"></picture><div></div></div></a><figcaption class="image-caption">I often find myself desperately typing keywords into Firefox's omnibar to try and find articles I've read. Sometimes it works, sometimes it doesn't.</figcaption></figure></div><p>"css pixels angular measurement" I swear I could remember reading a really nice article about how "px" in CSS does not map to screen pixels. I read it when I was working my first job in London, so around 2019. I don't remember the author's name, I don't remember the blog URL, I don't even remember the title. All I remember are the <em>concepts</em> the article covered and some keywords.</p><p>I've been using Firefox for many years, long before 2019, so let's check my browser history...</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DB4o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DB4o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png 424w, https://substackcdn.com/image/fetch/$s_!DB4o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png 848w, https://substackcdn.com/image/fetch/$s_!DB4o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png 1272w, https://substackcdn.com/image/fetch/$s_!DB4o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DB4o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!DB4o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png 424w, https://substackcdn.com/image/fetch/$s_!DB4o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png 848w, https://substackcdn.com/image/fetch/$s_!DB4o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png 1272w, https://substackcdn.com/image/fetch/$s_!DB4o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f6c675-6472-40e5-beb9-e34c87b77df0_1442x1038.png 1456w" sizes="100vw"></picture><div></div></div></a><figcaption class="image-caption">lookin like an irc app over here</figcaption></figure></div><p>First of all, what decade is this UI from... it feels like this "Library" window hasn't received an update for many years. Why can't this be part of the main window?</p><p>Second of all, what's up with these time frames? I get "Within the last week" but "Older than 6 months" is a little broad. I can't seem to customise these preset time frames either.</p><p>There are "tags" which as far as I can tell, require opening up this dusty "Library" window and manually typing in tags separated by commas.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a9ee!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a9ee!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png 424w, https://substackcdn.com/image/fetch/$s_!a9ee!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png 848w, https://substackcdn.com/image/fetch/$s_!a9ee!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png 1272w, https://substackcdn.com/image/fetch/$s_!a9ee!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a9ee!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!a9ee!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png 424w, https://substackcdn.com/image/fetch/$s_!a9ee!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png 848w, https://substackcdn.com/image/fetch/$s_!a9ee!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png 1272w, https://substackcdn.com/image/fetch/$s_!a9ee!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9007c3d4-895a-4737-9539-033b7f9f4efd_796x328.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Who actually uses this feature? Seriously, tweet me if you do...</figcaption></figure></div><p>Chrome isn't much better, though it does have this neat "Journeys" feature which groups items by domain name.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U80o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U80o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png 424w, https://substackcdn.com/image/fetch/$s_!U80o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png 848w, https://substackcdn.com/image/fetch/$s_!U80o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png 1272w, https://substackcdn.com/image/fetch/$s_!U80o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U80o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!U80o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png 424w, https://substackcdn.com/image/fetch/$s_!U80o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png 848w, https://substackcdn.com/image/fetch/$s_!U80o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png 1272w, https://substackcdn.com/image/fetch/$s_!U80o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c85c9c7-a2dd-4bd0-b9c8-47a9f6076d86_1984x1258.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Do you ever go into your history and click these suggested searches?</figcaption></figure></div><p>The core problem with both browsers is that they only index the <em>title</em> of the webpage and the URL. Nothing else. I couldn't remember the title but I could remember a bunch of topics and concepts the article talked about.</p><p>Now, I could use Google to search for this article. Google is already doing lots of clever natural language processing and concept mapping. And sure enough, I can find my article easily using the keywords I typed in:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OE4W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OE4W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png 424w, https://substackcdn.com/image/fetch/$s_!OE4W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png 848w, https://substackcdn.com/image/fetch/$s_!OE4W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png 1272w, https://substackcdn.com/image/fetch/$s_!OE4W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OE4W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4186276-fdf0-405b-94be-e2e01248c505_2082x984.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!OE4W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png 424w, https://substackcdn.com/image/fetch/$s_!OE4W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png 848w, https://substackcdn.com/image/fetch/$s_!OE4W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png 1272w, https://substackcdn.com/image/fetch/$s_!OE4W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4186276-fdf0-405b-94be-e2e01248c505_2082x984.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">It's a great article despite lacking any actual CSS in the page...</figcaption></figure></div><p>The title was actually "CSS px is an Angular Measurement"</p><p>Google found this because "pixels" is often shortened to "px", "angle" is the root word of "angular" and "unit" is somewhat related to "measurement" (depending on how you... <em>measure</em> it)</p><p>But the problem with Google is that it's an index of (almost) the <em>entire</em> internet. The internet I've browsed in my life is infinitesimal in comparison. It's also highly relevant in comparison. Google will show results from every website it has indexed but sometimes I don't want that, I want to search through pages that only <em>I</em> have visited and read.</p><p>Another problem I've noticed a lot with both Firefox and Chrome is the history is simply flaky. It really is, there's a decent chunk of sites I <em>know</em> I've visited but they're just not present in my history. I want my history to be a full log of everything I've visited.</p><p>What I needed was a browser history as intelligent as Google Search.</p><h2>Architecting a solution</h2><h3>Browser extensions are pretty easy! Right?</h3><p>I've built browser extensions before, the most complex being <a href="https://www.joinlokalyze.com/">Lokalyze</a> and it's not crazy hard. There are a few criteria for this solution:</p><ul><li><p>It must index the page content and metadata, not just the title.</p></li><li><p>Text analysis must either be accurate or skipped, no half measures.</p></li><li><p>Data must be stored locally, not in the browser itself (there are size limits)</p></li></ul><p>The first two are fairly easy, I've done a bunch of NLP before. TF-IDF is the standard in text search and most of the work is cleaning up the data.</p><p>The last one is where it gets tricky, I've never shipped a desktop app that isn't a dev tool before. This may require a user interface, notarisation, distribution, signing binaries, etc. I could run a cloud service but that's going to require maintenance and privacy/security concerns if I release this to the public.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ihfz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ihfz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png 424w, https://substackcdn.com/image/fetch/$s_!Ihfz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png 848w, https://substackcdn.com/image/fetch/$s_!Ihfz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png 1272w, https://substackcdn.com/image/fetch/$s_!Ihfz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ihfz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5077900-8fff-4a4d-ba30-2626d770db27_346x170.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!Ihfz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png 424w, https://substackcdn.com/image/fetch/$s_!Ihfz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png 848w, https://substackcdn.com/image/fetch/$s_!Ihfz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png 1272w, https://substackcdn.com/image/fetch/$s_!Ihfz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5077900-8fff-4a4d-ba30-2626d770db27_346x170.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">The first version of Wisplight. Yes it's literally just a menu.</figcaption></figure></div><p>Well, that was easy. No user interface, no Electron, no Qt, no Swift, no UWP or cross-platform worries. It's literally a Golang application using a library to create system tray icons and menus. It took me a few minutes to build this.</p><p>The next bit is search. I've worked with TF-IDF before but why waste time implementing it myself? Bleve Search is an open source, embedded full text search database written in Golang. I also need a key-value store for the actual metadata that doesn't need to be indexed for searching. For that, I can simply use BoltDB, which is now known as bbolt.</p><p>And the extension can just communicate with the desktop application via a simple HTTP API. The desktop app runs a small HTTP server on a high port.</p><p>Now all I need is a UI. But why bother building a UI for the desktop when there's already one bolted on to the extension: the browser! Browser extensions can provide "New tab" pages which just means you can supply a HTML file to show when you open a new tab instead of the browser's default.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bRZq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bRZq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png 424w, https://substackcdn.com/image/fetch/$s_!bRZq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png 848w, https://substackcdn.com/image/fetch/$s_!bRZq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png 1272w, https://substackcdn.com/image/fetch/$s_!bRZq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bRZq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!bRZq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png 424w, https://substackcdn.com/image/fetch/$s_!bRZq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png 848w, https://substackcdn.com/image/fetch/$s_!bRZq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png 1272w, https://substackcdn.com/image/fetch/$s_!bRZq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad2d2506-9f02-4aae-b5e3-e2cdab88ddd0_2000x1021.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">The tables have turned, Electron.</figcaption></figure></div><p>Searching is fairly basic at the moment, there's still some work to do around de-duplication and being more intelligent with results. There are lots of things to take into account, like the publish and update dates of articles (sometimes you visit the same URL twice but the content changes due to story developments or new information.)</p><p>There are also improvements to do around surfacing the context of a result and indicating why that result was ordered first or second in the list. Analysis picks out keywords and performs basic NLP such as stopword removal and entity recognition. There are quite a few clever things done at indexing time that aren't utilised when searching but it's early days.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!btDH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!btDH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png 424w, https://substackcdn.com/image/fetch/$s_!btDH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png 848w, https://substackcdn.com/image/fetch/$s_!btDH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png 1272w, https://substackcdn.com/image/fetch/$s_!btDH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!btDH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!btDH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png 424w, https://substackcdn.com/image/fetch/$s_!btDH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png 848w, https://substackcdn.com/image/fetch/$s_!btDH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png 1272w, https://substackcdn.com/image/fetch/$s_!btDH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99895810-4210-4298-9e82-c67a4b2229ca_2000x1021.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Visiting the same site a few times artificially inflates its presence in results. This can be solved at index time or search time.</figcaption></figure></div><h2>Shipping</h2><h3>And yes, I flatly refuse to use the ship, rocket or fire emojis in this section.</h3><p>Shipping software is still awful. It's just awful in different ways. Each operating system is uniquely awful but they're all equal in their awfulness.</p><h1>Windows</h1><p><em>Which of the 17 app directories do I copy the binary to?</em></p><p>Windows is my main workstation OS, it's the most popular platform in the world and in my experience does a good job of window management, app stability, games, media work and software dev. Software installs are, however, always have been a mess.</p><p>There are various installer builders for Windows, each with varying levels of complexity. NSIS, WiX, Inno and of course Windows has its own SDK. These solutions are great for large software packages which need to set registry entries, set up services, write files to various locations, startup entries, start menu entries, etc. But all I wanted to do was copy a .exe file to AppData.</p><p>There's also the problem of automation. I don't want to be Parsec'ing into my workstation every time I want to release a copy, I wanted to run it all on GitHub's CI when I tagged a release commit.</p><h2>NIH Syndrome</h2><p>Of course like any <s>good</s> typical engineer, I built my own solution.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b39T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b39T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png 424w, https://substackcdn.com/image/fetch/$s_!b39T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png 848w, https://substackcdn.com/image/fetch/$s_!b39T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png 1272w, https://substackcdn.com/image/fetch/$s_!b39T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b39T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Building your own personal Google&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Building your own personal Google" title="Building your own personal Google" srcset="https://substackcdn.com/image/fetch/$s_!b39T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png 424w, https://substackcdn.com/image/fetch/$s_!b39T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png 848w, https://substackcdn.com/image/fetch/$s_!b39T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png 1272w, https://substackcdn.com/image/fetch/$s_!b39T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc152d0-da36-4e07-99d2-1b6d131e4eaa_1000x567.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">You know I had to do it</figcaption></figure></div><p>So I built an installer in Golang. It's 60 lines of code and literally copies an embedded file to %APPDATA%. It also has an embedded app manifest (standard on Windows to provide application metadata such as the icon and permission requests)</p><p>Simple. And it actually works really nicely!</p><p>Though I do need to figure out how to make it run on login still... that's a problem for another day, and I'm pretty sure it's as simple as just invoking <code>mklink</code> with the .exe and the user's Startup directory.</p><h1>Mac</h1><p><em>I paid &#163;79 for disappointment. Thanks, Tim.</em></p><p>As you'd expect from Apple, this is an utter nightmare if you're not 100% in their ecosystem, in which case it's only a small nightmare.</p><p>Fortunately, shipping a single static binary as a .app file is fairly easy. The .app file isn't a file it's actually a directory. Seriously! Try running <code>cd /Applications/some.app</code> and you can list the files inside. Finder just treats .app directories special when you double-click on them.</p><p>Of course, none of this is documented, you have to just figure stuff out by looking at other apps. Some of the <code>plist</code> format is documented (which is the equivalent of the app manifest on Windows: permissions, icons, metadata, etc.)</p><p>The annoying bit is actually <em>distributing</em> the application. I had to line the pockets of Mr Tim Apple to the tune of $99 (&#163;79) just to get a signing certificate so I can "notarise" my app. This basically does some cryptographic mumbojumbo to the .app contents so when people open it, it doesn't show a super scary message telling them I'm going to steal their firstborn. Instead, it just shows a slightly scary message telling them they downloaded it from the internet (in case they forgot.)</p><p>I guess this also raises the barrier of entry of malware on Mac. There was a fun article I read years ago (which of course I can't find since I didn't build Wisplight years ago) that was poking fun at how some Mac malware has a beautifully designed landing page. Apple products truly are for the elite I suppose.</p><h1>Linux</h1><p><em>I don't know why I even tried to be honest.</em></p><p>Yeah, no.</p><p>My Linux friends just told me to ship the raw binary and don't bother trying to mess around with the four thousand and twenty-one different app stores. I don't expect Linux people to even care about my app since it's not open source tbh.</p><h1>Safari on Mac and iOS</h1><p><em>yes it's actually possible to ship browser extensions for Safari! and yes it's a pain!</em></p><p>Safari, being the special snowflake of the browser world can't simply load a manifest or .crx file. You have to use XCode to build a fully fledged Swift app which embeds your extension as a resource and then loads this into Safari at runtime. Which means, more stuff to notarise, more moving parts and less stuff you can automate on CI.</p><p>But the result is amazing, having my browser history on iOS get saved to my custom full text search database and then new tabs on iOS Safari opening my custom search page is genuinely awesome.</p><h2>iOS will have to wait</h2><p>There's a minor detail here though which means iOS support for Wisplight won't be happening any time soon. Because Wisplight is, initially at least, primarily a privacy focused desktop application, there's no (easy) way to securely transfer your history from your iPhone to your computer.</p><p>I have built a very basic API which I spun up on Fly.io and set my iOS version of the extension to talk to - and I will likely use this as my own personal tool.</p><p>But this won't be available for the general public to use for one reason: privacy. I have to be very careful balancing the value proposition here because for a lot of people, the idea of their entire browser history (full URLs) being uploaded to a server someone else controls is an immediate turn-off.</p><p>I've discussed this with a few friends, both privacy minded and not and the general consensus is they're willing to sacrifice some <em>feeling</em> of privacy if the user experience is great, the product and monetisation model feel "geniune" and the problem is solved sufficiently (aka: it helps you find old websites you visited.)</p><p>There are a few solutions to this that I've thought of, ranging communicating the privacy impacts to users so they know exactly what's happening to using encryption somehow (not sure how yet...)</p><p>But this just isn't something I want to spend time on until I know for sure there's a market for a cloud offering. For now, I am focusing on building a really good desktop experience with a narrow target audience and maybe exploring monetisation in that region first before expanding towards subscription SaaS.</p><h2>That sounds great, where do I sign up?</h2><h3>This is the part where I build an email list and spam you with my course*</h3><p>*i don't have a course to spam you with, but it would be neat to stay in touch if you like what I do!</p><h1>Closed Beta</h1><p>I'm going to run a closed beta of the app first to work out all the weird issues that are inevitable when shipping to the desktop. So please fill in the form below to signal your intent!</p><p><strong>Note for early bird users: </strong>if I ever do decide to monetise this as a product (I'm undecided) all early bird users will never have to pay for the desktop app!</p>]]></content:encoded></item><item><title><![CDATA[Technology, creativity, culture and how they facilitate each other.]]></title><description><![CDATA[Essays on design, software, the world and the lines we draw amidst it all.]]></description><link>https://blog.barney.is/p/coming-soon</link><guid isPermaLink="false">https://blog.barney.is/p/coming-soon</guid><dc:creator><![CDATA[Barnaby]]></dc:creator><pubDate>Wed, 13 May 2020 14:24:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QNHd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QNHd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QNHd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!QNHd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!QNHd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!QNHd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QNHd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;https://cdn.discordapp.com/attachments/925383865487478785/1063191545769115668/southclaws_instagram_filter_50c8acee-bcdf-4fd0-a3f9-83bbca77dd85.png&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="https://cdn.discordapp.com/attachments/925383865487478785/1063191545769115668/southclaws_instagram_filter_50c8acee-bcdf-4fd0-a3f9-83bbca77dd85.png" title="https://cdn.discordapp.com/attachments/925383865487478785/1063191545769115668/southclaws_instagram_filter_50c8acee-bcdf-4fd0-a3f9-83bbca77dd85.png" srcset="https://substackcdn.com/image/fetch/$s_!QNHd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!QNHd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!QNHd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!QNHd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad38219a-f75b-4843-abf5-11f169960a93_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Mauve fast and break things.</p><p>That&#8217;s the dumb name I came up with to incentivise me to write more. How, you may ask? Well, I must break the perfectionism wall (again) and <em>just write</em>. Write about what? That&#8217;s what the name is all about. On paper, my &#8220;day job&#8221; is predominantly writing specifications, tickets and code. But there&#8217;s a whole lot more than that to talk about. With a clustered past of design, video and product experiences I hope to share some insight into just <em>building</em> and <em>creating</em> things. Not one specific area of this and not a high-level glossing over of the details. Given the opportunities, I will dive into colour theory, code optimisations, creativity vs criteria, culture and capitalism.</p><p>And yes, that last line did take a while.</p>]]></content:encoded></item></channel></rss>