modify mumble page, add voice schedule, new blog post, & image animations

This commit is contained in:
Amolith 2019-10-19 03:55:39 -04:00
parent f3c215eec3
commit 668cebf090
Signed by: Amolith
GPG Key ID: 51FD40936DB0065B
15 changed files with 663 additions and 144 deletions

View File

@ -3,3 +3,5 @@ source "https://rubygems.org"
gem 'jekyll-compose', group: [:jekyll_plugins]
gem 'jekyll-target-blank'
gem 'jekyll-paginate'

View File

@ -1,10 +1,10 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.4)
concurrent-ruby (1.1.5)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
@ -27,34 +27,33 @@ GEM
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-compose (0.9.0)
jekyll (~> 3.0)
jekyll-compose (0.11.0)
jekyll (>= 3.7, < 5.0)
jekyll-paginate (1.1.0)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-target-blank (1.1.1)
jekyll (~> 3.0)
nokogiri (~> 1.8.2)
jekyll-watch (2.1.2)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (1.17.0)
liquid (4.0.1)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
liquid (4.0.3)
listen (3.2.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
mini_portile2 (2.3.0)
nokogiri (1.8.5)
mini_portile2 (~> 2.3.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (3.0.3)
public_suffix (4.0.1)
rb-fsevent (0.10.3)
rb-inotify (0.10.0)
ffi (~> 1.0)
rouge (3.3.0)
ruby_dep (1.5.0)
safe_yaml (1.0.4)
rouge (3.12.0)
safe_yaml (1.0.5)
sass (3.7.2)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
@ -66,6 +65,7 @@ PLATFORMS
DEPENDENCIES
jekyll-compose
jekyll-paginate
jekyll-target-blank
BUNDLED WITH

View File

@ -1,8 +1,8 @@
# Site settings
title: NixNet
description: "Ramblings from a random GNU/Linux user, sysadmin, and professional multi-instrumentalist"
baseurl: "" # the subpath of your site, e.g. /blog/
url: "https://nixnet.xyz" # the base hostname & protocol for your site
baseurl: ""
url: "https://nixnet.xyz"
permalink: /blog/:title/
language: en_US
@ -18,18 +18,18 @@ author:
highlightstyle: 'agate'
styles: [agate, androidstudio, arta, asceti, atelier-cave.dark, atelier-cave.light, atelier-dune.dark, atelier-dune.light, atelier-estuary.dark, atelier-estuary.light, atelier-forest.dark, atelier-forest.light, atelier-heath.dark, atelier-heath.light, atelier-lakeside.dark, atelier-lakeside.light, atelier-plateau.dark, atelier-plateau.light, atelier-savanna.dark, atelier-savanna.light, atelier-seaside.dark, atelier-seaside.light, atelier-sulphurpool.dark, atelier-sulphurpool.light, brown_paper, codepen-embed, color-brewer, dark, darkula, default, docco, far, foundation, github, github-gist, googlecode, grayscale, hopscotch, hybrid, idea, ir_black, kimbie.dark, kimbie.light, magula, mono-blue, monokai, monokai_sublime, obsidian, paraiso.dark, paraiso.light, pojoaque, railscast, rainbow, school_book, solarized_dark, solarized_light, styles_list.txt, sunburst, tomorrow, tomorrow-night-blue, tomorrow-night-bright, tomorrow-night, tomorrow-night-eightie, v, xcode, zenburn]
# Handling Reading
exclude: ["README.md", "README.html"]
# Build settings
highlighter: null
markdown: kramdown
# Serve settings
livereload: true
jekyll_compose:
auto_open: true
paginate: 6
plugins:
- jekyll-target-blank
- jekyll-paginate

View File

@ -32,7 +32,9 @@ I use Gandi for my main websites, [nixnet.xyz](https://nixnet.xyz), for a few re
Another reason is that they have some nice APIs available that I'm going to make use of for [Invidious](https://github.com/omarroth/invidious). The IP address of my server was recently blocked so [the instance](https://invidious.nixnet.xyz) completely stopped working. I'm going to write an Ansible playbook that will let me completely automate the process of buying a new VPS, migrating Invidious to it, and changing DNS records in Gandi in realtime as the IP addresses are blocked. It may be months, even a year, before I actually get around to making that happen but it will eventually.
**NOTE:** If you have a [SoloKey](https://solokeys.com/), [Yubikey](https://www.yubico.com/products/yubikey-hardware/), etc. I recommend enabling 2FA with it and, even if you don't, you should still enable 2FA with [andOTP](https://github.com/andOTP/andOTP) or [FreeOTP](https://github.com/freeotp/freeotp-ios). With something as sensitive as domains, the extra level of security is essential.
**NOTE:** If you have a [SoloKey](https://solokeys.com/), [Yubikey](https://www.yubico.com/products/yubikey-hardware/), etc. I recommend enabling 2FA in Gandi with it and, even if you don't, you should still enable 2FA with [andOTP](https://github.com/andOTP/andOTP) or [FreeOTP](https://github.com/freeotp/freeotp-ios). With something as sensitive as domains, the extra level of security is essential.
## [Namesilo](https://namesilo.com)
The domains I have with Namesilo are for my podcast, [redacted.life](https://redacted.life), and my email server, [nixnet.email](https://nixnet.email). Namesilo *offers* some simple features like webhosting but I have no use for them. Namesilo just tends to be cheaper than the rest and, even though they have a *terrible* UI (imo), I barely have to interact with it and the price makes up for that detriment.
**EDIT:** Namesilo apparently has a new UI in the works. You can use it by going to [new.namesilo.com](https://new.namesilo.com/)

View File

@ -0,0 +1,93 @@
---
layout: post
title: Downloading courses from Linux Academy
subtitle: youtube-dl is a phenomenal tool
description: Using youtube-dl to pull Linux Academy courses for offline viewing
date: 2019-10-19 01:35 -0400
cover: /assets/posts/youtube-dl.png
---
# Forward
Every month, Linux Academy releases courses for free. I'm a very busy college student and don't have time to whirl through everything I want to before it goes behind their paywall again so I figured out how to download a course or two every month using [`youtube-dl`](https://github.com/ytdl-org/youtube-dl/).
# Setup
* Install [`youtube-dl`](https://ytdl-org.github.io/youtube-dl/download.html)
* Make sure you have a browser handy
* Create a community account on [Linux Academy](https://linuxacademy.com/join/community)
* Get some food
* Maybe a drink
* Sit back down in your chair
* Spin around a bit
* Read on
# Downloading
* Log into your account
* Pick the course you want
* Open the developer console and go to `Network` (Ctrl+Shift+E in Firefox)
* You'll want to select `Media` as shown in the screenshot below
![](/assets/posts/linux-academy/scrot-1.png)
* Click the video you want to start with
* Watch the network logs
* You'll see an entry that starts with `playlist` (screenshot below)
![](/assets/posts/linux-academy/scrot-2.png)
* Right click it
* Copy the URL
* Paste it after `youtube-dl` in a terminal:
```bash
amolith@poseidon:~ $ youtube-dl https://video-cdn.linuxacademy.com/vods3/_definst_/smil:box/cdnstore/modules/lots-of-stuff-in-here
```
* Press enter
* Watch the magic unfold
At a high level, `youtube-dl` is acting like your browser and following the `m3u` playlist to download chunks of the file. After it fetches them all, it runs them through `ffmpeg` to stitch them together into a single video!
I found it useful to open a text editor and script downloading a whole course at a time. All you have to do is type `youtube-dl -o` and copy/paste it however many times there are videos. Then, copy and paste the video title in quotes after `-o` and add `.mp4` to the end (command example below). After that, paste the URL. Do that with every video in the series, save the script, run `chmod +x <script>`, then `./<script>` and (after a bit) you'll have an entire course you can watch at your leasure!
```bash
amolith@poseidon:~ $ youtube-dl -o "04 - Conclusion and Next Steps.mp4" https://video-cdn.linuxacademy.com/vods3/_definst_/smil:box/cdnstore/modules/lots-of-stuff-here
```
**NOTE:** You may want to set up your directory structure beforehand so it's easier to script the process. Here's an example of one of mine:
```bash
amolith@poseidon:~/Videos/Courses/Ansible - Playbooks Deep Dive $ tree
.
├── 01 - Course Overview
│   ├── 01 - About the Course.mp4
│   ├── 02 - About the Training Architect.mp4
│   ├── 03 - Course Features and Tools.mp4
│   ├── 04 - About Ansible Playbooks.mp4
│   └── 05 - Advanced Inventory Configuration.mp4
├── 02 - Playbook Basics
│   ├── 01 - Using YAML for Ansible Playbooks.mp4
│   ├── 02 - Creating an Ansible Play.mp4
│   ├── 03 - The ansible-playbook Command.mp4
│   └── 04 - Understanding Playbook Tasks.mp4
├── 03 - Essential Playbook Syntax
│   ├── 01 - Using Variables in Playbooks.mp4
│   ├── 02 - Working with Templates.mp4
│   ├── 03 - Using Ansible Facts.mp4
│   ├── 04 - Conditional Execution in Playbooks.mp4
│   ├── 05 - Using Loops in Ansible.mp4
│   └── 06 - Working with Handlers in Ansible.mp4
├── 04 - Advanced Playbook Syntax
│   ├── 01 - Executing Selective Parts of a Playbook.mp4
│   ├── 02 - Working with Sensitive Data Using Ansible Vault.mp4
│   ├── 03 - Error Handling in a Playbook: limit, ignore_errors, changed_when, and failed_when.mp4
│   ├── 04 - Error Handling in a Playbook: Block Groups and The Debug Module.mp4
│   ├── 05 - Asynchronous Tasks within a Playbook.mp4
│   ├── 06 - Delegating Playbook Execution with delegate_to and local_action.mp4
│   ├── 07 - Parallelism in Playbooks.mp4
│   ├── 08 - Using run_once.mp4
│   ├── 09 - Overview of Ansible Roles.mp4
│   └── 10 - Ansible Role Demo.mp4
└── 05 - Conclusion and Next Steps.mp4
4 directories, 26 files
amolith@poseidon:~/Videos/Courses/Ansible - Playbooks Deep Dive $
```

View File

@ -162,6 +162,17 @@ img {
display: block;
max-width: 100%;
}
.content img {
position: relative;
transition: transform .3s ease;
}
.content img:hover {
/** box-shadow: 0 14px 28px rgba(0,0,0,0.25),0 10px 10px rgba(0,0,0,0.22);**/
transform: translate3d(1px, -5px, 0px);
}
.content img:active {
transform: scale(1.4);
}
.post-image {
display: none;
}
@ -539,12 +550,12 @@ strong {
}
}
@media screen and (max-width: 1000px) and (max-height:600px) {
.wrapper {
width: 75%;
}
.card {
width: 35%;
}
.wrapper {
width: 75%;
}
.card {
width: 35%;
}
}
@media (max-width: 800px) {
/* =Base */

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
assets/posts/youtube-dl.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1,410 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="599"
height="189.56506"
viewBox="0 0 158.48541 50.155757"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="mumble-schedule.svg"
inkscape:export-filename="/home/amolith/repos/nixnet/assets/pages/mumble-schedule.png"
inkscape:export-xdpi="128.21001"
inkscape:export-ydpi="128.21001">
<defs
id="defs2">
<symbol
id="shield-alt">
<title
id="shield-alt-title">Alternate Shield</title>
<path
style="stroke-width:0.26458332"
inkscape:connector-curvature="0"
d="m 131.23333,33.866667 c 0,58.547529 -35.965868,91.187323 -58.615524,100.623153 a 12.7,12.7 0 0 1 -9.76921,0 C 34.526802,122.69073 4.2333333,86.383019 4.2333333,33.866667 A 12.7,12.7 0 0 1 12.04886,22.143508 l 50.8,-21.16666633 a 12.7,12.7 0 0 1 9.769211,0 L 123.41807,22.143508 a 12.7,12.7 0 0 1 7.81526,11.723159 z m -63.499997,84.220313 0.01746,0.009 C 92.551515,105.74285 113.39063,76.739485 114.26904,36.676012 L 67.733333,17.286023 Z"
id="path26851" />
</symbol>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#323234"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="225.70737"
inkscape:cy="73.036502"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true"
inkscape:window-width="1336"
inkscape:window-height="698"
inkscape:window-x="15"
inkscape:window-y="35"
inkscape:window-maximized="0"
fit-margin-top="10"
fit-margin-left="10"
fit-margin-right="10"
fit-margin-bottom="10"
inkscape:snap-global="false"
showguides="true"
inkscape:guide-bbox="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-1.0023905,-213.71893)">
<g
id="g908"
style="fill:#ffffff" />
<g
id="g912"
transform="translate(113.05501)"
style="fill:#ffffff" />
<g
transform="translate(21.648832)"
id="g916"
style="fill:#ffffff" />
<g
id="g920"
transform="translate(35.814117)"
style="fill:#ffffff" />
<g
transform="translate(59.066566)"
id="g924"
style="fill:#ffffff" />
<g
id="g930">
<text
id="text832"
y="224.39725"
x="73.34539"
style="font-style:normal;font-weight:normal;font-size:5.64088345px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.1410221"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.1410221"
y="224.39725"
x="73.34539"
id="tspan830"
sodipodi:role="line">Wed.</tspan></text>
<text
id="text819"
y="224.3922"
x="51.982132"
style="font-style:normal;font-weight:normal;font-size:5.99651241px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.14991282"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.14991282"
y="224.3922"
x="51.982132"
id="tspan817"
sodipodi:role="line">Tue.</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.99651241px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.14991282"
x="28.456455"
y="224.3922"
id="text828"><tspan
sodipodi:role="line"
id="tspan826"
x="28.456455"
y="224.3922"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.14991282">Mon.</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.64088345px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.1410221"
x="95.186478"
y="224.39725"
id="text836"><tspan
sodipodi:role="line"
id="tspan834"
x="95.186478"
y="224.39725"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.1410221">Thur.</tspan></text>
<text
id="text840"
y="224.39447"
x="119.72551"
style="font-style:normal;font-weight:normal;font-size:5.83603144px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.1459008"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.1459008"
y="224.39447"
x="119.72551"
id="tspan838"
sodipodi:role="line">Fri.</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.91322756px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.14783071"
x="141.05664"
y="224.39339"
id="text1042"><tspan
sodipodi:role="line"
id="tspan1040"
x="141.05664"
y="224.39339"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.14783071">Sat.</tspan></text>
<g
style="fill:#ffffff"
transform="translate(-0.08470674)"
id="g1122">
<rect
style="fill:#ffffff;fill-opacity:1;stroke-width:0.23879462"
id="rect1056"
width="1.7197917"
height="37.437859"
x="23.239544"
y="216.36476"
ry="0.85989583" />
<rect
ry="0.85989583"
y="216.36476"
x="45.383652"
height="37.437859"
width="1.7197917"
id="rect1060"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.23879462" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke-width:0.23879462"
id="rect1062"
width="1.7197917"
height="37.437859"
x="67.527756"
y="216.36476"
ry="0.85989583" />
<rect
ry="0.85989583"
y="216.36476"
x="89.67186"
height="37.437859"
width="1.7197917"
id="rect1064"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.23879462" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke-width:0.23879462"
id="rect1066"
width="1.7197917"
height="37.437859"
x="111.81596"
y="216.36476"
ry="0.85989583" />
<rect
ry="0.85989583"
y="216.36476"
x="133.96007"
height="37.437859"
width="1.7197917"
id="rect1068"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.23879462" />
</g>
<text
id="text1126"
y="237.02499"
x="94.839775"
style="font-style:normal;font-weight:normal;font-size:5.46125746px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13653141"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.13653141"
y="237.02499"
x="94.839775"
id="tspan1124"
sodipodi:role="line">14:00</tspan></text>
<text
id="text1130"
y="250.67451"
x="94.839775"
style="font-style:normal;font-weight:normal;font-size:5.46125746px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13653143"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.13653143"
y="250.67451"
x="94.839775"
id="tspan1128"
sodipodi:role="line">15:00</tspan></text>
<rect
ry="0.85989583"
y="226.68317"
x="3.6482239"
height="1.7197917"
width="153.19376"
id="rect1054"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26566175" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26566175"
id="rect1146"
width="153.19376"
height="1.7197917"
x="3.6482239"
y="241.76442"
ry="0.85989583" />
<text
id="text1156"
y="237.50183"
x="6.5073476"
style="font-style:normal;font-weight:normal;font-size:5.94863605px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.14871588"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.14871588"
y="237.50183"
x="6.5073476"
id="tspan1154"
sodipodi:role="line">Start</tspan></text>
<text
id="text1160"
y="250.86063"
x="8.10818"
style="font-style:normal;font-weight:normal;font-size:5.67309666px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.1418274"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.1418274"
y="250.86063"
x="8.10818"
id="tspan1158"
sodipodi:role="line">End</tspan></text>
<text
id="text1164"
y="261.17609"
x="104.41259"
style="font-style:normal;font-weight:normal;font-size:3.72640157px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.09316003"
xml:space="preserve"><tspan
style="fill:#ffffff;stroke-width:0.09316003"
y="261.17609"
x="104.41259"
id="tspan1162"
sodipodi:role="line">* all times are in UTC 24 hr.</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.46125746px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13653141"
x="28.597618"
y="237.02499"
id="text1168"><tspan
sodipodi:role="line"
id="tspan1166"
x="28.597618"
y="237.02499"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.13653141">22:00</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.46125746px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13653143"
x="28.597618"
y="250.67451"
id="text1172"><tspan
sodipodi:role="line"
id="tspan1170"
x="28.597618"
y="250.67451"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.13653143">23:00</tspan></text>
<text
id="text1176"
y="237.02499"
x="50.795666"
style="font-style:normal;font-weight:normal;font-size:5.46125746px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13653141"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.13653141"
y="237.02499"
x="50.795666"
id="tspan1174"
sodipodi:role="line">00:00</tspan></text>
<text
id="text1180"
y="250.67451"
x="50.795666"
style="font-style:normal;font-weight:normal;font-size:5.46125746px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13653143"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.13653143"
y="250.67451"
x="50.795666"
id="tspan1178"
sodipodi:role="line">01:00</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.46125746px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13653141"
x="139.00122"
y="237.02499"
id="text1184"><tspan
sodipodi:role="line"
id="tspan1182"
x="139.00122"
y="237.02499"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.13653141">18:00</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.46125746px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.13653143"
x="139.00122"
y="250.67451"
id="text1188"><tspan
sodipodi:role="line"
id="tspan1186"
x="139.00122"
y="250.67451"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.13653143">19:00</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.69473648px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26736838"
x="78.124962"
y="238.2337"
id="text1192"><tspan
sodipodi:role="line"
id="tspan1190"
x="78.124962"
y="238.2337"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.26736838">-</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.69473648px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26736841"
x="78.124962"
y="251.88322"
id="text1196"><tspan
sodipodi:role="line"
id="tspan1194"
x="78.124962"
y="251.88322"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.26736841">-</tspan></text>
<text
id="text1208"
y="238.2337"
x="122.28641"
style="font-style:normal;font-weight:normal;font-size:10.69473648px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26736838"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.26736838"
y="238.2337"
x="122.28641"
id="tspan1206"
sodipodi:role="line">-</tspan></text>
<text
id="text1212"
y="251.88322"
x="122.28641"
style="font-style:normal;font-weight:normal;font-size:10.69473648px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26736841"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans';fill:#ffffff;stroke-width:0.26736841"
y="251.88322"
x="122.28641"
id="tspan1210"
sodipodi:role="line">-</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

103
assets/svgs/youtube-dl.svg Normal file
View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="600"
height="315"
viewBox="0 0 158.75 83.343752"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="youtube-dl.svg"
inkscape:export-filename="/home/amolith/repos/nixnet/assets/posts/youtube-dl.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2">
<symbol
id="shield-alt">
<title
id="shield-alt-title">Alternate Shield</title>
<path
style="stroke-width:0.26458332"
inkscape:connector-curvature="0"
d="m 131.23333,33.866667 c 0,58.547529 -35.965868,91.187323 -58.615524,100.623153 a 12.7,12.7 0 0 1 -9.76921,0 C 34.526802,122.69073 4.2333333,86.383019 4.2333333,33.866667 A 12.7,12.7 0 0 1 12.04886,22.143508 l 50.8,-21.16666633 a 12.7,12.7 0 0 1 9.769211,0 L 123.41807,22.143508 a 12.7,12.7 0 0 1 7.81526,11.723159 z m -63.499997,84.220313 0.01746,0.009 C 92.551515,105.74285 113.39063,76.739485 114.26904,36.676012 L 67.733333,17.286023 Z"
id="path26851" />
</symbol>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="302.18316"
inkscape:cy="161.87336"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true"
inkscape:window-width="1336"
inkscape:window-height="698"
inkscape:window-x="15"
inkscape:window-y="35"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:snap-global="false" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(5.0862632e-6,-213.65623)">
<rect
style="opacity:1;fill:#323232;fill-opacity:1;stroke:none;stroke-width:1.84040475;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect99612"
width="158.75"
height="83.34375"
x="-5.0862632e-06"
y="213.65623" />
<path
style="fill:#ffffff;stroke-width:0.30552012"
d="M 300 98.839844 C 300 98.839844 247.82297 98.840431 234.81055 102.34961 C 227.63175 104.28114 221.97757 109.97172 220.05859 117.19727 C 216.57198 130.29397 216.57227 157.61914 216.57227 157.61914 C 216.57227 157.61914 216.57198 184.94427 220.05859 198.04102 C 221.97757 205.26657 227.63175 210.71917 234.81055 212.65039 C 247.82297 216.15957 300 216.16016 300 216.16016 C 300 216.16016 352.17703 216.15957 365.18945 212.65039 C 372.36825 210.71917 378.02246 205.26657 379.94141 198.04102 C 383.42802 184.94427 383.42773 157.61914 383.42773 157.61914 C 383.42773 157.61914 383.42802 130.29397 379.94141 117.19727 C 378.02246 109.97172 372.36825 104.28083 365.18945 102.34961 C 352.17733 98.840431 300 98.839844 300 98.839844 z "
transform="matrix(0.26458333,0,0,0.26458333,-5.0862632e-6,213.65623)"
id="path2" />
<path
style="fill:#323232;fill-opacity:1;stroke-width:0.04944825"
d="m 77.399454,245.83595 c -0.657669,0 -1.186906,0.52922 -1.186906,1.1869 v 8.30754 h -4.341071 c -0.88018,0 -1.320858,1.06307 -0.697813,1.68611 l 7.531069,7.52562 c 0.370861,0.37087 0.979595,0.37087 1.350453,0 l 7.520947,-7.52562 c 0.623046,-0.62304 0.183145,-1.68611 -0.697034,-1.68611 h -4.337178 v -8.30754 c 0,-0.65768 -0.529234,-1.1869 -1.186902,-1.1869 z"
id="path2-3"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -42,10 +42,17 @@ These are some of my more public accounts; feel free to contact me at any of the
<hr/>
<br/>
<div class="content">
<p class="center">
I also have <a href="https://briarproject.org/" rel="noreferrer" target="_blank">Briar</a> if we meet IRL and I'm on <a href="https://wire.com/en/" rel="noreferrer" target="_blank">Wire</a> as <code>@amolith</code>.
<p>
I also have <a href="https://briarproject.org/" rel="noreferrer" target="_blank">Briar</a>. Since they finished the feature that lets you add remote contacts, send me a message somewhere with your link and paste this into your client. It only works when we're both online so you may want to wait until I respond before you bother.
</p>
<p class="center">
<code>briar://aabruyodzvlyq2xrxp75alyn5ac5t3tpo3bbqxdjzecxuko6lyfcq</code>
<p>I'm on <a href="https://wire.com/en/" rel="noreferrer" target="_blank">Wire</a> with <code>@amolith</code> as well.</p>
</p>
<p>
Despite the many ways to contact me, email and XMPP are and always will be my most preferrered methods (as well as the most reliable). If you email me, please be sure to encrypt it with my <a title="Plaintext GPG key" href="/amolith.txt" type="text/plain" target="_blank">GPG key</a>. If you message me over XMPP, please make sure it's with a client that has OMEMO encryption.
</p>
<p>
I will also try to be available on <a href="/mumble" target="_blank">Mumble</a> at the times listed below if you would like to talk to me "in person" as it were. I'll be in the <code>General</code> channel.
</p>
</div>
<img src="/assets/pages/mumble-schedule.png" alt="diagram of the times I'll be available on Mumble. when I have time, I'll fix this so it can be read with a screen reader.">

View File

@ -1,78 +0,0 @@
---
layout: page
title: Contact
subtitle: Where to find me
description: Various ways to contact me
cover: /assets/pages/contact.png
permalink: /contact2/
---
<style>
.props { list-style-type: none; margin-left: 0; padding-left: 0; }
i { padding-right: 5px; }
.proof { font-size: small; margin-left: 10px; color: #73a6ff }
.verification { font-size: small; margin-left: 5px; cursor: pointer }
summary { cursor: pointer }
.verified { color: green }
.verified::before { content: "✅"; margin-right: 5px; }
.avatar { width: 148px; height: 148px; border-radius: 74px;
display: block;
margin-left: auto;
margin-right: auto;
}
h2 { text-align: center; line-height: 1.5 }
.wrapper { margin: 40px 0; }
.wrapper > div { margin: 20px; }
textarea { width: 100%; height: 200px; }
.note { font-size: small }
@media (min-width: 600px) {
.wrapper {
display: flex;
width: 100%;
}
.wrapper .bio {
width: 35%;
}
}
</style>
<script>
var System = {
_deps: Object.create(null),
register(name, deps, callback) {
const exports = Object.create(null);
const result = callback((name, value) => exports[name] = value);
for (let i = 0; i < deps.length; i++) {
result.setters[i](this._deps[deps[i]]);
}
result.execute();
this._deps[name] = exports;
}
};
</script>
<style>
img { vertical-align: top }
</style>
<script src="/openpgp.js"></script>
<script src="/scripts.js"></script>
<body>
<header>
<div class="col cont">
<div class="left">
<a href="index.html">OpenPGP</a>
</div>
<div class="links">
<a href="../@wiktor.html">Contact</a>
</div>
</div>
</header>
<main>
<div class="col">
<section id="content">
<div id=result>Loading key...</div>
</section>
<section class="note">
<p>Note: contents of this page are generated purely from the OpenPGP key in your browser.
If you want to add social proofs to your key see <a href="proofs.html">OpenPGP Proofs</a> page.</p>
<p>If you want to adjust the keyserver used or the key being displayed just edit this HTML page.</p>
</section>
</div>

View File

@ -5,42 +5,11 @@ subtitle: "An open source VoIP solution that's better than Discord"
description: "An open source VoIP solution that's better than Discord"
cover: /assets/pages/mumble.png
---
Visit Mumble's [Downloads](https://www.mumble.info/downloads/) page for installation information.
## Setup
I don't use Windows or macOS so I can't speak to how they work. On Linux, simply launch the app and run through the audio setup wizard. After that, go to `Server -> Connect -> Add new`. Enter whatever username you want, use `nixnet.xyz` as the address, `64738` for the port, and label the server however you'd like. When prompted, the password is `NixNet`. Pretty much the same goes for the Android app; open it, add a new server, enter the information above, connect, and start chatting!
<br/>
<br/>
Simply launch the app and run through the audio setup wizard. If your OS supports it, you can simply click [here](mumble://nixnet.xyz:64738) and it will open automatically and connect to the server. Alternatively, launch Mumble, go to `Server -> Connect -> Add new`. Enter whatever username you want, use `nixnet.xyz` as the address, `64738` for the port, and label the server however you'd like.
If you want a new channel made for something (game, podcast, private call, etc.), just [let me know](/contact) and I'll create one!
## Installation
For more in-depth and accurate information than what's here, look at the [official Mumble website](https://wiki.mumble.info/wiki/Main_Page).
### - Arch Linux
```
sudo pacman -S mumble
```
### - Debian
```
sudo apt-get install mumble
```
### - Ubuntu
```
sudo add-apt-repository ppa:mumble/release
sudo apt-get update
sudo apt-get install mumble
```
### - Fedora
```
dnf install mumble mumble-overlay mumble-plugins
```
### - Android
Download it from [F-Droid](https://f-droid.org/repository/browse/?fdid=com.morlunk.mumbleclient). It is also on [Google Play](https://play.google.com/store/apps/details?id=com.morlunk.mumbleclient.free) but I recommend using F-Droid instead.
### - Windows and macOS
Download the latest release from their [GitHub page](https://github.com/mumble-voip/mumble/releases).
### - iOS
A client is available in the [App Store](https://itunes.apple.com/us/app/mumble/id443472808?mt=8)
If you would like to talk with me about something, check the [contact page](/contact) for the times I'll be available.