Make asides go in-line with brackets

master
Tanner Collin 2 years ago
parent c6f30be580
commit 7632f1e9ea
  1. 27
      content/.obsidian/workspace
  2. 2
      content/Acoustic Panels.md
  3. 8
      content/Backup Strategy.md
  4. 8
      content/Bypassing Ports.md
  5. 4
      content/Fake Dog.md
  6. 5
      content/Hydroponics.md
  7. 2
      content/Light Switch.md
  8. 2
      content/Linux Flavour.md
  9. 4
      content/Plant Waterer.md
  10. 3
      themes/lite/templates/article.html
  11. 18
      themes/theme/templates/style.css

@ -4,12 +4,12 @@
"type": "split",
"children": [
{
"id": "a52c87ba4e7df223",
"id": "160122bd13ae4b72",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Fake Dog.md",
"file": "Plant Waterer.md",
"mode": "source",
"source": false
}
@ -40,7 +40,7 @@
"state": {
"type": "search",
"state": {
"query": "json",
"query": "aside",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
@ -49,7 +49,8 @@
}
}
}
]
],
"currentTab": 1
}
],
"direction": "horizontal",
@ -69,7 +70,7 @@
"state": {
"type": "backlink",
"state": {
"file": "Fake Dog.md",
"file": "Plant Waterer.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -86,7 +87,7 @@
"state": {
"type": "outline",
"state": {
"file": "Fake Dog.md"
"file": "Plant Waterer.md"
}
}
}
@ -97,17 +98,17 @@
"direction": "horizontal",
"width": 300
},
"active": "a52c87ba4e7df223",
"active": "160122bd13ae4b72",
"lastOpenFiles": [
"Plant Waterer.md",
"Linux Flavour.md",
"Light Switch.md",
"Hydroponics.md",
"Fake Dog.md",
"Bypassing Ports.md",
"Backup Strategy.md",
"Acoustic Panels.md",
"About.md",
"media/Pasted image 20220701212211.png",
"media/fake-dog3.jpg",
"media/Pasted image 20220726153803.png",
"QotNews.md",
"t0 Services.md"
"Hydroponics Aphid War.md",
"Painting.md"
]
}

@ -20,6 +20,6 @@ I added 4" batts of Rockwool insulation into each frame after it was assembled.
I sat in my theatre while a friend slid a handheld mirror along the wall until I could see the middle of the speaker in its reflection. This told me the centre point of where to mount each panel because the reflected sound would take the same path to my ear.
<span class="aside">Four in the front, two in the back</span>
<span class="aside">(Four in the front, two in the back)</span>
![[panel3.jpg | four black acoustic panels mounted on the walls in my home theatre]]

