Compare commits

..

No commits in common. "main" and "add_i2c_post" have entirely different histories.

74 changed files with 1971 additions and 1477 deletions

4
.gitignore vendored
View File

@ -1,5 +1,3 @@
/target /target
/site /screenshots
notes notes
sync.sh
/static/misc

1407
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,20 @@
[package] [package]
name = "nyf" name = "mycelial_technology"
version = "0.4.0" version = "0.1.0"
authors = ["glyph <glyph@mycelial.technology>"] authors = ["glyph <glyph@mycelial.technology>"]
edition = "2018" edition = "2018"
description = "html splicer and rss generator"
repository = "https://git.coopcloud.tech/glyph/website" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
regex = "1" log = "0.4"
rss = "1" rocket = "0.4"
serde = "1"
serde_derive = "1"
serde_json = "1"
tera = "1"
# optimize for size [dependencies.rocket_contrib]
[profile.release] version = "0.4"
lto = true default-features = false
opt-level = "z" features = ["json", "tera_templates"]
panic = "abort"

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.

View File

@ -1,29 +1,3 @@
# mycelial.technology # mycelial.technology
_glyph's website_ Personal website of glyph. _Under construction_.
Handwritten CSS and HTML, images, an HTML splicer and an RSS generator.
## nyf
`src/lib.rs`
An opinionated, custom-built HTML splicer. It reads HTML templates, splices them into a base template and writes the output.
Templates are expected at `./templates` and output is written to `./site`. The `./site` directory will be created if it doesn't exist.
A base template is expected at `./templates/base.html`. It must contain two tags: `[[ title ]]` and `[[ content ]]`.
The root index template is expected at `./templates/index.html`. All other templates are expected to be in sub-directories; for example: `./templates/plants/index.html` or `./templates/fungi/entomopathogens.html`.
The splicer crawls the sub-directories of `./templates`, reads each HTML file, splices it into the `[[ content ]]` tag of the base HTML template and writes the output to the `./site` directory (preserving the sub-directory structure). The contents of the `<h2>` element are spliced into the `[[ title ]]` tag of the base HTML template for each sub-directory template.
## RSS Generator
`src/bin/generate_rss.rs`
A custom RSS generator. It crawls the template sub-directories containing articles for syndication, extracts relevant information and writes the items to `./static/feed.rss`.
## License
[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)

View File

@ -1,10 +0,0 @@
#!/bin/bash
echo "[ compiling binaries ]"
cargo build --release
echo "[ stripping binaries ]"
strip target/release/nyf
strip target/release/generate_rss
echo "[ compressing binaries ]"
upx target/release/nyf
upx target/release/generate_rss

View File

@ -1,111 +0,0 @@
//! # RSS Generator
//!
//! A custom RSS generator. It crawls the template sub-directories containing
//! articles for syndication, extracts relevant information and writes the items
//! to `./static/feed.rss`.
//!
extern crate regex;
extern crate rss;
use regex::Regex;
use rss::{ChannelBuilder, Item};
use std::{error, fs, fs::File, io::prelude::*};
fn main() -> Result<(), Box<dyn error::Error>> {
// create rss channel for mycelial.technology
let mut channel = ChannelBuilder::default()
.title("mycelial technology")
.link("https://mycelial.technology")
.description(
"glyph's RSS feed. Biophilic musings on carbon-based and silicon-based technologies.",
)
.build()?;
// list template directories containing articles for syndication
let bacteria = "./site/bacteria";
let computers = "./site/computers";
let fungi = "./site/fungi";
let plants = "./site/plants";
// add directories to a vector
let dirs = vec![bacteria, computers, fungi, plants];
// create vectors for item fields
let mut titles = Vec::new();
let mut pub_dates = Vec::new();
let mut urls = Vec::new();
let mut articles = Vec::new();
// loop through template directories and extract item field values
for dir in dirs {
for entry in fs::read_dir(dir)? {
let entry = entry?;
let path = entry.path();
if !path.ends_with("index.html") {
// populate item url vector from article filenames
let re_url = Regex::new("./site/(.*).html")?;
let caps_url = re_url.captures(
path.to_str()
.expect("Failed to convert file path to string slice for regex capture"),
);
if let Some(url) = caps_url {
let article_url = url[1].replace("_", "-");
let full_url = format!("https://mycelial.technology/{}", article_url);
urls.push(full_url);
};
// open the file (article) and read it to a string
let mut file = File::open(path)?;
let mut contents = String::new();
file.read_to_string(&mut contents)?;
// populate item title vector from article heading
let re_h2 = Regex::new("<h2>(.*)</h2>")?;
let caps_h2 = re_h2.captures(&contents);
if let Some(title) = caps_h2 {
titles.push(title[1].to_string());
};
// populate pub_date vector from first italic element in article
let re_i = Regex::new("<i>(.*)</i>")?;
let caps_i = re_i.captures(&contents);
if let Some(date) = caps_i {
pub_dates.push(date[1].to_string());
};
// populate article content vector from article element
let re_article = Regex::new(r"<article>[\s\S]*</article>")?;
let caps_article = re_article.captures(&contents);
if let Some(content) = caps_article {
articles.push(content[0].to_string());
};
}
}
}
// get length of titles vector (serves as proxy for total number of articles)
let library = titles.len();
// create vector for channel items
let mut items = Vec::new();
// loop through vectors of item fields and create items accordingly
for x in 0..library {
let mut item = Item::default();
item.set_title(titles[x].to_string());
item.set_link(urls[x].to_string());
item.set_pub_date(pub_dates[x].to_string());
item.set_description(articles[x].to_string());
items.push(item)
}
// add the items to the channel
channel.set_items(items);
// write the channel to file
let rss_file = File::create("./static/feed.rss")?;
channel.write_to(rss_file)?;
Ok(())
}

View File

@ -1,116 +0,0 @@
#![warn(missing_docs)]
//! # nyf
//!
//! _glyph's static site generator_
//!
//! This is an opinionated, custom-built HTML splicer. It reads HTML templates, splices
//! them into a base template and writes the output.
//!
//! Templates are expected at `./templates` and output is written to `./site`. The `./site`
//! directory will be created if it doesn't exist.
//!
//! A base template is expected at `./templates/base.html`. It must contain two tags:
//! `[[ title ]]` and `[[ content ]]`.
//!
//! The root index template is expected at `./templates/index.html`. All other templates are
//! expected to be in sub-directories; for example: `./templates/plants/index.html` or
//! `./templates/fungi/entomopathogens.html`.
//!
//! The splicer crawls the sub-directories of `./templates`, reads each HTML file, splices
//! it into the `[[ content ]]` tag of the base HTML template and writes the output to the
//! `./site` directory (preserving the sub-directory structure). The contents of the `<h2>`
//! element are spliced into the `[[ title ]]` tag of the base HTML template for each
//! sub-directory template.
use std::{fs, io, path::Path};
// define the path for the template directory
const TEMPLATE_DIR: &str = "./templates";
// define the path for the generated site output
const SITE_DIR: &str = "./site";
/// Run (with the) `nyf`.
pub fn run() -> Result<(), &'static str> {
// read the base html template to a string
let base = format!("{}/base.html", TEMPLATE_DIR);
let base_path = Path::new(&base);
let base_html = fs::read_to_string(base_path)
.map_err(|_| "couldn't read from templates/base.html; does it exist?")?;
// read the index html template to a string
let index = format!("{}/index.html", TEMPLATE_DIR);
let index_path = Path::new(&index);
let index_html = fs::read_to_string(index_path)
.map_err(|_| "couldn't read from templates/index.html; does it exist?")?;
// create site directory if it doesn't already exist
let site_dir_path = Path::new(&SITE_DIR);
if !site_dir_path.is_dir() {
fs::create_dir(site_dir_path).map_err(|_| "failed to create site output directory")?;
}
// integrate the content from the index template into the base template
let mut index_output = base_html.replace("[[ content ]]", &index_html);
// set the page title
index_output = index_output.replace("[[ title ]]", "mycelial technology");
let index_output_path = format!("{}/index.html", SITE_DIR);
// write the generated index html to file
fs::write(index_output_path, index_output.trim())
.map_err(|_| "failed to write the root index.html file")?;
// walk the template directory and collect paths for all files and sub-directories
let template_files: Vec<_> = fs::read_dir(TEMPLATE_DIR)
.map_err(|_| "failed to read template directory")?
.map(|res| res.map(|e| e.path()))
.collect::<Result<Vec<_>, io::Error>>()
.map_err(|_| "failed to collect template file paths")?;
// loop through each file and sub-directory
for entry in template_files {
if entry.is_dir() {
// replicate templates sub-directory structure in site output directory
let template_sub_dir_suffix = entry
.strip_prefix(TEMPLATE_DIR)
.map_err(|_| "failed to strip prefix from template directory path")?;
let site_sub_dir = Path::new(SITE_DIR).join(template_sub_dir_suffix);
// create the sub-directory if it doesn't already exist
if !site_sub_dir.is_dir() {
fs::create_dir(site_sub_dir)
.map_err(|_| "failed to create a site output sub-directory")?;
}
// read each file from the sub-directory
for file in fs::read_dir(entry)
.map_err(|_| "failed to enumerate template sub-directory files")?
{
let file = file.map_err(|_| "failed to obtain sub-directory file data")?;
let file_path = file.path();
let file_html = fs::read_to_string(&file_path)
.map_err(|_| "failed to read template html file to string")?;
// find the index of the h2 tag (represents the page title)
let mut title_start = file_html.find("<h2>").ok_or("<h2> tag not found in html")?;
// increment the index to represent the start of the title text
title_start += 4;
// find the index of the h2 closing tag
let title_end = file_html
.find("</h2>")
.ok_or("</h2> tag not found in html")?;
// obtain the title text as a string slice
let title = &file_html[title_start..title_end];
// integrate the content from the template into the base template
let mut file_output = base_html.replace("[[ content ]]", &file_html);
// integrate the title of the page into the file output
file_output = file_output.replace("[[ title ]]", title);
// define the path to which the output html file will be written
let file_output_path = file_path.to_string_lossy();
// replace the template directory path with the site output path
let output_path = file_output_path.replace(TEMPLATE_DIR, SITE_DIR);
// trim whitespace from the end of the generated html and write to file
fs::write(output_path, file_output.trim())
.map_err(|_| "failed to write html file to site directory")?
}
}
}
Ok(())
}

View File

