diff options
Diffstat (limited to 'src/blog')
| -rw-r--r-- | src/blog/3dprint.md | 66 | ||||
| -rw-r--r-- | src/blog/homelab.md | 29 | ||||
| -rw-r--r-- | src/blog/nix.md | 106 |
3 files changed, 0 insertions, 201 deletions
diff --git a/src/blog/3dprint.md b/src/blog/3dprint.md deleted file mode 100644 index 3a65f02..0000000 --- a/src/blog/3dprint.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "3D Printing" -date: "2025-06-25" -excerpt: "My 3D-printing projects: from a robotic arm to a DIY drone." -cover: "/images/a1.webp" ---- - -# Projects - -## Robotic Arm - -3D model on [MakerWorld](https://makerworld.com/en/models/528885-robotic-arm#profileId-445995) – modified to work with my servo motors. - -```cpp -#include <Bluepad32.h> -#include <ESP32Servo.h> - -#define DEADZONE 30 -#define BASE_PIN 15 -#define SHOULDER_PIN 2 -#define ELBOW_PIN 4 -#define WRIST_PIN 16 -#define HAND_PIN 17 - -Servo base, shoulder, elbow, wrist, hand; -ControllerPtr pad; - -void onConnectedGamepad(ControllerPtr ctl) { - Serial.printf("Gamepad #%d connected\n", ctl->index()); - pad = ctl; -} - -void onDisconnectedGamepad(ControllerPtr ctl) { - Serial.printf("Gamepad disconnected\n"); -} - -int16_t mapAxis(int16_t v) { - if (abs(v) < DEADZONE) v = 0; - return map(v, -512, 512, 0, 180); -} - -void setup() { - BP32.setup(&onConnectedGamepad, &onDisconnectedGamepad); - BP32.enableNewBluetoothConnections(true); - - base.attach(BASE_PIN); - shoulder.attach(SHOULDER_PIN); - elbow.attach(ELBOW_PIN); - wrist.attach(WRIST_PIN); - hand.attach(HAND_PIN); -} - -void loop() { - BP32.update(); - if (pad && pad->isConnected()) { - base.write(mapAxis(pad->axisX())); - shoulder.write(mapAxis(-pad->axisY())); - elbow.write(mapAxis(-pad->axisRY())); - hand.write(mapAxis(pad->throttle() - pad->brake())); - - if (pad->l1()) wrist.write(0); - else if (pad->r1()) wrist.write(180); - else wrist.write(90); - } - delay(15); -} diff --git a/src/blog/homelab.md b/src/blog/homelab.md deleted file mode 100644 index f61d0e9..0000000 --- a/src/blog/homelab.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Homelab" -date: "2025-06-25" -excerpt: "My Homelab setup" -cover: "/images/nas.webp" ---- - -## NAS - -My custom-built NAS running Unraid hosts the following services. See [gear](/gear) for specs. - -- Jellyfin: Media library -- Kavita: Ebooks and manga -- AdGuard Home: Ad blocking -- Nginx: Reverse proxy -- Ollama: Enough for small LLM testing - - -Replaced the rear fan with a [Nocuta NF-A12x15](https://noctua.at/en/nf-a12x15-pwm-chromax-black-swap) that is much quieter. - -For remote access, I connect to the machine via VPN. I back up my MacBook to that machine with Time Machine, and I back up my desktop and VPS to it using rsync. - -## Raspberry Pi - -Raspberry Pi 5 (8GB) running [Homebridge](https://homebridge.io/) to integrate non-HomeKit devices. It also serves as a precision NTP server using a [Uputronics](https://store.uputronics.com/products/raspberry-pi-gps-rtc-expansion-board) GPS module. - -## VPS -Cheap Ionos VPS running nixos via [nixos-infect](https://github.com/elitak/nixos-infect) for services exposed to the internet. Mainly using it for hosting this website and [Nextcloud](https://nextcloud.com/). - diff --git a/src/blog/nix.md b/src/blog/nix.md deleted file mode 100644 index 22ac1b3..0000000 --- a/src/blog/nix.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: "Nix" -date: "2025-06-25" -excerpt: "A deep dive into my fully declarative system setup using Nix, from desktop to VPS." -cover: "/images/nixsnowflake.webp" ---- - -# My Nix Setup: Why I Switched Everything - -I've used Linux for years, mostly in dual boot with Windows. But a few months ago, I switched completely to [NixOS](https://nixos.org/), and honestly, I love it. The idea of configuring everything on my system **declaratively**—just by writing code—is what really got me hooked. - -## Sway with Nix - -I use [Sway](https://github.com/swaywm/sway) as my window manager, and setting it up with Nix has been super easy. Instead of messing with dotfiles or installing things manually, I just describe what I want in a config file and let Nix handle it. - -## Neovim + NVF - -One of my favorite changes has been switching my Neovim setup to use [NVF](https://github.com/NotAShelf/nvf). It makes managing plugins and settings way easier. - -Here's a peek at my `nvf.nix` config: - -```nix -{ config, lib, pkgs, ... }: - -{ - programs.nvf = { - enable = true; - settings = { - vim = { - theme.enable = true; - theme.name = "gruvbox"; - - options = { - clipboard = "unnamedplus"; - tabstop = 2; - shiftwidth = 2; - expandtab = true; - autoindent = true; - mouse = "a"; - }; - - telescope.enable = true; - autocomplete.nvim-cmp.enable = true; - - autopairs.nvim-autopairs.enable = true; - - git.enable = true; - - lsp = { - enable = true; - formatOnSave = true; - lspkind.enable = true; - lspSignature.enable = true; - }; - - languages = { - enableTreesitter = true; - - nix.enable = true; - markdown.enable = true; - - clang.enable = true; - css.enable = true; - html.enable = true; - java.enable = true; - ts.enable = true; - go.enable = true; - lua.enable = true; - python.enable = true; - typst.enable = true; - }; - - formatter.conform-nvim.enable = true; - - visuals = { - nvim-web-devicons.enable = true; - }; - - snippets.luasnip.enable = true; - - binds = { - whichKey.enable = true; - cheatsheet.enable = true; - }; - - statusline.lualine.enable = true; - }; - }; - }; - }; -} -``` - -You can check out my full Nix configuration [here on GitHub](https://github.com/schererleander/nix). - -## Firefox, Configured by Code - -I even manage **Firefox** through Nix! From settings to extensions, everything is set up declaratively. It’s cool to see a browser this customizable through config files. - -## Using nix-darwin on macOS - -I’ve got a **MacBook Air**, and I’m using [nix-darwin](https://github.com/LnL7/nix-darwin) on it. It’s not quite as deep as NixOS, but I can still manage most of my tools and configs declaratively. Works great for development stuff. - -## VPS with nix-infect - -My VPS is running Nix too. I used [nix-infect](https://github.com/elitak/nix-infect) to get started, and now I manage things like **[nginx](https://nginx.org/)** and **[Nextcloud](https://nextcloud.com/)** with Nix. It’s super easy to maintain and back up. |
