Categories
Gardening ruminations

The SEO garbage search result that sent me over the edge

This post is a spiritual successor to LLMs are good coders, useless writers.

After getting steadily worse for years, the experience of searching the web just hit a new all-time low. I clicked on the top non-ad search result and encountered the worst word-salad nonsense I’ve ever seen. It was too perfect not to share.

I had let the small patch of lawn in my yard get knee-high. My reel mower can’t cut grass that tall, so I broke out the old weed whacker I got on the cheap at ShareHouse. It immediately ran out of the cutting string that it came with, so I found myself at the hardware store shopping for a refill.

I didn’t know if I should replace only the string or swap out the whole head. So, standing in Lowe’s, I whipped out my phone and searched it up: “restring toro weed trimmer”

(I winced when my kids started saying “search it up,” but I’ve since come to appreciate it. It avoids centering a corporation, unlike “I Googled it.” And I wasn’t using Google: the DuckDuckGo browser on my phone is, sadly, Microsoft Bing in disguise).

The first non-video result was from “Backyard Lord.” I’ve included screenshots in case that link dies, as it sure ought to.

Looking at it now, the “Pro Tips for Easy Trimming” suffix reeks of LLM garbage, as does the domain “Backyard Lord.” But the listed steps seemed like what I wanted. I clicked on it.

The page started off okay:

But that was the end of the plausible content. The next block was just keywords and mentioned a tennis racket??

The next block contained the prompt for the LLM! All highlighting mine:

From there it becomes free-association insanity. There’s a step-by-step guide … but each step discusses a totally different industry! Step 1, preparation, is about starting a business:

Step 2 is about restringing a guitar:

Step 3 is empty and Step 4 drips with irony as it talks about strings in the context of LLMs:

Categories
Climate change Gardening Nature ruminations

Relating to natural life today

In the last month I took a family vacation to the Great Smoky Mountains and read two novels about logging: Ron Rash’s Serena and Annie Proulx’s massive Barkskins. Here are some resulting thoughts about trees, creatures, and the people who inhabit their world.

The natural world in America is nothing like what it was

We fall into the trap of thinking that climate change is unprecedented in its destruction of the natural world. But it has a clear predecessor in the deforestation of the period c. 1600-1960, documented in Barkskins, during which nearly every tree in America was cut down, every forest razed, and most wildlife extirpated. The first two sections of Barkskins start with Europeans trapping all of the beavers, minks, and martens in the northeast. Only after the furs are gone do they move onto logging.

In Serena, the logging barons clear-cut the Smokies before selling the land to the government for a national park. Serena is fiction, but this part of the story is true. In the Smokies, we hiked to Avent Cabin, a structure built around 1850. It contains a picture showing its setting around 1920, when it sat in a clearing: all of the surrounding trees had been logged. Now the cabin is again back in the woods, as the regrown trees approach a century of age.

Of course, letting the land go wild again does not recreate the complex webs of life that existed before Europeans arrived. Keystone species like the American chestnut and the passenger pigeon are extinct and megafauna like moose and bear – characters in both novels – have limited presences. The city nature areas and state parks I visit are a sad joke compared to what they held five hundred years ago. At the end of Barkskins, a character muses about “dark diversity,” the species whose absences from an ecosystem can be measured. There’s a lot of that here.

Both novels do a good job painting the picture of natural splendor that was destroyed forever. As a Michigan resident, I particularly appreciated the Breitsprechers’ trip to survey the endless, towering white pines of this state. My family has stopped at Hartwick Pines State Park on our way up north, a tiny postage stamp of old-growth forest that escaped logging. It’s the closest we can get to experiencing what was once here.

Despite being once despoiled, the trees and wildlife in the Smokies were still beautiful by modern standards. This lifted my spirits. There’s something encouraging about the fact that we’re a hundred years past the low point for trees in the Smokies and moving in the right direction. When it comes to logging, at least.

Categories
ruminations Software Work Writing

LLMs are good coders, useless writers

My writer friends say Large Language Models (LLMs) like ChatGPT and Bard are overhyped and useless. Software developer friends say they’re a valuable tool, so much so that some pay out-of-pocket for ChatGPT Plus. They’re both correct: the writing they spew is pointless at best, pernicious at worst. … and coding with them has become an exciting part of my job as a data analyst.

Here I share a few concrete examples where they’ve shined for me at work and ruminate on why they’re good at coding but of limited use in writing. Compared to the general public, computer programmers are much more convinced of the potential of so-called Generative AI models. Perhaps these examples will help explain that difference.

Example 1: Finding a typo in my code

I was getting a generic error message from running this command, something whose Google results were not helpful. My prompt to Bard:

Bard told me I had a “significant issue”:

Yep! So trivial, but I wasn’t seeing it. It also suggested a styling change and, conveniently, gave me back the fixed code so that I could copy-paste it instead of correcting my typos. Here the LLM was able to work with my unique situation when StackOverflow and web searches were not helping. I like that the LLM can audit my code.

