dannyman.toldme.com

This page features every post I write, and is dedicated to Andrew Ho.

April 7, 2023
Technology, USA

Familiarity and Comfort in Las Vegas

Link: https://dannyman.toldme.com/2023/04/07/the-meadow/

I wondered about the name “Las Vegas.” I am a California resident who dabbles in Duo Lingo. “Las Vegas” means “The Meadow,” named by a Spaniard who enjoyed stopping over at this grassy meadow in the desert. A meadow fed by natural springs. Later, the Americans would come and build pumps, draining the springs, and leaving the city to sink several feet into the desert sand: vegas no más. Other minds beheld this sunken place near the Hoover Dam, nodded at the lack of prohibitions on gambling, and began building casinos. The casinos begat a nice airport. Other minds contemplated diversification: cheap power, cheap land and easy logistics are all good for the datacenter business. The party will last as long as the Colorado River flows. It is a visit to the dimmed lights of the datacenter that brought me.

When America allows itself to take all its worst instincts and run with them, we get Las Vegas. The City feels like any suburb in America: a series of large shopping malls in the middle of town sealed in to their own reality, surrounded by humbler strip malls where the locals satisfy their day-to-day commercial needs. All generously connected by a grid of six lane roads and choked highways. The area leading to the Buy N Large datacenter is rocky desert strewn with trash. A developing country missing its stray dogs.

It was from the driver of the rental car shuttle bus that I gleaned a potential use for Las Vegas. As we rode from the Airport Terminal to the Car Rental complex across the street, he took to the mic to entertain and inform. The weather was in the fifties that day, but in a few days the forecast called for ninety. He then explained that the airport had recently been renamed from “McCarran” to “Harry Reid” and fortunately most of the signs have been changed, but for the first year a lot of folks had been confused. Our driver then informed us of a list of national parks and how many hours of driving they were from Las Vegas: Bryce, Zion, Death Valley, and the North Rim and the South Rim of the Grand Canyon. Ah, I thought: as an air hub, Las Vegas could be a good spot to fly to with the family to rent a car and explore. Coastal Northern California is surpringly far from The West. Perhaps I would be back.

An early morning line at the airport Starbucks, where I’m pretty sure I won’t be served.

The morning was long. I had been up at 5:30 to shower, drive, park, and catch my flight. I had hoped for a pastry and coffee at the airport Starbucks, but the line was long and moved at zombie speed. I stood patiently for a few minutes until the airport loud speaker announced that my plane was now boarding, and I had the length of the terminal to cross. On the plane, the pilot announced that due to the unusual presence of Weather in California, the flight could be choppy, so no “service” would be attempted, for safety. At Harry Reid’s rental car terminal, there was a big Starbucks in the middle, but I had an orientation to get to at the Buy N Large datacenter, and at that point I had achieved my “cruising altitude” for the morning and didn’t need anything. I made my way to the cars and picked the Blue One. When asked to choose a rental car, I try to go for the most unusual color, in hopes of remembering which car I was driving.

Driving rental cars is its own pleasure for me, because at any given point in my life I am probably driving an older car. Behold, the crisp video feed from the backup camera! How does the cruise control work? Lane keeping! That’s neat. Where do I put my phone for easy navigation. Once I discover that I can pair my phone to the car’s video screen I am in a good place. At some point I ask myself whether I might want to be the kind of person who always drives a newer car. And I explain to myself that sounds nice but what is even better than that is to be the kind of person who doesn’t spend enough time driving for car quality to be important.

The Buy N Large datacenter has several entries in the Maps App. Because I had shipped some hardware last month, I recognized the street name of the one I needed to get to. I met my colleague and an armed security guard gave us the orientation, and guided us through our navigation of the sectors. Buy N Large is the largest data center I have ever worked in. It is one of those monuments which people in my line of work are likely to visit at some point in our careers. I recalled an old colleague who gave up living in Oakland, because The Company was content to have him work remote near the datacenter. He was content to rent a Large House to share with his cats, and drive out into the desert some nights to look up at the stars. Las Vegas was a home base from which he could visit The Universe.

Between orientation and getting work done I needed to eat. I asked The App for Brunch and settled on a place called “Mr Mamas.” A diner in a strip mall. Clean and efficient and delicous, with American portions. I had French Toast and eggs and a lot of coffee and was in a great mood for an afternoon of Moving Cables Around. At one point, I realized I would need More Cables which can be a problem because after all, Fry’s Electronics is no more. But the app suggested that Kiesub Electronics was on the way to Grainger. I hopped in the Blue Car and found The Cables that I needed at Kiesub. I had wanted to buy Extra but they had exactly Enough for my purposes. I got to chatting with the guy and he noted that while Fry’s had come and gone, Kiesub had stood for fifty years. We chatted some more. He inquired about me and I enumerated my blessings, and noted that for me, everything was pretty great. For Now. I’ll always remember the Lean Years after 2001. The guy had been married some decades and explained that while Marriage is Work, it really helps if you don’t take yourself too seriously. Amen.