@ -1,10 +1,249 @@
use std::process; #![feature(proc_macro_hygiene, decl_macro)]
#[macro_use]
extern crate log;
#[macro_use]
extern crate rocket;
extern crate rocket_contrib;
#[macro_use]
extern crate serde_derive;
extern crate tera;
use std::path::{Path, PathBuf};
use rocket::response::NamedFile;
use rocket_contrib::templates::Template;
#[derive(Debug, Serialize)]
struct FlashContext {
flash_name: Option<String>,
flash_msg: Option<String>,
}
#[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("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)]
fn not_found() -> Template {
debug!("404 Page Not Found");
let context = FlashContext {
flash_name: Some("error".to_string()),
flash_msg: Some("No resource found for given URL".to_string()),
};
Template::render("not_found", context)
}
/// Begin the `nyf` run. Catch any application errors, print them to `stderr` and return an error
/// exit code (`1`).
fn main() { fn main() {
if let Err(e) = nyf::run() { rocket::ignite()
eprintln!("{}", e); .mount(
process::exit(1); "/",
} 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();
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

View File

@ -1,208 +0,0 @@
<rss version="2.0"><channel><title>mycelial technology</title><link>https://mycelial.technology</link><description>glyph&apos;s RSS feed. Biophilic musings on carbon-based and silicon-based technologies.</description><item><title>Sauerkraut: Beginnings</title><link>https://mycelial.technology/bacteria/sauerkraut-beginnings</link><description><![CDATA[<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.
</article>]]></description><pubDate>22 October, 2019</pubDate></item><item><title>Sauerkraut: Bottled</title><link>https://mycelial.technology/bacteria/sauerkraut-bottled</link><description><![CDATA[<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>
</article>]]></description><pubDate>31 October, 2019</pubDate></item><item><title>Adventures with I²C</title><link>https://mycelial.technology/computers/i2c-adventures</link><description><![CDATA[<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>]]></description><pubDate>26 January, 2019</pubDate></item><item><title>ESP8266 with DHT11 and LCD Display</title><link>https://mycelial.technology/computers/esp8266-dht11</link><description><![CDATA[<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>]]></description><pubDate>5 August, 2019</pubDate></item><item><title>Cross-Compiling Rust for Debian Buster on Raspberry Pi 3B+</title><link>https://mycelial.technology/computers/rust-compilation</link><description><![CDATA[<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>]]></description><pubDate>18 May, 2020</pubDate></item><item><title>Grow Together</title><link>https://mycelial.technology/fungi/grow-together</link><description><![CDATA[<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>]]></description><pubDate>29 March, 2018</pubDate></item><item><title>Lichens in Space</title><link>https://mycelial.technology/fungi/lichen-space</link><description><![CDATA[<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>]]></description><pubDate>28 May, 2020</pubDate></item><item><title>Potato Tech</title><link>https://mycelial.technology/plants/potato-tech</link><description><![CDATA[<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>]]></description><pubDate>31 December, 2017</pubDate></item><item><title>I Have Been Invited Into a Dance by a Bush with Purple Berries</title><link>https://mycelial.technology/plants/blueberry-dance</link><description><![CDATA[<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>]]></description><pubDate>20 December, 2017</pubDate></item><item><title>Botanical Deceptions</title><link>https://mycelial.technology/plants/botanical-deceptions</link><description><![CDATA[<article>
<h2>Botanical Deceptions</h2>
<i>15 May, 2020</i>
<figure>
<img src="/plants/ceropegia_sandersonii.jpeg" alt="An unusual flower which looks like an umbrella with a hollow, tapering stem. The top is white with green speckled petals and frilly egdes. A twisting, dark green vine is blurry in the background." style="width: 100%;" />
<figcaption><i>Ceropegia sandersonii</i> flower. Photo credit: <a href="https://commons.wikimedia.org/wiki/User:Wildfeuer">Wildfeuer</a>. Shared under a Creative Commons Attribution 2.5 Generic (CC BY 2.5) license.</figcaption>
</figure>
<p>Ive been on a steady one-a-day listening spree of In Defense of Plants podcast episodes. Today I listened to <a href="https://www.indefenseofplants.com/podcast/2019/6/9/ep-216-dying-bees-wasp-venom-and-other-strange-floral-scents">Episode 216: Dying Bees, Wasp Venom, and other Strange Floral Scents</a>, featuring an interview with <a href="https://pollinationresearch.wordpress.com/dr-annemarie-heiduk/">Dr Annemarie Heiduk</a>. If you enjoy geeking out about plants, insects, chemistry or ecology, I highly recommend taking a listen!</p>
<p>Heres a brief summary of the part which blew my mind. There are loads more juicy details in the podcast so Im confident that Im not spoiling it for you by sharing this.</p>
<p>Theres a plant (<i>Ceropegia sandersonii</i>) that releases chemical compounds which mimic those released by honey bees when they are wounded (e.g. by spiders). This suite of compounds attracts <i>Desmometopa</i> flies which specialise in stealing food from spiders (they consume the body fluids of the injured bees). The fly comes to the flower expecting a meal, becomes trapped and covered in pollen, and is released a day later when the flower withers - allowing it to visit more flowers.</p>
<p>Hows that for a pollination syndrome?! Isnt that just ridiculous! Gettin me all fired up on science over here!</p>
<p>More info can be found on the <a href="https://en.wikipedia.org/wiki/Ceropegia_sandersonii">Wikipedia page for Ceropegia sandersonii</a> and in this article: <a href="http://www.the-scientist.com/?articles.view/articleNo/47214/title/To-Attract-Pollinators--Flower-Mimics-Wounded-Bee/#post143971">To Attract Pollinators, Flower Mimics Wounded Bee.</a></p>
<p>A friend of mine has a gorgeous vine growing as a potted plant at her house. Only while listening to this episode did I realise its a member of the Ceropegia! Now Im stoked to identify it to species level and ask her ever-so-sweetly if I might take a cutting (or seeds). The one she has looks very much like this <i>C. linearis sub. woodii</i>:</p>
<figure>
<img src="/plants/ceropegia_linearis.jpeg" alt="A grayish-pink vine with two heart-shaped, gray-green leaves and an unusual, hollow flower with furry black structures at the tip." style="width: 100%;" />
<figcaption><i>Ceropegia linearis</i> subspecies woodii flower. Photo credit: <a href="https://en.wikipedia.org/wiki/en:User:MidgleyDJ">Dr. David Midgley</a>. Shared under a Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5) license.</figcaption>
</figure>
</article>]]></description><pubDate>15 May, 2020</pubDate></item><item><title>Aloe There</title><link>https://mycelial.technology/plants/aloe-there</link><description><![CDATA[<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>]]></description><pubDate>6 June, 2020</pubDate></item></channel></rss>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 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

@ -1,46 +0,0 @@
<h2>Art</h2>
<h3>2021</h3>
<div class="flex-grid">
<img class="col" alt="Line art of a humyn person standing among plants and mushrooms with hands outstretched, palms facing upward. Roots are growing from the plants and the bare feet of the humyn. A stylised sun appears at the top-middle of the piece, emanating glyphs. The artwork is framed in a thin black line. Capital letters spell out 'S V E N D S O L A R' at the bottom of the image" src="/static/art/svendsolar.svg" title="Svendsolar" />
<div class="col" alt="Placeholder"></div>
<div class="col" alt="Placeholder"></div>
</div>
<h3>2020</h3>
<div class="flex-grid">
<img class="col" alt="Line drawing of a Japanese archer with a longbow" src="/static/art/archer.jpg" title="Archer" />
<img class="col" alt="Pen and ink drawing of a tiger beetle with mesas and clouds in the background" src="/static/art/beetle.jpg" title="Beetle" />
<img class="col" alt="Pen and ink drawing of a man standing with his hands in his pockets. He has a katana slung across his back and there are rocks scattered around and hills in the background" src="/static/art/ninja.jpg" title="Ninja" />
</div>
<div class="flex-grid">
<img class="col" alt="Inked portrait of a beautiful young person" src="/static/art/xiao_wen_ju.jpg" title="Xiao Wen Ju" />
<img class="col" alt="Black and white event poster of a spacecraft, astronaut and planet" src="/static/art/extrasolar.jpg" title="Extrasolar" />
<img class="col" alt="Line drawing of a woman in a hooded parka" src="/static/art/parka.jpg" title="Parka" />
</div>
<h3>2019</h3>
<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="/static/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="/static/art/ring_monk.jpg" title="Ring" />
<img class="col" alt="Line drawing of a man playing shakuhachi" src="/static/art/shakuhachi.jpg" title="Mindless" />
</div>
<div class="flex-grid">
<img class="col" alt="Line drawing of a pitcher plant" src="/static/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="/static/art/birch_polypore.jpg" title="Freeze" />
<img class="col" alt="Line drawing of a paper wasp on a small nest" src="/static/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="/static/art/enchanted_gano.jpg" title="Enchanted" />
<img class="col" alt="Line drawing of a physalis fruit" src="/static/art/physalis.jpg" title="Frail" />
<img class="col" alt="Line drawing of a humyn hand reaching out to touch a mycelial network" src="/static/art/hyphal_fusion.svg" title="Hyphal Fusion" />
</div>
<h3>2018</h3>
<div class="flex-grid">
<img class="col" alt="Line drawing of an aloe plant" src="/static/art/aloe.jpg" title="Aloe plant" />
<img class="col" alt="Line drawing of an American kestrel" src="/static/art/kestrel.jpg" title="American kestrel" />
<img class="col" alt="Line drawing of a black oval surrounded by two rings of glyphs" src="/static/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="/static/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="/static/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="/static/art/halo.svg" title="Halo" />
</div>
<hr>

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

@ -1,9 +0,0 @@
<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). In 2016 I co-founded <a href="https://harmonicmycology.com">Harmonic Mycology</a>, a mycology business based in Cape Town, and served as Creative Director until leaving to pursue personal and collective projects in 2020. I have developed mycelial medicines, cultivated edible and medicinal fungi and taught workshops on mushroom cultivation, biomaterials and medicinal fungi. My mycological work is now focused on encouraging the formation of humyn-fungal networks and practicing low-tech, ecologically-integrated cultivation.</p>
<p>In parallel to my mycological endeavours, I work as an autodidactic software developer on private and open-source projects; most-recently, <a href="https://opencollective.com/peachcloud">PeachCloud</a>. I also enjoy tinkering with electronics and have a couple of solar-powered projects in the works.</p>
<p>I hold a deep fascination with the processes through which humyns form relationships with other living beings. When not in the lab or behind a 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="/static/glyph_laetiporus.jpg" alt="A young man crouching beside a large orange chicken-of-the-woods mushroom growing from the trunk of an oak tree. Trees, shrubs and grasses fill the foreground and background." style="width: 100%;" />
</article>
<hr>

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

@ -1,6 +0,0 @@
<h2>Bacteria</h2>
<ul>
<li><a href="/bacteria/sauerkraut-bottled.html">Sauerkraut: Bottled</a> - <i>31 October, 2019</i></li>
<li><a href="/bacteria/sauerkraut-beginnings.html">Sauerkraut: Beginnings</a> - <i>22 October, 2019</i></li>
</ul>
<hr>