Example 2: Writing a SQL query

Today I started writing a query to check an assumption about my data. I could see that in translating my thoughts directly to code, I was getting long-winded, already on my third CTE (common table expression). There had to be a simpler way. I described my problem to Bard and it delivered.

My prompt:

Bard replied:

Categories
ruminations Writing

Finish The Book, Sam

Another installment in what I’m realizing is a series of book-update blog posts.

In November 2021 I wrote half of a novel. In another six months I’d finished the rough draft. Then in November 2022, I resolved to edit it so that someone could read it. Then I said I would get it done by the end of June. I missed that deadline, but finally “finished” this fall! Two finishes so far.

In October I shared it with a few beta readers. There was good news and bad. The good news: it is not terrible! Most of the readers – my friends, granted – finished and enjoyed it.

It is, of course, rife with problems. Most of them I can chalk up to the ignorance of a beginner. For instance:

  • The book opens with my protagonist, Dani, waking up. I now realize that’s a deadly cliche.
  • Dani’s emotional growth arc needs work. I failed to plan that aspect of the novel before writing it.
  • Beta readers universally disliked my handling of a small romance subplot. They are right.

This is, in one sense, the worst news. Were the manuscript irredeemably bad, I would be done. Actually finished. But I believe there’s a chance it could become a good, solid book … with a lot more work. And it would be a shame to waste that chance. Argh. I was so glad to be “done” and finally hand it to people!

It has been satisfying to discuss the world that only lived in my head with others who have now visited it. They had good questions and ideas for making it better. Now I need to steel myself and commit to re-entering that world, not leaving until I’ve shored up its weaknesses as best I can.

If I buckle down, could I make the changes in … two or three months? The rewrite list isn’t enormous. For instance, I’m not changing the perspective from 1st to 3rd person, a task I would not accept.

Discussing this at Workantile, my friend Anthony reassured me that I do finish things. And I have finished things. Now I need to keep finishing. I hope I can find the focus and willpower to finish until this is actually Finished.

I keep coming back to this quote from an old interview with Andre 3000 about releasing imperfect art:

As an artist you can sit and tinker with stuff forever. You can add and take away but I think that’s kind of the importance of having someone over you saying, “We need this, this is a deadline.” Sometimes those oppositions or those who push and pull are needed because we’ll just sit and tinker forever. There are actually songs on The Love Below that were not finished, but that’s how they are, that’s how it came out.

I just knew I wanted to put that [imperfect song] on there, but it wasn’t done, but it was enough.

The GQ&A: Andre 3000

The worst would be to sit on this book and not keep improving it. It’s not timeless material and I need to wrap it up and move on and stop having it paralyze me. So I think I need to say, February is the deadline. I hope I work hard on it until then and fall back in love with the story and the process. But even if I don’t, or I only complete some of what I hoped to, it might be time to say, it’s enough.

In the meantime, feel free to ask me about the project and encourage and/or shame me depending on how it’s going!

Categories
Local reporting ruminations

Advertising Overload

This post is a tirade against the ever-increasing presence of advertising in my life, prompted by attending a University of Michigan basketball game.

I went to the Crisler Center last night, where Michigan lost an exciting shootout against Long Beach State. It was entertaining. Both teams were very talented and tried hard.

I make it to a couple of Michigan sports events each year and will crown Michigan Athletics the victors and the best… at cramming advertisements into the experience. Always innovating. I’d love to see a photo series showing the interior of the Crisler Center over the decades, documenting the creep of ads.

How many ads would you think can be placed on the basket itself? Let’s count. Here’s the view of the near hoop from my seats:

That’s between four and six ads, depending on how you count: the base pad, the vertical pad (“meijer meijer meijer” lol), the State Farm pad by the rim, and a freaking TV ad mounted up top. Now let’s look to the other hoop and see what’s facing the court:

From this angle we can see there’s also the UMCU ad and the Libman ad. Each basket is adorned with seven corporate logos plus a TV that plays ads for Coke Zero and Jersey Mike’s. I wonder how many ads I saw over the course of the game. Dozens? Hundreds?

Categories
#rstats Data analysis ruminations Software Work

Same Developer, New Stack

I’ve been fortunate to work with and on open-source software this year. That has been the case for most of a decade: I began using R in 2014. I hit a few milestones this summer that got me thinking about my OSS journey.

I became a committer on the Apache Superset project. I’ve written previously about deploying Superset at work as the City of Ann Arbor’s data visualization platform. The codebase (Python and JavaScript) was totally new to me but I’ve been active in the community and helped update documentation.

Those contributions were sufficient to get me voted in as a committer on the project. It’s a nice recognition and vote of confidence but more importantly gives me tools to have a greater impact. And I’m taking baby steps toward learning Superset’s backend. Yesterday I made my first contribution to the codebase, fixing a small bug just in time for the next major release.

Superset has great momentum and a pleasant and involved (and growing!) community. It’s a great piece of software to use daily and I look forward to being a part of the project for the foreseeable future.