Back at Buy N Large, I got the cables moved around and around 5:30pm, I called it A Day. I checked in at the hotel and asked for advice regarding dinner. The clerk kindly explained her favorite options which I duly checked out but I just wasn’t Feeling It. I wanted to sit at The Bar, somewhere quiet. I resorted to asking The App for Irish Pubs. After all, that is our comfort in Sunnyvale, which is the name we settled on when the Post Office told us we couldn’t call our town Murphy. The first on the list was in Mandalay Bay, which is a massive golden cube. I drove up to it, and pulled into a driveway. I passed a line of taxis wondering what the parking situation would be. I was deposited back out onto another six lane street. I asked The App again, and scrolled West into the Sprawl. I found my way to an Irish Pub in a Strip Mall. The parking lot was full, but a local vouched that the No Parking Tow Zone filled with parked cars was a place he parked Every Week. For tonight was Trivia Night.

I sat at the bar and the menu bragged that the Fish and Chips were the best in the US in 2019. I had travelled to an inland desert and I ordered The Fish and it was tasty. As suggested, I filled out the trivia cards. Brian the Owner stood near and we chatted. I told him about Buy N Large and he recounted a friend who was gifted in the ways of computers who had a confidence that he could talk himself out of anything, who had met a violent end from a neighbor who had mental problems. It was Halloween, and another Body in the yard had initially been mistaken by the kids as a decoration.

Come morning, I surveyed the Hotel Breakfast. Eager guests fed themselves off styrofoam plates, as is The Custom at American Hotel Breakfast Buffets. I allowed myself to recoil and to drive back over to Mr Mamas to enjoy the same damn meal I had enjoyed the day before. It did not disappoint. I dropped by Buy N Large to check on my colleague. My work done, I dropped in at a local coffee shop, which was okay. Back to Buy N Large, to bring my colleague to the Rental Car Return and on to the airport, where we parted ways, to our different airlines serving different sectors of the Bay Area.

I had a few hours to kill. I walked the length of the terminal, studying my options for sustenance and souveniers. I eventually settled on a $4 Nathan’s hot dog and discovered another Irish Bar next to my gate. A guy left a Blue Moon at the counter, which the barkeep acknowledged would be an insult in Ireland. I took this neglected pint under my care, which I nursed alongside my own Goose Island IPA. Another Illinoisan from Naperville who had matriculated from the same High School as the girl I had once dated from Naperville asked the Irish Bartender what he thought of the mixed drink known as an “Irish Car Bomb.” The bartender named a woman who he had known who got blown up in the early eighties. “It wasn’t intended for her, but her boyfriend, an English soldier.” If an Irish Pub promoted “Car Bombs” you could tell it was run by Americans. Conversation passed well through a third beer.

“Nevada” means “snow” and this year the “Sierra Nevada” lives up to its name.

The flight home was pleasant. I was served a Coke and a snack and had time for the buzz to recede so that I could drive home safely from the Long Term Parking, and help my sweetheart put our boys to bed.

Feedback Welcome

March 23, 2023
FreeBSD, Linux, Mac OS X, Technical

De-duplicating Files with jdupes!

Link: https://dannyman.toldme.com/2023/03/23/de-duplicating-files-with-jdupes/

Part of my day job involves looking at Nagios and checking up on systems that are filling their disks. I was looking at a system with a lot of large files, which are often duplicated, and I thought this would be less of an issue with de-duplication. There are filesystems that support de-duplication, but I recalled the fdupes command, a tool that “finds duplicate files” … if it can find duplicate files, could it perhaps hard-link the duplicates? The short answer is no.

But there is a fork of fdupes called jdupes, which supports de-duplication! I had to try it out.

It turns out your average Hadoop release ships with a healthy number of duplicate files, so I use that as a test corpus.

> du -hs hadoop-3.3.4
1.4G hadoop-3.3.4
> du -s hadoop-3.3.4
1413144 hadoop-3.3.4
> find hadoop-3.3.4 -type f | wc -l
22565

22,565 files in 1.4G, okay. What does jdupes think?

> jdupes -r hadoop-3.3.4 | head
Scanning: 22561 files, 2616 items (in 1 specified)
hadoop-3.3.4/NOTICE.txt
hadoop-3.3.4/share/hadoop/yarn/webapps/ui2/WEB-INF/classes/META-INF/NOTICE.txt

hadoop-3.3.4/libexec/hdfs-config.cmd
hadoop-3.3.4/libexec/mapred-config.cmd

