diff --git a/build-gallery.sh b/build-gallery.sh index adeae3a..85f42f9 100755 --- a/build-gallery.sh +++ b/build-gallery.sh @@ -1,12 +1,13 @@ #!/bin/bash -cd `dirname $0` +src=~/git/johanvandegriff/jjv.sh/ +dst=confuzer:/brick/websites/docker/jjv.sh/hugo/ -sed -i 's,ignoreFiles = \["gallery/.*"\],#ignoreFiles = ["gallery/.*"],g' config.toml -sed -i 's,cleanDestinationDir = false,cleanDestinationDir = true,g' config.toml -scp config.toml johanv.net:johanv.net/hugo/config.toml +sed -i 's,ignoreFiles = \["gallery/.*"\],#ignoreFiles = ["gallery/.*"],g' "$src/config.toml" +sed -i 's,cleanDestinationDir = false,cleanDestinationDir = true,g' "$src/config.toml" +scp "$src/config.toml" "$dst/config.toml" sleep 2 -sed -i 's,#ignoreFiles = \["gallery/.*"\],ignoreFiles = ["gallery/.*"],g' config.toml -sed -i 's,cleanDestinationDir = true,cleanDestinationDir = false,g' config.toml -scp config.toml johanv.net:johanv.net/hugo/config.toml +sed -i 's,#ignoreFiles = \["gallery/.*"\],ignoreFiles = ["gallery/.*"],g' "$src/config.toml" +sed -i 's,cleanDestinationDir = true,cleanDestinationDir = false,g' "$src/config.toml" +scp "$src/config.toml" "$dst/config.toml" diff --git a/config.toml b/config.toml index 4bd76d0..b491115 100644 --- a/config.toml +++ b/config.toml @@ -1,6 +1,6 @@ -baseURL = "https://johanv.net/" +baseURL = "https://jjv.sh/" languageCode = "en-us" -title = "johanv.net" +title = "jjv.sh" theme = "hugowncast" timeout = "5m" disablePathToLower = true @@ -16,7 +16,7 @@ ignoreFiles = ["gallery/.*"] [params] description = "Johan Vandegriff's website and livestream, including games, videos, blog, drawings, music, electronics projects, and more." author = "Johan Vandegriff" - image = "https://johanv.net/logo" + image = "https://jjv.sh/logo" [menu] [[menu.main]] @@ -25,7 +25,7 @@ ignoreFiles = ["gallery/.*"] weight = 1 [[menu.main]] name = "games" - url = "https://games.johanv.net/" + url = "https://games.jjv.sh/" weight = 2 [[menu.main]] name = "blog" diff --git a/content/ATinyGame/index.html b/content/ATinyGame/index.html index c9f41a4..694e7cc 100644 --- a/content/ATinyGame/index.html +++ b/content/ATinyGame/index.html @@ -1,7 +1,7 @@ --- title: "ATinyGame: A Tiny Inexpensive Nugget for Your Gaming and All Manner of Entertainment" description: "a $1 game console that fits in 1 hand, with a program smaller than 1kB" -image: "https://johanv.net/gallery/random/images/ATinyGame.jpg" +image: "https://jjv.sh/gallery/random/images/ATinyGame.jpg" date: 2021-12-25T06:53:44-04:00 tags: [] viewport: '' diff --git a/content/ArduinOLED/_index.md b/content/ArduinOLED/_index.md index 600ce34..9fdb82f 100644 --- a/content/ArduinOLED/_index.md +++ b/content/ArduinOLED/_index.md @@ -1,7 +1,7 @@ --- title: "ArduinOLED: Arduino with an OLED screen (and not enough RAM)" description: "a platform for electronic games and other projects, including a screen, joystick, buttons, buzzer, and clip connections to add many other devices" -image: "https://johanv.net/ArduinOLED/images/StackerMenu.JPG" +image: "https://jjv.sh/ArduinOLED/images/StackerMenu.JPG" date: 2019-09-07T15:00:00-04:00 tags: [] layout: "single" diff --git a/content/FoamStacker/index.md b/content/FoamStacker/index.md index 482353e..2b0e57f 100644 --- a/content/FoamStacker/index.md +++ b/content/FoamStacker/index.md @@ -6,7 +6,7 @@ tags: [] A mini replica of the arcade stacker game! -Uses a knockoff arduino nano (which actually turned out to be a pro mini with USB duct taped on), a 128x64 OLED display, a lighted pushbutton switch, and of course a foam stress toy. Since this arduino can operate from 3-6V, I ran it at 6V by connecting two CR2032 coin cell batteries, of which I have lots of extras [for some reason...](https://johanv.net/ATinyGame) +Uses a knockoff arduino nano (which actually turned out to be a pro mini with USB duct taped on), a 128x64 OLED display, a lighted pushbutton switch, and of course a foam stress toy. Since this arduino can operate from 3-6V, I ran it at 6V by connecting two CR2032 coin cell batteries, of which I have lots of extras [for some reason...](/ATinyGame)
Once the signal reaches the app, a variety of actions can be taken. A simple sound file can be played to simulate a phone call to the wearer. A secret text can be sent to a pre-assigned recipient. A speech to text engine can be launched to initiate communication with a custom chatbot. Some future plans include broadcasting your location, calling 911, or even ordering a pizza!
CARL (Chatbot with Automatic and Rapid Learning) was developed alongside the device and app to simulate someone talking to you with speech-to-text and text-to-speech.
+CARL (Chatbot with Automatic and Rapid Learning) was developed alongside the device and app to simulate someone talking to you with speech-to-text and text-to-speech.
No hacks, hackers, or hackathons were hacked in the hacking of this hackalicious hack. Happy hacking, hackerary hacketeers!
diff --git a/content/blog/framework16-slot-compatibility-labels.md b/content/blog/framework16-slot-compatibility-labels.md index 17c87b8..0c8b68b 100644 --- a/content/blog/framework16-slot-compatibility-labels.md +++ b/content/blog/framework16-slot-compatibility-labels.md @@ -71,4 +71,4 @@ Note: when attaching the labels, make sure to account for the fact that the refe  -Thanks for reading, if you do this yourself let me know [on mastodon](https://fosstodon.org/@johanv) or by [email](https://johanv.net/contact/)! +Thanks for reading, if you do this yourself let me know [on mastodon](https://fosstodon.org/@johanv) or by [email](/contact)! diff --git a/content/blog/how-i-created-jjv-sh.md b/content/blog/how-i-created-jjv-sh.md new file mode 100644 index 0000000..a8cfd75 --- /dev/null +++ b/content/blog/how-i-created-jjv-sh.md @@ -0,0 +1,19 @@ +--- +title: "How I Created jjv.sh" +date: 2024-11-03T02:31:00-05:00 +tags: ["featured", "how i created"] +--- + +## Here We Go Again... +Time for the biennial (which I just learned is a word meaning every two years) migrating my website to a new domain name! + +I haven't done distro hopped in several years. I haven't browser hopped in twice that time (yes, I copied my browser files over to the next distro). But I HAVE server hopped my website every few months, mostly keeping the same domain name, but every two years now I have changed the domain name the same time I change the server. + +## Towing the Mobile Home +This most recent one was more of a lift-and-shift, where I zipped up the files on the old server, copied them over to the new server, unzipped them, and ran `docker compose up -d` to download and run all the docker containers with the various subdomains. Ok, the zip file WAS 12 gigabytes and took more than an hour to copy, but it was a simple process. I did tweak the caddy setup so now caddy runs outside of docker so it can proxy services that run outside of docker, and this comes with the limitation that it has to reference docker containers by port instead of hostname. + +## We're Visiting, Might as Well Renovate +Also, I had some services already running on jjv.sh, on a different old server, so I lifted-and-shifted those to the new server as well. Then I figured I might as well move johanv.net to jjv.sh, since they were now hosted on the same server. So it was just a matter of going thru each subdomain and updating the caddy config to serve on jjv.sh and redirect any old requests from johanv.net to jjv.sh. + +## The Aftermath +Then I had to update all the links in files wherever I could find them, and rename a few repos. I still need to change links to my site on external sites, but the redirects will handle that for now. diff --git a/content/blog/how-i-created-johanv-net.md b/content/blog/how-i-created-johanv-net.md index 10b0bae..a6fde91 100644 --- a/content/blog/how-i-created-johanv-net.md +++ b/content/blog/how-i-created-johanv-net.md @@ -1,9 +1,12 @@ --- title: "How I Created johanv.net: Personal Website with Seamless Livestream" date: 2022-08-20T19:39:55-04:00 -tags: ["featured"] +tags: ["how i created"] --- +## Update 2024-11-03 +I have since moved to [jjv.sh](https://jjv.sh), read about it [here](/blog/how-i-created-jjv-sh). Keep reading if you want, but most of the links in this article are old. + ## The Backstory Ever since I [moved my site to johanv.xyz](/blog/how-i-created-johanv-xyz), some things have been slightly off. When I texted someone a link, they didn't get it. When I visited it at work, it was blocked (and so I couldn't link to it on my "about me" page). It turns out, `.xyz` domains, due to their low price, are heavily involved in scam texts and such. So, I made a short-term solution: pointing `johan.vandegriff.net` (my old site's domain which I still owned) to the same content as `johanv.xyz`. diff --git a/content/blog/how-i-created-johanv-xyz.md b/content/blog/how-i-created-johanv-xyz.md index 5fc7d70..6f7d155 100644 --- a/content/blog/how-i-created-johanv-xyz.md +++ b/content/blog/how-i-created-johanv-xyz.md @@ -1,9 +1,12 @@ --- title: "How I Created johanv.xyz (and subsequently destroyed it)" date: 2019-06-08T04:18:50-04:00 -tags: [] +tags: ["how i created"] --- +## Update 2024-11-03 +I have since moved to [jjv.sh](https://jjv.sh), read about it [here](/blog/how-i-created-jjv-sh). Keep reading if you want, but most of the links in this article are old. + ## Update 2022-08-05 I have since moved to [johanv.net](https://johanv.net), read about it [here](/blog/how-i-created-johanv-net). Keep reading if you want, but most of the links in this article are old. diff --git a/content/blog/how-to-win-a-hackathon.md b/content/blog/how-to-win-a-hackathon.md index 1ad2200..fc7c1ad 100644 --- a/content/blog/how-to-win-a-hackathon.md +++ b/content/blog/how-to-win-a-hackathon.md @@ -11,7 +11,7 @@ I just got back from Hoya Hacks, a hackathon a Georgetown this past weekend. Som Make sure hardware works before the event. If you are going to use a Raspberry Pi, for example, make sure it boots up, you remember the password, install updates, etc. * Go for the challenges, for example we used MongoDB to store our data even though we could have just put it in a file. We didn't win the MongoDB prize, but I did learn a lot. Also we spent some time brainstorming a domain name, which is how we won the award for best domain. * Make something fun: at bitcamp last year, we made a trash can that insults you when you put recycling in, and won most entertaining! (it actually couldn't tell between trash and recycling, so it would always insult you :) - * Or make something you need/want, that way even if you don't win, you can still use it! One time we made a chatbot, and we didn't win but I still enjoy talking to it sometimes: https://games.johanv.net/carl + * Or make something you need/want, that way even if you don't win, you can still use it! One time we made a chatbot, and we didn't win but I still enjoy talking to it sometimes: https://games.jjv.sh/carl * Add this stuff to your resume, and you can even include a link to the project. Employers will be impressed that not only do you know flask, but you also have a public flask app on the internet to prove it! And if you ask me, getting an internship means you were the real hackathon winner. :) Here's some upcoming hackathons at umd: diff --git a/content/games-system/index.md b/content/games-system/index.md index 7a56185..3a58f3a 100644 --- a/content/games-system/index.md +++ b/content/games-system/index.md @@ -3,6 +3,6 @@ title: "GAMES: Glamorous Automatic Multi-game Emulator System" date: 2019-09-03T16:34:13-04:00 tags: [] --- -GAMES is a tiny Arduino game system with a 3x3 LED screen and 4 buttons. Version 1 uses an Arduino Pro Mini, which is shown below. Version 2 uses an ATTiny microcontroller, which you can find here [here](https://johanv.net/ATinyGame/). +GAMES is a tiny Arduino game system with a 3x3 LED screen and 4 buttons. Version 1 uses an Arduino Pro Mini, which is shown below. Version 2 uses an ATTiny microcontroller, which you can find here [here](/ATinyGame).  diff --git a/content/games/index.md b/content/games/index.md deleted file mode 100644 index b9a34ec..0000000 --- a/content/games/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -type: "redirect" -redirect: "https://games.johanv.net/" ---- diff --git a/content/hexagame/index.md b/content/hexagame/index.md index f818306..d1a3331 100644 --- a/content/hexagame/index.md +++ b/content/hexagame/index.md @@ -1,7 +1,7 @@ --- title: "HexaGame: Ever played snake, but with 6 directions?" description: "HexaGame is a handheld multi-game system that consists of a hexagon of LEDs with buttons surrounding it, as well as a hex-shaped dpad" -image: "https://johanv.net/hexagame/images/WhackAMole.JPG" +image: "https://jjv.sh/hexagame/images/WhackAMole.JPG" date: 2019-09-03T16:34:13-04:00 tags: [] --- diff --git a/content/jjv.sh/index.md b/content/jjv.sh/index.md deleted file mode 100644 index d1754a4..0000000 --- a/content/jjv.sh/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "jjv.sh: my personal URL shortener for my URL shortening needs" -description: "info about jjv.sh, my personal URL shortener" -date: 2021-08-13T11:27:55-04:00 -tags: [] ---- - -jjv.sh is my personal URL shortener. It stands for Johan J. Vandegriff's short links. Here are some example short links: - - * [jjv.sh/music](https://jjv.sh/music) - all the music me and my brother have made - * [jjv.sh/boggle](https://jjv.sh/boggle) - play my boggle game online with friends - * [jjv.sh/about](https://jjv.sh/about) - a bit about me - * [jjv.sh/lucy](https://jjv.sh/lucy) - pictures of the cute doggo - * [jjv.sh/charlie](https://jjv.sh/charlie) - pictures of another cute doggo - * [jjv.sh/carl](https://jjv.sh/carl) - a chatbot - * [jjv.sh/resume](https://jjv.sh/resume) - my online resume - -How does it work, you ask? It uses [caddy](https://caddyserver.com/) with some basic redirect rules: - -## /etc/caddy/Caddyfile -``` -jjv.sh, www.jjv.sh { - redir / https://johanv.net/jjv.sh/ html - redir /about https://johanv.net/about/ html - redir /boggle https://games.johanv.net/boggle html - redir /charlie https://johanv.net/gallery/charlie/ html - redir /resume https://johanv.net/resume/ html - redir /carl https://games.johanv.net/carl html - redir /site https://johanv.net html - redir /music-yt https://www.youtube.com/playlist?list=PL9MPtw9DDuDIJ5uFq6CzSEjeHLLwfEWGx html - redir /music https://freemusicarchive.org/music/johan-vandegriff html - redir /dressember https://dressember2021.funraise.org/fundraiser/johan-vandegriff html - redir /lucy https://johanv.net/gallery/lucy/ html - redir /ATinyGame https://johanv.net/ATinyGame/ html - redir /art https://johanv.net/gallery/drawings/ html - redir /bella https://johanv.net/gallery/bella/ html - redir https://johanv.net/jjv.sh/ html -} -``` diff --git a/content/now/index.md b/content/now/index.md index 27708d1..1d2af25 100644 --- a/content/now/index.md +++ b/content/now/index.md @@ -7,7 +7,7 @@ date: 2023-11-23T08:00:00-05:00 Lately I've been up to: - Editing some goofy videos - Trying to finish making a few more songs before the end of the year - - Livestreaming on this very site, johanv.net, which forwards to twitch, youtube, etc. I play games, make [music](https://jjv.sh/music), write code, and have recently been trying out makeup. More info on the [home page](/) + - Livestreaming on this very site, jjv.sh, which forwards to twitch, youtube, etc. I play games, make [music](https://jjv.sh/music), write code, and have recently been trying out makeup. More info on the [home page](/) - Working on a [bot](https://codeberg.org/johanvandegriff/multistream-bot) that aggregates live chat from twitch, youtube, etc. into one place, forwards commands for other bots between chats as needed, and even gives people nicknames and chats with them - Exploring the new Raspberry Pi Pico W, a $6 computer with wifi. I'm writing code for it to connect to OBS (live streaming software) to control actions by pushing buttons on a [macropad](https://shop.pimoroni.com/products/pico-rgb-keypad-base?variant=32369517166675). I have a [previous version](https://codeberg.org/johanvandegriff/StreamPico/) working, but that was before the Pico W came out, so it uses the Pico and a bluetooth module - Prototyping a handheld game for under $10, the [last one](https://jjv.sh/atinygame) was under $1 but was very limited. I have decided on the RP2040 for the processor, and for the display I am considering two options: a [Monochrome Nokia 5110](https://makertube.net/w/5DxLirHs9eaooD1pWh3rFy) and a [Color TFT](https://makertube.net/w/audk1EdKhM35AP83qrmwqf) diff --git a/content/owncast-chat/index.html b/content/owncast-chat/index.html index 1767387..85d10d3 100644 --- a/content/owncast-chat/index.html +++ b/content/owncast-chat/index.html @@ -1,6 +1,6 @@ - +