📷 I’ll have all of them, please.

📷 Reflection and refraction.

Photo of a coffee shop, taken from the outside, showing people inside and buildings reflecting on the glasses.

Week 2023-38

Last weekend, I installed the iPadOS Release Candidate on both of our iPads because I anticipated a busy week ahead and knew I wouldn’t have much time to explore the new system. As for my phone and watch, I decided to wait for the official release.

This weekend, I did the same with Sonoma by installing it on my personal computer. There were a couple of new APIs I wanted to try, and considering the upcoming busy week, I thought it would be more convenient to do it this way.

Sonoma, along with iOS/iPadOS 17, finally introduced a feature I’ve been longing for in Safari: Profiles. I had been using Firefox and Arc primarily for this feature, which allowed me to have separate containers for regular browsing, banking, online shopping, and more.

After upgrading all my devices, I dedicated some time to resetting Safari and transferring all my bookmarks back into it.

Speaking of Safari and Firefox, I came across a Firefox Coffee Stand next to an Apple Store on Friday, with a sign that read, “Safari is a great browser… to download Firefox.” But I won’t comment on this, as I use Safari on all my devices, while my wife prefers Firefox for hers…

I visited the Apple Store to check out the new iPhones and decided to get one. Apple offers a good trade-in value for my iPhone 13 Pro Max, so I made the decision to switch. The only problem is that it might take some time, as the Apple Store app indicates that there are currently no iPhones in stock, and the next delivery date is in November. This gives me ample time to decide whether I want to buy a FineWoven Case or not.

In the digital realm, I deleted my Bluesky, Twitter, Flickr, and Babbel accounts. I also removed my Playdate account since I don’t plan on ordering a Playdate anytime soon.

And I made a minor adjustment to my Micro.publish plugin development workflow. Now, whenever I create a git tag on the plugin’s source code, it triggers a GitHub Action that creates a release. This eliminates the need for manual steps such as dragging and dropping files.

Other than that, business as usual. It was a busy week.

It’s really unfair to have a headache on a Sunday.

👨‍💻 It’s possible to set the widget style to monochrome. Nice touch, Apple. I wish I could do the same on iOS.

📷 Red Road Warrior.

Dusty red van, covered in graffiti

Next week is going to be exceptionally busy, so I’ve made the decision to upgrade to macOS Sonoma today. By doing this, I will have the opportunity to spend a couple of hours during the weekend to explore some of the new macOS APIs. 👨‍💻

📷 After the storm: glasses find refuge on a wet saddle.

Spectacles on a bike seat.

📷 This morning I visited an Apple Store to try the latest iPhones. Right next to it there was a Firefox Coffee Stand with a sign that humorously proclaimed “Safari is a great browser… to download Firefox.”

Mozilla Firefox Coffee Stand next to an Apple Store

It’s time to bid farewell to more accounts: Bluesky, Twitter, Flickr, and Babbel.

👨‍💻 Nintendo has introduced Passkey support. Unfortunately, it’s currently not possible to rename the keys, which can be challenging for people who have multiple keys. And, it does not function with Yubikeys. Nevertheless, it’s nice move!

👨‍💻 Downloading Xcode, but not the new one…

📷 How bad could things be?

Sign on a wall saying "As long as there is coffee in the World, how bad could things be?"

Week 2023-37

It was a shorter week for me as I took Friday off to unwind. Well, I must admit, I did spend some time reading and catching up on articles from the ‘read-it-later’ service I use, and watching the news from my Country.

This week, I released version 2.0.0 of my Obsidian plug-in, Micro.publish, which now allows users to edit Micro.blog posts that were previously published using the plug-in. Implementing this feature was a lot of fun, and I’m thrilled with the results. In fact, both of the lengthy posts I published this week were composed and edited (a couple of times) using the plug-in:

As they say, “eat your own dog food.”

I also wrapped up the second season of The Bear, which is a fantastic TV show. I’m crossing my fingers for another season!

Additionally, I finished watching the second season of The Afterparty without any idea who the killer would turn out to be.

And I’m all caught up with Only Murders in the Building, yet another killer — pun intended — TV show.

On the digital front, I decided to delete my Pixelfed, Lemmy, and Kbin accounts. Since I never really used these accounts, it made sense to bid them farewell.

Lastly, there’s some exciting news on the personal front: tinyScientist sprouted another tooth! The milestones just keep coming!

📷 Found this one today.

📷 Flat white, at my favorite coffee shop.

Flat white coffee with complex milk art

The day I emailed Tim Cook

Over a decade ago, there was a recall for the white MacBook, specifically for replacing the notebook’s bottom part. This part, made of rubber, had a tendency to peel off due to the heat generated by the computer.

