The code and data behind xeiaso.net
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: first go at replacing AI illustrations with photography in reverse chronological order

Signed-off-by: Xe Iaso <me@xeiaso.net>

+192 -200
+3 -3
lume/src/blog/2024/azurda.mdx
··· 3 3 date: 2024-06-01 4 4 desc: "Because of course you can use an AI model as a key-value store." 5 5 hero: 6 - ai: "Kohaku XL" 7 - file: onsen-bucket-run 8 - prompt: "1girl, green hair, green eyes, ponytail, hoodie, looking at viewer, smile, very long hair, running, joy, bucket, pail, space needle, full body, daytime, headphones, sclera, onsen" 6 + ai: "Photo by Xe Iaso" 7 + file: black-tulips-contrast 8 + prompt: "A high contrast photo of rare black tulips." 9 9 --- 10 10 11 11 <Conv name="Cadey" mood="coffee">
+3 -3
lume/src/blog/2024/k8s-irc-client.mdx
··· 3 3 desc: "Trust me, there's a reason for this" 4 4 date: 2024-08-23 5 5 hero: 6 - ai: "Black Forest Flux.1 [dev]" 7 - file: "arona-seattle" 8 - prompt: "A light-blue haired anime woman with a pixie cut in a white hoodie and short skirt drinking coffee in Seattle, space needle, smartphone, chat bubbles, blue halo" 6 + ai: "Photo by Xe Iaso" 7 + file: "pike-place-market" 8 + prompt: The iconic Pike Place Market neon sign at night" 9 9 social: true 10 10 --- 11 11
+3 -3
lume/src/blog/2024/soylent-green-people.mdx
··· 3 3 desc: "Nuance about AI and the 'danger' of datasets" 4 4 date: 2024-12-12 5 5 hero: 6 - ai: "Counterfeit v3.0 (SD1.5) with a complicated ComfyUI flow, based on a sketch by Xe Iaso" 7 - file: "green-and-pink-vibes" 8 - prompt: "A pink and green colored image of an anime woman with green hair, piercingly green eyes, and slightly smiling on top of an abstract background that evokes images of traditional Japanese woodprint art combined with modern vaporwave aesthetics and a hit of 90's anime" 6 + ai: "Photo by Xe Iaso" 7 + file: "hello-sfo" 8 + prompt: "An airplane above San Francisco, right as it's circling around to land" 9 9 social: false 10 10 --- 11 11
+3 -3
lume/src/blog/2024/supplemental-notes-the-layoff.mdx
··· 8 8 - satire 9 9 - ai 10 10 hero: 11 - file: backpack-walking-home 12 - ai: Animagine XL 3.0 13 - prompt: "A cartoon stylized flat color rendition of a green-haired anime woman with a high ponytail standing in front of the Seattle skyline, but there are two Space Needles, presumably because there was another world's fair in Seattle" 11 + file: montreal-sunset 12 + ai: Photo by Xe Iaso 13 + prompt: "A picture of a canal in Montreal near sunset when the sky turns a lovely purple." 14 14 --- 15 15 16 16 If you haven't read ["The Layoff"](/blog/2024/the-layoff/) yet, you should do so before reading this post. This post is a behind the scenes look at the story and contains spoilers.
+3 -3
lume/src/blog/2024/tigris-nomadic-compute.mdx
··· 3 3 date: 2024-11-12 4 4 redirect_to: "https://tigrisdata.com/blog/nomadic-compute/" 5 5 hero: 6 - ai: "Flux [dev] by Black Forest Labs" 7 - file: "_yj_eBqjMOIe0Bv-oQxoy" 8 - prompt: "A nomadic server hunts for GPUs, powered by Taco Bell" 6 + ai: "Photo by Xe Iaso" 7 + file: "space-needle" 8 + prompt: "A picture of the Space Needle in Seattle on a blue sky" 9 9 --- 10 10 11 11 Taco Bell is a miracle of food preparation. They manage to have a menu of dozens
+3 -3
lume/src/blog/2025/anubis.mdx
··· 3 3 desc: "I got tired with all the AI scrapers that were bullying my git server, so I made a tool to stop them for good." 4 4 date: 2025-01-19 5 5 hero: 6 - ai: "PonyXL, Chromatic abberation, film grain, LoRA adapters, pixel sorting, and film grain" 7 - file: "jackal-abberation-jogging" 8 - prompt: "An anthropomorphic jackal woman jogs through a glitchy, pixelated landscape" 6 + ai: "Photo by Xe Iaso" 7 + file: "partly-cloudy" 8 + prompt: "A picture of a partly cloudy sky" 9 9 social: false 10 10 series: anubis 11 11 ---
+3 -3
lume/src/blog/2025/tailwind-sans-bloat.mdx
··· 3 3 desc: "What you need when even HTMX is too much." 4 4 date: 2025-01-11 5 5 hero: 6 - ai: "Stable Diffusion v1.5 with about 13 LoRAs stacked on top" 7 - file: "vaporwave-vibes" 8 - prompt: "A blue-haired anime woman in front of a vaporwave grid and a slowly setting synthwave sun" 6 + ai: "Photo by Xe Iaso" 7 + file: "airplane-view-of-fields" 8 + prompt: "A photograph of fields on the ground shot from an airplane" 9 9 social: false 10 10 --- 11 11
+3 -3
lume/src/blog/OVE-20221017-0001.mdx
··· 7 7 - infosec 8 8 series: CVE 9 9 hero: 10 - ai: "Waifu Diffusion V1.3" 11 - file: "cyberpunk-forest-fire" 12 - prompt: "studio ghibli, cyberpunk, trash can, fire, forest fire, forest, lots of fire" 10 + ai: "Photo by Xe Iaso" 11 + file: "berlin-path-trees" 12 + prompt: "A picture of a path in Berlin surrounded by trees, giving the scene a lot of lovely colour contrasts." 13 13 --- 14 14 15 15 [PolyMC](https://polymc.org/) is a modpack manager for
+3 -3
lume/src/blog/coffee-isekai.mdx
··· 5 5 - coffee 6 6 - dangerousForWallet 7 7 hero: 8 - ai: Anything 9 - file: kafejo-vibes 10 - prompt: duo, (1girl, green hair, hoodie, long hair, green eyes, tired, holding coffee), (kitchen counter, coffee, coffee grinder, coffee machine, espresso machine), (1guy, brown hair, very short hair), happy 8 + ai: Photo by Xe Iaso 9 + file: daybreak 10 + prompt: The sun breaking out, banishing the darkness from the sky 11 11 --- 12 12 13 13 Coffee is one of the most important parts of my daily ritual.
+3 -3
lume/src/blog/elasticsearch.mdx
··· 8 8 - javascript 9 9 - rant 10 10 hero: 11 - file: volcano-waifu 12 - ai: SCMix 13 - prompt: volcano, hellfire, burning, fire, 1girl, light green hair, dark green eyes, hoodie, denim, long hair, portrait, masterpiece, best quality, high quality, absurdres, tarot, detailed background 11 + file: true-blue-sky 12 + ai: Photo by Xe Iaso 13 + prompt: A very blue sky with only a few scattered thin clouds. 14 14 --- 15 15 16 16 <XeblogConv name="Mara" mood="hacker">
+3 -3
lume/src/blog/fresh-cors.mdx
··· 7 7 - deno 8 8 - preact 9 9 hero: 10 - ai: SCMix 11 - file: lemonade 12 - prompt: 1girl, green hair, green eyes, long hair, kitchen, lemon, juicer, black hoodie 10 + ai: Photo by Xe Iaso 11 + file: white-rose 12 + prompt: A white rose on an orange backdrop. 13 13 --- 14 14 15 15 We can't trust browsers because they are designed to execute arbitrary
+3 -3
lume/src/blog/go-1.20-yaml.mdx
··· 5 5 - go 6 6 - yaml 7 7 hero: 8 - ai: Ligne Claire 9 - file: hime 10 - prompt: masterpiece, 1girl, green hair, ligne claire, sunset, depth of field, black, yellow, blue, orange, haze 8 + ai: Photo by Xe Iaso 9 + file: white-tiny-flowers 10 + prompt: A photo of a bush with tiny white flowers. 11 11 --- 12 12 13 13 Because YAML parsing is horrible. YAML supports floating point numbers
+44 -36
lume/src/blog/go-fork-nix.mdx
··· 2 2 title: How to use a fork of the Go compiler with Nix 3 3 date: 2023-03-28 4 4 tags: 5 - - golang 6 - - nix 5 + - golang 6 + - nix 7 7 hero: 8 - ai: Fluff Proto-r10 9 - file: coffee-gopher 10 - prompt: rodent, gopher, blue fur, blue hair, blue skin, calarts, solo, male, laptop, coffee shop, detailed background, anthro, coffee mug, happy, black nose, best quality, highly detailed, eyes closed 8 + ai: Photo by Xe Iaso 9 + file: pike-place-market-pig 10 + prompt: One of the iconic golden pig statues in the Pike Place Market in Seattle 11 11 --- 12 12 13 13 Sometimes God is dead and you need to build something with a different ··· 16 16 17 17 However, we're in Nix land. We can do anything\*. 18 18 19 - <XeblogConv name="Aoi" mood="coffee">\*with sufficent hackery.</XeblogConv> 19 + <XeblogConv name="Aoi" mood="coffee"> 20 + \*with sufficent hackery. 21 + </XeblogConv> 20 22 21 23 I got accepted to [Gophercon EU](https://gophercon.eu/speakers) and a 22 24 lot of it involves doing weird things with WebAssembly and messing ··· 32 34 to pull this into my monorepo's Nix flake so that I can run `gowasi 33 35 build foo.go` and get `foo.wasm` in the same folder to experiment with. 34 36 35 - <XeblogConv name="Mara" mood="hacker">A CL in the Go ecosystem is a 36 - change list or change log. You can think about it as analogous to a 37 - pull request in GitHub.</XeblogConv> 37 + <XeblogConv name="Mara" mood="hacker"> 38 + A CL in the Go ecosystem is a change list or change log. You can think about 39 + it as analogous to a pull request in GitHub. 40 + </XeblogConv> 38 41 39 42 Turns out this is really easy. In order to do this, you need to do 40 43 three things: ··· 92 95 }); 93 96 ``` 94 97 95 - <XeblogConv name="Aoi" mood="wut">Why are you using a `'` and calling 96 - it `wasigo-prime`?</XeblogConv> 97 - <XeblogConv name="Cadey" mood="enby">If I don't name it something 98 - else, I will create an infinitely recursive definition. Nix is lazy 99 - and only evaluates things when it needs to. Making a binding called 100 - `wasigo` and using the name `wasigo` inside that will create infinite 101 - recursion when it is evaluated. I don't know of a better name for 102 - this, but a common pattern in Nix land is to use primes (`'`) for 103 - distinct values with the same name. Just like in 104 - Haskell.</XeblogConv> 105 - <XeblogConv name="Aoi" mood="wut">What about that `VERSION` 106 - file, what's that there for?</XeblogConv> 107 - <XeblogConv name="Cadey" mood="enby">That is there to tell the Go 108 - compiler toolchain what version it is. When you clone a git repository 109 - into the Nix store, all of the git metadata is purged from the 110 - checkout (because it's not byte-for-byte reproducible and random 111 - changes there could cause unwanted rebuilds of a lot of packages). If 112 - the `VERSION` file doesn't exist, the Go toolchain will try to 113 - discover what version it is from the `git` metadata, which doesn't 114 - exist. This file lies to the toolchain so that builds 115 - work.</XeblogConv> 116 - <XeblogConv name="Aoi" mood="cheer">I see, thanks!</XeblogConv> 98 + <XeblogConv name="Aoi" mood="wut"> 99 + Why are you using a `'` and calling it `wasigo-prime`? 100 + </XeblogConv> 101 + <XeblogConv name="Cadey" mood="enby"> 102 + If I don't name it something else, I will create an infinitely recursive 103 + definition. Nix is lazy and only evaluates things when it needs to. Making a 104 + binding called `wasigo` and using the name `wasigo` inside that will create 105 + infinite recursion when it is evaluated. I don't know of a better name for 106 + this, but a common pattern in Nix land is to use primes (`'`) for distinct 107 + values with the same name. Just like in Haskell. 108 + </XeblogConv> 109 + <XeblogConv name="Aoi" mood="wut"> 110 + What about that `VERSION` file, what's that there for? 111 + </XeblogConv> 112 + <XeblogConv name="Cadey" mood="enby"> 113 + That is there to tell the Go compiler toolchain what version it is. When you 114 + clone a git repository into the Nix store, all of the git metadata is purged 115 + from the checkout (because it's not byte-for-byte reproducible and random 116 + changes there could cause unwanted rebuilds of a lot of packages). If the 117 + `VERSION` file doesn't exist, the Go toolchain will try to discover what 118 + version it is from the `git` metadata, which doesn't exist. This file lies to 119 + the toolchain so that builds work. 120 + </XeblogConv> 121 + <XeblogConv name="Aoi" mood="cheer"> 122 + I see, thanks! 123 + </XeblogConv> 117 124 118 125 ## Make a wrapper script 119 126 ··· 144 151 exec /nix/store/px67cnp39lzynhknqqjjn9c3b838qnw9-go-1.20.2/bin/go $* 145 152 ``` 146 153 147 - <XeblogConv name="Mimi" mood="happy">The exec builtin command in Bash 148 - is used to execute a command that completely replaces the current 149 - shell process. The original shell process is destroyed and overwritten 150 - by the new command. Any commands after the exec command in the script 151 - do not get executed.</XeblogConv> 154 + <XeblogConv name="Mimi" mood="happy"> 155 + The exec builtin command in Bash is used to execute a command that completely 156 + replaces the current shell process. The original shell process is destroyed 157 + and overwritten by the new command. Any commands after the exec command in the 158 + script do not get executed. 159 + </XeblogConv> 152 160 153 161 And then you can go off to the races and compile things to your 154 162 heart's content!
+24 -40
lume/src/blog/gokrazy-sdcard-resize.mdx
··· 4 4 tags: 5 5 - gokrazy 6 6 hero: 7 - ai: Anything V3 8 - file: seattle-commute 9 - prompt: "1girl, green hair, green eyes, tshirt, jeans, sneakers, seattle, space needle, controlnet overlay: soyjacks pointing" 7 + ai: Photo by Xe Iaso 8 + file: sunburst 9 + prompt: "The sun bursting into the sky at daybreak, taken from a plane." 10 10 --- 11 11 12 12 I have a Raspberry Pi embedded into my main shellbox. This allows me ··· 57 57 ``` 58 58 59 59 <XeblogConv name="Mara" mood="hacker"> 60 - In `dd`, the `if=` is the _input_ file and the `of=` is the _output 61 - file_. These can be any files you want, even normal files on the 62 - disk. If you SD card reader doesn't have two slots, you will have to 63 - set the output file to somewhere on the disk, and then use that file 64 - as the input file for the next run. It'd be something like: 65 - 66 - ``` 67 - sudo dd if=/dev/sde of=./sdcard.img bs=4M status=progress 68 - (swap cards) 69 - sudo dd if=./sdcard.img of=/dev/sde bs=4M status=progress 70 - ``` 71 - 72 - Keep in mind that when you're running `dd` commands like this, you are 73 - basically working without guardrails or handbrakes. You need to be 74 - _absolutely certain_ that you are dealing with the correct devices. 75 - You can check these by using the `lsblk` or `dmesg` commands. 76 - 77 - `lsblk` lets you see the storage "block" devices that are connected 78 - to a Linux machine. For example, here's what you could see on a 79 - Linux machine's NVME drive: 80 - 81 - ``` 82 - $ lsblk /dev/nvme0n1 83 - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS 84 - nvme0n1 259:0 0 931.5G 0 disk 85 - ├─nvme0n1p1 259:1 0 923G 0 part 86 - ├─nvme0n1p2 259:2 0 8G 0 part [SWAP] 87 - └─nvme0n1p3 259:3 0 511M 0 part /boot 88 - ``` 89 - 90 - `dmesg` lets you see the kernel log buffer. You may want to run it 91 - with `-w` so that you can continuously watch the changes. When 92 - figuring out which SD card was which, I used `dmesg -w` to look for 93 - new block storage devices being connected, and then `lsblk` to 94 - figure out which one was the old/new one. Gokrazy sets up 4 95 - partitions (boot, root A, root B, and persistent storage), so you 96 - can also use that to help you figure out which is which. 60 + In `dd`, the `if=` is the _input_ file and the `of=` is the _output file_. 61 + These can be any files you want, even normal files on the disk. If you SD card 62 + reader doesn't have two slots, you will have to set the output file to 63 + somewhere on the disk, and then use that file as the input file for the next 64 + run. It'd be something like: ``` sudo dd if=/dev/sde of=./sdcard.img bs=4M 65 + status=progress (swap cards) sudo dd if=./sdcard.img of=/dev/sde bs=4M 66 + status=progress ``` Keep in mind that when you're running `dd` commands like 67 + this, you are basically working without guardrails or handbrakes. You need to 68 + be _absolutely certain_ that you are dealing with the correct devices. You can 69 + check these by using the `lsblk` or `dmesg` commands. `lsblk` lets you see the 70 + storage "block" devices that are connected to a Linux machine. For example, 71 + here's what you could see on a Linux machine's NVME drive: ``` $ lsblk 72 + /dev/nvme0n1 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 931.5G 0 73 + disk ├─nvme0n1p1 259:1 0 923G 0 part ├─nvme0n1p2 259:2 0 8G 0 part [SWAP] 74 + └─nvme0n1p3 259:3 0 511M 0 part /boot ``` `dmesg` lets you see the kernel log 75 + buffer. You may want to run it with `-w` so that you can continuously watch 76 + the changes. When figuring out which SD card was which, I used `dmesg -w` to 77 + look for new block storage devices being connected, and then `lsblk` to figure 78 + out which one was the old/new one. Gokrazy sets up 4 partitions (boot, root A, 79 + root B, and persistent storage), so you can also use that to help you figure 80 + out which is which. 97 81 </XeblogConv> 98 82 99 83 The data copy took at least half an hour, which I left running while
+3 -3
lume/src/blog/iaso-fonts.mdx
··· 8 8 - CSS 9 9 - woff2 10 10 hero: 11 - ai: Anything 12 - file: park-drawing 13 - prompt: 1girl, light green hair, green eyes, black hoodie, long hair, outdoors, seattle, picnic table, wearing headphones, sketchpad, drawing, pondering, ponytail, space needle 11 + ai: Photo by Xe Iaso 12 + file: yyz-coming-in-landing 13 + prompt: A picture of an airplane coming in for a landing at Toronto Airport 14 14 --- 15 15 16 16 Hey all! You may have noticed things looking a little different on the
+3 -3
lume/src/blog/idk-about-email.mdx
··· 5 5 - satire 6 6 - email 7 7 hero: 8 - ai: Counterfeit 9 - file: uncertain-foxgirl 10 - prompt: a girl with yellow eyes, pink hair, fox ears, a white hoodie, and a short skirt walking through a park; her hair is very long and is wearing a very uncertain look. 8 + ai: Photo by Xe Iaso 9 + file: red-tulip-graded 10 + prompt: A color-graded photo of an unusual red tulip 11 11 --- 12 12 13 13 So recently I've been trying to use email and I just don't know how I
+3 -3
lume/src/blog/jsx-quasi-quoting.mdx
··· 6 6 - JavaScript 7 7 - Lisp 8 8 hero: 9 - ai: Waifu Diffusion 10 - file: sky-sigils 11 - prompt: glowing sigils, sigils, zen, yin yang, taoism, landscape, world trade center, peaceful, arknights, scifi, runic energy, spellcraft 9 + ai: Photo by Xe Iaso 10 + file: duotone-path 11 + prompt: A duotone picture of a concrete path dividing two patches of grass. 12 12 --- 13 13 14 14 I've been writing a fair bit of JSX/TSX code lately and something has felt oddly
+3 -3
lume/src/blog/lesson-online-feedback.mdx
··· 2 2 title: "You don't have to engage with people on the Internet" 3 3 date: 2023-01-18 4 4 hero: 5 - ai: "Waifu Diffusion v1.3" 6 - file: "seattle-onsen-coffee" 7 - prompt: "zen, peaceful, onsen, shibuya, anime, coffee shop, colorful, manga, sunset, space needle, thick outlines, hyrule" 5 + ai: Photo by Xe Iaso 6 + file: "white-flowering-trees" 7 + prompt: "A tree flowering with lovely white flowers" 8 8 --- 9 9 10 10 This is a lesson that was very hard for me to learn and I feel I should share
+3 -3
lume/src/blog/mdn-ai-gaslighting.mdx
··· 5 5 - philosophy 6 6 - ai 7 7 hero: 8 - ai: SCMix+Tanuki 9 - file: bad-trip 10 - prompt: A blue-haired foxgirl stands in front of a campfire while camping in winter, with snow covering the tips of the trees. 8 + ai: Photo by Xe Iaso 9 + file: wild-grass-seeding 10 + prompt: Wild grass ready to seed so that its next generation can repeat the cycle 11 11 --- 12 12 13 13 Mozilla is one of the most important companies on the Internet. For a
+3 -3
lume/src/blog/more-coso-bypasses.mdx
··· 7 7 - RubyOnRails 8 8 - hacking 9 9 hero: 10 - ai: Waifu Diffusion v1.3 11 - file: apocalypse-waifu 12 - prompt: mushroom cloud, cityscape, 1girl, gas mask, ninja, dystopian 10 + ai: Photo by Xe Iaso 11 + file: ottawa-river-in-winter 12 + prompt: The Ottawa River in winter, slightly frozen over 13 13 --- 14 14 15 15 Hi there. This is a followup to my article about [the vulnerabilities I found in
+3 -3
lume/src/blog/move-away-rsa-ssh.mdx
··· 9 9 - sre 10 10 - NixOS 11 11 hero: 12 - ai: Stable Diffusion v1.5 13 - file: volcano-bliss 14 - prompt: a rolling green landscape by makoto shinkai, breath of the wild, active volcano, windows xp bliss, manga style, ((thick outlines)) 12 + ai: Photo by Xe Iaso 13 + file: the-return-path 14 + prompt: A concrete path splitting two grassy patches in a park in a suburban exclave 15 15 --- 16 16 17 17 [RSA](<https://en.wikipedia.org/wiki/RSA_(cryptosystem)>) is one of the most
+3 -3
lume/src/blog/nix-flakes-go-programs.mdx
··· 7 7 - nix 8 8 - nixos 9 9 hero: 10 - ai: Waifu Diffusion v1.3 (float16) 11 - file: aoi-starbucks-hacker 12 - prompt: Baby blue gopher, laptop computer, starbucks, 1girl, hacker vibes, manga, thick outlines, evangelion, angel attack, chibi, cat ears 10 + ai: Photo by Xe Iaso 11 + file: green-plant-thing 12 + prompt: Some kind of fuzzy green plant that's probably poisonous. Not for eating or licking. 13 13 --- 14 14 15 15 Sometimes you wake up and realize that reality has chosen violence against you.
+3 -3
lume/src/blog/nix-flakes-look-up-package.mdx
··· 7 7 - flakes 8 8 series: nix-flakes 9 9 hero: 10 - file: fall-archons 11 - prompt: The fall of the Archons, colored pencil drawing, fireball spell, bright sky, digital art, lake of fire 12 - ai: Midjourney 10 + file: ballard-mallard 11 + prompt: A mallard duck in a park in Ballard, Seattle 12 + ai: Photo by Xe Iaso 13 13 --- 14 14 15 15 Sometimes God is dead and you need to figure out what the version of a package
+5 -3
lume/src/blog/nix-flakes-terraform.mdx
··· 7 7 - NixOS 8 8 - Scaleway 9 9 hero: 10 - ai: Eimis Anime Diffusion v1.0 11 - file: nix-flake-terraform-waifu 12 - prompt: "a girl, Phoenix girl, fluffy hair, pixie cut, red hair, red eyes, chuunibyou, war, a hell on earth, Beautiful and detailed explosion, Cold machine, Fire in eyes, burning, Metal texture, Exquisite cloth, Metal carving, volume, best quality, Metal details, Metal scratch, Metal defects, masterpiece, best quality, best quality, illustration, highres, masterpiece, contour deepening, illustration, (beautiful detailed girl), beautiful detailed glow, green necklace, green earrings, kimono, fan, grin" 10 + ai: Photo by Xe Iaso 11 + file: snowy-sunset 12 + prompt: "A picture of the sunset taken near the Ottawa River in winter, snow covers the ground" 13 13 --- 14 14 15 15 For the sake of argument, let's say that you want to create all of your cloud ··· 419 419 nixpkgs.lib.nixosSystem rec { 420 420 system = "x86_64-linux"; 421 421 modules = [ 422 + 422 423 # bake the git revision of the repo into the system 424 + 423 425 ({ ... }: { system.configurationRevision = self.sourceInfo.rev; }) 424 426 ] ++ extraModules; 425 427 };
+3 -3
lume/src/blog/nixos-nginx-openssl-1.x.mdx
··· 6 6 - nginx 7 7 series: nixos 8 8 hero: 9 - ai: "Waifu Diffusion v1.3 (float16)" 10 - file: "alrest-orcas" 11 - prompt: "cloud sea, xenoblade chronicles 2, azurda, blue sky, giant tree, orca, 1girl, red hair, katana" 9 + ai: "Photo by Xe Iaso" 10 + file: "small-island" 11 + prompt: "A picture of the small island in a retaining pond near a walking path" 12 12 --- 13 13 14 14 One of the strengths of NixOS is that you can use NixOS modules to do things
+3 -3
lume/src/blog/openssl-3.x-secvuln-incoming.mdx
··· 6 6 - vuln 7 7 - noxp 8 8 hero: 9 - ai: Waifu Diffusion v1.3 (float16) 10 - file: dark-sky-tokyo 11 - prompt: cityscape, dark, red and black, monotone, black sky, smoke, tokyo 9 + ai: Photo by Xe Iaso 10 + file: montreal-riverside 11 + prompt: A picture of some kind of industrial feature near a river in Montreal 12 12 --- 13 13 14 14 Hoooo boy, 2022 keeps delivering. It seems that the latest way things are
+4 -7
lume/src/blog/openssl-alarm-fatigue.mdx
··· 7 7 - security 8 8 - noxp 9 9 hero: 10 - ai: "Waifu Diffusion v1.3 (float16)" 11 - file: "angy-foxgirl-disapproves" 12 - prompt: "1girl, kimono, animal crossing, klaxon, loud noises, overwhelming, red sky, clouds, storms, long hair, purple hair, yellow eyes, fox ears, thick outlines, ink outlines, black outlines" 10 + ai: "Photo by Xe Iaso" 11 + file: "eclipse" 12 + prompt: "The solar eclipse, if you look closely you can see a pink blob, that's a coronal mass ejection" 13 13 --- 14 14 15 15 So, the OpenSSL security issue embargo ended today and the patches dropped. ··· 133 133 <p lang="en" dir="ltr"> 134 134 Turns out the OpenSSL advisory was more disruptive than the vulnerability. 135 135 </p> 136 - &mdash; dkp (@tweetdkp){" "} 137 - <a href="https://twitter.com/tweetdkp/status/1587537224618369032?ref_src=twsrc%5Etfw"> 138 - November 1, 2022 139 - </a> 136 + &mdash; dkp (@tweetdkp) <a href="https://twitter.com/tweetdkp/status/1587537224618369032?ref_src=twsrc%5Etfw">November 1, 2022</a> 140 137 </blockquote> 141 138 142 139 NixOS has stack protection enabled, so it was never vulnerable to this issue in
+1
lume/src/blog/prompt-engineering.mdx
··· 5 5 - stablediffusion 6 6 - ai 7 7 - madewithai 8 + index: false 8 9 hero: 9 10 ai: "Waifu Diffusion v1.2" 10 11 file: "catgirl-fireworks"
+3 -3
lume/src/blog/pronouns-service.mdx
··· 10 10 twitch: https://www.twitch.tv/videos/1700512891 11 11 youtube: https://youtu.be/tHQaGv1ugYU 12 12 hero: 13 - ai: Waifu Diffusion v1.3 (float16) 14 - file: trippy-seattle 15 - prompt: landscape, breath of the wild, vaporwave palette, CGA colors, space needle in distance, manga style, thick outlines, ink, acid trip, kanji, genshin impact 13 + ai: Photo by Xe Iaso 14 + file: montreal-canal 15 + prompt: A canal in Montreal, multiple tower cranes are doing building work of some kind. 16 16 --- 17 17 18 18 On November 28, 2022, Heroku discontinued their free tier. This free tier had
+3 -3
lume/src/blog/protos.mdx
··· 6 6 - ai 7 7 - fiction 8 8 hero: 9 - ai: Anything V3 10 - file: jeff-protos 11 - prompt: 1guy, laptop, open office 9 + ai: Photo by Xe iaso 10 + file: goose-pond 11 + prompt: A pond with a bunch of geese and ducks in it. 12 12 --- 13 13 14 14 <TecharoDisclaimer />
+4 -3
lume/src/blog/push-2fa-considered-harmful.mdx
··· 8 8 - web3 9 9 - collab 10 10 hero: 11 - ai: Waifu Diffusion v1.2 12 - file: evil-hacker-lain 13 - prompt: an evil hacker at a laptop hacking into the pentagon, anime style, hacker den, monitors everywhere, serial experiments lain, evangelion 11 + ai: Photo by Xe Iaso 12 + file: greenery-and-lush 13 + prompt: A scene of greenery and lush around a pond. A metal grating is near centre frame. 14 14 --- 15 15 16 16 Sooooo [Uber got ··· 30 30 You should really use [WebAuthn](https://webauthn.io/) as your two-factor 31 31 auth solution with dedicated security hardware like Yubikeys or the security 32 32 chip burned into most corp owned devices. Finally there’s a good use for the[manglement engine](https://www.fsf.org/blogs/sysadmin/the-management-engine-an-attack-on-computer-users-freedom) that Stallman said was going to literally destroy Linux! 33 + 33 34 </XeblogConv> 34 35 </details> 35 36
+3 -3
lume/src/blog/redfall.mdx
··· 7 7 - redfall 8 8 - steam 9 9 hero: 10 - ai: Ligne Claire 11 - file: vampire 12 - prompt: ligne claire, flat colors, vampire, spooky house, 1girl, green hair, green eyes, flashlight, indoors, ambiance, face mask, hoodie, pop art 10 + ai: Photo by Xe Iaso 11 + file: path-pond-suburbia 12 + prompt: A path by a pond in a suburban environment. 13 13 --- 14 14 15 15 I bought an RTX 4080 recently. It's a fantastic card and can easily
+3 -3
lume/src/blog/rip-twitter.mdx
··· 6 6 - fediverse 7 7 - rant 8 8 hero: 9 - ai: "Waifu Diffusion v1.3 (float16)" 10 - file: "bird-fleeing" 11 - prompt: "light blue bird, sunset, crying, landscape, anime style, space needle, clouds, sun, genshin impact, teyvat, breath of the wild, hyrule" 9 + ai: "Photo by Xe Iaso" 10 + file: "be-a-good-neighbour" 11 + prompt: "Handwritten sharpie on the side of a metal bridge reading: 'Be a good neighbour, fight capitalism'" 12 12 --- 13 13 14 14 I have been watching in horror as Elon Musk seems to be doing his best to
+8 -7
lume/src/blog/xeact-esbuild.mdx
··· 8 8 - frontend 9 9 series: xeact 10 10 hero: 11 - ai: Ligne Claire v1 12 - file: inspiration-vibes 13 - prompt: 1girl, green hair, green eyes, tshirt, sweatpants, long hair, full body, sitting, outside, landscape, chromatic aberration, smile, looking to the side, backpack, space needle 11 + ai: Photo by Xe Iaso 12 + file: berlin-tv-tower 13 + prompt: A color-graded photo of the Berlin TV tower against a blue sky 14 14 --- 15 15 16 16 [Xeact](https://github.com/Xe/Xeact) has succeeded in its goal of ··· 63 63 unspoken behavior of separate transitive dependencies. This has lead to them 64 64 giving up and shipping vendored `node_modules` folders. 65 65 66 - Can you see why I like Rust as a distribution packager? I don't have to deal with 67 - any problems other than making sure the binary builds and I can slap it in the 68 - package. It is so _easy_ in comparison. 66 + Can you see why I like Rust as a distribution packager? I don't have to deal with 67 + any problems other than making sure the binary builds and I can slap it in the 68 + package. It is so _easy_ in comparison. 69 + 69 70 </XeblogConv> 70 71 71 72 However, I really don't want my builds to randomly start breaking at ··· 132 133 ``` 133 134 /deno-dir/deps/ 134 135 `-- https 135 - `-- xena.greedo.xeserv.us 136 + `-- xena.greedo.xeserv.us 136 137 |-- 15c8dd50d4aede83901b65e305f1eca8dd42955da363aca395949ce932023443 137 138 |-- 15c8dd50d4aede83901b65e305f1eca8dd42955da363aca395949ce932023443.metadata.json 138 139 |-- 6291a9332210dc73f237e710bb70d6aab7f8cd66ea82cb680ed70f83374b34a3
+3 -3
lume/src/notes/2023/nix-flakes-terraform-unfree-fix.mdx
··· 7 7 - terraform 8 8 - enshittification 9 9 hero: 10 - ai: Furryrock 11 - file: coffee-birb 12 - prompt: A pink haired avali wearing a sweater and sweatpants drinking coffee indoors. 10 + ai: Photo by Xe Iaso 11 + file: corona 12 + prompt: The corona of the sun during a solar eclipse 13 13 --- 14 14 15 15 Recently Terraform [changed licenses](https://www.theregister.com/2023/08/11/hashicorp_bsl_licence/) to the Business Source License. This is a non-free license in the eyes of Nix, so now whenever you update your project flakes, you get greeted by this lovely error:
+3 -3
lume/src/notes/2023/vscode-go-ext.mdx
··· 2 2 title: "Why does VSCode keep uninstalling the Go extension?" 3 3 date: 2023-11-15 4 4 hero: 5 - ai: Counterfeit-XL 6 - file: galaxy-waifu 7 - prompt: A green-haired anime woman with cyberpunk style clothing drinking coffee in a cyberpunk space station 5 + ai: Photo by Xe iaso 6 + file: contrail 7 + prompt: An airplane contrail above the Berlin TV tower near sunset 8 8 basename: ../vscode-go-ext 9 9 --- 10 10
+3 -3
lume/src/notes/2024/ai-hype.mdx
··· 2 2 title: "iTerm2 and AI hype overload" 3 3 date: 2024-05-21 4 4 hero: 5 - ai: Kohaku XL 6 - file: iterm-hacker-waifu 7 - prompt: "A green-haired green-eyes anime woman in a dark hacker nest with a laptop and a cup of coffee" 5 + ai: Photo by Xe Iaso 6 + file: airplane-side-sunset 7 + prompt: "A photo of the sun setting, taken from an airplane" 8 8 --- 9 9 10 10 [iTerm2](https://iterm2.com/) is the most popular terminal emulator for macOS machines. I've used it for years and it has gotten out of my way. It's great software. Recently [an update](https://iterm2.com/downloads/stable/iTerm2-3_5_0.changelog) was released that among other things includes new AI integration:
+3 -3
lume/src/notes/2024/introducing-chatmimi.mdx
··· 2 2 title: "Introducing ChatMimi: The Xe Iaso Cinematic Universe (XICU) Chatbot" 3 3 date: 2024-04-01 4 4 hero: 5 - file: "../shitpost/mimi-hime" 6 - ai: Kohaku XL 7 - prompt: "flat colors, ligne claire, 1girl, brown hair, brown eyes, sumeria, temple, white robe, cat ears, full body, long hair, hime, masterpiece, best quality, high quality, solo, best eyes, pupils" 5 + file: "goose-migration" 6 + ai: Photo by Xe Iaso 7 + prompt: "A flock of geese migrating south for the winter on a blue sky" 8 8 tags: 9 9 - aprilFools 10 10 ---
+3 -4
lume/src/notes/2024/iterm2-update.mdx
··· 3 3 date: 2024-05-25 4 4 desc: "You'll need to install something else to use the AI features in the future, you can put down your pitchforks now." 5 5 hero: 6 - ai: "Kohaku XL" 7 - file: iterm2-update 8 - prompt: "An exhausted green-haired green-eyes anime woman in a dark hacker nest with a laptop and a cup of coffee, looking at the viewer." 9 - social: true 6 + ai: "Photo by Xe Iaso" 7 + file: frozen-river 8 + prompt: "A frozen river enclosed with snow" 10 9 --- 11 10 12 11 A fair bit has happened since [my last article about the iTerm2 AI integration fiasco](/notes/2024/ai-hype/) and I wanted to give an update on the situation. First, I want to apologize for a critical error I made that I didn't catch until after the article was published.
+3 -4
lume/src/notes/2024/pop-quiz-tar.mdx
··· 3 3 date: 2024-08-19 4 4 desc: "It's stupider than you think" 5 5 hero: 6 - ai: "Flux [dev]" 7 - file: laptop-anger 8 - prompt: "A green haired anime woman with green eyes and very long hair angrily typing on a laptop, headphones, seattle, space needle, black hoodie, best quality, coffee shop" 9 - social: true 6 + ai: "Photo by Xe Iaso" 7 + file: nightbreak 8 + prompt: "A photo of the sunset taken from an airplane, it looks like night is breaking into the sky." 10 9 --- 11 10 12 11 Pop quiz: what is wrong with this tar command?
+3 -3
lume/src/notes/2025/s1-simple-test-time-scaling.mdx
··· 3 3 desc: "TL;DR: when the model thinks it's done thinking, tell it to think some more. Yes, really." 4 4 date: 2025-02-03 5 5 hero: 6 - ai: "Flux [pro] Ultra v1.1 via fal.ai" 7 - file: "orca-wave" 8 - prompt: "A green-haired anime woman riding an orca through a wave while taking a selfie" 6 + ai: "Photo by Xe Iaso" 7 + file: "field-of-tulips" 8 + prompt: "A field of pink tulips at a very wide aperture." 9 9 social: false 10 10 --- 11 11