Ring of Fire
Annular Eclipse, October, 2023. Taken from Valley of the Gods, Utah.
Annular Eclipse, October, 2023. Taken from Valley of the Gods, Utah.
The sun cuts through the clouds above Trout Lake, near Telluride, Colorado.
Sony Alpha a7rIV.
Two hummingbirds vie for territory around the feeder.
There is so much good stuff in this article by Alan Jacobs it feels like a failure to target a small bit, but I'm going to anyway.
Technopoly tells us that we own ourselves, and that everything we need to fulfill our own (unchallengeable) desires is available for sale in the marketplace. But of course this is a system that only works if what we desire can in fact be purchased; and since that cannot in advance be guaranteed, the initial imperative of Technopoly is to train our desires, to channel them towards what the system already has for sale.
And the greatest instruments ever devised for such channeling are our internet-connected devices, especially when we connect to the internet through apps. The reason? Because while pens and paper can be used in extraordinarily varied and unpredictable ways, apps can’t: the ways in which we can interact with them are determined with great specificity and no deviation from the designed user-interface paradigm is permitted. You can use a pen to write a poem in elaborate cursive, sketch a tree, play Hangman, or, in moments of desperation, scratch a mosquito bite or skewer a chunk of watermelon. (I am describing, not recommending.) With TikTok, you can … make TikToks. The app is so far the ultimate extension of what Albert Borgmann called the device paradigm.
I think this gets to the heart of something I've long felt, but struggled to articulate.
I love the tactile nature of hand-based UI. The direct-interaction with object-on-screen, the elimination of the indirection of the pointing device, and the thrill of haptics is a computer experience like no other. As others have said, these are the most personal computers we've ever had.
And yet, our interaction with them is mediated by, as Jacobs points out, these apps. These little emotional casinos, begging for our next coin of attention, neutered by App Store rules, subject themselves to protection payments in the way of a platform owner tax on each sale.
Contrast, as Jacobs does, the liberté of pen & paper: unmediated, uncontrolled, unlimited by another. Stark, indeed.
But even within the confines of the constructed edifice of computer interfaces we could have gone another direction with these devices. Openness, flexibility, and freedom were available. The technocrats, however, did not choose Liberty.
Every day if feels like a greater miracle that the Open Web exists at all. One that I don't want to take for granted.
A meteor leaves a bright green trail through the Milky Way, above the San Fransisco peaks, north of Flagstaff, Arizona. Single exposure.
Jamie Zawinski celebrated 25 years of jwz.org this week, and there was an article about the Netscape Meteors Throbber which made the rounds as well. Reflecting on it all reminded me of how special a time those early web days were, but also how much I really love the web, even after all these years.
So much has moved to mobile apps these days, and while I've worked on plenty of those, and I'm proud of the work I've done, the web is my true love.
The freedom to do whatever you want, the ability to view your work just about anywhere, the openness of View Source, all with no gatekeepers — it's incredible.
I love being able to make a change to a website and deploy that change in seconds. No review, no 30% tax.
Your ideas, a blank canvas, and infinite possibility. It's a world unlike any other these days, and I don't take it for granted.
New platforms will come and go. The web will always have my heart.
Crescent City, California.
Stout Grove, Redwood National and State Parks, California.
The Falls on Fireplace Creek below Fireplace Bluffs, Yosemite National Park.
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.
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.
Currently reading: Green Mars by Kim Stanley Robinson 📚
Finished reading: Stories of Your Life and Others by Ted Chiang 📚
Very interesting stories in this collection! I enjoyed it.
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. 🤔