- The original post’s
URL
. - The
blogID
, especially relevant for users managing multiple blogs. - The updated
content
and/ortitle
of the post. - Micro.publish
- Micro.publish Changelog
- Unit Testing With Doubles and Fixtures
- Pair Programming, TDD, and Rotation?
- Micro.publish will use the
title
property in the frontmatter or Properties, if it exists. Otherwise, it will fall back to the filename. - Micro.publish will use the
tags
property in the frontmatter or Properties, if it exists. Otherwise, it will use the default categories configured in Micro.publish’s preferences. - As a user I want to schedule my post to be published in a specific date
- As a user I want Obsidian to automatically fetch my Categories when the app launches
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.
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. 👨💻
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!
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:
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:
And for those utilizing the Source mode, as YAML:
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.
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:
And add the url
with the published post URL:
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.
Week 2023-36
I’ve been working on version 2.0.0 of Micro.publish, which will introduce the ability to edit Micro.blog posts originally composed and published through Obsidian. I’ve managed to allocate a small fraction of my daily time to this project, and progress has been quite promising. I already have it functioning, and I’m currently in the testing phase before releasing it.
I made a change in my online presence, deleting my old Matrix account, which had been lying dormant, and creating a new one using the omg.lol server.
Also part of the recent changes, I decided to remove Bluesky from my phone and disabled cross-posting to Bluesky and Nostr. I’ll continue cross-posting to Mastodon but have enabled the “Automated Post Deletion” feature for posts older than one week. In the case of Bluesky, I went ahead and deleted all of my posts there.
I went on a trip to Lithuania for our Apple Team off-site. We spent our time in cabins in the countryside, and the remarkable thing about our getaway was that work was the only topic we deliberately avoided. During my stay, I made the most of the picturesque setting to capture numerous photos.
When returning home, I was warmly welcomed by scientist and tinyScientist at the airport. tinyScientist seemed frozen at first when he saw me, but quickly jumped into my arms once we reunited.
Last but not least, exciting news, tinyScientist just sprouted his very first tooth!
👨💻 Posting and updating a Micro.blog post via Obsidian. Soon.
👨💻 I spent more time than I’d care to admit trying to figure out what the heck was going wrong with a request I was making in Postman.
When I finally threw in the towel and gave curl
a shot, it magically worked! Postman was messing with my request in some way I still don’t know why it was failing.
👨💻 The next iteration of Micro.publish will be version 2.0.0, and I intend to add a new feature enabling users to edit their Micro.blog posts. When? Later this week!
Week 2023-35
Earlier this week, I published Micro.publish 1.7.0, which introduces support for YAML frontmatter/Properties for titles and tags. I am so happy with all the feedback I received and all the coffees I was gifted!
I renewed my subscription to Obsidian Sync. I had canceled it a while ago, but I realized that Obsidian is the best solution for note-taking and syncing notes between different devices. I need my Zettelkasten on both my personal and work devices.
We took tinyScientist to two doctor’s appointments this week. The first was a routine checkup with the pediatrician, and the second was a follow-up appointment with a specialist (related to the surgery he had earlier this year). tinyScientist is doing well!
I am very particular about color schemes and wallpapers, but this week I found the perfect wallpaper for my computer and phone.
I also updated several entries in my Digital Garden:
and the Micro.publish page on GitHub, which is the content displayed in Obsidian’s Community Plugins section.
I received some very sad news that my favorite barista in the city passed away suddenly. Not only was her coffee amazing, but she was also a wonderful person. She always treated tinyScientist very well, and he loved her.
Last but not least, it was my work anniversary. I have been with Nord Security (NordVPN) for two years now. Every year, we receive a gift from the company, and this year I got a baseball cap with the NordVPN logo on it.
👨💻 I’ve updated the following pages:
👨💻 Micro.publish 1.7.0 is out. The plugin is available in the Community Plugins area inside Obsidian.

Micro.publish 1.7.0 Preview
👨💻 I am adding YAML frontmatter support to Micro.publish. It also works with the new Properties feature introduced in Obsidian 1.4, which is essentially a user-friendly interface for the less aesthetically pleasing YAML syntax.
I plan to code review my code tomorrow and release version 1.7.0 by the end of the day, hopefully.
👨💻 I’m deleting Visual Studio Code from my work and personal computers and replacing it with Panic’s Nova.
👨💻 Decided to work on my Obsidian plugin Micro.publish a little bit today. Managed to get the frontmatter information from a note and am thinking of using it when posting to Micro.blog. Post title and categories/tags would be in the first implementation.
🪴 👨💻 I’ve updated Unit Testing With Doubles and Fixtures in my Digital Garden. I still have to write about the different types of tests, and frameworks and tools. However, what matters is there.
Week 2023-23