hadoop-3.3.4/LICENSE.txt
hadoop-3.3.4/share/hadoop/yarn/webapps/ui2/WEB-INF/classes/META-INF/LICENSE.txt

hadoop-3.3.4/share/hadoop/common/lib/commons-net-3.6.jar

There are some duplicate files. Let’s take a look.

> diff hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
> ls -l hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
-rwxr-xr-x 1 djh djh 1640 Jul 29 2022 hadoop-3.3.4/libexec/hdfs-config.cmd
-rwxr-xr-x 1 djh djh 1640 Jul 29 2022 hadoop-3.3.4/libexec/mapred-config.cmd

Look identical to me, yes.

> jdupes -r -m hadoop-3.3.4
Scanning: 22561 files, 2616 items (in 1 specified)
2859 duplicate files (in 167 sets), occupying 52 MB

Here, jdupes says it can consolidate the duplicate files and save 52 MB. That is not huge, but I am just testing.

> jdupes -r -L hadoop-3.3.4|head
Scanning: 22561 files, 2616 items (in 1 specified)
[SRC] hadoop-3.3.4/NOTICE.txt
----> hadoop-3.3.4/share/hadoop/yarn/webapps/ui2/WEB-INF/classes/META-INF/NOTICE.txt

[SRC] hadoop-3.3.4/libexec/hdfs-config.cmd
----> hadoop-3.3.4/libexec/mapred-config.cmd

[SRC] hadoop-3.3.4/LICENSE.txt
----> hadoop-3.3.4/share/hadoop/yarn/webapps/ui2/WEB-INF/classes/META-INF/LICENSE.txt

[SRC] hadoop-3.3.4/share/hadoop/common/lib/commons-net-3.6.jar

How about them duplicate files?

> diff hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
> ls -l hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
-rwxr-xr-x 2 djh djh 1640 Jul 29 2022 hadoop-3.3.4/libexec/hdfs-config.cmd
-rwxr-xr-x 2 djh djh 1640 Jul 29 2022 hadoop-3.3.4/libexec/mapred-config.cmd

In the ls output, the “2” in the second column indicates the number of hard links to a file. Before we ran jdupes, each file only linked to itself. After, these two files link to the same spot on disk.

> du -s hadoop-3.3.4
1388980 hadoop-3.3.4
> find hadoop-3.3.4 -type f | wc -l
22566

The directory uses slightly less space, but the file count is the same!

But, be careful!

If you have a filesystem that de-duplicates data, that’s great. If you change the contents of a de-duplicated file, the filesystem will store the new data for the changed file and the old data for the unchanged file. If you de-duplicate with hard links and you edit a deduplicated file, you edit all the files that link to that location on disk. For example:

> ls -l hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
-rwxr-xr-x 2 djh djh 1640 Jul 29 2022 hadoop-3.3.4/libexec/hdfs-config.cmd
-rwxr-xr-x 2 djh djh 1640 Jul 29 2022 hadoop-3.3.4/libexec/mapred-config.cmd
> echo foo >> hadoop-3.3.4/libexec/hdfs-config.cmd
> ls -l hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
-rwxr-xr-x 2 djh djh 1644 Mar 23 16:16 hadoop-3.3.4/libexec/hdfs-config.cmd
-rwxr-xr-x 2 djh djh 1644 Mar 23 16:16 hadoop-3.3.4/libexec/mapred-config.cmd

Both files are now 4 bytes longer! Maybe this is desired, but in plenty of cases, this could be a problem.

Of course, the nature of how you “edit” a file is very important. A file copy utility might replace the files, or it may re-write them in place. You need to experiment and check your documentation. Here is an experiment.

> ls -l hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
-rwxr-xr-x 2 djh djh 1640 Mar 23 16:19 hadoop-3.3.4/libexec/hdfs-config.cmd
-rwxr-xr-x 2 djh djh 1640 Mar 23 16:19 hadoop-3.3.4/libexec/mapred-config.cmd
> cp hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
cp: 'hadoop-3.3.4/libexec/hdfs-config.cmd' and 'hadoop-3.3.4/libexec/mapred-config.cmd' are the same file

The cp command is not having it. What if we replace one of the files?

> cp hadoop-3.3.4/libexec/mapred-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd.orig
> echo foo >> hadoop-3.3.4/libexec/hdfs-config.cmd
> ls -l hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
-rwxr-xr-x 2 djh djh 1644 Mar 23 16:19 hadoop-3.3.4/libexec/hdfs-config.cmd
-rwxr-xr-x 2 djh djh 1644 Mar 23 16:19 hadoop-3.3.4/libexec/mapred-config.cmd
> cp hadoop-3.3.4/libexec/mapred-config.cmd.orig hadoop-3.3.4/libexec/mapred-config.cmd
> ls -l hadoop-3.3.4/libexec/hdfs-config.cmd hadoop-3.3.4/libexec/mapred-config.cmd
-rwxr-xr-x 2 djh djh 1640 Mar 23 16:19 hadoop-3.3.4/libexec/hdfs-config.cmd
-rwxr-xr-x 2 djh djh 1640 Mar 23 16:19 hadoop-3.3.4/libexec/mapred-config.cmd

