<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>outputs</title>
	<atom:link href="https://dgen.net/0/category/outputs/feed/" rel="self" type="application/rss+xml" />
	<link>https://dgen.net/0</link>
	<description>Designing our data infrastructure</description>
	<lastBuildDate>Fri, 15 May 2026 09:36:26 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://dgen.net/0/wp-content/uploads/2017/02/cropped-dgen-D-logo-2017-32x32.png</url>
	<title>outputs</title>
	<link>https://dgen.net/0</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">232530259</site>	<item>
		<title>Introducing cl8; connecting constellations</title>
		<link>https://dgen.net/0/2026/05/12/constellation/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Tue, 12 May 2026 08:08:33 +0000</pubDate>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[socialchange]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://dgen.net/0/?p=8215</guid>

					<description><![CDATA[<img width="1024" height="576" src="https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-1024x576.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" fetchpriority="high" srcset="https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-1024x576.jpg 1024w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-300x169.jpg 300w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-768x432.jpg 768w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-1536x864.jpg 1536w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-830x467.jpg 830w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-230x129.jpg 230w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-350x197.jpg 350w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-480x270.jpg 480w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" />Hi friends, what have you all been learning? Many years ago (as captured in my 2017 Thread), I was trying to work out not just [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="1024" height="576" src="https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-1024x576.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-1024x576.jpg 1024w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-300x169.jpg 300w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-768x432.jpg 768w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-1536x864.jpg 1536w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-830x467.jpg 830w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-230x129.jpg 230w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-350x197.jpg 350w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10-480x270.jpg 480w, https://dgen.net/0/wp-content/uploads/2026/05/cl8-blog-2026-05-10.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" />
<h2 class="wp-block-heading">Hi friends, what have you all been learning?</h2>



<p>Many years ago (as captured in my <a href="/0/thread/thread-2/#constellation">2017 Thread</a>), I was trying to work out not just what everyone in my fascinating networks of friends, peers and collaborators were <em>doing</em>, but what knowledge they&#8217;d gathered.</p>



<p>When you know people over years and decades, it&#8217;s easy to lose track of what everyone has learned, what they are interested in, and what unexpected collaborations might exist as a result.</p>



<p>I&#8217;m often approached as someone who &#8216;<em>probably knows someone who does that</em>&#8216; and wanted to work out how to do that better, and to get out of the way far faster.</p>



<p>I wondered how to better <em>encourage serendipity</em>: part of this was to hold <a href="https://en.wikipedia.org/wiki/Salon_(gathering)">salon-like</a> evenings on M/S Hans to bring dozens of people together in-person and see what just happened. The energy from those events got me thinking about tools that could support everyone in those quite random settings, without creating yet another social network or yet another thing that got in the way more than it helped.</p>



<p class="has-text-align-center"><a href="https://d.cl8.io">Sign up now</a></p>



<p>If you&#8217;re reading this, it&#8217;s likely you already know me, so please feel free to sign up here (and note that the approval process is manual, so it won&#8217;t be instant).</p>



<h2 class="wp-block-heading">Let&#8217;s connect on our skills and interests and have fun</h2>



<p>The same challenge applies to most networking events, socials, and conferences—there&#8217;s a plethora of &#8216;conference apps&#8217; that are every bit as awful as you&#8217;d imagine (Whova, Hopin, Brella et al). But how to connect communities who have ideas, collaboration and work to do together? You might remember someone who you met at an event, half-remember their organisation, might want make an introduction and you can&#8217;t quite pull the thread, and everyone&#8217;s overwhelmed with social media connections.</p>



<p>For example, in work settings, the usual solution is LinkedIn. However, the usual problem with LinkedIn is that it&#8217;s LinkedIn: optimised for broadcasting and monetisation not belonging, and <a href="https://thenextweb.com/news/linkedin-browsergate-extension-scanning-privacy-fingerprint">your data is theirs</a> the moment you post it. Most people I know who use LinkedIn to connect after a business event just use its messaging function to get to an email address and then stop using it for that. So, there&#8217;s a signal! </p>



<h2 class="wp-block-heading">To start, how about we do less? (but with more fun)</h2>



<p><strong>cl8</strong> is a really small thing: a directory. </p>



<p>I grew up in a village of about 700 people &#8211; after a while you&#8217;d kind of just know everyone&#8217;s phone number, and have a sense of what they did. And, if you rewind a few decades, the person who would <strong><em>definitely</em></strong> know that was&#8230;the local telephone operator. One of the last telephone operators was a family friend (thank you Margie Knox), and she knew everyone, everything (and more) about everyone, including how they all connected with each other.  </p>



<p>So, can we reboot this in the 2026? </p>



<h2 class="wp-block-heading">Why not just use something that already exists?</h2>



<p>Nothing I&#8217;ve found so far quite fills this gap in this way. </p>



<p>I&#8217;m sure many have tried and failed (and we may too, but have more fun trying). One pattern I&#8217;m sure of though: small things can survive if they stay the right shape.</p>



<p>Looking at alternatives, they tend to fall into three categories: SaaS products that will likely eventually enshittify (Orbit, Luma, and Common Room already did); self-hosted tools that require a lot more faff than the challenge warrants (it needs to be as <em>easy</em> as possible); or shared documents (e.g. Airtable) that go stale because that&#8217;s just what happens: the utility or enthusiasm atrophies and, let&#8217;s face it, they&#8217;re just so <em>desperately</em> dull. </p>



<p>None of them seem to hold the shape of a human network, run by individuals, with communities of overlapping and transitory interests, where skills might cluster and gaps are plentiful. And, of course, all of them involve handing your member data to a platform with rights that seek to keep them, rather than keeping users in control.</p>



<p>I wanted something lightweight enough to actually run myself, curated enough to stay useful, and honest about what it is: more of a <strong>social directory</strong> rather than a social network. Yes, also looking back to where a lot of social networks began (looking at you, <a href="https://www.well.com">Well</a>), and re-asking if the incentives to &#8216;keep growing&#8217; were the wrong solutions, and for the wrong reasons (looking at you, FB, Tw*t, Ning, and the rest of you). </p>



<h2 class="wp-block-heading">On words</h2>



<p><strong>cl8</strong> is a compression of &#8220;constellation&#8221; or &#8220;constellate&#8221; (as a verb), the name I use for communities of practice, and the (astronomical) language that threads through a lot of my projects.</p>



<p>A constellation isn&#8217;t a random scatter of points, it&#8217;s more like a pattern that becomes legible when you can work out how to read it. The points were always there: a constellation is what happens when you impose meaning on proximity and <strong>cl8</strong> is, perhaps, a type of social telescope. The people were already in the room, more or less: the tool just makes connections visible. Less stuff, more fun.</p>



<h2 class="wp-block-heading">What it does</h2>



<p>You sign in with Google or a verified email, fill in your name, a short bio, and <strong>tag yourself with your skills and interests</strong>. Ideally not job titles, but rather the things you&#8217;d say to someone when meeting them at one of my salon evenings on the boat.</p>



<p>It&#8217;s a searchable, private directory where your profile is visible only to other authenticated members of that <strong>cl8</strong> instance. Access is granted by whoever runs that community: human curation is part of the design.</p>



<p>It can run on your own server, your community controls the membership, and your data is yours. I&#8217;ve built it for my dgen network constellation (you can sign up at <a href="https://d.cl8.io/">d.cl8.io</a> and as its curator it may take me a little while to manually approve you). The first instance is also running for IB1 (Icebreaker One), which is exactly the point: one tool, many communities, each owning their own. You can sign up for that one at <a href="https://ib1.org/constellation">ib1.org/constellation</a>. </p>



<p>And yes, you&#8217;ll hopefully find some things in all of this that surprise and delight: it&#8217;s the start of a journey to doing things differently. It should be fun, so adding in things for <em><strong>your</strong></em> specific, quirky, bonkers community is up to you. Less faff, more fun.</p>



<h2 class="wp-block-heading">What it doesn&#8217;t do</h2>



<p>It doesn&#8217;t </p>



<ul class="wp-block-list">
<li>reveal any information about you to anyone that you don&#8217;t want to share (see <a href="https://d.cl8.io/privacy">https://d.cl8.io/privacy</a>)</li>



<li>track you (no cookies)</li>



<li>create more noise in the world</li>
</ul>



<h2 class="wp-block-heading">On building it</h2>



<p><strong>cl8</strong> is a just few hundred KB of code: a single Node.js file with zero npm dependencies. It mirrors the same architecture as Broadside: copy the file to a server, configure, start a service, done. The data lives in flat JSON. The whole thing was built with AI assistance in the same spirit as the other tools in this stack: it&#8217;s been something I&#8217;ve wanted for years, and AI has helped me build it in about the same time as it would have taken to evaluate and customise any SaaS alternatives and then <em>sign up for none of them</em>.</p>



<p>It&#8217;s meant to be the absolute minimum. A social directory for a few hundred people doesn&#8217;t need a database cluster, it does need good session management, solid authentication and security, and enough care in the UI to make filling in your profile feel like something other than homework. Less code, more fun.</p>



<p>If you run a community of practice and you&#8217;re tired of it living inside someone else&#8217;s product, ping me. It&#8217;s <a href="https://dgen.net/0/connect/">open licence</a>, deployable in under an hour, and then the only person looking after your community&#8217;s data is you (and them).</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8215</post-id>	</item>
		<item>
		<title>Broadside: write once, post many, keep everything</title>
		<link>https://dgen.net/0/2026/04/26/broadside/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Sun, 26 Apr 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[business]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[stuff]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://dgen.net/0/?p=7838</guid>

					<description><![CDATA[<img width="1024" height="576" src="https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-1024x576.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-1024x576.jpg 1024w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-300x169.jpg 300w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-768x432.jpg 768w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-1536x864.jpg 1536w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-830x467.jpg 830w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-230x129.jpg 230w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-350x197.jpg 350w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-480x270.jpg 480w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" />A self-hosted social posting tool, ensuring you own your own content In my ongoing experiments with ai-assisted dev of tools I&#8217;d like, I&#8217;ve create Broadside [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="1024" height="576" src="https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-1024x576.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-1024x576.jpg 1024w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-300x169.jpg 300w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-768x432.jpg 768w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-1536x864.jpg 1536w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-830x467.jpg 830w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-230x129.jpg 230w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-350x197.jpg 350w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427-480x270.jpg 480w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-diamond.v20260427.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" />
<h2 class="wp-block-heading">A self-hosted social posting tool, ensuring you own your own content</h2>



<p>In my ongoing experiments with ai-assisted dev of tools I&#8217;d like, I&#8217;ve create Broadside to solve a specific irritation. As we all know, “<a href="https://www.google.com/search?q=%E2%80%9CIf+you+aren%E2%80%99t+paying+for+the+product%2C+you+are+the+product.%E2%80%9D">If you aren’t paying for the product, you are the product</a>.” and as all these tools develop their own special <a href="https://en.wikipedia.org/wiki/Enshittification">enshittifications</a>, it feels like it&#8217;s time to have another go at inverting the models. </p>


<div class="wp-block-image img-left">
<figure class="alignleft size-large is-resized"><a href="https://dgen.net/0/wp-content/uploads/2026/04/Screenshot-2026-04-07-at-19.53.09.png"><img decoding="async" width="1024" height="685" src="https://dgen.net/0/wp-content/uploads/2026/04/Screenshot-2026-04-07-at-19.53.09-1024x685.png" alt="" class="wp-image-7862" style="aspect-ratio:1.4949112952561037;object-fit:contain;width:386px;height:auto" srcset="https://dgen.net/0/wp-content/uploads/2026/04/Screenshot-2026-04-07-at-19.53.09-1024x685.png 1024w, https://dgen.net/0/wp-content/uploads/2026/04/Screenshot-2026-04-07-at-19.53.09-300x201.png 300w, https://dgen.net/0/wp-content/uploads/2026/04/Screenshot-2026-04-07-at-19.53.09-768x514.png 768w, https://dgen.net/0/wp-content/uploads/2026/04/Screenshot-2026-04-07-at-19.53.09-1536x1028.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>Also, with the demise of that old-bird-site, things have become more federated and fragmented. I wanted to post across Mastodon, Bluesky, Threads and LinkedIn at the same time, and do so without &#8216;losing&#8217; what I&#8217;d written the moment I hit publish.</p>



<p>Broadside it a small web app that posts to all four simultaneously, keeps a searchable archive of everything locally, and pulls social feeds into one place, including creating useful open things, like an RSS feed.  This post is about why I made it, what it does, and the slightly eccentric vocabulary it uses.</p>



<p>You can read all my posts here: <a href="https://broadside.dgen.net/bindery/gavin">https://broadside.dgen.net/bindery/gavin</a></p>



<p>If you&#8217;d like to try it, just ping me (on any channel).</p>



<h3 class="wp-block-heading"><strong>You probably didn&#8217;t know LinkedIn is a one-way street</strong></h3>



<p>If you post to LinkedIn regularly, you&#8217;re building a professional record in a place <strong>you cannot back up</strong>. They do not let you download your own posts in bulk &#8211; the &#8220;account data export&#8221; doesn&#8217;t include posts. You can use their API to POST to the site, but not GET your own content back (without paying).</p>



<p>For the platform most associated with <em>professional credibility</em> where people are documenting their work, sharing hard-won thinking, and announcing things that matter to them,  to offer no way to retrieve what you&#8217;ve put there is, to be generous, unprofessional.</p>



<p>The same applies across many platforms, to varying degrees and I&#8217;ve maintained this website (dgen.net) to be both a business site and a master record of my own works, that I completely control. With music I am addressing a version of this <a href="https://dgen.net/0/2026/02/25/discovery-collection-connection/">by building a tool to convert my Spotify playlists into a physical record catalogue</a>, because streaming solved discovery but not &#8216;ownership&#8217;. Social media has the same shape: it solved distribution but not possession.  Broadside is an attempt to do something about that. </p>



<p>And, yes, of course there are loads of self-publishing tools, but they&#8217;re often commercialised into their own SaaS businesses with similar issues of enshittification (looking at you TweetDeck/HootSuite), or too &#8216;techy&#8217; to actually do yourself. Alternative services, like Mastodon are great but also directly compete with, rather than replace the production flow.</p>



<h2 class="wp-block-heading">What Broadside does</h2>



<p>Broadside runs on my own server (you can host your own too, once I get it on GitHub, open licence of course), and it supports multiple users (so I can enable my constellations and communities to use it for free). It connects social accounts, enables a post to be written in a single compose window, and it posts simultaneously to whichever platforms you select (Mastodon, Bluesky, Threads, LinkedIn, or any combination. Note that Facebook and others don&#8217;t allow connections like this). Link previews, image attachments and scheduled posts all work.</p>



<p>It also is keep a copy.</p>



<p>Before anything goes to a social platform, it&#8217;s written to an archive on my server. That archive is searchable and downloadable. If any other platform disappears, your posts don&#8217;t (nb: if my/your server vanishes, you have backups everywhere else you&#8217;ve posted). If you want to find what you said about something three years ago, you can. This useful to me &#8211; having a personal, searchable archive of all my public writing is just <em>nice</em>, independently of the cross-posting convenience.</p>



<p>There&#8217;s also a feed view, pulling in my Mastodon and Bluesky feeds together into one place (NB: LinkedIn and Threads don&#8217;t allow this, and Facebook doesn&#8217;t allow anything). </p>



<h2 class="wp-block-heading">With added AI?</h2>


<div class="wp-block-image img-right">
<figure class="alignright size-large is-resized"><a href="https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04.jpg"><img decoding="async" width="1024" height="555" src="https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-1024x555.jpg" alt="" class="wp-image-7852" style="aspect-ratio:1.8450767065929918;width:472px;height:auto" srcset="https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-1024x555.jpg 1024w, https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-300x163.jpg 300w, https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-768x416.jpg 768w, https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-1536x832.jpg 1536w, https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-830x450.jpg 830w, https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-230x125.jpg 230w, https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-350x190.jpg 350w, https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04-480x260.jpg 480w, https://dgen.net/0/wp-content/uploads/2026/04/Bindery-research-2026-04-04.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>I added an AI-assisted <strong>research tool</strong> that automatically surfaces related links (e.g. Wikipedia, academic papers, Guardian articles, Hacker News discussions and things I&#8217;m experimenting with) for anything I post. This last bit genuinely surprised me with how useful it can be by lowering the &#8216;friction&#8217; in then googling for references &#8211; in an age of fake news, it&#8217;s nice to filter on some diverse-yet-trusted sources. The whole thing was built with Claude and, like my other experiments is stuff I wanted but would never have had time to build a decade ago.</p>



<h2 class="wp-block-heading">And, a white-listed constellation?</h2>



<p>Of course, once you&#8217;ve got a publishing tool that works well, you can share it with your friends. And then you have something that&#8217;s bot-free, curated (h/t <a href="https://www.gyford.com/phil/writing/2007/02/04/the-haddock-dire/">haddock</a>), and more akin to the original idea of shared bookmarking and socials. Back to basics, without the tracking (no, really tracking, like <a href="https://thenextweb.com/news/linkedin-browsergate-extension-scanning-privacy-fingerprint">LinkedIn scanning all your browser extensions to fingerprint your machine and track you</a> is actually a thing, never mind cookies).</p>



<p>All while <strong>not having to switch</strong> away from, or shut down, places you like to hangout with <em><strong>other</strong> </em>friends and colleagues.</p>



<p>You can probably guess where I might go next with this: not leaving places, but rather <em><strong>connecting</strong></em> them.</p>



<h2 class="wp-block-heading">On words</h2>



<p>Those who know me already know I love finding fun words (e.g. <a href="http://ib1.org">Icebreaker One</a>, <a href="https://dgen.net/0/2017/03/10/the-amee-story-part-one/">AMEE</a>, <a href="https://dgen.net/0/overview/tornado-history/">Tornado</a>) to make using things <em>just feel good</em>.  And, of course, design matters deeply to all of this so I&#8217;m experimenting with letting people choose their own themes.  We love to personalise things. </p>



<p>Note that while I&#8217;m using ai for these prototypes, a quick plug for my friends at <a href="https://philpottdesign.com/">philpottdesign.com</a>, just because ;).</p>



<p>I&#8217;ve given Broadside its own vocabulary because I think it&#8217;s  more interesting than calling things &#8220;dashboard&#8221; and &#8220;feed&#8221;.</p>



<p><strong>Broadside</strong>: historically, this is a large sheet printed on one side and distributed as news, proclamations, or verse &#8211; one of the original one-to-many formats. It felt right for a tool that takes one piece of writing and to many public spaces at once. Obviously, given my interest in things nautical, broadside is also when all the guns on one side of a warship are fired simultaneously&#8230; so quite apt!</p>



<p><strong>The Murmurator</strong>: the compose interface. A murmuration is what you see when a flock of starlings moves as one coherent shape. Social media can feel a bit like that and The Murmurator is where you introduce something into the flow.</p>



<p><strong>Murmurings</strong>: your own incoming feeds from the people you follow, across the networks.</p>



<p><strong>The Bindery</strong>: your personal post archive. The Bindery refers to &#8220;a&nbsp;studio,&nbsp;workshop&nbsp;or&nbsp;factory&nbsp;where sheets of (usually) paper are fastened together to make books&#8221; [<a href="https://en.wikipedia.org/wiki/Bindery">wikipedia</a>] so felt apt for where your own posts are gathered, ordered, and made publicly accessible by default (as a public web page and RSS feed).</p>



<p><strong>Commonplace</strong>: As I add people from my constellation into our shared Broadside instance, the Commonplace is our collective archive: everything everyone has posted, in one place (as a public web page and RSS feed). (originally I used <em>Sammelband</em> a <a href="https://en.wikipedia.org/wiki/Sammelband">German word</a> for a &#8216;volume that binds together separately published works&#8217; but that was getting a bit too esoteric, even for me).</p>



<h2 class="wp-block-heading"><strong>Addenda</strong>: re-establishing control</h2>



<p>Stepping aside from all the stupid AI-hype, I think we&#8217;re at a fascinating juncture that reminds me of the 1990s early web. The same AI tools that vast platform players are racing to deploy to bind us <strong>to them</strong>, are equally available to <strong>all of us</strong>. </p>



<p>We can all now build personalised infrastructure, in hours or days, that would have taken dedicated teams many months or years before. Broadside is an example of this: a small act of reclaiming your relationship with your own writing, from the platforms you publish on and can control.</p>



<p>If we can&#8217;t build things for everyone, it won&#8217;t <em>work</em> for all of us.</p>



<p>To quote NTK, &#8220;<em>THEY STOLE OUR REVOLUTION</em>. NOW WE&#8217;RE STEALING IT BACK&#8221;</p>



<figure class="wp-block-image size-large"><a href="https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk.jpg"><img decoding="async" width="1024" height="576" src="https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk-1024x576.jpg" alt="" class="wp-image-8209" srcset="https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk-1024x576.jpg 1024w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk-300x169.jpg 300w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk-768x432.jpg 768w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk-830x467.jpg 830w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk-230x129.jpg 230w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk-350x197.jpg 350w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk-480x270.jpg 480w, https://dgen.net/0/wp-content/uploads/2026/04/broadside-ntk.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7838</post-id>	</item>
		<item>
		<title>From discovery to collection to connection</title>
		<link>https://dgen.net/0/2026/02/25/discovery-collection-connection/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Wed, 25 Feb 2026 12:20:59 +0000</pubDate>
				<category><![CDATA[arts]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[music-industry]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[stuff]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://dgen.net/0/?p=7810</guid>

					<description><![CDATA[<img width="1024" height="691" src="https://dgen.net/0/wp-content/uploads/2026/02/music-cat-1024x691.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2026/02/music-cat-1024x691.jpg 1024w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-300x203.jpg 300w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-768x518.jpg 768w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-830x560.jpg 830w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-230x155.jpg 230w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-350x236.jpg 350w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-480x324.jpg 480w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" />Turning your Spotify playlist into a record collection, and why that could be really disruptive Quick summary I’ve long wanted to make it easy to [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="1024" height="691" src="https://dgen.net/0/wp-content/uploads/2026/02/music-cat-1024x691.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2026/02/music-cat-1024x691.jpg 1024w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-300x203.jpg 300w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-768x518.jpg 768w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-830x560.jpg 830w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-230x155.jpg 230w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-350x236.jpg 350w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat-480x324.jpg 480w, https://dgen.net/0/wp-content/uploads/2026/02/music-cat.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p><strong><em>Turning your Spotify playlist into a record collection, and why that could be really disruptive</em></strong></p>



<h2 class="wp-block-heading"><strong>Quick summary</strong></h2>



<p>I’ve long wanted to make it easy to buy the music of artists I like, not least because they get better £pay on physical, but when (not if) online services de-list things and hard drives break, they don’t vanish forever.</p>



<p>So, here&#8217;s a first experiment: pulling out one of my annual playlists into a ‘catalogue/shop window’ that links to various retailers, CD and Vinyl, and Bandcamp if that exists for the artist. </p>



<p style="text-decoration:line-through">This is only 2025 for now, while I work out some of the bugs. <a href="https://dgen.net/w/playlists/2025.html">https://dgen.net/w/playlists/2025.html</a></p>



<p>Update: now live at <a href="https://secondpress.club/p/5lx398">https://secondpress.club/p/5lx398</a> </p>



<h2 class="wp-block-heading"><strong>Some reflections (over the past three decades</strong>) </h2>



<p>This is an example of shifting power dynamics in consumption, engagement and how we can help deliver open markets that work for everyone.  I&#8217;ve also noticed that the music sector is often an early adopter/trailblazer for broader societal shifts. </p>



<p>Music streaming has solved discovery: a near-infinite library at your fingertips, finding new artists, forgotten classics and new connections has never been easier. </p>



<p>However, there&#8217;s an issue buried in that convenience: you don&#8217;t really &#8216;have&#8217; any of it. If a label dispute pulls an album, or you cancel your subscription, your carefully curated listening history evaporates. This can also apply to your &#8216;downloads&#8217; (even with good hard drives and cloud services, we still lose our digital stuff).</p>



<p>I&#8217;ve long thought about what it actually means to have a music collection. Back in the day (1998!) I put Virgin Megastores online: all 60,000 products (which is how may CDs were in a typical store), and designed a service with a colleague, Rick Glanville, where we could sell a subscription to digital downloads and give away a tiny MP3 player as part of the package. We even got Cambridge Electronics to make a little postage-stamp sized player. [yes, these pre-dated the iPod, iPod Shuffle and Spotify by many, many years]. </p>



<p>While on that journey it struck me that we were in the process of reducing &#8216;music&#8217; to a search box, killing most of the actual experience outside of listening, destroying record stores, and as humans we were likely to eventually push back on something so techno-reductionist. </p>



<p>Many of the things we enjoy about music listening are physical: this has played out in the long-term success of stores like Rough Trade, and the resurgence of vinyl (even cassettes are back!).  At the time, as a bit of rebellion, I also released my own music as a <a href="https://binarydust.org/consume/">19kg solid granite MP3 player and radio transmitter</a>.</p>



<p>In one of my many roles as CEO of <a href="https://ci-info.com/">Consolidated Independent</a>, we helped get over 20% of the world&#8217;s music online: millions of tracks from thousands of labels distributed to hundreds of retailers and services. Some of the labels were <em>terrified </em>of the web destroying their business due to piracy, but the whole system had to embrace it, including sorting out commercial realities. Sadly some of those realities massively skewed market value to &#8216;the big guys&#8217;, including ludicrous statements from some (let&#8217;s say &#8216;commercial&#8217;) CEOs that if artists wanted more money they should increase their output (as if <em>art</em> and <em>soup cans</em> are the same thing <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ). </p>



<p>Don&#8217;t get me wrong, I love the fact we have vast access to new music, and listen to a very diverse range of music. And, it creates different challenges for us as consumers and music fans. Now we can have more agency in balancing out the way the music market works &#8211; the <a href="https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar">cathedrals are not going anywhere, but the bazaar has some new spaces</a>.  </p>



<h2 class="wp-block-heading"><strong>What we can now do</strong></h2>



<p>One of the things I missed when listening was album art, and a few years back I made a <a href="https://dgen.net/0/2023/07/05/bringing-album-art-back-to-life/">12&#8243; sized screen to pull down and display</a> whatever I&#8217;m playing on Spotify (AI helped me code this, and I would never have got around to it without that help).</p>



<figure class="wp-block-image size-large"><a href="https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust.jpg"><img decoding="async" width="1024" height="568" src="https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-1024x568.jpg" alt="" class="wp-image-6382" srcset="https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-1024x568.jpg 1024w, https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-300x166.jpg 300w, https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-768x426.jpg 768w, https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-1536x852.jpg 1536w, https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-830x460.jpg 830w, https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-230x128.jpg 230w, https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-350x194.jpg 350w, https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust-480x266.jpg 480w, https://dgen.net/0/wp-content/uploads/2023/07/AlbumArt-BinaryDust.jpg 1706w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading"><strong>Building things just for me is fun, and&#8230; </strong></h2>



<p>Interestingly, with just a few AI prompts and some lightweight code, I created a tool that takes my Spotify playlist, cross-references every album against <a href="https://www.discogs.com/">Discogs</a>, and produced a personalised catalogue. </p>



<p>Based on the <strong>individual tracks</strong> I&#8217;d added to my annual playlist (which I have going back 8 years now), it looks up the <strong>album</strong> that it was on. It then works out which are available on <strong>CD</strong> and <strong>Vinyl</strong> (or <strong>digital</strong>&#8211;<strong>only</strong>), where to find them, and who sells them. And, not &#8216;just Amazon&#8217;, but others: Rough Trade, HMV and directly linking back to the artist&#8217;s Bandcamp. This is just the start of and idea, and took less than half a day to create it as a prototype.</p>



<p>This makes me wonder about a quiet promise of AI that doesn&#8217;t get talked about so much: enabling each of us to build the world we&#8217;d like. This will disrupt the big platforms (Spotify, Amazon, Apple) who have invested billions in making their aggregated experience frictionless and hard to leave. They&#8217;re using AI to make them more personalised and &#8216;sticky&#8217;. We can do the same for ourselves.</p>



<p>The same AI tools they&#8217;re racing to build are equally available to you and me. We can now spin up personalised services—in an afternoon—that would have taken a dedicated development team a decade ago.</p>



<p>So, this is a prototype of a custom, personalised catalogue and record-buying assistant that can be built around <em>your</em> taste, routing money to <em>your</em> preferred retailers that you can share with <em>your</em> friends. It is a small but real act of reclaiming your relationship with artists, and their music, from the big platforms.  </p>



<p>We can help bridge the gaps and connect the smaller services together (back to the original vision of the web). </p>



<p>And, looking forward, we can start blending, sharing, cross-connecting using federated services like <a href="https://mastodon.social/@agentGav">Mastodon</a> and then connecting people, places, gigs, merch, in a way that could actually help everyone. </p>



<p>Isn&#8217;t that exciting!?</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7810</post-id>	</item>
		<item>
		<title>Diome: definition</title>
		<link>https://dgen.net/0/2023/09/12/diome-definition/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Tue, 12 Sep 2023 12:56:00 +0000</pubDate>
				<category><![CDATA[data]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[research]]></category>
		<guid isPermaLink="false">https://dgen.net/0/?p=6687</guid>

					<description><![CDATA[<img width="881" height="1024" src="https://dgen.net/0/wp-content/uploads/2023/09/diome-881x1024.png" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2023/09/diome-881x1024.png 881w, https://dgen.net/0/wp-content/uploads/2023/09/diome-258x300.png 258w, https://dgen.net/0/wp-content/uploads/2023/09/diome-768x892.png 768w, https://dgen.net/0/wp-content/uploads/2023/09/diome-1322x1536.png 1322w, https://dgen.net/0/wp-content/uploads/2023/09/diome-830x964.png 830w, https://dgen.net/0/wp-content/uploads/2023/09/diome-230x267.png 230w, https://dgen.net/0/wp-content/uploads/2023/09/diome-350x407.png 350w, https://dgen.net/0/wp-content/uploads/2023/09/diome-480x558.png 480w, https://dgen.net/0/wp-content/uploads/2023/09/diome.png 1507w" sizes="(max-width: 881px) 100vw, 881px" />Diome [noun] A data biome that represents a temporal cluster of data from which specific insights can be learned, analysed and/or derived. Discussion This is [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="881" height="1024" src="https://dgen.net/0/wp-content/uploads/2023/09/diome-881x1024.png" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2023/09/diome-881x1024.png 881w, https://dgen.net/0/wp-content/uploads/2023/09/diome-258x300.png 258w, https://dgen.net/0/wp-content/uploads/2023/09/diome-768x892.png 768w, https://dgen.net/0/wp-content/uploads/2023/09/diome-1322x1536.png 1322w, https://dgen.net/0/wp-content/uploads/2023/09/diome-830x964.png 830w, https://dgen.net/0/wp-content/uploads/2023/09/diome-230x267.png 230w, https://dgen.net/0/wp-content/uploads/2023/09/diome-350x407.png 350w, https://dgen.net/0/wp-content/uploads/2023/09/diome-480x558.png 480w, https://dgen.net/0/wp-content/uploads/2023/09/diome.png 1507w" sizes="(max-width: 881px) 100vw, 881px" />
<p class="has-cyan-bluish-gray-background-color has-background has-medium-font-size"><strong>Diome</strong> <br><em>[noun]</em> <br>A data biome that represents a temporal cluster of data from which specific insights can be learned, analysed and/or derived.</p>



<p></p>



<h4 class="wp-block-heading"><strong>Discussion</strong></h4>



<p>This is public on <a href="https://www.linkedin.com/feed/update/urn:li:activity:7107443674887634944">LinkedIn</a> (open <a href="https://docs.google.com/document/d/1kqc9-LERkX4g6JUqY3-rUq9genEi_9AHxp0iunXbJOI/edit">gdoc here</a> if you&#8217;d like to contribute)</p>



<ul class="wp-block-list">
<li>when training AI, if you have a load of similar diomes you&#8217;ll end up with monocultural outcomes.</li>



<li>in the same way, &#8216;monoculture&#8217; biomes means you cannot have the degree of biodiversity to sustain a planet, if you don&#8217;t have enough diomes you wont be able to represent the richness of our world (natural and human)</li>



<li>ensure that the diome has as complete a representation of the system as possible, with appropriate granularity, resolution, quality, volume and systems ontology?</li>
</ul>



<p>Builds on the definition of <a href="https://en.wikipedia.org/wiki/Biome">Biome</a></p>



<p>&#8220;A <strong>biome</strong> is a biogeographical unit consisting of a biological community that has formed in response to the physical environment in which they are found and a shared regional climate. Biomes may span more than one continent. Biome is a broader term than habitat and can comprise a variety of habitats.&#8221;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6687</post-id>	</item>
		<item>
		<title>ai code example: animated planetary orbit</title>
		<link>https://dgen.net/0/2023/07/21/ai-code-example-animated-planetary-orbit/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Fri, 21 Jul 2023 20:31:49 +0000</pubDate>
				<category><![CDATA[astronomy]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[socialchange]]></category>
		<category><![CDATA[stuff]]></category>
		<guid isPermaLink="false">https://dgen.net/0/?p=6502</guid>

					<description><![CDATA[<img width="838" height="504" src="https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17.png" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17.png 838w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-300x180.png 300w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-768x462.png 768w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-830x499.png 830w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-230x138.png 230w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-350x211.png 350w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-480x289.png 480w" sizes="(max-width: 838px) 100vw, 838px" />Today&#8217;s example of how easy AI can make it to write code. The interactive animation below is the final output from various experiments below.[My words [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="838" height="504" src="https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17.png" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17.png 838w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-300x180.png 300w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-768x462.png 768w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-830x499.png 830w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-230x138.png 230w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-350x211.png 350w, https://dgen.net/0/wp-content/uploads/2023/07/Screenshot-2023-07-21-at-21.30.17-480x289.png 480w" sizes="(max-width: 838px) 100vw, 838px" />
<p class="has-cyan-bluish-gray-background-color has-background" style="font-size:22px">Today&#8217;s example of how easy AI can make it to write code. The <a href="/w/ai-orbit/shadow.html">interactive animation</a> below is the final output from various experiments below.<br>[My words have this colour background. My instructions to the AI are in bold. <br>The rest of the content on this page is the AI. All of it, including words, code and highlighting.] </p>



<iframe loading="lazy" src="https://dgen.net/w/ai-orbit/shadow.html" title="ai example" width="100%" height="600px" border="0"></iframe>



<p class="has-cyan-bluish-gray-background-color has-background" style="font-size:22px">To begin with I just asked it the following:<br><strong>write html, css and javascript to demonstrate a planet orbiting the sun</strong><br>It replied&#8230;</p>



<p>Creating a realistic 3D planet orbiting the sun requires more advanced graphics and libraries, but I can show you a basic demonstration using HTML, CSS, and JavaScript that simulates a simple planet orbiting the sun</p>



<p><strong>example.html</strong></p>



<pre class="wp-block-preformatted">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
  &lt;title&gt;Orbiting Planet&lt;/title&gt;
  &lt;link rel="stylesheet" href="styles.css"&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div class="sun"&gt;&lt;/div&gt;
  &lt;div class="planet"&gt;&lt;/div&gt;
  &lt;script src="script.js"&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>



<p><strong>CSS (styles.css):</strong></p>



<pre class="wp-block-preformatted">body {
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.sun {
  width: 100px;
  height: 100px;
  background-color: orange;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.planet {
  width: 30px;
  height: 30px;
  background-color: blue;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}</pre>



<p><strong>JavaScript (script.js):</strong></p>



<pre class="wp-block-preformatted">let angle = 0;
const orbitRadius = 150;
const orbitSpeed = 0.005;

function animatePlanet() {
  const planet = document.querySelector('.planet');
  const sun = document.querySelector('.sun');
  const sunRect = sun.getBoundingClientRect();
  const centerX = sunRect.left + sunRect.width / 2;
  const centerY = sunRect.top + sunRect.height / 2;

  const x = centerX + orbitRadius * Math.cos(angle);
  const y = centerY + orbitRadius * Math.sin(angle);

  planet.style.left = x + 'px';
  planet.style.top = y + 'px';

  angle += orbitSpeed;
  requestAnimationFrame(animatePlanet);
}

animatePlanet();
</pre>



<p>This code creates a basic representation of a planet (blue circle) orbiting the sun (orange circle). It uses CSS to position and style the sun and the planet, and JavaScript to calculate the position of the planet as it orbits the sun.</p>



<p>Please note that this is a simplified demonstration and does not include realistic physics or 3D graphics. For more advanced and realistic animations, you would need to use libraries like Three.js or other WebGL frameworks.&#8221;</p>



<p class="has-cyan-bluish-gray-background-color has-background" style="font-size:22px">This is pretty astonishing [<a href="https://dgen.net/w/ai-orbit">output</a>]</p>



<iframe loading="lazy" src="https://dgen.net/w/ai-orbit" title="ai example" width="100%" height="400px" border="0"></iframe>



<p class="has-cyan-bluish-gray-background-color has-background" style="font-size:22px">but I wasn&#8217;t happy with it being a circular orbit, so I asked it to: <br><strong>redo with an elliptical orbit</strong></p>



<p>Creating an elliptical orbit requires more complex mathematical calculations and is beyond the scope of basic HTML, CSS, and JavaScript. However, I can show you an example using the p5.js library, which is a JavaScript library for creative coding and visualization. The p5.js library simplifies handling graphics and animation, making it easier to demonstrate an elliptical orbit.</p>



<ol class="wp-block-list">
<li>First, include the p5.js library in your HTML file:</li>
</ol>



<pre class="wp-block-preformatted">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
  &lt;title&gt;Elliptical Orbit&lt;/title&gt;
  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"&gt;&lt;/script&gt;
  &lt;style&gt;
    body {
      margin: 0;
      padding: 0;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;script src="sketch.js"&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>



<ol class="wp-block-list" start="2">
<li>Next, create a JavaScript file (e.g., &#8220;sketch.js&#8221;) that will handle the animation and display of the elliptical orbit:</li>
</ol>



<pre class="wp-block-preformatted">let sun;
let planet;
let orbitRadiusX = 150;
let orbitRadiusY = 100;
let angle = 0;
let orbitSpeed = 0.01;

function setup() {
  createCanvas(windowWidth, windowHeight);
  sun = createVector(width / 2, height / 2);
  planet = createVector(sun.x + orbitRadiusX, sun.y);
}

function draw() {
  background(240);

  // Draw the sun
  fill('orange');
  ellipse(sun.x, sun.y, 40, 40);

  // Calculate the position of the planet in the elliptical orbit
  let x = sun.x + orbitRadiusX * cos(angle);
  let y = sun.y + orbitRadiusY * sin(angle);

  // Draw the planet
  fill('blue');
  ellipse(x, y, 20, 20);

  // Update the angle for the next frame
  angle += orbitSpeed;
}</pre>



<p>The above code sets up a canvas, defines the sun and planet as vectors, and uses trigonometry to calculate the position of the planet as it moves along an elliptical orbit around the sun. The <code>orbitRadiusX</code> and <code>orbitRadiusY</code> variables determine the shape and size of the elliptical orbit, while the <code>orbitSpeed</code> variable controls the speed of the orbit.</p>



<p>Save these HTML and JavaScript files in the same folder and open the HTML file in a web browser. You should see an animation of a blue planet orbiting an orange sun in an elliptical path. Feel free to adjust the values of <code>orbitRadiusX</code>, <code>orbitRadiusY</code>, and <code>orbitSpeed</code> to experiment with different elliptical orbits.</p>



<p class="has-cyan-bluish-gray-background-color has-background" style="font-size:22px">This is a great example of how game-changing AI is becoming. To see the two bits of code (copy &amp; pasted) in action, click <a href="https://dgen.net/w/ai-orbit">Circular</a> or <a href="https://dgen.net/w/ai-orbit/ellipse.html">Elliptical</a>. Remarkable.</p>



<iframe loading="lazy" src="https://dgen.net/w/ai-orbit/ellipse.html" title="ai example" width="100%" height="300px"></iframe>



<p class="has-cyan-bluish-gray-background-color has-background has-medium-font-size">And then my friend Andy noticed it wasn&#8217;t doing a Keplerian orbit, so <br><strong>redo with a keplerian orbit</strong><br>led to this</p>



<p>Creating a Keplerian orbit involves implementing more complex mathematical formulas to simulate the motion of celestial bodies following Kepler&#8217;s laws of planetary motion. To do this, we&#8217;ll use the <code>p5.js</code> library to handle graphics and animation.</p>



<ol class="wp-block-list">
<li>First, include the p5.js library in your HTML file:</li>
</ol>



<pre class="wp-block-preformatted">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
  &lt;title&gt;Keplerian Orbit&lt;/title&gt;
  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"&gt;&lt;/script&gt;
  &lt;style&gt;
    body {
      margin: 0;
      padding: 0;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;script src="sketch.js"&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>



<ol class="wp-block-list" start="2">
<li>Next, create a JavaScript file (e.g., &#8220;sketch.js&#8221;) that will handle the animation and display of the Keplerian orbit:</li>
</ol>



<pre class="wp-block-preformatted">let sun;
let planet;
let a; // Semi-major axis
let b; // Semi-minor axis
let angle = 0;
let orbitSpeed = 0.01;

function setup() {
  createCanvas(windowWidth, windowHeight);
  sun = createVector(width / 2, height / 2);
  a = 150; // Set the semi-major axis
  b = 100; // Set the semi-minor axis
  planet = createVector(sun.x + a, sun.y);
}

function draw() {
  background(240);

  // Draw the sun
  fill('orange');
  ellipse(sun.x, sun.y, 40, 40);

  // Calculate the position of the planet in the Keplerian orbit
  let x = sun.x + a * cos(angle);
  let y = sun.y + b * sin(angle);

  // Draw the planet
  fill('blue');
  ellipse(x, y, 20, 20);

  // Update the angle for the next frame
  angle += orbitSpeed;
}
</pre>



<p>The above code sets up a canvas, defines the sun and planet as vectors, and uses trigonometry to calculate the position of the planet following Kepler&#8217;s laws of planetary motion. The <code>a</code> and <code>b</code> variables determine the size and shape of the Keplerian orbit, while the <code>orbitSpeed</code> variable controls the speed of the orbit.</p>



<p>Save these HTML and JavaScript files in the same folder and open the HTML file in a web browser. You should see an animation of a blue planet following a Keplerian orbit around an orange sun. Feel free to adjust the values of <code>a</code>, <code>b</code>, and <code>orbitSpeed</code> to experiment with different Keplerian orbits.</p>



<p class="has-cyan-bluish-gray-background-color has-background has-medium-font-size"><a href="https://dgen.net/w/ai-orbit/kepler.html">Interesting</a> but still not quite there</p>



<iframe loading="lazy" src="https://dgen.net/w/ai-orbit/kepler.html" title="ai example" width="100%" height="300px"></iframe>



<p class="has-cyan-bluish-gray-background-color has-background has-medium-font-size">So let&#8217;s <br><strong>place the sun at a focus point and add gravity</strong></p>



<p>To add gravity to the Keplerian orbit simulation, we can use Newton&#8217;s law of universal gravitation to calculate the gravitational force between the sun and the planet. The force will affect the acceleration of the planet, causing it to move in a curved path around the sun.</p>



<p>Here&#8217;s the updated code that includes gravity:</p>



<pre class="wp-block-preformatted">let sun;
let planet;
let a; // Semi-major axis
let b; // Semi-minor axis
let c; // Distance from the center to focus (c = sqrt(a^2 - b^2))
let angle = 0;
let orbitSpeed = 0.01;
let G = 0.5; // Gravitational constant

function setup() {
  createCanvas(windowWidth, windowHeight);
  sun = createVector(width / 2, height / 2);
  a = 150; // Set the semi-major axis
  b = 100; // Set the semi-minor axis
  c = sqrt(a * a - b * b);
  planet = createVector(sun.x + c + a, sun.y);
}

function draw() {
  background(240);

  // Draw the sun at the focus point
  fill('orange');
  ellipse(sun.x, sun.y, 40, 40);

  // Calculate the position of the planet in the Keplerian orbit
  let x = sun.x + c + a * cos(angle);
  let y = sun.y + b * sin(angle);

  // Draw the planet
  fill('blue');
  ellipse(x, y, 20, 20);

  // Calculate the distance between the planet and the sun
  let distance = dist(x, y, sun.x, sun.y);

  // Calculate the gravitational force between the planet and the sun
  let force = G * (1 / (distance * distance));

  // Calculate the angle of the force vector
  let forceAngle = atan2(sun.y - y, sun.x - x);

  // Calculate the acceleration of the planet due to gravity
  let acceleration = force / 1; // We can simplify the mass of the planet as 1

  // Update the planet's velocity based on the acceleration
  orbitSpeed += acceleration;

  // Update the angle for the next frame
  angle += orbitSpeed;
}

</pre>



<p>In this updated code, we introduce the gravitational constant <code>G</code> (you can adjust its value to control the strength of gravity) and calculate the gravitational force between the sun and the planet using Newton&#8217;s law of universal gravitation. The planet&#8217;s acceleration is then updated based on the gravitational force, and its velocity is adjusted accordingly. The result is a more realistic simulation of a Keplerian orbit with gravity affecting the motion of the planet around the sun.</p>



<p>Save these HTML and JavaScript files in the same folder and open the HTML file in a web browser. You should now see an animation of a blue planet following a Keplerian orbit around an orange sun, with gravity affecting its movement. Feel free to experiment with different values of <code>G</code> and other parameters to observe different orbital behaviors.</p>



<p class="has-cyan-bluish-gray-background-color has-background has-medium-font-size"><a href="https://dgen.net/w/ai-orbit/kepler-gravity.html">Very interesting</a>. It get&#8217;s it much more right, but there&#8217;s an acceleration that shouldn&#8217;t be there. The planet spins faster and faster&#8230; </p>



<iframe loading="lazy" src="https://dgen.net/w/ai-orbit/kepler-gravity.html" title="ai example" width="100%" height="320px"></iframe>



<p class="has-cyan-bluish-gray-background-color has-background has-medium-font-size">so, rather than try and troubleshoot it, let&#8217;s just ask it<br><strong>why does the speed of the planet accelerate?</strong></p>



<p>Apologies for the confusion in the code. The speed of the planet should not accelerate as a result of gravitational force. In reality, the speed of a planet in a stable orbit around the sun remains constant.</p>



<p>To accurately simulate a stable orbit, we need to use the principles of circular motion and centripetal force. The centripetal force acts perpendicular to the velocity vector, causing the planet to follow a circular path around the sun. In this scenario, the speed of the planet remains constant while its direction continuously changes.</p>



<p>Let&#8217;s correct the code to achieve a stable circular orbit:</p>



<pre class="wp-block-preformatted">let sun;
let planet;
let a; // Semi-major axis
let b; // Semi-minor axis
let c; // Distance from the center to focus (c = sqrt(a^2 - b^2))
let angle = 0;
let orbitSpeed = 0.01;
let G = 0.5; // Gravitational constant

function setup() {
  createCanvas(windowWidth, windowHeight);
  sun = createVector(width / 2, height / 2);
  a = 150; // Set the semi-major axis
  b = 100; // Set the semi-minor axis
  c = sqrt(a * a - b * b);
  planet = createVector(sun.x + c + a, sun.y);
}

function draw() {
  background(240);

  // Draw the sun at the focus point
  fill('orange');
  ellipse(sun.x, sun.y, 40, 40);

  // Calculate the position of the planet in the Keplerian orbit
  let x = sun.x + c + a * cos(angle);
  let y = sun.y + b * sin(angle);

  // Draw the planet
  fill('blue');
  ellipse(x, y, 20, 20);

  // Update the angle for the next frame
  angle += orbitSpeed;
}
</pre>



<p class="has-cyan-bluish-gray-background-color has-background">And, there we have it. We didn&#8217;t even need to understand why the planet was accelerating, or if there was a bug in the code, just ask a question and it corrected itself.</p>



<iframe loading="lazy" src="https://dgen.net/w/ai-orbit/kepler-gravity2.html" title="ai example" width="100%" height="300px"></iframe>



<p class="has-cyan-bluish-gray-background-color has-background has-medium-font-size">I wanted to change the colours and layout a bit, so I asked it to do that too<br><strong>left-align the scene, make the sun yellow, the background black and the planet blue</strong><br>and then I thought it&#8217;d be fun if we made it interactive, so I asked <br><strong>add a slider so I can change the value of G and ensure that the animation updates automatically if the value is changed. put the slider at the top in the middle<br></strong>which it didn&#8217;t get right the first time (the slider moved but the planet speed didn&#8217;t change) so,<br><strong>that isn&#8217;t updating the value of G in the animation<br></strong>which fixed it, and then a final bit of fiddling<br><strong>print the value of G on the screen as well. align the slider so it&#8217;s just above the animation</strong><br><strong>move it 200px left. Keep the value of G next to the slider<br></strong>and so on, which resulted in the <a href="/w/ai-orbit/example.html">interactive example</a> at the top of this page<br><br>And, lastly, for fans of <a href="https://processing.org/">Processing</a>, simply asking it to <br><strong>rewrite this in Processing<br></strong>gave this working code</p>



<pre class="wp-block-preformatted">int sunX, sunY;
float a; // Semi-major axis
float b; // Semi-minor axis
float c; // Distance from the center to focus (c = sqrt(a^2 - b^2))
float angle = 0;
float orbitSpeed = 0.01;
float G = 0.5; // Gravitational constant

void setup() {
  size(800, 600);
  sunX = width / 4;
  sunY = height / 2;
  a = 150; // Set the semi-major axis
  b = 100; // Set the semi-minor axis
  c = sqrt(a * a - b * b);
}

void draw() {
  background(0); // Set background color to black

  // Draw the sun at the focus point
  fill(255, 255, 0); // Change sun color to yellow
  ellipse(sunX, sunY, 40, 40);

  // Calculate the position of the planet in the Keplerian orbit
  float x = sunX + c + a * cos(angle);
  float y = sunY + b * sin(angle);

  // Draw the planet
  fill(0, 0, 255); // Change planet color to blue
  ellipse(x, y, 20, 20);

  // Update the angle for the next frame based on the slider value
  angle += G * orbitSpeed; // Use G to modify orbit speed

  // Display the value of G next to the slider
  fill(255);
  textSize(20);
  text("Gravitational Constant (G): " + G, 20, 20);
}

// Event handler for the slider
void mouseReleased() {
  if (mouseX &gt;= 20 &amp;&amp; mouseX &lt;= 320 &amp;&amp; mouseY &gt;= 40 &amp;&amp; mouseY &lt;= 60) {
    // Map the x-coordinate of the mouse to a value between 0 and 2 for G
    G = map(mouseX, 20, 320, 0, 2);
  }
}
</pre>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6502</post-id>	</item>
		<item>
		<title>Testing out this AI thing</title>
		<link>https://dgen.net/0/2023/03/24/testing-out-this-ai-thing/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Fri, 24 Mar 2023 17:58:08 +0000</pubDate>
				<category><![CDATA[business]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[stuff]]></category>
		<guid isPermaLink="false">https://dgen.net/0/?p=6281</guid>

					<description><![CDATA[Here&#8217;s a basic algorithm for trading based on 1% value swings: Note: This is a basic algorithm, and there are many factors to consider when [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ol class="wp-block-list">
<li>create an algorithm for trading based on 1% value swings</li>
</ol>
</blockquote>



<p class="has-background" style="background-color:#eeeeee">Here&#8217;s a basic algorithm for trading based on 1% value swings:</p>



<ol class="wp-block-list">
<li>Define your target security: Select a security that you wish to trade based on 1% value swings.</li>



<li>Set your trading parameters: Define the parameters for your trades, including the amount of capital you&#8217;re willing to invest, your desired profit margin, and your stop-loss limit.</li>



<li>Monitor the security&#8217;s value: Continuously monitor the value of your target security. You can use various tools such as trading software, financial news sources, or chart analysis to track its value.</li>



<li>Identify 1% value swings: When the security&#8217;s value changes by 1% in either direction, take note of it.</li>



<li>Buy or sell: If the value of the security has decreased by 1%, and you believe it will rebound, consider buying the security. Conversely, if the value of the security has increased by 1%, and you believe it may drop, consider selling the security.</li>



<li>Set stop-loss limit: To manage risk, set a stop-loss limit for each trade. This is the maximum amount of money you&#8217;re willing to lose if the trade doesn&#8217;t go in your favor.</li>



<li>Take profit: Set a profit target for each trade, which is the desired amount of profit you want to earn. When the security&#8217;s value reaches this target, close the trade and take your profit.</li>



<li>Repeat the process: Continue monitoring the security&#8217;s value, identifying 1% swings, and making trades as necessary.</li>
</ol>



<p class="has-background" style="background-color:#eeeeee">Note: This is a basic algorithm, and there are many factors to consider when trading, such as market conditions, liquidity, volatility, and more. It&#8217;s important to do your research and fully understand the risks involved before implementing any trading strategy.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>2. write this is pseudocode</p>
</blockquote>



<p class="has-background" style="background-color:#eeeeee">Sure, here&#8217;s the pseudocode for the trading algorithm based on 1% value swings:</p>



<figure class="wp-block-image size-large"><a href="https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35.png"><img decoding="async" width="1024" height="916" src="https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35-1024x916.png" alt="" class="wp-image-6282" srcset="https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35-1024x916.png 1024w, https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35-300x268.png 300w, https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35-768x687.png 768w, https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35-830x743.png 830w, https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35-230x206.png 230w, https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35-350x313.png 350w, https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35-480x429.png 480w, https://dgen.net/0/wp-content/uploads/2023/03/Screenshot-2023-03-24-at-17.53.35.png 1482w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="has-background" style="background-color:#eeeeee">Note that this is a basic pseudocode and it does not include error handling or other advanced features. Additionally, some variables and functions may need to be defined and implemented separately.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>3. write this in python</p>
</blockquote>



<p class="has-background" style="background-color:#eeeeee">Sure, here&#8217;s an example implementation of the trading algorithm based on 1% value swings in Python:</p>



<pre class="wp-block-preformatted has-white-color has-black-background-color has-text-color has-background">target_security = "AAPL"  # define the target security

# define the trading parameters
capital = 1000
profit_margin = 1.01  # 1% profit margin
stop_loss = 0.99  # 1% stop-loss limit

while True:
    current_value = get_current_value(target_security)  # get the current value of the target security
    if current_value >= profit_margin:
        sell(target_security)  # sell the security if it has increased by 1%
    elif current_value &lt;= stop_loss:
        buy(target_security)  # buy the security if it has decreased by 1%
    else:
        continue  # otherwise, continue monitoring the value

    # set stop-loss limit and profit target
    stop_loss_value = current_value * stop_loss
    profit_target_value = current_value * profit_margin

    while True:
        updated_value = get_current_value(target_security)  # get the updated value of the target security
        if updated_value &lt;= stop_loss_value:
            sell(target_security)  # sell the security if it hits the stop-loss limit
            break
        elif updated_value >= profit_target_value:
            sell(target_security)  # sell the security if it hits the profit target
            break
        else:
            continue  # otherwise, continue monitoring the value
</pre>



<p class="has-background" style="background-color:#eeeeee">Note that this is just an example implementation and may need to be adapted to your specific trading platform or strategy. Also, the <code>get_current_value</code>, <code>buy</code>, and <code>sell</code> functions are not defined here and need to be implemented separately based on the API or service you&#8217;re using.</p>



<p class="has-text-align-center"><em><strong>And now for some fun</strong></em></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>write this for a quantum computer</p>
</blockquote>



<p class="has-background" style="background-color:#eeeeee">While quantum computers have the potential to solve certain financial problems more efficiently than classical computers, it&#8217;s currently unclear how exactly they could be used for trading based on 1% value swings. As quantum computing is still in its early stages of development, there are few, if any, quantum trading algorithms that have been developed and tested at scale.</p>



<p class="has-background" style="background-color:#eeeeee">However, one possible approach to leveraging quantum computing for trading is by using quantum machine learning algorithms to analyze financial data and identify patterns that can be used to make trading decisions. For example, one could use quantum annealing to optimize portfolio selection and risk management, or quantum algorithms to perform efficient optimization of trading strategies.</p>



<p class="has-background" style="background-color:#eeeeee">Here&#8217;s an example of how one could use the Qiskit framework in Python to implement a simple quantum machine learning algorithm for financial prediction:</p>



<pre class="wp-block-preformatted has-white-color has-black-background-color has-text-color has-background">import numpy as np
from qiskit import Aer
from qiskit.circuit.library import ZZFeatureMap
from qiskit.aqua.algorithms import VQC
from qiskit.aqua.components.optimizers import COBYLA

# Define the target security and trading parameters
target_security = "AAPL"
capital = 1000
profit_margin = 1.01
stop_loss = 0.99

# Define the quantum feature map and backend
feature_map = ZZFeatureMap(feature_dimension=2)
backend = Aer.get_backend('qasm_simulator')

# Define the VQC classifier and optimizer
classifier = VQC(feature_map, None, None)
optimizer = COBYLA()

# Train the classifier on historical financial data
data = np.array([[0.5, 0.1], [0.1, 0.9], [0.2, 0.8], [0.3, 0.7], [0.4, 0.6]])
labels = np.array([0, 1, 1, 0, 0])
classifier.train(data, labels)

# Use the classifier to make trading decisions
while True:
    current_data = np.array([[get_current_price(target_security), get_current_volume(target_security)]])
    predicted_label = classifier.predict(current_data)[0]
    if predicted_label == 0:
        buy(target_security)
    elif predicted_label == 1:
        sell(target_security)
    else:
        continue

    # Set the stop-loss limit and profit target
    stop_loss_value = get_current_price(target_security) * stop_loss
    profit_target_value = get_current_price(target_security) * profit_margin

    while True:
        updated_price = get_current_price(target_security)
        if updated_price &lt;= stop_loss_value:
            sell(target_security)
            break
        elif updated_price >= profit_target_value:
            sell(target_security)
            break
        else:
            continue
</pre>



<p class="has-background" style="background-color:#eeeeee">Again, note that this is just a simple example of how one could use quantum machine learning for trading, and many details would need to be filled in depending on the specific application and data available.</p>



<p>So, there we have it. I can now learn how to write code for a quantum computer that might have some bearing on financial insights, with zero knowledge.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6281</post-id>	</item>
		<item>
		<title>Open Life Data Framework</title>
		<link>https://dgen.net/0/2021/11/23/open-life-data-framework/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Tue, 23 Nov 2021 08:30:36 +0000</pubDate>
				<category><![CDATA[business]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Government]]></category>
		<category><![CDATA[publications]]></category>
		<guid isPermaLink="false">https://www.dgen.net/0/?p=5335</guid>

					<description><![CDATA[<img width="724" height="1024" src="https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-724x1024.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-724x1024.jpg 724w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-212x300.jpg 212w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-768x1086.jpg 768w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-830x1174.jpg 830w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-230x325.jpg 230w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-350x495.jpg 350w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-480x679.jpg 480w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover.jpg 1024w" sizes="(max-width: 724px) 100vw, 724px" />Report: https://dgen.net/1/OpenLifeDataFramework-2021-11-18.pdf Official site: https://appg-longevity.org/open-life-data-framework Vision: To enable consent-based, trust-enhancing and secure sharing of personal ‘health-relevant data’ from the private sector to improve and level [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="724" height="1024" src="https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-724x1024.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-724x1024.jpg 724w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-212x300.jpg 212w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-768x1086.jpg 768w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-830x1174.jpg 830w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-230x325.jpg 230w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-350x495.jpg 350w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover-480x679.jpg 480w, https://dgen.net/0/wp-content/uploads/2021/11/OpenLifeDataFramework-2021-11-18-cover.jpg 1024w" sizes="(max-width: 724px) 100vw, 724px" /><p>Report: <a href="https://dgen.net/1/OpenLifeDataFramework-2021-11-18.pdf">https://dgen.net/1/OpenLifeDataFramework-2021-11-18.pdf</a></p>
<p>Official site: <a href="https://appg-longevity.org/open-life-data-framework">https://appg-longevity.org/open-life-data-framework</a></p>
<div class="page" title="Page 4">
<div class="layoutArea">
<div class="column">
<p>Vision: To enable consent-based, trust-enhancing and secure sharing of personal ‘<a href="https://doi.org/10.1038/s41746-020-00362-8">health-relevant data</a>’ from the private sector to improve and level up health and wellbeing.</p>
<p>Mission: To create the enabling conditions for public and private sector actors to design and implement a framework that facilitates trustworthy data sharing for public benefit while unlocking innovation to increase healthy life expectancy by 5 years while minimising health inequalities.</p>
<p>Throughout, there is an emphasis on the need for innovation, continuous development and learning balanced with the need to address long-term stability. That focus must be placed to prioritise the delivery of measurable outcomes and to communicate clearly along the journey.</p>
<p>The scope of this work includes data that is generated by the private sector (both commercial and non-profit actors), such as that from apps and digital services.</p>
<p>It does not aim to address public sector data, for example, in electronic health records. To illustrate, we build on classifications <a href="https://doi.org/10.1038/s41746-020-00362-8">in the paper</a> “Privacy protections to encourage the use of health-relevant digital data in a learning health system” and illustrate below.</p>
<p><img decoding="async" class="wp-image-5339 aligncenter" src="https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data.jpg" alt="" width="807" height="548" srcset="https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data.jpg 1480w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data-300x204.jpg 300w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data-768x521.jpg 768w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data-1024x695.jpg 1024w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data-830x563.jpg 830w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data-230x156.jpg 230w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data-350x237.jpg 350w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-health-relevalt-data-480x326.jpg 480w" sizes="(max-width: 807px) 100vw, 807px" /></p>
</div>
</div>
</div>
<p class="">The Open Life Data Framework was a recommendation in <em>The Health of the Nation</em>. Its rationale was published in the Lancet, <a href="https://www.thelancet.com/journals/lanhl/article/PIIS2666-7568(21)00081-7/fulltext"><em>Open Life Data to Support Healthy Longevity for All</em></a><em>, </em>on the same day the APPG published<em> Levelling Up Health</em> on 9 April 2021.</p>
<p class="">The specific goals are to:</p>
<ul data-rte-list="default">
<li>
<p class="">explore how better use of data and data-enabled technologies could make a positive contribution to the health, wellbeing and life chances of all people equitably.</p>
</li>
<li>
<p class="">propose solutions for innovating, scaling up and leveraging these technologies across the private, public and academic sectors.</p>
</li>
<li>
<p class="">ensure that digital health infrastructure and innovation support is fairly distributed and resilient, reducing inequalities in co-creation, access and outcomes.</p>
</li>
<li>
<p class="">build public trust in the use of data for individual and collective health and social care purposes.</p>
</li>
</ul>
<p class="">The APPG formed an expert group to define what is needed to establish an open health system, drawing from other models such as the UK Open Banking system and standards to harness data-intensive technologies to extend &#8211; and make more equal &#8211; the healthy longevity of British citizens across their life course.  The Open Life Data working group, comprising 45 experts (see the list <a href="https://appg-longevity.org/s/Open-Life-Data-Framework-Expert-Group.pdf">here</a>), was chaired by Lord James O’Shaughnessy, former Undersecretary of Health and visiting professor at Imperial College. The report was informed by over 100 contributors and authored by Gavin Starks and Tina Woods, APPG Director and co-author of the <em>Health of the Nation Strategy</em> and <em>Levelling Up Health</em>.</p>
<div id="block-yui_3_17_2_1_1630437958348_43321" class="sqs-block html-block sqs-block-html" data-block-type="2">
<div class="sqs-block-content">
<p class="">The Open Life Data Framework is supported with funding from the Health Foundation, an independent charity committed to bringing about better health and health care for people in the UK. Their aim is a healthier population, supported by high-quality health care that can be equitably accessed.</p>
</div>
</div>
<div id="block-yui_3_17_2_1_1630251463775_8592" class="sqs-block horizontalrule-block sqs-block-horizontalrule" data-block-type="47"></div>
<p><img decoding="async" class="wp-image-5338 aligncenter" src="https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent.jpg" alt="" width="824" height="387" srcset="https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent.jpg 1404w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent-300x141.jpg 300w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent-768x360.jpg 768w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent-1024x481.jpg 1024w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent-830x390.jpg 830w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent-230x108.jpg 230w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent-350x164.jpg 350w, https://dgen.net/0/wp-content/uploads/2021/11/OLDF-consent-480x225.jpg 480w" sizes="(max-width: 824px) 100vw, 824px" /></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5335</post-id>	</item>
		<item>
		<title>Designing the UK’s shared data infrastructure</title>
		<link>https://dgen.net/0/2020/08/15/designing-the-uks-shared-data-infrastructure/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Sat, 15 Aug 2020 09:13:06 +0000</pubDate>
				<category><![CDATA[business]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Government]]></category>
		<category><![CDATA[publications]]></category>
		<category><![CDATA[research]]></category>
		<guid isPermaLink="false">https://www.dgen.net/0/?p=4649</guid>

					<description><![CDATA[<img width="1024" height="772" src="https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-1024x772.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-1024x772.jpg 1024w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-300x226.jpg 300w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-768x579.jpg 768w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-830x626.jpg 830w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-230x173.jpg 230w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-350x264.jpg 350w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-480x362.jpg 480w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" />Smart Data: Research on Consent, Liability &#38; Authentication The government has estimated that the impact of personal data mobility enabled productivity and efficiency is worth [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="1024" height="772" src="https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-1024x772.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-1024x772.jpg 1024w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-300x226.jpg 300w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-768x579.jpg 768w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-830x626.jpg 830w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-230x173.jpg 230w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-350x264.jpg 350w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia-480x362.jpg 480w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-DI-rt32-latvia.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><h3 class="gem-c-title__text gem-c-title__text--long"><strong>Smart Data: Research on Consent, Liability &amp; Authentication</strong></h3>
<p><span style="font-weight: 400;">The government has estimated that the impact of personal data mobility enabled productivity and efficiency is worth approximately £27.8bn. Smart Data could be a key part of the Government&#8217;s arsenal in the fight against Covid-19 and climate change.  </span></p>
<p>Up until now the UK has taken a piecemeal approach to unlocking data. This creates data bottlenecks that hinder us from allocating resources better within the home, at work, and across society. Open Banking has pioneered data sharing in the UK and provides a foundation of knowledge and learning for Open Finance and Smart Data. However, Open Banking is underpinned by a complex regulatory structure, faces governance challenges and has not yet resolved its longer-term funding.</p>
<p><span style="font-weight: 400;">Following the publication of BEIS reports about <strong style="font-weight: 400;">Consent</strong> and <strong style="font-weight: 400;">Liability</strong> for Smart Data Initiatives in the UK, Dgen (<a style="font-weight: 400;" href="https://www.linkedin.com/mwlite/in/faith-reynolds-b95b3837">Faith Reynolds</a>, <a style="font-weight: 400;" href="http://linkedin.com/in/sharon-cunliffe-mattu-pc-dp-gdpr-61026a24">Sharon Cunliffe</a>, <a style="font-weight: 400;" href="https://www.linkedin.com/in/milescheetham/">Miles Cheetham</a>, <a style="font-weight: 400;" href="https://www.linkedin.com/in/gavinstarks/">Gavin Starks</a>) held an overview webinar on Wednesday 16th September 2020.</span></p>
<p><iframe loading="lazy" src="https://www.youtube-nocookie.com/embed/9sXlG_oSP7I" width="1120" height="630" frameborder="0" allowfullscreen="allowfullscreen"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span></iframe></p>
<p>Covering two new publications:</p>
<p><a href="https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/909363/Dgen_and_BEIS_-_Smart_Data_-_Consent.pdf"><img decoding="async" class="alignleft wp-image-4642" src="https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33.png" alt="" width="317" height="450" srcset="https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33.png 1038w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33-212x300.png 212w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33-768x1089.png 768w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33-722x1024.png 722w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33-830x1177.png 830w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33-230x326.png 230w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33-350x496.png 350w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-09.59.33-480x681.png 480w" sizes="(max-width: 317px) 100vw, 317px" /></a><a href="https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/909364/Dgen_and_BEIS_-_Smart_Data_-_Liability.pdf"><img decoding="async" class="wp-image-4643 alignleft" src="https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56.png" alt="" width="314" height="450" srcset="https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56.png 1034w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56-209x300.png 209w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56-768x1101.png 768w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56-714x1024.png 714w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56-830x1190.png 830w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56-230x330.png 230w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56-350x502.png 350w, https://dgen.net/0/wp-content/uploads/2020/08/Screenshot-2020-08-15-at-10.01.56-480x688.png 480w" sizes="(max-width: 314px) 100vw, 314px" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>UK Government links:  <a href="https://www.gov.uk/government/publications/smart-data-research-on-consent-liability-and-authentication">https://gov.uk/government/publications/smart-data-research-on-consent-liability-and-authentication</a></p>
<p>2020-09 BEIS response: <a href="https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/915973/smart-data-consultation-response.pdf">https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/915973/smart-data-consultation-response.pdf</a></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4649</post-id>	</item>
		<item>
		<title>How Can We Stop Losing Our Minds?: Producing a Legacy From Development Projects, Not Just a Document</title>
		<link>https://dgen.net/0/2020/05/21/design-for-search/</link>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Thu, 21 May 2020 10:49:43 +0000</pubDate>
				<category><![CDATA[business]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Government]]></category>
		<category><![CDATA[publications]]></category>
		<guid isPermaLink="false">https://www.dgen.net/0/?p=4405</guid>

					<description><![CDATA[<img width="683" height="1024" src="https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse-683x1024.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse-683x1024.jpg 683w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse-200x300.jpg 200w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse-768x1152.jpg 768w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse.jpg 2048w" sizes="(max-width: 683px) 100vw, 683px" />&#160; Have you ever run, funded or been part of a development project? Have you ever gotten to the end of it and felt that, [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="683" height="1024" src="https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse-683x1024.jpg" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse-683x1024.jpg 683w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse-200x300.jpg 200w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse-768x1152.jpg 768w, https://dgen.net/0/wp-content/uploads/2020/03/dgen-lighthouse.jpg 2048w" sizes="(max-width: 683px) 100vw, 683px" /><p>&nbsp;</p>
<div class="excerpt">
<p>Have you ever run, funded or been part of a development project?</p>
<p>Have you ever gotten to the end of it and felt that, during the process, everyone had learned and grown, and had stories to share?</p>
<p>Have you ever thought, “We should definitely share what we learned”?</p>
<p>And then someone wrote a report. And that was the end of that.</p>
<p>It continues to surprise me that we keep forgetting (or ignoring) the things that we all know: that building on history requires us to listen and learn from others’ experiences. Instead, we like to invent our own new things – and we repeat the same mistakes ad nauseam.</p>
<p>The web has changed our world in ways that we are still only beginning to learn, but development professionals haven’t yet leveraged it to full effect. As a tool we’ve applied it well in some cases, as more people have access to more knowledge than at any time in history. Yet we’ve also applied it poorly: While information retention within our institutions may be going up, our knowledge retention often lags behind. So we see discussions on secure chat channels lead to pivotal decisions, then vanish as if the conversations had never happened.</p>
<p>We still have much to do to adapt our behaviours and cultures to work with these new tools. We need to keep thinking through how we are going to make the most of both human and machine experiences, as they increasingly combine.</p>
<p>These might feel like hard questions, but if we shift the way we approach solving problems together, we might come up with new answers.</p>
<p>&nbsp;</p>
<h2><strong>DESIGNING FOR SEARCH – AND OPEN ACCESS</strong></h2>
<p>Let’s start with a user need. Think of a project you worked on six years ago. You’re trying to solve a similar issue now, but you can’t remember how you did it before. You remember that there was a really good idea, a phrase, a table of data, a use-case or an interview that helped your team to find a solution. But how do you find the thing you remember?</p>
<p>You might, as many people do (whether allowed or not), carry a backup of all the project details around on an old hard drive. You might try and find the old project website, if there was one (which is likely). You might try a funder’s website to see if they have a copy. You might email a colleague who worked with you on the project – you might even call them.</p>
<p>However you frame this, your starting point is to conduct a “search.” But a search for what? The project title? The name of a person or a topic? What if you can’t find it? What if the information you’re looking for is in the notes from a phone call, which were never properly categorized in the first place?</p>
<p>This all leads us to our first design principle: <strong>Design for search</strong>.</p>
<p>What does this mean? First and foremost it means something very simple: Did you add enough words to your digital files (e.g. in the title) so that when you type words into a search box six years later, you might have a chance of finding it?</p>
<p>In the age of the web, this is harder than it might seem. The average website survives <a href="https://www.orbitmedia.com/blog/website-lifespan-and-you/" target="_blank" rel="noopener noreferrer">less than three years</a> so we also need to make sure this information can be searched for at all. There’s a huge spectrum: Google isn’t going away anytime soon (probably); your project website will atrophy rapidly (unless funded); Wikipedia may or may not quite fit; Archive.org archives pages more than their context; national libraries have lasted centuries, but may not be as interested in hosting your project files as you might wish.</p>
<p>This drives us to a solution that is culturally different than what most of us are used to. Rather than publishing project details “in your house” (i.e. on your organization’s website, which is usually designed around the hierarchy of the organization, and still reflects its physical structure), you should focus on publishing in “everyone’s house” (i.e. on popular websites with a digital-native structure that reflect all users’ needs, not just those of your organization). You should, therefore, place your content in as many different places as possible to maximise the chance that you, your colleagues, funders, partners — and the rest of us in the development space — can find it.</p>
<p>Our second design principle is: <strong>Publish widely under an open license – or at least for open access</strong>. By providing context and publishing widely, under open licenses such as Creative Commons, development professionals can create a better return on our collective investment. We can help the machines help us find things. To give one example that’s likely to resonate: How many of you have used Google to get a copy of your own company’s logo?</p>
<p>&nbsp;</p>
<h2><strong>WHY, WHAT AND WHERE ARE YOU PUBLISHING – AND FOR WHOM?</strong></h2>
<p>There’s an essential question that’s deeply linked to enabling others to find, use and build upon your work: Is what you are producing relevant to the people who could potentially use it?</p>
<p>How often have you encountered a summary report that is written for “people” rather than for “you”? On a regular basis, I find myself asking, “Who is this written for – what is their name, role and organization?” If you can’t answer that question, then let’s pause for thought.</p>
<p>Some questions you should answer to define your audience include:</p>
<ol>
<li><strong>Why are we publishing this — what’s the story?</strong><br />
Start by writing down the essentials. This can involve writing the press release for every project. It’s not that everything should go through PR, but the process of thinking about the story and the specific audience is critical. Who will act upon it and why? In many instances we know that there are likely only 20 people who will read any report in-depth, and maybe 100 who might read an executive summary — so it can be helpful to write the summary first. How will you describe this work to someone verbally in two years? This is a powerful, behaviour-driving question.</li>
<li><strong>What are we publishing?</strong><br />
Is it a document? A PDF? Slides? Images? Data? Code? Algorithms? What’s useful to the user? Why? What format do they (not we) need most?</li>
<li><strong>Where are we publishing?</strong></li>
</ol>
<p>Certainly, everyone wants to publish on their own websites, but where are your users obtaining their information? Go to where they might find you. The ambition here is, in most cases, not to drive traffic back to your website. You’re not a destination, the content is. If I’m going to find it, it should be in as many relevant places as possible (e.g. blogs, Instagram, LinkedIn, Slideshare, Pinterest, Wikipedia, Archive.org, Github, postcards, books and videos). This isn’t about having a social media strategy to flood people with your content (you do that already). It’s about making sure that when your site is dead and the team is scattered to the wind, you can all find your own work again.</p>
<p>Once you have a sense of your likely readers and their needs and information sources, ask how you can:</p>
<ul>
<li>Get diverse input when evaluating users’ needs</li>
<li>Define a common language and use it: If you’re using words with various or ambiguous meanings, make sure your intended meaning is clear and consistent</li>
<li>Make outputs available in machine- and human-usable formats</li>
<li>Tell stories to help people learn, including recurring storytelling to prompt recall</li>
<li>Use shared documentation systems and shared tools such as wiki’s, Google documents, Github and Trello – not isolationist “need to know” systems</li>
<li>Work with institutions of accountability to enable longevity of access (e.g. libraries, universities, national archives)</li>
</ul>
<p>The answers to these questions can help you deliver content that’s likely to reach the people who need it, not just now but for years to come.</p>
<p>&nbsp;</p>
<h2><strong>CHANGING HOW WE WORK TO BE OPENLY COLLABORATIVE</strong></h2>
<p>In my time running the <a href="https://theodi.org/" target="_blank" rel="noopener noreferrer">Open Data Institute (ODI)</a>, we took extensive measures to foster a culture of open sharing and long-term accessibility of information. I mandated the creation of shared Google documents. The sending of attachments (internally) was banned. The guiding principles of this approach were reflected in this checklist, to be followed with all documents:</p>
<ol>
<li>Create a document.</li>
<li>Name the document with keywords relevant to a later search (e.g. date, topic, themes, place, hashtag equivalents).</li>
<li>Share it with everyone in the company (organization-wide).</li>
<li>Reduce sharing to a named list <em>if </em><em>required </em>(e.g. for HR or legal reasons).</li>
<li>Start writing.</li>
</ol>
<p>This applied to all meetings (internal and external), as well as all operational documents, research, proposals, HR, budget, financial reporting, sales planning and reports, project plans, performance metrics, board reports, compliance reporting, and legal and accounting documents. Instead of each person writing something, then emailing a document, we would schedule short group working sessions to simultaneously edit documents, often while in voice contact to discuss anything unclear. This produced better outcomes, and was also far faster — but only after induction and training, as it takes practice to work so differently.</p>
<p>Once learned, this process was also applied to co-create proposals with clients. The outcome was that the client could input directly to proposal documents, engage in internal Q&amp;As about scope and budget, and shape outputs, timing and costs. This improved the team’s relationships with clients and their trust in the team.</p>
<p>Induction documents and guides were provided for all staff on the process, naming conventions (e.g. <a href="https://xkcd.com/1179/">dates written in ISO format</a>), how to add keywords to document titles to aid searchability, and security and privacy guidelines. Design for search was a guiding principle.</p>
<p>The power of an open approach to development has many benefits. Done well, it changes the way people collaborate during projects — <strong>they are producing a legacy, not a document</strong>.</p>
<p>As the ODI Labs team expressed,</p>
<blockquote><p>“At the Open Data Institute, we build all our technology in the open. This may seem terrifying, but it’s probably one of the most powerful things we do. By using open tools and practices, we communicate better as a team, engage with our community, avoid cutting corners, and at the end of the day, produce better results.”</p></blockquote>
<p>One cultural imperative is essential to this approach: bravery. It is not possible for any team to share widely, embrace openness – and be open to the potential criticism that this may cause – without total buy-in and support from leadership: from the board-down, and from the practitioners-up. Openness flattens hierarchies, and it can also lead to different emotional responses and power dynamics.</p>
<p>But this only serves to illustrate, again, that the way to stop ourselves from losing our minds is to embrace our humanity, and to acknowledge that we need to work together to join the collective intelligence of humans and machines. The process may seem scary, but it may be one of the most powerful things we can do.</p>
</div>
<p>This article was originally published at <a href="https://nextbillion.net/producing-legacy-development-projects/">https://nextbillion.net/producing-legacy-development-projects/</a></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4405</post-id>	</item>
		<item>
		<title>Open Finance — Designing for Cohesion and Interoperability</title>
		<link>https://dgen.net/0/2019/12/19/open-finance-designing-for-cohesion-and-interoperability/</link>
					<comments>https://dgen.net/0/2019/12/19/open-finance-designing-for-cohesion-and-interoperability/#comments</comments>
		
		<dc:creator><![CDATA[Gavin]]></dc:creator>
		<pubDate>Thu, 19 Dec 2019 20:35:57 +0000</pubDate>
				<category><![CDATA[business]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[publications]]></category>
		<guid isPermaLink="false">https://www.dgen.net/0/?p=3963</guid>

					<description><![CDATA[<img width="1024" height="576" src="https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance-1024x576.png" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance-1024x576.png 1024w, https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance-300x169.png 300w, https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance-768x432.png 768w, https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" />The Financial Conduct Authority set up an Advisory Group on open finance to discuss the potential of extending open banking-like data-sharing to a wider range [&#8230;]]]></description>
										<content:encoded><![CDATA[<img width="1024" height="576" src="https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance-1024x576.png" class="attachment-large size-large wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance-1024x576.png 1024w, https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance-300x169.png 300w, https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance-768x432.png 768w, https://dgen.net/0/wp-content/uploads/2019/12/fca-openfinance.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" />
<p>The Financial Conduct Authority set up an Advisory Group on open finance to discuss the potential of extending open banking-like data-sharing to a wider range of financial products.</p>



<p>It has now launched an open consultation: <a href="https://www.fca.org.uk/firms/advisory-group-open-finance">https://www.fca.org.uk/firms/advisory-group-open-finance</a></p>



<p>Our contribution was in Chairing the Cohesion and Interoperability working group, the summary output of which is embedded below.</p>



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



<p>Document: <a href="https://docs.google.com/document/d/e/2PACX-1vS6QcDSK-D9oIaK1yf_suLyK0I63QcTDARiodk--lBzbzQpAycnfi07_Sp3KGTP-sJT1XdoL1GvaLzK/pub">Open Finance — Advisory Summary on Cohesion and Interoperability for the FCA</a></p>



<p>PDF version: <a href="https://dgen.net/0/wp-content/uploads/2023/07/OpenFinance-Advisory-Summary-on-Cohesion-and-Interoperability-FCA-2019-12-02.pdf">download here</a></p>



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



<p><iframe loading="lazy" src="https://docs.google.com/document/d/e/2PACX-1vS6QcDSK-D9oIaK1yf_suLyK0I63QcTDARiodk--lBzbzQpAycnfi07_Sp3KGTP-sJT1XdoL1GvaLzK/pub?embedded=true" width="900" height="1500"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://dgen.net/0/2019/12/19/open-finance-designing-for-cohesion-and-interoperability/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3963</post-id>	</item>
	</channel>
</rss>
