12 Commits

64 changed files with 862 additions and 18 deletions

2
.gitignore vendored
View File

@ -1 +1,3 @@
/target
/screenshots
notes

View File

@ -1,7 +1,7 @@
[package]
name = "mycelial_technology"
version = "0.1.0"
authors = ["glyph <gnomad@cryptolab.net>"]
authors = ["glyph <glyph@mycelial.technology>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

7
LICENSE Normal file
View File

@ -0,0 +1,7 @@
Copyright (c) 2020 glyph
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# mycelial.technology
Personal website of glyph. _Under construction_.

View File

@ -9,6 +9,9 @@ extern crate rocket_contrib;
extern crate serde_derive;
extern crate tera;
use std::path::{Path, PathBuf};
use rocket::response::NamedFile;
use rocket_contrib::templates::Template;
#[derive(Debug, Serialize)]
@ -17,13 +20,189 @@ struct FlashContext {
flash_msg: Option<String>,
}
#[get("/")]
fn index() -> Template {
#[get("/<file..>")]
fn files(file: PathBuf) -> Option<NamedFile> {
NamedFile::open(Path::new("static/").join(file)).ok()
}
#[get("/art")]
fn art() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("index", &context)
Template::render("art", &context)
}
#[get("/background")]
fn background() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("background", &context)
}
#[get("/bacteria")]
fn bacteria() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("bacteria", &context)
}
#[get("/bacteria/sauerkraut-beginnings")]
fn bacteria_sauerkraut_beginnings() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("bacteria/sauerkraut_beginnings", &context)
}
#[get("/bacteria/sauerkraut-bottled")]
fn bacteria_sauerkraut_bottled() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("bacteria/sauerkraut_bottled", &context)
}
#[get("/computers")]
fn computers() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("computers", &context)
}
#[get("/computers/esp8266-dht11")]
fn computers_esp8266_dht11() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("computers/esp8266_dht11", &context)
}
#[get("/computers/i2c-adventures")]
fn computers_i2c_adventures() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("computers/i2c_adventures", &context)
}
#[get("/computers/rust-compilation")]
fn computers_rust_compilation() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("computers/rust_compilation", &context)
}
#[get("/fungi")]
fn fungi() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("fungi", &context)
}
#[get("/fungi/grow-together")]
fn fungi_grow_together() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("fungi/grow_together", &context)
}
#[get("/fungi/lichen-space")]
fn fungi_lichen_space() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("fungi/lichen_space", &context)
}
#[get("/")]
fn home() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("home", &context)
}
#[get("/lists")]
fn lists() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("lists", &context)
}
#[get("/plants")]
fn plants() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("plants", &context)
}
#[get("/plants/aloe-there")]
fn plants_aloe_there() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("plants/aloe_there", &context)
}
#[get("/plants/blueberry-dance")]
fn plants_blueberry_dance() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("plants/blueberry_dance", &context)
}
#[get("/plants/potato-tech")]
fn plants_potato_tech() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("plants/potato_tech", &context)
}
#[get("/meditation")]
fn meditation() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("meditation", &context)
}
#[get("/support")]
fn support() -> Template {
let context = FlashContext {
flash_name: None,
flash_msg: None,
};
Template::render("support", &context)
}
#[catch(404)]
@ -38,7 +217,32 @@ fn not_found() -> Template {
fn main() {
rocket::ignite()
.mount("/", routes![index])
.mount(
"/",
routes![
files,
art,
background,
bacteria,
bacteria_sauerkraut_beginnings,
bacteria_sauerkraut_bottled,
computers,
computers_esp8266_dht11,
computers_i2c_adventures,
computers_rust_compilation,
fungi,
fungi_grow_together,
fungi_lichen_space,
home,
lists,
plants,
plants_aloe_there,
plants_blueberry_dance,
plants_potato_tech,
meditation,
support
],
)
.register(catchers![not_found])
.attach(Template::fairing())
.launch();

BIN
static/art/aloe.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

4
static/art/halo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 66 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 42 KiB

BIN
static/art/kestrel.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
static/art/physalis.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
static/art/ring_monk.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
static/art/shakuhachi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
static/art/wasp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
static/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
static/fungi/earthstar.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

4
static/glyph.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

BIN
static/glyph_laetiporus.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
static/plants/tree_aloe.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

30
templates/art.html.tera Normal file
View File

@ -0,0 +1,30 @@
{% extends "nav" %}
{% block content %}
<h2>Art</h2>
<div class="flex-grid">
<img class="col" alt="Line drawing of an aloe plant" src="art/aloe.jpg" title="Aloe plant" />
<img class="col" alt="Line drawing of an American kestrel" src="art/kestrel.jpg" title="American kestrel" />
<img class="col" alt="Line drawing of a black oval surrounded by two rings of glyphs" src="art/obsidian_artifact.jpg" title="Obsidian Artifact" />
</div>
<div class="flex-grid">
<img class="col" alt="Line drawing of a mountain with a teardrop-shaped symbol above it, with mountains and clouds in the background" src="art/mystic_mountain.jpg" title="Mystic Mountain" />
<img class="col" alt="Line drawing of an ant with a long, antenna-like mushroom growing from its thorax" src="art/cordyceps_ant.jpg" title="Ophiocordyceps unilateralis on ant host" />
<img class="col" alt="Line drawing of a meditating figure with haloes of glyphs surrounding them" src="art/halo.svg" title="Halo" />
</div>
<div class="flex-grid">
<img class="col" alt="Line drawing of a humyn skull with mushrooms growing from it and text beneath reading 'Death is not the End'" src="art/death_is_not_the_end.jpg" title="Death is not the End" />
<img class="col" alt="Line drawing of a monk ringing a bell" src="art/ring_monk.jpg" title="Ring" />
<img class="col" alt="Line drawing of a man playing shakuhachi" src="art/shakuhachi.jpg" title="Mindless" />
</div>
<div class="flex-grid">
<img class="col" alt="Line drawing of a pitcher plant" src="art/pitcher_plant.jpg" title="Bait" />
<img class="col" alt="Line drawing of a birch polypore mushroom with icicles growing from a birch tree" src="art/birch_polypore.jpg" title="Freeze" />
<img class="col" alt="Line drawing of a paper wasp on a small nest" src="art/wasp.jpg" title="Build" />
</div>
<div class="flex-grid">
<img class="col" alt="Line drawing of a young man standing next to a tree with mushrooms growing on it" src="art/enchanted_gano.jpg" title="Enchanted" />
<img class="col" alt="Line drawing of a physalis fruit" src="art/physalis.jpg" title="Frail" />
<img class="col" alt="Line drawing of a humyn hand reaching out to touch a mycelial network" src="art/hyphal_fusion.svg" title="Hyphal Fusion" />
</div>
<hr>
{%- endblock %}

View File

@ -0,0 +1,11 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Background</h2>
<p>I was born and raised in the coastal city of Durban, South Africa, which lies between the Indian Ocean and Drakensberg Mountains. Following completion of high school I moved to Michigan, USA and completed a Bachelor of Science in anthropology (major) and biology (minor) at <a href="https://www.gvsu.edu/">Grand Valley State University</a>. I later returned to South Africa and completed a Master of Social Science in social anthropology at the <a href="http://www.uct.ac.za/">University of Cape Town</a>, with <a href="https://open.uct.ac.za/handle/11427/6795">research</a> focused on decentralised networks of medicinal plant harvesters and herbalists (Rasta bush doctors). I then went on to work as an applied anthropologist and ethnobotanist in the non-profit sector.</p>
<p>Following a year spent travelling in South America, I restructured my life and livelihood around my core interests: carbon-based and silicon-based technologies (biology and computers). Since then I have founded <a href="https://harmonicmycology.com">Harmonic Mycology</a>, a mycology collective dedicated to developing and distributing mycelial medicines, teaching mushroom cultivation and encouraging the formation of humyn-fungal networks. In parallel to those activities, I have worked as an autodidactic software developer on private and open-source projects; most-recently, <a href="https://opencollective.com/peachcloud">PeachCloud</a>.</p>
<p>I hold a deep fascination with the processes through which humyns form relationships with other living beings. When not behind the keyboard, you can find me looking at mushrooms, riding my bicycle or reading sci-fi. I'm dreaming of a three-month adventure across Japan ⛩.</p>
<img src="glyph_laetiporus.jpg" style="width: 100%;" />
</article>
<hr>
{%- endblock %}

View File

@ -0,0 +1,9 @@
{% extends "nav" %}
{% block content %}
<h2>Bacteria</h2>
<ul>
<li><a href="/bacteria/sauerkraut-bottled">Sauerkraut: Bottled</a> - <i>31 October, 2019</i></li>
<li><a href="/bacteria/sauerkraut-beginnings">Sauerkraut: Beginnings</a> - <i>22 October, 2019</i></li>
</ul>
<hr>
{%- endblock %}

View File

@ -0,0 +1,14 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Sauerkraut: Beginnings</h2>
<i>22 October, 2019</i>
<figure>
<img src="/bacteria/sauerkraut_jar.jpeg" alt="Colour photo in portrait orientation of a 3L jar filled with purple sauerkraut-in-the-making. The jar is on a wooden countertop and is covered by a blue and white cloth. A glass jar with water is visible inside the bigger jar. Bubbles can be seen forming on the surface of the sauerkraut mixture / solution." style="width: 100%;" />
<figcaption>Counter-top fermentation factory</figcaption>
</figure>
<p>I started my first batch of sauerkraut on Sunday - something Ive been meaning to do for a few months.</p>
<p>1 red cabbage, 1/2 apple, 1 carrot, cut finely, sprinkled with salt, massaged and pressed down into a 3L jar. I had to add a little brine after 24 hours to ensure the vegetables were completely covered. I also added a glass jar with water to act as a weight.</p>
<p>Its already bubbling and smelling delicious. Fermentation is like hospitality management for microbes.
<hr>
{%- endblock %}

View File

@ -0,0 +1,14 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Sauerkraut: Bottled</h2>
<i>31 October, 2019</i>
<p>Today I bottled up some of the sauerkraut from my first batch. It has been going for 11 days; no taste of cabbage anymore and it tastes super tangy. Intrigued to see how the flavour develops.</p>
<p>Also transferred some chaga (Inonotus obliquus), reishi (Ganoderma lucidum) and turkey tail (Trametes versicolor)-infused coconut oil to a smaller jar.</p>
<p>All of it will be gifted to friends in the valley; gifted by the combined efforts of the sun, soil, water, plants, bacteria and humyns.</p>
<figure>
<img src="/bacteria/sauerkraut_mountain.jpeg" alt="Colour photo showing five glass jars, one small and four large, in a row on a wooden handrail. The first jar contains a cream-coloured mixture of coconut oil, while the other jars are filled with purple sauerkraut. Trees and a mountain can be seen in the background on the right. A brick building appears along the left margin of the photo." style="width: 100%;" />
<figcaption>Vibrant delights in the valley</figcaption>
</figure>
<hr>
{%- endblock %}

115
templates/base.html.tera Normal file
View File

@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" type="image/png" href="favicon.png"/>
<title>mycelial technology | glyph</title>
<meta name="author" content="glyph">
<meta name="description" content="The personal website of glyph.">
<meta name="keywords" content="mycology, fermentation, coding">
<style>
a {
color: #111;
padding: 0.2rem;
}
a:focus {
background-color: #111;
color: #fff;
}
a:hover {
background-color: #111;
color: #fff;
}
article {
max-width: 700px;
}
body {
max-width: 900px;
font-family: monospace;
}
code {
background-color: #111;
color: #fff;
margin-left: 0.5rem;
}
.col {
flex: 1;
padding: 1rem;
}
@media (max-width: 400px) {
.col {
flex: 1;
padding: 1rem;
width: 90%;
}
}
.flex-grid {
display: flex;
}
@media (max-width: 400px) {
.flex-grid {
display: block;
}
}
html {
background-color: #fefefe;
color: #111;
font-size: 14px;
}
h1 {
color: #222;
}
h2 {
color: #222;
}
li {
padding-bottom: 0.5rem;
}
.list-item {
list-style-type: none;
padding: 0.5rem;
}
.nav-bar {
list-style-type: none;
display: inline-block;
padding-left: 0;
}
.nav-item {
border: solid 1px #111;
color: #111;
display: inline-block;
margin-top: 0.2rem;
padding: 0.5rem;
}
.nav-item a {
text-decoration: none;
}
p {
padding: 0.5rem;
}
</style>
</head>
<body>
{% block nav %}{% endblock %}
</body>
</html>

View File

@ -0,0 +1,10 @@
{% extends "nav" %}
{% block content %}
<h2>Computers</h2>
<ul>
<li><a href="/computers/rust-compilation">Cross-Compiling Rust for Debian Buster on Raspberry Pi 3B+</a> - <i>18 May, 2020</i></li>
<li><a href="/computers/esp8266-dht11">ESP8266 with DHT11 and LCD Display</a> - <i>5 August, 2019</i></li>
<li><a href="/computers/i2c-adventures">Adventures with I²C</a> - <i>26 January, 2019</i></li>
</ul>
<hr>
{%- endblock %}

View File

@ -0,0 +1,22 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>ESP8266 with DHT11 and LCD Display</h2>
<i>5 August, 2019</i>
<p>I had fun putting together a simple electronics project over the weekend: NodeMCU dev board (ESP8266) with a DHT11 temperature and humidity sensor and DF Robot RGB LCD display.</p>
<figure>
<img src="/computers/esp8266_temp.jpeg" alt="Black and white photo in portrait orientation showing electronics on a striped table-cloth. A NodeMCU dev board appears in the lower-right, DHT11 sensor in the top-left, and an LCD in the top-right. Text on the display reads: temp: 18.0 and humidity: 64. The display is propped-up by a white pyramid (mycelium) and a wooden floor is just visible in the background." style="width: 100%;" />
<figcaption>The basic setup</figcaption>
</figure>
<p>The code is quite simple: connect to the local WiFi network and create a UDP server. Respond to UDP requests on port 3210 with a temperature and humidity reading from the sensor. Write the temperature and humidity to the display every two seconds.</p>
<p>Arduino (C++) code: <a href="https://github.com/mycognosist/esp8266_dht11_udp">mycognosist/esp8266_dht11_udp</a></p>
<p>Ill be using this setup to monitor environmental conditions in my cultivation space. I plan on doing another version with LoRa for the main lab up the road. Will be great to do some remote-sensing from the comfort of my living room.</p>
<p>One thing you cant see in the photo is the sweet pink pastel backlight. Id been thinking about lunarpunk aesthetics (thanks to a post by @Jackalope) - and, in particular, how I associate pastel tones with lunarpunk. I wanted to try out pastel colours on this display and ended up checking out the Wikipedia entry on Pastel (color). Lo and behold, it mentions:</p>
<blockquote cite="https://en.wikipedia.org/wiki/Pastel_(color)">
<p>There is also a type of goth style called pastel goth which combines the pastel color palette with classical goth fashion elements.</p>
<footer>- <a href="https://en.wikipedia.org/wiki/Pastel_(color)"><cite>Pastel (color) Wikipedia page</cite></a></footer>
</blockquote>
<p>I did not know that. Rad.</p>
</article>
<hr>
{%- endblock %}

View File

@ -0,0 +1,49 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Adventures with I²C</h2>
<i>26 January, 2019</i>
<p>I went to London last weekend to attend the Agorama Web Jam and had a super groovy time. Everyone was so friendly and welcoming. Felt great to be hanging with cypherhomies in proximal timespace, dreaming and growing brighter futures together. I got to meet and chat with @eb4890 about PeachCloud and gained a better understanding of their plans around dyndns with SSB integration. Stoked to see that developing! It was also really encouraging to hear different folx voicing the need / desire for plug-n-plug p2p devices; fuel for the inner fire. Big thanks to all involved.</p>
<p>TLDR: Real-Time Clock Module added to Pi / PeachCloud (I²C is working on Debian Buster ARM64)</p>
<p>I spent most of my week doing web design work on another project. Finally got that finished and deployed yesterday and decided some hardware hacking would be a nice change of pace. Adding a real-time clock (RTC) felt like an achievable goal - one which would allow me to lean a little further into basic electronics & hardware shenanigans. @mikey already had this on the next steps list for PeachCloud:</p>
<blockquote>add Real-Time Clock to keep track of time (so you can be off-grid and still know the time)</blockquote>
<p>I received a DS1338 RTC module as a Christmas gift for this project (thanks Dad). The datasheet can be accessed <a href="http://www.hobbytronics.co.uk/datasheets/DS1338-RTC.pdf" title="DS1338-RTC Datasheet">here</a>. A note from the retailers website:</p>
<blockquote>A Real Time Clock Module with battery backup using the easy to use DS1338 chip. The DS1338 is functionally the same as the popular DS1307 chip with the difference being that the DS1338 works at any voltage from 3V to 5V making it easy to use on either 3.3V and 5V systems without modification or logic level conversion. Ideal for your project including Arduino and Raspberry Pi projects.</blockquote>
<p>I received my first lesson in soldering last week and attached pins to the RTC. That made it a simple process to plug the module into my breadboard and connect it to the Pi. The module works on I²C and only requires 4 connecting wires (power, ground, SDA, SCL). The I²C pins on the Pi include a fixed 1.8 kohms pull-up resistor to 3.3v, meaning that no additional resistors needed to be included in the wiring setup.</p>
<figure>
<img src="/computers/pi_rtc.jpeg" alt="DS1338 RTC module plugged-into a breadboard & connected to a Raspberry Pi." style="width: 100%;" />
<figcaption>DS1338 RTC module plugged-into a breadboard & connected to a Raspberry Pi</figcaption>
</figure>
<p>Following the AdaFruit guide to <a href="https://learn.adafruit.com/adding-a-real-time-clock-to-raspberry-pi/set-up-and-test-i2c">Adding a Real Time Clock to Raspberry Pi</a> (with small additions), I was able to run an I²C scan and verify that the module was wired correctly to the Pi:</p>
<code>sudo apt-get install python-smbus i2c-tools</code><br>
<code>sudo modprobe i2c-dev</code><br>
<code>sudo i2cdetect -y 1</code><br>
<p>The final command in the sequence prints an array to the console, with 68 denoting the presence of the RTC module. This is a sign that the device is properly wired and connected. Great! This is where things started to get tricky…</p>
<p>If we were running Raspbian for this project the next steps would be pretty simple. As it turns out, the process for Debian Buster ARM64 is quite a bit more complicated. A <a href="https://code.overdrivenetworks.com/blog/2018/07/debian-buster-on-a-raspberry-pi-3-model-b-plus/">blog post</a> I found last night neatly summarizes the pros and cons of this choice:</p>
<figure>
<img src="/computers/debian_pi_pros_cons.png" alt="List of advantages and disadvantages of running Debian Buster ARM64 on Raspberry Pi." style="width: 100%;" />
<figcaption>List of advantages and disadvantages of running Debian Buster ARM64 on Raspberry Pi</figcaption>
</figure>
<p>No kidding! There were, however, a few crumbs along the way to sustain me over the course of the journey. These included <a href="https://raspberrypi.stackexchange.com/questions/41277/what-is-needed-to-get-i%c2%b2c-working-with-debian-jessie">What is needed to get I²C working with Debian Jessie?</a> and <a href="https://raspberrypi.stackexchange.com/questions/60084/i2c-transfer-failed-flooding-the-logs">"I2C transfer failed" flooding the logs.</a></p>
<p>I appended <code>dtoverlay=i2c-rtc,ds1307</code> and <code>dtparam=i2c_arm=on</code> to <code>/boot/firmware/config.txt</code> and <code>i2c-dev</code> to <code>/etc/modules</code> but the RTC device was still not coming under control of the kernel driver. When I looked at <code>/var/log/kern.log</code> I found an <code>i2c could not read clock-frequency property</code> error which led me to the second of the two posts linked in the paragraph above. It seemed I would need to decompile, patch and recompile the device tree blob for my Pi. I copied <code>/boot/firmware/bcm2837-rpi-3-b.dtb</code> from the Pi to my laptop for the following steps:</p>
<code>sudo apt-get install device-tree-compiler</code><br>
<code>cd /place/where/dtb/file/was/pasted</code><br>
<code>dtc -I dtb -O dts > bcm2837-rpi-3-b.dts</code><br>
<p>That gave me a human-readable decompiled device tree (dts). I then manually added <code>clock-frequency = <0x186a0>;</code> to the generated dts file (line 570 for me).</p>
<p>Recompiled the dts to binary blob format:</p>
<code>dtc -O dtb -o bcm2837-rpi-3-b.dtb bcm2837-rpi-3-b.dts</code>
<p>This left me with a patched dtb to replace the faulty dtb on the Pi. At this point I was thinking: I dont know what Im doing but it feels pretty cool. Once Id patched the dtb and rebooted my Pi I no longer had clock-frequency errors in the kernel logs - a minor victory! Still, I couldnt seem to get the RTC kernel driver to work. Eventually I returned to <a href="https://www.raspberrypi.org/forums/viewtopic.php?p=330617">Instructions to Configure DS1307 or DS1338 RTC</a> and had another go:</p>
<code>sudo modprobe i2c-bcm2835</code><br>
<code>sudo bash</code><br>
<code>echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device</code><br>
<code>exit</code><br>
<code>sudo modprobe rtc-ds1307</code>
<p>I ran <code>sudo i2cdetect -y 1</code> for the 234th time and bingo! It works! <i>Running around room celebrating.</i></p>
<figure>
<img src="/computers/i2c_working.jpeg" alt="Screenshot of terminal showing successful configuration of I²C RTC module." style="width: 100%;" />
<figcaption>Screenshot of terminal showing successful configuration of I²C RTC module</figcaption>
</figure>
<p>This is really exciting because it opens the door to (relatively) easy integration of other I²C devices (sensors, LCD displays etc.). Next step will be to fine-tune the process so that everything loads correctly on boot. If you stuck with me this far - thanks for reading!</p>
</article>
<hr>
{%- endblock %}

View File

@ -0,0 +1,21 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Cross-Compiling Rust for Debian Buster on Raspberry Pi 3B+</h2>
<i>18 May, 2020</i>
<p>Install target platform:</p>
<code>rustup target add aarch64-unknown-linux-gnu</code>
<p>Install toolchain:</p>
<code>rustup toolchain install nightly-aarch64-unknown-linux-gnu</code>
<p>Install aarch64-linux-gnu-gcc:</p>
<code>sudo apt-get install gcc-aarch64-linux-gnu</code>
<p>Configure the linker*:</p>
<code>export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=/usr/bin/aarch64-linux-gnu-gcc</code>
<p>Compile release build:</p>
<code>cargo build --release --target=aarch64-unknown-linux-gnu</code>
<p>* Another approach is to create `cargo-config` in the root directory of the repo and add the following:</p>
<code>[target.aarch64-unknown-linux-gnu]</code><br>
<code>linker = "aarch64-linux-gnu-gcc"</code>
</article>
<hr>
{%- endblock %}

View File

@ -0,0 +1,9 @@
{% extends "nav" %}
{% block content %}
<h2>Fungi</h2>
<ul>
<li><a href="/fungi/lichen-space">Lichens in Space</a> - <i>28 May, 2020</i></li>
<li><a href="/fungi/grow-together">Grow Together</a> - <i>29 March, 2018</i></li>
</ul>
<hr>
{%- endblock %}

View File

@ -0,0 +1,24 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Grow Together</h2>
<i>29 March, 2018</i>
<p>Yesterday, while pulling out dead lettuce stalks that had bolted, produced seed and died, I found a large mushroom attached to the roots of one of the plants (then another, and another)! Im now less certain of my classification of the mushroom in the previous photo as a member of the Astraeus genus. Ill have to do some investigating. If anyone here recognizes it, please let me know!</p>
<p>This is one of the neatest examples of ectomycorrhizal symbiosis Ive seen with my own eyes. You can see the dense white mycelium covering some regions of the root system. The mycelium forms a sheath around the root-tips and assists the plant by channeling water and minerals directly to it. The plant (usually) pays the fungus back with sugars and / or lipids (the transfer of lipids from plant to mycelium is a very recent finding).</p>
<p>It seems the onset of rains and cooler weather, along with - potentially - the death of the plant, have prompted the networks of this species to produce mushrooms. All of the ones I have found so far have been growing in association with lettuce. Lets practice the mycorrhizal way and nurture interdependence!</p>
<p>So much love for the House of Wu Wei and all the myriad creatures who live here!</p>
<figure>
<img src="/fungi/earthstar.jpeg" style="width: 100%;" />
<figcaption>You look interesting! I wonder whats going on…</figcaption>
</figure>
<figure>
<img src="/fungi/earthstar_roots.jpeg" style="width: 100%;" />
<figcaption>Inter-species companionship</figcaption>
</figure>
<figure>
<img src="/fungi/earthstar_mycelium.jpeg" style="width: 100%;" />
<figcaption>Makes me wonder how long these species have been dancing one another into being</figcaption>
</figure>
</article>
<hr>
{%- endblock %}

View File

@ -0,0 +1,38 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Lichens in Space</h2>
<i>28 May, 2020</i>
<figure>
<img src="/fungi/xanthoria_fun_dye.jpeg" style="width: 100%;" />
<figcaption>Xanthoria elegans lichen in cross-section, stained with FUN-1 dye</figcaption>
</figure>
<p>So I think many of us have a basic understanding of what a lichen is: a symbiotic mutualism between a fungus and algae / cyanobacteria. The fungus provides a cosy home for the algae, along with water, nutrients and anchorage; while the algae photosynthesises and provides the fungus with carbohydrates. As Trevor Goward puts it: “Lichens are fungi that have discovered agriculture”. Put another way, lichen are fungi with solar panels. But Ive only recently learned that the situation is far more complex than this simple 1:1 rendering of fungus and algae.</p>
<blockquote cite="https://en.wikipedia.org/wiki/Lichen#Miniature_ecosystem_and_holobiont_theory">
<p>Symbiosis in lichens is so well-balanced that lichens have been considered to be relatively self-contained miniature ecosystems in and of themselves. It is thought that lichens may be even more complex symbiotic systems that include non-photosynthetic bacterial communities performing other functions as partners in a holobiont.</p>
<footer>- <a href="https://en.wikipedia.org/wiki/Lichen#Miniature_ecosystem_and_holobiont_theory"><cite>Lichen Wikipedia page</cite></a></footer>
</blockquote>
<p>Holobiont - now thats a rad word.</p>
<blockquote cite="https://en.wikipedia.org/wiki/Holobiont">
<p>A holobiont is an assemblage of a host and the many other species living in or around it, which together form a discrete ecological unit. The concept of the holobiont was defined by Dr. Lynn Margulis in her 1991 book Symbiosis as a Source of Evolutionary Innovation. Holobionts include the host, virome, microbiome, and other members, all of which contribute in some way to the function of the whole. Well-studied holobionts include reef-building corals and humans.</p>
<footer>- <a href="https://en.wikipedia.org/wiki/Holobiont"><cite>Holobiont Wikipedia page</cite></a></footer>
</blockquote>
<p>Another rather famous character in the lichen holobiont is the tardigrade! I wonder what it would be like to experience the lichen holobiont as a tardigrade - some sort of wondrous forested village perhaps? Maybe more like a landscape of networked villages, with all sorts of nanobiomes in between?</p>
<p>Anywho, I digress. While listening to an episode of the In Defense of Plants podcast yesterday, specifically Ep. 80 - Lichens and Their Conservation, I learned that one species of lichen has been shown to be capable of surviving exposure to space and a simulated Martian atmosphere!</p>
<p>The lichen Xanthoria elegans (which we can now think of as a holobiont and not a simple two-partner symbiosis) was exposed to space conditions for 18 months during a series of experiments on the International Space Station (ISS). This included exposure to vacuum, extreme cold, solar radiation and cosmic radiation. This was the first long-term exposure of eukaryotic organisms to space conditions in LEO, as well as a simulated Martian environment.</p>
<p>Upon returning to Earth, the samples were tested for viability: “the lichen photobiont showed an average viability rate of 71%, whereas the even more resistant lichen mycobiont showed a rate of 84%”. They were still alive and capable of growth! The Martian experiment showed even livelier results:</p>
<blockquote cite="https://pdfs.semanticscholar.org/a8f6/a68e6db11f7b2bed133f434be742e1d4d390.pdf">
<p>The X. elegans samples exposed on the ISS in Mars-analogue conditions showed slightly higher viability and clearly higher photosynthetic activity compared with the space vacuum-exposed samples.</p>
<footer>- <cite>Brandt et al. (2015)</cite></footer>
</blockquote>
<p>Pretty astounding! The paper discusses these findings in light of the panspermian hypothesis:</p>
<blockquote cite="https://pdfs.semanticscholar.org/a8f6/a68e6db11f7b2bed133f434be742e1d4d390.pdf">
<p>The Lithopanspermia hypothesis is […] based on a proposal by Thomson (1871), suggesting that life could survive interplanetary travel. Though the 1.5 year mission duration is much shorter than the estimated length of a hypothetical interplanetary transfer e.g. 2.6 Myr for some Mars meteorites (Clark 2001), the results presented indicate that X. elegans might be able to survive a longer duration in space or might be a promising test subject for a Directed Lithopanspermia as proposed by Crick & Orgel (1973)</p>
<footer>- <cite>Brandt et al. (2015)</cite></footer>
</blockquote>
<p>So cool. Humyns have long dreamed of space colonies and interstellar journeys. Perhaps these dreams are genetic memories as much as simulated futures. Perhaps we have already surfed solar winds in peer-to-peer assemblages, crossing galaxies in holobiontic parties; expectant, hopeful, that Life might grow yet further.</p>
<p>Here's a link to the full paper:</p>
<p><a href="https://pdfs.semanticscholar.org/a8f6/a68e6db11f7b2bed133f434be742e1d4d390.pdf">Viability of the lichen Xanthoria elegans and its symbionts after 18 months of space exposure and simulated Mars conditions on the ISS - Brandt et al. (2015)</a></p>
</article>
<hr>
{%- endblock %}

13
templates/home.html.tera Normal file
View File

@ -0,0 +1,13 @@
{% extends "nav" %}
{% block content %}
<img src="glyph.svg" style="width: 175px;" />
<p>Welcome to the personal website of glyph.</p>
<h2>Contact Information</h2>
<ul style="padding: 0;">
<li class="list-item">Email: <a href="mailto:glyph@mycelial.technology" title="glyph's Email address">glyph@mycelial.technology</a></li>
<li class="list-item">Sourcehut: <a href="https://git.sr.ht/~glyph" title="glyph's Sourcehut repo">@glyph</a></li>
<li class="list-item">Merveilles: <a href="https://merveilles.town/@glyph" title="glyph's Fediverse profile">@glyph</a></li>
<li class="list-item" style="word-wrap: break-word;" title="glyph's Scuttlebutt profile">Scuttlebutt: @HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519</li>
</ul>
<hr>
{%- endblock %}

View File

@ -1,13 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>title</title>
<meta name="author" content="name">
<meta name="description" content="description here">
<meta name="keywords" content="keywords, here">
</head>
<body>
</body>
</html>

View File

@ -0,0 +1,76 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>mycelial technology | glyph</title>
<meta name="author" content="glyph">
<meta name="description" content="The personal website of glyph.">
<meta name="keywords" content="mycology, fermentation, coding">
<style>
a {
color: #faf884;
text-decoration: none;
}
body {
max-width: 900px;
font-family: monospace;
}
html {
background-color: #111;
color: #777;
}
h1 {
color: #ccc;
}
h2 {
color: #ccc;
}
.navbar {
list-style-type: none;
display: inline-block;
padding-left: 0;
}
.nav-item {
color: #666;
display: inline-block;
padding: 0.5rem;
}
p {
padding: 0.5rem;
}
</style>
</head>
<body>
<h1>mycelial technology</h1>
<hr>
<nav>
<ol class="navbar">
<li class="nav-item">background</li>
<li class="nav-item">computers</li>
<li class="nav-item">drawing</li>
<li class="nav-item">fermentation</li>
<li class="nav-item">language</li>
<li class="nav-item">lists</li>
<li class="nav-item">movement</li>
<li class="nav-item">mycology</li>
<li class="nav-item">travel</li>
</ol>
</nav>
<p>Welcome to the personal website of glyph.</p>
<h2>Contact Information</h2>
<hr>
<ul style="padding: 0;">
<li style="list-style-type: none; padding: 0.5rem;">Email: <a href="mailto:gnomad@cryptolab.net">gnomad@cryptolab.net</a></li>
<li style="list-style-type: none; padding: 0.5rem;">Merveilles: <a href="https://merveilles.town/@glyph" title="@glyph@merveilles.town">@glyph</a></li>
<li style="list-style-type: none; padding: 0.5rem; word-wrap: break-word;">Scuttlebutt: @HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519</li>
</ul>
</body>
</html>

48
templates/lists.html.tera Normal file
View File

@ -0,0 +1,48 @@
{% extends "nav" %}
{% block content %}
<h2>Lists</h2>
<h3>Books</h3>
<p>Currently Reading</p>
<ul>
<li><i>Red Moon</i> - Kim Stanley Robinson</li>
<li><i>Radical Mycology</i> - Peter McCoy</li>
<li><i>Jonathan Strange & Mr Norrell</i> - Susanna Clarke</li>
</ul>
<p>Previously Read</p>
<ul>
<li><i>Mythago Wood</i> - Robert Holdstock</li>
<li><i>The Name of the Wind</i> - Patrick Rothfuss</li>
</ul>
<p>Wishlist</p>
<ul>
<li><i>A Closed and Common Orbit</i> - Becky Chambers</li>
<li><i>The Mushroom at the End of the World</i> - Anna Lowenhaupt Tsing</li>
</ul>
<h3>Graphic Novels</h3>
<p>Currently Reading</p>
<ul>
<li><i>Deadly Class</i> - Rick Remender, Lee Loughridge and Wes Craig</li>
<li><i>Saga</i> - Brian K. Vaughan and Fiona Staples</li>
</ul>
<p>Wishlist</p>
<ul>
<li><i>Trees</i> - Jason Howard and Warren Ellis</li>
<li><i>Paper Girls</i> - Brian K. Vaughan, Cliff Chiang and Matt Wilson</li>
<li><i>East of West</i> - Jonathan Hickman and Nick Dragotta</li>
<li><i>Descender</i> - Dustin Nguyen and Jeff Lemire</li>
</ul>
<h3>Newsletters</h3>
<p>Currently Reading</p>
<ul>
<li><a href="https://cscottmills.com/polylith/" title="Polylith newsletter"><i>Polylith</i></a> - C.S.Mills</li>
<li><a href="http://tinyletter.com/tchoi8" title="Taeyoon's newsletter"><i>Taeyoon's newsletter</i></a> - Taeyoon Choi</li>
<li><a href="https://craigmod.com/ridgeline/" title="Ridgeline newsletter"><i>Ridgeline</i></a> - Craig Mod</li>
</ul>
<h3>Podcasts</h3>
<p>Currently Listening</p>
<ul>
<li><a href="https://www.indefenseofplants.com/podcast" title="In Defense of Plants podcast"><i>In Defense of Plants</i></a> - Matt</li>
<li><a href="https://www.happinesslab.fm/" title="The Happiness Lab podcast"><i>The Happiness Lab</i></a> - Dr Laurie Santos</li>
</ul>
<hr>
{%- endblock %}

View File

@ -0,0 +1,9 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Meditation</h2>
<img src="art/halo.svg" style="width: 500px; max-width: 90%;" title="Halo" />
<p>My current meditation practice includes 20 minutes of qigong each morning, as well as semi-regular <i>suizen</i> shakuhachi practice and club juggling.</p>
</article>
<hr>
{%- endblock %}

View File

@ -0,0 +1,5 @@
{% extends "nav" %}
{% block content %}
<h2>Movement</h2>
<hr>
{%- endblock %}

22
templates/nav.html.tera Normal file
View File

@ -0,0 +1,22 @@
{% extends "base" %}
{% block nav -%}
<h1><a href="/" style="text-decoration: none;">mycelial technology</a></h1>
<hr>
<nav>
<ol class="nav-bar">
<li class="nav-item"><a href="/art">art</a></li>
<li class="nav-item"><a href="/background">background</a></li>
<li class="nav-item"><a href="/bacteria">bacteria</a></li>
<li class="nav-item"><a href="/computers">computers</a></li>
<li class="nav-item"><a href="/fungi">fungi</a></li>
<li class="nav-item"><a href="/lists">lists</a></li>
<li class="nav-item"><a href="/plants">plants</a></li>
<li class="nav-item"><a href="/meditation">meditation</a></li>
<li class="nav-item"><a href="/support">support</a></li>
</ol>
</nav>
{%- block content %}{%- endblock %}
<footer style="display: flex;">
<p>&#169; 2020 glyph<p>
</footer>
{%- endblock %}

View File

@ -0,0 +1,10 @@
{% extends "nav" %}
{% block content %}
<h2>Plants</h2>
<ul>
<li><a href="/plants/aloe-there">Aloe There</a> - <i>6 June, 2020</i></li>
<li><a href="/plants/potato-tech">Potato Tech</a> - <i>31 December, 2017</i></li>
<li><a href="/plants/blueberry-dance">I Have Been Invited Into a Dance by a Bush with Purple Berries</a> - <i>20 December, 2017</i></li>
</ul>
<hr>
{%- endblock %}

View File

@ -0,0 +1,23 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Aloe There</h2>
<i>6 June, 2020</i>
<figure>
<img src="/plants/aloe_flowers.jpg" alt="Dense cones of golden, tubular flowers dominate the frame, with green succulent leaves at the bottom, a bright blue sky above, and a thatched-roof in the background. Bees can be seen amongst the flowers." style="width: 100%;" />
<figcaption>Sunshine in the winter time</figcaption>
</figure>
<p>All the aloes are in full bloom right now and it makes me so happy. The bees are pretty stoked about it too, as are the sunbirds.</p>
<blockquote cite="https://en.wikipedia.org/wiki/Sunbird">
<p>As nectar is a primary food source for sunbirds, they are important pollinators in African ecosystems. Sunbird-pollinated flowers are typically long, tubular, and red-to-orange in colour, showing convergent evolution with many hummingbird-pollinated flowers in the Americas. A key difference is that sunbirds cannot hover, so sunbird-pollinated flowers and inflorescences are typically sturdier than hummingbird-pollinated flowers, with an appropriate landing spot from which the bird can feed.</p>
<footer>- <a href="https://en.wikipedia.org/wiki/Sunbird"><cite>Sunbird Wikipedia page</cite></a></footer>
</blockquote>
<p>This is likely <i>Aloe ferox</i>, though it should be said that Im still learning to differentiate species. Its categorised as a solitary, non-branching tree aloe. There is another one nearby which is easily 5-6 meters tall. Some species have yellow flowers, while others are orange, red or pink. They are wonderful neighbours. I think I will devote a good portion of my life to caring for aloes and learning more about them. If my spirit has a colour, it is that of the flowers above.</p>
<figure>
<img src="/plants/tree_aloe.jpg" style="width: 100%;" />
<figcaption>Majestic tree aloe amongst the succulents</figcaption>
</figure>
</article>
<p>An anecdote: I once drank <i>Huachuma</i> on a farm which had a cactus and succulent garden home to more than 1,000 species. After a good few hours drumming around a bonfire, my friends and I went to walk through the aforementioned garden. The moon was full, the night was still. Of all those species, the aloes were the only ones which appeared to me to be glowing blue-green. Not just reflecting the moonlight…glowing. I shall let the reader interpret that as they wish.</p>
<hr>
{%- endblock %}

View File

@ -0,0 +1,16 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>I Have Been Invited Into a Dance by a Bush with Purple Berries</h2>
<i>20 December, 2017</i>
<figure>
<img src="/plants/blueberries.jpeg" style="width: 100%;" />
<figcaption>Hand-picked blueberry snacks are where its at</figcaption>
</figure>
<p>Today I thought about ripeness. How do you know when its just right? Well, its different for every plant I guess. With blueberries Im learning to evaluate ripeness based on sight (colour of berry) and touch (firmness when gently squeezed). When I first started picking them, just two weeks ago, I only used my eyes and thus tended to pick unripe, tangy berries. Now I get 'em when theyre oh-so-sweet! In the last few days Ive also started to notice the rate at which the berries ripen and can time my future visits more precisely.</p>
<p>The more time I spend with these plants, and the more patient I become, the more fully I come to appreciate their being. So this is then one way to form relationships (and sometimes friendships) with plants: visit them regularly, use all your senses to engage and be patient. I reckon the same approach might work with humyns ;)</p>
<p>If you ever hang out with herbalists around plants, youll probably find theyre very multi-sensory and active in their engagement. Smell the plant, taste it, rub it on your skin; all the more modalities to experience with. This is good to practice, just dont go and eat all the poisonous stuff. Connecting with knowledgeable people is helpful: they can introduce you to some plants you might want to get to know better while also advising you to steer clear of some others.</p>
<p>On a somewhat related note: Im making friends with The Jinj, a neighbourhood cat of the orange variety.</p>
</article>
<hr>
{%- endblock %}

View File

@ -0,0 +1,18 @@
{% extends "nav" %}
{% block content %}
<article>
<h2>Potato Tech</h2>
<i>31 December, 2017</i>
<p>I shared lunch with some permaculture friends on Christmas day and they gifted me some of their seed potatoes. Today I planted them. Having seen how the plants thrived in my friends garden, and having learning more about potato diversity while I was in Peru, Im excited to experience my first attempt growing them. As I do so, I extend the line of humyns who have woven relationships with this plant over thousands and thousands of years; an honour and a privilege.</p>
<p>Seeing the potatoes like this is freakin rad! I got to appreciate the potato plant as an energy capture and storage technology: harness solar energy, grow a battery, redeploy solar panels from that battery months later. Beautiful.</p>
<figure>
<img src="/plants/potato_battery.jpeg" style="width: 100%;" />
<figcaption>Warning: battery is reaching critical levels</figcaption>
</figure>
<figure>
<img src="/plants/potato_sprout.jpeg" style="width: 100%;" />
<figcaption>The courageous potato perseveres in search of the light</figcaption>
</figure>
</article>
<hr>
{%- endblock %}

View File

@ -0,0 +1,18 @@
{% extends "nav" %}
{% block content %}
<h2>Support</h2>
<p>If you'd like to support my creative endeavours, please consider contributing in one of the following ways:</p>
<ul>
<li>Ethereum: 0x708f841c7c0f7B7648cb83e7885feA00b59A675e</li>
<li>Donate to the <a href="https://opencollective.com/peachcloud" title="PeachCloud OpenCollective">PeachCloud OpenCollective</a></li>
<li>Purchase a <a href="https://teespring.com/stores/harmonic-mycology" title="Harmonic Mycology Teespring">Harmonic Mycology t-shirt</a></li>
</ul>
<h2>Supporting</h2>
<p>These are the projects and friends I currently contribute to:</p>
<ul>
<li>@cel - $5 per month for <a href="https://celehner.com/projects.html" title="cel's Projects">Scuttlebutt</a> development</li>
<li>@SoapDog - $5 per month for <a href="http://patchfox.org" title="PatchFox Website">PatchFox</a> development</li>
<li>Joey Santore - $5 per month for <a href="https://www.patreon.com/CrimePaysButBotanyDoesnt" title="Crime Pays But Botany Doesn't Patreon">Crime Pays But Botany Doesn't</a></li>
</ul>
<hr>
{%- endblock %}

View File

@ -0,0 +1,5 @@
{% extends "nav" %}
{% block content %}
<h2>Travel</h2>
<hr>
{%- endblock %}