When I run the cp command to replace one file, it replaces both files.

Back at work, I found I could save a lot of disk space on the system in question with jdupes -L, but I am also wary of unintended consequences of linking files together. If we pursue this strategy in the future, it will be with considerable caution.

Feedback Welcome

February 13, 2023
Sundry

Preschool Memories

Link: https://dannyman.toldme.com/2023/02/13/preschool-memories/

My preschool was in a decrepit VA facility. One day a pipe burst and one of the classrooms was flooding. So they worked around it but to me it felt apocalyptic and I cried accordingly.

Another time I made a bird feeder with a roll of toilet paper, slathered in peanut butter, rolled in bird seed.

Another time we helped the teachers unwrap hella taffy cubes that they melted in a pot and dipped apples in to make us taffy apples. That was excellent.

Another time they gave us eye exams and I was upset that half the exam I couldn’t see the promised capital E. I felt I had been misled.

We would walk as a class down the halls of the VA hospital to the playground, and broken men slept along the walls. We never spoke of them, that I recall.

Feedback Welcome

December 5, 2022
Sunnyvale

A Dutch Intersection … in Sunnyvale?

Link: https://dannyman.toldme.com/2022/12/05/a-dutch-intersection-in-sunnyvale/

[I wrote this up in 2018 but never posted it. Since then, we have added bike lanes on Maude and approved bike lanes on Sunnyvale Ave. I think the contrasting approaches to street design are still really interesting. -danny]

I thought I would catch up on a little reading. I skimmed this article about an intersection in the Netherlands where a distributor road with bicycle lanes intersects smaller roads. The main road is similar in form and function to Maude between Mathilda and Fair Oaks: it is a local distributor with one lane in each direction and a speed limit of 30mph. The Dutch street has curb-separated bicycle lanes and no parking. Maude is slated to eventually receive bicycle lanes, and City Council decided to retain parking.

Graafseweg, as featured in Bicycle Dutch. This is what Maude might look like under Dutch design standards: bicycle lanes are buffered from traffic, and traffic lights are avoided in favor of clear markings and buffers for turning vehicles.

Here’s a look at these streets on a map.


E Maude Ave, in Sunnyvale

Graafseweg, in ‘s-Hertogenbosch

Both streets pass through a residential neighborhood with small businesses. There’s a main road to the West, and most intersections with the collector road are Ts. Because the bicycle lanes and sidewalks are separated from Graafseweg by parkways, the Dutch road looks much bigger on the map. If you zoom down on the satellite view, the roads, especially the travel lanes, are comparable in size. If you drop street parking and narrow the parkways, this design could fit in the Maude corridor.

Here’s a rough overlay of the intersection of Graafseweg and Pater van Den Elsenstraat overlaid at Maude and Sunnyvale Ave.


Maude and Sunnyvale Ave: Current Version

Maude and Sunnyvale Ave: Dutch Version

The street itself lines up perfectly, but the park strip would need to be trimmed to fit. The first difference you notice is the absence of slip lanes, which Sunnyvale plans to remove from this intersection. (The Dutch intersection does have a slip lane on the lower right for bicycle traffic.) The next difference you notice is the absence of turn lanes. There is no signal in the Dutch intersection: vehicles turning left pull into a succession of buffer zones yielding to oncoming traffic.

Consider the pedestrian experience: right now, pedestrians crossing Sunnyvale or Maude must press a “beg button” and wait a minute or two for a walk signal. (This can feel like an eternity and is especially infuriating when there is no oncoming traffic. This is why people “jaywalk.”) In the Dutch version, pedestrians make a series of crossings: a one-way bike lane, then a one-way vehicle lane, then a one-way vehicle lane, and a one-way bike lane. Each crossing is much simpler, and pedestrians complete each crossing in a few seconds.

Motorists also experience a series of simpler crossings. For example, a left from Sunnyvale onto Maude would require a yield to the pedestrian and bicycle lanes, then a yield to Eastbound traffic on Maude, and then a yield to Westbound traffic.

One distinction from the Netherlands is that in California, without a signal, pedestrians have the right-of-way at intersections. In this Dutch intersection, bicycles and pedestrians have the right of way across Sunnyvale Ave but would be obliged to yield to traffic on Maude. You can parse this out by looking closely at the placement of “shark tooth” triangle markings on the pavement to see who is being told to yield. I don’t know if that would be allowed under existing state law.

