Add alt text to images

master
Tanner Collin 1 month ago
parent a7f9448a25
commit 43edace864
  1. 37
      content/.obsidian/workspace.json
  2. 2
      content/Backup Strategy.md
  3. 2
      content/Bypassing Ports.md
  4. 8
      content/ChatGPT Peanut Butter Cookies.md
  5. 6
      content/Fake Dog.md
  6. 2
      content/Helios Alpha.md
  7. 8
      content/Hydroponics Aphid War.md
  8. 6
      content/Hydroponics.md
  9. 24
      content/Japan Photography.md
  10. 4
      content/LED Dress.md
  11. 4
      content/Protospace.md
  12. 4
      content/QotNews.md
  13. 8
      content/Secret Garden.md
  14. 2
      content/Sensors.md
  15. 4
      content/Spaceport.md
  16. 6
      content/Things I Recommend.md

@ -37,7 +37,7 @@
"state": {
"type": "markdown",
"state": {
"file": "Japan Photography.md",
"file": "Secret Garden.md",
"mode": "source",
"source": false
}
@ -134,7 +134,7 @@
"state": {
"type": "backlink",
"state": {
"file": "Japan Photography.md",
"file": "Secret Garden.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -151,7 +151,7 @@
"state": {
"type": "outline",
"state": {
"file": "Japan Photography.md"
"file": "Secret Garden.md"
}
}
}
@ -174,35 +174,36 @@
},
"active": "d9a16803d250ddc4",
"lastOpenFiles": [
"Hand of Ozymandias.md",
"Japan Photography.md",
"Secret Garden.md",
"Algae Growth.md",
"Airflow.md",
"media/nft2.jpg",
"Backup Strategy.md",
"About.md",
"[.md",
"media/nft1.png",
"Helios Alpha.md",
"Hydroponics.md",
"Wine Crate Coffee Table.md",
"media/ports1.svg",
"media/backup1.svg",
"Things I Recommend.md",
"t0txt.md",
"t0 Services.md",
"Spaceport.md",
"Solar Car.md",
"Sensors.md",
"Secret Garden.md",
"Helios Alpha.md",
"QotNews.md",
"Protospace.md",
"Plant Waterer.md",
"Painting.md",
"Notica.md",
"Linux Flavour.md",
"Notica.md",
"Light Switch.md",
"LED Dress.md",
"Japan Photography.md",
"Hydroponics Log 3.md",
"Hydroponics Log 2.md",
"Hydroponics Log 1.md",
"Hydroponics Aphid War.md",
"Hydroponics.md",
"Hand of Ozymandias.md",
"Garage Door Opener.md",
"Fake Dog.md",
"media/nft2.jpg",
"media/nft1.png",
"media/ports1.svg",
"media/backup1.svg",
"media/japan12hi.jpg",
"media/japan11hi.jpg",
"media/japan10hi.jpg",

@ -28,7 +28,7 @@ I have one backup folder `/mnt/backup` on my media server at home that serves as
This backup folder is then synced to encrypted 2.5" 1 TB hard drives which I rotate between my bag, offsite, and my parents' house.
![[backup1.svg]]
![[backup1.svg | a diagram of my setup. servers and computers on the left, pointing to my home server in the middle, pointing to external hard drives on the right]]
## Backup Sources

@ -20,7 +20,7 @@ My media server at home has an OpenVPN client connected to the server and is ass
The virtual server has routing enabled and forwards inbound traffic __from the internet__ to my media server at home. This allows me to have external HTTP and SSH access.
![[ports1.svg]]
![[ports1.svg | a diagram of my setup. the client computer connecting to my home server through the cloud using a VPN tunnel.]]
## Server Setup

@ -28,12 +28,12 @@ Instructions:
7. Remove from oven and allow to cool on the baking sheet for 5 minutes before transferring to a wire rack to cool completely.
![[cookies1.jpg]]
![[cookies1.jpg | sugar, one egg, and peanut butter in a metal pot]]
![[cookies2.jpg]]
![[cookies2.jpg | dough after mixing the ingredients together. the colour is light brown and fluffy.]]
![[cookies3.jpg]]
![[cookies3.jpg | twelve raw cookies on a baking sheet with crosshatch patterns made by a fork]]
![[cookies4.jpg]]
![[cookies4.jpg | the finished cookies. crosshatch barely visible.]]
Human: The cookies turned out not bad. Too sweet, unsurprisingly with all that sugar. I like peanut butter cookies that are chewy, I'll ask for that next time. The mouthfeel is basically peanut butter giving way to grains of sugar.

@ -11,14 +11,14 @@ When the front door camera is triggered my surveillance camera system sends a me
You can find the [source code](https://git.tannercollin.com/tanner/woof) on my Gitea.
![[fake-dog.jpg]]
![[fake-dog.jpg | a speaker connected to a circuit board on my hardwood floor]]
## Technical Details
My surveillance cameras sit on a separate network without internet access and their RTSP streams are consumed by the Blue Iris NVR software running on a dedicated Windows box. When an object is detected moving through a defined area for certain cameras, Blue Iris is configured to send an MQTT message to the `iot/cameras` topic via the Mosquitto broker running on my media server.
A Python script kept alive by Supervisor runs on the Raspberry Pi and listens to the topic using the `asyncio-mqtt` module. It receives and tries to decode a JSON message like `{"serial": "SE-N-ZoneB"}`. If the camera's serial is found in a dict at the top of the script, the corresponding audio file is played using Pygame. Controlling which speaker barks is done by muting the left or right channel in the stereo audio file.
![[fake-dog2.png]]
![[fake-dog2.png | a console log output reporting the camera has activated]]
## Future Improvements
The dog has a lot of false positives from the cameras being triggered by car headlights or small animals<span class="aside"> (like a real dog)</span>. This isn't a big deal since no one is home to hear it bark and it isn't loud enough for my neighbours to hear (I've asked). I would rather have a false positive than a false negative.
@ -31,6 +31,6 @@ According to [former burglars](https://news.t0.vc/TRMA), barking dogs and securi
I previously caught a prowler who went into my backyard and tested my garage door handle to see if it was locked. He then broke into my neighbour's truck and garage after. He gets to have his face on my website:
![[fake-dog3.jpg]]
![[fake-dog3.jpg | a would-be burglar testing my garage door handle on the left, a close-up of his face on the right]]
The extra peace of mind while I'm away is worth the evening it took to set up. It was very easy to make because I reused the code I wrote for [[Protospace]]'s PA system doorbell that you can find on [GitHub](https://github.com/protospace/doorbell). It operates similarly by playing an audio file based on which 433 MHz doorbell is pressed.

@ -6,7 +6,7 @@ Wide: true
Helios Alpha is a hydroponics system that can grow up to six plants. It's designed around a single 102 L plastic tote. It holds enough water to harvest lettuce once before refilling. After the initial setup, the system can be ignored for weeks.
![[heliosalpha1.jpg]]
![[heliosalpha1.jpg | the hydroponics system from two angles. a black tub with yellow lid, covered in tin foil with six holes for plants. grow lights above suspended by metal shelving.]]
Here's directions on how you can make your own:

@ -17,22 +17,22 @@ While maintaining the garden, I noticed small white flecks which I just assumed
The white flecks turned out to be eggs the aphids were laying. The sticky substance was honeydew, a sugary liquid that aphids secrete.
![[hydro-war1.jpg]]
![[hydro-war1.jpg | underside of a green leaf in a plastic bag. several dozen aphids can be seen on it.]]
I bought a bottle of Safer's insecticidal soap to use against them. I have a walk-in shower in the downstairs basement bathroom beside the grow room, so I moved all the plants into there. I then sprayed the leaves as much as I could, top and bottom. I let it drain for a while and then rinsed thoroughly with water.
![[hydro-war2.jpg]]
![[hydro-war2.jpg | six plants sitting in a tote container lid suspended with their white roots dangling down. all inside a shower.]]
Three days later I noticed the aphids were still alive. So I bought five more bottles of aphid spray and emptied them into a bucket. I then took each plant out of the system and dunked them in the bucket, covering all leaves and the net cup. I pushed the plants in and out of the bucket forcefully, to make sure all the aphids were flushed off. I then rinsed the plants in the shower thoroughly like before.
![[hydro-war3.jpg]]
![[hydro-war3.jpg | a strawberry plant being submerged in a white bucket of aphid spray. its roots are dangling off the side of the bucket.]]
Three days later I did this all over again, just to make sure they were gone. This seemed to work but I noticed the aphids returned a couple months later. It was one of the reasons I decided to end this round of growth experiment.
## Mould
A few weeks after the aphid dunking I noticed some kind of mould or powdery mildew on the strawberry crowns, right in the centre of the plants.
![[hydro-war4.jpg]]
![[hydro-war4.jpg | up close view of a strawberry plant crown covered in fuzzy grey mould spores]]
I assumed this was because I let the plants' leaves get too dense and they were blocking airflow to the crown. The airstone bubbles air into the water reservoir and the only place the humid air can escape is through the net cups and strawberry crown.

@ -21,7 +21,7 @@ I tried germinating iceberg lettuce, romaine lettuce, butterhead lettuce, arugul
Lessons learned: what leggy sprouts look like and to use enough light.
![[hydroponics1.jpg]]
![[hydroponics1.jpg | twelve rockwool starter cubes with thin, leggy seedlings in a mess]]
### Home: Round 2
Started: 2022-03-05, ended: 2022-04-14.
@ -40,7 +40,7 @@ Lessons learned:
<span class="aside">(Top: lettuces, bottom: arugula, cress, arugula)</span>
![[hydroponics2.jpg]]
![[hydroponics2.jpg | six plants sitting in holes cut out of pink foam board]]
### Home: Round 3
Started: 2022-04-14, ended: 2022-07-23.
@ -60,4 +60,4 @@ Lessons learned:
- Hand-pollinating flowers is tedious.
- Strawberries drop tons of pedals all over the floor.
![[hydroponics3.jpg]]
![[hydroponics3.jpg | six strawberry plants with crazy dark green leaves creating a thick bush. there are pink flowers on top under two grow lights.]]

@ -12,50 +12,50 @@ Click each photo for the full resolution.
Former Yasuda Garden, Tokyo:
[![[japan01lo.jpg]]](/media/japan01hi.jpg)
<a href="/media/japan01hi.jpg">![[japan01lo.jpg | a bridge crosses over greenish water with vibrant trees in the background]]</a>
Shinjuku Gyoen National Garden, Tokyo:
[![[japan02lo.jpg]]](/media/japan02hi.jpg)
<a href="/media/japan02hi.jpg">![[japan02lo.jpg | a tree trunk splits into a Y with ivy growing on one side]]</a>
Downtown Shinjuku, Tokyo:
[![[japan03lo.jpg]]](/media/japan03hi.jpg)
<a href="/media/japan03hi.jpg">![[japan03lo.jpg | clean skyscrapers. the centre one resembles a game console.]]</a>
Shinjuku Golden Gai, Tokyo:
[![[japan04lo.jpg]]](/media/japan04hi.jpg)
<a href="/media/japan04hi.jpg">![[japan04lo.jpg | a street wet from rain with bars on both sides. bar signs light up the pavement.]]</a>
Bamboo Forest, Kyoto:
[![[japan05lo.jpg]]](/media/japan05hi.jpg)
<a href="/media/japan05hi.jpg">![[japan05lo.jpg | tall bamboo trees with leaves at the very top, letting some light in]]</a>
Giōji Temple, Kyoto:
[![[japan06lo.jpg]]](/media/japan06hi.jpg)
<a href="/media/japan06hi.jpg">![[japan06lo.jpg | four trees with dark bark stand out against a vibrant green moss background]]</a>
Gohodo Benzaiten, Kyoto:
[![[japan07lo.jpg]]](/media/japan07hi.jpg)
<a href="/media/japan07hi.jpg">![[japan07lo.jpg | a shrine is surrounded by trees, like they are consuming it in foliage]]</a>
Train to Hofu, Yamaguchi:
[![[japan08lo.jpg]]](/media/japan08hi.jpg)
<a href="/media/japan08hi.jpg">![[japan08lo.jpg | train tracks taken out the front window of a train. power lines on each side.]]</a>
Ozu Island military tunnel, Yamaguchi:
[![[japan09lo.jpg]]](/media/japan09hi.jpg)
<a href="/media/japan09hi.jpg">![[japan09lo.jpg | an ocean bay photo from inside a tunnel]]</a>
Ozu Island from the ferry:
[![[japan10lo.jpg]]](/media/japan10hi.jpg)
<a href="/media/japan10hi.jpg">![[japan10lo.jpg | contrasting mountains in the background and a boat's wake in the foreground]]</a>
Gifu countryside:
[![[japan11lo.jpg]]](/media/japan11hi.jpg)
<a href="/media/japan11hi.jpg">![[japan11lo.jpg | two hills covered in trees are reflected in the still water at the bottom]]</a>
Ueno, Tokyo:
[![[japan12lo.jpg]]](/media/japan12hi.jpg)
<a href="/media/japan12hi.jpg">![[japan12lo.jpg | a restaurant under a train track. several people fill the adjacent street.]]</a>
All photos are released into the public domain / CC0 licensed.

@ -17,7 +17,9 @@ The LEDs came from that strip that was cut up and soldered together with very sm
Twenty-one of the stars are light magenta in color and twinkle by fading randomly. The seven LEDs that form the Big Dipper continually scroll through a gradient of three colors. Instead of calculating the values of each color in the gradient as the program runs, a lookup table is used.
<video autoplay muted loop style="display:block; margin: 0 auto;">
<video autoplay="true" muted="true" loop="true" style="display:block; margin: 0 auto;">
<source src="{static}/media/dress3.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
A video of the dress is above. Right click -> Play if needed.

@ -30,7 +30,7 @@ I set up a simple hydroponics garden in a broken medical lung testing chamber th
A picture of the garden is taken every 5 minutes and uploaded to Spaceport. I'll eventually make a time lapse of the vegetable growth and plot a graph of the internal air temperature.
![[protospace-garden.jpg]]
![[protospace-garden.jpg | a side-by-side photo of a cucumber plant before and after growing huge inside a glass lung testing chamber box.]]
### Telemetry
@ -43,7 +43,7 @@ Telemetry is a catch-all project for random sensors and displays around Protospa
Here's a graph of the air quality on Spaceport:
![[protospace-dust.png]]
![[protospace-dust.png | two graphs comparing the dust levels in the classroom and woodshop. spikes can be seen in the woodshop graph.]]
### Airlock

@ -9,10 +9,10 @@ Tags: feed
You can find the [source code](https://git.tannercollin.com/tanner/qotnews) on my Gitea.
![[qotnews1.png]]
![[qotnews1.png | screenshot of the home page with a list of stories to click on]]
I tried to make QotNews the perfect news site for me. I easily get annoyed by cookie banners and distracted by visual clutter when reading normal news articles. I especially hate auto-playing videos and "download our app" popups. All articles have consistent styling that's easy to read:
![[qotnews2.png]]
![[qotnews2.png | screenshot of an article showing the text and font used]]
It's by far my favourite project and has paid the most dividends for the amount of time I invested in programming it. I use it multiple times per day and it's become the main source of all my news. Since all the articles and comments are preloaded and saved in localStorage, it's also great for reading on airplanes.

@ -5,7 +5,7 @@ Summary: About the hydroponics garden in my basement.
I have a "Secret Garden" in a storage room in the basement of my house. It's currently a [[Hydroponics | hydroponics]] system growing leafy greens. You can see an hourly photo of it below:
<a href="/media/garden_hi.jpg">![a hydroponics garden, taken from a webcam](/media/garden_lo.jpg)</a>
<a href="/media/garden_hi.jpg">![a hydroponics garden, taken from a webcam. it might be in colour or black-and-white depending on what time of day you are visiting this page. purple timestamp on the top left.](/media/garden_lo.jpg)</a>
Click the above photo for a larger version.
@ -16,14 +16,14 @@ Bottom: 4x kale, 4x strawberries.
The garden uses nutrient film technique (NFT) to continuously deliver a shallow stream of nutrient solution to the plants growing in 2" ABS pipe. A submersible fountain water pump sends nutrients up 1/4" irrigation hose to each of the four pipes. The nutrients flow down the slope passed all the roots and return to the ~25 L reservoir. An air stone oxygenates the water. Two computer case fans ensure adequate [[Airflow|airflow]].
![[nft1.png]]
![[nft1.png | four black pipes supported horizontally by a wooden frame. eight small seedlings are growing out of the pipe under four grow lights total. two fans on the right. a pink towel is down below, covering the reservoir.]]
The nutrients are kept in a reservoir underneath the towel, which helps block light and limit [[Algae Growth|algae growth]]:
![[nft2.jpg]]
![[nft2.jpg | the reservoir with the towel removed. the yellow lid is cut in half and has a tube poking out of it with a distribution cap for the 1/4 inch irrigation lines to connect to. black return pipes are on the left, pointing down into the reservoir through a mesh bag acting as a filter.]]
## Previous Garden
My previous system [[Helios Alpha]] could grow up to six plants. It's designed around a single 102 L plastic tote. It holds enough water to harvest lettuce once before refilling. After the initial setup, the system can be ignored for weeks.
![[heliosalpha1.jpg]]
![[heliosalpha1.jpg | the hydroponics system from two angles. a black tub with yellow lid, covered in tin foil with six holes for plants. grow lights above suspended by metal shelving.]]

@ -7,7 +7,7 @@ Summary: Graphs of various sensors around my house.
These graphs are live and generated every 10 minutes, assuming the script works:
![a graph](https://sensor-pics.dns.t0.vc/Solar_Power.png)
![a graph with a title, and axis labelled. they all look similar and continuously change, so I won't describe each one.](https://sensor-pics.dns.t0.vc/Solar_Power.png)
Black: power (W), green: energy (kWh)

@ -9,7 +9,7 @@ Tags: feed
You can find the [source code](https://github.com/Protospace/spaceport) on Github.
![[spaceport1.png]]
![[spaceport1.png | a screenshot of spaceport's home page. a photo of me to the left, below that my latest training and transactions. links and stats related to Protospace to the right.]]
Spaceport is tightly coupled to Protospace and has many integrations:
@ -29,7 +29,7 @@ Spaceport is tightly coupled to Protospace and has many integrations:
- Displays charts of various environmental sensors
- Displays a photo of our garden
![[spaceport2.png]]
![[spaceport2.png | a list of all the classes. they are group by course and have colourful tags to make them easier to find.]]
As of writing this there's 234 current Protospace members and 1408 historical or inactive memberships that it manages. Data is stored in a 49 MB SQLite database which makes it easy to back up or sync with my development server. The back end is written in Django / Python and the front end is React / JavaScript with Semantic UI for the graphics.

@ -20,9 +20,9 @@ SponsorBlock automatically skips over sponsored segments in YouTube videos. Not
You can install it on [Firefox Desktop](https://addons.mozilla.org/en-CA/firefox/addon/sponsorblock/) and [Chrome Desktop](https://chrome.google.com/webstore/detail/sponsorblock-for-youtube/mnjggcdmjocbbbhaepdhchncahnbgone?hl=en).
![[recommend1.png]]
![[recommend1.png | a screenshot of a conversation with a friend who likes sponsorblock]]
![[recommend2.png]]
![[recommend2.png | another]]
### Aegis Authenticator
Aegis is a two-factor authenticator (2fa) app for Android that's free and open source. The killer feature and why I recommend it is that it supports automatic encrypted backups of the database in JSON format. You can unlock the app with a password or optional fingerprint. It supported true OLED dark mode. An alternative app is andOTP but there were [problems](https://news.t0.vc/EQYR/c#williamwchuang1553266688) with the backups' encryption back when I switched to Aegis.
@ -35,7 +35,7 @@ You can install it on Android via the [Play Store](https://play.google.com/store
### ThruNite T1 Flashlight
This is a tiny rechargeable flashlight that can output 1500 lumens, enough to hurt your eyes if you look directly into it. It has a magnet on the back to stick to things and an optional pocket-hat clip. I liked it so much I've bought three of them and gave one to a friend who then bought himself a couple more.
![[recommend3.png]]
![[recommend3.png | a screenshot of a friend telling me how much he likes the flashlight]]
### Logitech G Pro Wireless Mice
I've used a lot of wireless mice, and this one is by far my favourite. It has a USB dongle which I prefer because Bluetooh pairing annoys me. If you disable the LEDs the battery lasts for a few weeks of solid usage.

Loading…
Cancel
Save