Compare commits
No commits in common. "gh-pages" and "main" have entirely different histories.
35
.drone.yml
Normal file
35
.drone.yml
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
kind: pipeline
|
||||
name: publish pipeline
|
||||
steps:
|
||||
- name: publish jekyll container
|
||||
image: plugins/docker
|
||||
settings: &docker-build-settings
|
||||
username: 3wordchant
|
||||
password:
|
||||
from_secret: git_autonomic_zone_token_3wc
|
||||
repo: git.autonomic.zone/autonomic-cooperative/kcl-site
|
||||
auto_tag: true
|
||||
registry: git.autonomic.zone
|
||||
when:
|
||||
branch:
|
||||
- main
|
||||
event:
|
||||
exclude:
|
||||
- custom
|
||||
|
||||
- name: deploy-site
|
||||
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
|
||||
settings:
|
||||
stack: kcl_smallclients_autonomic_zone
|
||||
host: smallclients.autonomic.zone
|
||||
compose: docker-compose.yml
|
||||
deploy_key:
|
||||
from_secret: drone_ssh_smallclients.autonomic.zone
|
||||
environment:
|
||||
DOMAIN: kcl.smallclients.autonomic.zone
|
||||
STACK_NAME: kcl_smallclients_autonomic_zone
|
||||
NGINX_CONF_VERSION: v2
|
||||
REPOSITORY: "autonomic-cooperative/kcl-site"
|
||||
depends_on:
|
||||
- publish jekyll container
|
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
_site
|
||||
.sass-cache
|
||||
.jekyll-cache
|
||||
.jekyll-metadata
|
||||
vendor
|
||||
.DS_Store
|
||||
notes_graph.json
|
32
404.html
32
404.html
@ -1,35 +1,11 @@
|
||||
<!doctype html>
|
||||
<html lang="en"><head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Digital Garden</title>
|
||||
<meta name="description" content="A digital garden or public notebook for The Bentway’s Digital and/as Public Space Micro-Residency.">
|
||||
<link rel="stylesheet" href="/assets/css/style.css?1624890472106332125"><link type="application/atom+xml" rel="alternate" href="https://digitalgarden.hypha.coop/feed.xml" /></head><body class="foreground-text sans-serif bg-background"><header id="header" class="f5 pa3 flex bb b--foreground-text bg-background justify-between sticky top-0 w-100 items-baseline z-3"><div class="flex items-baseline">
|
||||
<svg class="w1 mr2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 243.11 219.53"><path fill="currentColor" d="M243.11 64.85q0 11.66-1.12 15.72-.42 1.43-6.31 14.43-6.18-.14-12.5-.42-8.15-.42-11.79-2.39-2.94-1.55-9.82-9.54a129 129 0 0 1-8.71-11.23q-3.23-6.75-10.1-20.22-3.66-6.73-13.9-21a95.7 95.7 0 0 0-15.44-1.26q-4.77 0-13.76 11.79a99.49 99.49 0 0 0-10.8 16.56Q127 60.92 123.24 71q-4.35 11.35-4.35 13.33v135.2h-7.58V75.8a44.51 44.51 0 0 0-1.82-11.09q-2.11-7.57-4.64-10-4.62-4.49-18.95-4.49-2.39 0-7.79 5.62t-6.52 8.42q-4.64 11-6.18 34-1.55 23.58-5.61 34.25-1.12 2.94-8.71 11.37a107.26 107.26 0 0 1-10.52 10.52q-2 1.69-18.67 10.53-8.43-14-16.71-28.21Q0 125.35 0 103.73q0-15.58 2.39-24.42 7.16-26.67 15.16-36.08 6.16-7.29 22.88-14A64.23 64.23 0 0 1 64.57 24 94.86 94.86 0 0 1 79 25.69q10.38 1.81 14 3.51 6.31 2.81 14 12.7t9.4 16.77q.42 1.69 1.13 6.88 1.26-5.47 4.21-16.14 2.23-4.92 6.74-14.88A117.39 117.39 0 0 1 135 20.35q7.31-10.67 27.23-16.84A77.2 77.2 0 0 1 185.14 0q13.34 0 19.94 1.82 25.39 7.17 34.81 35 3.23 9.64 3.22 28.03zm-139-16.42q-4.22-4.77-14.32-12.08-8.79-4.07-25.22-4.07-10 0-21.9 4.64T23.58 48.29q-2 1.82-8.77 19.58T8 88.71q0 2.54-.14 7.72t-.14 7.72q0 15.72 2.11 23.44a51.07 51.07 0 0 0 6.87 13.9q8.15 12.36 8.57 13 3.64-1.81 10.52-6.17 2.53-2 9.27-9.48t7.58-9.61q4.48-10.95 5.89-34.67t5.9-34.67q2.1-5.34 8.14-10.25L83 41.55zm131.42 19.09V55.73q0-10-2.1-16.15A49.06 49.06 0 0 0 221.5 20.7a40.61 40.61 0 0 0-18.67-11.16q-7.16-1.81-21.62-1.82-7.44 0-22 5.47Q144 19 140 24.14q-1.41 1.83-5.62 13.48 5.61-4.92 16.7-14.74h22.18q4.92 6.32 13.9 19.65 4.06 9 13.47 26.25 8.56 12.91 14.18 15.72a26.21 26.21 0 0 0 11.6 2.5l4.91-.14a47.55 47.55 0 0 0 4.21-19.34z"/></svg>
|
||||
<a class="no-underline f4 foreground-text anthony mr3" rel="author" href="/">Digital Garden</a>
|
||||
---
|
||||
permalink: /404.html
|
||||
layout: default
|
||||
---
|
||||
|
||||
<div id="gardenConditions" class="br-pill code f7 ba pv2 ph3 dn dn-m"></div>
|
||||
|
||||
</div><nav class="f7 code flex"><a class="no-underline foreground-text underline-hover" href="/colophon/">Colophon</a><a class="no-underline foreground-text ml3 underline-hover" href="/feed.xml">RSS Feed</a>
|
||||
<a class="no-underline foreground-text ml3 underline-hover" href="https://github.com/hyphacoop/digitalgarden">View Garden Source</a>
|
||||
</nav></header><main class="links-foreground-text" aria-label="Content">
|
||||
<div class="container tc">
|
||||
<h1 class="f-6 anthony normal">404</h1>
|
||||
|
||||
<p class="f1 normal anthony">Page not found :(</p>
|
||||
<p>The requested page could not be found.</p>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
<div class="hide-child foreground-text links-foreground-text">
|
||||
<div id='tooltip-wrapper' class="bg-white br4 shadow-solid-accent lh-copy dn o-0 pa3 w6 f6 absolute z-2 child">
|
||||
<div id='tooltip-content' class="relative overflow-hidden note-contents">
|
||||
</div>
|
||||
<div id="tooltip-source" class="f7 light-silver"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/assets/js/d3.min.js"></script>
|
||||
<script src="/assets/js/scripts.js?1624890472106332125"></script>
|
||||
</body>
|
||||
</html>
|
35
Dockerfile
Normal file
35
Dockerfile
Normal file
@ -0,0 +1,35 @@
|
||||
# Stage 1: Build the Jekyll site
|
||||
FROM ruby:3.0.0 AS builder
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install the specific version of Bundler
|
||||
RUN gem install bundler:2.2.13
|
||||
|
||||
WORKDIR /srv/jekyll
|
||||
|
||||
# Copy Gemfile and Gemfile.lock and install dependencies
|
||||
COPY Gemfile Gemfile.lock ./
|
||||
RUN bundle _2.2.13_ install
|
||||
|
||||
# Copy the rest of the application files
|
||||
COPY . .
|
||||
|
||||
# Build the Jekyll site
|
||||
RUN jekyll build -d /dist
|
||||
|
||||
# Stage 2: Serve the Jekyll site using Nginx
|
||||
FROM nginx:1.26.0
|
||||
|
||||
WORKDIR /usr/share/nginx/html
|
||||
|
||||
# Copy the generated site from the builder stage
|
||||
COPY --from=builder /dist .
|
||||
|
||||
# Expose port 80 for the web server
|
||||
EXPOSE 80
|
||||
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
30
Dockerfile.dev
Normal file
30
Dockerfile.dev
Normal file
@ -0,0 +1,30 @@
|
||||
FROM ruby:3.0.0 as jekyll
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# used in the jekyll-server image, which is FROM this image
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
|
||||
RUN gem update --system && gem install jekyll && gem cleanup
|
||||
|
||||
EXPOSE 4000
|
||||
|
||||
WORKDIR /site
|
||||
|
||||
ENTRYPOINT [ "jekyll" ]
|
||||
|
||||
CMD [ "--help" ]
|
||||
|
||||
# build from the image we just built with different metadata
|
||||
FROM jekyll as jekyll-serve
|
||||
|
||||
COPY --from=jekyll /usr/local/bin/docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
# on every container start, check if Gemfile exists and warn if it's missing
|
||||
ENTRYPOINT [ "docker-entrypoint.sh" ]
|
||||
|
||||
CMD [ "bundle", "exec", "jekyll", "serve", "--force_polling", "-H", "0.0.0.0", "-P", "4000" ]
|
37
Gemfile
Normal file
37
Gemfile
Normal file
@ -0,0 +1,37 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
source 'https://rubygems.org'
|
||||
# Hello! This is where you manage which Jekyll version is used to run.
|
||||
# When you want to use a different version, change it below, save the
|
||||
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
|
||||
#
|
||||
# bundle exec jekyll serve
|
||||
#
|
||||
# This will help ensure the proper Jekyll version is running.
|
||||
# Happy Jekylling!
|
||||
gem 'jekyll', '~> 4.2.0'
|
||||
# This is the default theme for new Jekyll sites. You may change this to anything you like.
|
||||
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
|
||||
# uncomment the line below. To upgrade, run `bundle update github-pages`.
|
||||
# gem "github-pages", group: :jekyll_plugins
|
||||
# If you have any plugins, put them here!
|
||||
group :jekyll_plugins do
|
||||
gem 'jekyll-feed', git: 'https://github.com/hyphacoop/jekyll-feed'
|
||||
gem 'jekyll-last-modified-at', '~> 1.3'
|
||||
end
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library.
|
||||
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
||||
gem 'tzinfo', '~> 1.2'
|
||||
gem 'tzinfo-data'
|
||||
end
|
||||
|
||||
# Performance-booster for watching directories on Windows
|
||||
gem 'wdm', '~> 0.1.1', platforms: %i[mingw x64_mingw mswin]
|
||||
|
||||
gem 'html-proofer', '~> 3.19'
|
||||
|
||||
gem 'rake', '~> 13.0'
|
||||
|
||||
gem 'webrick'
|
122
Gemfile.lock
Normal file
122
Gemfile.lock
Normal file
@ -0,0 +1,122 @@
|
||||
GIT
|
||||
remote: https://github.com/hyphacoop/jekyll-feed
|
||||
revision: a74b0204e2a14ccbc4b1a45ecc4042aad800b201
|
||||
specs:
|
||||
jekyll-feed (0.15.1)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.7.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.1.8)
|
||||
em-websocket (0.5.2)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
ethon (0.14.0)
|
||||
ffi (>= 1.15.0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.15.1)
|
||||
forwardable-extended (2.6.0)
|
||||
html-proofer (3.19.1)
|
||||
addressable (~> 2.3)
|
||||
mercenary (~> 0.3)
|
||||
nokogumbo (~> 2.0)
|
||||
parallel (~> 1.3)
|
||||
rainbow (~> 3.0)
|
||||
typhoeus (~> 1.3)
|
||||
yell (~> 2.0)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (1.8.10)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.2.0)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (~> 2.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.3)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.4.0)
|
||||
pathutil (~> 0.9)
|
||||
rouge (~> 3.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (~> 2.0)
|
||||
jekyll-last-modified-at (1.3.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
posix-spawn (~> 0.3.9)
|
||||
jekyll-sass-converter (2.1.0)
|
||||
sassc (> 2.0.1, < 3.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.3.1)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.5.1)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
mini_portile2 (2.5.2)
|
||||
net-ftp (~> 0.1)
|
||||
net-ftp (0.1.2)
|
||||
net-protocol
|
||||
time
|
||||
net-protocol (0.1.0)
|
||||
nokogiri (1.11.6)
|
||||
mini_portile2 (~> 2.5.0)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.11.6-x86_64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.11.6-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
nokogumbo (2.0.5)
|
||||
nokogiri (~> 1.8, >= 1.8.4)
|
||||
parallel (1.20.1)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
posix-spawn (0.3.15)
|
||||
public_suffix (4.0.6)
|
||||
racc (1.5.2)
|
||||
rainbow (3.0.0)
|
||||
rake (13.0.3)
|
||||
rb-fsevent (0.11.0)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.26.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
terminal-table (2.0.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
time (0.1.0)
|
||||
typhoeus (1.4.0)
|
||||
ethon (>= 0.9.0)
|
||||
unicode-display_width (1.7.0)
|
||||
webrick (1.8.1)
|
||||
yell (2.2.2)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x86_64-darwin-19
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
html-proofer (~> 3.19)
|
||||
jekyll (~> 4.2.0)
|
||||
jekyll-feed!
|
||||
jekyll-last-modified-at (~> 1.3)
|
||||
rake (~> 13.0)
|
||||
tzinfo (~> 1.2)
|
||||
tzinfo-data
|
||||
wdm (~> 0.1.1)
|
||||
webrick
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.13
|
28
README.md
28
README.md
@ -1,11 +1,8 @@
|
||||
# Digital Garden
|
||||
|
||||
[![HTMLProofer](https://github.com/hyphacoop/digitalgarden/actions/workflows/main.yml/badge.svg)](https://github.com/hyphacoop/digitalgarden/actions/workflows/main.yml)
|
||||
[![GitHub Pages Deploy](https://github.com/hyphacoop/digitalgarden/actions/workflows/deploy.yml/badge.svg)](https://github.com/hyphacoop/digitalgarden/actions/workflows/deploy.yml)
|
||||
A digital garden for King's College London's [Centre for Digital Culture](https://www.kcl.ac.uk/research/cdc).
|
||||
|
||||
A public notebook / digital garden for The Bentway’s [Digital and/as Public Space Micro-Residency](https://www.thebentway.ca/stories/the-bentway-announces-eight-micro-residencies-as-part-of-the-digital-and-as-public-space-initiative/).
|
||||
|
||||
[Visit the garden](https://digitalgarden.hypha.coop)
|
||||
Based on [Hypha's digital garden for The Bentway's Digital and/as Public Space Micro-residency](https://digitalgarden.hypha.coop).
|
||||
|
||||
## Adding and connecting notes
|
||||
- [Notes](./_notes) in the Digital Garden are stored in the `./_notes` folder as markdown files (`*.md`) files.
|
||||
@ -18,18 +15,25 @@ A public notebook / digital garden for The Bentway’s [Digital and/as Public Sp
|
||||
- [Tachyons](https://tachyons.io/), a functional CSS library that allows us to quickly grow the garden
|
||||
- [D3.js](https://d3js.org/), a JavaScript library for visualizing data
|
||||
+ Initial knowledge graph implementation from the [Digital garden Jekyll template](https://github.com/maximevaillancourt/digital-garden-jekyll-template)
|
||||
- [GitHub Actions](https://github.com/hyphacoop/digitalgarden/actions) for testing, building, and deploying the site.
|
||||
+ [GitHub Actions for GitHub Pages](https://github.com/peaceiris/actions-gh-pages) is used to deploy the site to the [`gh-pages`](https://github.com/hyphacoop/digitalgarden/tree/gh-pages) branch
|
||||
- [Jekyll Feed plugin](https://github.com/hyphacoop/jekyll-feed), a plugin for Jekyll to generate an RSS feed
|
||||
- [Jekyll serve](https://github.com/BretFisher/jekyll-serve) by Brett Fisher
|
||||
|
||||
## Development
|
||||
1. Clone repository: `git clone git@github.com:hyphacoop/digitalgarden.git`
|
||||
2. Install Bundler gem: `gem install bundler`
|
||||
3. Install dependencies: `bundle install`
|
||||
4. Run locally: `bundle exec jekyll serve` or `rake watch`
|
||||
5. Visit your `localhost` on port `4000`: http://localhost:4000 or http://127.0.0.1:4000
|
||||
### Using docker
|
||||
1. Run `docker compose -f docker-compose.dev.yml up`
|
||||
2. Visit your `localhost` on port `4000`: http://localhost:4000 or http://0.0.0.0:4000
|
||||
|
||||
### Using jekyll
|
||||
1. Clone repository: `git clone ssh://git@git.autonomic.zone:2222/autonomic-cooperative/kcl-digital-humanities-garden.git`
|
||||
2. Install ruby's command line tools with your package manager (e.g. `brew install ruby`)
|
||||
3. Install Bundler gem: `gem install bundler`
|
||||
4. Install dependencies: `bundle install`
|
||||
5. Run locally: `bundle exec jekyll serve` or `rake watch`
|
||||
6. Visit your `localhost` on port `4000`: http://localhost:4000 or http://127.0.0.1:4000
|
||||
|
||||
## License
|
||||
<span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Digital Garden</span> content is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
|
||||
|
||||
All code at <a xmlns:cc="http://creativecommons.org/ns#" href="https://github.com/hyphacoop/digitalgarden/" property="cc:attributionName" rel="cc:attributionURL">github.com/hyphacoop/digitalgarden/</a> is licensed under a <a rel="license" href="https://www.gnu.org/licenses/gpl.html">GNU General Public License v3.0</a>, the text of which is included in the repository [here](https://github.com/hyphacoop/digitalgarden/blob/main/LICENSE).
|
||||
|
||||
## Local docker
|
38
Rakefile
Normal file
38
Rakefile
Normal file
@ -0,0 +1,38 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'html-proofer'
|
||||
|
||||
task default: :check
|
||||
|
||||
desc 'Clean out _site'
|
||||
task :clean do
|
||||
sh 'rm -rf _site'
|
||||
end
|
||||
|
||||
desc 'Preview site'
|
||||
task watch: :clean do
|
||||
sh 'bundle exec jekyll serve --watch'
|
||||
end
|
||||
|
||||
desc 'Build site'
|
||||
task build: :clean do
|
||||
sh 'bundle exec jekyll build'
|
||||
end
|
||||
|
||||
desc 'Run HTMLProofer on _site'
|
||||
task check: :build do
|
||||
options = {
|
||||
check_html: true,
|
||||
allow_hash_href: true,
|
||||
assume_extension: true,
|
||||
http_status_ignore: [403],
|
||||
typhoeus: {
|
||||
headers: {
|
||||
"User-Agent": 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0'
|
||||
},
|
||||
"ssl_verifypeer": false,
|
||||
"ssl_verifyhost": 0
|
||||
}
|
||||
}
|
||||
HTMLProofer.check_directory('./_site', options).run
|
||||
end
|
88
_config.yml
Normal file
88
_config.yml
Normal file
@ -0,0 +1,88 @@
|
||||
# Welcome to Jekyll!
|
||||
#
|
||||
# This config file is meant for settings that affect your whole blog, values
|
||||
# which you are expected to set up once and rarely edit after that. If you find
|
||||
# yourself editing this file very often, consider using Jekyll's data files
|
||||
# feature for the data you need to update frequently.
|
||||
#
|
||||
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
|
||||
#
|
||||
# If you need help with YAML syntax, here are some quick references for you:
|
||||
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
|
||||
# https://learnxinyminutes.com/docs/yaml/
|
||||
#
|
||||
# Site settings
|
||||
# These are used to personalize your new site. If you look in the HTML files,
|
||||
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
|
||||
# You can create any custom variable you would like, and they will be accessible
|
||||
# in the templates via {{ site.myvariable }}.
|
||||
|
||||
title: Digital Garden
|
||||
email: hello@hypha.coop
|
||||
description: >- # this means to ignore newlines until "baseurl:"
|
||||
A digital garden or public notebook for The Bentway’s Digital and/as Public Space Micro-Residency.
|
||||
baseurl: "" # the subpath of your site, e.g. /blog
|
||||
url: "https://digitalgarden.hypha.coop" # the base hostname & protocol for your site, e.g. http://example.com
|
||||
author: Hypha Worker Co-operative
|
||||
|
||||
# Layout
|
||||
excerpt_separator: "<!--more-->"
|
||||
|
||||
# Build settings
|
||||
plugins:
|
||||
- jekyll-feed
|
||||
- jekyll-last-modified-at
|
||||
|
||||
sass:
|
||||
style: compressed
|
||||
|
||||
collections:
|
||||
notes:
|
||||
output: true
|
||||
permalink: /:slug
|
||||
|
||||
feed:
|
||||
path: feed.xml
|
||||
collections:
|
||||
notes:
|
||||
path: "/feed.xml"
|
||||
posts:
|
||||
path: ""
|
||||
|
||||
defaults:
|
||||
- scope:
|
||||
path: "**/*"
|
||||
values:
|
||||
layout: "default"
|
||||
- scope:
|
||||
path: "_notes/**/*.md"
|
||||
values:
|
||||
layout: "note"
|
||||
|
||||
|
||||
permalink: pretty
|
||||
relative_permalinks: false
|
||||
use_html_extension: false
|
||||
|
||||
# Exclude from processing.
|
||||
# The following items will not be processed, by default.
|
||||
# Any item listed under the `exclude:` key here will be automatically added to
|
||||
# the internal "default list".
|
||||
#
|
||||
# Excluded items can be processed by explicitly listing the directories or
|
||||
# their entries' file path in the `include:` list.
|
||||
#
|
||||
exclude:
|
||||
- _includes/notes_graph.json
|
||||
- .sass-cache/
|
||||
- .jekyll-cache/
|
||||
- gemfiles/
|
||||
- Gemfile
|
||||
- Gemfile.lock
|
||||
- node_modules/
|
||||
- vendor/bundle/
|
||||
- vendor/cache/
|
||||
- vendor/gems/
|
||||
- vendor/ruby/
|
||||
- Rakefile
|
10
_includes/head.html
Normal file
10
_includes/head.html
Normal file
@ -0,0 +1,10 @@
|
||||
{%- assign meta_description = page.excerpt | default: site.description | remove: '[[' | remove: ']]' | strip_html | strip | truncate: 200 -%}
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{% if page.title %}{{ page.title }} 🌱 {% endif %}{{ site.title }}</title>
|
||||
<meta name="description" content="{{ meta_description }}">
|
||||
<link rel="stylesheet" href="{{ "/assets/css/style.css" | relative_url }}?{{ site.time | date: '%s%N' }}">
|
||||
{%- feed_meta -%}
|
||||
</head>
|
26
_includes/header.html
Normal file
26
_includes/header.html
Normal file
@ -0,0 +1,26 @@
|
||||
<header id="header" class="f5 pa3 flex bb b--foreground-text bg-background justify-between sticky top-0 w-100 items-baseline z-3">
|
||||
{%- assign default_paths = site.pages | map: "path" -%}
|
||||
{%- assign page_paths = site.header_pages | default: default_paths -%}
|
||||
{%- assign titles_size = site.pages | map: 'title' | join: '' | size -%}
|
||||
|
||||
<div class="flex items-baseline">
|
||||
<svg class="w1 mr2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 243.11 219.53"><path fill="currentColor" d="M243.11 64.85q0 11.66-1.12 15.72-.42 1.43-6.31 14.43-6.18-.14-12.5-.42-8.15-.42-11.79-2.39-2.94-1.55-9.82-9.54a129 129 0 0 1-8.71-11.23q-3.23-6.75-10.1-20.22-3.66-6.73-13.9-21a95.7 95.7 0 0 0-15.44-1.26q-4.77 0-13.76 11.79a99.49 99.49 0 0 0-10.8 16.56Q127 60.92 123.24 71q-4.35 11.35-4.35 13.33v135.2h-7.58V75.8a44.51 44.51 0 0 0-1.82-11.09q-2.11-7.57-4.64-10-4.62-4.49-18.95-4.49-2.39 0-7.79 5.62t-6.52 8.42q-4.64 11-6.18 34-1.55 23.58-5.61 34.25-1.12 2.94-8.71 11.37a107.26 107.26 0 0 1-10.52 10.52q-2 1.69-18.67 10.53-8.43-14-16.71-28.21Q0 125.35 0 103.73q0-15.58 2.39-24.42 7.16-26.67 15.16-36.08 6.16-7.29 22.88-14A64.23 64.23 0 0 1 64.57 24 94.86 94.86 0 0 1 79 25.69q10.38 1.81 14 3.51 6.31 2.81 14 12.7t9.4 16.77q.42 1.69 1.13 6.88 1.26-5.47 4.21-16.14 2.23-4.92 6.74-14.88A117.39 117.39 0 0 1 135 20.35q7.31-10.67 27.23-16.84A77.2 77.2 0 0 1 185.14 0q13.34 0 19.94 1.82 25.39 7.17 34.81 35 3.23 9.64 3.22 28.03zm-139-16.42q-4.22-4.77-14.32-12.08-8.79-4.07-25.22-4.07-10 0-21.9 4.64T23.58 48.29q-2 1.82-8.77 19.58T8 88.71q0 2.54-.14 7.72t-.14 7.72q0 15.72 2.11 23.44a51.07 51.07 0 0 0 6.87 13.9q8.15 12.36 8.57 13 3.64-1.81 10.52-6.17 2.53-2 9.27-9.48t7.58-9.61q4.48-10.95 5.89-34.67t5.9-34.67q2.1-5.34 8.14-10.25L83 41.55zm131.42 19.09V55.73q0-10-2.1-16.15A49.06 49.06 0 0 0 221.5 20.7a40.61 40.61 0 0 0-18.67-11.16q-7.16-1.81-21.62-1.82-7.44 0-22 5.47Q144 19 140 24.14q-1.41 1.83-5.62 13.48 5.61-4.92 16.7-14.74h22.18q4.92 6.32 13.9 19.65 4.06 9 13.47 26.25 8.56 12.91 14.18 15.72a26.21 26.21 0 0 0 11.6 2.5l4.91-.14a47.55 47.55 0 0 0 4.21-19.34z"/></svg>
|
||||
<a class="no-underline f4 foreground-text anthony mr3" rel="author" href="{{ "/" | relative_url }}">{{ site.title | escape }}</a>
|
||||
{% if page.url != "/" %}
|
||||
<div id="gardenConditions" class="br-pill code f7 ba pv2 ph3 dn dn-m"></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{%- if titles_size > 0 -%}
|
||||
<nav class="f7 code flex">
|
||||
{%- for path in page_paths -%}
|
||||
{%- assign my_page = site.pages | where: "path", path | first -%}
|
||||
{%- if my_page.title -%}
|
||||
<a class="no-underline foreground-text underline-hover" href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a>
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
<a class="no-underline foreground-text ml3 underline-hover" href="{{ "/feed.xml" | relative_url }}">RSS Feed</a>
|
||||
<a class="no-underline foreground-text ml3 underline-hover" href="https://github.com/hyphacoop/digitalgarden">View Garden Source</a>
|
||||
</nav>
|
||||
{%- endif -%}
|
||||
</header>
|
7
_includes/link-previews.html
Normal file
7
_includes/link-previews.html
Normal file
@ -0,0 +1,7 @@
|
||||
<div class="hide-child foreground-text links-foreground-text">
|
||||
<div id='tooltip-wrapper' class="bg-white br4 shadow-solid-accent lh-copy dn o-0 pa3 w6 f6 absolute z-2 child">
|
||||
<div id='tooltip-content' class="relative overflow-hidden note-contents">
|
||||
</div>
|
||||
<div id="tooltip-source" class="f7 light-silver"></div>
|
||||
</div>
|
||||
</div>
|
8
_includes/notes_graph.html
Normal file
8
_includes/notes_graph.html
Normal file
@ -0,0 +1,8 @@
|
||||
<div id="graph-wrapper" class="relative vh-100 vh-50-m code f6">
|
||||
<script>
|
||||
window.graphData = {% include notes_graph.json %}
|
||||
</script>
|
||||
<div class="absolute bottom-1 right-1 shadow-solid-accent bg-background br4 pa3 dn-m">
|
||||
<p class="ma0 f7 measure-narrow lh-copy">Here are all the notes in this garden, along with their links, visualized as a graph.</p>
|
||||
</div>
|
||||
</div>
|
13
_layouts/default.html
Normal file
13
_layouts/default.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!doctype html>
|
||||
<html lang="{{ page.lang | default: site.lang | default: "en" }}">
|
||||
{%- include head.html -%}
|
||||
<body class="foreground-text sans-serif bg-background">
|
||||
{%- include header.html -%}
|
||||
<main class="links-foreground-text" aria-label="Content">
|
||||
{{ content }}
|
||||
</main>
|
||||
{% include link-previews.html %}
|
||||
<script src="{{ "/assets/js/d3.min.js" | relative_url }}"></script>
|
||||
<script src="{{ "/assets/js/scripts.js" | relative_url }}?{{ site.time | date: '%s%N' }}"></script>
|
||||
</body>
|
||||
</html>
|
12
_layouts/home.html
Normal file
12
_layouts/home.html
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
<div class="ma3 anthony">
|
||||
<h1 class="f-5 normal loading">Loading a note</h1>
|
||||
<div class="rand-notes f1 word-wrap"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
window.graphDataIndex = {% include notes_graph.json %}
|
||||
</script>
|
66
_layouts/note.html
Normal file
66
_layouts/note.html
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<div class="flex">
|
||||
<article id="note-container" class="w-50 w-100-m pa3 pr0-l mt7-m relative z-1">
|
||||
<div class="container bg-white min-vh-100-header-comp pa3 br4 flex flex-column justify-between">
|
||||
<header>
|
||||
<div class="note-meta flex f7 lh-copy justify-between code items-center" data-status="{{ page.status }}">
|
||||
{% if page.date_created %}
|
||||
<time class="ml3 flex-auto" datetime="{{ page.date_created | date_to_xmlschema }}">{% if page.type != 'pages' %}
|
||||
Created <br> {{ page.date_created | date: "%B %-d, %Y" }}
|
||||
{% endif %}
|
||||
</time>
|
||||
{% else %}
|
||||
<time class="ml3 flex-auto" datetime="{{ page.date | date_to_xmlschema }}">{% if page.type != 'pages' %}
|
||||
Created <br> {{ page.date | date: "%B %-d, %Y" }}
|
||||
{% endif %}
|
||||
</time>
|
||||
{% endif %}
|
||||
<time datetime="{{ page.last_modified_at | date_to_xmlschema }}">{% if page.type != 'pages' %}
|
||||
Last updated <br> {{ page.last_modified_at | date: "%B %-d, %Y" }}
|
||||
{% endif %}
|
||||
</time>
|
||||
</div>
|
||||
<h1 class="note-title normal relative work-sans-light f-5 f1-m mb4 lh-solid">{{ page.title }}</h1>
|
||||
{% if page.subtitle %}
|
||||
<h2 class="note-title normal relative work-sans-light f2 mb4 lh-solid">{{ page.subtitle }}</h2>
|
||||
{% endif %}
|
||||
</header>
|
||||
|
||||
<div id="notes-entry-container" class="flex-auto">
|
||||
<div class="note-contents f5 lh-copy {% if page.type == "long-form" %} serif{% endif %}">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<aside class="bt b--background bw1 nl3 nr3 ph3 mt4">
|
||||
<h2 class="normal f1 f2-m mv4 work-sans-light lh-solid">Notes mentioning this note</h2>
|
||||
{% if page.backlinks.size > 0 %}
|
||||
<div class="flex flex-wrap">
|
||||
{% for backlink in page.backlinks %}
|
||||
<div class="w-50 flex">
|
||||
<div class="shadow-solid-accent mb2 mr2 br4 pa3 flex flex-column">
|
||||
<h3 class="mt0 normal f5 mb2"><a class="internal-link" href="{{ backlink.url | relative_url }}{%- if site.use_html_extension -%}.html{%- endif -%}">{{ backlink.title }}</a></h3>
|
||||
<div class="f7 lh-copy mb3 flex-auto">{{ backlink.excerpt | strip_html | truncatewords: 20 | remove: '[[' | remove: ']]' }}</div>
|
||||
<div class="f7 light-silver">{{ backlink.url }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div>
|
||||
<p class="f7">
|
||||
There are no notes linking to this note.
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</aside>
|
||||
</div>
|
||||
<button id="note-expand" class="absolute top-1 pointer nr4 mt3 right-0 bg-background button-reset bn foreground-text ">→</button>
|
||||
</article>
|
||||
|
||||
<div class="fixed top-0 right-0 w-50 vh-100 w-100-m vh-50-m">
|
||||
{% include notes_graph.html %}
|
||||
</div>
|
||||
</div>
|
16
_layouts/page.html
Normal file
16
_layouts/page.html
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<article class="measure-wide ml3">
|
||||
<header>
|
||||
<h1 class="f-6 normal anthony">{{ page.title | escape }}</h1>
|
||||
</header>
|
||||
<div class="lh-copy f5 z-1 mb6 relative">
|
||||
{{ content }}
|
||||
</div>
|
||||
{%- if page.url == "/colophon/" or page.url == "/graph/" -%}
|
||||
<div class="fixed top-0 right-0 w-100 vh-100 {% if page.url == '/colophon/' %}o-20{% endif %}">
|
||||
{% include notes_graph.html %}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
</article>
|
34
_notes/beaker-browser.md
Normal file
34
_notes/beaker-browser.md
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
date: 2021-04-18
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![Beaker browser 1.0 screenshot](assets/images/beaker-browser.png)
|
||||
|
||||
Beaker uses a [[peer-to-peer]] [[protocol]] called [[Hypercore]], or Hyper for short. "Hyperdrives" are like websites. They store webpages, pictures, media, user data, and so on. Hyperdrives power a lot of Beaker's best features.
|
||||
|
||||
"Hyperdrives" are folders you host from your computer. They contain web pages which you can browse and edit. You can create and share hyperdrives using Beaker. [Learn more](https://docs.beakerbrowser.com/beginner/creating-new-hyperdrives).
|
||||
|
||||
## Why is Beaker different?
|
||||
|
||||
Beaker is built with Chromium and should feel exactly like any other [[Web browser]]. The big difference: Beaker can host websites.
|
||||
|
||||
Hosting a website is traditionally done by "servers" which are specialized computers in the cloud. Servers require a variety of skills to run, and while there are some great services out there to make it easier, we wanted to try something new. We figured, what if anybody could host a website from their laptop?
|
||||
|
||||
We call those self-hosted sites "Hyperdrives."
|
||||
|
||||
- "Hyper" because they're kind of magical, and
|
||||
- "Drives" because they're collections of files.
|
||||
- It's not just a harddrive, it's a Hyperdrive!
|
||||
|
||||
You can create a Hyperdrive from Beaker, add your website's HTML, and then share the Hyperdrive link with any other Beaker user. Their computer will connect directly to yours, as if you were running a server up in the cloud.
|
||||
|
||||
## What does Beaker do better than other browsers?
|
||||
|
||||
Beaker makes building a Website weirdly easy. We have a builtin editor, tools to sync folders with your website, and some pretty fun APIs for reading and writing the files in your website.
|
||||
|
||||
If you're a teacher in a digital classroom, especially if you're teaching web development, Beaker is really handy. Your students don't need to learn Git, the commandline, or any other piece of server administration. They can download Beaker and get straight into the business of building Websites.
|
||||
|
||||
Dev teams may also find Beaker handy for working on site prototypes. All you have to do is load the prototype into Beaker and share the hyper:// link around the office. If somebody wants to make a change, they can fork the site and share their version back.
|
||||
|
||||
Beaker takes the drudge work out of hosting sites.
|
9
_notes/bentway.md
Normal file
9
_notes/bentway.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: The Bentway
|
||||
date: 2021-03-15
|
||||
status: 🌷
|
||||
---
|
||||
|
||||
The Bentway re-imagines how we build, experience, activate, and value [[public space|public]] space together. With [[From Later]], they are hosting an initiative from March 1 to May 31 called [_Digital and/as Public Space_](https://www.thebentway.ca/stories/digital-and-as-public-space/) (see From Later's [Public Notebook](https://docs.google.com/document/d/1eXk14blXZSm7EQrksFgcoZ8Rf17rmu7zrBEUyczGG5M/edit#)) which this site is a part of as a micro-residency.
|
||||
|
||||
<https://www.thebentway.ca/>
|
38
_notes/bgp.md
Normal file
38
_notes/bgp.md
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
title: BGP
|
||||
date_created: 2021-03-15
|
||||
status: 🌲
|
||||
---
|
||||
|
||||
Border Gateway Protocol (BGP) is a standardized exterior gateway [[protocol]] designed to exchange routing and reachability information among autonomous systems (AS) on the Internet. BGP is classified as a path-vector routing protocol, and it makes routing decisions based on paths, network policies, or rule-sets configured by a network administrator.
|
||||
|
||||
<https://en.wikipedia.org/wiki/Border_Gateway_Protocol>
|
||||
|
||||
## BGP: The Internet’s Fragile Beast
|
||||
### Mike Dank, Radical Networks 2019
|
||||
|
||||
<https://famicoman.com/bgp-radnets2019.odp>
|
||||
|
||||
BGP (Border Gateway Protocol) manages how all of our packets are routed across the Internet. It is one of the most powerful and important protocols currently deployed on the 'net, but it is also incredibly fragile. Devised as a quick fix 30 years ago (without concern for security), BGP is constantly blamed in the news as Internet outages occur worldwide due to misconfigurations by multinational telecommunications conglomerates or hijackings by government actors.
|
||||
|
||||
This talk will demystify the misunderstood protocol that is BGP, and explain how entities exchange giant flows of data across the Internet, highlight past misuses, and consider what we may be able to expect in the future.
|
||||
|
||||
## Protocol Tactics
|
||||
### Lars Gierth, Our Networks 2018
|
||||
|
||||
<https://github.com/ournetworks/2018-submissions/issues/16>
|
||||
|
||||
The philosophers have only interpreted the internet, the point is to change it.
|
||||
|
||||
IP, BGP, DNS, HTTP, and many more protocols set the boundaries of what we do on the internet. Their specifications and implementations have enabled many great advances, but some of these advances have revealed structures and mechanisms that are objectively counter to their users' needs and wants.
|
||||
|
||||
Our communities are radical in many ways, and some of our shared principles are accessibility, ubiquity, sustainability, resilience, and impact.
|
||||
|
||||
We'll look at effective tactics used by protocols, old and new, to achieve these principles.
|
||||
|
||||
## BGP and the Rule of Custom: How the internet self-governs without international law
|
||||
## Caleb James DeLisle, 34c3
|
||||
|
||||
<https://media.ccc.de/v/34c3-9072-bgp_and_the_rule_of_custom>
|
||||
|
||||
When bad actors can simply move servers from country to country, why does the internet remain reasonably civil ? How does one get on, or get kicked off, of the internet ? Why do fraud and child abuse websites regularly get shut down but thepiratebay remains living ? I will explain BGP, the protocol that knits the internet together, also covering the world of last resort hosting, bulletproof hosting and high profile cases of servers that were taken offline and servers which could not be taken offline despite significant effort.
|
18
_notes/cern.md
Normal file
18
_notes/cern.md
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
title: CERN
|
||||
date: 2021-05-17
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
## European Organization for Nuclear Research
|
||||
|
||||
![CERN logo in color](assets/images/CERN_logo.svg){: .w5}
|
||||
|
||||
> The European Organization for Nuclear Research (French: Organisation européenne pour la recherche nucléaire), known as CERN, is a European research organization that operates the largest particle physics laboratory in the world. Established in 1954, the organization is based in a northwest suburb of Geneva on the Franco–Swiss border and has 23 member states. Israel is the only non-European country granted full membership. CERN is an official United Nations Observer.
|
||||
>
|
||||
> The acronym CERN is also used to refer to the laboratory, which in 2019 had 2,660 scientific, technical, and administrative staff members, and hosted about 12,400 users from institutions in more than 70 countries. In 2016 CERN generated 49 petabytes of data.
|
||||
>
|
||||
> CERN's main function is to provide the particle accelerators and other infrastructure needed for high-energy physics research – as a result, numerous experiments have been constructed at CERN through international collaborations. The main site at Meyrin hosts a large computing facility, which is primarily used to store and analyse data from experiments, as well as simulate events. Researchers need remote access to these facilities, so the lab has historically been a major wide area network hub. CERN is also the birthplace of the [[World Wide Web]].
|
||||
|
||||
<https://home.cern/>
|
||||
<https://en.wikipedia.org/wiki/CERN>
|
16
_notes/city.md
Normal file
16
_notes/city.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
date: 2021-05-17
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
## A City Is Not a Computer
|
||||
|
||||
> The idea of the city as an information-processing machine has in recent years manifested as a cultural obsession with urban sites of data storage and transmission. Scholars, artists, and designers write books, conduct walking tours, and make maps of internet infrastructures. We take pleasure in pointing at nondescript buildings that hold thousands of whirring servers, at surveillance cameras, camouflaged antennae, and hovering drones. We declare: “the city’s computation happens here.”
|
||||
>
|
||||
> Yet such work runs the risk of reifying and essentializing information, even depoliticizing it. When we treat data as a “given” (which is, in fact, the etymology of the word), we see it in the abstract, as an urban fixture like traffic or crowds. We need to shift our gaze and look at data in context, at the lifecycle of urban information, distributed within a varied ecology of urban sites and subjects who interact with it in multiple ways.
|
||||
>
|
||||
> We must also recognize the shortcomings in models that presume the objectivity of urban data and conveniently delegate critical, often ethical decisions to the machine. We, humans, make urban information by various means: through sensory experience, through long-term exposure to a place, and, yes, by systematically filtering data. It’s essential to make space in our cities for those diverse methods of knowledge production. And we have to grapple with the political and ethical implications of our methods and models, embedded in all acts of planning and design. City-making is always, simultaneously, an enactment of city-knowing — which cannot be reduced to computation.
|
||||
|
||||
_Shannon Mattern, “A City Is Not a Computer,” Places Journal, February 2017. <https://doi.org/10.22269/170207>_
|
||||
|
||||
<https://placesjournal.org/article/a-city-is-not-a-computer/>
|
24
_notes/community-memory.md
Normal file
24
_notes/community-memory.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
date: 2021-04-24
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![Community Memory terminal at Milt's Coin Op](assets/images/cm.png)
|
||||
|
||||
> Community Memory (CM) was the first computer-based public bulletin board, operating from 1973 through 1992 with most terminals located in public spaces in Berkeley, California, such as libraries, senior centers, co-ops, and laundromats. Born out of the Free Speech and countercultural movements of the 1960s, CM’s purpose was to provide a free community-based space that linked people together through the unmediated sharing of ideas and knowledge,
|
||||
collective planning, and classified ads via messages and discussion forums.
|
||||
Working as a nonprofit called Resource One Inc., which was dedicated to making computers available to the counterculture, Lee Felsenstein, Efrem Lipkin, Ken Colstad, and other developers created CM using a donated mainframe computer. The terminals, which consisted of a computer display and keyboard that was originally housed in a cardboard box, then later in a wooden one, were networked and messages were indexed, making all content available and
|
||||
searchable on any CM machine at any location. While messages were free to read, adding a message cost 25 cents. Posting could be anonymous or signed, and registration was not required.
|
||||
>
|
||||
> The first terminals operated from 1973 to 1974 at Leopold’s Records, a communal house, and Whole Earth Access Store in Berkeley; Vocations for Social Change in Oakland; and the San Francisco Public Library’s Mission branch. Although it was popular, the group temporarily shut down the project because they could not easily replicate the equipment and languages being used, and the computer that acted as the central hub in the network was not sufficient to
|
||||
support expansion of the project.
|
||||
>
|
||||
> The three men regrouped and in 1977 created a collectively run nonprofit entity called the Community Memory Project to support CM (this group was interchangeably referred to as the Community Memory Project and Community Memory). They developed their own software, a database called Sequitur, and a communications package called X.dot, and began placing terminals with the overhauled system throughout Berkeley. That pilot program ran from 1984 to
|
||||
1988, after which they made adjustments based on research and evaluations, then released new terminals in 1989 in Berkeley and licensed their software for similar systems to be set up in places like San Francisco State University and Los Angeles’ Electronic Cafe. Due to a shortage of funding and inconsistent marketing and outreach, Community Memory shutdown in 1992.
|
||||
|
||||
![Community Memory terminal](assets/images/cm2.jpeg)
|
||||
|
||||
<https://archive.computerhistory.org/resources/access/text/finding-aids/102733953-Community-Memory/102733953-Community-Memory.pdf>{:data-proofer-ignore='true'}
|
||||
|
||||
|
||||
<https://computerhistory.org/blog/community-memory-precedents-in-social-media-and-movements/>
|
7
_notes/dawn.md
Normal file
7
_notes/dawn.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Dawn Walker
|
||||
date_created: 2021-03-26
|
||||
status: 🌳
|
||||
---
|
||||
|
||||
[Dawn Walker](https://dcwalker.ca/) is a design researcher and PhD Candidate at the Faculty of Information, University of Toronto. Her research focuses on the possibilities for social transformation through the design of alternative and decentralized (web) infrastructures. She is a member-worker of [[Hypha|Hypha Worker Co-operative]], a tech worker co-operative, and co-organizes Our Networks, a conference about the past, present, and future of building our own network [[infrastructure|infrastructures]].
|
16
_notes/digital-public-garden.md
Normal file
16
_notes/digital-public-garden.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
date: 2021-03-15
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![digital-garden](https://user-images.githubusercontent.com/227587/114309337-d5ff4800-9ab4-11eb-8f38-e7b4b7f590f0.png)
|
||||
|
||||
A Brief History & Ethos of the Digital Garden
|
||||
Maggie Appleton
|
||||
<https://maggieappleton.com/garden-history>
|
||||
|
||||
|
||||
|
||||
Hypertext Gardens: Delightful Vistas
|
||||
Mark Bernstein, Eastgate Systems, Inc.
|
||||
<http://www.eastgate.com/garden/Enter.html>
|
92
_notes/does-the-internet-dream.md
Normal file
92
_notes/does-the-internet-dream.md
Normal file
@ -0,0 +1,92 @@
|
||||
---
|
||||
title: Does the internet dream of…?
|
||||
subtitle: Reflections on the networks we live with, and internet futures that have yet to arrive
|
||||
date: 2021-05-30
|
||||
status: 🌳
|
||||
type: long-form
|
||||
---
|
||||
|
||||
“Does the internet dream of physical spaces?” A hypothetical question someone could have, quickly scrawled in mid-thought, posted on a message board in the early-aughts that has since disappeared from its now expired domain. Perhaps to be reanimated by the Internet Archive in the near-future—reshared on a federated social network, accessible only by an alpha-numeric sequence of letters and numbers described by users as a “hash”, re-syndicated through a decades old [[protocol]] (three times removed from its original intent), transmitted through conduits of optical fiber crossing continental distances, buried and submerged—everywhere and nowhere at the same time.
|
||||
|
||||
The originating context of the question may have been a reflection on William Gibson’s expression of cyberspace as “a consensual hallucination”.[^1] Stretching this narrative, we could imagine the author of the original post asking further: what is the hallucination we are in and how can we reshape our current imaginaries of the internet? These resulting questions point to the investigations Hypha has been undertaking through the micro-residency with [[From Later]] and [[The Bentway]] under the theme of _Adaptive Reuse & Creative Misuse_.
|
||||
|
||||
Our reflections are on the possible futures of the internet and ways we can think about repurposing, and adapting, digital [[infrastructure|infrastructures]] to create equitable alternatives with us users as stewards and [[maintenance|maintainers]] of protocols. Can we move beyond the impasse of internet futures based on exclusive, monetary driven, content platforms? What would a [[rss|resyndicatable]] internet look, or feel, like?
|
||||
|
||||
The following is an exploration of these possible web futures through a retro-futurist reading of the digital protocols that have shaped the internet. [[RSS]], an acronym that originally stood for “RDF Site Summary” by Netscape and later evolved to “Really Simple Syndication”[^2], is one vignette of this study—an unrealized future of rich, interoperable, content publishing on the internet that continues to exist well after it’s start in the early dot-com bubble. A future where [[bgp|Border Gateway Protocol]] (BGP), “the language spoken by routers on the Internet to determine how packets can be sent from one router to another to reach their final destination”[^3], never contributed to the hyperscaling of the internet to the planetary proportions that it is today and instead skewed towards localizing, community-owned, connectivity. And, lastly, a vignette where the internet has been de-gentrified and the protocol walled-gardens we are accustomed to collapses, giving way to new forms of digital place making, maintenance, and care.
|
||||
|
||||
### Through the network
|
||||
{:.f3.work-sans-light.mt5}
|
||||
|
||||
In thinking of these futures we wanted to take up the technologies ready to hand in our current online—though also attend to the lineage of their development. They are actively present in our day to day but at times living on in afterlives (RSS), or extended in scale and function (BGP), or transmuted beyond recognition (web sites as platforms).
|
||||
|
||||
[[RSS]] (choose your preferred opened acronym) as a format for syndicating information on the web through feeds got its start in the mid-1990s during the early dot-com years, however for many it didn’t ascend to its height until the rise of a companion piece of software–the RSS reader (or aggregator), in particular online darling [[Google Reader]] which launched in 2005. Reader shutdown in 2014 but there were other reasons for the format slowly fading away.[^4] It exists on the internet as abundant detritus, available automatically on many websites using popular content management systems, lumbering along behind apps as a workhorse of syndication for a content darling: podcasts (“subscribe wherever you get your podcasts”). RSS enabled a way of looking at information that the existing platforms (Facebook, Instagram, Twitter) don’t want you to use: on feeds openly published and viewed in your app of choice, or in the [[web browser|browser]].
|
||||
|
||||
[[bgp|Border Gateway Protocol]] (BGP) was first proposed in the late 1980s[^5] and is one of the longest-lasting protocols in use for digital communications. Its primary role is to manage and direct traffic (packets) between the routers of different Autonomous Systems (AS) that manage a section of the internet.[^6] As a protocol it grew out of a fractured landscape, different organizations and even different countries were using technologies that were incompatible with each other and engineers sought to standardize ways information could traverse those boundaries without the same internal features. The early internet was conceived as a space for _internetworking_, or connecting multiple different types of networks that ran on different technologies or were administered in different ways. That “inter” has been largely dropped in references to the internet and we are left with “in”networked communities and organizations. In the last few years we’ve seen the rise of a contemporary form of internetworking with the splits between networks ruled by nation-states[^7] but also an interest in alternative forms of networking that recapture the pluralist and autonomous possibilities of early internet designs.[^8]
|
||||
|
||||
The first web page was published to the [[World Wide Web]] (www) in 1991 by Tim Berners-Lee, this model of information publishing and retrieval relied on structured and available information hyperlinked. Collections of pages as web sites, all available at the same domain served as early gardens for people to grow and share information in. That isn’t the web we experience currently, if we experience the web at all. As of January 2021 just shy of 60% of people are online, up from just around half the year prior.[^9] For that slight majority, public spaces have been gentrified and walled off, most spaces (websites and apps) make big asks of visitors: have the personal security to exchange your personal information for access (have the privilege to be real-named), have always-on and stable connectivity, don’t fall too far behind on the latest and greatest hardware treadmill or you can’t run the increasingly computationally expensive software and web apps. Also you better have lots of bandwidth because if you were to be always on data your costs would go through the roof.
|
||||
|
||||
## Living on the new internet
|
||||
{:.f2.work-sans-light.mt5}
|
||||
|
||||
### The resyndicatable web
|
||||
{:.f3.work-sans-light.mt4}
|
||||
|
||||
Quinn sometimes thought about the interfaces they encountered as they moved from one page to the next either through a click on [[hypertext|hyperlinked text]] in a paragraph, or a deliberate typing of addresses given to them in passing. The action of typing out an address is straight-forward, though the translation of a friend’s scribble to the precision of the computer input has been a recurring inconvenience in remembering context on why they were navigating to the website in the first place: curiosity, feigned interest, or a last ditch effort to get at relevant information.
|
||||
|
||||
“Colon, forward slash, forward slash...I think he meant an “i”? Or is that an “L”?” Quinn said as they made passing vertical glances between their screen and the three times folded yellow sticky note—without the context of the laptop, this would look as if Quinn is listening to music without the music. The door to the lab opens and a pause. “My writing is not that bad…” as Candance takes a seat next to Quinn, with her phone making a reverberating sound against the kitchen table.
|
||||
|
||||
“Quinn, I’ve been thinking a bit on what we have so far and I know it’s just a start, but I really think we should explore publishing more stuff. You know, the stuff we see on NearNet!”. Candance gestures with both arms over her head, palms opened, as if to manifest magic. Quinn remains fixated on completing the task of typing the address into the 6 years old, slightly dented, laptop. Running on screen is an empty browser window with the familiar features of a web browser with nuanced differences—a tiny custom panel offering glimpses of Quinn’s web ring feed, a green indicator icon indicating everything is “synced”. A small quiver floats through their fingers as Candance’s proclamation echoes in the room and the enter key is pressed.
|
||||
|
||||
Some elements appeared the same; a persisting header area with links arranged, flush right, in a line. A running footer with a smattering of coloured micro-copy at the end of the site. NearNet’s default styles were instantly recognizable; the looseness in visual structure accented by a computer blue that directed your attention to links beyond NearNet itself. A feed of feeds as Quinn sometimes describes it to those who are more familiar with RSS2; a contentious protocol that saw many forking paths over the previous decade and has since been reconfigured to allow a flourishing of communities known as the _resyndicatable web_, or REweb amongst those in, and around, the NearNet community.
|
||||
|
||||
“Okay okay, this is where we can start from. Just keep in mind NearNet is just an example. And, _and_, remember we have that list of other publishing rings we want to connect with.” Quinn explained with an index finger on the trackpad, cursor circling the links. Next to the links is a small icon with radiating lines. One could misread this as radio waves, but actually it’s the RSS3 feature Quinn and Candance has been scheming to use since the start of the year allowing them to publish their articles to multiple places on NearNet and allow communities to build unique applications to view and engage with their content without loosing their connection with the pieces.
|
||||
|
||||
“I think Corey can have a lot of fun with our pieces in her web community. They can remix the content from our RSS3 feed and everyone can see the changes compared to what we started with.” Said Candance as she clicks through to a RSS3 feed. “Yeah, I think we could do something like that as well. You know, building a small tool to bring their content into ours. Kind of like a library without the walls. Maybe…” Quinn clicks through to a link.” Something like this. Like a dynamic block on our page that shows how our writing is directly responding to Corey’s articles and readers are able to see our back and forth. You know, just a thought.”
|
||||
|
||||
### Internetworked communities
|
||||
{:.f3.work-sans-light.mt4}
|
||||
|
||||
"That's not how it works anymore Daniella"
|
||||
|
||||
"Ugh, I know, but why can't we just say 'here, our traffic wants to access your content and we're following the protocol' and have them take it? They keep changing the agreement!"
|
||||
|
||||
"It's because they know what they have—they control all the legacy IP that people still want to access—but we know we have routes to a lot of current popular content through [[peer-to-peer|peers]] we have good relationships with..."
|
||||
|
||||
"And who follow their agreements"
|
||||
|
||||
"Right—peers we have good relationships with _and_ who follow their agreements. But some of this older stuff from the aughts isn't easy to get elsewhere legally. The co-ops over in Riverdale are having some strange days redux watch parties and we keep getting hit with overages... and complaints when the acronym mafia drops their packets. We’re a little too established now to revert to the scrappy grey market routing we all started out with."
|
||||
|
||||
"Why do we think they'll honour this agreement?! They didn't honour the last one"
|
||||
|
||||
"They are slowly coming in line, we knew it'd be a long process and that we’d have to drag them kicking and screaming but there are more people in the [[city]] on community nets than the legacynet so their bad behaviour doesn't really have any legs."
|
||||
|
||||
Daniella thumbed aimlessly through her feed on the local social media [[ssb|Scuttlebutt]], not paying attention to the words on screen but also not ready to look at Eduardo and agree. The other meeting attendees in the room looked on apprehensively. They were new to the East End network governance council and didn’t want to step into conflicts they didn’t fully understand. Eduardo and Daniella were stewards from the beginning.
|
||||
|
||||
Eduardo waited patiently before speaking again, more for the benefit of the others than Daniella. “You know things are better than they were even a few years ago, we’ve made huge gains in getting the big content providers and traditional ISP monopolies to respect the decisions we make here at communities about how our networks are governed. Having the ability to run our own networks, get our own AS numbers and make decisions together about access to the inter-network has made things more affordable and more equitable for us all.” He stumbled a bit at internetwork, they all did, most of them had grown up calling it the internet and were still practicing how to use a reclaimed term that tripped off the tongue.
|
||||
|
||||
### De-gentrifying the network
|
||||
{:.f3.work-sans-light.mt4}
|
||||
|
||||
Kyyla almost always forgot her phone was in asynchronous mode until she had a time sensitive message from dispatch notification buzz, rattling the device against the frame of her bike. Usually it was a slow dribble of messages coming in, the default algo on her device making it look irregular enough to feel like she was getting them as they arrived, rather than slowly released after a cache were downloaded after she cycled by a node. However when she had an urgent message from dispatch everything came in a burst and she got a glimpse of what it would be like to have real time always-on notifications—the algo defaulted to pushing all messages and notifications through that were queued up when an important message came in. She slowed down at the light and flicked through to the message on screen, a change in order for her next few pickups. She was glad for the notification now as it meant she should take a right at the next intersection instead of her original plan.
|
||||
|
||||
The original plan was a roundabout detour crossing through familiar parts of the city or at least the parts of the city that felt attuned to the cadence of information streaming through Kyyla’s phone. The abundance of connectivity in the city casted a constant disposition for those deeply vested in synchronous, just-in-time, information. It was the micro-gestures and landmarks that stood out; the precision of notifications, and receded telecommunications infrastructure grafted onto building facades, were the gestures that Kyyla wanted to step back from, at least for the moments between pickups. Her phone, quietly dented, but otherwise still functional, runs at a lower clock speed compared to other devices that are of the same generation—under-clocking strategies have been a staple for preserving device longevity and, more broadly, a deliberate gesture of a new relationship with persisting connectivity.
|
||||
|
||||
The software running on the phone, familiar to many, is also “under-clocked” in nuanced ways—the rate of information display is variable and mostly textual. Largely purposeful in the act of finding and viewing information. In place of high-resolution images, dithered, bitmapped versions are displayed. Sometimes surfing the internet the device looked as if byte-sized chunks of contents cascaded in slow motion. Other times, like an urgent dispatch, content snaps into place with a haste felt like torrential rain.
|
||||
|
||||
The detour would take her to some of her favourite city caches—low traffic community moderated hubs. Asynchronous forums of various topics with the odd mixtape.mp3 update from an eager poster. Nodes were expressive and the act of receiving a cache’s update felt timely and attuned.
|
||||
|
||||
“Maybe I can catch the next cache” Kyyla said under her breath while stowing the phone away now that messages have been cleared.. Looking down the street after taking the right, signage started to enter her peripheral vision promising more connectivity and instantaneous information at one's fingertips. Kyyla made passing glances at the copy. “I don’t need another reminder!” agan, under her breath. She starts to see the micro-gestures in the people walking the sidewalks, reflecting on the last time she had a meaningful download from a node. Her pickup is one block over—recalling her notification.
|
||||
|
||||
She slows to the intersection before her pickup. A glow is casted between buildings, drawing deep shadows on surface details. Kyyla looks above the sidewalk’s horizon. A small node mounted on a pole just outside her upper-right field of vision is made visible. The node, noticeably custom built, was mounted with metal strappings flushed against the pole. Stickers on the node clearly declaring it’s community affiliation to a part of the city Kyyla is not extensively familiar with. Kyyla pulls out her phone and sees the steady stream of new cached content from the node.
|
||||
|
||||
---
|
||||
{:.mt5}
|
||||
[^1]: “Cyberspace. A consensual hallucination experienced daily by billions of legitimate operators, in every nation, by children being taught mathematical concepts... A graphic representation of data abstracted from banks of every computer in the human system. Unthinkable complexity. Lines of light ranged in the nonspace of the mind, clusters and constellations of data. Like city lights, receding...” Neuromancer (1984).
|
||||
[^2]: <https://www.vice.com/en/article/a3mm4z/the-rise-and-demise-of-rss>
|
||||
[^3]: <https://www.internetsociety.org/deploy360/securing-bgp/>
|
||||
[^4]: <https://www.vice.com/en/article/a3mm4z/the-rise-and-demise-of-rss>
|
||||
[^5]: <https://datatracker.ietf.org/doc/html/rfc1105>
|
||||
[^6]: See this opinionated review of early internet protocols: <https://2018.ournetworks.ca/video/?ipfs=QmRteJr9TSyLoWgki5ZVnYikmBfCrKE2L2XvaY128egGPh>
|
||||
[^7]: <https://qz.com/1918996/techno-nationalism-is-shaping-the-future-of-your-internet/>
|
||||
[^8]: <https://datatracker.ietf.org/doc/html/rfc7962>
|
||||
[^9]: <https://www.statista.com/statistics/617136/digital-population-worldwide/>
|
9
_notes/field-guide-to-the-digital-real.md
Normal file
9
_notes/field-guide-to-the-digital-real.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
<https://www.are.na/from-later/field-guide-to-the-digital-real>
|
||||
|
||||
> Research findings will be incorporated into The Bentway’s Field Guide to the Digital Real (to be published May 2021). The Field Guide will be a public resource that provides insights, case studies, provocations, and speculations on how hybrid approaches are shaping and reshaping public space.
|
||||
|
||||
<https://www.thebentway.ca/stories/the-bentway-announces-eight-micro-residencies-as-part-of-the-digital-and-as-public-space-initiative/>
|
8
_notes/from-later.md
Normal file
8
_notes/from-later.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: From Later
|
||||
status: 🌿
|
||||
---
|
||||
|
||||
From Later is a foresight studio from Toronto that brings together a range of poetic misfits, abandoned lawyers, redeemed bohemians, lost artists, and disillusioned strategists. It’s a network of collaboration that engages art, strategy, engineering, and design for building other futures.
|
||||
|
||||
<https://fromlater.com/>
|
7
_notes/garry.md
Normal file
7
_notes/garry.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Garry Ing
|
||||
date: 2021-03-24
|
||||
status: 🌳
|
||||
---
|
||||
|
||||
[Garry Ing](https://garrying.com) is a designer and researcher residing in Toronto. He is a member of [[Hypha|Hypha Worker Co-operative]] and sessional faculty at OCAD University teaching interactive media. Previous work and collaborations has been with the Strategic Innovation Lab (sLab) at OCAD University, the Technologies for Aging Gracefully Lab at the University of Toronto, Normative, Format.com, and Pivotal Software. He is a co-organizer of Our Networks, a conference on building distributed network [[infrastructure|infrastructures]], and A-B-Z-TXT, an autonomous school for art, design and computation in Toronto and Montréal.
|
8
_notes/google-reader.md
Normal file
8
_notes/google-reader.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
date: 2021-05-02
|
||||
status: 🌲
|
||||
---
|
||||
|
||||
> Google Reader was an [[RSS]]/Atom feed aggregator operated by Google. It was created in early 2005 by Google engineer Chris Wetherell and launched on October 7, 2005, through Google Labs. Google Reader grew in popularity to support a number of programs which used it as a platform for serving news and information to people. Google closed Google Reader on July 1, 2013, citing declining use.
|
||||
|
||||
<https://en.wikipedia.org/wiki/Google_Reader>
|
7
_notes/hypercore.md
Normal file
7
_notes/hypercore.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
Hypercore [[Protocol]] is a [[peer-to-peer]] data network built on the Hypercore logs. Hypercores are signed, append-only logs. They're like lightweight blockchains without the consensus algorithm. As with BitTorrent, as more people "seed" a dataset it will increase the available bandwidth.
|
||||
|
||||
<https://hypercore-protocol.org/>
|
7
_notes/hypertext-transfer-protocol.md
Normal file
7
_notes/hypertext-transfer-protocol.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
status: 🌾
|
||||
---
|
||||
|
||||
The [[Hypertext]] Transfer [[Protocol]] (HTTP) is an application layer protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the [[World Wide Web]], where [[hypertext]] documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a [[web browser]].
|
||||
|
||||
<https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol>
|
8
_notes/hypertext.md
Normal file
8
_notes/hypertext.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Hypertext
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
Hypertext is text displayed on a computer display or other electronic devices with references (hyperlinks) to other text that the reader can immediately access. Hypertext documents are interconnected by hyperlinks, which are typically activated by a mouse click, keypress set, or by touching the screen. Apart from text, the term "hypertext" is also sometimes used to describe tables, images, and other presentational content formats with integrated hyperlinks. Hypertext is one of the key underlying concepts of the [[World Wide Web]], where Web pages are often written in the Hypertext Markup Language (HTML). As implemented on the Web, hypertext enables the easy-to-use publication of information over the Internet.
|
||||
|
||||
<https://en.wikipedia.org/wiki/Hypertext>
|
26
_notes/hypha.md
Normal file
26
_notes/hypha.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Hypha
|
||||
status: 🌾
|
||||
---
|
||||
|
||||
<https://hypha.coop>
|
||||
<https://twitter.com/HyphaCoop>
|
||||
|
||||
We cultivate collective growth and meaningful livelihoods through learning and building technologies together.
|
||||
|
||||
We are a team of technologists, designers, and community organizers who value working with mission-oriented organizations.
|
||||
|
||||
## Our values
|
||||
|
||||
### Together, we have years of experience building open source technologies and sustainable communities.
|
||||
|
||||
Our core values reflect our understanding of what it means to cultivate respectful, resilient, and democratic technology ecologies.
|
||||
|
||||
## Build change that lasts
|
||||
Disruptive growth has its costs. We believe that the culture of “move fast and break things” is untenable. Instead, we seek change that strengthens our communities and nurtures our planet. We work thoughtfully and with care toward the futures we imagine.
|
||||
|
||||
## Embody co-operative values
|
||||
We serve our clients, members, neighbours, and the co-operative movement the world over. Hypha embodies the co-operative values of self-help, self-responsibility, democracy, equality, equity, and solidarity.
|
||||
|
||||
## Provide safe harbour
|
||||
We acknowledge the sacred land we work on is the territory of many nations and was the subject of the Dish with One Spoon Wampum Belt Covenant, an agreement to peaceably share and care for the resources around the Great Lakes. Today it is still home to many First Nations, Inuit, and Métis peoples from across Turtle Island. We also recognize the ongoing history of oppression and marginalization in our society and workplaces. Hypha strives to be a safe harbour to all, regardless of race, class, gender identity and expression, sexual orientation, disability, physical appearance, body size, religion, or technical skill.
|
13
_notes/infrastructure.md
Normal file
13
_notes/infrastructure.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Infrastructure
|
||||
date_created: 2021-04-11
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
TBD (forever)
|
||||
|
||||
Infrastructure Studies in context of internet: **MEDIATION, PROCESS BUILDING, SYSTEM SUSTAINING, TIME SCALES** [Geoffrey C. Bowker, Karen Baker, Florence Miller, and David Ribes. 2010. Toward information infrastructure studies: Ways of knowing in a networked environment. doi: 10.1007/978-1-4020-9789-8_5]
|
||||
|
||||
> An alternative vision of infrastructure may better take into account the social and organizational dimensions of infrastructure. This vision requires adopting a long term rather than immediate timeframe and thinking about infrastructure not only in terms of human versus technological components but in terms of a set of interrelated social, organizational, and technical components or systems (whether the data will be shared, systems interoperable, standards proprietary, or maintenance and redesign factored in)... a major shift in thinking. It involves changing common views and metaphors on infrastructure: from transparency to visibility, from substrate to substance, from short term to long term
|
||||
|
||||
<https://doi.org/10.1007/978-1-4020-9789-8_5>
|
26
_notes/initial-seeds.md
Normal file
26
_notes/initial-seeds.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
date_created: 2021-03-01
|
||||
status: 🌿
|
||||
---
|
||||
|
||||
Set of areas that guide our reveries?
|
||||
|
||||
1. The history of [[hypertext transfer protocol|hypertext]], [[rss]]+adjacent protocols and standards.
|
||||
2. The act of [[publishing]] as "making something public" → publicness → hybrid [[public space]].
|
||||
3. The possibilities for *the infrastructural* ([[maintenance]]/repair) to draw from the past to rethink the present through co-operative approaches.
|
||||
|
||||
<!--more-->
|
||||
|
||||
|
||||
- Publish from RSS to arena?
|
||||
- RSS to twitter? The gram?
|
||||
- Use DPress to get it on [[SSB]]?
|
||||
|
||||
_What if... we travel back in time and blow up [[BGP]]? Would [[Xanadu]] be realized? Would actual plural internetworking have persisted?_
|
||||
|
||||
[[Publishing]] → making things public
|
||||
|
||||
**>> COMMISSIONING BODIES <<**
|
||||
Economy as a form a expression
|
||||
|
||||
Antagonizing the separation of frontend/backend
|
12
_notes/ipfs.md
Normal file
12
_notes/ipfs.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: IPFS
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![Ipfs-logo-1024-ice-text](https://user-images.githubusercontent.com/227587/114309496-4b6b1880-9ab5-11eb-86ab-f6660238a471.png){:.w-60}
|
||||
|
||||
_https://github.com/krl, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons_
|
||||
|
||||
The InterPlanetary File System (IPFS) is a [[protocol]] and peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.
|
||||
|
||||
<https://en.wikipedia.org/wiki/InterPlanetary_File_System>
|
12
_notes/library-of-the-printed-web.md
Normal file
12
_notes/library-of-the-printed-web.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
date: 2021-05-02
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![Printed Web 1, launched in January 2014](assets/images/Printed_Web_1.jpeg)
|
||||
|
||||
<https://printedweb.org/>
|
||||
|
||||
> Library of the Printed Web is a physical archive devoted to web-to-print artists’ books, zines and other printout matter. Founded by Paul Soulellis in 2013, the collection was acquired by The Museum of Modern Art Library in January 2017. The project has been described as "web culture articulated as printed artifact," an "archive of archives," characterized as an "accumulation of accumulations," much of it printed on demand. Techniques for appropriating web content used by artists in the collection include grabbing, hunting, scraping and performing, detailed by Soulellis in "Search, Compile, Publish," and later referenced by [[Post-Digital Print|Alessandro Ludovico]].
|
||||
|
||||
<https://en.wikipedia.org/wiki/Library_of_the_Printed_Web>
|
28
_notes/maintenance.md
Normal file
28
_notes/maintenance.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
date: 2021-04-18
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
## Maintenance and Care
|
||||
### A working guide to the repair of rust, dust, cracks, and corrupted code in our cities, our homes, and our social relations.
|
||||
|
||||
> What we really need to study is how the world gets put back together. I’m not talking about the election of new officials or the release of new technologies, but rather the everyday work of maintenance, caretaking, and repair. Steven Jackson’s now-classic essay “Rethinking Repair,” written in the before-time — way back in 2014 — proposes that we “take erosion, breakdown, and decay, rather than novelty, growth, and progress, as our starting points” in considering relations between society and technology. His sober exercise in “broken world thinking” is matched with “deep wonder and appreciation for the ongoing activities by which stability … is maintained, the subtle arts of repair by which rich and robust lives are sustained against the weight of centrifugal odds.” 2
|
||||
|
||||
> In many academic disciplines and professional practices — architecture, urban studies, labor history, development economics, and the information sciences, just to name a few — maintenance has taken on new resonance as a theoretical framework, an ethos, a methodology, and a political cause. This is an exciting area of inquiry precisely because the lines between scholarship and practice are blurred. To study maintenance is itself an act of maintenance. To fill in the gaps in this literature, to draw connections among different disciplines, is an act of repair or, simply, of taking care — connecting threads, mending holes, amplifying quiet voices.
|
||||
|
||||
<https://placesjournal.org/article/maintenance-and-care>
|
||||
Shannon Mattern, Places Journal, November 2018
|
||||
|
||||
---
|
||||
|
||||
## Mierle Laderman Ukeles
|
||||
|
||||
![Mierle Laderman Ukeles, Touch Sanitation Performance, 1979-1980](assets/images/Mierle-Laderman-Ukeles.jpeg)
|
||||
_Mierle Laderman Ukeles, Touch Sanitation Performance, 1979-1980. Image from artist and Ronald Feldman Fine Arts, New York._
|
||||
|
||||
>Mierle Laderman Ukeles (born 1939, Denver, Colorado) is a New York City-based artist known for her feminist and service-oriented artwork, which relates the idea of process in conceptual art to domestic and civic "maintenance". She is the Artist-in-Residence at the New York City Department of Sanitation and creates art that brings to life the very essence of any urban center: waste flows, recycling, sustainability, environment, people, and ecology.
|
||||
|
||||
<https://en.wikipedia.org/wiki/Mierle_Laderman_Ukeles>
|
||||
|
||||
---
|
||||
|
15
_notes/offline.md
Normal file
15
_notes/offline.md
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
date: 2021-05-17
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
## Local-first software
|
||||
### You own your data, in spite of the cloud
|
||||
|
||||
> Cloud apps like Google Docs and Trello are popular because they enable real-time collaboration with colleagues, and they make it easy for us to access our work from all of our devices. However, by centralizing data storage on servers, cloud apps also take away ownership and agency from users. If a service shuts down, the software stops functioning, and data created with that software is lost.
|
||||
>
|
||||
> In this article we propose “local-first software”: a set of principles for software that enables both collaboration and ownership for users. Local-first ideals include the ability to work offline and collaborate across multiple devices, while also improving the security, privacy, long-term preservation, and user control of data.
|
||||
>
|
||||
> We survey existing approaches to data storage and sharing, ranging from email attachments to web apps to Firebase-backed mobile apps, and we examine the trade-offs of each. We look at Conflict-free Replicated Data Types (CRDTs): data structures that are multi-user from the ground up while also being fundamentally local and private. CRDTs have the potential to be a foundational technology for realizing local-first software.
|
||||
|
||||
<https://www.inkandswitch.com/local-first.html>
|
13
_notes/peer-to-peer.md
Normal file
13
_notes/peer-to-peer.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: peer-to-peer
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the application. They are said to form a peer-to-peer network of nodes.
|
||||
|
||||
<https://en.wikipedia.org/wiki/Peer-to-peer>
|
||||
|
||||
## Projects
|
||||
- [[Hypercore]]
|
||||
- [[IPFS|InterPlanetary File System (IPFS)]]
|
||||
- [[SSB|Secure Scuttlebutt (SSB)]]
|
19
_notes/post-digital-print.md
Normal file
19
_notes/post-digital-print.md
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Post-Digital Print
|
||||
date: 2021-05-02
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![Cover image of Post-Digital Print](assets/images/Post-digital_Print_The_Mutation_of_Publishing_Since_1894.jpeg)
|
||||
{: .mw6}
|
||||
|
||||
### The Mutation of Publishing since 1894
|
||||
_Alessandro Ludovico_, Onomatopee, 2012
|
||||
|
||||
> In this post-digital age, digital technology is no longer a revolutionary phenomenon but a normal part of everyday life. The mutation of music and film into bits and bytes, downloads and streams is now taken for granted. For the world of book and magazine publishing however, this transformation has only just begun.
|
||||
>
|
||||
> Still, the vision of this transformation is far from new. For more than a century now, avant-garde artists, activists and technologists have been anticipating the development of networked and electronic publishing. Although in hindsight the reports of the death of paper were greatly exaggerated, electronic publishing has now certainly become a reality. How will the analog and the digital coexist in the post-digital age of [[publishing]]? How will they transition, mix and cross over?
|
||||
>
|
||||
> In this book, Alessandro Ludovico re-reads the history of media technology, cultural activism and the avantgarde arts as a prehistory of cutting through the so-called dichotomy between paper and electronics. Ludovico is the editor and publisher of [Neural](http://neural.it/), a magazine for critical digital culture and media arts. For more than twenty years now, he has been working at the cutting edge (and the outer fringes) of both print publishing and politically engaged digital art.
|
||||
|
||||
<http://postdigitalprint.org/wp-content/uploads/2013/08/Post-DigitalPrint_ALudovico_Singles.pdf>
|
13
_notes/post-digital-publishing-archive.md
Normal file
13
_notes/post-digital-publishing-archive.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Post-Digital Publishing Archive
|
||||
date: 2021-05-02
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![screenshot of the post-digital publishing archive](assets/images/p-dpa_01.png)
|
||||
|
||||
<http://p-dpa.net/>
|
||||
|
||||
> The aim of the [[post digital print|Post-Digital Publishing]] Archive (P—DPA) is to systematically collect, organize and keep trace of experiences in the fields of art and design that explore the relationships between [[publishing]] and digital technology. The archive acts as a space in which the collected projects are confronted and juxtaposed in order to highlight relevant paths, mutual themes, common perspectives, interrelations, but also oppositions and idiosyncrasies.
|
||||
|
||||
<https://silviolorusso.com/work/post-digital-publishing-archive/>
|
15
_notes/protocol.md
Normal file
15
_notes/protocol.md
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Protocol
|
||||
date_created: 2021-03-28
|
||||
status: 🌻
|
||||
---
|
||||
|
||||
> A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchronization of communication and possible error recovery methods. Protocols may be implemented by hardware, software, or a combination of both.
|
||||
|
||||
<https://en.wikipedia.org/wiki/Communication_protocol>
|
||||
|
||||
"Protocols" from the Lab Book of the Civic Laboratory for Environmental Action Research (CLEAR):
|
||||
|
||||
> Protocols are the "attitudes" or "the manner in which one approaches each and every element in our space." They are different than pure rules or instructions; they are ways that we establish order and maintain practices across our group [...] -- They define the way we ought to proceed or behave in different situations. As such, they are normative, or premised on values, morals, and an idea of how things ought to be done. They are a manifestation of our values.
|
||||
|
||||
<https://civiclaboratory.nl/clear-lab-book/>{:data-proofer-ignore='true'}
|
14
_notes/public-space.md
Normal file
14
_notes/public-space.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
date: 2010-03-28
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
## Public Spaces
|
||||
|
||||
![Spirit Surfers animated wordmark](assets/images/spirit-surfers.gif)
|
||||
|
||||
> Are the internet’s privately owned public spaces available for contemplation? Or does the speed of information and the constant movement of data make that impossible?
|
||||
|
||||
> “Space” is a discourse of phenomena, the “public” is a discourse of politics. Private ownership is a discourse of economics that warps the others to accommodate the habits of using things and abstractions. It constructs protocols that make space and public as ephemeral as money. Communities can take shape around these protocols but they grow their own, unarticulated systems of interaction and affinity that change more subtly and unpredictably than terms of service and zoning laws. The latter are brittle. Communities—even the minimal communions that are established between two people, or between one person and an image or object of contemplation—adapt easily to new conditions, and thrive in discourses beyond those of the marketplace. There aren’t enough terms of service to manage all the publics and space in the world, or the people who live in them.
|
||||
|
||||
<https://thenewinquiry.com/public-spaces/> Brian Droitcour, The New Inquiry, October 29, 2012
|
42
_notes/publishing.md
Normal file
42
_notes/publishing.md
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
title: Publishing
|
||||
date_created: 2021-03-28
|
||||
date_updated: 2021-04-25
|
||||
status: 🌲
|
||||
---
|
||||
|
||||
Publishing as a way of making a thing public, making it known and available. A sense of (re) distribution of the work or thing and knowledge associated with it.
|
||||
|
||||
- Purely definitional:
|
||||
|
||||
> Publishing is the activity of making information, literature, music, software and other content available to the public for sale or for free. Traditionally, the term refers to the distribution of printed works, such as books, newspapers, and magazines.
|
||||
|
||||
<https://en.wikipedia.org/wiki/Publishing>
|
||||
|
||||
and from Oxford English Dictionary:
|
||||
|
||||
> publishing, n.
|
||||
> 1. The action of making something publicly known; official or public notification; promulgation, public announcement; = publication n. 1.
|
||||
> 2. The action or business of preparing and issuing books, newspapers, etc., for public sale or distribution; an instance of this; = publication n. 2. Cf. publish v. 3a.
|
||||
|
||||
(pulling from publish:)
|
||||
> publish, v.
|
||||
> I. To make public.
|
||||
> 1. a. transitive. To announce in a formal or official manner; to proclaim; to promulgate (a law, decree, etc.); †to pronounce (a judicial sentence) (obsolete).
|
||||
> b. transitive. To announce or read (banns) in church before an intended marriage; (U.S. regional, chiefly north-eastern) to announce publicly the name of (a person intending marriage).
|
||||
|
||||
<https://www.oed.com/view/Entry/154077>
|
||||
<https://www.oed.com/view/Entry/154072>
|
||||
|
||||
- Experiment around digital publishing from fellow [[Hypha|Hypha Co-op]] member-workers:
|
||||
|
||||
> We are building the Distributed Press — a beginner friendly, open-source publishing tool for the distributed web. Aiming to empower authors, Distributed Press utilizes the distributed web to amplify free expression worldwide, while exposing sources of misinformation.
|
||||
> We all have a sense of the wide-ranging and complex issues facing publishing today: political censorship, disinformation, walled gardens, and the decline of independent media. Yet the solutions to these challenges remain unclear. Working with authors, audiences, and distributed web communities, we hope to co-develop new tools, in order to make publishing fair, democratic, and dignified for all.
|
||||
|
||||
<https://distributed.press/>
|
||||
|
||||
- Something about recent ecosystem of publishing (James Pogue. January 2020. "They Made a Movie Out of It"):
|
||||
|
||||
> Almost all notable book-length nonfiction written in this country emerges as an expansion of work that was first published by a magazine, so—whether they admit it or not—magazines are the incubators for the nonfiction writers who describe our world. But these outlets generally make not the barest pretense of trying to pay writers enough to build a life. Instead, editors at prestige outlets increasingly view writing as germinal IP. We have a perfectly good word for the kind of writing and reporting this all encourages: trash.
|
||||
|
||||
<https://thebaffler.com/salvos/they-made-a-movie-out-of-it-pogue>
|
32
_notes/rss.md
Normal file
32
_notes/rss.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
title: RSS
|
||||
date_updated: 2021-04-25
|
||||
date_created: 2020-03-15
|
||||
status: 🌻
|
||||
---
|
||||
|
||||
RSS (RDF Site Summary or Really Simple Syndication) is a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format. These feeds can, for example, allow a user to keep track of many different websites in a single news aggregator. The news aggregator will automatically check the RSS feed for new content, allowing the list to be automatically passed from website to website or from website to user. This passing of content is called web syndication. Websites usually use RSS feeds to publish frequently updated information, such as blog entries, news headlines, or episodes of audio and video series. RSS is also used to distribute podcasts. An RSS document (called "feed", "web feed", or "channel") includes full or summarized text, and metadata, like [[publishing]] date and author's name.
|
||||
|
||||
<https://en.wikipedia.org/wiki/RSS>
|
||||
|
||||
Recent reporting and reflecting on the afterlives of RSS: "RSS is undead" "RSS died. Whether you blame Feedburner, or Google Reader, or Digg Reader ... the humble protocol has managed to keep on trudging along despite all evidence that it is dead, dead, dead." (Danny Chrichton, 2018); "Today, RSS is not dead. But neither is it anywhere near as popular as it once was." (Sinclair Target, 2019); "The technology is dead for mainstream acceptance but still has plenty of uses." "RSS...lives on as a ghost" (Some dude says, 2020)
|
||||
|
||||
Partially convinced by the take that the current web is "the legacy of RSS, even if it’s not built on RSS" (Werbach, quoted from below):
|
||||
|
||||
> The first is a story about a broad vision for the web’s future that never quite came to fruition. The second is a story about how a collaborative effort to improve a popular standard devolved into one of the most contentious forks in the history of open-source software development. RSS was one of the standards that promised to deliver [a] syndicated future. ...And yet, two decades later, after the rise of social media and Google’s decision to shut down [[Google Reader]], RSS appears to be a slowly dying technology, now used chiefly by podcasters, programmers with tech blogs, and the occasional journalist.
|
||||
> The fork happened [in 2000] after Dornfest announced a proposed RSS 1.0 specification and formed the RSS-DEV Working Group. RSS would fork again in 2003 [into Atom], when several developers frustrated with the bickering in the RSS community sought to create an entirely new format. After the introduction of Atom, there were three competing versions of RSS: Winer’s RSS 0.92 (updated to RSS 2.0 in 2002 and renamed “Really Simple Syndication”), the RSS-DEV Working Group’s RSS 1.0, and Atom. Today we mostly use RSS 2.0 and Atom.
|
||||
> Today, RSS is not dead. But neither is it anywhere near as popular as it once was... [The most pervasive explanation is] ... Social networks, just like RSS, provide a feed featuring all the latest news on the internet. Social networks took over from RSS because they were simply better feeds. Another theory is that RSS was always too geeky for regular people.
|
||||
|
||||
<https://www.vice.com/en/article/a3mm4z/the-rise-and-demise-of-rss>
|
||||
|
||||
Not sure to believe the take that it's all about product design:
|
||||
|
||||
> [Lack of prioritization, discovery and curation for users, and lack of analytics and branding content for publishers] are just some of the product issues with RSS, and together they ensure that the protocol will never reach the ubiquity required to supplant centralized tech corporations. [For] solving RSS as business model. There needs to be some sort of a commerce layer around feeds, so that there is an incentive to improve and optimize the RSS experience.
|
||||
|
||||
<https://techcrunch.com/2018/04/07/rss-is-undead/>
|
||||
|
||||
Its death in spite of its ubiquity and cheapness:
|
||||
|
||||
> RSS has largely been forgotten but lives on as a ghost on almost every major website. The RSS feed exists, it’s updated, and everything is accessible without anyone touching it. It’s so stable no one has to think to check the RSS feed; it just works. RSS is also so computationally cheap no one bothers to exclude it since it’s effectively a rounding error in processing.
|
||||
|
||||
<https://somedudesays.com/2020/04/rss-in-2020/>
|
19
_notes/social-stories.md
Normal file
19
_notes/social-stories.md
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
date: 2021-04-18
|
||||
status: 🌳
|
||||
---
|
||||
**What is it that you hope to explore during your residency?**
|
||||
|
||||
We are exploring the protocols, languages, and material of the internet as a place for experimentation and practice. The exploration is based on composing multiple histories of the internet into a collective resyndicatable [[digital public garden|digital garden]] to weave the examples, narratives, and ideas together as a contribution to the [[Field Guide to the Digital Real]]. We are interested in how this garden can serve as a site for [micro] world-making as we repurpose the existing internet through our practice.
|
||||
|
||||
**Can you provide a great, existing example (that we can share with audiences who may be unfamiliar with this line of thinking/work)?**
|
||||
|
||||
- <https://github.com/ournetworks>: the conference [[Dawn Walker|Dawn]], [[Garry Ing|Garry]], and friends, have been organizing. We've had great talks/workshops/happenings that weave network protocols and materially. Our GitHub org is where we organize openly
|
||||
- <https://handbook.hypha.coop/>: [[Hypha]]'s (living) handbook that gives a sense of how we work and operate through online spaces
|
||||
- <https://pmvabf.org/>: Printed Matter’s Virtual Art Book Fair. We think their shift to virtual this year was really neat to experience. They had a lot of support from folks and created an experience that feels unique and "of-the-net" instead of directly replicating the in-person event. We were also are thinking about <https://www.anarchistbookfair.ca/tablers-2020/>
|
||||
- <http://designforthe.net/workshops/ascii/>: A workshop [Mindy Seu](https://mindyseu.com/) hosted as part of [A-B-Z-TXT](https://a-b-z.co/). Pulling together concrete poetry and typewriter art, to create imaginary internet dwellings
|
||||
- <http://contemporary-home-computing.org/turing-complete-user/>: Essay from [Olia Lialina](http://art.teleportacia.org/) expanding on the concept of _General Purpose Users_
|
||||
- <https://www.foreignobjects.net/internet-as-a-city>
|
||||
- [[Community Memory]]
|
||||
- [[World in 24 Hours]]
|
||||
- <https://thecreativeindependent.com/people/laurel-schwulst-my-website-is-a-shifting-house-next-to-a-river-of-knowledge-what-could-yours-be/>
|
18
_notes/ssb.md
Normal file
18
_notes/ssb.md
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
title: SSB
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![Hermies](https://user-images.githubusercontent.com/227587/114308935-73597c80-9ab3-11eb-8830-eb8ecb250eb5.png){:.w-60}
|
||||
|
||||
_Paul Frazee, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons_
|
||||
|
||||
Scuttlebutt is a decentralised secure gossip platform.
|
||||
|
||||
Like other social platforms, you can send messages to your friends and share posts onto a feed. The cool thing is that the underlying technology here means that messages are passed directly between friends via a [[peer-to-peer]] (p2p) [gossip protocol](https://en.wikipedia.org/wiki/Gossip_protocol).
|
||||
|
||||
As a decentralized social network, Scuttlebutt passes the data from friend to friend, without any central server. The data is localised and distributed so it also happens to work [[offline]]!
|
||||
|
||||
The name, Scuttlebutt, came from sea-slang for gossip. Basically, like a watercooler on a ship, where sailors and pirates go have a yarn.
|
||||
|
||||
<https://scuttlebutt.nz/>
|
6
_notes/statement-of-intent.md
Normal file
6
_notes/statement-of-intent.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: Statement of Intent
|
||||
status: 🌴
|
||||
---
|
||||
|
||||
[[Hypha]]’s practice is situated across many topics that are present in the theme of _Adaptive Reuse & Creative Misuse_. Drawing from our collective experiences, histories, and methodologies, our goal for the micro-residency to investigate how notions of digital [[infrastructure]] can be reused, reinterpreted, and reconfigured, to realize a kind of [[public space]]. Our approach to this theme will be composed of a few, very preliminary, subjects that will ground the residency: the situated histories of digital infrastructure, the implications of protocols for [[publishing]] ([[Hypertext]], [[RSS]], [[Peer-to-peer]]) in defining public spaces, and the possibilities of cooperative approaches to [[maintenance]] and repair. Our intent is to make the process of this investigation [[public space|public]] through online tools mapping our thinking about the theme (Open channels in [Are.na](https://www.are.na/) as one example) and cultivating a [[Digital Public Garden]] as part of Hypha’s contributions to the initiative (a [[RSS|resyndicatable]] adaptive online notebook). The outputs from the [[bentway|micro-residency]] will be a written contribution to the [[Field Guide to the Digital Real]] and a micro-website containing the synthesis of our investigations and our evolving practice. The outputs will be textual and visual, and draw from our collaborative practices as a cooperative. They will explore ways to represent relationships with existing and emergent technologies within our communities. Through our micro-residency we will capture a poetic interpretation of the theme and provide prompts for institutions in the [[city]] on how they could reconfigure technology to create radically creative platforms.
|
19
_notes/togethernet.md
Normal file
19
_notes/togethernet.md
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
date: 2021-04-18
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
> Togethernet is a collaborative archiving software in the form of a desktop web app that allows both [[peer-to-peer]] (P2P), traceless messaging as well as archived communications.
|
||||
|
||||
> Designed around the ethos of data transparency and consent, the goal of the software is to transform digital rights practices such as the [right to be forgotten](https://gdpr.eu/right-to-be-forgotten/) into an embodied practice through the reimagination of software architecture and user experience.
|
||||
|
||||
> The software contains two types of communication channels: the Ephemeral Channel and the Archival Channel.
|
||||
|
||||
> The Ephemeral Channel uses the WebRTC peer-to-peer protocol, which means conversations do not go through a centralized server (bye google facebook AWS 👋🏼) and are permenantly erased once the browser closes.
|
||||
|
||||
> The Archival Channel publishes meeting notes to a centeralized database that your organization may self-host or host on a third party’s server.
|
||||
|
||||
![Togethernet interface](assets/images/togethernet.jpg)
|
||||
|
||||
<https://togethernet-website.herokuapp.com/>
|
||||
<https://www.eyebeam.org/residents/xin-xin/>
|
24
_notes/unwalled-garden.md
Normal file
24
_notes/unwalled-garden.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
date: 2021-04-18
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
An open protocol for building social Web applications.
|
||||
|
||||
Part of the [[Beaker browser]] project.
|
||||
|
||||
Unwalled.Garden is a kind of “Souped up [[RSS]].” Every user has a website, they publish their content as files, and they subscribe to each others’ sites.
|
||||
|
||||
While [[RSS]] was primarily for blogging, Unwalled.Garden includes data types for many kinds of use-cases. These data types are spread across many JSON files which have pre-defined schemas.
|
||||
|
||||
The schemas are simple, obvious, and syntax-free. A “post” record looks like this:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "unwalled.garden/post",
|
||||
"body": "Hello, world!",
|
||||
"createdAt": "2019-05-21T21:27:45.471Z"
|
||||
}
|
||||
```
|
||||
|
||||
<https://unwalled.garden/>
|
7
_notes/web-browser.md
Normal file
7
_notes/web-browser.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
A web browser (commonly referred to as a browser) is a software application for accessing the [[World Wide Web]]. When a user requests a web page from a particular website, the web browser retrieves the necessary content from a web server and then displays the page on the user's device.
|
||||
|
||||
<https://en.wikipedia.org/wiki/Web_browser>
|
13
_notes/world-in-24-hours.md
Normal file
13
_notes/world-in-24-hours.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
date: 2021-04-25
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![The World in 24 Hours at Ars Electronica Festival, 1982](assets/images/world-in-24hrs.jpeg)
|
||||
_The World in 24 Hours at Ars Electronica Festival, 1982. Photograph by Sepp Schaffler._
|
||||
|
||||
> The World in 24 Hours was a networked happening that linked sixteen cities worldwide, with the media art festival Ars Electronica in Linz, Austria acting as the central node. Each site was given one hour—coinciding with midday, local time—in which to generate and transmit content over a wide range of devices and networks, including computer terminals, phone, fax, and slow-scan TV.
|
||||
>
|
||||
> The project reflected [Robert] Adrian’s early insight that the network is not an artistic medium in the traditional sense. Rather, networked art would be defined by exchange—“taking place in the space between machines, only when the machines were on.”
|
||||
|
||||
<https://anthology.rhizome.org/the-world-in-24-hours>
|
33
_notes/world-wide-web.md
Normal file
33
_notes/world-wide-web.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
https://www.w3.org/Proposal.html
|
||||
|
||||
# WorldWideWeb: Proposal for a HyperText Project
|
||||
From:
|
||||
T. Berners-Lee/CN, R. Cailliau/ECP
|
||||
Date:
|
||||
12 November 1990
|
||||
|
||||
![Screen Shot 2021-04-11 at 10 25 41 AM](https://user-images.githubusercontent.com/227587/114308013-52435c80-9ab0-11eb-9a1d-fa4814a542a9.png)
|
||||
|
||||
## Abstract
|
||||
HyperText is a way to link and access information of various kinds as a web of nodes in which the user can browse at will. Potentially, HyperText provides a single user-interface to many large classes of stored information such as reports, notes, data-bases, computer documentation and on-line systems help. We propose the implementation of a simple scheme to incorporate several different servers of machine-stored information already available at [[CERN]], including an analysis of the requirements for information access needs by experiments.
|
||||
|
||||
## Hypertext concepts
|
||||
The principles of hypertext, and their applicability to the CERN environment, are discussed more fully in, a glossary of technical terms is given in. Here we give a short presentation of hypertext.
|
||||
A program which provides access to the hypertext world we call a browser. When starting a hypertext browser on your workstation, you will first be presented with a hypertext page which is personal to you : your personal notes, if you like. A hypertext page has pieces of text which refer to other texts. Such references are highlighted and can be selected with a mouse (on dumb terminals, they would appear in a numbered list and selection would be done by entering a number). When you select a reference, the browser presents you with the text which is referenced: you have made the browser follow a hypertext link :
|
||||
|
||||
(see Fig. 1: hypertext links).
|
||||
|
||||
That text itself has links to other texts and so on. In fig. 1, clicking on the GHI would take you to the minutes of that meeting. There you would get interested in the discussion of the UPS, and click on the highlighted word UPS to find out more about it.
|
||||
|
||||
The texts are linked together in a way that one can go from one concept to another to find the information one wants. The network of links is called a web . The web need not be hierarchical, and therefore it is not necessary to "climb up a tree" all the way again before you can go down to a different but related subject. The web is also not complete, since it is hard to imagine that all the possible links would be put in by authors. Yet a small number of links is usually sufficient for getting from anywhere to anywhere else in a small number of hops.
|
||||
|
||||
The texts are known as nodes. The process of proceeding from node to node is called navigation . Nodes do not need to be on the same machine: links may point across machine boundaries. Having a world wide web implies some solutions must be found for problems such as different access protocols and different node content formats. These issues are addressed by our proposal.
|
||||
|
||||
Nodes can in principle also contain non-text information such as diagrams, pictures, sound, animation etc. The term hypermedia is simply the expansion of the hypertext idea to these other media. Where facilities already exist, we aim to allow graphics interchange, but in this project, we concentrate on the universal readership for text, rather than on graphics.
|
||||
|
||||
## Applications
|
||||
The application of a universal hypertext system, once in place, will cover many areas such as document registration, on-line help, project documentation, news schemes and so on. It would be inappropriate for us (rather than those responsible) to suggest specific areas, but experiment online help, accelerator online help, assistance for computer center operators, and the dissemination of information by central services such as the user office and CN and ECP divisions are obvious candidates. WorldWideWeb (or W3 ) intends to cater for these services across the HEP community.
|
23
_notes/xanadu.md
Normal file
23
_notes/xanadu.md
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
date: 2021-04-18
|
||||
status: 🌱
|
||||
---
|
||||
|
||||
![Mockup of the Xanadu project in 1972](assets/images/xanadu2.jpeg)
|
||||
|
||||
> Project Xanadu was the first hypertext project, founded in 1960 by Ted Nelson. Administrators of Project Xanadu have declared it an improvement over the [[World Wide Web]], with the mission statement: "Today's popular software simulates paper. The World Wide Web (another imitation of paper) trivialises our original [[hypertext]] model with one-way ever-breaking links and no management of version or contents."
|
||||
|
||||
<https://en.wikipedia.org/wiki/Project_Xanadu>
|
||||
|
||||
![Boxes and lines drawing of Xanadu's concept](assets/images/xanadu.png)
|
||||
|
||||
## THE XANADU® PARALLEL UNIVERSE
|
||||
### Visibly Connected Pages and Documents for a New Kind of Writing
|
||||
|
||||
> Conventional electronic documents were designed in the 1970s by well-funded conventional thinkers at Xerox PARC, who asked, "How can we imitate paper?" The result is today's electronic document-- Microsoft Word format and the printout format PDF. They imitate paper and emphasize appearance and fonts.
|
||||
>
|
||||
> But much earlier, in 1960, the Xanadu project started with a completely different idea: since interactive screens are coming (who else knew?), we asked a different question: How can we IMPROVE on paper?
|
||||
>
|
||||
> We foresaw a new screen literature of parallel, interconnected documents.
|
||||
|
||||
<https://xanadu.com/xUniverse-D6>
|
115
_plugins/bidirectional_links_generator.rb
Normal file
115
_plugins/bidirectional_links_generator.rb
Normal file
@ -0,0 +1,115 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Generate bi-directional links from a given collection and the nodes graph.
|
||||
class BidirectionalLinksGenerator < Jekyll::Generator
|
||||
def generate(site)
|
||||
graph_nodes = []
|
||||
graph_edges = []
|
||||
|
||||
all_notes = site.collections['notes'].docs
|
||||
all_pages = site.pages
|
||||
|
||||
all_docs = all_notes + all_pages
|
||||
|
||||
link_extension = site.config['use_html_extension'] ? '.html' : ''
|
||||
|
||||
# Convert all Wiki/Roam-style double-bracket link syntax to plain HTML
|
||||
# anchor tag elements (<a>) with "internal-link" CSS class
|
||||
all_docs.each do |current_note|
|
||||
all_docs.each do |note_potentially_linked_to|
|
||||
title_from_filename = File.basename(
|
||||
note_potentially_linked_to.basename,
|
||||
File.extname(note_potentially_linked_to.basename)
|
||||
).gsub('_', ' ').gsub('-', ' ').capitalize
|
||||
|
||||
new_href = "#{site.baseurl}#{note_potentially_linked_to.url}#{link_extension}"
|
||||
anchor_tag = "<a class='internal-link' href='#{new_href}'>\\1</a>"
|
||||
|
||||
# Replace double-bracketed links with label using note title
|
||||
# [[A note about cats|this is a link to the note about cats]]
|
||||
current_note.content = current_note.content.gsub(
|
||||
/\[\[#{title_from_filename}\|(.+?)(?=\])\]\]/i,
|
||||
anchor_tag
|
||||
)
|
||||
|
||||
# Replace double-bracketed links with label using note filename
|
||||
# [[cats|this is a link to the note about cats]]
|
||||
current_note.content = current_note.content.gsub(
|
||||
/\[\[#{note_potentially_linked_to.data['title']}\|(.+?)(?=\])\]\]/i,
|
||||
anchor_tag
|
||||
)
|
||||
|
||||
# Replace double-bracketed links using note title
|
||||
# [[a note about cats]]
|
||||
current_note.content = current_note.content.gsub(
|
||||
/\[\[(#{note_potentially_linked_to.data['title']})\]\]/i,
|
||||
anchor_tag
|
||||
)
|
||||
|
||||
# Replace double-bracketed links using note filename
|
||||
# [[cats]]
|
||||
current_note.content = current_note.content.gsub(
|
||||
/\[\[(#{title_from_filename})\]\]/i,
|
||||
anchor_tag
|
||||
)
|
||||
end
|
||||
|
||||
# At this point, all remaining double-bracket-wrapped words are
|
||||
# pointing to non-existing pages, so let's turn them into disabled
|
||||
# links by greying them out and changing the cursor
|
||||
current_note.content = current_note.content.gsub(
|
||||
/\[\[(.*)\]\]/i, # match on the remaining double-bracket links
|
||||
<<~HTML.chomp # replace with this HTML (\\1 is what was inside the brackets)
|
||||
<span title='There is no note that matches this link.' class='invalid-link'>
|
||||
<span class='invalid-link-brackets'>[[</span>
|
||||
\\1
|
||||
<span class='invalid-link-brackets'>]]</span></span>
|
||||
HTML
|
||||
)
|
||||
end
|
||||
|
||||
# Identify note backlinks and add them to each note
|
||||
all_notes.each do |current_note|
|
||||
# Nodes: Jekyll
|
||||
notes_linking_to_current_note = all_notes.filter do |e|
|
||||
e.content.include?("href='#{current_note.url}'")
|
||||
end
|
||||
|
||||
# Nodes: Graph
|
||||
unless current_note.path.include?('_notes/index.html')
|
||||
graph_nodes << {
|
||||
id: note_id_from_note(current_note),
|
||||
path: "#{site.baseurl}#{current_note.url}#{link_extension}",
|
||||
label: current_note.data['title'],
|
||||
status: current_note.data['status'],
|
||||
type: current_note.data['type']
|
||||
}
|
||||
end
|
||||
|
||||
# Edges: Jekyll
|
||||
current_note.data['backlinks'] = notes_linking_to_current_note
|
||||
|
||||
# Edges: Graph
|
||||
notes_linking_to_current_note.each do |n|
|
||||
graph_edges << {
|
||||
source: note_id_from_note(n),
|
||||
target: note_id_from_note(current_note)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
File.write('_includes/notes_graph.json', JSON.dump({
|
||||
edges: graph_edges,
|
||||
nodes: graph_nodes
|
||||
}))
|
||||
end
|
||||
|
||||
def note_id_from_note(note)
|
||||
note.data['title']
|
||||
.dup
|
||||
.gsub(/\W+/, ' ')
|
||||
.delete(' ')
|
||||
.to_i(36)
|
||||
.to_s
|
||||
end
|
||||
end
|
21
_plugins/empty_front_matter_note_injector.rb
Normal file
21
_plugins/empty_front_matter_note_injector.rb
Normal file
@ -0,0 +1,21 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
front_matter_date = DateTime.now.strftime('%Y-%m-%d')
|
||||
|
||||
EMPTY_FRONT_MATTER = <<~JEKYLL
|
||||
---
|
||||
date: #{front_matter_date}
|
||||
status: 🌱
|
||||
---
|
||||
JEKYLL
|
||||
|
||||
# Inject empty front matter in notes that don't have any
|
||||
Jekyll::Hooks.register :site, :post_read do |site|
|
||||
Dir.glob("#{site.collections['notes'].relative_directory}/**/*.md").each do |filename|
|
||||
raw_note_content = File.read(filename)
|
||||
unless raw_note_content.start_with?('---')
|
||||
raw_note_content.prepend(EMPTY_FRONT_MATTER)
|
||||
File.write(filename, raw_note_content)
|
||||
end
|
||||
end
|
||||
end
|
263
_sass/_digital-garden.scss
Normal file
263
_sass/_digital-garden.scss
Normal file
@ -0,0 +1,263 @@
|
||||
.links-foreground-text a {
|
||||
color: var(--foreground-text);
|
||||
}
|
||||
|
||||
.links-foreground-text a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.no-underline-hover:hover,
|
||||
.no-underline-hover:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
// Header
|
||||
|
||||
#header {
|
||||
transition: transform 100ms ease-in-out;
|
||||
}
|
||||
|
||||
.header-inactive {
|
||||
transform: translateY(-100%);
|
||||
}
|
||||
|
||||
// Sticky helper
|
||||
|
||||
.sticky {
|
||||
position: sticky;
|
||||
}
|
||||
|
||||
// Fonts helper
|
||||
|
||||
.anthony {
|
||||
font-family: "Anthony", sans-serif;
|
||||
}
|
||||
|
||||
.work-sans-light {
|
||||
font-family: "Work Sans Light", sans-serif;
|
||||
}
|
||||
|
||||
.word-wrap {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
// Shadow helper
|
||||
|
||||
.shadow-solid-accent { box-shadow: 2px 2px 10px rgba( var(--foreground-text-rgb), 0.2 ); }
|
||||
|
||||
// Width helper
|
||||
|
||||
.w6 {
|
||||
width: 20rem;
|
||||
}
|
||||
|
||||
// Height Helper
|
||||
|
||||
.min-vh-100-header-comp {
|
||||
min-height: calc(100vh - 6rem);
|
||||
}
|
||||
|
||||
// Extended cursors
|
||||
|
||||
.grab:hover {
|
||||
cursor: grab;
|
||||
}
|
||||
|
||||
.grabbing:active {
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
// Notes Graph
|
||||
|
||||
.links path {
|
||||
stroke: var(--foreground-text);
|
||||
fill: transparent;
|
||||
|
||||
&.active {
|
||||
stroke-dasharray: 5;
|
||||
animation: dash 40s linear;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes dash {
|
||||
to {
|
||||
stroke-dashoffset: 1000;
|
||||
}
|
||||
}
|
||||
|
||||
.nodes circle {
|
||||
cursor: pointer;
|
||||
fill: var(--background);
|
||||
transition: all 0.15s ease-out;
|
||||
|
||||
&.active {
|
||||
stroke: var(--foreground-text);
|
||||
stroke-dasharray: 3;
|
||||
animation: dash 80s linear;
|
||||
}
|
||||
|
||||
&[long-form] {
|
||||
fill: rgba(var(--internal-link-rgb), 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
.text text {
|
||||
cursor: pointer;
|
||||
fill: var(--foreground-text);
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.nodes [active] {
|
||||
cursor: pointer;
|
||||
stroke: var(--active-note);
|
||||
|
||||
&.active {
|
||||
stroke: var(--active-note);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.text [active] {
|
||||
fill: var(--active-note);
|
||||
}
|
||||
|
||||
.status {
|
||||
pointer-events: none;
|
||||
@-moz-document url-prefix() {
|
||||
text {
|
||||
transform: translateX(2px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Notes inline styles
|
||||
|
||||
.note-meta:before {
|
||||
content: attr(data-status);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
text-indent: -4px;
|
||||
line-height: 30px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 100%;
|
||||
border: 1px solid rgba(var(--active-note-rgb), 0.5);
|
||||
background: rgba(var(--active-note-rgb), 0.1);
|
||||
}
|
||||
|
||||
@-moz-document url-prefix() {
|
||||
.note-meta:before {
|
||||
text-indent: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.internal-link {
|
||||
padding: 0 0.5em 0.1em;
|
||||
text-decoration: none;
|
||||
background: rgba(var(--internal-link-rgb), 0.25);
|
||||
border: 1px solid rgba(var(--internal-link-rgb), 0.5);
|
||||
border-radius: 9999px;
|
||||
white-space: nowrap;
|
||||
transition: all 200ms ease-in-out;
|
||||
|
||||
&:hover {
|
||||
border-color: var(--internal-link-rgb);
|
||||
box-shadow: 2px 2px 10px rgba( var(--foreground-text-rgb), 0.2 );
|
||||
}
|
||||
}
|
||||
|
||||
.invalid-link {
|
||||
padding: 0 0.5em 0.1em;
|
||||
text-decoration: none;
|
||||
background: rgba(var(--internal-link-rgb), 0.1);
|
||||
border: 1px solid rgba(var(--internal-link-rgb), 0.5);
|
||||
border-radius: 9999px;
|
||||
color: var(--internal-link-rgb);
|
||||
}
|
||||
|
||||
.note-contents {
|
||||
blockquote {
|
||||
margin: 0 0 0 0.75em;
|
||||
padding: 0 0.75em;
|
||||
border-left: 2px solid var(--foreground-text);
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
padding-left: 1.75em;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-width: 0;
|
||||
border-top: 1px solid var(--foreground-text);
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 1rem;
|
||||
background-color: rgba(var(--internal-link-rgb), 0.2);
|
||||
border-radius: 6px;
|
||||
font-size: .875rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
li + li {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
h1, h2, h3,
|
||||
h4, h5, h6 {
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
.footnotes {
|
||||
font-size: .875rem;
|
||||
}
|
||||
|
||||
[role="doc-endnote"]:target {
|
||||
font-weight: bold;
|
||||
background: rgba(var(--internal-link-rgb), 0.25);
|
||||
}
|
||||
|
||||
[role="doc-noteref"]{
|
||||
&:target {
|
||||
pointer-events: none;
|
||||
margin-top: -200px;
|
||||
padding-top: 200px;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
}
|
||||
a {
|
||||
pointer-events: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Link previews
|
||||
|
||||
#tooltip-content {
|
||||
max-height: 250px;
|
||||
}
|
||||
|
||||
#tooltip-content:after {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
pointer-events: none;
|
||||
background-image: linear-gradient(rgba(#fff, 0), rgba(#fff, 1));
|
||||
width: 100%;
|
||||
height: 2rem;
|
||||
}
|
16
_sass/_fonts.scss
Normal file
16
_sass/_fonts.scss
Normal file
@ -0,0 +1,16 @@
|
||||
// Anthony by Sun Young Oh
|
||||
// https://gitlab.com/velvetyne/anthony
|
||||
|
||||
@font-face {
|
||||
font-family: Anthony;
|
||||
src: url('../fonts/Anthony.woff2') format('woff2'),
|
||||
url('../fonts/Anthony.woff') format('woff');
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Work Sans Light;
|
||||
src: url('../fonts/WorkSans-Light.woff2') format('woff2'),
|
||||
url('../fonts/WorkSans-Light.woff') format('woff');
|
||||
font-display: swap;
|
||||
}
|
3
_sass/_tachyons.min.scss
Normal file
3
_sass/_tachyons.min.scss
Normal file
File diff suppressed because one or more lines are too long
28
_sass/_variables.scss
Normal file
28
_sass/_variables.scss
Normal file
@ -0,0 +1,28 @@
|
||||
:root {
|
||||
--active-note: #9e00ff;
|
||||
--active-note-rgb: 158, 0, 255;
|
||||
--foreground-text: #f06e2f;
|
||||
--foreground-text-rgb: 240, 110, 47;
|
||||
--internal-link-rgb: 245, 164, 134;
|
||||
--background: #eaf1ca;
|
||||
}
|
||||
|
||||
.bg-foreground-text {
|
||||
background-color: var(--foreground-text);
|
||||
}
|
||||
|
||||
.b--foreground-text {
|
||||
border-color: var(--foreground-text);
|
||||
}
|
||||
|
||||
.foreground-text {
|
||||
color: var(--foreground-text);
|
||||
}
|
||||
|
||||
.bg-background {
|
||||
background-color: var(--background);
|
||||
}
|
||||
|
||||
.b--background {
|
||||
border-color: var(--background);
|
||||
}
|
23
about.md
Normal file
23
about.md
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
layout: page
|
||||
title: about
|
||||
---
|
||||
|
||||
[![](/assets/images/cdc.webp)](https://www.kcl.ac.uk/research/cdc)
|
||||
|
||||
This is a digital garden for the [Centre for Digital Culture (CDC)](https://www.kcl.ac.uk/research/cdc) at [King's College London](https://kcl.ac.uk/).
|
||||
|
||||
The Centre for Digital Culture is an interdisciplinary research centre promoting research and public engagement with digital culture, including the dynamics and practices, imaginaries and materialities, interactions and infrastructures, forms and formats that accompany the web, social media and networked digital devices. Through our projects and activities we support critical inquiry both with and about digital technologies across disciplines, languages, regions and online spaces.
|
||||
|
||||
The Centre for Digital Culture is part of the [Digital Futures Institute](https://www.kcl.ac.uk/dfi).
|
||||
|
||||
|
||||
## website credits
|
||||
|
||||
The website was developed with the [Autonomic cooperative](https://autonomic.zone/) drawing on a [digital garden project](https://thebentway.ca/stories/digital-and-as-public-space/) from [Hypha](https://hypha.coop/), a worker co-operative based in Toronto.
|
||||
|
||||
It uses the following open source components:
|
||||
- **[Anthony](http://velvetyne.fr/fonts/anthony/)** - a typeface designed by [Sun Young Oh](https://www.sunyoungoh.com/) and inspired from artworks by British sculptor Anthony Caro. The form of this typeface comes from his sculptures that are leaning against each other. Anthony is licensed under the [SIL Open Font License v1.1](http://scripts.sil.org/OFL)
|
||||
- **[Work Sans](https://github.com/weiweihuanghuang/Work-Sans)** - a typeface designed by [Wei Huang](http://charlix.cx/) based loosely on early Grotesques. Work Sans was made in part on the stolen lands of the Wurundjeri and Boon Wurrung people of the Kulin nations. Work Sans is licensed under the [SIL Open Font License v1.1](http://scripts.sil.org/OFL)
|
||||
- **[Tachyons](https://tachyons.io/)** - a modular CSS library with a few extended features.
|
||||
- **[D3.js](https://d3js.org/)** - a JavaScript library for visualizing data. D3.js was used to create the interactive knowledge graph. Originally from [Digital garden Jekyll template](https://github.com/maximevaillancourt/digital-garden-jekyll-template) by Maxime Vaillancourt.
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
9
assets/css/style.scss
Normal file
9
assets/css/style.scss
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
---
|
||||
|
||||
@import
|
||||
"fonts",
|
||||
"tachyons.min",
|
||||
"variables",
|
||||
"digital-garden"
|
||||
;
|
BIN
assets/images/cdc.webp
Normal file
BIN
assets/images/cdc.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
File diff suppressed because one or more lines are too long
97
bentway.html
97
bentway.html
File diff suppressed because one or more lines are too long
22
colophon.md
Normal file
22
colophon.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
layout: page
|
||||
title: Colophon
|
||||
---
|
||||
|
||||
This micro-site is part of [Bentway's](/bentway) _Digital and/as Public Space_ initiative exploring the new reality of hybrid realms that blend digital and physical spaces.
|
||||
|
||||
[Hypha](/hypha) is a worker co-operative based in Toronto which helps organizations and communities redesign their relationships with digital technology.
|
||||
|
||||
## Typography
|
||||
{:.anthony.f1.normal.mb3}
|
||||
|
||||
[Anthony](http://velvetyne.fr/fonts/anthony/) is a typeface designed by [Sun Young Oh](https://www.sunyoungoh.com/) and inspired from artworks by British sculptor Anthony Caro. The form of this typeface comes from his sculptures that are leaning against each other. Anthony is licensed under the SIL Open Font License v1.1 (http://scripts.sil.org/OFL)
|
||||
|
||||
[Work Sans](https://github.com/weiweihuanghuang/Work-Sans) is a typeface designed by [Wei Huang](http://charlix.cx/) based loosely on early Grotesques. Work Sans was made in part on the stolen lands of the Wurundjeri and Boon Wurrung people of the Kulin nations. Work Sans is licensed under the SIL Open Font License v1.1 (http://scripts.sil.org/OFL)
|
||||
|
||||
## Layout
|
||||
{:.anthony.f1.normal.mb3}
|
||||
|
||||
The layout of the micro-site was developed with [Tachyons](https://tachyons.io/) a modular CSS library with a few extended features.
|
||||
|
||||
[D3.js](https://d3js.org/), a JavaScript library for visualizing data, is used to create the interactive knowledge graph. Originally from [Digital garden Jekyll template](https://github.com/maximevaillancourt/digital-garden-jekyll-template) by Maxime Vaillancourt.
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
12
docker-compose.dev.yml
Normal file
12
docker-compose.dev.yml
Normal file
@ -0,0 +1,12 @@
|
||||
# no version needed since 2020
|
||||
|
||||
services:
|
||||
jekyll:
|
||||
image: git.autonomic.zone/autonomic-cooperative/kcl-site-dev:latest
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.dev
|
||||
volumes:
|
||||
- .:/site
|
||||
ports:
|
||||
- '4000:4000'
|
37
docker-compose.yml
Normal file
37
docker-compose.yml
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
app:
|
||||
image: git.autonomic.zone/autonomic-cooperative/kcl-site:latest
|
||||
networks:
|
||||
- proxy
|
||||
volumes:
|
||||
- html_content:/usr/share/nginx/html
|
||||
configs:
|
||||
- source: nginx_conf
|
||||
target: /etc/nginx/nginx.conf
|
||||
deploy:
|
||||
update_config:
|
||||
failure_action: rollback
|
||||
order: start-first
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.${STACK_NAME}-jekyll.loadbalancer.server.port=80"
|
||||
- "traefik.http.routers.${STACK_NAME}-jekyll.rule=Host(`${DOMAIN}`)"
|
||||
- "traefik.http.routers.${STACK_NAME}-jekyll.entrypoints=web-secure"
|
||||
- "traefik.http.routers.${STACK_NAME}-jekyll.tls.certresolver=production"
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
internal:
|
||||
|
||||
volumes:
|
||||
html_content:
|
||||
|
||||
configs:
|
||||
nginx_conf:
|
||||
name: ${STACK_NAME}_nginx_conf_${NGINX_CONF_VERSION}
|
||||
file: nginx.conf
|
||||
template_driver: golang
|
19
docker-entrypoint.sh
Normal file
19
docker-entrypoint.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [ ! -f Gemfile ]; then
|
||||
echo "NOTE: hmm, I don't see a Gemfile so I don't think there's a jekyll site here"
|
||||
echo "Either you didn't mount a volume, or you mounted it incorrectly."
|
||||
echo "Be sure you're in your jekyll site root and use something like this to launch"
|
||||
echo ""
|
||||
echo "docker run -p 4000:4000 -v \$(pwd):/site bretfisher/jekyll-serve"
|
||||
echo ""
|
||||
echo "NOTE: To create a new site, you can use the sister image bretfisher/jekyll like:"
|
||||
echo ""
|
||||
echo "docker run -v \$(pwd):/site bretfisher/jekyll new ."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
bundle install --retry 5 --jobs 20
|
||||
|
||||
exec "$@"
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
87
garry.html
87
garry.html
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
112
hypertext.html
112
hypertext.html
File diff suppressed because one or more lines are too long
143
hypha.html
143
hypha.html
File diff suppressed because one or more lines are too long
34
index.html
34
index.html
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user