If you look closely at the Dutch analog of Sunnyvale Ave, you see something very interesting.

Many wish to see a cycle track along Sunnyvale Ave, Sunnyvale’s principal North-South bicycle route. The Dutch street looks like a parkway, but the street to the left is a separate street. The street on the right is narrow and two-way. The bicycle lanes are just under 5′ wide, and between those lanes is a 15′ wide road for two-way traffic. The standard speed limit for this road would be 30mph, but drivers likely slow down because they don’t have much room to maneuver. Also, check out that sweet bus shelter! Compare this with the scene on Sunnyvale Ave at Hazelton. Can you spot the bus stop?

What about parking? The American approach seems to be “put in as much road as possible, and use the sides for parking.” The Dutch approach seems to be “put in less road, more landscaping, and sidewalks, then carve out parking spots where you need them.”

Yes, that mom has enough confidence in the safety of this street to have a young child riding on the back of her bicycle.

The Right-of-Way for these streets is comparable, but the Sunnyvale Ave roadway is 40′ wide. The Doctor Poelsstraat roadway is 25′ wide. The Dutch street still accommodates parking, but the overall experience is more pleasant: pedestrians can cross a narrower street, and the narrow street is a cue for drivers to slow down.

The Dutch have also found a convenient use for their wide, separated bicycle lanes: they can double as parking lanes! Let’s take another look at the Dutch version of Maude Ave.

The 10′ bike lane has car parking along the sides. The nearest car on the right is a reserved spot for a disabled resident. Maude is 50′ curb-to-curb and could fit a 20′ roadway, two 10′ bike lanes, and parking on one side of the street. Parking on both sides might fit at the cost of removed park strips or smaller lawns. The parking-versus-landscaping tradeoff could be made at the block level by local property owners.

Feedback Welcome

November 28, 2022
About Me, Technology

Video Leans Upon the Radio Star

Link: https://dannyman.toldme.com/2022/11/28/video-leans-upon-the-radio-star/

I remember asking Adina about the Green Caltrain blog. Had blogs died, or is that still a way to reach people? Times have changed, she acknowledged, but a lot of people subscribed to the blog via email, and that made it, to this day, a very good way for news to reach people. One “obsolete” technology relied on an older, and even more “obsolete” technology. Video leans upon the radio star.

I put “obsolete” in quotes because while blogs had their day and receded some, people still use them. And email is still great at being email. Some of us are even daring to believe in distributed communication platforms again, thanks to Elon’s ongoing effort to drive Twitter into a wall.

When I was in college, I initially avoided Computer Science, mainly because it felt like Microsoft was eating the technology world, and that wasn’t a platform that gave me joy. But then I discovered Unix, and the ideals of an Internet built by different folks along open standards. Linux and FreeBSD and the ideal that software should be as free (to inspect and modify) as possible. In the early days, most web sites, like this one, were just people writing up HTML markup by hand, later with tools. Blogs came along: get access to a server and run some software, and you can publish your own thoughts for the world to see. And people would subscribe in Google Reader.

Then the Internet took a dark turn. All the content got hoovered into The Walled Garden. I can understand. The Internet is complicated, and Facebook serves some compelling, predictable, fast content. Why leave the restaurant when a visit to McDonald’s is sure to engage you in petty squabbles punctuated with pictures of cats and grandkids?

Twitter is dying. It will shuffle along in a zombie state, perhaps indefinitely. For me, the walled gardens are just so much ping pong distraction candy. Put the engagement machine down, quiet the mind, and let the inner Creation flow.

I’ve signed up for Mastodon. I get more “engagement” than I did on Twitter, and then I get bored and put it away. The concept is Social Media built on Open Standards. Blogs with open standards, shrunk to a Twittery microblog essence. It is nice to be trying a New Thing, especially when that New Thing isn’t built to contain us all in some weird psychology experiment where we are the product.

Feedback Welcome

January 6, 2022
Politics, Woodworking

California Casual Patio Side Table: A Year Later

Link: https://dannyman.toldme.com/2022/01/06/california-casual-patio-side-table-a-year-later/

A year ago I was finishing my second Steve Ramsey build. Or first, if you count the workbench as a “bonus” … I had fun doing the miter cuts and setting up a jig for square angles, sanding, gluing, assembling, screwing … the finishing and sanding and finishing and sanding and finishing was a drag, especially because it was cold out and I had to do the smelly stuff indoors and even put a little space heater in the garage just to keep the gooey stuff warm enough.

At the end of the day, I had a nice table. It has been sitting out in my yard all year, and the tabletop is still smooth as silk.

But as I finished that project, a mob attacked the US Capitol and tried to kill Congress, and we let it happen. We barely managed to keep our Democracy that day. I stayed up late to watch Congress certify the damn vote count. And a few weeks later I listened to Amanda Gorman’s poetry.