View File

@ -1,12 +1,14 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>Sauerkraut: Beginnings</h2> <h2>Sauerkraut: Beginnings</h2>
<i>22 October, 2019</i> <i>22 October, 2019</i>
<figure> <figure>
<img src="/static/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%;" /> <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> <figcaption>Counter-top fermentation factory</figcaption>
</figure> </figure>
<p>I started my first batch of sauerkraut on Sunday - something Ive been meaning to do for a few months.</p> <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>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. <p>Its already bubbling and smelling delicious. Fermentation is like hospitality management for microbes.
</article>
<hr> <hr>
{%- endblock %}

View File

@ -1,3 +1,5 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>Sauerkraut: Bottled</h2> <h2>Sauerkraut: Bottled</h2>
<i>31 October, 2019</i> <i>31 October, 2019</i>
@ -5,8 +7,8 @@
<p>Also transferred some chaga (Inonotus obliquus), reishi (Ganoderma lucidum) and turkey tail (Trametes versicolor)-infused coconut oil to a smaller jar.</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> <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> <figure>
<img src="/static/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%;" /> <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> <figcaption>Vibrant delights in the valley</figcaption>
</figure> </figure>
</article>
<hr> <hr>
{%- endblock %}

View File

@ -1,174 +0,0 @@
<!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="/static/favicon.png"/>
<title>[[ title ]]</title>
<meta name="author" content="glyph">
<meta name="description" content="Welcome to the personal website of glyph: a mycelial technologist coding and cultivating a decentralized, multispecies future. On my site you will find art, musings and projects relating to carbon-based and silicon-based technologies. Sowing seeds of symbiosis, weaving webs of wu wei.">
<meta name="keywords" content="botany, coding, electronics, fermentation, fungi, meditation, mycology, plants">
<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;
line-height: 1.4;
margin: 2rem;
}
.card {
border: 1px solid black;
box-shadow: 0.25rem 0.25rem;
padding: 2rem;
margin-bottom: 2rem;
}
@media only screen and (min-width: 800px) {
.card {
width: max-content;
}
}
.card ul {
list-style-type: none;
margin: 0;
padding-left: 0;
}
code {
background-color: #111;
color: #fff;
margin-left: 0.5rem;
}
.col {
flex: 1;
padding: 1rem;
overflow: auto;
}
@media (max-width: 400px) {
.col {
flex: 1;
padding: 1rem;
width: 90%;
}
}
figure {
margin: 0;
padding: 0;
}
.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.5rem;
padding: 0.5rem;
}
.nav-item a {
text-decoration: none;
}
p.bordered {
border: solid 1px #111;
padding: 2rem;
}
td {
padding-left: 1rem;
padding-right: 1rem;
}
th {
padding-left: 1rem;
padding-right: 1rem;
text-align: left;
}
</style>
</head>
<body>
<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="/bicycles">bicycles</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="/japanese">japanese</a></li>
<li class="nav-item"><a href="/lists">lists</a></li>
<li class="nav-item"><a href="/meditation">meditation</a></li>
<li class="nav-item"><a href="/plants">plants</a></li>
<li class="nav-item"><a href="/projects">projects</a></li>
<li class="nav-item"><a href="/support">support</a></li>
</ol>
</nav>
[[ content ]]
<footer style="display: flex;">
<p>&#169; 2022 glyph<p>
</footer>
</body>
</html>

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

@ -1,131 +0,0 @@
<article>
<h2>Bicycles</h2>
<i>Last update: 24 June, 2022</i>
<p>I love riding my bicycle.</p>
<img src="/static/bicycles/bicycle.jpg" alt="A black fixed gear bicycle beside a bench, with rolling green fields in the background." style="width: 100%;" />
<h3>Parts List</h3>
<p>My current bicycle is a fixed gear Lager model from SE Bikes. I have replaced many components; here's a list:</p>
<ul>
<li><b>Frame</b>: SE Bikes Lager</li>
<li><b>Headset</b>: Tange Seiki Terious</li>
<li><b>Handlebars</b>: Cinelli Lola bullhorn bars</li>
<li><b>Bar tape</b>: Cinelli cork bar tape</li>
<li><b>Brake levers</b>: Cane Creek 200T</li>
<li><b>Stem</b>: Thomson X4 70 mm</li>
<li><b>Saddle</b>: Fabric Scoop Elite Shallow</li>
<li><b>Seatpost</b>: stock</li>
<li><b>Front brake</b>: Dia Compe BRS-101</li>
<li><b>Rear brake</b>: stock</li>
<li><b>Crankset</b>: stock</li>
<li><b>Chainring</b>: stock 46 tooth</li>
<li><b>Cog</b>: stock 17 tooth</li>
<li><b>Wheels</b>: stock</li>
<li><b>Tyres</b>: Panaracer GravelKing slicks 700c x 32</li>
<li><b>Bottle cage</b>: Tanaka</li>
<li><b>Pedals</b>: stock plastic platform pedals with straps</li>
</ul>
<h3>Ride Log 2022</h3>
<div style="overflow-x:auto;">
<table>
<tr>
<th>Date</th>
<th>From <-> To</th>
<th>Distance</th>
<th>Time</th>
<th>Ascent</th>
</tr>
<tr>
<td>230622</td>
<td>Congresbury <-> Axbridge (via Flax Bourton)</td>
<td>45 km</td>
<td>1:52</td>
<td>550 m</td>
</tr>
<tr>
<td>220622</td>
<td>Congresbury <-> Axbridge</td>
<td>24 km</td>
<td>1:05</td>
<td>440 m</td>
</tr>
<tr>
<td>200622</td>
<td>Congresbury <-> Ashton Court</td>
<td>39 km</td>
<td>1:33</td>
<td>260 m</td>
</tr>
<tr>
<td>180622</td>
<td>Congresbury <-> Winscombe</td>
<td>22 km</td>
<td>1:07</td>
<td>210 m</td>
</tr>
<tr>
<td>170622</td>
<td>Congresbury <-> Axbridge</td>
<td>24 km</td>
<td>1:08</td>
<td>210 m</td>
</tr>
<tr>
<td>160622</td>
<td>Congresbury <-> Axbridge</td>
<td>27 km</td>
<td>1:16</td>
<td>250 m</td>
</tr>
<tr>
<td>140622</td>
<td>Congresbury <-> Axbridge (via Ashton Court)</td>
<td>60 km</td>
<td>2:37</td>
<td>430 m</td>
</tr>
<tr>
<td>130622</td>
<td>Congresbury <-> Axbridge</td>
<td>22 km</td>
<td>0:58</td>
<td>150 m</td>
</tr>
<tr>
<td>120622</td>
<td>Congresbury <-> Ashton Court</td>
<td>39 km</td>
<td>1:41</td>
<td>280 m</td>
</tr>
<tr>
<td>110622</td>
<td>Congresbury <-> Ashton Court</td>
<td>41 km</td>
<td>1:44</td>
<td>300 m</td>
</tr>
<tr>
<td>090622</td>
<td>Congresbury <-> Winscombe</td>
<td>17 km</td>
<td>0:54</td>
<td>120 m</td>
</tr>
<tr>
<td>080622</td>
<td>Congresbury <-> Axbridge</td>
<td>25 km</td>
<td>1:13</td>
<td>260 m</td>
</tr>
<tr>
<td>070622</td>
<td>Congresbury <-> Long Ashton</td>
<td>37 km</td>
<td>1:51</td>
<td>404 m</td>
</tr>
</table>
</div>
</article>
<hr>

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

@ -1,10 +1,12 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>ESP8266 with DHT11 and LCD Display</h2> <h2>ESP8266 with DHT11 and LCD Display</h2>
<i>5 August, 2019</i> <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> <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> <figure>
<img src="/static/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%;" /> <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> <figcaption>The basic setup</figcaption>
</figure> </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>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>Arduino (C++) code: <a href="https://github.com/mycognosist/esp8266_dht11_udp">mycognosist/esp8266_dht11_udp</a></p>
@ -17,3 +19,4 @@
<p>I did not know that. Rad.</p> <p>I did not know that. Rad.</p>
</article> </article>
<hr> <hr>
{%- endblock %}

View File

@ -1,3 +1,5 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>Adventures with I²C</h2> <h2>Adventures with I²C</h2>
<i>26 January, 2019</i> <i>26 January, 2019</i>
@ -9,8 +11,8 @@
<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> <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> <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> <figure>
<img src="/static/computers/pi_rtc.jpeg" alt="DS1338 RTC module plugged-into a breadboard & connected to a Raspberry Pi." style="width: 100%;" /> <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> <figcaption>DS1338 RTC module plugged-into a breadboard & connected to a Raspberry Pi</figcaption>
</figure> </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> <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 apt-get install python-smbus i2c-tools</code><br>
@ -19,8 +21,8 @@
<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>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> <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> <figure>
<img src="/static/computers/debian_pi_pros_cons.png" alt="List of advantages and disadvantages of running Debian Buster ARM64 on Raspberry Pi." style="width: 100%;" /> <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> <figcaption>List of advantages and disadvantages of running Debian Buster ARM64 on Raspberry Pi</figcaption>
</figure> </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>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> <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>
@ -38,9 +40,10 @@
<code>sudo modprobe rtc-ds1307</code> <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> <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> <figure>
<img src="/static/computers/i2c_working.jpeg" alt="Screenshot of terminal showing successful configuration of I²C RTC module." style="width: 100%;" /> <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> <figcaption>Screenshot of terminal showing successful configuration of I²C RTC module</figcaption>
</figure> </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> <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> </article>
<hr> <hr>
{%- endblock %}

View File

@ -1,11 +0,0 @@
<h2>Computers</h2>
<p>You can find some of my code on <a href="https://github.com/mycognosist" title="glyph's GitHub repo">GitHub</a> and <a href="https://git.coopcloud.tech/glyph" title="glyph's Co-op Cloud git repo">Co-op Cloud</a>.</p>
<h3>Posts</h3>
<div class="card">
<ul>
<li><a href="/computers/rust-compilation.html">Cross-Compiling Rust for Debian Buster on Raspberry Pi 3B+</a> - <i>18 May, 2020</i></li>
<li><a href="/computers/esp8266-dht11.html">ESP8266 with DHT11 and LCD Display</a> - <i>5 August, 2019</i></li>
<li><a href="/computers/i2c-adventures.html">Adventures with I²C</a> - <i>26 January, 2019</i></li>
</ul>
</div>
<hr>

View File