The last notes I wrote are from Week 2023-18, and so many things happened since that post that I won’t even try to remember all the details. Instead, I’ll focus in some of the highlights.
Personal
tinyScientist had his first surgery and had to stay in hospital for almost a week for recovery.
The surgery took seven hours, from the first incision to the last stitch, according to the doctors, followed by another two hours in post-anesthesia recovery. An eternity if you ask us. But we were waiting and preparing for this day since the fourth month of pregnancy, having monthly appointments with doctors and midwife to talk about the surgery, steps for before and after, etc…
The surgery was a success, and tinyScientist is recovering well. He was exhausted and bored during the week he had to stay hospitalized, but that’s all in the past now.
To celebrate I asked Andy Carolan to create profile pictures for the family. They’re all awesome, but tinyScientist’s is a piece of art.
Watching
Watched two movies recently, Dungeons & Dragons: Honor Among Thieves and The Super Mario Bros. Movie.
I was skeptical about D&D, but loved the movie. The balance between humor, action, and luck is perfect. Great easter eggs as well!
Super Mario is fun, good entertainment. I don’t understand why people were complaining about it. It’s a kids movie, what were they expecting?
Playing
The Legend of Zelda: Tears of the Kingdom was released the day my son had his surgery. On the day before - thanks Amazon! - I got the standard version and on the release day I got the Collector’s Edition.
The days after the surgery were extremely busy and I didn’t find time to play it, but this week I finally did. What can I say? It’s even better than the best game ever made (The Legend of Zelda: Breath of the Wild).
Reading
I love a good dystopian story, and when I saw the trailer for Silo I decided to buy the The Silo Saga to read.
Hacking
Micro.publish
A user reported that Micro.publish allowed to run the publish command with an empty post, resulting in error since Micro.blog doesn’t support empty posts (obviously).
So I released a minor update - 1.6.0 - fixing it. After the change, users will be prompted with a message saying they have to write something before publishing into Micro.blog.
I’ve also updated the donate button inside the Plug-in to use Ko-fi instead of BuyMeACoffee. I like that platform better.
omg.lol
I’m back working on my omg.lol client for macOS. Didn’t put much time on it, but was using and testing the app to make sure it looks good for releasing it.
App.net import
Quickly wrote a script to download all my App.net posts and published them as a page in my blog. I might, someday, import those posts as regular posts in this blog, but for now I’ll keep them in a separate page.
Canceled Obsidian Sync and Publish today. I’m using Micro.blog to host my mini Digital Garden.
I’m not using any plugin to maintain a Digital Garden on Micro.blog. It would require a lot of transformation (file paths, dealing with file names, etc…) and I don’t have much time now to put into a new plugin. For now it’s all manually maintained.
The only Obsidian plugin I use is Micro.publish, for blog posts.
👨💻 Once I finish the Webpage Feature of my omg.lol client I’ll add support to editing a Micro.blog post to my Obsidian plugin, Micro.publish.
Week 2023-14
Personal
tinyScientist got a new bed. They grow so fast!
After using so many Read Later services in the last decade, I believe I can finally stop looking for the right one for me. Readwise’s Read works the way I need a Read Later app to work. Both their apps, Readwise and Read, have performance and UX issues, but they work, deliver what they promise, and are always improving. I was skeptical with all those YouTube videos praising the service, but I decided to give it a try and am impressed.
Last week I migrated all my personal notes from Obsidian to Bear, but maybe I was too eager to try Bear’s update that I rushed things. Thinking again, Obsidian (and some other apps) offer something Bear doesn’t: access to the notes without having to use the their app. Obsidian uses simple Markdown files in the file system, while Bear stores all notes and assets in a sqlite database, hidden away from the user.
Portability is an important thing nowadays, especially with so many apps hiding their features behind subscriptions. With simple Markdown files I can edit my notes with anything, including my beloved Vim.
Work
Another short week at work, 7th of April was the first day of Easter (Good Friday). But I went to the office twice, on Monday and Wednesday, for 1-on-1s with the folks from my team, to support them with their Development Plans.
Hacking
I had plans to work on the Webpage Feature of my native omg.lol client for macOS, but decided to work a little bit on Micro.publish, my Obsidian plugin to post to Micro.blog.
Readwise’s plugin for Obsidian automatically fetches highlights and notes when Obsidian launches, so I decided to do the same for Micro.blog categories. Now, when the user opens Obsidian, it fetches the categories one has on their blogs.