I look forward to rekindling my enthusiasm for woodworking. That’s been deferred a bit as I slowly erect a bike shed / fun fort in the back yard to store the bicycles so I can once again putter around the garage workshop.

Feedback Welcome

September 7, 2021
Python, Technical, Technology

Adapting Home Climate Control to Climate Change: the “AQI-o-Stat”

Link: https://dannyman.toldme.com/2021/09/07/aqi-o-stat/

We bought our home in Northern California in 2012, which was great timing because that was about the last time after the mortgage crisis that we could reasonably afford a home, at a mere $605,000. At that time, the home had a floor/wall furnace from 1949 that had a hole that made it a carbon monoxide risk. We upgraded to central heating shortly after. Guys came out and ran ducts all over the attic and hooked them all up to an efficient gas furnace with an air filter. Topped it all off with a shiny Nest thermostat. It gets chilly out here on winter nights, and it used to be only a few days in the summer that anyone needed air conditioning, at which point you go to the office during the week or to the mall on the weekend.

In 2016 I added an air conditioner to the system. The local contractors seemed not quite comfortable with heat pumps, and the furnace was new, and we only run the air conditioner, well, now maybe a total of a few weeks each summer. A major construction project across the street involved asbestos mitigation, and we were having a baby, so the ability to shut the windows on bad days had some appeal. (I later gifted our old box unit AC to another expectant couple who had concerns with construction dust.)

Most of the time, we enjoy having windows open, day and night. Most of the time, our climate is blessedly mild—most of the time. The past few years have had a lot more smoke from all the fires in California. 2020 had an apocalyptic vibe when the plague was joined by a daytime sky turned orange. Shut the windows, run the AC, praise the air filter in the HVAC. For the Pandemic, I also set the air to circulate 15 minutes every hour during off-peak energy hours. (We’re on a Time-of-Use plan.) The idea is that if we had COVID-19 in our air, we would filter some of it out and help improve our odds.

This year has been less awful. The winds have been mostly blowing the fire smoke from the hellscape experienced elsewhere in the West, away from the Bay Area. As a result, AQI has stayed mostly under 200. But as I had gotten back in the habit of checking purpleair.com to figure out if the windows need shut, I got curious to better understand the air quality inside our house, so I ponied up $200 for an indoor monitor. It has a bright LED that changes color based on what it measures, and the boys think that’s a pretty great night light.

My first revelation was that indoor AQI was spiking overnight, starting around midnight. Since I first installed it near the dishwasher, I figured that was the culprit. After a week of A/B testing, I had ruled out the dishwasher and figured out when the wife goes to bed, she likes to run a humidifier, and the water droplets in the air can look like pollution to a laser. Mystery solved!

The other thing I noticed while keeping an eye on purpleair.com to see if it was time to shut the windows is that our indoor AQI would tend to have a lower (better) score than outdoor sensors nearby. That’s good news. Zooming in, I could see a jaggy pattern where the AQI would drop when the furnace fan circulated our air through the MERV 16 filter in the attic, then it would spike back up. The upshot is that we could have open windows most of the time and cleaner air inside the house, but how to run the fan on an efficient schedule?

Well, it is tied to a thermostat … I could implement an “AQI-o-stat” with a Python script that scrapes the AQI reading and tells the Nest to run the fan. The script took about 3 hours to write. 10 minutes to scrape purpleair.com, 2.5 hours to figure out Google/Nest’s authentication API, and 20 minutes to figure out how to set the Nest fan. The authentication part took only 2.5 hours because Wouter Nieworth posted a bunch of helpful screenshots on his blog.

I implemented the “AQI-o-stat” on the afternoon of Sep 3, at which point CatHouse A now keeps AQI around 60 or below, while the neighboring Zinnias outdoor sensor reads in the low hundreds.

There was some tweaking, but I now have a Python script running out of cron that checks the indoor AQI, and if it is above 50, it triggers the timer on the fan. I started polling at 15-minute intervals but found 5-minute intervals made for a steadier outcome. The result is that we can leave the windows open, and the indoor air quality hovers around 60. One less thing to worry about. (There are plenty of things to worry about.) I have been thinking that, in the “New Normal” (which really means there is no “normal” because the climate systems have been thrown into turbulence) that having an air sensor as an input to your smart thermostat will probably just become a standard feature.

So, “hello” from the near future, I guess.

Feedback Welcome

August 3, 2021
Testimonials

Welcome Back

Link: https://dannyman.toldme.com/2021/08/03/welcome-back/

A few months back, everyone was talking about what it was like a year ago to enter the Pandemic. I never was much for that kind of nostalgia. I’ll say the Shelter in Place order came in on a Saturday and the boys cried because it meant their birthday party on Sunday was completely canceled after all. That’s metaphor enough to last me a few years.