@ -1,3 +1,5 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>Cross-Compiling Rust for Debian Buster on Raspberry Pi 3B+</h2> <h2>Cross-Compiling Rust for Debian Buster on Raspberry Pi 3B+</h2>
<i>18 May, 2020</i> <i>18 May, 2020</i>
@ -16,3 +18,4 @@
<code>linker = "aarch64-linux-gnu-gcc"</code> <code>linker = "aarch64-linux-gnu-gcc"</code>
</article> </article>
<hr> <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

@ -1,22 +0,0 @@
<article>
<h2>Mycelial Design Patterns</h2>
<i>26 October, 2018</i>
<p><i>This is the second part of a two-part essay which first appeared on Scuttlebutt [1] as an exploration of growing the ecosystem. Part one: <a href="/fungi/grow-forests.html">Growing Forests</a> [2].</i></p>
<p>1. <b>Think long-term.</b> Dream the future that will support as much diversity and interdependence as possible and then anchor it through integration, practice and reflection. This is already going on in the Scuttleverse so I wont expand further.</p>
<p>2. <b>Be experimental.</b> The saprotrophic (foraging / decomposing) fungi stream nuclei to their rapidly branching and elongating tips. These nuclei provide the compute resources to analyze external environmental conditions and respond accordingly. Fungi are capable of synthesizing some 200,000 unique compounds, many of which are acids and enzymes deployed to dissassmble metals, minerals, baceria etc. So, again, a diversity of approaches is best. Allocate some grants as small packages and let grantees scout the terrain of possibility. I think the $5k grants from Dfinity were a great practice of this kind of experimental embrace.</p>
<p>3. <b>Store energy when its plentiful.</b> Some species of fungi grow underground storage vessels known as sclerotia or truffles. These dense nuggets of mycelium provide sustenance in periods of prolonged adverse conditions (drought, lack of food etc.). I think efforts like the Open Collective etc. can play a role in facilitating this kind of saving. Times may come when we have no incoming funding and then the surplus of previous crops can keep us going. I think we should be wary of spending all available resources as they come in.</p>
<p>4. <b>Foster collaboration and sharing across boundaries.</b> As others have stated already, mycelia of many species interconnect the root-zones of plants and trees, thereby providing the infrastructure for distributing nutrients and messages in a way which supports the collective. The more we can forge relationships between SSB and other p2p, decent techno-communities the better. So perhaps some funds may be allocated to collaborative projects which strengthen both SSB and other regions of The Chorus (ie. dat, ipfs, cabal etc.). I also think this cross-boundary funding should ultimately reach out into geographically local projects and communities. By that I mean the funding of permaculture and earthworks, healing, teaching etc.</p>
<p>5. <b>Foster collaboration and sharing inside the Scuttleverse.</b> This is closely related to the above point but I think of it more in terms of ensuring our documentation is top-notch and accessible. Mycelium learns to digest novel compounds and then shares that knowledge with the rest of the network, meaning that those compounds are rapidly decomposed when encountered the second time around. This ability to learn through trial-and-error and then disseminate the information is key to the adaptability and resilience of the network. As such, it seem pertinent to continue funding the creation of documentation, not just of the software variety but that produces through reflection and retrospectives (facilitating and produced by ethnographers, organizational analysts, participatory process folx etc.). I already see encouraging examples of this here.</p>
<p>6. <b>Live cheap.</b> Fungi disassemble what they have available to them and build with the resulting molecules. This is what voice of the mushroom said to Terence McKenna: when youre a mushroom, you live cheap!. We must strive to allow for running nodes with the lowest possible resource inputs. There are a bunch of cool projects which fall under this category, some of which are already underway (@cel [3] is working on minimal sbot, for example). Perhaps we should think about funding things like 32-bit support, the creation of RPi installation guides, more electronics shenanigans, guides on solar setups and recycling batteries etc. I reckon ssb-wiki would really help in arranging this knowledge.</p>
<p>7. <b>Decompose by design.</b> We need to get better at extracting valuable elements from waste and ensuring that our building materials do not cause detrimental effects to the wider eco-system when they decay. This one is still relatively unformed in my mind, but Im thinking about things like using biomaterials in place of plastics, plastic digesters etc. The work of @Sam Smith [4] and @dangerousbeans [5] et al. comes to mind. I wonder how this concept relates to software and sociotechnical tribes.</p>
<p>Im going to leave it at that for now. There might be some upcoming episodes of The Local Gossip which explore these topics in more details. I realize that most of what Ive highlighted above is already manifested in Scuttlebutt in beautiful ways. I hope this mini-essay doesnt come across as being ignorant of all the effort thats going on. In many ways, Im just fractal-gazing at double-exposures of the mycelium and Scuttlemesh and pointing out the symmetries I see. Apologies for the long post and thank you if you stuck with me to this point ;) Keep up the cross-pollination and keep making friends with non-humyns!</p>
<h3>Cypherlinks</h3>
<ol>
<li>Cypherlink to part 2: %+dhqokfiKrZMTANy53fSOliuW5gN+UbzMa4VeB6hTG4=.sha256</li>
<li>Cypherlink to part 1: %RRp5H5obsNYHhjSa/2FAxcTiyGGVvhPKAUYYgZTj6hI=.sha256</li>
<li>@cel (public key): @f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519</li>
<li>@Sam Smith (public key): @w87xXIicF6SVqG0VIBqbKfHJ/QuXdBOBhtMUweZxE4k=.ed25519</li>
<li>@dangerousbeans (public key): @TXKFQehlyoSn8UJAIVP/k2BjFINC591MlBC2e2d24mA=.ed25519</li>
</ol>
</article>
<hr>

View File

@ -1,12 +0,0 @@
<article>
<h2>Mycological Glossary</h2>
<ul>
<li><b>culture</b> - Mycelium of a particular strain and species, often grown in a petri dish or test tube for easy storage and replication.</li>
<li><b>liquid culture</b> - Mycelium grown in a nutrified solution such as 4% honey water, often in a glass jar or similar lidded vessel; simplifies cultivation in non-sterile conditions.</li>
<li><b>mushroom</b> - The fruiting body of a fungal network; a specialised structure grown to replicate and distribute the genetic information of the mycelium via spores.</li>
<li><b>mycelium</b> - The body of a fungus, made up of branching and interconnected threads of single cells (hyphae); often appears as a white, fluffy mass resembling tiny roots.</li>
<li><b>mycomaterial</b> - A substance or object grown out of mycelium, often using hemp hurd or similar woody substance as a base material. Mycomaterials hold great potential as replacements for plastic, styrofoam, leather etc.</li>
<li><b>spore</b> - A tiny reproductive bundle carrying the genetic information of the parent organism; germinates to restart the life-cycle of the fungus.</li>
</ul>
</article>
<hr>

View File

@ -1,24 +0,0 @@
<article>
<h2>Growing Forests</h2>
<i>26 October, 2018</i>
<p><i>This is the first part [1] of a two-part essay which first appeared on Scuttlebutt as a response to a question [2] posed by @elavoie [3]:</i></p>
<blockquote cite="%RRp5H5obsNYHhjSa/2FAxcTiyGGVvhPKAUYYgZTj6hI=.sha256">
<p>I think we need a different narrative and symbolism for SSB. I feel it is already emerging in this community: the Tree and its role in a Forest. In the last day, I have seen references to Trees by at least 3 different people in my personal feed. I interpret that as a growing sensitivity to a different approach. How does that new symbol can inform our funding strategies?</p>
<footer><cite>@elavoie</cite></footer>
</blockquote>
<p>I am interested in growing forests. A single tree may perish from disease, insect infestation or a chainsaw, while a forest composed of intricately interconnected and interdependent organisms is far more resilient. Even the ferocity of fire cannot cleanse the forest of life. Indeed, many organisms and living processes have evolved to thrive in the aftermath of such sweeping and sudden change.</p>
<p>In these times of rapidly intensifying climate change, instability and extinction, we must become experts in the cultivation of forests. Forests that will feed us. Forests we can dance and sing in. Forests founded on care and attention. I mean these things both literally and figuratively.</p>
<p>Enter: mycelium. Peter McCoy of Radical Mycology is fond of saying: the mycelium is the message. Fungal lifeforms mine rocks to build soil; they welcomed their plant kin onto the land circa 400 MYA - midwifing the emergence of the botanical lifeforms we see today. Fungi figured out how to hack lignin and are hard at work hacking plastics. They are polymath geniuses of the highest order. I could go on and on (and on and on…).</p>
<p>Lets take a peek at how fungi grow forests: as a meshwork of single-celled threads, mycelium is incredibly vulnerable to attack by hostile microbes and has evolved numerous defenses. One strategy is the selective cultivation of benefical bacteria on the outer surface of the mycelium. By selecting and caring for these allies, the mycelium grows a bacterial cloak of immunity. It is no surprise then that some medicinal mushrooms have been show to influence humyn gut microflora. But thats not where it stops…</p>
<p>In designing its local microbial community, the mycelium promotes the growth of some plants over others - shepherding the emergence of particular botanical communities. The mycelium itself, along with the mushrooms it produces, are food for insects, worms, birds and mammals. All of these creatures, plant and animal alike, can be thought of as biomass. The biomass ultimately feeds the fungus; falling branches are air-dropped takeout for the mycelial membranes below. You see this pattern in the contrast between grassland and forest eco-systems: grassland has bacterially-dominated soils while forests have fungal-dominated soil. What started off as a bit of humble bacteria farming grew into a complex and resilient system capable of supporting the mycelium and myriad other lifeforms. I think this is basically what were aiming for.</p>
<p>Thats all fascinating and stuff, but how do we apply this to @elavoies original question(s)?</p>
<p>Ill highlight a few patterns I see in mycelial biology and ecology which I think apply. I have written about some of these elsewhere in the Scuttleverse (apologies for not including references and images and such).</p>
<p>Part 2: <a href="/static/fungi/design-patterns">Mycelial Design Patterns</a>.</p>
<h3>Cypherlinks</h3>
<ol>
<li>Cypherlink to part 1: %RRp5H5obsNYHhjSa/2FAxcTiyGGVvhPKAUYYgZTj6hI=.sha256</li>
<li>Cypherlink to @elavoie's original post: %/oFE/AW2HqPTOtQ1UHBBXKzzfZpiEJHGbFcXksxKnPo=.sha256</li>
<li>@elavoie (public key): @IgYpd+tCtXnlE2tYX/8rR2AGt+P8svC98WH3MdYAa8Y=.ed25519</li>
</ol>
</article>
<hr>

View File