In the United States, MacBook users had the option to either take their computer to an Apple Store for a replacement of the bottom part or request to have the replacement part delivered to their homes for self-installation.

Unfortunately, this was not the case in Brazil. At that time, Apple did not have physical stores in Brazil, only the online Apple Store, and technical support was exclusively available through authorized stores.

I visited a couple of authorized stores in my city, where I was informed that I would need to leave the computer with them for a month. This duration was required for them to request, receive, and replace the part.

I decided to contact the Apple Store directly, explaining that leaving the notebook at an authorized store for an entire month was not feasible. However, I was informed that this was the standard procedure for Apple’s relationship with authorized stores in Brazil—they were required to retain the device during the repair process.

The laptop wasn’t mine; it belonged to my wife, who was working on her Ph.D. thesis. Under no circumstances could we afford to leave her computer at a store for an extended period.

That’s when I sent an email to Tim Cook, explaining the situation. I mentioned that in the US, a recall was in place, and they were sending replacement parts for self-installation, whereas in Brazil, we were required to leave the essential computer my wife needed to complete her studies in an authorized store for an entire month. I signed the email with my name and phone number.

I was mentally prepared to be ignored.

A few hours later, I received a call from Apple, from a representative who worked for the Vice President of Retail for Latin America. It was a brief call; they didn’t inquire much and stated, “I’m calling to resolve your problem.” They didn’t say they would attempt to resolve it; they asserted they would indeed resolve it. I surmised that individuals at this level do not waste time; they take actions. All they asked of me was to pick the nearest authorized store to my home, where the replacement part would be delivered. They also assured me that once the part arrived, the store would call me to arrange for its replacement.

A week later, I received a call from the authorized store and proceeded to their location. The replacement part was installed right at the store’s counter. An employee at the store asked, “How did you manage to persuade Apple to send us the replacement part?” To which I replied, “I emailed Tim Cook.” They probably found it hard to believe, but it worked. Ultimately, that’s all that matters.

Micro.publish 2.0.0

Starting from version 2.0.0, it is possible to update a post that was previously composed and published via Micro.publish.

Before diving into the specifics of this feature, it’s important to mention a few design decisions that were made in order to implement this functionality.

Technical Details

Micro.blog conforms to the Micropub protocol, which outlines the procedures for publishing notes, uploading images, assigning categories, saving bookmarks, and updating posts.

When updating a post, the protocol requires the inclusion of the following information:

  • The original post’s URL.
  • The blogID, especially relevant for users managing multiple blogs.
  • The updated content and/or title of the post.

Obsidian offers plugins developers the option to locally store data within the vault. However, this capability is limited and necessitates custom implementation. For this reason, it was decided to store the published post’s URL within the Obsidian note itself using YAML frontmatter (and the new Properties feature). This approach ensures that the information remains readily accessible and easily modifiable if necessary.

Version 2.0.0

For posts published with version 2.0.0 or newer, the post’s URL will be added to the Markdown file in the YAML frontmatter/Property.

For those in Edit mode, it appears as a Property as shown below:

Properties

And for those utilizing the Source mode, as YAML:

Frontmatter

Once the note or title has been edited (either through the filename or YAML/Property), updating is as simple as using the Post to Micro.blog command from the Command Palette. A simplified version of the Review view will appear, displaying the post’s title. For users with multiple blogs, it will prompt them to confirm which blog the post belongs to.

Review/Edit

Editing posts from previous versions

It is also possible to update posts that were published using Micro.publish versions prior to 2.0.0. To do so, you must include a Property (or field in the YAML frontmatter) named url containing the URL of the published post, as illustrated below.

To include a new Property, simply follow these steps in the Command Palette:

Add Property

And add the url with the published post URL:

Properties

Those who prefer the YAML file can add the the url using the format:

---
url: https://example.com/path/to/post.html
---

After editing the note or title (either through the filename or YAML/Property), updating is as straightforward as utilizing the Post to Micro.blog command from the Command Palette. Similar to the process for version 2.0.0, a simplified version of the Review view will be presented, featuring the post’s title. For users with multiple blogs, it will inquire about the blog to which the post should be associated.

🛒 I bought a monitor arm to support my 29" display, but it turns out the display is too large, and the arm is too small to accommodate it comfortably. To achieve a comfortable height, the arm would require an additional 10cm of extension. I’ll return it.

First time...

Every morning, I open Day One and dive into the memories from “On This Day,” and today was no exception. However, this time, I discovered several “firsts.”

It was the first time I visited AT&T Park (now Oracle Park):

The first time I got photos I ordered using our app:

It also marked my first experience with a Field Notes pocket notebook:

And my first visit to Vilnius, Lithuania: