+20
.obsidian/config
···
+1
.obsidian/daily-notes.json
···+{"format":"YYYY-MM-DD","folder":"_posts/journal","template":"_posts/journal/2020-09-22-journal"}
+1
.obsidian/graph.json
···+{"search":"","showTags":false,"showAttachments":false,"hideUnresolved":false,"showOrphans":true,"showArrow":false,"nodeSizeMultiplier":1.63125,"lineSizeMultiplier":1,"centerStrength":0.518713248970312,"repelStrength":14.9358974358974,"linkStrength":1,"linkDistance":250,"scale":0.06793367011689397}
+84
.obsidian/workspace
···
+26
.vscode/extensions.json
···
+4
.vscode/foam.json
+30
.vscode/settings.json
···
+2
-1
404.html
······+<button class="gHomeNF" type=button onclick="window.location='https://bmannconsulting.com'">Go Home</button>
-23
README.md
···-[](https://app.netlify.com/sites/simply-jekyll/deploys)-<img src="https://img.shields.io/badge/featured%20on-JT-red.svg" height="20" alt="Jekyll Themes Shield" >-Simply Jekyll is a simple yet highly functional jekyll-based theme that combines the best of different worlds (atleast tries to 😅). It is a minimal and distraction free theme that strives to provide maximum value all without holding back on any essential features that a user would benefit from or would desire for. This is an evolving project and is garanteed to be maintained at least for quite some time as I myself am a beneficiary of this theme and the project.-I wrote a tutorial explaining how to set it up: https://simply-jekyll.netlify.app/posts/how-to-setup-simply-jekyll-<img src="https://www.dropbox.com/s/46yfu5fwvfugfvc/end_result.JPG?raw=1" style="box-shadow: 2px 2px 20px 0 #ddd;"/>
+2
-2
_config.yml
···url: "https://bmannconsulting.com" # the base hostname & protocol for your site, e.g. http://example.com-exclude: ['.env', 'fission.yaml', 'gemset.nix', 'pages', 'fission.yaml', 'blog.code-workspace', 'netlify.toml', '_ignore']+exclude: ['.env', 'fission.yaml', 'gemset.nix', 'pages', 'fission.yaml', 'blog.code-workspace', 'netlify.toml', '_ignore', '.vscode', '.obsidian']···
+66
_ignored/security-tokens-finhaven.md
···+<h3 name="911a" id="911a" class="graf graf--h3 graf--leading graf--title">Managing the ownership and transfer of Security Tokens with Finhaven</h3>+<h4 name="bf96" id="bf96" class="graf graf--h4 graf-after--h3 graf--subtitle">Towards technical standards and interoperability of securities on the Ethereum blockchain</h4>+<figure name="8fd9" id="8fd9" class="graf graf--figure graf-after--h4"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 466px;"><img class="graf-image" data-image-id="1*eck3pubD2bY7XzVLfJ5CQg.jpeg" data-width="1900" data-height="1266" src="https://microblog.bmannconsulting.com/uploads/2020/7266131d53.jpg"></div></figure><p name="841e" id="841e" class="graf graf--p graf-after--figure">Blockchain technology provides the potential to fulfill many of the functions of traditional securities management. It has a built in identification system (each account has a unique address), every transaction is publicly logged (an immutable audit trail), and a smart contract layer (transfer restrictions or other business logic can be automated).</p>+<p name="0462" id="0462" class="graf graf--p graf-after--p">On the other hand, the past 18 months have been characterized by a proliferation of entrepreneurs bringing utility tokens to market. On closer inspection, many of them should be classified as securities, and we are beginning to see the first warnings and de-listing from utility token exchanges.</p>+<p name="f48a" id="f48a" class="graf graf--p graf-after--p">Finhaven believes that security tokens are part of the next wave. We think we can take some of the regulatory nature of existing securities and upgrade them with the digital first, automation first nature that goes beyond the concept of paper agreements, and sets a framework for global governance.</p>+<h4 name="d62a" id="d62a" class="graf graf--h4 graf-after--p">Tokens on the Ethereum Blockchain</h4>+<p name="f6bb" id="f6bb" class="graf graf--p graf-after--h4">Tokens are themselves smart contracts, or thought of more simply, “apps” or “decentralized apps” (dapps) — code that executes on the public Ethereum blockchain.</p>+<p name="b05e" id="b05e" class="graf graf--p graf-after--p">Ethereum and other open source blockchain projects follow an open process for submitting standards and changes to the functioning of the software. In the Ethereum community, these are called “Ethereum Improvement Proposals” or EIPs. Before being accepted or approved, they start as “Ethereum Request for Comments” or ERCs, so that the community and other interested parties can review, extend, make comments, and generally improve the proposal.</p>+<p name="82d1" id="82d1" class="graf graf--p graf-after--p">The acceptance of EIPs follows a very fluid open source collaboration model. But since the work is done out in the open, a pre-standard model can be adopted and turned into working code even without being approved.</p>+<p name="8716" id="8716" class="graf graf--p graf-after--p">The most infamous pre-standard is the <a href="https://github.com/ethereum/EIPs/issues/20" data-href="https://github.com/ethereum/EIPs/issues/20" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">ERC 20 “token standard”</a>. It is what has powered Ethereum to host roughly 40 of the top 100 crypto assets globally. This has led to technical standardization among websites, apps, wallets, and exchanges. It has also led to large amounts of unregulated activity, at least some of which is more correctly classified as a security.</p>+<p name="14fd" id="14fd" class="graf graf--p graf-after--p">From the commonly known ERC 20 phrase, one can see adoption even at the request for comments stage. This standard has now been approved and is <a href="https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md" data-href="https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">officially EIP 20</a>.</p>+<p name="4057" id="4057" class="graf graf--p graf-after--p">There are numerous other ERCs in progress relating to tokens. Notable ones include:</p>+<a href="https://github.com/ethereum/EIPs/issues/223" data-href="https://github.com/ethereum/EIPs/issues/223" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">ERC 223</a>, an attempt to upgrade security and apply other fixes to EIP 20</li>+<a href="https://github.com/ethereum/EIPs/issues/721" data-href="https://github.com/ethereum/EIPs/issues/721" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">ERC 721</a>, a standard for non-fungible tokens supporting everything from land titles to digital cats (authored by another local BC company, Axiom Zen)</li>+<a href="https://github.com/ethereum/EIPs/issues/777" data-href="https://github.com/ethereum/EIPs/issues/777" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">ERC 777</a>, an even newer token standard that likely supersedes and improves on 20 & 223, that Finhaven is looking to base its security tokens on</li>+<p name="add2" id="add2" class="graf graf--p graf-after--li">It is Finhaven’s intent to propose an ERC (internally we call this 999 since the final number is unknown) that begins the process of technical standard setting around what features Security Tokens support.</p>+<h3 name="c6ab" id="c6ab" class="graf graf--h3 graf-after--p">ERC 999 Restriction of Ownership & Transfer of Tokens</h3>+<p name="19bd" id="19bd" class="graf graf--p graf-after--h3">We believe that having a record of token ownership on the public blockchain is valuable for many use cases.</p>+<p name="e1fe" id="e1fe" class="graf graf--p graf-after--p">While most people think of tokens or coins as “in” an owners account, they are actually recorded as a balance in a token smart contract. The token contract lists each owner’s addresses and the balance of tokens that that address controls.</p>+<figure name="3c7b" id="3c7b" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 331px;">+<img class="graf-image" data-image-id="1*ZI8MGP3V6UbXyQIvAGi2Tw.png" data-width="927" data-height="438" src="https://microblog.bmannconsulting.com/uploads/2020/43762b4d36.jpg">+<figcaption class="imageCaption">Standard ERC-20 Transfer</figcaption></figure><p name="9155" id="9155" class="graf graf--p graf-after--figure">A transfer of tokens between two addresses actually calls the “transfer” function of the token contract. The source address (the address “from” which the funds are being transferred) calls the smart contract transfer function. In its base form, this function has a destination address, plus an amount to transfer. If the source contains enough to satisfy the transfer amount, the tokens are debited from one address and credited to the destination.</p>+<figure name="e483" id="e483" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 343px;">+<img class="graf-image" data-image-id="1*AyVMCXsWVqwrCeT7pIpxPg.png" data-width="989" data-height="484" src="https://microblog.bmannconsulting.com/uploads/2020/22604b86dd.jpg">+<figcaption class="imageCaption">Security Token Smart Contract with “allowed” Whitelist</figcaption></figure><p name="14af" id="14af" class="graf graf--p graf-after--figure">Our core proposal is that Security Tokens have a check function. Another function is added that contains a list of whitelisted address.</p>+<p name="da42" id="da42" class="graf graf--p graf-after--p">When a transfer request is made, the transfer function additionally checks the destination address to see if it is on the whitelist. If it is not, the transfer fails.</p>+<p name="393d" id="393d" class="graf graf--p graf-after--p">This function could additionally be used to make tokens completely non-transferable.</p>+<p name="38fb" id="38fb" class="graf graf--p graf-after--p">Token creators could use a variety of on- or off-chain processes to update the whitelist.</p>+<h3 name="1df0" id="1df0" class="graf graf--h3 graf-after--p">Finhaven Token Holder KYC to Support Security Needs</h3>+<p name="a472" id="a472" class="graf graf--p graf-after--h3">The technical details described above form the starting point for thinking about security tokens.</p>+<p name="faf9" id="faf9" class="graf graf--p graf-after--p">Another feature of securities is knowing — and oftentimes vetting — the owner of a security either as an individual or corporate entity.</p>+<p name="65d8" id="65d8" class="graf graf--p graf-after--p">From a regulation point of view, <a href="https://en.wikipedia.org/wiki/Know_your_customer" data-href="https://en.wikipedia.org/wiki/Know_your_customer" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Know Your Customer (KYC)</a> is one way to think of this.</p>+<p name="216e" id="216e" class="graf graf--p graf-after--p">Finhaven’s Platform helps with the technical details of token creation, issuance, and management. Many of these activities happen in a standard web app, before a security token and its accompanying smart contracts are deployed to the public Ethereum blockchain. After deployment, the platform continues to help with on- and off-chain management features — like a friendly web interface to the blockchain — while transfers and other functions can still be publicly inspected and audited on-chain by anyone.</p>+<p name="b50b" id="b50b" class="graf graf--p graf-after--p">Finhaven’s model will collect KYC information from users on the platform who buy, sell, or transfer tokens. We provide users on the platform with a standard Ethereum address, and link it off chain, in our private database, with their KYC’d identity. Only addresses which have been KYC’d can be on a token whitelist, but anyone can sign up on the platform to be added to the whitelist in order to buy, transfer or otherwise receive these security tokens.</p>+<p name="a76d" id="a76d" class="graf graf--p graf-after--p">Initially we will need to provide this KYC process with our platform, but this is another area of standardization — a way of protecting privacy of off-chain identities while also sharing claims about nationality, accreditation, or other identity aspects in a decentralized way.</p>+<p name="3aee" id="3aee" class="graf graf--p graf-after--p">Some examples of organizations and solutions include:</p>+<li name="9b46" id="9b46" class="graf graf--li graf-after--p"><a href="http://identity.foundation/" data-href="http://identity.foundation/" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Decentralized Identity Foundation</a></li>+<li name="c587" id="c587" class="graf graf--li graf-after--li">The Civic platform is handling both identity and <a href="https://www.civic.com/kyc-services" data-href="https://www.civic.com/kyc-services" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">KYC services</a>+<a href="https://www.coinfirm.io/aml-ctf" data-href="https://www.coinfirm.io/aml-ctf" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Coinfirm is targeting AML/CTF</a>, which is important for tracking incoming funds</li>+<h4 name="25bf" id="25bf" class="graf graf--h4 graf-after--li">Emerging Work in Decentralized Security Tokens</h4>+<p name="9ee5" id="9ee5" class="graf graf--p graf-after--h4">We’ve been pleased to see other organizations beginning to come forward and launch open source efforts of standardization. Read the <a href="https://medium.com/harborhq/introducing-harbor-90ffc2b49a21" data-href="https://medium.com/harborhq/introducing-harbor-90ffc2b49a21" class="markup--anchor markup--p-anchor" target="_blank">Introduction to Harbor</a>, and check out their <a href="https://github.com/harborhq/r-token" data-href="https://github.com/harborhq/r-token" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">R-Token on Github</a>.</p>+<p name="c509" id="c509" class="graf graf--p graf-after--p">We are prepping our own Github releases and will work with the wider community to collaborate on technical and regulatory interoperability. On the regulatory side, we are starting from Canada, which we think is a very good base for broad investor and company appeal. Specifically, the Province of British Columbia (BC) is kind of like the Delaware of Canada — it’s easy and inexpensive to create corporations online with non-resident directors. We are hoping to work with the government on making it a crypto-friendly domicile.</p>+<p name="04a5" id="04a5" class="graf graf--p graf-after--h4">We are hosting a <a href="https://www.picatic.com/security-tokens-feb2018-toronto" data-href="https://www.picatic.com/security-tokens-feb2018-toronto" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Security Token community meetup in Toronto on Tuesday, February 13th</a>.</p>+<p name="d1b8" id="d1b8" class="graf graf--p graf-after--p">We will host a similar event in Vancouver in March.</p>+<p name="c3fa" id="c3fa" class="graf graf--p graf-after--p">We will be speaking at <a href="http://monage.io" data-href="http://monage.io" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Monage</a> in April, so we are looking at planning a community meetup in SF on April 16th.</p>+<p name="2734" id="2734" class="graf graf--p graf-after--p"><a href="http://edcon.io" data-href="http://edcon.io" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">EDCON</a> is in Toronto in early May, and we are tentatively planning a large technical interoperability test and one day Security Token Working Group. Please <a href="https://teamup.com/event/show/id/mHNXUQ3euPVg2x8Ac31YL7T89ZzYXv" data-href="https://teamup.com/event/show/id/mHNXUQ3euPVg2x8Ac31YL7T89ZzYXv" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">sign up to save the date</a>. Other events we are hosting, attending, or promoting are listed on our <a href="http://events.finhaven.com" data-href="http://events.finhaven.com" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">events calendar</a>.</p>+<p name="8bd1" id="8bd1" class="graf graf--p graf-after--p graf--trailing">If you want to get involved in the technical and/or regulatory aspects of decentralized Security Token interoperability, please <a href="https://www.finhaven.com/contact" data-href="https://www.finhaven.com/contact" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">get in touch</a>.</p>
+5
-5
_includes/header.html
···<svg class="icon-category" width="18" height="19" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">···<svg class="icon-rss" width="18" height="19" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 11.5C6.38695 11.5 8.67613 12.4482 10.364 14.136C12.0518 15.8239 13 18.1131 13 20.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M4 4.5C8.24346 4.5 12.3131 6.18571 15.3137 9.18629C18.3143 12.1869 20 16.2565 20 20.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M5 20.5C5.55228 20.5 6 20.0523 6 19.5C6 18.9477 5.55228 18.5 5 18.5C4.44772 18.5 4 18.9477 4 19.5C4 20.0523 4.44772 20.5 5 20.5Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+14
_includes/recentblogs.html
···+<span><a href="{{ blog.url }}">{{ blog.title }}</a> <time style="float: right;" datetime="{{ blog.date | date: "%F" }}{{ blog.date | date: "%B %e, %Y" }}">{{ blog.date | date: "%B %e, %Y" }}</time></span>
+136
_notes/blog-colophon.md
···+It's archives all the way down! The long(er) form content from the (original) `blog.bmannconsulting.com` has all been imported here. I swapped the domain to [[Micro.blog]], and that's where I post photos and short content. The [[Colophon]] page covers "this" site.+This blog is currently powered by [Jekyll 4](http://jekyllrb.com) hosted on [Netlify](http://netlify.com). Netlify builds the site from a private git repo on Github.+I write short [social posts](https://blog.bmannconsulting.com/archives/social/) on my phone via [micropub](https://blog.bmannconsulting.com/tags/micropub/). There are a variety of [micropub clients](https://indieweb.org/micropub-clients) you can browse on the IndieWeb site. The [Indigenous native app for iOS](https://indieweb.org/Indigenous_for_iOS) works most reliably.+I also use [Quill](https://quill.p3k.io/docs) as a <abbr title="Progressive Web App">PWA</abbr> on my phone. It also works great for all kinds of posts on desktop browsers too, including a first draft of long posts.+Long posts are most often finalized in [VS Code](https://code.visualstudio.com/) and published via git.+Full size images are uploaded and stored in git. Various thumbnail sizes are generated on the fly via [images.weserv.nl](https://images.weserv.nl/).+[All the Best Recipes](https://allthebest.recipes) are where the long form food / cooking posts go, although I often share them via links and images posted as social posts here.+My [@bmann Instagram](https://instagram.com/bmann) I manually post to, either a variant of a social post I've already made here, or on the All the Best Recipes site. I cross post to Facebook from Instagram. My "rule" is no posting pictures to Instagram until they've been put somewhere permanent under my control. There is also an [@allthebestrecipes Instagram](https://instagram.com/allthebestrecipes), because really I need more places to post about food.+I'm now running [paulrobertlloyd's IndieKit](https://paulrobertlloyd.github.io/indiekit/) micropub server, and tweaking the display, feeds, and cross-posting to [Micro.blog](https://micro.blog/boris), which in turn posts to [my @bmann Twitter account](https://twitter.com/bmann).+You can visit [my micropub server](https://bmann-indiekit.herokuapp.com) to learn more about it. The post types that I have special display and treatment for are:+* Reply -- because I wanted to support it for leaving comments on other people's posts. This is also the RSVP type, which I've just added extra support for+The others work, I just haven't coded special treatment for them, so they likely don't display correctly.+Turned off `jekyll-feed` plugin to have Jekyll generate a custom [RSS feed](/feed.xml), because of the way I customize different kinds of micropub posts.+I write on my phone or my Chromebook. On the Chromebook, [Caret](http://thomaswilburn.net/caret/) is a text / coding editor I use. The [Netlify CMS](https://www.netlifycms.org) lets me edit in a browser.+Short form links get sent to Twitter and/or shared on the [Frontier Community](https://community.frontierfoundry.co)[^deprecatedff]. My [Tumblr](http://tumblr.bmannconsulting.com) is rarely used. Tweets are archived at [tweets.bmannconsulting.com](http://tweets.bmannconsulting.com).+[^deprecatedff]: The Frontier Community Discourse site got turned into [All the Best Recipes](https://allthebest.recipes). I might re-use it for comments again in the future, for now have Webmentions turned on.+Also moved to [Michael Rose's Minimal Mistakes theme](https://mmistakes.github.io/minimal-mistakes/). Fighting with nokogiri on the Chromebook means no emoji. This meant posts have a slightly different default layout again: ```sed -i 's/layout: posts/layout: single/' *.md```.+**In September 2018**, I [added a bunch of IndieWeb and Micropub interfaces](https://blog.bmannconsulting.com/micro-blog-jekyll-micro-pub-and-indie-web/) and created social posts and bookmarks.+While [OwnYouGram](https://ownyourgram.com/) was working, I posted to [my @bmann Instagram](https://instagram.com/bmann), and those posts would automatically be republished on this site.+Somewhere around this time frame, JSON feeds were added at [micro.json](/micro.json), [micro-bookmarks.json](/micro-bookmarks.json), and [feed.json](/feed.json), and syndicated to [Micro.blog](https://micro.blog/boris), which I pay to re-publish on other networks. Briefly they went to LinkedIn, now mainly get sent over to Twitter.+**In May of 2019**, I [added a Webmentions server](https://blog.bmannconsulting.com/run-your-own-web-mentions/).+Most writing happened on Medium after November 2014 across various company publications, with the [medium.bmannconsulting.com](http://medium.bmannconsulting.com) subdomain being the one where permanent posts end up. I should probably get around to getting a Medium download so I have them.+I created a new Gitlab [borismann](http://gitlab.com/borismann) and imported from Bitbucket. I connected Netlify to it, but it failed to build. Digging in, I created a new branch <code>2018-reboot</code> and deleted the <code>Gemfile.lock</code>, and edited <code>Gemfile</code> to use Jekyll 3, a newer Ruby, and nuked the rack stuff. <code>bundle install</code> got things going.+There is some nonsense with the file watching not working, so <code>bundle exec jekyll serve --no-watch</code> was needed.+The default post type is now "posts", which meant replacing across all files [using sed](https://unix.stackexchange.com/questions/112023/how-can-i-replace-a-string-in-a-files/112024#112024): <code>sed -i 's/layout post/layout: posts/' *.md</code>.+While I was at it, I also migrated the [bmannconsulting main archive](https://www.bmannconsulting.com) to Netlify as well.+This blog is powered by [Jekyll 2](http://jekyllrb.com) hosted on [Heroku](http://heroku.com). I'm using [Andy Croll's RackJekyll instructions and buildpack](http://andycroll.com/2014/01/19/serving-a-jekyll-blog-using-heroku/) so that the site is generated on the server.+I'm increasingly a fan of static site generators for content-focused publishing projects. I've written both a [presentation on static site generators](/ssg-lightning-talk) and an overview of [node.js-based generators](/node-static-site-generators).+The design is [GPLv2 licensed, So Simple by Michael Rose](http://mademistakes.com/articles/so-simple-jekyll-theme/).+The comments are powered by [Disqus](http://disqus.com). All comments are welcome, although I reserve the right to tell you to go post your thoughts in your own space somewhere.+Tweets to new stories are scheduled using [Buffer](https://bufferapp.com/) and published on my [@bmann](http://twitter.com/bmann) account.+The domain _bmannconsulting.com_ is over a decade old. [NameCheap](http://namecheap.com) is the domain registrar and DNS host, and is still my recommendation for new domain registrations.+Posts are typically written in Markdown with [Byword](http://bit.ly/bywordapp-bmann) on a Macbook Air or iPad Mini. Code for the site is edited with [Atom](https://atom.io/).+My writing here tends to be long form (1000+ words) original pieces, aside from aggregation-plus-commentary of embedded [Storify](http://storify.com) content. For example, this piece on [the Microsoft Surface launch](/reactions-microsoft-surface). The content is also rarely personal, mainly focusing on tech-related subjects.+Short form link blog content is at [links.bmannconsulting.com](http://links.bmannconsulting.com), and is powered by [Postachio](http://postach.io), an Evernote-powered blogging platform. I wrote about [link blogging with Postachio](/postachio-link-blogging).+This blog is running on the [Harp Platform](http://harp.io), a lightweight web server with pre-processing built in, with files uploaded via my own Dropbox account. Also check out the [HarpJS](http://harpjs.com) open source project.+The design is a [CC-BY licensed HTML5 template called Striped](http://html5up.net/striped/), which uses the [skel.js](http://skeljs.org/) front end framework to make the site responsive.+Tweets to new stories are hand-posted using [Tweetbot](http://tapbots.com/software/tweetbot/), although the RSS feed is also syndicated using [dlvr.it](http://dlvr.it) to various places, including [@horse_eboris](http://twitter.com/horse_eboris).+I archived my main site to Octopress-generated flat files on Amazon S3, and moved this site to Octopress on Heroku. I wrote up the details of the [migration from Drupal 6 to Octopress and Amazon S3](http://www.bmannconsulting.com/archive/migration/).+For both sites, the entire source was / is in my own Dropbox account, so that I could create drafts and edits on any machine. This site was also in a private git repo on Bitbucket. I still needed to have the entire Ruby / Octopress build chain available on some machine to create new entries.+I split off my blog into it's own subdomain. I selected Posterous because I liked built-in comments, and in general it felt more suited to long form writing than Tumblr did. Being able to cross-post back to my main Drupal site so that I would have a copy of the content was also great.+For the last period, the site was hosted on [Omega8](http://omega8.cc), which specializes in managed Drupal hosting on top of the Aegir mass hosting system. The actual database / content stretched back many versions of Drupal, through a variety of content re-organization and hosting changes.+Bits and pieces of static HTML and various PHP scripts, including [Pmachine](http://en.wikipedia.org/wiki/EllisLab) as a personal blog that ran concurrrently with installs of PHPNuke and later my Drupal site.
+2
-1
_notes/bvp-roadmap-opensource.md
···> We are open sourcing our OSS roadmap so other can see exactly how we evaluate OSS companies and why we are so excited about this space: https://www.bvp.com/atlas/roadmap-open-source [[@BessemerVP::https://twitter.com/bessemervp]] #opensource-[[Bessemer Venture Partners]] publishes Roadmap: Open Source], on how they look at venture investing in [[Open Source]]. Timed with investment in [Netdata](https://www.netdata.cloud/).+[[Bessemer Venture Partners]] publishes [Roadmap: Open Source](https://www.bvp.com/atlas/roadmap-open-source), on how they look at venture investing in [[Open Source]]. Timed with investment in [Netdata](https://www.netdata.cloud/).> One major development is worth emphasizing: once considered the cheaper version of closed source software, open-source software is now viewed as the superior alternative offering higher quality, better support, and more flexibility.
+2
-2
_notes/colophon.md
···-Historically, a **Colophon** was "a statement at the end of a book, typically with a printer's emblem, giving information about its authorship and printing" (via Google Dictionary).+Historically, a **Colophon** was "a statement at the end of a book, typically with a printer's emblem, giving information about its authorship and printing" (via Google Dictionary).[[This site was last built: <strong>{{ site.time | date: '%B %e, %Y'}}</strong>::lmn]]-My [personal blog colophon](https://blog.bmannconsulting.com/colophon/) documents software & changes all the way to 2001.
+11
_notes/dealing-with-employees-and-politics.md
···+link: https://medium.com/@jason_85782/dealing-with-employees-and-politics-a-response-to-brian-armstrong-60e5c1d59158+> It is one thing for a local coffee shop to be solely profit motivated at the behest of the owner. But if your goal is to have thousands of employees and fundamentally change the world with your products, as most lofty tech companies aspire to do, the idea that the company should be solely profit motivated based on the mission set almost exclusively by the founder results in a world that gives an extreme amount of (undemocratic) power to those founders that are successful.+> [[Jason Somensatto]], [Dealing with Employees and Politics: A Response to Brian Armstrong](https://medium.com/@jason_85782/dealing-with-employees-and-politics-a-response-to-brian-armstrong-60e5c1d59158)+Responding to the post by [[Brian Amstrong]], CEO of [[Coinbase]]: [Coinbase is a mission focused company](https://blog.coinbase.com/coinbase-is-a-mission-focused-company-af882df8804).
+1
_notes/democracy-sovereignty-bianca-wylie.md
···> Watching the throne speech last week, from the lens of a technology advocate, I was disappointed.> [[Rather than draw out and make big and beautiful the technology approach the country will take, the response was to continue to allow our digital society to be a reaction to a handful of US companies, and to mitigate their impact by looking for some of their money.::highlight]] [[This is what <a href='https://twitter.com/ThisTechGirl/status/1310016182758641670?s=20'>Saadia Muzaffar @ThisTechGirl chose to quote in her tweet</a>, along with "we deserve better".::lmn]] Michael Geist[[Michael Geist's article is <a href='https://www.michaelgeist.ca/2020/09/get-money-from-web-giants-grows-canadian-heritage-minister-guilbeault-says-government-working-on-a-new-data-tax/'>“Get Money from Web Giants” Grows: Canadian Heritage Minister Guilbeault Says Government Working on a New Data Tax</a>::rsn]] has been a much-needed sanity check on the wrong-mindedness of what was proposed. Without a positive vision for what Canada wants to be in a digital era, it’s likely we will continue along with what we’re doing now — being on the defensive, mitigating accelerating power that appears to be institutionally poorly understood.> [[Bianca Wylie]] [Democracy, Sovereignty, and the Throne Speech That Wasn’t](https://medium.com/@biancawylie/democracy-sovereignty-and-the-throne-speech-that-wasnt-fb7c98a68ea)> [[Each of the large technology companies is different, and as a result, their impact on policy is different::highlight]]. The effects of Amazon on local retail is very different from the effects of Facebook on hate speech which again is very different from the effects of Google and Apple writing requirements for public health infrastructure. Lumping them together sorely misunderstands the problem and pulls everyone further down the wrong road because they’re calling it technology instead of the various topical subcomponents being impacted.
+7
_notes/discourse.md
+13
_notes/egpu.md
···+External GPU for computers that can't have full size video cards installed internally, like a [[Mac Mini]] or a laptop. Usually connected over Thunderbolt 3.+* eGPU.io Buyers Guide: https://egpu.io/best-egpu-buyers-guide/ (updated all the time, loads super slow)+* Blackmagic eGPU [[Blackmagic eGPU available from <a href='https://www.apple.com/ca/shop/product/HM8Y2VC/A/blackmagic-egpu'>Apple Canada for $899</a>::lmn]]+[^macrumors]: from this [MacRumors thread](https://forums.macrumors.com/threads/best-egpu-for-mac-mini-2020.2253096/), which has more to say: <blockquote>I assure you that the Sonnet eGFX Breakaway Box 650 and the Sapphire Pulse Radeon RX 580 card combination is an effortless no-brainer on the Macs and Windows 10 PCs I have tried.</blockquote>
+16
-3
_notes/feeds.md
···-Don't know what a feed is? Learn more on the [About Feeds](https://aboutfeeds.com/) site. [[Web Feeds]] has some more thoughts on this topic if you want to go deeper.+Don't know what a feed is? Learn more on the [About Feeds](https://aboutfeeds.com/) site.[[Or dive into more thoughts on <a href='{% link _notes/webfeeds.md %}'>Web Feeds</a>.::rmn]]+[[There is no feed for the <a href='/archive/'>Archive</a> other than newer blog posts. I don't intend to create a feed for my <a href='/journal/'>Journal</a>, you can come by and visit the site if you really want a peek.::lmn]]+**Recently Updated Notes** <a href="https://bmannconsulting.com/feed/notes.xml"><img src="../assets/orange-square.svg" style="height: 1.1em;" class="inline"></a>+Notes are the main wiki pages that I create here. This feed is sorted by last modified date, so items you've seen before will show up again when I re-edit them with more info. The [Notes](/notes/) page shows the same thing in human readable form.+**Recent Links** <a href="https://bmannconsulting.com/feed/links.xml"><img src="../assets/orange-square.svg" style="height: 1.1em;" class="inline"></a>-* Recently Updated Notes <a href="https://bmannconsulting.com/feed/notes.xml" class="internal-link"><img src="../assets/orange-square.svg" style="height: 1.1em;" class="inline"></a>-* Recent Links <a href="https://bmannconsulting.com/feed/links.xml" class="internal-link"><img src="../assets/orange-square.svg" style="height: 1.1em;" class="inline"></a>+Anything with a link field. Mostly comes in two flavours. One is a kind of bookmark, that links to an app, or open source tool, or a website that I want to keep track of and perhaps write a few things about. The second is an Article, where I take notes and quote pieces of it that I find interesting. The [Links](/links/) page shows both kinds.+**Blog** <a href="https://bmannconsulting.com/feed/blog.xml"><img src="../assets/orange-square.svg" style="height: 1.1em;" class="inline"></a>+The home page and the [Blog](/blog/) page list recent blogs.[[Blogging is slow and infrequent in these parts. I'm busy updating notes instead! The <a href='https://microblog.bmannconsulting.com'>microblog</a> has more frequent short posts, images, and such. <a href="https://microblog.bmannconsulting.com/feed.xml"><img src="../assets/orange-square.svg" style="height: 1.1em;" class="inline"></a> ::rmn]]
+12
_notes/filecoin.md
···+> Filecoin is a peer-to-peer network that stores files on the internet, with built-in economic incentives to ensure files are stored reliably over time.
+10
_notes/joplin.md
···+Open source, markdown-based note taking & to do. Originally designed to import Evernote `.enex` files.+Available on many platforms, including mobile apps and even terminal. Uses different cloud services for synchronization, but encrypted with your own keys, eg [[Dropbox]].[[I don't use it any more. I'm using <a href='../roam-research/'>Roam</a> for private notes and its mobile web interface works fine for quick note taking.::lmn]]
+4
-4
_notes/livegrep.md
···“Instantly grep all code at your company from a web interface, with it producing the relevant files, contextual snippets, and links to the full version in Github/GHE/etc.”···> Since it's publicly available, let me mention that the most common tool I use for answering these questions is livegrep and that I intend to boot up a livegrep instance on the first day of every startup for the rest of my life.
+20
_notes/macmini.md
···+I bought a Mac Mini 2020[[Apple Canada <a href='https://www.apple.com/ca/mac-mini/'>Mac Mini page</a>::lmn]] at the [beginning of October 2020]({% link _posts/journal/2020-10-03-journal.md %}). I got the higher end model and bumped the processor to the **3.2GHz 6‑core 8th‑generation Intel Core i7**, but everything else base -- 8GB RAM, 512GB SSD.+- External Webcam: [Wirecutter Webcam Reviews](https://www.nytimes.com/wirecutter/reviews/the-best-webcams/). The Razer Kiyo Streaming Webcam comes with a built in ring light.+- External storage: for [[Filecoin]] blockchain syncing. The [Wirecutter External Desktop Hard Drive Reviews](https://www.nytimes.com/wirecutter/reviews/the-best-external-desktop-hard-drive/) are going to be less useful for what I want to do. Some sort of enclosure and bare drives, I think?+- Mouse: I have a Logitech M535 Bluetooth mouse that's fine. Been thinking about a trackball[[Oh look, <a href='https://www.nytimes.com/wirecutter/reviews/best-trackballs/'>Wirecutter reviews trackballs</a> too::rmn]] to make sure I don't get wrist problems, or maybe the Magic Trackpad for gesture support.+- Monitor: [Wirecutter's Best Monitors](https://www.nytimes.com/wirecutter/reviews/best-monitors/) looks to have good options.
+20
_notes/markdown-notes.md
···+Markdown Notes is one of the [[Foam]] [recommended extensions](https://foambubble.github.io/foam/recommended-extensions) for [[VSCode]].
+23
_notes/neocities.md
···+Neocities https://neocities.org/ is a reboot of Geocities. The entire site is [[Open Source]], you can send a pull request on their [[Github::https://github.com/neocities/neocities]].+As I [found out]({% link _posts/journal/2020-09-30-journal.md %}), Neocities experiments with [[IPFS]]: you can [enable IPFS archiving](https://neocities.org/distributed-web), and they [blogged about it in 2015](https://blog.neocities.org/blog/2015/09/08/its-time-for-the-distributed-web.html).+Our goal: to enable you to harness the creativity, beauty, and power of creating your own web site. To rebuild the web we lost to automation and monotony, and make it fun again.+* **Open source.** Neocities believes in open source, and we share code back with the community.+* **Not an advertising company.** We'll never put ads or watermarks on sites, and we don't sell your data to marketers.+* **Sustainable.** We want to grow, but that growth cannot risk the site (or compromise our principles).
+31
_notes/obsidian.md
···+Desktop Markdown editor for Mac, Windows, and Linux that has built in backlinking, wikilinks, and [[Zettelkasten]] support.+License model is free for personal use, they intend to have [paid licenses](https://obsidian.md/pricing) for commercial use, much like the licensing model for IDEs. Personal users pay for early access and other community features.+> In our age when cloud services can shut down, get bought, or change privacy policy any day, the last thing you want is proprietary formats and data lock-in.+> With Obsidian, your data sits in a local folder. Never leave your life's work held hostage in the cloud again.+> Plain text Markdown also gives you the unparalleled interoperability to use any kind of sync, encryption, or data processing that works with plain text files.+> Although we call it a personal knowledge base or your [[Second Brain]], we also like to think of it as an [[IDE for your notes::highlight]]. You can think of an IDE as a powerful frontend that tries to understand your code, such as where are functions and variables stored, what are their types, and by doing so make it super easy to navigate code and get suggestions as you type.
+14
_notes/orientation.md
···+Rails app to create internal docs & tutorials for an organization. Has [[Deploy to Heroku]] support, uses Google Auth for login, can group articles as lists to make Guides.[[We're using a <a href='{% link _notes/discourse.md %}'>Discourse forum</a> for this at Fission, and I'd probably recommend Discourse for this use case now.::lmn]]+> Documentation is hard. People forget to write it, and they are asked the same question over and over again. When they finally do write it down, people can't find it or it gets out of date before it can be useful.+> The goal of Orientation is to make a single point of entry for any internal question someone may have about the organization:+The [Purpose & Features page](https://github.com/orientation/orientation/blob/master/doc/FEATURES.md) has extended info.
+1
-1
_notes/projects.md
+9
-1
_notes/ubuntu.md
···
+3
-1
_notes/vancouverclt.md
_notes/cobuilding.md
···Exploring shared housing options in [[Vancouver]] through [[Community Land Trusts]] (CLT) and other models.
_posts/2011-04-11-how-to-play-instagram.md
_posts/blog/2011-04-11-how-to-play-instagram.md
_posts/2011-08-06-on-coworking-you-cannot-make-a-profit-selling.md
_posts/blog/2011-08-06-on-coworking-you-cannot-make-a-profit-selling.md
_posts/2011-10-11-turning-the-corner-on-ebook-buying.md
_posts/blog/2011-10-11-turning-the-corner-on-ebook-buying.md
_posts/2011-11-26-we-do-need-another-rss-hero.md
_posts/blog/2011-11-26-we-do-need-another-rss-hero.md
_posts/2011-12-04-focus-on-the-extras-on-your-site-rather-than.md
_posts/blog/2011-12-04-focus-on-the-extras-on-your-site-rather-than.md
_posts/2011-12-04-help-startups-by-getting-sht-done-or-get-out.md
_posts/blog/2011-12-04-help-startups-by-getting-sht-done-or-get-out.md
_posts/2011-12-14-what-support-feedback-service-should-you-use.md
_posts/blog/2011-12-14-what-support-feedback-service-should-you-use.md
_posts/2012-02-02-reinventing-the-wheel-one-directory-at-a-time.md
_posts/blog/2012-02-02-reinventing-the-wheel-one-directory-at-a-time.md
_posts/2012-02-05-i-want-to-vote-with-my-dollars-that-the-vanco.md
_posts/blog/2012-02-05-i-want-to-vote-with-my-dollars-that-the-vanco.md
_posts/2012-02-06-build-more-startups-in-vancouver.md
_posts/blog/2012-02-06-build-more-startups-in-vancouver.md
_posts/2012-02-12-what-is-an-unconference.md
_posts/blog/2012-02-12-what-is-an-unconference.md
_posts/2012-03-15-cataloging-city-neighbourhood-assets-love-my.md
_posts/blog/2012-03-15-cataloging-city-neighbourhood-assets-love-my.md
_posts/2012-03-30-octopress-all-the-things.md
_posts/blog/2012-03-30-octopress-all-the-things.md
_posts/2012-04-20-vancouver-tech-needs-to-wake-up.md
_posts/blog/2012-04-20-vancouver-tech-needs-to-wake-up.md
_posts/2012-04-25-what-im-obsessed-about.md
_posts/blog/2012-04-25-what-im-obsessed-about.md
_posts/2012-05-07-services-to-product.md
_posts/blog/2012-05-07-services-to-product.md
_posts/2012-05-27-new-hack-stack.md
_posts/blog/2012-05-27-new-hack-stack.md
_posts/2012-06-02-node-static-site-generators.md
_posts/blog/2012-06-02-node-static-site-generators.md
_posts/2012-06-19-reactions-microsoft-surface.md
_posts/blog/2012-06-19-reactions-microsoft-surface.md
_posts/2012-06-29-posts-you-dont-write.md
_posts/blog/2012-06-29-posts-you-dont-write.md
_posts/2012-07-01-setting-up-macbook-air-osx-lion.md
_posts/blog/2012-07-01-setting-up-macbook-air-osx-lion.md
_posts/2012-07-02-nv12-web-literacy.md
_posts/blog/2012-07-02-nv12-web-literacy.md
_posts/2012-07-08-ssg-lightning-talk.md
_posts/blog/2012-07-08-ssg-lightning-talk.md
_posts/2012-07-27-tracking-qr-codes.md
_posts/blog/2012-07-27-tracking-qr-codes.md
_posts/2012-08-10-calendaring-tools.md
_posts/blog/2012-08-10-calendaring-tools.md
_posts/2012-08-11-startupriot-seattle-2012.md
_posts/blog/2012-08-11-startupriot-seattle-2012.md
_posts/2012-09-04-working-contractually.md
_posts/blog/2012-09-04-working-contractually.md
_posts/2012-11-09-ship-your-first-version.md
_posts/blog/2012-11-09-ship-your-first-version.md
_posts/2012-11-24-flickr-question.md
_posts/blog/2012-11-24-flickr-question.md
_posts/2013-03-17-raw-resources.md
_posts/blog/2013-03-17-raw-resources.md
_posts/2014-01-01-you-cant-outsource-product.md
_posts/blog/2014-01-01-you-cant-outsource-product.md
_posts/2014-06-04-early-stage-tech-startup-investing.md
_posts/blog/2014-06-04-early-stage-tech-startup-investing.md
_posts/2014-08-05-mavericks-brew-cask.md
_posts/blog/2014-08-05-mavericks-brew-cask.md
_posts/2014-08-06-30-more-years.md
_posts/blog/2014-08-06-30-more-years.md
_posts/2014-08-07-taking-equity-startups-consulting.md
_posts/blog/2014-08-07-taking-equity-startups-consulting.md
_posts/2014-08-15-harvesting-knowledge.md
_posts/blog/2014-08-15-harvesting-knowledge.md
_posts/2014-11-09-vancouver-tech-civic-election.md
_posts/blog/2014-11-09-vancouver-tech-civic-election.md
_posts/2016-06-13-personal-crm.md
_posts/blog/2016-06-13-personal-crm.md
_posts/2016-06-14-flickr-to-self-hosted.md
_posts/blog/2016-06-14-flickr-to-self-hosted.md
_posts/2017-02-19-archiving-photos-ios-amazon-s3.md
_posts/blog/2017-02-19-archiving-photos-ios-amazon-s3.md
_posts/2017-08-19-blockchain-open-source-definitions.md
_posts/blog/2017-08-19-blockchain-open-source-definitions.md
_posts/2018-07-01-berlin-observations.md
_posts/blog/2018-07-01-berlin-observations.md
_posts/2018-07-02-conferences-as-community-gathering.md
_posts/blog/2018-07-02-conferences-as-community-gathering.md
_posts/2018-09-03-hello-spade.md
_posts/blog/2018-09-03-hello-spade.md
_posts/2018-09-16-time-crm-tool-update.md
_posts/blog/2018-09-16-time-crm-tool-update.md
_posts/2018-09-29-micro-blog-jekyll-micro-pub-and-indie-web.md
_posts/blog/2018-09-29-micro-blog-jekyll-micro-pub-and-indie-web.md
_posts/2018-09-30-blockchain-governance-101-vlad.md
_posts/blog/2018-09-30-blockchain-governance-101-vlad.md
_posts/2018-10-06-further-thoughts-on-the-fair.md
_posts/blog/2018-10-06-further-thoughts-on-the-fair.md
_posts/2018-10-11-commons-based-peer-production.md
_posts/blog/2018-10-11-commons-based-peer-production.md
_posts/2019-01-01-flickr-exports-jekyll.md
_posts/blog/2019-01-01-flickr-exports-jekyll.md
_posts/2019-01-06-ethnews-interview-security-token-standards.md
_posts/blog/2019-01-06-ethnews-interview-security-token-standards.md
_posts/2019-01-06-more-flickr-file-experiments.md
_posts/blog/2019-01-06-more-flickr-file-experiments.md
_posts/2019-03-31-ethereum-governance.md
_posts/blog/2019-03-31-ethereum-governance.md
-11
_posts/2019-04-09-joplin-markdown-based-note-taking.md
···-Originally design to import Evernote `.enex` files. Available on many platforms, including mobile apps and even terminal. Uses different cloud services for synchronization.
-13
_posts/2019-05-09-orientation-rails-app-to.md
···-Has Deploy to Heroku support, uses Google Auth for login, can group articles as lists to make Guides.-The [Purpose & Features page](https://github.com/orientation/orientation/blob/master/doc/FEATURES.md) has extended info.
_posts/2019-05-19-run-your-own-web-mentions.md
_posts/blog/2019-05-19-run-your-own-web-mentions.md
_posts/2019-05-21-model-t-indieweb.md
_posts/blog/2019-05-21-model-t-indieweb.md
_posts/2019-05-22-drupal-past-predictions.md
_posts/blog/2019-05-22-drupal-past-predictions.md
_posts/2019-06-11-ipad-tools.md
_posts/blog/2019-06-11-ipad-tools.md
_posts/2020-01-03-cyberboats.md
_posts/blog/2020-01-03-cyberboats.md
_posts/2020-01-05-mennonites.md
_posts/blog/2020-01-05-mennonites.md
_posts/2020-01-10-founder-notes-tam-kbeili-at.md
_posts/blog/2020-01-10-founder-notes-tam-kbeili-at.md
_posts/2020-01-13-the-midlife-crisis-of-the.md
_posts/blog/2020-01-13-the-midlife-crisis-of-the.md
_posts/2020-01-22-founder-notes-ehlist-jan-2020-vancouver.md
_posts/blog/2020-01-22-founder-notes-ehlist-jan-2020-vancouver.md
_posts/2020-01-23-german-startup-ecosystem-challenges-canadian.md
_posts/blog/2020-01-23-german-startup-ecosystem-challenges-canadian.md
_posts/2020-01-27-photo-backup-for-geeks-i-os.md
_posts/blog/2020-01-27-photo-backup-for-geeks-i-os.md
_posts/2020-02-21-tools-for-home-cooking.md
_posts/blog/2020-02-21-tools-for-home-cooking.md
_posts/2020-02-25-laptop-choices.md
_posts/blog/2020-02-25-laptop-choices.md
_posts/2020-03-14-on-instagram-off-facebook.md
_posts/blog/2020-03-14-on-instagram-off-facebook.md
_posts/2020-03-15-covid19-personal.md
_posts/blog/2020-03-15-covid19-personal.md
_posts/2020-03-21-renting-in-pandemics.md
_posts/blog/2020-03-21-renting-in-pandemics.md
_posts/2020-03-22-oscms-sunnyvale-drupal.md
_posts/blog/2020-03-22-oscms-sunnyvale-drupal.md
_posts/2020-03-31-onthisday-wa-state-roadtrip.md
_posts/blog/2020-03-31-onthisday-wa-state-roadtrip.md
_posts/2020-04-20-readwriteweb-wayback.md
_posts/blog/2020-04-20-readwriteweb-wayback.md
_posts/2020-05-10-upgraded-to-indiekit-micropub-server.md
_posts/blog/2020-05-10-upgraded-to-indiekit-micropub-server.md
_posts/2020-05-14-so-if-all-goes-well.md
_posts/blog/2020-05-14-so-if-all-goes-well.md
+58
_posts/blog/2017-04-15-notes-on-running-mastodon-heroku.md
···+<p name="5ed2" id="5ed2" class="graf graf--p graf--leading"><a href="https://medium.com/u/f841dc3192de" data-href="https://medium.com/u/f841dc3192de" data-anchor-type="2" data-user-id="f841dc3192de" data-action-value="f841dc3192de" data-action="show-user-card" data-action-type="hover" class="markup--user markup--p-user" target="_blank">Darren Barefoot</a> kicked off a <a href="https://www.facebook.com/dbarefoot/posts/10155060142235600" data-href="https://www.facebook.com/dbarefoot/posts/10155060142235600" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">discussion on Facebook</a> asking if people wanted to run Mastodon locally:</p>+<blockquote name="1f3c" id="1f3c" class="graf graf--blockquote graf-after--p">Who wants to help me set up a Mastodon instance for Vancouver-related stuff? I’ll provide the moral support, promotion and pay for hosting if someone wants to do the hard technical bits.</blockquote>+<blockquote name="8dfa" id="8dfa" class="graf graf--blockquote graf-after--blockquote">Or maybe that’s the wrong vector. Maybe we should set up an NGO tech and digital instance. Or maybe both?</blockquote>+<p name="5390" id="5390" class="graf graf--p graf-after--blockquote">I responded that maybe everyone should run their own instance:</p>+<figure name="6773" id="6773" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 479px; max-height: 376px;">+<img class="graf-image" data-image-id="1*IWD5lyPAqw8NibZPfvHDNA.png" data-width="479" data-height="376" src="https://microblog.bmannconsulting.com/uploads/2020/c339a4e9e1.jpg">+</div></figure><p name="60ca" id="60ca" class="graf graf--p graf-after--figure">Does it make sense for a community or group to run their own install? As much as I love open source, running an entire software stack securely — and not losing everyone’s data because you don’t have good backups — is a big job. I tend to discourage people from running their own software, instead mapping a domain name to Medium or Tumblr.</p>+<blockquote name="a11d" id="a11d" class="graf graf--pullquote graf-after--p">From my point of view, anything with an API that I can map my own domain to meets the bar of a resilient service — me, <a href="https://medium.bmannconsulting.com/self-hosting-doesnt-help-more-people-self-publish-b6bde64d2bcb" data-href="https://medium.bmannconsulting.com/self-hosting-doesnt-help-more-people-self-publish-b6bde64d2bcb" class="markup--anchor markup--pullquote-anchor" rel="noopener" target="_blank">Self-hosting doesn’t help more people self-publish</a>+<p name="105b" id="105b" class="graf graf--p graf-after--pullquote">Kind of contrary to that, I wrote a response to <a href="https://hackernoon.com/mastodon-is-dead-in-the-water-888c10e8abb1" data-href="https://hackernoon.com/mastodon-is-dead-in-the-water-888c10e8abb1" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Mastodon is Dead in the Water</a> saying that people should <a href="https://medium.com/@bmann/run-your-own-mastadon-instance-265897cc336d" data-href="https://medium.com/@bmann/run-your-own-mastadon-instance-265897cc336d" class="markup--anchor markup--p-anchor" target="_blank">run their own Mastodon instance</a>.</p>+<p name="f73c" id="f73c" class="graf graf--p graf-after--p">I was still in Toronto at the time, and actually got Mastodon setup using just the browser on my phone with the <a href="https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Heroku-guide.md" data-href="https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Heroku-guide.md" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Deploy to Heroku button</a>. This is a feature of Heroku I love, and I’ve created several of these buttons of my own to help people get apps up and running.</p>+<p name="cb5b" id="cb5b" class="graf graf--p graf-after--p">This Easter weekend (it took me a solid half a day yesterday) I finally did the work to fully setup a Mastodon instance. I set one up for <a href="https://www.frontierfoundry.co" data-href="https://www.frontierfoundry.co" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Frontier Foundry</a>, my new venture. I thought we might use it for links and tweet-length commentary for us and our portfolio companies. Or it might just be something to experiment with for a couple of weeks.</p>+<figure name="5e32" id="5e32" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 340px;">+<a href="https://mastodon.frontierfoundry.co/@boris" data-href="https://mastodon.frontierfoundry.co/@boris" class="graf-imageAnchor" data-action="image-link" data-action-observe-only="true" rel="noopener" target="_blank"><img class="graf-image" data-image-id="1*ubT9B0hPZ9Eu9uVODwVm5Q.png" data-width="700" data-height="340" src="https://microblog.bmannconsulting.com/uploads/2020/8831df6ccf.jpg"></a>+</div></figure><p name="b411" id="b411" class="graf graf--p graf-after--figure">My profile on the Frontier Foundry mastodon instance lives at <a href="https://mastodon.frontierfoundry.co/@boris" data-href="https://mastodon.frontierfoundry.co/@boris" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">mastodon.frontierfoundry.co/@boris</a>. There’s even an <a href="http://mastodon.frontierfoundry.co/users/boris.atom" data-href="http://mastodon.frontierfoundry.co/users/boris.atom" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">RSS feed for each user</a> which enables interesting re-use — I’ve setup an IFTTT recipe that posts anything from that feed to my Twitter account if it contains the keyword “share”.</p>+<h4 name="1409" id="1409" class="graf graf--h4 graf-after--p">Setting up Mastodon on Heroku</h4>+<p name="ffbf" id="ffbf" class="graf graf--p graf-after--h4">Here are the things you’re going to need to have accounts on / be comfortable working with:</p>+<li name="8782" id="8782" class="graf graf--li graf-after--p">a domain name and a registrar where you can edit DNS settings. I tend to use <a href="http://namecheap.com" data-href="http://namecheap.com" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Namecheap</a>, while <a href="https://www.hover.com/" data-href="https://www.hover.com/" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Hover</a> is my “regular user” recommendation that also happens to be Canadian. Domains tend to be about $10USD per year, although there are also much cheaper ones and specials.</li>+<li name="c8b1" id="c8b1" class="graf graf--li graf-after--li">an <a href="https://aws.amazon.com/" data-href="https://aws.amazon.com/" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Amazon AWS account</a>: accounts are free although you will have to have a credit card attached. The S3 file storage here will cost perhaps $1USD per month at most.</li>+<li name="66ff" id="66ff" class="graf graf--li graf-after--li">a <a href="http://heroku.com" data-href="http://heroku.com" class="markup--anchor markup--li-anchor" rel="noopener" target="_blank">Heroku</a> account: accounts are free, you’ll need a credit card attached to your account, and I am currently paying what will amount to $14USD per month for hosting</li>+<p name="9e97" id="9e97" class="graf graf--p graf-after--li">Next, you may very well need to have a desktop computer setup with Ruby, Node, git, and a full suite of developer tools to be successful in getting everything working.</p>+<p name="51e6" id="51e6" class="graf graf--p graf-after--p">Reading <a href="https://ashfurrow.com/blog/running-mastodon-on-heroku/" data-href="https://ashfurrow.com/blog/running-mastodon-on-heroku/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Ash Furrow’s Running Mastodon on Heroku</a> meant that someone had hit many roadblocks ahead of me and figured out some of the workarounds, which was great. The setup I ended up following was two Heroku installs to get the Streaming API working, as per the <a href="https://github.com/tootsuite/mastodon/issues/1119#issuecomment-292816340" data-href="https://github.com/tootsuite/mastodon/issues/1119#issuecomment-292816340" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">comment in this issue by ecmendenhall</a> (thanks <a href="https://medium.com/u/63ecced19e3d" data-href="https://medium.com/u/63ecced19e3d" data-anchor-type="2" data-user-id="63ecced19e3d" data-action-value="63ecced19e3d" data-action="show-user-card" data-action-type="hover" class="markup--user markup--p-user" target="_blank">Connor Mendenhall</a>!).</p>+<p name="844c" id="844c" class="graf graf--p graf-after--p">I wasted a lot of time setting things up from scratch with a fresh clone of mastodon, when starting with the Deploy to Heroku and just adding the second streaming server would have probably been a better decision.</p>+<p name="1d82" id="1d82" class="graf graf--p graf-after--p">The other thing that took a lot of time was setting up the Heroku Mailgun add-on. After you add it, you need to verify yourself, and then take a whole bunch of other steps in both Mailgun and your DNS / MX settings for it to be fully working. Do this right at the beginning.</p>+<p name="6ce9" id="6ce9" class="graf graf--p graf-after--p">I’ve still got one piece of troubleshooting / bug to figure out with Amazon S3 settings where S3_BUCKET and S3_HOSTNAME duplicate each other (and even there I’m not going to bother doing SSL with Cloudfront, which means there is a mix of secure content and insecure images).</p>+<h4 name="10f5" id="10f5" class="graf graf--h4 graf-after--p">Should people run their own software?</h4>+<p name="69c3" id="69c3" class="graf graf--p graf-after--h4">In short, the answer is no. The level of expertise — and I’m not even talking digital literacy, I’m talking learned, professional expertise — that someone requires to run, maintains, and secure software is very high.</p>+<p name="2b6c" id="2b6c" class="graf graf--p graf-after--p">That’s one of the reasons I run as many things as I can on Heroku. I don’t have to worry about the lower levels of an operating system at all.</p>+<p name="76fe" id="76fe" class="graf graf--p graf-after--p">Docker is the other newest kid on the block, and Mastodon is setup to work well with Docker. But Docker and various places where you can host docker containers don’t solve the fact that you are still exposed to the entire operating system stack of a server, which is where many security and backup issues lie.</p>+<p name="c730" id="c730" class="graf graf--p graf-after--p">With Heroku, database backups are included, it’s just a snapshot of code and configuration, and Amazon S3 backs up the files automatically, too. Heroku even handles SSL certificates automatically for paid accounts.</p>+<p name="cecd" id="cecd" class="graf graf--p graf-after--p">The folks building mastodon are helpful to a point in getting things running on Heroku, but ultimately are focused on maintaining a more traditional software stack that they use for their own development and deployment. I think that going forward, applications need to be designed to be deployed in simpler fashion, with less of a “stack” and more pluggable components.</p>+<p name="bd0b" id="bd0b" class="graf graf--p graf-after--p">What would a mastodon that was designed to be run “serverless” look like?</p>+<h4 name="f93f" id="f93f" class="graf graf--h4 graf-after--p">Decentralized and P2P apps of the future</h4>+<p name="2e34" id="2e34" class="graf graf--p graf-after--h4">I’ve been working a lot with blockchain and other decentralized / P2P applications lately. I wrote about the <a href="https://medium.bmannconsulting.com/akasha-planting-tag-flag-vancouver-bowen-island-canada-49907fa370c" data-href="https://medium.bmannconsulting.com/akasha-planting-tag-flag-vancouver-bowen-island-canada-49907fa370c" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Akasha decentralized blogging platform</a> that runs on the Ethereum blockchain, and I’ve also poked about with <a href="https://beakerbrowser.com/" data-href="https://beakerbrowser.com/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Beaker Browser</a>, which runs on the <a href="https://datproject.org/" data-href="https://datproject.org/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">dat protocol</a> underneath.</p>+<p name="ab94" id="ab94" class="graf graf--p graf-after--p">It was a lot of work to setup an instance of mastodon on Heroku. For someone that has tinkered with open source tech and servers for 15+ years and has a computer science degree.</p>+<p name="2be1" id="2be1" class="graf graf--p graf-after--p">And with that, I’m still paying a relatively high amount (I don’t think I could justify $15/month or $180 years for just my personal usage), never mind “renting” a domain name from the DNS system. mastodon works in a mobile web browser or with some iOS or Android apps, but I don’t think I could have completed the entire setup and install from my phone.</p>+<p name="43c3" id="43c3" class="graf graf--p graf-after--p">As I <a href="https://medium.bmannconsulting.com/self-hosting-doesnt-help-more-people-self-publish-b6bde64d2bcb" data-href="https://medium.bmannconsulting.com/self-hosting-doesnt-help-more-people-self-publish-b6bde64d2bcb" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">wrote before</a>, I think the list of things we need to aim for with these future decentralized apps is:</p>+<strong class="markup--strong markup--li-strong">Publish from a smartphone:</strong> the smartphone will be the only computing device for most of the world going forward. Focus on it.</li>+<strong class="markup--strong markup--li-strong">No server hosting:</strong> fully decentralized / peer-to-peer. There may still be various semi- or fully-centralized services for discovery, naming, trust, or other convenience functions.</li>+<strong class="markup--strong markup--li-strong">No domain names:</strong> let’s not rent our identifiers, and let’s not build financial barriers to anyone “owning” their content online</li>+<p name="259a" id="259a" class="graf graf--p graf-after--li graf--trailing">I’m going to continue exploring in this space. In the meantime, it’s great to see mastodon bringing a bunch of discussion forward, and for us all to think about federation, decentralization, and what that means for designing interactions.</p>
+14
_posts/blog/2017-09-11-firesideconf-barcamp-spirit.md
···+<p name="6845" id="6845" class="graf graf--p graf--leading">Want to carry on the spirit of FiresideConf? Here are a bunch of ways you can take action <strong class="markup--strong markup--p-strong">RIGHT NOW</strong>:</p>+<p name="9254" id="9254" class="graf graf--p graf-after--p">You can pledge equity of your startup to a charity of your choice when you have an exit? Go <a href="http://upsidefoundation.ca/" data-href="http://upsidefoundation.ca/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">sign up for the Upside Foundation</a>. In Vancouver, let’s get together to talk Upside during Startup Week.</p>+<p name="88a7" id="88a7" class="graf graf--p graf-after--p"><a href="http://stopgap.ca/" data-href="http://stopgap.ca/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Stop Gap</a> is happy to accept your <a href="http://stopgap.ca/donate-today/" data-href="http://stopgap.ca/donate-today/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">charitable donations here</a>. What they could use even more is some business coaching, marketing support, and general brainstorming on how to use innovation to be financially sustainable beyond one off donations. Maybe get them on Patreon? <a href="http://www.bmannconsulting.com/contact/" data-href="http://www.bmannconsulting.com/contact/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Please contact me</a> if you’d like to get involved.</p>+<p name="8f47" id="8f47" class="graf graf--p graf-after--p">Love <a href="https://medium.com/u/999f9d47984d" data-href="https://medium.com/u/999f9d47984d" data-anchor-type="2" data-user-id="999f9d47984d" data-action-value="999f9d47984d" data-action="show-user-card" data-action-type="hover" class="markup--user markup--p-user" target="_blank">Jonathan Mann</a>’s Song A Day? Send him some Ether for a great music + blockchain project he’s looking to get started: 0x3d9456ad6463a77bd77123cb4836e463030bfab4</p>+<p name="1ccb" id="1ccb" class="graf graf--p graf-after--p">You can read about the Early Stage Venture camp that I helped facilitate over on the <a href="https://www.nacocanada.com" data-href="https://www.nacocanada.com" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">NACO blog</a> (which I’ll update with direct a link here later when it’s posted).</p>+<p name="b008" id="b008" class="graf graf--p graf-after--p graf--trailing">Thanks Fireside 2017. Go dig into what other people are feeling and thinking after their experience <a href="https://twitter.com/search?q=%40firesideconf%20OR%20from%3A%40firesideconf%20OR%20%23firesideconf&src=typd" data-href="https://twitter.com/search?q=%40firesideconf%20OR%20from%3A%40firesideconf%20OR%20%23firesideconf&src=typd" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">#firesideconf »</a></p>
+36
_posts/blog/2018-06-14-algiers-smart-city-leapfrog-tech.md
···+<p name="6bac" id="6bac" class="graf graf--p graf-after--h3">I am speaking at the [[Smart City Algiers Summit]] http://www.smartcityalgiers.com/ at the end of June. Along with Dr. [[Riad Hartani]], I was asked about some of the thoughts on the Algiers Smart City project and their leapfrog tech approach.</p>+<p name="f6df" id="f6df" class="graf graf--p graf-after--p">Dr. Riad wrote previously about the “cascading technology trap” that cities find themselves in. In essence, the innovation and iteration speed of cities is much slower than the development of technology. By the time a technology has been assessed and approved — the next technology has come along. Or, a brand new technology is put in place at a stage where it is not yet ready for deployment.</p>+<blockquote name="4d46" id="4d46" class="graf graf--blockquote graf-after--p">Cities plan over the long term and expectation for mature technologies and validated business case. Modern technologies have a short lifespan relative to what cities seek. Often, the business case is not validated for wide-scale deployment. Validating the return on investment is a time-consuming activity. Moreover, the organizational structure of cities, the decision-making cycle, the process of evaluation and deployment is slow to assimilate complex modern technologies that cut across vertical silos around which city functions have developed.</blockquote>+<p name="7968" id="7968" class="graf graf--p graf-after--blockquote"><a href="https://enterpriseiotinsights.com/20171220/channels/cascading-technology-trap-smart-city-deployments-reader-forum" data-href="https://enterpriseiotinsights.com/20171220/channels/cascading-technology-trap-smart-city-deployments-reader-forum" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">The Cascading Technology Trap in Smart City Deployments</a>, Riad Hartani & Frank Rayal</p>+<p name="4919" id="4919" class="graf graf--p graf-after--p">In what way can cities — especially those in the developing world — lean into “leapfrog” technologies, to be ahead of the iteration and learning curve?</p>+<p name="1d77" id="1d77" class="graf graf--p graf-after--p">Rather than waiting to be sold a solution by vendors or Internet giants, how does home grown local talent gain skills combined with the local context of a city or region?</p>+<div class="section-inner sectionLayout--outsetColumn"><figure name="9faf" id="9faf" class="graf graf--figure graf--layoutOutsetCenter graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 1192px; max-height: 671px;"><img class="graf-image" data-image-id="1*VYXn8Q0bHqZz1IIsKkHTqg.jpeg" data-width="2048" data-height="1152" src="https://microblog.bmannconsulting.com/uploads/2020/02246b3eaa.jpg"></div>+<figcaption class="imageCaption">Photo by <a href="https://www.flickr.com/photos/jaysen/102751070/" data-href="https://www.flickr.com/photos/jaysen/102751070/" class="markup--anchor markup--figure-anchor" rel="noopener" target="_blank">Jaysen Naidoo</a></figcaption></figure></div>+<h4 name="d578" id="d578" class="graf graf--h4 graf-after--figure">The Algiers Smart City (ASC) project considers as fundamental that growth is based on leapfrog technologies and new, non-linear methodologies. How can this approach be transformed into reality in your opinion?</h4>+<p name="053c" id="053c" class="graf graf--p graf-after--h4">One has to go back to the main premise behind leapfrog technologies. They are technologies that are fairly new, disruptive, fast moving and in most cases, widely accessible given their open source and global collaborative nature.</p>+<p name="f3c9" id="f3c9" class="graf graf--p graf-after--p">They are also a direct consequence of the stage at which we are in terms of Internet evolution, where a few technology giants significantly dominate and aggressively pushing such technologies, to ensure more dominance versus legacy players.</p>+<p name="7fa9" id="7fa9" class="graf graf--p graf-after--p">In the Algiers project, a careful well thought through choice has been made to leverage these aspects. We believe it’s a wise approach, exploiting disruptions and narrow windows of opportunities. The other way to look at it would be to ask about alternative ways of achieving technology development goals. We don’t see any viable alternative, so it seems to be the best choice out there.</p>+<h4 name="d070" id="d070" class="graf graf--h4 graf-after--p">What elements will be key for the ASC, or another analogous projects, to be exported and replicated anywhere?</h4>+<p name="5a03" id="5a03" class="graf graf--p graf-after--h4">Smart city projects are all unique and all very specific to the context in which they are applied. Yet, we believe that the challenges the ASC project is going after, namely those of isolation, dependency and lack of confidence are common throughout the emerging world, to different extents.</p>+<p name="5778" id="5778" class="graf graf--p graf-after--p">As such, elements of the approach are repeatable and adaptable to other cities. In fact, efforts are under way to expose the model developed in Algiers — in particular when it comes to jump-starting, funding and growing high tech startups, as well as models of technology experimentation and partnerships with global technology players — to other cities, in Africa in particular.</p>+<h4 name="9f41" id="9f41" class="graf graf--h4 graf-after--p">The implementation of new technologies will surely bring new challenges in the regulatory field. To what degree is a country like Algeria ready for such changes?</h4>+<p name="836c" id="836c" class="graf graf--p graf-after--h4">The Algiers Smart City project has been initiated with one consideration in mind — that technologies are developing way faster than regulations, and this is one of the key challenges to overcome. The project has put together specific initiatives to address this challenge.</p>+<p name="3075" id="3075" class="graf graf--p graf-after--p">The best illustration of this is the launch of the large scale live Smart City experimental lab in Algiers, where new advanced technologies can be experimented with, within a relaxed regulatory framework. We believe that this is a very creative way, not only to understand how such technologies will be deployed, but also how regulators can see, learn and understand the consequences of deploying such technologies, and through that, adapt and evolve regulations on a broader scale.</p>+<h4 name="c5a2" id="c5a2" class="graf graf--h4 graf-after--p">Startups in Algiers have claimed that revenue is the priority issue to tackle, and not funding. How could the ASC contribute to build on sustainable revenue models in your view?</h4>+<p name="0cf1" id="0cf1" class="graf graf--p graf-after--h4">Funding is important, but its not necessarily the most important thing. Access to customers and customers’ revenue is the most important thing. That would drive funding. Not having a path to that not only will make funding difficult but also bring in a very low return on investment. As such, the Algiers Smart City strategy in linking startups to the demand side, and to customers with a goal of fast tracking funding is the right strategy.</p>+<p name="c587" id="c587" class="graf graf--p graf-after--p">In fact, this is the most important thing for startups and not only in Algiers, but everywhere. It is more of a need in Algiers and regions of the world where venture capital are still nascent. We don’t see any other option than working with startups in having them get access to revenue. Funding will follow. The recent startups launched within the Smart City project follow this model. Time will tell if this is the right approach, but as of now, all indications show that it’s an approach that is worth executing on.</p>+<h4 name="8437" id="8437" class="graf graf--h4 graf-after--p">What else is needed for entrepreneurs to succeed under the wave of new technological paradigms?</h4>+<p name="a9bd" id="a9bd" class="graf graf--p graf-after--h4">What is needed is risk, or more risk taking. Startups are about risk management. There is little risk taken in Algiers and a lot of the world when it comes to risk taking, early stage technology and business risk taking in particular. It is a difficult thing to do. It involves culture, society, ability and many other factors. Yet, without such risk taking, there is little chance of developing tech giants. Algiers has taken a very pragmatic approach in addressing this.</p>+<p name="e445" id="e445" class="graf graf--p graf-after--p">Basically, significantly help those taking risks, with the goal of increasing their chances of success. Why? Because risk taking levels will go up if risk is perceived as bringing returns on investments. It’s a natural phenomenon. Seeing risk rewarded, over time, will ensure there is more risk taking by newer generation. This takes time, years, tens of years. Yet, there is no way around it.</p>+<h4 name="2455" id="2455" class="graf graf--h4 graf-after--p">What’s your assessment on the progress made by the ASC by the time being?</h4>+<p name="bfe2" id="bfe2" class="graf graf--p graf-after--h4">It is very early stage in the process. I think the Algiers Smart City project’s main credit is in having clearly identified its strategic goals and executed on tactical goals based on that. It’s a thesis being laid out, and it’s a thesis being defended, not in theory but in practice. In the field.</p>+<p name="1cfc" id="1cfc" class="graf graf--p graf-after--p graf--trailing">Of course, one can draw an anti thesis to any thesis. In fact, that is what Algiers aimed at doing — developing a thesis, exposing it and listening to anti thesis, then carefully and proactively adapting. It’s all about adapting, and doing so smartly. Understanding that is in itself good progress. The rest will take years, and much longer to judge. It is a hard task at hand. Very hard in fact, but one begs the question: what else can be done?</p>
+151
_posts/blog/2020-07-04-new-blog-microblog.md
···+I've decided to use [[Micro.blog]] directly for my short form, social posting. I'm happy with Micro.blog's approach to owning your content -- you can take an export of your Markdown content and images and run it in many static site generators. Having my own domain name means in the future I can redirect wherever I need.+I was already paying for simple cross posting, and I've realized that I am posting less in part because of my rather fragile setup.+So the plan is to do short form posts here, and keep long form content (other than posts like this one!) on `blog.bmannconsulting.com`.+A few notes on setting up a new blog, and getting used to how things work here on Micro.blog (Mb). I'll update as I go, and put suggestions in **bold** for the Mb team:+Because of how cross-posting works, I'm going to set things up so I can choose which short form posts get sent to Twitter, LinkedIn, or other places. Each category has a separate feed, meaning you can use the feeds attached to a category to control that cross-posting.+Speaking of categories, I really like tags, where I can create them on the fly as I post. This may actually work with an external Micropub posting service, but in the Mb interface, you only get the categories you previously created.+Even if you're going to use a custom domain name, you need to initially pick a "short" name. I had forgotten that [other Boris](https://boris.micro.blog) is squatting on the `boris` microblog...although I do have the [@boris](https://micro.blog/boris) username. So, `bmann` it is.+I switched over DNS, creating a subdomain CNAME that points `microblog.bmannconsulting.com` to `bmann.micro.blog`. It seemed to be taking a while for Mb to pick up the custom domain. It's quite annoying that you can't save the page, and that the message is a drop down modal, until the DNS is working. I had a hunch, and turned off "Proxying" in Cloudflare, and then Mb saved the custom domain right away. **If your domain is on Cloudflare, turn off Proxying for your Mb CNAME**+I looked at my sample posts I had made. `bmann.micro.blog` was showing in a number of places, including the link to the test post image I made. I edited the post and linked to an off-site image post. This is great: while Mb includes image uploads to make it simple, it's also happy for you to just add links to images posted anywhere.+Basically, the take away here is, wait patiently until your custom domain is accepted, and until your https status is confirmed. Everything will work, and your custom domain is shown everywhere, without "leaking" any Mb-specific links, other than of course your Mb username (which you keep and can use even if you no longer host here).+How images are handled ends up not being perfect for me. This [bike photo](https://microblog.bmannconsulting.com/uploads/2020/a28194eb67.jpg) got resized by Mb to an ~883KB JPEG. The original from my phone is ~5.1MB. I now have to think about making sure that that original is somewhere else. Also: no other sizes are created, other than for the Timeline, where Mb seems to run a resizing proxy. [Example of same biking photo](https://micro.blog/photos/1000x/https://microblog.bmannconsulting.com/uploads/2020/a28194eb67.jpg). **Feature request: Ideal for me would be a "keep original photo size" option (likely with a $ increase, same as for podcasts and videos), as well as having some other standard sizes generated to be used in templates.**+I selected `@boris@microblog.bmannconsulting.com` as my Mastodon username. This means that if you're on Mastodon, you can "follow" that account and you'll get all my posts. [@manton](https://micro.blog/manton) [wrote about Micro.blog + Mastodon](https://manton.org/2018/11/07/microblog-mastodon.html) back in November 2018.+As far as I can tell, from the Design page you can't easily get to full size previews of the themes. I found them on [Mb's GitHub organization](https://github.com/microdotblog) which was easier to browse the full size screenshots. **Suggestion: make thumbnails of designs clickable to full site previews**+There's still no "export" page anywhere in [Help](https://help.micro.blog/). Here's what you can get when you search:+Github is the closest, which is currently not an active feature, but it does tell you that you can go to _Posts_ and click on the _Export_ link at the top of the page, which is where you'll get links for export formats of WordPress and Blog Archive:+**Suggestion: Make an export page in Help, and include this screenshot and describe WordPress and bar**. Maybe link to [Manton's blog post about Blog archive format](https://www.manton.org/2017/11/24/blog-archive-format.html).+Having tried a test export of `.bar` (rename it to `.zip` and you can open it and browse), this isn't very useful to me. I'd prefer individual Markdown files. I understand there are lots of different kinds and getting them to work with a particular static site generator is going to take _some_ work, but they also feel a lot more standard than `.bar`. I'll have to think about whether this is a dealbreaker for me. It's close to one, since WordPress is then the only other system that people could relatively seamlessly switch to. **Feature request: include a Markdown export format**+Looks like [per category archive links are broken on the Lanyon them](https://microblog.bmannconsulting.com/categories/biking/). I'll be experimenting with different themes and customizing them, so that link may show something different. Here's a screenshot:+I'm writing these notes up for me, and ideally in a way that it's helpful for others. I'm trying to be clear about feedback to Mb.+Feature requests are asking for new things and why they would be valuable to me. Balancing the feature requests of many users is very hard, so please consider these just out loud notes. And -- I'm happy to help with testing!+I thought about bringing together a few bits and pieces of stranded content. I was pleasantly surprised at all the import options!+I imported both Medium and a long ago WordPress account `boris.wordpress.com`. Wow, both worked great -- including bringing in Medium drafts that I had long forgotten about.+With so many posts, I ended up buying a license to [MarsEdit](https://www.red-sweater.com/marsedit/), a desktop blog editor. Works great!+One issue with the import is that in the web editor, Categories become unusable. Here's a screenshot from my phone:+I'd like to see tags be supported, where you type and add a comma to create tags as you go. Categories are useful too, but also need to scale. **Feature Request: add Tags and/or let people use Categories with a tagging interface that scales to large numbers.**+I'm struggling a bit to figure out how to do selective cross posting. I thought I could use Twitter and LinkedIn category feeds and only enable cross posting of those categories, but its not currently working as expected. I'll experiment more and write this up.+I do a lot of creation on my phone. In the past, I had a full Micropub workflow using lots of different clients.+I setup [Quill](https://quill.p3k.io/), a web based Micropub client that works great on mobile.+I had used Bookmarks to create a mini directory of websites I want to share and organize by category.+On Mb, it turns out these really are Favorites. I thought I had found a bug, but posting a "Bookmark" adds a website entry and shows up in your account's Favorites (same as you favoriting another user's post). See screenshot:+I turned on Replies showing up on the microblog. They [appear on a separate Replies page](/replies).+They don't appear to be able to be downloaded via MarsEdit MetaWeblogAPI, and they don't appear in the Posts web interface. Which means that Replies can't be edited. Don't know if they show up in an export, will have to test that.+I did a [reply](https://microblog.bmannconsulting.com/replies/2020/07/06/9893803.html) directly via the Mb feed to [Ton's post](https://www.zylstra.org/blog/2020/07/the-network-effect-by-martha-wells/). Remotely, the Webmention points to `micro.blog/boris`, which I consider to be a bug when I have a custom domain set (but I did initiate it from within the Mb timeline, so...).+Used Quill to make a Micropub reply to [Ton's other post](https://www.zylstra.org/blog/2020/07/quotebacks-block-quotes/). As of this writing, wasn't displaying yet -- the previous one showed up right away, but might be spam control on Ton's side. It initially redirected me to a [reply on the micro.blog timeline](https://micro.blog/boris/9893953) -- including some markdown that didn't get translated.+But I do get a [permalink on my custom domain](https://microblog.bmannconsulting.com/replies/2020/07/06/9893953.html), with the markdown now properly transformed.+**Feature requests: make replies available via MetaWeblogAPI and in exports. Should probably be available in Posts as well.**+**Bug: can't edit Replies.** If we consider it an advanced feature, maybe it's OK to only be editable via MetaWebAPI. This would be another dealbreaker for me: I need to be able to edit all the content I post to my site. I could work around it by only posting _Posts_ and not using Replies (which I'm already going to do for Favorites / Bookmarks, which is fine).+<a name="crosspost"></a>I thought I had Twitter cross posting working, but it seems inconsistent. What I did was turn off cross-posting for the main feed -- and also didn't "attach" any of those accounts for cross-posting. Screenshot shows "enable crossposting" because it is turned off :)+Then I added two other feeds for a Twitter category `https://microblog.bmannconsulting.com/categories/twitter/feed.xml` and a LinkedIn category`https://microblog.bmannconsulting.com/categories/linkedin/feed.xml`. On each feed, only the respective social account is linked / enabled.+So my thinking is, whenever I add either of those categories to a post, they will show up in those feeds, and then cross-post. Anything else will show up in my "main" Mb feed / blog feed but not cross post.+Twitter cross-posting [worked](https://twitter.com/bmann/status/1279868513402982400) for [this biking photo post](https://microblog.bmannconsulting.com/2020/07/05/a-test-ride.html). But then didn't work for [this second post](https://microblog.bmannconsulting.com/2020/07/05/digital-spaces-generally.html). I forget if I used the web interface or Gluon to post both / either of these, which may have something to do with it.+This [music post I just made today](https://microblog.bmannconsulting.com/2020/07/06/what-year-is.html), using the Posts web interface here, and tagged it with music and Twitter, and didn't cross-post to Twitter.+I guess this is sort of a **bug report**, I'm not sure if looping back category feeds into Mb is an expected use case. Since I can't control cross-posting behaviour through Micropub (and not through the Posts web interface here), it's my solution that if it works reliably would be really great and be very flexible.+Turns out there is a [@help thread](https://micro.blog/help/9896693) that covers this. I went ahead and removed the "main" feed, so it looks I should be able to add a LinkedIn tag _or_ Twitter tag and things will work how I want, but that adding _both_ won't work? I'll try them individually for now and see how it goes :)+I tried a LinkedIn-tagged post, authored it through Quill (in part, because the Mb Post editor was giving wildly inaccurate character counts?). [Worked!](https://www.linkedin.com/feed/update/urn:li:activity:6686317602719055873/) Looks like links / HTML gets stripped, and you get a link back to [your post here on Mb](https://microblog.bmannconsulting.com/2020/07/07/via-davidcrow-the.html). The theme I have doesn't have social metatags, so I'll add that to my TODO.+Posted [a from scratch post](https://microblog.bmannconsulting.com/2020/07/07/its-ottawaera-boris.html) via MarsEdit (only made edits before). Post didn't make it to the Mb feed. Is this because I deleted the "main" feed? Not a big deal really, I'm either cross posting or posting for feed subscribers mostly.
+1
-1
_posts/journal/2020-09-26-journal.md
···> A mini PC combines the performance of a good laptop with the upgradability of a full-size desktop computer together in a package the size of a paperback book. Mini PCs are fast enough for anything other than high-end gaming, and unlike some laptops, they include all the ports you need to connect multiple monitors and your favorite keyboard and mouse. You can find lots of good mini PCs, but [HP’s ProDesk 600 G5](https://www.nytimes.com/wirecutter/out/link/39345/163246/4/116590/?merchant=HP) offers the best combination of performance, ports, and price.Going to Apple Canada, the Mac Mini 2020 configured with 3.2GHz 6‑core 8th‑generation Intel Core i7 (Turbo Boost up to 4.6GHz) with 512GB SSD is $1659CAD with 8GB of memory. +$750CAD for 32GB of memory from Apple??!! Looks like [$180CAD from OWC](https://eshop.macsales.com/shop/memory/owc/apple-mac-mini/2018) for the same amount.
-6
_posts/journal/2020-09-29-journal.md
+48
_posts/journal/2020-09-30-journal.md
···+Reading [[Zeynep Tufekci]]'s article in [[The Atlantic]] [This Overlooked Variable Is the Key to the Pandemic - It's not R](https://www.theatlantic.com/health/archive/2020/09/k-overlooked-variable-driving-pandemic/616548/).+Finally actually _read_ some of the [[Foam]] stuff, which I did have installed in my VSCode. The [[Markdown Notes]] extension I've now configured to properly create new notes, which is great.+Ironically, the way the actual Foam extension generates [Link References](https://foambubble.github.io/foam/link-reference-definitions) at the bottom of each file, doesn't work for me at all. [[Simply Jekyll]] takes care of that, because I can just use a wiki link and it takes care of looking up the file and matching it. Of course, the concern I have with SJ is that it has some unique syntax which is very much tied up into the theme, thus making it not portable. I guess that means that technically the Foam link definitions *would* make a lot of it portable, using just plain markdown links.+Aside from notes here, I'm on a roll with my private notes in [[Roam Research]]. That really just mean getting things done, as I fill out a [[Worklog]] to stay on track. I installed Roam as a [[PWA]] yesterday, when I noticed that option was available. Being able to alt-tab to it rather than just being lost in a sea of Chrome tabs definitely is a good thing.+[[Garden and the Gazebo]] is definitely going to need to get rewritten, and I'm probably feeling more comfortable with making this site a public git repo. Or at least, extracting the way I have things configured theme-wise and sharing that.+I wanted local links to stand out, so I added CSS styles `.tooltip a::before` and after to show the links in square brackets.[[I originally included the full CSS as a code snippet, but the way linkifying works with SJ it turns them into links! 😜::rsn]]+Continued massaging of content from OG blog and imported Medium posts that made it into Micro.blog, that make more sense here.+The [[Blog Colophon]] is here now. Swapped out [Archive]({% link archive.html %}) for a new [Blog]({% link blog.html %}) listing. Needs more work to actually highlight latest blog posts. And I guess I should write long form personal posts at some point!+Upgraded to [[Micro.blog]] Premium. The new Bookmarking feature is a pretty good non-silo "read it later" feature, plus it will have reblogging built in. It's convenient to have my articles to read next to my blog-small-snippets, so looking forward to testing this. Here's [[Manton Reece]] doing a screencast of how it works.+<blockquote class="quoteback" data-title="" data-author="Manton Reece" data-avatar="https://micro.blog/manton/avatar.jpg" cite="https://www.manton.org/2020/09/22/im-trying-to.html"><p>I’m trying to mostly stop using YouTube until November, so I’ve created a new Vimeo account to host videos about Micro.blog. <a href="https://vimeo.com/460615873">Here’s a 3-minute screencast tour</a> of the Micro.blog 2.0 bookmarks and highlighting interface, launching next week.</p>+<footer>Manton Reece <cite><a href="https://www.manton.org/2020/09/22/im-trying-to.html">https://www.manton.org/2020/09/22/im-trying-to.html</a></cite></footer></blockquote><script src="https://micro.blog/quoteback.js"></script>+I reset my [[Neocities]] account, that I had never really done anything with. Turns out, you can [enable IPFS archiving](https://neocities.org/distributed-web), and they [blogged about it in 2015](https://blog.neocities.org/blog/2015/09/08/its-time-for-the-distributed-web.html).
+23
_posts/journal/2020-10-01-journal.md
···+I had just "one more thing" to add to the site last night, and so ended up staying up way too late again.+I'm now trying out [[Obsidian]] for working with these notes. Again, the nice thing about "files" and _some_ commonality around Markdown.+It doesn't fully understand Jekyll markdown notes -- I guess the spelling for wiki links has to be exact.+New notes it creates with Title Caps and spaces, which is easy enough to fix before publishing. This not-really-compatible-markdown-and-file-structures is where all the issues live in note portability.+And, funky things like these SJ specific external links [[@obsdmd::https://twitter.com/obsdmd]][[Source for Twitter links looks like this: <code>@obsdmd : : https://twitter.com/obsdmd</code> inside the brackets.::lsn]] it doesn't understand what I'm doing :)+It _is_ a very nice distraction free writing interface that I can see using, but using my code editor as my note taking interface, especiallty when I _am_ going back and forth programming the website with little chunks of [[Liquid]] markup, probably makes more sense for me.
+31
_posts/journal/2020-10-03-journal.md
···+I had [previously]({% link _posts/journal/2020-09-26-journal.md %}) looked up OWC RAM, and I can order direct from them. Are there local places in Vancouver? Listed as resellers, [dmac don't list the 2018/2020 Mac Mini](https://www.dmac.ca/mac-mini-mac-pro) and [Simply doesn't seem to list the right RAM either](https://www.simply.ca/collections/ram).[[Why don't small businesses keep their websites up to date???::rmn]] OK, guess I order [direct from OWC](https://eshop.macsales.com/shop/mac-mini), Total cost was $258CAD including shipping and duties.+OWC have one [[eGPU]] enclosure, the [AKiTiO Node Titan](https://eshop.macsales.com/item/AKiTiO/NPTNT3/) (as well as bundles that include AMD graphics cards). I haven't done any research on eGPUs yet, other than noting that Apple had the [Blackmagic eGPU](https://www.blackmagicdesign.com/ca/products/blackmagicegpu/) available for sale from them directly.+External storage is a whole other thing. I looked up the [[Filecoin]] [guide to storage mining](https://filecoin.io/blog/filecoin-guide-to-storage-mining/) and basically you need a $3KUSD AMD machine at a minimum to do mining. Just syncing the Filecoin blockchain (which I do want to experiment with), needs 12GB per week:+> If you don’t wish to mine, but would still like to run the Lotus client for the purposes of keeping a wallet or interfacing with the network, a system with 2-4 CPU cores, 8GiB of RAM, and enough storage for the Filecoin blockchain should be sufficient (the current testnet chain grows at about 12GiB per week; improvements to reduce this storage requirement are ongoing).+Like I said, researching the right combination of external enclosures and drives and such is for another time. I've never really stored a lot of media on drives / at home.+<p lang="en" dir="ltr">Caught up with @catthekin in way too long today. Along with pro photographer @bmann</p>— Campbell Macdonald (@cambel) <a href="https://twitter.com/cambel/status/1312601138642841602">October 3, 2020</a>+Messed around with a [[Fission]] [timing log](https://talk.fission.codes/t/timing-log-of-publishing-with-fission/1077) of publishing this site.
assets/2020/09/neocities-ipfs.jpg
This is a binary file and will not be displayed.
assets/2020/obsidian-graph-2020-10-01.png
This is a binary file and will not be displayed.
+22
-1
assets/css/style.css
·········
assets/microblog/22604b86dd.jpg
This is a binary file and will not be displayed.
assets/microblog/43762b4d36.jpg
This is a binary file and will not be displayed.
assets/microblog/5e6fe2c90b.png
This is a binary file and will not be displayed.
assets/microblog/999d04337d.png
This is a binary file and will not be displayed.
assets/microblog/ae1324bcbf.png
This is a binary file and will not be displayed.
assets/microblog/ba76d7ee41.png
This is a binary file and will not be displayed.
assets/microblog/cffa790d90.png
This is a binary file and will not be displayed.
assets/microblog/eee291fd35.png
This is a binary file and will not be displayed.
-12
blog.code-workspace
+27
blog.html
···+<p>Long form published articles formerly known as a blog. The <a href="../archive/">Archive</a> has all the posts by year.</p>+<span><a href="{{ blog.url }}">{{ blog.title }}</a> <time style="float: right;" datetime="{{ blog.date | date: "%F" }}{{ blog.date | date: "%B %e, %Y" }}">{{ blog.date | date: "%B %e, %Y" }}</time></span>
+40
feeds/blog.xml
···+<description>{% if site.description %}{{ site.description | xml_escape }}{% endif %}</description>+<sy:updatePeriod>{{ site.feed_update_period | default: "daily" | xml_escape }}</sy:updatePeriod>+<sy:updateFrequency>{{ site.feed_update_frequency | default: 1 | xml_escape }}</sy:updateFrequency>
+2
-6
feeds/notes.xml
···<description>{% if site.description %}{{ site.description | xml_escape }}{% endif %}</description><sy:updatePeriod>{{ site.feed_update_period | default: "daily" | xml_escape }}</sy:updatePeriod><sy:updateFrequency>{{ site.feed_update_frequency | default: 1 | xml_escape }}</sy:updateFrequency>···
+6
-13
index.md
···+This is my space for Notes[[Yes, basically a personal wiki, although becoming known as a <a href="../secondbrain/">Second Brain</a>::lmn]], saving and highlighting Articles and other Links.[[My general rule is that if I share something with two people, I should capture it as a local note.::rmn]]+[[Yes, these are infrequent blog posts! Photos and short content is over on the <a href='https://blog.bmannconsulting.com'>personal microblog</a>.::lmn]]-This is my space for Notes[[Yes, basically a personal wiki, although becoming known as a <a href="../secondbrain/">Second Brain</a>::lsn]], saving and highlighting Articles and other Links[[My general rule is that if I share an Article or a Link with two people, I should capture it as a local note.::rmn]].-I've continued to keep my long term Archive around. Any longer posts I make will go here, although mainly that is daily Journal notes.-I am microblogging with my [[Micro.blog]]-hosted site at [microblog.bmannconsulting.com](https://microblog.bmannconsulting.com), which cross-posts a lot of the posts to [[@bmann::https://twitter.com/bmann]].-The [[Colophon]] and [[Garden and the Gazebo]] notes go into the making of the site[[Jekyll with <a href="../simply-jekyll/">Simply Jekyll</a> theme, hosted on Fission::rsn]] and how I use it.-You can browse current and past [[Projects]]. These are mainly small [[Vancouver]] focused things, I'm pretty busy as the founder of [[Fission]].+You can browse current and past [[Projects]]. These are mainly small [[Vancouver]] focused things, I'm pretty busy as the founder of [[Fission]].[[Check out the <a href='https://blog.fission.codes'>Fission blog</a>.::rmn]]Starting with the [[Startup]] note, there are various recommendations, products, and recommendations to explore.
+2
-1
ipfs-404.html
······+<button class="gHomeNF" type=button onclick="window.location='https://bmannconsulting.com'">Go Home</button>
+3
-3
links.html
···<p>Recently added and updated articles and bookmarks to external content, with quoted content and notes kept here locally:</p>+<label for="rmn-1" class="margin-toggle ">⊕</label><input type="checkbox" id="rmn-1" class="margin-toggle"><span class="mn-right">These will appear in both the Recently Updated Notes and Recent Links <a href='{% link _notes/feeds.md %}'>Feeds</a>. </span>···+<p>News items, blog posts, and other articles with a publish date. The title link takes you straight to the article, and the # is the local permalinked note.</p>