@ -1,3 +1,5 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>Grow Together</h2> <h2>Grow Together</h2>
<i>29 March, 2018</i> <i>29 March, 2018</i>
@ -6,16 +8,17 @@
<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>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> <p>So much love for the House of Wu Wei and all the myriad creatures who live here!</p>
<figure> <figure>
<img src="/static/fungi/earthstar.jpeg" style="width: 100%;" /> <img src="/fungi/earthstar.jpeg" style="width: 100%;" />
<figcaption>You look interesting! I wonder whats going on…</figcaption> <figcaption>You look interesting! I wonder whats going on…</figcaption>
</figure> </figure>
<figure> <figure>
<img src="/static/fungi/earthstar_roots.jpeg" style="width: 100%;" /> <img src="/fungi/earthstar_roots.jpeg" style="width: 100%;" />
<figcaption>Inter-species companionship.</figcaption> <figcaption>Inter-species companionship</figcaption>
</figure> </figure>
<figure> <figure>
<img src="/static/fungi/earthstar_mycelium.jpeg" style="width: 100%;" /> <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> <figcaption>Makes me wonder how long these species have been dancing one another into being</figcaption>
</figure> </figure>
</article> </article>
<hr> <hr>
{%- endblock %}

View File

@ -1,25 +0,0 @@
<h2>Fungi</h2>
<h3>Articles</h3>
<div class="card">
<ul>
<li><a href="/fungi/lichen-space.html">Lichens in Space</a> - <i>28 May, 2020</i></li>
<li><a href="/fungi/grow-forests.html">Growing Forests</a> - <i>26 October, 2018</i></li>
<li><a href="/fungi/design-patterns.html">Mycelial Design Patterns</a> - <i>26 October, 2018</i></li>
<li><a href="/fungi/grow-together.html">Grow Together</a> - <i>29 March, 2018</i></li>
<li><a href="/fungi/network-resilience.html">Network Resilience: Woronin Bodies and the Scuttleverse</a> - <i>25 March, 2018</i></li>
</ul>
</div>
<h3>Guides</h3>
<div class="card">
<ul>
<li><a href="/fungi/glossary.html">Mycological Glossary</a> - <i>4 September, 2020</i></li>
<li><a href="/fungi/photo-guide.html">Photographing Mushrooms for Identification</a> - <i>25 August, 2020</i></li>
</ul>
</div>
<h3>Reading List</h3>
<div class="card">
<ul>
<li><a href="/fungi/reading-list.html">Mycology Reading List</a></li>
</ul>
</div>
<hr>

View File

@ -1,9 +1,11 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>Lichens in Space</h2> <h2>Lichens in Space</h2>
<i>28 May, 2020</i> <i>28 May, 2020</i>
<figure> <figure>
<img src="/static/fungi/xanthoria_fun_dye.jpeg" style="width: 100%;" /> <img src="/fungi/xanthoria_fun_dye.jpeg" style="width: 100%;" />
<figcaption>Xanthoria elegans lichen in cross-section, stained with FUN-1 dye.</figcaption> <figcaption>Xanthoria elegans lichen in cross-section, stained with FUN-1 dye</figcaption>
</figure> </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> <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"> <blockquote cite="https://en.wikipedia.org/wiki/Lichen#Miniature_ecosystem_and_holobiont_theory">
@ -33,3 +35,4 @@
<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> <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> </article>
<hr> <hr>
{%- endblock %}

View File

@ -1,51 +0,0 @@
<article>
<h2>Guide to Photographing Mushrooms for Identification</h2>
<i>25 August, 2020</i>
<h3>Introduction</h3>
<p>The blessing and curse of becoming known for your interest in a particular topic is the increasing number of questions you receive. As a keen mycophile, I am frequently sent photos of mushrooms and asked for assistance in identifying them. More often than not, I receive a single photo taken from directly above the mushroom, without any mention of contextual data such as where the photo was taken and during which season. This derth of data makes it very difficult to positively identify the mushroom to genus or species level. With that in mind, I thought it might be useful to write a short guide on photography for the purposes of mushroom identification.</p>
<p class="bordered"><i>When first beginning your journey into mushroom identification, it may be tempting to take a field guide with you to assist with identifications - I know this is how I started off. However, I've found that I prefer taking photos while in the field and doing the identification work and research at home. This allows me to focus on observation while in the field and avoid the frustration of paging through often-inadequate field guides. Find what works for you.</i></p>
<h3>Capturing Morphological Traits</h3>
<p>Mushrooms are often best identified by observing and listing their morphological traits. These may include the shape of the cap - both from above and in profile, the structure and colour of the hymenium, the colouration of the stem, the structure of the ring (if present) etc. Species within a genus often look identical at a glance and may require careful delineation based on a single characteristic. As such, it's very important to take clear photographs which collectively capture all of these characteristics (or the lack thereof). A minimum of three photos should do the trick:</p>
<p><b>Top-view</b>: captures the shape, colour and texture of the mushroom as seen from above.</p>
<figure>
<img src="/static/fungi/photo_guide/top_view.jpg" style="width: 100%;" alt="Large brown and white mushroom growing from a birch log on the forest floor. A black-gloved hand with fingers spread is next to the mushroom. The forest floor is covered with wet leaves and English ivy" />
<figcaption>Here we see a birch polypore mushroom (<i>Fomitopsis betulina</i>) from above, including a humyn hand for scale. As a bonus, we can also see the substrate from which the fungus is fruiting (a birch tree on the forest floor).</figcaption>
</figure>
<p><b>Side-view</b>: captures the profile of the cap, the cap margin and the shape and colour of the stem (including patterns and any bruising which might be present).</p>
<figure>
<img src="/static/fungi/photo_guide/side_view.jpg" style="width: 100%;" alt="Little brown mushroom (LBM) with a green clover attached to the base, as seen from the side on a white background" />
<figcaption>The profile of a single mushroom from the Panaeolus genus.</figcaption>
</figure>
<p><b>Bottom-view</b>: captures the colour and structure of the hymenium (gills, pores or teeth), as well as the way in which the cap is attached to the stem (if present).</p>
<figure>
<img src="/static/fungi/photo_guide/bottom_view.jpg" style="width: 100%;" alt="Mushroom with white gills and a beige stem" />
<figcaption>The gills of a mushroom I've yet to identify, including the top part of the stem.</figcaption>
</figure>
<p>Your identification process will be further aided by taking the extra steps to capture two more photos:</p>
<p><b>Developmental diversity</b>: captures several examples of the mushroom at various phases of development, including a mature mushroom and primorida. Mushrooms can change colour and shape with age, and may lose key identification features - hence the utility of being able to identify using several phases of development.</p>
<figure>
<img src="/static/fungi/photo_guide/development.jpg" style="width: 100%;" alt="Tetraptych showing four phases in the development of coprinoid mushrooms amongst mulch; from primordium to mature fruitbody" />
<figcaption>Four phases in the development of a coprinoid mushroom.</figcaption>
</figure>
<p><b>Spore-print</b>: captures the colour of the spores (an important characteristic with which to narrow your search). You will probably have to take a mushroom cap home / back to your campsite to create the sporeprint (takes 12 - 24 hours).</p>
<figure>
<img src="/static/fungi/photo_guide/spore_print.jpg" style="width: 100%;" alt="Black sporeprint on white, ruled paper" />
<figcaption>Black spores from a mushroom in the Panaeolus genus.</figcaption>
</figure>
<p class="bordered"><i>Bear in mind that you don't need fancy equipment to photograph mushrooms for the purpose of identification. I've been using the same simple Sony digital point-and-shoot since 2011. Also, don't be afraid to get close-up to your subject (the mushroom). The details often prove to be very important!</i></p>
<h3>Capturing Ecological Context</h3>
<p>In addition to photos of the mushroom itself, it can be incredibly helpful to collect data concerning the context in which the mushroom is growing. The key considerations in this regard are the substrate and habitat: What is the mushroom growing on? Where is it growing? And what is growing or living around it? Having photos of these contextual factors can make a big difference when identifying a mushroom or genus or species-level. A minimum of two photos will suffice:</p>
<p><b>Substrate-attachment</b>: captures the substrate on which the mushroom is growing. Try to observe beyond the obvious: if it's growing from the ground, is it growing on mulch, dung or from beneath the soil?</p>
<figure>
<img src="/static/fungi/photo_guide/substrate.jpg" style="width: 100%;" alt="Cluster of mushrooms with beige-orange caps and brown stems, growing on a wet, decomposing log in a forest" />
<figcaption>A cluster of mushrooms growing on a wet, decomposing log.</figcaption>
</figure>
<p><b>Habitat</b>: captures the environmental conditions and some of the species which may be copresent with the mushroom.</p>
<figure>
<img src="/static/fungi/photo_guide/habitat.jpg" style="width: 100%;" alt="Birch forest with grass covering the forest floor" />
<figcaption>A grassland birch forest.</figcaption>
</figure>
<h3>Conclusion</h3>
<p>There you have it, with 5 - 7 photos you can capture a great deal of data about a given species. Whether you're asking someone for help with identification or working through the process yourself, having these morphological and ecological data to draw on will enrich your learning experience and enhance your chances of making a successful identification. You may even notice things in the photos which you missed while in the field, for example, a beetle crawling amongst the gills (what ecological relationship might it have with the fungus?). I hope you've found this guide helpful and that it facilitates many fun identification forays in your near-future!</p>
</article>
<hr>

View File

