From 668cebf090b71171488dab86bd70016f13308bc0 Mon Sep 17 00:00:00 2001 From: Amolith Date: Sat, 19 Oct 2019 03:55:39 -0400 Subject: [PATCH] modify mumble page, add voice schedule, new blog post, & image animations --- Gemfile | 2 + Gemfile.lock | 30 +- _config.yml | 10 +- _posts/2019-10-15-buying-a-domain-name.md | 4 +- ...-downloading-courses-from-linux-academy.md | 93 ++++ _sass/_default.scss | 23 +- assets/pages/mumble-schedule.png | Bin 0 -> 35390 bytes assets/posts/linux-academy/scrot-1.png | Bin 0 -> 174010 bytes assets/posts/linux-academy/scrot-2.png | Bin 0 -> 114742 bytes assets/posts/youtube-dl.png | Bin 0 -> 4782 bytes assets/svgs/mumble-schedule.svg | 410 ++++++++++++++++++ assets/svgs/youtube-dl.svg | 103 +++++ contact.html | 13 +- contact2.html | 78 ---- mumble.md | 41 +- 15 files changed, 663 insertions(+), 144 deletions(-) create mode 100644 _posts/2019-10-19-downloading-courses-from-linux-academy.md create mode 100644 assets/pages/mumble-schedule.png create mode 100644 assets/posts/linux-academy/scrot-1.png create mode 100644 assets/posts/linux-academy/scrot-2.png create mode 100644 assets/posts/youtube-dl.png create mode 100644 assets/svgs/mumble-schedule.svg create mode 100644 assets/svgs/youtube-dl.svg delete mode 100644 contact2.html diff --git a/Gemfile b/Gemfile index 44bc70e..e6d8713 100644 --- a/Gemfile +++ b/Gemfile @@ -3,3 +3,5 @@ source "https://rubygems.org" gem 'jekyll-compose', group: [:jekyll_plugins] gem 'jekyll-target-blank' + +gem 'jekyll-paginate' diff --git a/Gemfile.lock b/Gemfile.lock index f303044..d4b3e29 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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 diff --git a/_config.yml b/_config.yml index 58b75e1..75336ac 100644 --- a/_config.yml +++ b/_config.yml @@ -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 diff --git a/_posts/2019-10-15-buying-a-domain-name.md b/_posts/2019-10-15-buying-a-domain-name.md index 7ba1d59..3efb6e4 100644 --- a/_posts/2019-10-15-buying-a-domain-name.md +++ b/_posts/2019-10-15-buying-a-domain-name.md @@ -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/) diff --git a/_posts/2019-10-19-downloading-courses-from-linux-academy.md b/_posts/2019-10-19-downloading-courses-from-linux-academy.md new file mode 100644 index 0000000..d17a411 --- /dev/null +++ b/_posts/2019-10-19-downloading-courses-from-linux-academy.md @@ -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 - - - - -
-
-
- OpenPGP -
- -
-
-
-
-
-
Loading key...
- -
-
-

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 OpenPGP Proofs page.

-

If you want to adjust the keyserver used or the key being displayed just edit this HTML page.

-
-
diff --git a/mumble.md b/mumble.md index d724bd3..f0142c8 100644 --- a/mumble.md +++ b/mumble.md @@ -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! -
-
+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.