Keeva became ill in the last week. I took her to the vet expecting she’d need some medicine and TLC. Instead we got some very bad news.

Our sweet girl – verifiably the best pup ever – is going to sleep tomorrow. She’ll be surrounded by a heartbroken family who loves her very much and will help her rest as comfortably as possible.

Goodbye, sweetie. I’ll miss you forever.

The sweetest Boston terrier ever is laying on a rug on a sunny porch.

I’ve modified my Python program that sends new drafts from my Freewrite Alpha to my blog. Now it can also send them to my journal app, depending on what I type at the end of the message.

I like how it’s shaping up to work with the little keyboard. I’m turning it into the hardware version of Drafts: enter some text, decide what to do with it, let automation handle the details.

John Deere Dismissing 15% of Global Salaried Workforce Today | AgWeb:

Online sources say the layoffs cut across a wide swath of John Deere global corporate and administrative divisions and in total could affect 4,500 to 6,000 employees once complete.

Another large American company is on the edge of bankruptcy. I feel bad for their senior management, too, who must be devastated at their utter failure to lead it to success.

Either that, or they’re psychopaths who are crushing their workers to make an extra buck. I choose to give them the benefit of the doubt and assume they’re just bad at business.

I dusted off an older Raspberry Pi 4 to play with. Now I remember how glacially, painfully slow microSD cards are. This thing feels nearly unusable after being spoiled by its twin with an SSD.

If you use a Raspberry Pi for anything more than occasional goofing around, get an SSD. It makes it a new computer.

Happy little bee on happy little flowers on my walk to the happy little pizzeria.

A bee is working its way through a bush covered in bright oranges, red, and yellow flowers.

Although I’ve trusted OmniFocus for years, I’m still compelled to try out the alternatives sometimes. This time I wanted to see what the new Sequoia Reminders app with calendar integration was like. It’s so pretty!

Today I discovered that it also silently mutates some of my tasks, like removing the URLs from them so I can’t click straight from the task to the thing I need to do, or removing their repeat settings so that they become one-and-done.

Yikes, no. Back to OmniFocus, yet again.

I’ve written a couple extensions for PopClip that make my life a little easier. One shows you the geographical information of an IP address. The other sends selected text to TextBuddy. Maybe someone else will find them useful.

Currently reading: My Struggle: Book 2 by Karl Ove Knausgaard 📚

Now that I’m done with Gaiman’s “Norse Mythology”, it’s back to being enchanted by Knausgaard not quite enjoying anything at all.

Finished reading: Norse Mythology: The Illustrated Edition by Neil Gaiman 📚

The gods are mad.

We’re nearly 2/3 of the way from Y2K to Y2K38.

That thing you’d been putting off fixing? This would be a great time to start thinking about it again.

I have a shoulder dog.

A tiny white Maltese dog is nestled between my neck and shoulder.

When a coworker forwards you an email to ask if it looks like phishing, take a moment to publicly praise them for it. “Jane sent me an example of a new phishing campaign going around. Her instinct to let us know about it was exactly right. Thanks, Jane!” Reinforce the idea that Security has their back and will be pleasant to interact with. That’s how you get them to want to report things.

I told Keeva a funny joke.

A Boston terrier is panting in the warmth and looks as though she’s laughing. (She just came inside and has plenty of fresh, cool, clean water in a bowl nearby.)

If you’re writing an SDK, don’t include a section on how to fetch all the pages of chunked results. That’s your job, not theirs. Make that the default interface and provide advanced methods to fetch a page at a time if your user specifically needs to for whatever reason.

Don’t make users write this:

all_results = []
results = sdk.get_items()
all_results.extend(results.items)
while results.has_more:
    results = sdk.get_more_items(results.next)
    all_results.extend(results.items)

Let them write this:

all_results = sdk.get_all_items()

Looking at you, AWS and Dropbox.

I’m testing a new writing workflow to prepare for DEF CON. It looks like:

  1. Type something on my Freewrite Alpha.
  2. It shows up on my blog.

The advantage is that publishing is about as quick and seamless as it can possibly be. The disadvantage is that the published content is raw, first-draft quality. That’s a motivation to write it right the first time.

Scientists Discover a Cause of Lupus and a Possible Way to Reverse It - News Center:

Northwestern Medicine and Brigham and Women’s Hospital scientists have discovered a molecular defect that promotes the pathologic immune response in systemic lupus erythematosus (known as lupus) and in a study published in Nature, show that reversing this defect may potentially reverse the disease.

Please let this be true, even if it’s too late for some. Please.

Hack the Planet.

The Stream Deck sitting on my desk has a background of Razor and Blade from the movie “Hackers”, captioned “HACK THE PLANET”.&10;&10;The dust blowing in today gives the patina of a Cyberpunk 2077 nomad’s table.

My Freewrite Alpha just arrived. While I’ve barely started using it, these are my first impressions.

Cool

  • The device is even lighter than it looks.
  • The keys are really nice. That’s one of the main reasons I got it, so yay!
  • Cloud sync is quick.

Uncool

  • I see why other complain about the unlit LCD display. It needs a fair amount of light to be remotely legible. I’d be nervous typing in the dark and worrying that it has turned off or other otherwise stopped accepting my words.
  • It only allows 31 character WiFi passwords. That’s shorter than our home’s. That’s… fun.
  • It only remembers the password of the last WiFi network you connected to. No quick bouncing between home (actually our guest network; see above) and phone hotspot.
  • It can only connect to my iPhone if I put the phone in slower Maximize Compatibility mode.

The WiFi annoyances are my biggest gripes at the moment. Most of those can be fixed in software though. It’s a neat little device overall and I’m excited to put it to use!

I’m going to DEF CON next month. I’ll be live-blogging my way through it to give a peek inside wherever and whenever I have permission from the people around me to do so. If I hear a great story that can be shared, so will you.

This is an experiment. I’ll knock it off if someone tells me I’m being annoying. I’m there as an attendee, not as a journalist (which I’m not). It’s just that every year there are tales that need to be told. I’d like to help tell them.

California now requires credit card companies to assign a merchant category code to gun stores. Stripe has a list with 294 already used codes including Electric Razor Stores (5997); Glassware, Crystal Stores (5950); Massage Parlors (7297); and Shoe Repair/Hat Cleaning (7251).

Gun advocacy extremists make it sound like credit card companies are trying to do something new and unique to punish gun stores. In reality the law creates 1 more category alongside the few hundred others.