@ -1,16 +0,0 @@
<article>
<h2>Network Resilience: Woronin Bodies and the Scuttleverse</h2>
<i>25 March, 2018</i>
<p>Today I spent some more time reading through <i>Fungi in the Environment</i>, particularly the chapter titled “Natural history of the fungal hypha: how Woronin bodies support a multicellular lifestyle” by Gregory Jedd. Im sharing a bit of it here since I think Woronin bodies, and fungal evolutionary history more broadly, has some metaphorical relevance to the Scuttleverse. My thoughts and presentation here are very rough but I intend on refining them iteratively.</p>
<p>Some fungi have perforated walls (septa) between their cells. Septal pores (openings between cells) allow the cellular contents of the mycelial network to flow through the cells. This is known as protoplasmic streaming and sometimes includes cellular nuclei in addition to other organelles (intracellular modules).</p>
<p>When experiencing damage, stress, old age, or during cellular differentiation, these fungi are able to selectively seal the septal pores in some of their cells. For example, when an insect takes a bite out of a mycelial network, cells adjacent to the destroyed / damaged cells prevent the leaking of protoplasm by sealing their pores. In this sense, they are self-healing and responsive to unanticipated changes in network integrity.</p>
<p>Different fungi take different approaches to halting and resuming protoplasmic streaming. One method of sealing septal pores is via Woronin bodies - bundles of HEX-1, a self-assembling structural protein, tethered to the pore opening. These Woronin bodies are essentially plugs which are pulled into position when required and may be sealed-over in the process of recovering from damage to adjacent cells.</p>
<blockquote cite="http://www.cambridge.org/ru/academic/subjects/life-sciences/plant-science/fungi-environment">
<p>the fungal colony can be thought of as a mass of protoplasm that migrates through a growing, interconnected system of channels. The early-diverging fungi (e.g. Zygomycota) grow well in the absence of vegetative septa; what then is the benefit of the perforate septum? Septal pores confer the advantage of protoplasmic streaming and intercellular continuity but are also sufficiently small to be rapidly closed. Thus, the syncytium can cellularize in response to hyphal damage, stress or old age, and during cellular differentiation. Several mechanisms exist to close the septal pore; one of these is described in detail below. Interestingly, the fungi with the most prominent and complex septal-pore-associated organelles, the Hymenomycetes and Euascomycetes (Fig. 2.1), also produce the largest and most complex multicellular fruiting bodies (Alexopolous et al., 1996), suggesting that these organelles support complex multicellular organization.</p>
<footer>- <a href="https://www.academia.edu/download/47581014/Fungi_in_the_Environment.pdf#page=43"><cite>JEDD, G., 2007. Natural history of the fungal hypha: how Woronin bodies support a multicellular lifestyle. Fungi in the environment. Cambridge University Press, Cambridge, pp.33.</cite></a></footer>
</blockquote>
<p>Perhaps these fungi can inform some of our thinking around diversity, replication and resilience, particularly with regards to recent (Scuttlebutt) discussions concerning trolls and bad actors? Maybe they hold clues to guide our growth towards complex multicellular organization?</p>
<p>Messages stream through the Scuttleverse via openings in the cells of the network (peers). In response to undesired behaviour from a peer(s), individuals - and, by extension, enclaves - selectively close their portals to the 'Verse - momentarily or permanently stopping the stream. Like fungi, the evolution of the Scuttleverse pulses with hyphal fusion and fission; continually reconfiguring the network topology and connectivity in response to environmental factors. Woronin-bodies, along with similar organelles in other fungi, could be replicated in the 'Verse: programmatic plugs to limit or halt streaming of network content, acting in a decentralized fashion via subjective replication and interaction definitions.</p>
<p>My understanding of SSB is far from adequate to even begin exploring these ideas in code, but I look forward to the day that dream takes shape around me; self-assembling structural proteins dancing as hyphal shards of The Greater Scuttleverse merge and diverge.</p>
</article>
<hr>

View File

@ -1,51 +0,0 @@
<article>
<h2>Guide to Photographing Mushrooms for Identification</h2>
<i>25 August, 2020</i>
<h3>Introduction</h3>
<p>The blessing and curse of becoming known for your interest in a particular topic is the increasing number of questions you receive. As a keen mycophile, I am frequently sent photos of mushrooms and asked for assistance in identifying them. More often than not, I receive a single photo taken from directly above the mushroom, without any mention of contextual data such as where the photo was taken and during which season. This derth of data makes it very difficult to positively identify the mushroom to genus or species level. With that in mind, I thought it might be useful to write a short guide on photography for the purposes of mushroom identification.</p>
<p class="bordered"><i>When first beginning your journey into mushroom identification, it may be tempting to take a field guide with you to assist with identifications - I know this is how I started off. However, I've found that I prefer taking photos while in the field and doing the identification work and research at home. This allows me to focus on observation while in the field and avoid the frustration of paging through often-inadequate field guides. Find what works for you.</i></p>
<h3>Capturing Morphological Traits</h3>
<p>Mushrooms are often best identified by observing and listing their morphological traits. These may include the shape of the cap - both from above and in profile, the structure and colour of the hymenium, the colouration of the stem, the structure of the ring (if present) etc. Species within a genus often look identical at a glance and may require careful delineation based on a single characteristic. As such, it's very important to take clear photographs which collectively capture all of these characteristics (or the lack thereof). A minimum of three photos should do the trick:</p>
<p><b>Top-view</b>: captures the shape, colour and texture of the mushroom as seen from above.</p>
<figure>
<img src="/static/fungi/photo_guide/top_view.jpg" style="width: 100%;" alt="Large brown and white mushroom growing from a birch log on the forest floor. A black-gloved hand with fingers spread is next to the mushroom. The forest floor is covered with wet leaves and English ivy" />
<figcaption>Here we see a birch polypore mushroom (<i>Fomitopsis betulina</i>) from above, including a humyn hand for scale. As a bonus, we can also see the substrate from which the fungus is fruiting (a birch tree on the forest floor).</figcaption>
</figure>
<p><b>Side-view</b>: captures the profile of the cap, the cap margin and the shape and colour of the stem (including patterns and any bruising which might be present).</p>
<figure>
<img src="/static/fungi/photo_guide/side_view.jpg" style="width: 100%;" alt="Little brown mushroom (LBM) with a green clover attached to the base, as seen from the side on a white background" />
<figcaption>The profile of a single mushroom from the Panaeolus genus.</figcaption>
</figure>
<p><b>Bottom-view</b>: captures the colour and structure of the hymenium (gills, pores or teeth), as well as the way in which the cap is attached to the stem (if present).</p>
<figure>
<img src="/static/fungi/photo_guide/bottom_view.jpg" style="width: 100%;" alt="Mushroom with white gills and a beige stem" />
<figcaption>The gills of a mushroom I've yet to identify, including the top part of the stem.</figcaption>
</figure>
<p>Your identification process will be further aided by taking the extra steps to capture two more photos:</p>
<p><b>Developmental diversity</b>: captures several examples of the mushroom at various phases of development, including a mature mushroom and primorida. Mushrooms can change colour and shape with age, and may lose key identification features - hence the utility of being able to identify using several phases of development.</p>
<figure>
<img src="/static/fungi/photo_guide/development.jpg" style="width: 100%;" alt="Tetraptych showing four phases in the development of coprinoid mushrooms amongst mulch; from primordium to mature fruitbody" />
<figcaption>Four phases in the development of a coprinoid mushroom.</figcaption>
</figure>
<p><b>Spore-print</b>: captures the colour of the spores (an important characteristic with which to narrow your search). You will probably have to take a mushroom cap home / back to your campsite to create the sporeprint (takes 12 - 24 hours).</p>
<figure>
<img src="/static/fungi/photo_guide/spore_print.jpg" style="width: 100%;" alt="Black sporeprint on white, ruled paper" />
<figcaption>Black spores from a mushroom in the Panaeolus genus.</figcaption>
</figure>
<p class="bordered"><i>Bear in mind that you don't need fancy equipment to photograph mushrooms for the purpose of identification. I've been using the same simple Sony digital point-and-shoot since 2011. Also, don't be afraid to get close-up to your subject (the mushroom). The details often prove to be very important!</i></p>
<h3>Capturing Ecological Context</h3>
<p>In addition to photos of the mushroom itself, it can be incredibly helpful to collect data concerning the context in which the mushroom is growing. The key considerations in this regard are the substrate and habitat: What is the mushroom growing on? Where is it growing? And what is growing or living around it? Having photos of these contextual factors can make a big difference when identifying a mushroom or genus or species-level. A minimum of two photos will suffice:</p>
<p><b>Substrate-attachment</b>: captures the substrate on which the mushroom is growing. Try to observe beyond the obvious: if it's growing from the ground, is it growing on mulch, dung or from beneath the soil?</p>
<figure>
<img src="/static/fungi/photo_guide/substrate.jpg" style="width: 100%;" alt="Cluster of mushrooms with beige-orange caps and brown stems, growing on a wet, decomposing log in a forest" />
<figcaption>A cluster of mushrooms growing on a wet, decomposing log.</figcaption>
</figure>
<p><b>Habitat</b>: captures the environmental conditions and some of the species which may be copresent with the mushroom.</p>
<figure>
<img src="/static/fungi/photo_guide/habitat.jpg" style="width: 100%;" alt="Birch forest with grass covering the forest floor" />
<figcaption>A grassland birch forest.</figcaption>
</figure>
<h3>Conclusion</h3>
<p>There you have it, with 5 - 7 photos you can capture a great deal of data about a given species. Whether you're asking someone for help with identification or working through the process yourself, having these morphological and ecological data to draw on will enrich your learning experience and enhance your chances of making a successful identification. You may even notice things in the photos which you missed while in the field, for example, a beetle crawling amongst the gills (what ecological relationship might it have with the fungus?). I hope you've found this guide helpful and that it facilitates many fun identification forays in your near-future!</p>
</article>
<hr>

View File

