Neat! Gonna give it a shot now that it's charged. Hopefully I can actually code with this thing.
Newly decorated gecko terrarium! The plants in the back left and along the bottom of the cactus skeleton are real.
I'm honestly so happy I sat down and made this car2dot library. It's made it so much easier to debug #IPFS stuff.
I got this little keyboard from my computer so that I can sit cross legged and have my hands on my lap instead of having to reach up for my keyboard and mouse. I'm also using this to augment my speech to text set up. basically, I use my voice for most of my typing and then this thing for keyboard shortcuts and turning my speech recognition on and off.
Just ran a lil LLM on my #SteamDeck. 7b with 4bit quantization so it's pretty small and dumb. I'm calling it stink-demon.
I'm gonna try to get it to do simple formatting tasks from text I've selected with my mouse based on the speech to text I'm adding to my deck via Vosk and steam-dictation.
Watching @expede do her talk on distributed compute while I mess with keybord bindings at @causalislands 🤯
Now that I have some basics in there, lemme add a DNS address: hyper://gem.mauve.moe/index.gmi
I use namecheap for DNS but you should be able to use whatever you want as long as it supports DNS TXT records.
```
TXT _dnslink.gem dnslink=/hyper/sqtc3rcay8hcg3y8ehcrc66zpiceufstcwupukrggf5eukwp7xdo
```
And bam! I now have a nice looking URL for my blog and it just took a few commands in my devtools and a single DNS record. No servers required!
K, lets delete the old file and make a new one:
```
await fetch('README.gemini', {method: 'delete'})
await fetch('/index.gmi', {
method: 'PUT',
body: `
# Mauve's Gemblog!
Wow this sure is something.
Way more advanced than my HTML based blog!
=> https://blog.mauve.moe
`
})
```
hyper://sqtc3rcay8hcg3y8ehcrc66zpiceufstcwupukrggf5eukwp7xdo/index.gmi
Navigating to the URL will give me an empty index. So first thing I'll do is add my "homepage" under `/README.gemini`. Sadly I don't have a thing to resolve `index.gemini` yet, but I wanna add that next time I get a chance. Gonna read these docs to brush up on my gemtext: gemini://gemini.circumlunar.space/docs/gemtext.gmi
```
res = await fetch('/README.gemini', {
method: 'PUT',
body: `# Mauve's Gemblog!`
})
await res.text()
```
Now I can reload and click to open the page
Next I'm going to use the `fetch()` API to create a new `hyper://` website based on a "pet name" for the key. Every time I use this human readable name it will resolve to the same human-unreadable public key URL.
I got back hyper://sqtc3rcay8hcg3y8ehcrc66zpiceufstcwupukrggf5eukwp7xdo/ which is the public URL for my new site (currently empty)
```
res = await fetch('hyper://localhost/?key=gemblog', {method: 'POST'})
await res.text()
```
First thing I'm gonna do is open agregore://welcome to get a fresh page and hit ctrl+shift+i to open up the devtools. You can also use `File > Open Dev Tools` or right click on the page and hit `Inspect`.
My goat is now a fairy. 🥰
Honestly hard to make an image caption that captures this majesty
Occult Enby that's making local-first software with peer to peer protocols, mesh networks, and the web.
Exploring what a local-first cyberspace might look like in my spare time.