Well, I was having a good run. I purchased my iPhone XS Max new in late 2018 and it has been with me to Brazil, Argentina, Peru, Mexico, Australia, and across the United States. According to Battery Health, it still has 82% max capacity. Unfortunately when I dropped it the other day, the back shattered and the digitizer started acting up. So it’s time for some repair.

Humorously, Apple quoted me nearly $650 to “repair” the phone; that price almost certainly means I would receive a refurbished phone. Instead, I ordered parts and plan on replacing the screen, back panel, and battery myself. I am committed to running this phone until it no longer receives security updates.

Apple is ridiculously and notoriously terrible about owner repairs. Replacing the screen will mean losing TrueTone support; replacing the battery will mean losing Battery Health support. The “System Configuration tool” must be run to re-code your phone for the new parts. Only Apple-authorized repair shops, or self-service repairs, have access to this tool (the latter through Apple Support). And Apple’s Self-Service Repair program does not include parts for my model phone. Despite these inconveniences, I’m determined to press forward.

Item Price
Rear glass panel, unbranded $15
Battery $40
LCD screen (OLED costs double) $100

I will update this post with notes after I perform the repairs.

Learn Python the Hard Way – “the way people used to learn things”; very incremental and great at teaching you to debug IF you follow directions. Older versions can be found for free online and with the author’s permission; the latest version is $30 and includes access to videos.

Scientific Computing with Python (FreeCodeCamp) – based on University of Michigan’s Python for Everybody, with a certification available at the end of the course.

Python for Everybody – free book (and on Coursera if video learning is your thing)

The way I see it, we get to put whatever we want on our websites. My solution is to intermingle all posts but use tags/categories to distinguish them.
https://bulletin.sherif.io/2022/06/05/the-most-frequent.html by Sherif SolimanSherif Soliman (bulletin.sherif.io)

The most frequent block I run into when thinking of writing on my site is my unease with alternating between deeply technical posts (code, automation, ML) and long prose or personal essays. How do I tastefully mix very technical and very non-technical posts on the same blog?

I’ve dabbled in Obj-C, Python, JavaScript, TypeScript, .NET, and PowerShell. But I’m not confident I understand the how/why or best practices. Nor am I sure how to build a portfolio. These are all things I need to learn more about.
https://twitter.com/radicalbyte/status/1533556308821135362 by Ryan BarrettRyan Barrett (Twitter)

The exact same applies to us in software development. If you’re the kind of person who understands both how/why and learn yourself (instead of needing to be taught constantly), if you’re following even half of best practise then you’re already top tier.

In El Paso, there’s a cafe called Salt + Honey that has a decent coffee bar, breakfast menu, and live music and poetry. Last time I was out there, I got their specialty honey cinnamon latte. Here’s how I make it at home. If you want, you can make it hot or iced.

Esta es una receta para un latte de miel y canela. Si quieres, puedes hacerlo como un latte helado.


2 shots of espresso
whole milk
1 Tbsp honey
1/4 tsp cinnamon


  1. In an 8-ounce coffee cup, combine the honey and cinnamon by stirring well.
  2. Add 1 shot of espresso and stir again, making sure you no longer feel honey at the bottom of the cup.
  3. Add the second shot.
  4. Add steamed milk and a small amount of foam. If you’re feeling special, top it off with a drizzle of honey and a sprinkle of cinnamon.

For an iced latte: use a 12- or 16-ounce cup, cold milk, and ice.

There was a simple beauty in IM requiring all parties to be online at the same time. Now, “interruption is the default. We are always on. We are walking live chats.”

One more great quote about the “Do Not Disturb” and “Focus” modes introduced by tech companies trying to “help”:

These are not guardrails. These are squishy orange cones that we all plow through, like 15-year-olds in driver’s ed. Even the names of these features—Focus, Schedule Send—are phrases born of a work-obsessed culture. Bring back the ennui, the poetry, the pink fonts, the tildes and asterisks.

In my experience, people get annoyed by the “notifications silenced” status in iMessage. Let’s change “Focus” to “Away”, with different messages and providing the ability to turn off “Notify Anyway” (because seriously, no).

(h/t Jacky Alciné)

🔖 It’s Time to Bring Back the AIM Away Message by Lauren Goode (WIRED)

The live chats of the past are now in our pockets and inescapable. We need better boundaries.

Here is a short list of study references I compiled to prepare for an amateur radio Technician class license exam.

https://hamstudy.org/ — flash card study site that works on desktop or mobile

2018-2022 Tech Study Guide by Earl Paazig (PDF)

No Nonsense Technician Class License Study Guide by Dan Romanchik (PDF)

Why get into ham radio?

My interest was prompted by two things: 1) a buddy that got his license a year or two ago and 2) a desire to be more prepared for emergencies. In some ways, ham radio is like pre-internet social media: it’s one-to-many, you can learn new things, you can meet new people, it allows you to share your thoughts with others or into the void.

I purchased a Baofeng UV-5R as encouragement to get the license and because I can use it to listen to FM and WX weather radio (I also have a Sangean MMR-88 AM/FM/WX receiver).

I’m currently using Indieweb Publisher as my base WordPress theme and have a child theme so I can make tweaks. Today, I tweaked the site header. By default, Indieweb Publisher replaces the site header with author info on single post pages. I’m the only author on my personal site and didn’t like that behavior, so here’s what I did. NOTE: Without an additional theme adjustment, this may break author-finding for indieweb parsers.

1. Copy header.php from the stock IndieWeb Publisher theme to my child theme, indieweb-publisher-child.
2. Find lines 30 to 38, which are responsible for what is displayed in div class="site-header-info".
3. Comment out all PHP except line 36, <?php indieweb_publisher_site_info(); ?> To comment out, put two forward slashes after <? php.

Those lines now look like this:

<div class="site-header-info">
	<?php // if ( is_single() ) : ?>
		<?php // Show only post author info on Single Pages ?>
		<?php // indieweb_publisher_posted_author_card(); ?>
	<?php // else : ?>
		<?php // Show Header Image, Site Title, and Site Tagline on everything except Single Pages ?>
		<?php indieweb_publisher_site_info(); ?>
	<?php // endif; ?>