@ -1,31 +0,0 @@
<article>
<h2>Mycology Literature Reading List</h2>
<p>A list of the academic journal articles and textbook chapters I've read, ordered by year. Any entries marked with a * have been read and discussed as part of the Hyphal Fusion Reading Group.</p>
<h3>2022</h3>
<ol>
<li>Defossez E, Selosse MA, Dubois MP, <i>et al.</i> (2009). Ant-plants and fungi: a new threeway symbiosis. <i>New Phytologist</i> <b>182</b>: 942949.</li>
<li>Mueller U & Gerardo N (2002). Fungus-farming insects: Multiple origins and diverse evoluntionary histories. <i>PNAS</i> <b>99</b>(24): 15247-15249.</li>
<li>Toki W, Tanahashi M, Togashi K & Fukatsu T (2012). Fungal Farming in a Non-Social Beetle. <i>PLoS ONE</i> <b>7</b>(7): e41893.</li>
<li>Li H, Sosa-Calvo J, Horn HA, <i>et al.</i> (2018). Convergent evolution of complex structures for ant-bacterial defensive symbiosis in fungus-farming ants. <i>PNAS</i> <b>115</b>(42): 10720-10725.</li>
</ol>
<h3>2021</h3>
<ol>
<li>Hiscox J, O'Leary J, Boddy L (2018). Fungus wars: basidiomycete battles in wood decay. <i>Studies in Mycology</i> <b>89</b>: 117124. *</li>
<li>Crowther TW, Boddy L, Maynard DS (2018). The use of artificial media in fungal ecology. <i>Fungal Ecology</i> <b>32</b>: 8791.</li>
<li>Parfitt D, Hunt J, Dockrell D, <i>et al.</i> (2010). Do all trees carry the seeds of their own destruction? PCR reveals numerous wood decay fungi latently present in sapwood of a wide range of angiosperm trees. <i>Fungal Ecology</i>, <b>3</b>: 338346.</li>
<li>Boddy L, Crockatt ME, Ainsworth AM (2011). Ecology of Hericium cirrhatum, H. coralloides and H. erinaceus in the UK. <i>Fungal Ecology</i>, <b>4</b>(2): 163173.</li>
<li>Heaton L, Obara B, Grau V, <i>et al.</i> (2012). Analysis of fungal networks. <i>Fungal Biology Reviews</i>, <b>26</b>(1): 12-29.</i></li>
<li>Mueller U, Kardish M, Ishak H, <i>et al.</i> (2018). Phylogenetic patterns of antfungus associations indicate that farming strategies, not only a superior fungal cultivar, explain the ecological success of leafcutter ants. <i>Molecular Ecology</i>, <b>27</b>(10): 2414-2434.</li>
<li>Yang D, Liang J, Wang Y, <i>et al.</i> (2016). Tea waste: an effective and economic substrate for oyster mushroom cultivation. <i>Journal of the Science of Food and Agriculture</i>, <b>96</b>(2), 680-684.</li>
<li>Richter DL, Dixon TG, Smith JK (2016). Revival of saprotrophic and mycorrhizal basidiomycete cultures after 30 years in cold storage in sterile water. <i>Canadian Journal of Microbiology</i>, <b>62</b>(11), 932-937.</li>
<li>Schwartz MW, Hoeksema JD, Gehring CA, <i>et al.</i> (2006). The promise and the potential consequences of the global transport of mycorrhizal fungal inoculum. <i>Ecology Letters</i>, <b>9</b>(5), 501-515.</li>
<li>Kües U & Liu Y (2000). Fruiting body production in basidiomycetes. <i>Applied Microbiology and Biotechnology</i>, <b>54</b>(2), 141-152.</li>
<li>Jusino MA, Lindner DL, Banik MT, <i>et al.</i> (2016). Experimental evidence of a symbiosis between red-cockaded woodpeckers and fungi. <i>Proceedings of the Royal Society B: Biological Sciences</i>, <b>283</b>(1827).
<li>Garibay-Orijel R, Ramírez-Terrazo A & Ordaz-Velázquez M. (2012). Women care about local knowledge, experiences from ethnomycology. <i>Journal of Ethnobiology and Ethnomedicine</i>, <b>8</b>(1), 1-13.</li>
<li>Raudabaugh DB, Matheny PB, Hughes KW, <i>et al.</i> (2020). Where are they hiding? Testing the body snatchers hypothesis in pyrophilous fungi. <i>Fungal Ecology</i>, <b>43</b>, 100870.</li>
<li>Ingham CJ, Kalisman O, Finkelshtein A, Ben-Jacob E (2011). Mutually facilitated dispersal between the nonmotile fungus Aspergillus fumigatus and the swarming bacterium Paenibacillus vortex. <i>Proceedings of the National Academy of Sciences</i>, <b>108</b>(49):19731-6.</li>
<li>McMullan-Fisher SJ, May TW, Robinson RM, <i>et al.</i> (2011). Fungi and fire in Australian ecosystems: a review of current knowledge, management implications and future directions. <i>Australian Journal of Botany</i>. <b>59</b>(1): 70-90.</li>
<li>Buhk C, Meyn A, Jentsch A. (2007). The challenge of plant regeneration after fire in the Mediterranean Basin: scientific gaps in our knowledge on plant strategies and evolution of traits. <i>Plant Ecology</i>. <b>192</b>(1):1-9.</li>
</ol>
</article>
<hr>

View File

@ -1,10 +1,13 @@
<img src="/static/glyph.svg" style="width: 175px;" /> {% extends "nav" %}
<p>Welcome to the personal website of glyph: a mycelial technologist coding and cultivating a decentralized, multispecies future. On my site you will find art, musings and projects relating to carbon-based and silicon-based technologies.</p> {% block content %}
<p>[ sowing seeds of symbiosis | weaving webs of wu wei ]</p> <img src="glyph.svg" style="width: 175px;" />
<p>Welcome to the personal website of glyph.</p>
<h2>Contact Information</h2> <h2>Contact Information</h2>
<ul style="padding: 0;"> <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">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">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> <li class="list-item" style="word-wrap: break-word;" title="glyph's Scuttlebutt profile">Scuttlebutt: @HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519</li>
</ul> </ul>
<hr> <hr>
{%- endblock %}

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>

View File

@ -1,46 +0,0 @@
<article>
<h2>Japanese | 日本語</h2>
<i>27 November, 2021</i>
<p>I've been learning Japanese on-and-off for approximately three years. While I've had a lifelong fascination with Japan, my desire to learn the language really blossomed in the wake of my travels in South America. Having felt the frustration of being unable to communicate with the wonderful people I met along the way, I decided I simply couldn't allow this to happen on my future trip(s) to Japan. I'm far from fluent (like...<i>farrr</i>) but I am making good progress.</p>
<p>Here I share some of the resources and approaches I've found useful for self-study.</p>
<h3>Approach</h3>
<p>I began by learning hiragana and katakana using Memrise. These days I stay sharp with RealKana and practice handwriting with downloaded sheets (important for learning the stroke order of each kana).</p>
<p>My approach focuses heavily on input, and especially comprehensible input, so I spend a lot of time doing passive and active listening. Look up Stephen Krashen's work on language acquisition if you want to know more about input-driven approaches.</p>
<p>I've only just really started to learn kanji (using WaniKani). I started reading manga a few months ago and I find it offers a great way to reinforce learning of kana, kanji and vocabulary. It's a thrill when I recognise kanji I've just learned. All the manga I'm currently reading include furigana alongside the kanji.</p>
<p>I'm nearing the point where I'd like to start taking private lessons to practice speaking. For now, my only output comes in the form of shadowing (repeating words or sentences after I hear them) and chatting to myself.</p>
<h3>Resources</h3>
<p>Hiragana and Katakana</p>
<ul>
<li><a href="https://files.tofugu.com/articles/japanese/2014-06-30-learn-hiragana/hiragana-chart.jpg">Hiragana chart</a> from <a href="https://www.tofugu.com">Tofugu</a></li>
<li><a href="http://japanese-lesson.com/resources/pdf/characters/hiragana_writing_practice_sheets.pdf">Hiragana handwriting practice sheet</a> from <a href="http://japanese-lesson.com">Japanese-Lesson.com</a></li>
<li><a href="https://files.tofugu.com/articles/japanese/2014-09-03-learn-katakana/katakana-chart.jpg">Katakana chart</a> from <a href="https://www.tofugu.com">Tofugu</a></li>
<li><a href="http://japanese-lesson.com/resources/pdf/katakana_writing_practice_sheets.pdf">Katakana handwriting practice sheet</a> from <a href="http://japanese-lesson.com">Japanese-Lesson.com</a></li>
<li><a href="https://www.memrise.com/">Memrise</a> - basic hiragana and katakana courses with SRS (sign-up required)</li>
<li><a href="https://realkana.com/">Real Kana</a> - flash card study website / application (no sign-up required)</li>
</ul>
<p>Kanji</p>
<ul>
<li><a href="https://www.wanikani.com/">WaniKani</a> - kanji and vocabulary application with SRS and mnemonics (sign-up required)</a></li>
</ul>
<p>Radio</p>
<ul>
<li><a href="http://fmkishiwada.com/simul/">Radio Kishiwada (ラヂオきしわだ)</a> - based in Osaka; featuring community news, talk and entertainment</a></li>
</ul>
<p>Language Channels / Podcasts</p>
<ul>
<li><a href="https://cijapanese.com/">Comprehensible Japanese</a> - short videos with drawing by Yuki</a></li>
<li><a href="https://anchor.fm/sayurisaying">Sayuri Saying Everyday-Japanese Podcast</a> - casual (non-scripted) conversations (also on <a href="https://www.youtube.com/c/SayuriSaying">YouTube</a>)</a></li>
<li><a href="https://www.youtube.com/c/Onomappu">Onomappu</a> - short videos teaching Japanese onomatopoeia and other words / phrases</li>
<li><a href="https://www.youtube.com/c/JapanesewithKen">Japanese with Ken</a> - casual (non-scripted) conversations</li>
<li><a href="https://www.youtube.com/channel/UCcCeJ3pQYFgvfVuMxVRWhoA">もしもしゆうすけ</a> - walking monologues and casual (non-scripted) conversations</li>
<li><a href="https://www.youtube.com/c/JapaneseAmmowithMisa">Japanese Ammo with Misa</a> - very detailed grammar and vocabulary lessons</li>
</ul>
<p>Special Interest Channels</p>
<ul>
<li><a href="https://www.youtube.com/c/bluelugbikeshop">bluelug</a> - bike shop in Tokyo; videos include bike builds, trick tips, bike checks and casual conversations about bicycles</a></li>
<li><a href="https://www.youtube.com/user/asuhenotobiraAthome">明日への扉 by アットホーム</a> - short documentaries about Japanese crafts (pottery, bamboo, knives etc.)</a></li>
<li><a href="https://www.youtube.com/channel/UC7E4-AxhHeyxKXU_-LOFlkA">Japanese coffee culturelife and coffee</a> - product reviews and coffee geekery</a></li>
<li><a href="https://www.youtube.com/c/koromonokokoro">koromonokokoro</a> - van adventures with Koromo and her dog Lugh</a></li>
</ul>
</article>
<hr>

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

@ -1,76 +0,0 @@
<h2>Lists</h2>
<h3>Books</h3>
<p>Currently Reading</p>
<ul>
<li><i>Entangled Life</i> - Merlin Sheldrake</li>
</ul>
<p>Previously Read</p>
<ul>
<li><i>The Mushroom at the End of the World</i> - Anna Tsing</li>
<li><i>Caliban's War</i> - James S. A. Corey</li>
<li><i>Leviathan Wakes</i> - James S. A. Corey</li>
<li><i>Never Let Me Go</i> - Kazuo Ishiguro</li>
<li><i>How to be Good</i> - Nick Hornby</li>
<li><i>Aurora</i> - Kim Stanley Robinson</li>
<li><i>Seveneves</i> - Neal Stephenson</li>
<li><i>Agency</i> - William Gibson</li>
<li><i>A Closed and Common Orbit</i> - Becky Chambers</li>
<li><i>Ready Player One</i> - Ernest Cline</li>
<li><i>Red Moon</i> - Kim Stanley Robinson</li>
<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>Earth Repair</i> - Leila Darwish</li>
</ul>
<h3>Manga (漫画)</h3>
<p>Currently Reading</p>
<ul>
<li><i>よつばと! (Yotsuba&!), Vol. 3</i> - あずまきよひこ (Kiyohiko Azuma)</li>
</ul>
<p>Previously Read</p>
<ul>
<li><i>よつばと! (Yotsuba&!), Vol. 1 - 2</i> - あずまきよひこ (Kiyohiko Azuma)</li>
<li><i>ナルト (Naruto), Vol. 1 - 3</i> - 岸本 斉史 (Masashi Kishimoto)</li>
<li><i>Dragonball, Vol. 1 - 3</i> - 鳥山 明 (Akira Toriyama)</li>
<li><i>日常 (Nichijou), Vol. 1 - 3</i> - あらゐけいいち (Keiichi Arawi)</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>Previously Read</p>
<ul>
<li><i>Seven to Eternity, Vol. 1</i> - Rick Remender, Jerome Opeña and Matt Hollingsworth</li>
<li><i>Extremity, Vol. 1</i> - Daniel Warren Johnson and Mike Spicer</li>
<li><i>Descender, Vol. 1</i> - Jeff Lemire and Dustin Nguyen</li>
<li><i>Invisible Kingdom, Vol. 1</i> - G. Willow Wilson and Christian Ward</li>
<li><i>Isola, Vol. 1</i> - Brenden Fletcher and Karl Kerschl</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://blog.hummingcrow.co/" title="Hummingcrow & Co. newsletter"><i>Hummingcrow & Co.</i></a> - Seán and Kate</li>
<li><a href="https://cscottmills.com/polylith/" title="Polylith newsletter"><i>Polylith</i></a> - C.S.Mills</li>
</ul>
<h3>Podcasts</h3>
<p>Currently Listening</p>
<ul>
<li><a href="https://anchor.fm/sayurisaying" title="Everyday-Japanese Podcast"><i>Sayuri Saying Everyday-Japanese Podcast</i></a> - Sayuri</li>
<li><a href="https://www.indefenseofplants.com/podcast" title="In Defense of Plants podcast"><i>In Defense of Plants</i></a> - Matt</li>
</ul>
<p>Previously Listened</p>
<ul>
<li><a href="https://www.embedded.fm/" title="Embedded FM"><i>Embedded FM</i></a> - Elecia White and Chris White</li>
</ul>
<hr>

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