I remember that early on, someone asked how long: 6-8 weeks? I suggested that we were looking at 12-18 months because that’s the fastest we could conceivably develop, test, approve, manufacture, and distribute vaccines. I didn’t want to be a bummer so I didn’t bring up my pessimism much. Everyone figured a couple of months.

When things opened up in June, I got us a plane trip to Chicago. We had a big party planned the year before that couldn’t happen, and the youngest had never been, and the older kid I really owed a fireworks show. I had worried about the logistics and whether everyone would have a good time but the trip was so immensely enjoyable.

“We need to have our fun now, before the next wave,” had been my thinking. Of course, I was thinking of the vaccine-resistant strain that has yet to evolve, not the wave that is currently hitting the vaccine-resistant population.

During the Pandemic, my employer figured out that our staff are really productive working from home, and the lease was up on the office so we took the opportunity to downsize. The new location is right next to the train, and on days when family obligations allow, I really love taking the train to the office. I think this is a pretty ideal commute: walk fast to the station, sit down, read a book, walk sorta fast to the office. Some light exercise for the body and relaxation for the mind built right into the schedule.

Lately, I’ve been coming into the office any chance I can get. As I explain, I really like working from home, and I have a good setup, but it also reminds me of the Pandemic, which I am happy to forget. Yesterday came the Public Health Order that we now wear masks in the office. I am here today and tomorrow. There is definitely a feeling of setback.

We had the technology and the money to free our country of the Pandemic this year. What we lacked was a cultural consensus that rolling up sleeves and getting a shot was worth everyone doing. I think this is just a warm-up for how our century will go. The planet is on fire again this year. Portland fried like it was Death Valley. We have, so far, been lucky in the Bay Area. No orange skies, no smoke … I haven’t run the air conditioner in weeks. Just the ongoing drought. This year, the Salmon fry will all be cooked in their natal streams.

We never took action to prevent the Climate Catastrophe beforehand. Even now, we have tools like electric cars and induction stoves and any number of ways we can reduce our Carbon emissions and … we make excuses. The new budget stimulus adds some money for public transportation, but the big money is in building more roads. In a few years, maybe, they say, there will be a few more electric cars you can buy. (And don’t bring up bike lanes.) The power grid is getting cleaner, at least.

I had a cheeseburger for lunch.

Feedback Welcome

February 10, 2021
About Me, News and Reaction, Politics

Democracy and Insurrection

Link: https://dannyman.toldme.com/2021/02/10/democracy-and-insurrection/

I caught the opening of the impeachment trial today. The video from the House Impeachment managers was harrowing and damning. As a friend said last night, the US Capitol is sacred ground. Then Trump’s lawyers got up and rambled aimlessly. Bargain bin guys who came in unprepared to defend a guy who incited a mob to try and kill Congress. I wanted to feel that the case was so one-sided and the defense such a sham that the Senate would see through it and convict him and set a precedent that the United States will not tolerate anyone trying to take the government by force but I know better.

President Trump doesn’t need any defense better than a farce because we all know exactly what will happen. A majority of the Senate, all the Democrats, and some Republicans will vote in favor of Democracy. But not enough. Republicans are loyal to their party. Their Fascist will run again. He’s got a lot more charisma than Ted Cruz.

When the Insurrection happened on January 6, I was impressed that Congress picked themselves up, dusted themselves off, and got back into session. I watched until they certified the vote. Every time the objections to the count were withdrawn for lack of Senate support, I cheered, and for the few hours that objections were required to be heard, I rode it out. Congress certified the vote towards 3 am in Washington, and I counted it fortunate that I only had to stay up towards midnight in California. I explained that as a SysAdmin, when the system crashes and people get upset, I feel like I need to keep an eye on the systems as they get back to normal.

I feel optimistic that Joe Biden could well turn out to be a great President. He’s got a lot of experience, a lot of rapport, and the challenges are substantial. I also feel dread that our flirtation with autocracy is only going to get worse.

Feedback Welcome

February 5, 2021
News and Reaction

Two Billion Humans

Link: https://dannyman.toldme.com/2021/02/05/two-billion-humans/

Here’s a bit from an interview I enjoyed with Eileen Crist from the December 2020 issue of The Sun magazine, which you can read online. I appreciate that folks have done the math to figure out what a good population would be and how we could very reasonably get there. This would be an effort across generations, and who knows what will really happen anyway? We can all chip into a vision that we ourselves will never see.

Tonino: You said earlier that there are approximately 7.8 billion humans on the planet. What would be an ideal number of humans?