@ -36,7 +36,7 @@ I have every email since 2010 backed up continuously in case my email provider d
I use `offlineimap` to sync my mail to the directory `~/email` on my media server as a Maildir. Since offlineimap is only a syncing tool, the emails need to be copied elsewhere to be backed up. I run `rdiff-backup` from a weekly cron job:
<span class="aside">I'll explain what backup_check.txt does below</span>
<span class="aside">(I'll explain what backup_check.txt does below)</span>
```
*/15 * * * * offlineimap > /var/log/offlineimap.log 2>&1
@ -105,10 +105,10 @@ I take weekly backups of the Gitea data folder with cron:
Telegram Messenger is my main app for communication. My parents, most of my friends, and friend groups are on there so I don't want to lose those messages in case Telegram disappears or my account gets banned.
<span class="aside">Saves the messages to a sqlite db</span>
Telegram includes a data export feature, but it can't be automated. Instead I run the deprecated software [telegram-export](https://github.com/expectocode/telegram-export) hourly with cron:
<span class="aside">(Saves the messages to a sqlite db)</span>
```
0 * * * * bash -c 'timeout 50m /home/tanner/opt/telegram-export/env/bin/python -m telegram_export' > /var/log/telegramexport.log 2>&1
```
@ -250,7 +250,7 @@ I wrote a Python script `checkbackup.py` that goes through each backup and compa
I rotate through 2.5" 1 TB hard drives each Saturday when I do a backup. They are quite cheap at [$65 CAD](https://www.memoryexpress.com/Products/MX65194) each so I can have a bunch floating around.
I keep one connected to the server, one in my bag, one offsite, one at my mother's house, and one at my dad's house. Every Saturday I run the script above to take a copy and then swap the drive with the one in my bag. It then gets <span class="aside">I go back home about twice per year</span> swapped when I visit my offsite location. Same for when I visit my parents. This means that all hard drives eventually get rotated through with new data and don't sit too long unpowered.
I keep one connected to the server, one in my bag, one offsite, one at my mother's house, and one at my dad's house. Every Saturday I run the script above to take a copy and then swap the drive with the one in my bag. It then gets swapped when I visit my offsite location. Same for when I visit my parents<span class="aside"> (I go back home about twice per year)</span>. This means that all hard drives eventually get rotated through with new data and don't sit too long unpowered.
The drives are all encrypted with full-disk LUKS encryption using a password I'm unlikely to forget.

@ -45,7 +45,7 @@ $ sudo chown -R tanner:tanner easy-rsa/
Replace `tanner` with your Linux username, this is temporary.
<span class="aside">The `.rnd` file prevents a warning</span>
<span class="aside">(The `.rnd` file prevents a warning)</span>
```
$ cd easy-rsa/
@ -86,7 +86,7 @@ Leave off `nopass` if you want to password protect the config file keys when you
Create the server config file `/etc/openvpn/server.conf`:
<span class="aside">Can't use port 443 here since it'll be forwarded</span>
<span class="aside">(Can't use port 443 here since it'll be forwarded)</span>
```
port 1194
@ -124,7 +124,7 @@ $ sudo touch ccd/mediaserver
Replace `mediaserver` with whatever client name you used above. Edit it like so:
<span class="aside">Your home server will be `10.8.0.100`</span>
<span class="aside">(Your home server will be `10.8.0.100`)</span>
```
ifconfig-push 10.8.0.100 255.255.255.0
@ -271,7 +271,7 @@ Also replace `vpn.example.com` with the subdomain you assigned earlier.
For device clients (like your laptop and phone), create the config file `client.ovpn`:
<span class="aside">`redirect-gateway def1` forces traffic over the VPN</span>
<span class="aside">(`redirect-gateway def1` forces traffic over the VPN)</span>
```
client

@ -19,7 +19,7 @@ A Python script kept alive by Supervisor runs on the Raspberry Pi and listens to
![[fake-dog2.png]]
## Future Improvements
The dog has a lot of false positives from the cameras being triggered by car headlights or small animals. 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.
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.
A huge improvement would be to combine the camera data with a physical trigger. A break beam sensor mounted on stair railings or an accelerometer mounted under the steps would work for this. But it would be annoying to mount, route power to, and harden for harsh Calgary winters. Perhaps the accelerometers are sensitive enough to mount inside, close to the entrances.
@ -32,4 +32,4 @@ I previously caught a prowler who went into my backyard and tested my garage doo
![[fake-dog3.jpg]]
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.
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.

@ -7,7 +7,7 @@ Short: h
[TOC]
Hydroponics is a method of growing plants without soil by delivering nutrients via water. In theory, it offers many advantages over soil: no dirt, no weeding (or herbicides), no pests (or pesticides), no mould, no root rot, year-round growing indoors, less space required, 90% less water usage, and 30-50% faster growth. Downsides include electricity consumption if using grow lights or water pumps and the need to hand-pollinate flowers from the lack of bees.
Hydroponics is a method of growing plants without soil by delivering nutrients via water. In theory, it offers many advantages over soil: no dirt, no weeding or pests<span class="aside"> (therefore no herbicides or pesticides)</span>, no mould, no root rot, year-round growing indoors, less space required, 90% less water usage, and 30-50% faster growth. Downsides include electricity consumption if using grow lights or water pumps and the need to hand-pollinate flowers from the lack of bees.
## Home Experiments
I'll outline my hydroponics experiments here, describing what I tried, what worked, what didn't, and lessons I learned. I have a small storage room in my basement that I use for hydroponics. It's about 5' x 10' large with unpainted drywall and a concrete floor.
@ -38,6 +38,8 @@ Lessons learned:
- Don't bother germinating in a dome, just do it straight from the net cups.
- Don't use Foamular to hold the net cups. It requires a higher water level, doesn't index for time-lapse photography, and drops pink foam bits into the water.
<span class="aside">(Top: lettuces, bottom: arugula, cress, arugula)</span>
![[hydroponics2.jpg]]
### Home: Round 3
@ -50,6 +52,7 @@ I bought six strawberry starters and rinsed all the dirt off of the roots. Thing
Lessons learned:
- You can be fairly rough when washing dirt off of starters' roots.
- You can get pests in hydroponics if you aren't careful.
- Wash starters thoroughly with soap (including leaves) to prevent aphids or grow from seeds.
- Boil all equipment before using it to sanitize.
- Don't let plants grow so much that the leaves block airflow.

@ -18,6 +18,6 @@ This entire process happens quicker than half a second, so it feels instant.
![[light2.jpg | the front side which has several electrical components]]
<span class="aside">Black stuff's liquid electrical tape</span>
<span class="aside">(Black stuff's liquid electrical tape)</span>
![[light3.jpg | the back side which has wires soldered to connect all the components]]

@ -13,7 +13,7 @@ I run Debian on my computers and servers.
## Linux Distributions
<span class="aside">Interjection: it's technically called GNU/Linux</span>
<span class="aside">(Interjection: it's technically called GNU/Linux)</span>
When people refer to the "flavour of Linux" they are talking about a Linux distribution (distro). It mostly describes what software is distributed in its software repository.

@ -6,7 +6,7 @@ short: waterer
One day I decided watering my one plant was too much work, so I automated it. It's also great for when I'm on vacation. The plant is a year old now and doesn't look as good as it used to (kinda like you). So this machine is like its life support.
<span class="aside">Update: this plant died long ago</span>
<span class="aside">(Update: this plant died long ago)</span>
![[waterer1.jpg | the device and pump on a 2L pop bottle with a tube running to a flowerpot]]
@ -24,6 +24,6 @@ I liked the idea so much that I made a second iteration. This one used a custom
Another feature was the ability to run the pump backwards. This completely eliminated the siphoning problem from before. After pumping for a set duration, it would run backwards until the tube was cleared of water.
<span class="aside">Also dead :(</span>
<span class="aside">(Also dead)</span>
![[waterer3.jpg | the new version beside a big Ming aralia plant with bushy drooping leaves and skinny stems]]

@ -54,9 +54,6 @@
font-size: 0.8rem;
background-color: #eee;
}
.aside {
display: none;
}
.toc {
display: none;
}

@ -110,15 +110,6 @@
margin-right: 1rem;
}
.content .aside {
display: inline;
float: left;
position: relative;
width: 8rem;
margin-left: -9rem;
font-size: 0.9rem;
}
.content.index {
margin-top: 3rem;
}
@ -139,6 +130,15 @@
text-align: right;
white-space: nowrap;
}
.content .aside {
display: inline;
float: left;
position: relative;
width: 8rem;
margin-left: -9rem;
font-size: 0.9rem;
}
}
@media screen and (max-width:36rem) {

Loading…
Cancel
Save