@ -1,7 +0,0 @@
<article>
<h2>Meditation</h2>
<img src="/static/meditation/fire_poi.jpg" style="width: 500px; max-width: 90%;" alt="Black and white, high-contrast photo of a young man spinning fire poi. His expression is calm and void-like." title="Fire poi meditation" />
<p>Flow arts, and poi in particular, was the practice which first introduced me to the transformative capacity of movement and meditation. I began spinning in 2011 and practiced intensely for several years, eventually transitioning into club juggling. I still pick up my poi from time to time, but far less frequently than in years gone by. Flow arts help to pull me out of my head, down into my body, and out into community.</p>
<p>My current meditation practice includes the <i>Eight Pieces of Silk Brocade</i> qigong routine, which I move through each morning after waking, as well as semi-regular <i>suizen</i> (shakuhachi) and club juggling. My mycelial cultivation efforts form an interspecies meditation of sorts; observing and interacting with the hyphal pulses as we move together through spacetime.</p>
</article>
<hr>

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

@ -1,9 +1,11 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>Aloe There</h2> <h2>Aloe There</h2>
<i>6 June, 2020</i> <i>6 June, 2020</i>
<figure> <figure>
<img src="/static/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%;" /> <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> <figcaption>Sunshine in the winter time</figcaption>
</figure> </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> <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"> <blockquote cite="https://en.wikipedia.org/wiki/Sunbird">
@ -12,9 +14,10 @@
</blockquote> </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> <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> <figure>
<img src="/static/plants/tree_aloe.jpg" style="width: 100%;" /> <img src="/plants/tree_aloe.jpg" style="width: 100%;" />
<figcaption>Majestic tree aloe amongst the succulents.</figcaption> <figcaption>Majestic tree aloe amongst the succulents</figcaption>
</figure> </figure>
</article> </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> <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> <hr>
{%- endblock %}

View File

@ -1,9 +1,11 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>I Have Been Invited Into a Dance by a Bush with Purple Berries</h2> <h2>I Have Been Invited Into a Dance by a Bush with Purple Berries</h2>
<i>20 December, 2017</i> <i>20 December, 2017</i>
<figure> <figure>
<img src="/static/plants/blueberries.jpeg" style="width: 100%;" /> <img src="/plants/blueberries.jpeg" style="width: 100%;" />
<figcaption>Hand-picked blueberry snacks are where its at.</figcaption> <figcaption>Hand-picked blueberry snacks are where its at</figcaption>
</figure> </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>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>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>
@ -11,3 +13,4 @@
<p>On a somewhat related note: Im making friends with The Jinj, a neighbourhood cat of the orange variety.</p> <p>On a somewhat related note: Im making friends with The Jinj, a neighbourhood cat of the orange variety.</p>
</article> </article>
<hr> <hr>
{%- endblock %}

View File

@ -1,19 +0,0 @@
<article>
<h2>Botanical Deceptions</h2>
<i>15 May, 2020</i>
<figure>
<img src="/static/plants/ceropegia_sandersonii.jpeg" alt="An unusual flower which looks like an umbrella with a hollow, tapering stem. The top is white with green speckled petals and frilly egdes. A twisting, dark green vine is blurry in the background." style="width: 100%;" />
<figcaption><i>Ceropegia sandersonii</i> flower. Photo credit: <a href="https://commons.wikimedia.org/wiki/User:Wildfeuer">Wildfeuer</a>. Shared under a Creative Commons Attribution 2.5 Generic (CC BY 2.5) license.</figcaption>
</figure>
<p>Ive been on a steady one-a-day listening spree of In Defense of Plants podcast episodes. Today I listened to <a href="https://www.indefenseofplants.com/podcast/2019/6/9/ep-216-dying-bees-wasp-venom-and-other-strange-floral-scents">Episode 216: Dying Bees, Wasp Venom, and other Strange Floral Scents</a>, featuring an interview with <a href="https://pollinationresearch.wordpress.com/dr-annemarie-heiduk/">Dr Annemarie Heiduk</a>. If you enjoy geeking out about plants, insects, chemistry or ecology, I highly recommend taking a listen!</p>
<p>Heres a brief summary of the part which blew my mind. There are loads more juicy details in the podcast so Im confident that Im not spoiling it for you by sharing this.</p>
<p>Theres a plant (<i>Ceropegia sandersonii</i>) that releases chemical compounds which mimic those released by honey bees when they are wounded (e.g. by spiders). This suite of compounds attracts <i>Desmometopa</i> flies which specialise in stealing food from spiders (they consume the body fluids of the injured bees). The fly comes to the flower expecting a meal, becomes trapped and covered in pollen, and is released a day later when the flower withers - allowing it to visit more flowers.</p>
<p>Hows that for a pollination syndrome?! Isnt that just ridiculous! Gettin me all fired up on science over here!</p>
<p>More info can be found on the <a href="https://en.wikipedia.org/wiki/Ceropegia_sandersonii">Wikipedia page for Ceropegia sandersonii</a> and in this article: <a href="http://www.the-scientist.com/?articles.view/articleNo/47214/title/To-Attract-Pollinators--Flower-Mimics-Wounded-Bee/#post143971">To Attract Pollinators, Flower Mimics Wounded Bee.</a></p>
<p>A friend of mine has a gorgeous vine growing as a potted plant at her house. Only while listening to this episode did I realise its a member of the Ceropegia! Now Im stoked to identify it to species level and ask her ever-so-sweetly if I might take a cutting (or seeds). The one she has looks very much like this <i>C. linearis sub. woodii</i>:</p>
<figure>
<img src="/static/plants/ceropegia_linearis.jpeg" alt="A grayish-pink vine with two heart-shaped, gray-green leaves and an unusual, hollow flower with furry black structures at the tip." style="width: 100%;" />
<figcaption><i>Ceropegia linearis</i> subspecies woodii flower. Photo credit: <a href="https://en.wikipedia.org/wiki/en:User:MidgleyDJ">Dr. David Midgley</a>. Shared under a Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5) license.</figcaption>
</figure>
</article>
<hr>

View File

@ -1,11 +0,0 @@
<h2>Plants</h2>
<h3>Articles</h3>
<div class="card">
<ul>
<li><a href="/plants/aloe-there.html">Aloe There</a> - <i>6 June, 2020</i></li>
<li><a href="/plants/botanical-deceptions.html">Botanical Deceptions</a> - <i>15 May, 2020</i></li>
<li><a href="/plants/potato-tech.html">Potato Tech</a> - <i>31 December, 2017</i></li>
<li><a href="/plants/blueberry-dance.html">I Have Been Invited Into a Dance by a Bush with Purple Berries</a> - <i>20 December, 2017</i></li>
</ul>
</div>
<hr>

View File

@ -1,15 +1,18 @@
{% extends "nav" %}
{% block content %}
<article> <article>
<h2>Potato Tech</h2> <h2>Potato Tech</h2>
<i>31 December, 2017</i> <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>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> <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> <figure>
<img src="/static/plants/potato_battery.jpeg" style="width: 100%;" /> <img src="/plants/potato_battery.jpeg" style="width: 100%;" />
<figcaption>Warning: battery is reaching critical levels.</figcaption> <figcaption>Warning: battery is reaching critical levels</figcaption>
</figure> </figure>
<figure> <figure>
<img src="/static/plants/potato_sprout.jpeg" style="width: 100%;" /> <img src="/plants/potato_sprout.jpeg" style="width: 100%;" />
<figcaption>The courageous potato perseveres in search of the light.</figcaption> <figcaption>The courageous potato perseveres in search of the light</figcaption>
</figure> </figure>
</article> </article>
<hr> <hr>
{%- endblock %}

View File

@ -1,19 +0,0 @@
<h2>Projects</h2>
<p>I'm a tortoise and I shuffle between projects in eccentric orbits; sometimes I complete one.</p>
<h3>Active</h3>
<ul>
<li><a href="https://opencollective.com/peachcloud">PeachCloud</a>: solarpunk social hardware with Scuttlebutt</li>
<li><a href="https://hyphalfusion.network">Hyphal Fusion Network</a>: a forum for distributed mycology research</li>
</ul>
<h3>On-hold</h3>
<ul>
<li><a href="https://git.sr.ht/~glyph/myka">myka</a>: culture library & cultivation log for tracking the expansion of mycelia</li>
<li><a href="https://git.sr.ht/~glyph/spore">spore</a>: a manual for the mycelial arts</li>
<li><a href="https://two.camp.scuttlebutt.nz/">Scuttlecamp 2</a>: gathering of the Butts</li>
</ul>
<h3>Complete</h3>
<ul>
<li><a href="https://github.com/ssb-ngi-pointer">Next Generation Internet (NGI) Pointer</a>: Scuttlebutt protocol upgrades</li>
<li>An RSS generator for mycelial.technology (<a href="https://git.sr.ht/~glyph/website/tree/master/src/bin/generate_rss.rs" title="Rust source code for a custom RSS generator">source</a>)</li>
</ul>
<hr>

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

@ -1,13 +0,0 @@
<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>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/mycelial-technology" title="Mycelial Technology Teespring">Mycelial Technology t-shirt</a></li>
</ul>
<h2>Supporting</h2>
<p>These are the projects and friends I currently contribute to:</p>
<ul>
<li>Yuki Kimura - $5 per month for <a href="https://cijapanese.com" title="Comprehensive Japanese">Comprehensive Japanese</a></li>
<li>€10 per month for <a href="https://www.patreon.com/moderatorium" title="Moderator">Moderator</a></li>
</ul>
<hr>

View File

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