The command to force fetch categories is still present and can be used at any time to retrieve categories (e.g., in case new categories were added directly to Micro.blog while Obsidian was open).
Another feature I’ve added is the ability to schedule a post for a future date. I usually don’t scheduled my posts, but it’s a nice feature to have.

I’ve also updated my blog’s colors to match the Obsidian dark theme I use, and used Xcode dark colors for the code snippets. Feels much more natural to me now.
Photography
During the week I published another page to my Digital Garden, Obscura, where I detail the setup I have to take Monochrome photos using the app.
Later during the week I updated the page to include the missing piece in my setup, which was causing Glass not to show the EXIF of my photos.
After talking to Ben, Software Engineer behind Obscura, we found what was missing, and now my setup is exactly the way I wanted it to be: Monochrome photos by default, saving JPEG SOOC, and with EXIF preserved, ready to share online (or not).
👨💻 I’ve updated Micro.publish with the following features:
The plugin can be installed from within Obsidian in Community Plugins.
👨💻 I forgot to mention, but I’ve added to Micro.publish, my Obsidian Plugin to post to Micro.blog, a picker to select Categories to apply to a post. There’s a command to force Obsidian to synchronize the Categories, and the picker will remember the categories added and won’t suggest them again.
Week 2023-06
Braille Institute released a font for low vision readers, Atkinson Hyperlegible. The font is great and I asked Matter to add it to their list of supported fonts. Matter accepted my requested and within a couple of hours they deployed the changes. I’ve update my blog to use Atkinson Hyperlegible as well.
I keep going back-and-forth between Reminders and Things. Every time there’s a new macOS version I go back to Reminders to see what changed. But the truth is, Things is an amazing app and I decided to go back to it. The best of all, I can synchronize Things on all the computers I use, no matter if they’re using the same Apple ID or not. Reminders use iCloud, so I’m limited to the Apple ID I’m using. The downside is that I had to pay for Things twice.
Same goes for Safari and Firefox. I’m a big Firefox fan (since it was called Phoenix) and love the Multi-Account Containers feature, but Safari is so much faster and has better support for physical keys and Apple Pay so I keep going back to it.
I read a review about ReadKit and decided to give it a try. I deleted Reeder from my devices to force myself to use it. The application is actually nice and I’m enjoying it a lot. I like the way it integrates with Pinboard as well, which is a service I use for about 15 years. It supports Smart Folders, a great feature when subscribing to tons of feeds.
Decided to create a mini Digital Garden on Micro.blog. It’s not perfect because I have to create all the links between pages manually. But at least all the content is hosted in my blog. I have to check if there’s an API to post Pages on Micro.blog directly, and add an option to my Micro.publish plugin so that people can publish posts and pages from Obsidian. For now, the digital garden has notes about Unit Testing, Open Source, and Child Benefits in Germany.
I released a minor change to Micro.publish plugin, including a link to my Buy My a Coffee page. I added a link to Buy My a Coffee in all my mini Digital Garden pages as well.
We’re cat sitting for friends and I usually go to their house at night, after tinyScientist goes to bed. I’m using my time there to work on my omg.lol native client for macOS and iOS. My client is fully modularized and each feature is a micro app on its own. Once all the setup is done, the app should scale pretty well, and adding new omg.lol features should be a breeze. I plan to write about Modularization once the setup is finished.
I finally started playing Fire Emblem Encore, but already have my eyes on Metroid Prime Remastered. I must resist, in two weeks there’s Octopath Traveler II and in May, The Legend of Zelda: Tears of the Kingdom.
LEGO Series 24 is complete. We went to a LEGO store and they had hundreds of minifigure bags. Spent a good amount of time there, feeling the bags and found the last two.
And finally, I had to use Twitter to talk to my ISP’s support. Their service is too unstable and every now and then I have to contact them to complain (and ask for my money back). Maybe it’s time to switch providers so that I don’t have to use Twitter anymore.