I used pyjanitor for the first time today. I had known of pyjanitor‘s existence for years but only from afar. It started off as a Python port of my janitor R package, then grew to encompass other functionality. My janitor is written for beginners, and that came full circle today as I, a true Python beginner, used pyjanitor to wrangle some data. That was satisfying, though I’m such a Python rookie that I struggled to import the dang package.

Categories
Local reporting ruminations Work

Coworking spaces aren’t profitable

I gave a tour of Workantile this week to a prospective new member who shared her experience working out of The Wing’s DC branch. We got to talking about how WeWork and The Wing were valued in the billions and hundreds of millions of dollars, respectively, before crashing to nothing. Those valuations were clearly absurd, but as a coworking insider, I’ll go a step farther and say there’s not much money in operating a coworking space.

That doesn’t mean coworking spaces aren’t valuable. Workantile has grown friendships, mentorships, careers, side projects, community services and made its members significantly happier. We kick around ideas, eat together, share recommendations and hand-me-downs. A long-time member swears that Workantile saved her marriage. But those benefits accrue to members and their networks and can’t easily be monetized by the space.

And it doesn’t mean people shouldn’t create coworking spaces. On the contrary, now’s a perfect time. Office rents are down, the boom of newly-remote workers are getting lonely, and concern about COVID transmission is receding. But don’t launch a coworking space – or invest in someone else’s – thinking you’ll get rich. The numbers don’t work.

Categories
Gardening ruminations Writing

This thing is still on

I miss writing this blog. Things have been busy. I draft posts in my head but nothing has gotten onto the virtual page. I’ve meant to blog some recent happenings: a nice win at work, my beloved bike commute that is about to change, getting a heat pump, plants I’m growing. I hope I still will.

I stopped using my last regular social media outlet. Mastodon was a nice improvement on Twitter but it was still sucking up my attention. That leaves me without a place to write and share shorter posts. Maybe I can get comfortable blogging faster and more briefly.

On the plus side, I have been back in the groove of working on my novel manuscript. I am more than halfway through line editing and made a pact with a friend to finish this edit by June 23rd (somewhat arbitrary, but I need a deadline). Perhaps when that’s done I’ll write more here.

Here’s a micro-update: I am enamored with Silphium terebinthinaceum, aka Prairie Dock. Gangly, deep-rooted, whimsical flowers, leaves so ugly they’re pretty. I thought about writing an ode to the plant but someone else already did the job nicely. My two Prairie Docks came back this spring and there’s a new one that might survive to join them. Around Ann Arbor there are some nice specimens in the YMCA’s wildflower garden and along the Stadium Blvd bridge, between the bridge and Graydon Park.

See you soon, I hope!

Categories
Life events ruminations

Fractions of a Lifetime

Last week I turned 39 years old. A few people pointed out that next year will be the big four-oh, but I see more significance in this birthday as a milestone delineating the portions of my time on earth.

Halves: if I have a typical lifespan, this moment is just about the halfway point of my life! That striking observation has me taking stock of things.

I hesitated to write this as many of my friends reading this are older than me and it implies that their lives are mostly over. But me not writing it doesn’t change that. It feels right to me to acknowledge the finitude and preciousness of life, whatever age one is.

Thirds: this accounting neatly renders my life into three acts of twenty-six years each. Which works out perfectly in my case: I had my first child at 26 years old and my youngest child will become a legal adult when I’m 52.

That makes a third of my life without children; a third of my life as a parent of young, at-home children; and a third of my life with adult children. This midpoint of my life is also the halfway mark of me having children at home.

Quarters: a quarter of this life would be nineteen-and-a-half years. That interval coincides with the two biggest lifestyle changes I’ve made, both related to diet.

Categories
Climate change Imagine A World Local reporting Politics ruminations

Regular people having a very unregular thought

Olúfẹ́mi O. Táíwò made this lovely remark on a podcast episode:

A lot of these people that we rightly respect and revere in organizing circles were just regular people who had the very unregular thought that they could do something about the world around them. And who just decided to do it.

Olúfẹ́mi Táíwò

And it’s stuck with me, so I’m memorializing it here. It’s dead-on.

The most recent time I thought of it was last week, when catching up with a friend at Workantile. He had organized a group buy of solar panels for his neighbors and, in the process, learned that his subdivision’s homeowners association (HOA) bans solar panels that are visible from the street. The reason? They’re aesthetically unpleasing and will damage property values.

He then had the unregular thought that he could do something about that. So he looked into what it would take to get that rule removed. That led him to power mapping, and in particular, the HOA board of directors. And he found that no one has ever been elected to this HOA board. The member meetings never make quorum, so all board vacancies are filled by appointment. By the board. Pretty unhealthy governance.

Now he’s looking at doing something about that. That’s a bigger challenge and a very boring way to fight climate change. But it’s the right thing to do. And it’s possible, with a big enough dose of unregular thinking.

I send love and solidarity to everyone who sees something that could be better and instead of tolerating it, says, I could do something about that. And just decides to do it.