Rejoice, for I have updated the scored phrase and word lists at https://lahosken.san-francisco.ca.us/frivolity/prog/phraser/, a.k.a. the Phraser project. I fed in recent data from Wikipedia, IMDB, the puzzles wiki, the Spread the Word crossword list, etc so it now knows of recent phenomena, e.g. that the odyssey is a thing. Oh, I guess it already knew about that one? But you get the idea; it has newer, fresher data.
It also has some old data that I couldn't get my hands on for a long time: the administrators of the Grand Theft Auto game fandom wiki exported data after several years of not doing that. Thus this version of the phrase list knows about character franklin clinton. I guess he's kind of a big deal in the game's story? I dunno, I don't play those games, and thus I rely on this phrase list if I want to fill in the blanks for f _ _ _ _ _ _ _ c _ _ _ _ _ _ (football coaches, Filipino cuisine, flathead catfish, Fanshawe College, Franklin Clinton).
Permalink
2026-09-04T17:16:44.736247
Saw some new-to-me Eclair Bandersnatch #SanFrancisco #StreetArt on #PageSlowStreet at Lyon (except the one on a yellow background was on Baker St). There's more to see here,
but my blessedly clever phone switched over to "night" mode without me noticing, d'oh. Uh, sry, I'm not going to try to write alt text for these; summary: lots of cool stencil art.
Permalink
2026-09-02T16:51:36.063314
It's a history of The Citizen Lab, a team of academics
and hackers at U. of Toronto who investigate when bad guys
hack the phones of journalists, activists, and the like.
It's also a history of the rise of hack-for-hire mercenary
groups.
I'd read about about a lot of this in individual articles over the years.
But this book put it all together and pointed out some long-term trends.
When the Lab started out, they didn't think they'd be tangling
with hack-for-hire groups. They thought they'd be detecting when
governments blocked off access to parts of the internet.
I guess that's back when China's Great Firewall was in the news.
If China was blocking net access to some some sites, maybe other
countries would do the same?
Maybe there was some of that going on. But when Lab folks actually
went and talked to journalists, activisits, etc—net access
wasn't their urgent tech problem. Activists' phones were acting funny;
their friends were getting arrested. Activists wanted to know: were
they being surveilled by their phones?
The Lab thought they were going to look for network interference, so
they applied those techniques. They looked at how an activist's phone
used the network. Weeeird, the phone was sending a lot of data to someplace
on the net at strange times; turns out, it was sending the activist's
theoretically-private data to someplace bad. The Lab knew networks,
so they again applied that knowledge: they queried DNS servers and
checked timing data to figure out where else in the world activists'
phones were sending data to someplace bad. If you're looking at a
Guatemalan reporter's phone that's been hacked to surveil them, you
kinda expect other Guatemalans' phones to be hacked. And some were.
But strangely, they saw that phones in other countries were
also sending data to the same someplace-bad.
They published reports on what they found. They talked to reporters,
helped to spread the word. They got kind of famous. They attracted some
new recruits, and thus got more knowledge about phone hacking, not just
internet-networking smarts.
They were up against mercenary hack-for-hire groups; the archetype
of these is NSO Group. These groups figured out how to hack for several
countries each. Kinda like how SalesForce provides customer databases
for many companies; or Google provides spreadsheets for many companies;
these hacker groups set up systems to hack phones and store stolen data
in such a way that several countries could use them.
NSO group claimed they only sold their services to governments with
good human rights records. But that turned out to be a lie; they did
secret deals with dictators; they abetted murder, harassment, theft,
etc. (While I was reading the book, some articles were
coming out figuring out
how the deals were done thanks to records newly made public.)
It took years of Citizen Lab, Access Now,+Amnesty International finding
NSO Group software spying on various activists, associates of activists,
etc to drive home that these weren't one-off mistakes, but business
as usual.
Permalink
2026-09-02T15:55:34.550257
New Kal Zakzouk sidewalk chalk art at 20th and Irving in #SanFrancisco:
an enlightened rainbow being orbited by some demon 🎭️masks🎭️ that look frowny/smiley depending on whether you view them
right-side-up or upside-down. Because I don't know how to talk about image-y things, only wordplay things, I want to call those
masks semordnilaps, but I bet there's a better word for them.
Permalink
2026-08-31T18:20:55.592034
My parents told me about a library for dogs on 6th Avenue between Cabrillo and Fulton (I think?): a box of tennis balls.
Take a ball, leave a ball.
That seemed like a better idea than the library for dogs I was familiar with on Waller near Del Mar. It was clearly labeled for sticks.
But good-sized sticks kinda sprawl out of the box. This morning, I went back to the Waller St. library and saw: In addition to a couple
of stubby sticks,
people were putting tennis balls in this library, too. Even though the label clearly read "sticks."
Welcome to Waller Street; some documentation may be out of date.
Nearby at Downey: A couple of DraINvader Space Invader drain covers.
Permalink
2026-08-31T19:32:05.466485
I wrote a little helper script for working with phraser and crossword lists. Phraser wants spaces; some people who maintain crossword lists don't bother to use spacesandjustruneverythingtogether.
guess_spc.py guesses where to add spaces.
Having written this handy script, I thought I'd copy it over to where I share the phraser source code. That should be pretty easy, right? oh whoopsie nope
I'd heard that Github was having a lot of outages since they started using AI-generated code.
I shrugged and thought "Gee, I only use Github once every few months.
Surely they'll get their act together by the time I try to use it next.
Of course I won't be stymied while trying to copy over a such a simple change."
Alas.
I'd already created a user account over at codeberg so I could report an important (ahem) issue in the word
list of a daily puzzle game. Today, I got my act together and copied my code over
to https://codeberg.org/lahosken/misc .
Here's hoping I can go back to not thinking very hard about where to share code.
Permalink
2026-08-28T21:13:36.070257
I continue to check my little dashboard of #SanFrancisco COVID numbers each morning to
decide whether to get coffee at an indoor coffee shop or a pushchart. You might remember
that I track three stats. I blog about it when some stat crosses from a pretty-safe value to a not-so-safe value or vice-versa.
A couple of weeks back, I blogged to point out that two out of those three stats were annoyingly wriggling above-and-below the "pretty-safe"
line. Today I blog with good news and bad news. Good news: they stopped wriggling above-and-below. Bad news: they're both staying above the
line; and when some slow wastewater data finally showed up, it turns out that the COVID-in-wastewater stat never actually dipped into the
"pretty-safe" zone.
It's weird that the test positivity number has gone up so much at the same time that the COVID-in-wastewater has gone down.
It's weird that SF's COVID-in-wastewater went down at the same time that the overall San Francisco Bay Area's number has gone up.
What does it all mean? Your guess is as good as mine.
Anyhow, I'm still going places: a couple of stats are kinda-high but one stat is still low.
When I multiply them together, overall things still seem low.
I'm not so happy that the two reliable indicators are bad while the not-so-reliable indicator is good.
I made this little dashboard so I could quickly glance at it and know what to do.
That one out-of-step stat has me second-guessing things. This morning, I did my grocery shopping in person
(not swapping air with many people doing my grocery shopping before 7am), but didn't drop
in to the Beanery for coffee on the way home (lots of customers at the Beanery, even around 7am).
Note to self: Before today, I just multiplied these numbers together.
But today, I was looking askance at the New Cases number. I changed my multiplying
formula to give more "weight" to the COVID-in-wastewater and test positive% numbers.
Anyhow, keep an eye out for each other. Don't be surprised if your neighbor who makes their decisions
solely based on recent test-postitive% numbers has been keeping to themselves lately.
Permalink
2026-08-25T18:13:05.505701
Some things I saw on my exercise walk in #SanFrancisco this morning:
- Another Outside Lands leftover mural by Indelible Funk, this one advocating Music for the People.
- When your home looks boring so you try to spice it up with a couple of Dr Seuss-esque helical topiary tree thingies, but fail to consult his works for a more lively color scheme.
- Someone tore down flyers and painted over the remaining tape on a utility pole, but a San Francisco Crosstown Trails enthusiast already put a fresh pair of wayfinding stickers up.
- My breakfast, because the Mastodon social network still encourages me to post four pictures at a time.
Not seen: new Kal Zakzouk art. The chalk art at 20th/Irving has been the same design for nearly a month. I hope there's a benign reason for that.
Permalink
2026-08-22T18:16:57.897702
#SanFrancisco vandals are out of control.
Permalink
2026-08-21T12:58:14.916773
The Outside Lands concert in SanFrancisco was a while ago,
but the city has yet to paint over the signage-mural things, so I got to enjoy these
indeliblefunk signage-murals.
Permalink
2026-08-18T18:46:39.599051