Crist: Many analysts are thinking of a provisional goal of around 2 billion. This figure is for a human population enjoying roughly a European standard of living, sustained by organic food production, and eating far less fish, meat, and animal products than the average Western consumer.

Of course, there is no “optimal” population number in an absolute sense, because a lot depends on the level of consumption people gravitate toward, their dietary choices, and unknown variables having to do with technological developments. But 2 billion is more optimal than where we are now and where we are headed. Two billion is what the global population was about a hundred years ago. It is a big-enough number to enable a connected global civilization to continue, with achievements in the sciences, humanities, technology, and so on. In other words, 2 billion can sustain a lively “conversation of humanity.” But it’s a low-enough number to enable the substantial protection of nature that we are discussing.

According to Cornell agronomist [the late] David Pimentel and his colleagues, 2 billion people is the estimated number that can be sustained on organic, diversified, mostly regional agriculture, with farm animals living on the land and people eating a mostly plant-based diet. This way of eating would not only be wholesome for people but good for the planet and for all other animals as well.

You might say: “Fine, 2 billion sounds good, but how do we get there?” We get there by fast-tracking two important human rights: One, full gender equity and schooling for all girls, through at least secondary education. And, two, affordable and accessible family-planning services for all. If we could bring the global fertility rate — voluntarily: I do not support coercion of any kind — to an average of one child per woman, the human population would start to approach 2 billion within four generations.

Tonino: The ecophilosopher Arne Næss said that he was pessimistic about the twenty-first century but optimistic about the twenty-second. How do you think about the future?

Crist: What Næss meant, I think, is that in the twenty-first century there will be a reckoning with how we’ve lived, what we’ve done to the planet and ourselves, and that reckoning will set in motion an awakening: a different way to go about things, a different relationship between Earth and humanity. It’s quite possible that things will play out that way — get bad, then better. In some respects it’s an optimistic prophecy. But obviously there’s no guarantee that the future will follow this trajectory. We don’t even know where we are with respect to climate change. If runaway heating happens — or a nuclear war or some other unimaginable disruption — this trajectory that Næss outlines will be impossible.

Feedback Welcome

January 3, 2021
Woodworking

Christmas Duck

Link: https://dannyman.toldme.com/2021/01/03/christmas-duck/

Inspired by a Steve Ramsey video about making a wooden duck pull-toy, I knocked out a wooden duck push-toy. I had a really tough scrap of 2×8 laying around, and the jigsaw had trouble cutting a fine shape out. A lot of sanding ensued, and the wood kept absorbing the yellow latex craft paint I had on hand. I think that would have been fine but I got a can of yellow spray paint and now this duck can be seen from space.

The duck looked easy enough. Sketch out a shape, trace it onto wood, jigsaw …

The wood was thicker than my jigsaw and skills could handle. Much sanding ensued.

The wooden duck’s thirst for acrylic hobby paint could never be slaked, though I think this would have been good enough.

How long should the push dowel be?

The spray paint provides a nice base for clamping the wheels by the axle as they dry.

A bench dog holds the duck by the push dowel as a space heater helps the sealant out in Sunnyvale’s winter weather.

Sinking a hole in the handle for the push dowel. Fortunately, the client is not too picky about precision.

When all was said and done, it was the boys who really brought this project home!

The wheels are just large dowels, and the axle is straight enough to allow a slight wobble. As this was being built for my younger son I gave him the option of push toy or pull toy. He opted for a push toy, and I made the push stick about the right size for him.

Feedback Welcome

December 16, 2020
Sundry, Woodworking

Oh, Dreidel!

Link: https://dannyman.toldme.com/2020/12/16/oh-dreidel/

Here in 2020, I share an office with my second-grade son. This morning they were talking about Hannukah and making paper dreidels. He got frustrated making his paper dreidel. After lunch, I tried my hand at making a scrap wood dreidel. I used the miter saw to cut a 1×1 stick of wood, then mitered one end into a top. A 1×1 is too small to clamp in a miter saw, and I wasn’t going to stick my hand that close, so I used a “push stick” to hold the piece in place as I mitered it out.

“Oh dreidel, dreidel, dreidel, I miter sawed you out today!”

Of course, imperfections can be fixed with the miracle of sanding. “I made it out of clay,” I kept thinking as I sanded it down.

“Oh dreidel, dreidel, dreidel, I sanded you this way!”

I popped the top into a bench vise and carefully drilled out a hole. A drop of glue and a dowel rod and the boy had a dreidel. I set him up to paint the letters on. He was a little underwhelmed with the quality of his first time painting Hebrew letters on a small wooden object, but I assured him the point of making a dreidel wasn’t to be perfect but to have a simple toy with which to play.

“When it was dry and ready, with the dreidel he did play!”

Through the afternoon, he practiced his top spinning technique.

Feedback Welcome

Older Stuff »
Site Archive