The Green Shed

Half dome at night. Yosemite National Park. November, 2024.

A snow-capped Half dome, in Yosemite National Park, towers over the Yosemite Valley floor, on a dark night, just after sunset.

After a multi-year experiment trying to self-host my blog I’m giving up and going back to micro.blog. While it was a fun side-project, the fact is that it got in the way of posting, and I’m tired of that. I don’t have the self-discipline to maintain a blog engine myself, so I’m not going to.

Alan Jacobs nails it:

Warzel errs here in assuming that when people in MAGAworld make declarative statements, and endorse or amplify the declarative statements of others, they do so because they believe those statements to be true.
They don’t; nor do they believe or know them to be false. In my judgment,
truth and falsehood do not at any point enter the frame of reference — such concepts are non-factors, and it is a category mistake to invoke them.

In MAGAworld, declarative statements are not meant to convey information about (as Wittgenstein would put it) what is the case. Declarative statements serve as identity markers — they simultaneously
include and exclude, they simultaneously (a) consolidate the solidarity of people who believe they have shared interests and (b) totally freak out the libtards. That’s what they are for. They are not for conveying Facts, Truth, Reality — nobody cares about that shit. (People who call themselves Truth Seekers are being as ironic as it is possible to be.) Such statements demarcate Inside from Outside in a way that delivers plenty of lulz, and that is their entire function. In that sense only they articulate a kind of dark gospel.

Read the whole thing.

Sun Kissed

The tips of the snow-covered San Fransisco Peaks are illuminated at sunset beneath a darkening blue sky.
The tips of the snow-covered San Fransisco Peaks are illuminated at sunset beneath a darkening blue sky.
Date Taken
March 02, 2023
Camera
SONY ILCE-7RM4A
Lens
FE 85mm F1.8
Focal Length
85.0 mm
Shutter Speed
1/80
Aperture
f/9.0
ISO
100
Keywords
Alpenglow, Landscape, Sunset, Winter

Less AI

I’ve grown tired of AI/GPT news, but I apparently don’t have the self control to just stop visiting Hacker News. So, instead, I installed Sprinkles, which will inject custom JS/CSS into any webpage you want (just like the ol' greasemonkey).

I added this custom script:

// news.ycombinator.com.js
const dimTopics = ['gpt', ' ai ', 'openai', 'copilot'];

for (const el of document.querySelectorAll('.titleline')){
  for (const t of dimTopics){
    if (el.textContent.toLowerCase().includes(t)){
      let titleRow = el.closest('tr');
      let pointsRow = titleRow.nextElementSibling;

      titleRow.remove();
      pointsRow.remove();      
    }
  }
}

et voilà, a more pleasant HN experience.

I expect to add more topics to my list over time.

I will never understand people who like code linters.

Spent the entire day snow skiing yesterday, for the first time in 15+ years. Woke up today without any soreness at all.

Been lifting weights for the last 3 years (for the first time in my life). Turns out it makes a difference.

Eons

Light snow covers the upper edges of the cliffs of the Grand Canyon.
Light snow covers the upper edges of the cliffs of the Grand Canyon.
Date Taken
February 27, 2023
Camera
SONY ILCE-7RM4A
Lens
FE 85mm F1.8
Focal Length
85.0 mm
Shutter Speed
1/1000
Aperture
f/8.0
ISO
100
Keywords
Grand Canyon, Landscape

Rented skis to go snow skiing for the first time in over a decade tomorrow. I’m pretty apprehensive. I’m much older, but also in way better shape than the last time I went.

Went to the Grand Canyon today, which was an audible on original plans, and it was exactly the right decision. Amazing weather, amazing light up there. Very few people. I was able to just sit and look, in silence, for long stretches at a time. And I took a zillion photos.

Home Assistant Config for a Basic JSON REST Device

After much effort (and help from the forums), I was able to get a config working for my backyard weather station.

My station is custom built hardware, and returns a very simple JSON object with its current state when queried.

The json it returns looks like this:

{"timestamp":"2022-03-12 09:35:36 -0700",
 "temperature_c":15.8720368908,
 "temperature_f":60.56966640344,
 "humidity":27.009330285,
 "pressure":965.103717974,
 "dewpoint_c":-3.0690760974329714,
 "dewpoint_f":26.47566302462065}

And this is the Home Assistant configuration I needed to use to get the data into HASS:

rest:
  - resource: http://weather.local
    scan_interval: 60
    sensor:
      - name: Weather Station - Temperature
        value_template: '{{ value_json.temperature_f | round(1) }}'
        unit_of_measurement: '°F'
        device_class: temperature
        state_class: measurement
      - name: Weather Station - Humidity
        value_template: '{{ value_json.humidity | round(1) }}'
        unit_of_measurement: '%'
        device_class: humidity
        state_class: measurement
      - name: Weather Station - Pressure
        value_template: '{{ value_json.pressure | round(1) }}'
        unit_of_measurement: 'mbar'
        device_class: atmospheric_pressure
        state_class: measurement
      - name: Weather Station - Dewpoint
        value_template: '{{ value_json.dewpoint_f | round(1) }}'
        unit_of_measurement: '°F'
        device_class: temperature
        state_class: measurement

Home Assistant is very powerful, but goodness is the learning curve steep. Documentation exists, but much of it is not helpful enough. I should probably contribute back some additional examples, at the least.

(Interesting side note: I asked ChatGPT to help me put together a configuration for this setup. It was able to do so, but the result was inefficient and used an older style of REST sensor setup. Human help in the forums led me to this solution.)

Thought experiment: a lossy compression algorithm that includes noise in the decompression phase. Every decompression is unique. 🤔

Home Assistant API Call for Setting Dimmable Lamp Brightness

I had to play around with the Home Assistant API to figure out how to set the brighness of a dimmable lamp. This is what ended up working.

My lamp was setup with brightness as a Number.

curl -H "Authorization: Bearer your_token_goes_here" -H "Content-Type: application/json" -d '{"entity_id": "number.my_lamp", "value": 100}' http://homeassistant.local:8123/api/services/number/set_value

If the CEO of OpenAI thinks that you are a stochastic parrot, then that means that he doesn’t really recognize you as a person. We have a word for that kind of systemic lack of empathy and that word is “psychopath”.

www.jwz.org/blog/2023…

Spent way too much time trying to get my ESP32 board to send data to my mqtt broker. Still haven’t got it working. Probably should have just stuck with REST. Too clever for my own good.

Use AWS_PROFILE when working with AWS SDKs of all kinds

It turns out that if you set an environment variable named AWS_PROFILE, all AWS SDKs (including the CLI) will respect that value when looking for credentials for the current command.

Thanks to my brother, Ben, for pointing this out to me. It cleaned up a ton of boilerplate in some Ruby code I’ve been writing.

Finished reading: Abandon by Blake Crouch 📚

Well written but too hopelessly dark for my taste.

ChatGPT and its ilk may well result in a better experience for searching than Google — for a while. But if you don’t think the shitty incentives that led to Google’s quality dropping off aren’t going to affect these LLMs in the exact same ways, I’ve got a bridge to sell you.

Docker is just terrible. The default options always seem wrong. The error output is often inscrutible. Debugging is a nightmare. This is just poorly designed software.

Enshittification

This is enshittification: Surpluses are first directed to users; then, once they’re locked in, surpluses go to suppliers; then once they’re locked in, the surplus is handed to shareholders and the platform becomes a useless pile of shit. From mobile app stores to Steam, from Facebook to Twitter, this is the enshittification lifecycle.

www.wired.com/story/tik…

This is it. The last 25 years in a nutshell.