The bmannconsulting.com website

Blog dates, colophon, fixed feeds, redirects

+1 -1
Gemfile.lock
··· 92 92 ruby 3.1.4p223 93 93 94 94 BUNDLED WITH 95 - 2.1.4 95 + 2.4.17
+1 -1
_config.yml
··· 29 29 30 30 exclude: ['_includes/notes_graph.json', '.env', 'gemset.nix', 'fission.yaml', 'blog.code-workspace', 'netlify.toml', '_ignored', '_archive', '.vscode', '.obsidian', '.gitignore', '.github', 'README.md'] 31 31 32 - include: ['.well-known', '_pages'] 32 + include: ['.well-known', '_pages', '_redirects'] 33 33 34 34 # markdown: CommonMarkGhPages 35 35 markdown: kramdown
+1 -1
_includes/head.html
··· 5 5 <meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.title }}{% endif %}"> 6 6 <meta property="og:site_name" content="{{ site.title }}"> 7 7 <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo="> 8 - <link rel="stylesheet" href="{{ 'styles.css' | relative_url }}"> 8 + <link rel="stylesheet" href="{{ '/styles.css' | relative_url }}"> 9 9 <link rel="alternate" type="application/atom+xml" title="Blog Feed for bmannconsulting.com" href="{{ site.url }}/blog.xml" /> 10 10 11 11 {% comment %}<!-- Littlefoot footnotes https://github.com/goblindegook/littlefoot -->{% endcomment %}
+2
_notes/Colophon.md
··· 10 10 11 11 There is a [Backlog](https://notes.bmannconsulting.com/#/page/bmc%2Fbacklog) of things in progress. 12 12 13 + This site is published to [[IPFS]] using [[Fission]] Github Actions. 14 + 13 15 ## Time Passes 14 16 15 17 End of December 2022, poured the whole site into [[LogSeq]]. There is an archived [snapshot of 2022 Simply Jekyll](https://2022.bmannconsulting.com).
_notes/Fission.md

This is a binary file and will not be displayed.

+19
_notes/IPFS.md
··· 1 + --- 2 + title: InterPlanetary File System (IPFS) 3 + --- 4 + 5 + IPFS is the InterPlanetary File System. 6 + 7 + As mentioned in the [[Colophon]], this site is published to IPFS using the [[Fission]] Github Action. The action builds the static representation from the Markdown source using [[Jekyll]], calculates a top level [[CID]] hash aka Content IDentitifier, updates the [[DNSLink]] for the bmannconsulting.com domain, and has the Fission server cache a copy. 8 + 9 + You can see that the DNSLink for the domain using this DNS checker <https://dnsrecords.io/_dnslink.bmannconsulting.com>, which in turn is just an alias to a Fission app, which has the actual hash <https://dnsrecords.io/_dnslink.bmcgarden.fission.app>.[^dnsrecords] You can take the CID that you find there, of the form `bafybeicxxtumkkha75i26livxe5a3iqklqfo42d7qytk2f4ob37bs3jpqa` and plug that in anywhere that understands IPFS and get the contents of that cyberboats page. 10 + 11 + [^dnsrecords]: DNS Records is a great service! An online DNS checker / explorer. It also does social previews in things like Slack or Discord chat, so a great way to just type in a link and get the results in the preview <https://dnsrecords.io/> 12 + 13 + You can peek at the IPFS file system underneath, by linking to one of the annual blog folders, like 2020 blog posts <https://bmannconsulting.com/blog/2020/>. Since we're browsing in there, we can also get the CID for the <a href="{{ "/blog/2020/01/03/cyberboats/" | relative_link }}">cyberboats</a> blog post, and plug it into any other gateway, like the [[Web3Storage]] one: <https://bafybeicz677flygp3v6zei4xkt3pcp6npuwk5dp2awqq3hxnxhgukhrpky.ipfs.dweb.link/> [^unstyled] 14 + 15 + [^unstyled]: Yeah, this is unstyled, because it's trying to fetch a CSS file that is no longer referenced correctly. I could hardcode it to use the full path, but then it will point to a different version of the stylesheet. To figure out! 16 + 17 + InterPlanetary Naming Service (IPNS) can use a name that points to IPFS hashes. This website you're browsing now is already being served over Fission's IPFS Gateway. If you're running [[Brave]], it can cache and browse sites, so you'd actually be able to browse it through localhost. 18 + 19 + Since we already looked at Web3Storage, let's browse via IPNS using their gateway. You'll see <a href="https://w3s.link/ipns/bmannconsulting.com" target="_ipfs">w3s.link/ipns/bmannconsulting.com</a> redirect to <a href="https://bmannconsulting-com.ipns.dweb.link/" target="_ipfs">bmannconsulting-com.ipns.dweb.link</a>
+4 -8
_pages/blog.xml blog.xml
··· 1 1 --- 2 - layout: null 3 - permalink: /blog.xml 4 2 --- 5 3 <?xml version="1.0" encoding="UTF-8"?> 6 4 <rss version="2.0" ··· 11 9 <channel> 12 10 <title>{{ site.name | xml_escape }} - Blog Feed</title> 13 11 <description>{% if site.description %}{{ site.description | xml_escape }}{% endif %}</description> 14 - <sy:updatePeriod>{{ site.feed_update_period | default: "daily" | xml_escape }}</sy:updatePeriod> 15 - <sy:updateFrequency>{{ site.feed_update_frequency | default: 1 | xml_escape }}</sy:updateFrequency> 16 12 <link>{{ site.url }}</link> 17 13 <atom:link href="{{ site.url }}{{ page.url }}" rel="self" type="application/rss+xml" /> 18 14 <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate> ··· 23 19 {% if post.section == 'blog' and blogcount < feed_items %} 24 20 <item> 25 21 <title>{{ post.title | xml_escape }}</title> 26 - {% if site.author.name %} 27 - <dc:creator>{{ site.author.name | xml_escape }}</dc:creator> 22 + {% if site.name %} 23 + <dc:creator>{{ site.name | xml_escape }}</dc:creator> 28 24 {% endif %} 29 25 <description>{{ post.content | xml_escape }}</description> 30 - <pubDate>{{ post.date | date_to_rfc822 }}</pubDate> 31 26 <link>{{ site.url }}{{ post.url }}</link> 32 - <guid isPermaLink="true">{{ site.url }}{{ post.url }}</guid> 27 + <pubDate>{{ post.date | date_to_rfc822 }}</pubDate> 28 + <guid isPermaLink="true">https://bmannconsulting-com.ipns.dweb.link{{ post.url }}</guid> 33 29 </item> 34 30 {% assign blogcount = blogcount | plus: 1 %} 35 31 {% elsif blogcount >= feed_items %}
+1 -1
_pages/feeds.md
··· 4 4 permalink: /feeds/ 5 5 --- 6 6 7 - * Subscribe to this site for longer form blog posts <https://bmannconsulting.com/blog.xml> 7 + * Subscribe to this site for longer form blog posts <a href="{{ '/blog.xml' | relative_link }}">bmannconsulting.com/blog.xml</a> 8 8 * Personal blog <https://blog.bmannconsulting.com/feed.xml> 9 9 * Mastodon accounts can be subscribed to as an RSS feed <https://cosocial.ca/@boris.rss>
+1 -1
_pages/index.md
··· 20 20 {% for blog in recentblogs %} 21 21 {% if blog.section == 'blog' and blogcount < bloglimit %} 22 22 <li class="blog-entry" style="margin-bottom: 5px;"> 23 - <a class="internal-link" href="{{ blog.url }}">{{ blog.title }}</a> 23 + <a class="internal-link" href="{{ blog.url }}">{{ blog.title }}</a> <time>{{ blog.date | date: "%B %-d, %Y" }}</time> 24 24 </li> 25 25 {% assign blogcount = blogcount | plus: 1 %} 26 26 {% elsif blogcount >= bloglimit %}
+2
_redirects
··· 1 + /.well-known/webfinger?resource=acct:boris@bmannconsulting.com https://cosocial.ca/.well-known/webfinger?resource=acct:boris@cosocial.ca 302 2 + /* /404.html 404
+6
_sass/_style.scss
··· 28 28 margin: 0.5em 0 1em; 29 29 } 30 30 31 + li.blog-entry time { 32 + color: $color-subtext; 33 + font-size: 0.8em; 34 + margin-left: 2em; 35 + } 36 + 31 37 div.date { 32 38 margin-top: 1em; 33 39 }