Apple Maps on both iOS and macOS cannot suggest multi-destination routes for any mode of transport other than driving. There may be valid reasons for this limitation, but I can’t think of one. It’s quite maddening. 💻 × 🌱


Apple Maps on both iOS and macOS cannot suggest multi-destination routes for any mode of transport other than driving. There may be valid reasons for this limitation, but I can’t think of one. It’s quite maddening. 💻 × 🌱


Dans une planche d'Idées noires, Franquin montre une foule compacte, joyeuse et bruyante, qui avance en se poussant les uns les autres, portée par l’enthousiasme collectif ; les cris d’encouragement se mêlent aux injonctions contradictoires, personne ne regarde vraiment devant, et l’on découvre soudain qu’ils progressent droit vers un précipice, d’où ils tombent en cascade, les suivants continuant pourtant à pousser comme si de rien n’était — une image à la fois absurde et cruellement lucide du suivisme.
Avec mon rôle de développeur logiciel, j’ai parfois l’impression de faire partie de cette foule. D’une part, coder avec un agent est devenu une obligation professionnelle, sinon c’est la porte ouverte vers la reconversion. D’autre part, la tentation d’aller plus vite, de produire davantage, est bien sûr alléchante. Pourtant, on ne sait pas encore quel sera le prix à payer de ces bouleversements. Il sera environnemental, social, sociétal, et peut-être financier.
Un article de Paul Ford, dans le New York Times, n’a cessé d’apparaître dans mes flux RSS et tourne autour du même paradoxe :
All of the people I love hate this stuff, and all the people I hate love it. And yet, likely because of the same personality flaws that drew me to technology in the first place, I am annoyingly excited.
L’article complet est recommandé, mais c’est cette citation qui a été le plus reprise (par Daring Fireball et Kottke notamment).
Donc allons-y, mais allons-y mollo. Avec raison et modération. Ça ressemble à un open bar, mais attention à la gueule de bois.
💻 × 🌱 × 🏛️
Flying Taxis? China Has Them. And Drone Lunch Deliveries, Too.
This article by Keith Bradsher and Qilai Shen feels like sci-fi. One part of me thinks “Why don’t we have these technologies in France yet?”, the other part thinks “Is this a desirably future?”.
🏛️ × 🌱 × 💻
Les voitures autonomes peuvent analyser en temps réel des milliers de variables. Elles anticipent les trajectoires d’autres véhicules et prennent des décisions de conduite en quelques millisecondes. C’est une prouesse technologique impressionnante.
Cependant, les voitures que je conduis occasionnellement ne parviennent pas à détecter correctement que mes mains sont sur le volant.
Comment faire confiance aux systèmes pour des décisions critiques quand ils échouent sur des bases fondamentales ? C’est comme avoir un chirurgien de génie qui ne sait pas enfiler ses gants.
💻
AI is becoming such a bland word.
It reminds me of the Skinner’s Sense of Snow Simpsons' episode, when kids are stuck at school during a blizzard:
— Marge: This is terrible! How will the kids get home?
— Homer: I don’t know. Internet?
You could reuse that joke with AI, and it would be even better. AI is turning into a vague term, a one-size-fits-all infaillible oracle and authoritative figure, used to address any issue we encounter. What a joke!
Don’t get me wrong, I do not underestimate tools such as ChatGPT and Claude. I use them daily, but I apply judgment to ensure they make sense for the task at hand.
But look at this segment from The Daily Show. “AI says” is becoming the new “studies show”—a phrase that sounds authoritative but often masks lazy thinking. If AI could not find a single instance of Donald Trump using “enigma”, then it must be true: Donald Trump never used the word “enigma”. Then the Daily Show shows Trump saying “enigma” multiple times. This is both hilarious and deeply sad.
Let’s buckle up and get ready to call bullshit on a lot of AI-authority claims in the months and years to come.
💻
Again, Letterboxd is amazing. Their commitment of web standards allows me to choose my next movie simply by visiting this URL: https://letterboxd.com/dirtyhenry/watchlist/on/favorite-services/type/stream/by/shuffle/.
This link filters my watchlist to show only the movies available to streaming services I subscribe to, and randomizes the order. My strategy? I just pick the first movie that appears. It’s that simple.
I like losing the context of when or why I added a movie to my watchlist. I trust that my past self picked these films for a reason. This approach saves me time and helps me avoid indecision.
🍿 × 💻
After a clean macOS reinstall, running a web project using the canvas package (via react-pdf) failed with the following error:
Cannot find module '../build/Release/canvas.node'
Many occurrences online suggested that fixing this only required to reinstall the package but it turns out that in my case, a Python library was missing:
ModuleNotFoundError: No module named 'distutils'
It turns out what fixed the error was:
pip install setuptools
💻
Aujourd’hui, je vois des publicités pour Instagram où la plateforme prétend jouer un rôle dans la législation européenne sur l’accord parental pour les téléchargements sur l’App Store. Les potards de pompiers pyromanes sont à 11 chez Meta. 💻 × 🏛️
My tech blog is now located at https://mickf.net/tech/.
For the last 15 years or so, I used the hostname bootstragram.com, but I grew tired of the name. It brings back stressful memories that make me clench my teeth. I prefer to consolidate all my online presence under mickf.net from now on. I have completed the most part of the redirection tasks and will finalize the details in the coming weeks.
💻
I am not a frequent user of Instagram. I visit occasionally because some of my favorite people and places only post there. I noticed that the platform has shifted from square previews to rectangle previews. If I were a heavy user, this change would have driven me crazy. I remember how some people used to be creative with their posts, creating really cool feeds filled with square previews. Instagram threw away all that effort.
Instagram users: it’s never too late to leave. Pixelfed — or Micro.blog — are very solid fediverse alternatives.
💻
Here is my Year in Review from Letterboxd for 2024.
I love Letterboxd and have been using it since 2012. It has improved continuously over time. I also appreciate their commitment to web standards. Just look at the RSS feed icon on any user’s diary! 🍿 × 💻
The trick that made Mickey Mouse famous: a fascinating video by Phil Edwards explains how optical sound technology contributed to the success of the first Mickey Mouse cartoon by achieving perfect sound synchronization. 🍿 × 💻
oplets you manage 1Password from the command-line. (…) Its killer features is theop runsubcommand, which can dynamically inject secrets from your 1Password vault into your application’s environment. Instead of storing sensitive values directly in your.envfile, you reference them using specialop://URLs.
Smart. Replacing secrets by references also means that backups are easier. I also wonder if we could define a URL scheme for keychain items URL instead of op to fetch secrets. 💻
I just realized that The Ringer has removed their RSS feed with the latest redesign. What a shame. I guess this is goodbye until this is fixed then. 🍿 × 💻
This fun little game helps you choose your favorite monospace font from 30 candidates. My winner was Hack. I have been using it since 2015 and will continue to do so. 💻
Spotify drives me crazy with its song shuffle functionality. For example, the Apple TV app does not include a shuffle option. Instead, it applies the shuffle setting from other versions of the app you may be using. This is quite maddening.
My ideal shuffle behavior would be the following:
🎵 × 💻
YouTube tends to transcribe “ChatGPT” as “Chachi BT”. Funny.
When you search for “Chachi BT” on Google, there are so many results and pretty much all of them are indeed about ChatGPT. Meaning that no human edited the posts before publication to fix this typo even in titles, meta tags, etc. Scary.
🍿× 💻
Notes for later.
The State of React 2024 survey lists some tools for forms and data visualisation. Since some were unknown to me, I’ll list them all here.
💻
Many people of my RSS feeds recommended Panic’s Cabel Sasser talk at XOXO 2024:
Watching it did not disappoint. 💻 × 🍿
Big thanks to Manton Reece for pointing me to this hilarious bit by John Mulaney about captchas.
It’s now up there with Michael McIntyre’s sketch on passwords in the hall of fame of tech-related comedy. 💻 × 🍿
Naming things is quite famously one of the hardest problems in software development.
When you realize there is a better name for something, it’s important to rename it, even if it’s tricky. Clear, accurate names improve the developer experience, while bad names make maintenance harder, slower, and riskier. Leaving sub-optimal names in a codebase is technical debt. 💻
Since my web projects use typed translation keys, my work in progress would typically add unwanted TypeScript errors every time I added a new translation key, and that would annoy me a lot.
So I wrote a little script that watches a temporary JSON translation file (as used by Lokalise) and merges it into all the translation files of the languages that are supported every time it changes.
This way, once I am done with a feature, I can upload the new keys all at once in Lokalise’s upload tool. 💻
iA Presenter looks like a really nice app. Eager to give it a try. 💻
Oh, Slack, you sweet rebel. Why stick with standard Markdown when you can craft your very own, bespoke, buggy, half-working version? 🤦♂️ 💻
Slack is gradually moving away from finished software. Instead of refining the core features of a messaging platform (like proper Markdown support, for example), each new version adds features I neither need nor want, such as task lists and canvas. 💻
TIL I learned that 5000 and 6000 were not good options for ports for web development.
💻
I recently watched the 2024 Apple Event, where they briefly discussed their efforts toward carbon neutrality by 2030. While the event touched on Apple’s sustainable packaging initiatives, their website provides more detailed information on the environmental impact of their products.
Here’s what I found about the carbon footprint of the latest iPhones:
Quite better than the Apple Vision Pro.
If you’re interested in learning more about Apple’s progress toward sustainability and carbon neutrality, their website offers comprehensive details. It’s worth considering how these efforts align with their 2030 environmental goals.
💻
If you’ve ever tried to take a clean screenshot from a paused YouTube video, you’ve probably noticed the overlay controls and gradient at the bottom of the screen that get in the way. Fortunately, there’s a simple solution using JavaScript in the browser console:
The steps to remove YouTube controls are:
F12 or Ctrl + Shift + I).document.querySelector(".ytp-gradient-bottom").remove()
document.querySelector(".ytp-chrome-bottom").remove()
After running this, the video controls and gradient will disappear, allowing you to take a clean screenshot of the paused video.
💻
It’s impressive that Marques Brownlee and David Heinemeier Hansson have achieved high profiles in the tech community while also reaching international levels in sports—ultimate frisbee for Brownlee and car racing for Hansson. 💻
When I had to choose between Notion and Craft, I picked Craft mostly for its offline capabilities. I have been questioning my choice ever since, especially after Notion introduced databases. I felt confident it was time to switch but Craft just announced objects. I wonder if that will be enough to close the gap. Craft probation extended. 🖥️
I have been using Base to handle SQLite databases on macOS for as long as I can remember. Today it failed me for the 1st time in a long time. It has not been updated in 4 years, which is not a problem per se but shows that my issue won’t be fixed anytime soon. So I am on the market for a new SQLite app of choice.
Trying Ducklet and Beekeeper Studio. 💻
I spent some time yesterday evening with a starter template of Remix + Vite. Here are a few thoughts:
I still believe the web is moving towards some consolidation among tools, but it’s very frustrating right now. 💻
Too many menu bar apps. They do not thrive with the MacBook Pro notch. We still need windows. 💻
The YouTube app on Apple TV is so frustrating to use. When opening a link from another app — such as the awesome Play — it will present the user profile selection screen first and then will lose context and present YouTube home screen. And ads seem much longer than on the browser. An alternative such as Juno on the Vision Pro that I read about would be awesome. 💻
Clicking “Trust & Enable” for every macro every time Xcode updates to latest package versions sucks. 💻
I wrote a Swift script to find iOS simulators identifiers. What I did over time explained here: bootstragram.com/blog/find… 💻
Got reminded of this awesome joke today.
There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.
💻
Un membre de ma famille m’a demandé d’inspecter un email annonçant une lettre recommandée électronique venant de AR24 pour savoir si c’était un message légitime ou un scam. Après 10 minutes d’investigation, il s’avère que c’est légitime mais c’est comme si La Poste, Docaposte et AR24 faisaient tout pour avoir l’air que ce soit l’œuvre de pirates. 🤦♂️💻
I am not a big fan of the latest iterations of Craft: global search results are harder to read, calendar/journal entries are harder to navigate in, and overall new features seem to focus on parts I have no interests in, rather than approaching Finished Software.
Notion and Obsidian might get back on the table pretty soon. 💻
This Chores 2.0 demo fake app is obviously hilarious and could be life-changing. But my point about the Apple Vision Pro being still holds. 💻
The carbon footprint of an Apple Vision Pro amounts to 335kg of greenhouse gas emissions, slightly higher than the 300kg emitted by the 16-inch MacBook Pro I currently use. This represents approximately 15% of a yearly emissions budget of 2 tons, or about 3% when depreciated over a 5-year period.
As a programmer specializing in Apple technologies, I am naturally curious about the Apple Vision Pro. However, I have decided against purchasing one, not primarily due to financial constraints, but because I believe its environmental impact exceeds what is justifiable for a product that remains largely nonessential.
For numerous reasons, I hope the Apple Vision Pro fails to gain traction. However, it seems unlikely. Therefore, I urge you to consider its environmental cost as seriously as its monetary expense before making a purchasing decision. Please aim to offset emissions elsewhere, just as you would seek to save money in other areas if you choose to acquire one.
💻
I gave swift-openapi-generator a try to interact with Apple’s own App Store Connect API. The result was… unconvincing.
1️⃣ Compile time of my CLI reached 19 minutes:
[671/671] Linking mobile-cli
Build complete! (1137.97s)
2️⃣ The size of the CLI was 348M.
3️⃣ The command I wrote crashed because the API returned values that were not included in the OpenAPI spec.
Not a great 1st experience. 💻
Jekyll still has a pulse. Should I reconsider moving on? Probably not. Since Ruby is not as needed for iOS development as it used to (CocoaPods being replaced by SPM, fastlane being replaced by Xcode Cloud), it became my 3rd language. Soon to be 4th if I hold on to my resolution to learn Rust this year. I also found out about Astro, which is a good mix between Jekyll and going full on Remix. 💻
I just wrote my mission statement as a programmer. A little introspection never hurts. Especially when you find out you stand where you wanted to be. 💻
I iterated on my stupidly simple colour tool: write any colour hex code in the form field and the page will use it as a background colour. With shareable URL.
At first I wanted to demo theoretical properly typed forms flows on a very simple form but when I realised I did not have much time, I made the scope smaller.
But you know what? I love it. 🌈 💻
I just released version 0.2.0 of swift-blocks. It is a package of all the code I repeatedly use in all of my Swift projects. I love it. And maybe you will too. I also wrote a post to introduce it to the world. 💻
Johanna Stern interviews a guy who stole more than 300k$ from iPhone users through social engineering. TL;DR: Do not share your passcodes. Do not let people use your iPhone without supervision. I usually do that with 1 big exception: when I hand over my phone to my kids… and their babysitter. I wish iOS could provide a kids mode with an allow list or deny list of apps that are safe to use by anyone. 💻
Following up on Manton Reece’s default apps post, here’s my list for 2023:
I added the Scratchpad category at the end. 💻
Great excerpt from Under the Radar, the podcast of David Smith & Marco Arment:
And my family is very well trained at this point that if they see a bug happens in one of my apps, they must immediately drop everything and bring it to me because we all know the old adage “a bug in the hand is worth two in the report.”
💻
I just posted a new post about software design: “Get rid of types you don’t control early: a lesson (re)learned”. Some Rolling Stones jokes included. 💻
remix.run/blog needs a RSS feed. https://github.com/remix-run/remix/discussions/7506 💻
I love open-source code, but when I come across something that needs improvement in an open-source repository, I sometimes hesitate to point it out because I don’t want to be seen as overly critical or ungrateful. However, I recently felt it was the right thing to do when I raised the issue that vapor-community/bcrypt may no longer be relevant in a somewhat positive manner. Most importantly, I want to express my gratitude to @[email protected] for their time and dedication to the Swift Server Workgroup. 💻
Bandcamp Schadenfreude. I was offered a deal to become an employee for Bandcamp back in 2011. Then the deal was off for reasons that didn’t make sense. Since then, I had mixed feelings: I liked the product as a listener, not so much as a musician, and I resent founders and managers from then — I know I shouldn’t but I do — and I am not sure they are genuinely nice people. 💻
I have a songbook GitHub project that contains chordpro files and creates my own PDF songbook. I geeked out a bit so that the PDF is generated by a GitHub action and uploaded to my new web home that I am slowly building brick by brick. You can see the final result on my Guitar Songbook page. 🎸💻
I used to love Evernote so much. I had to log in to access old content today, and it made me upset to see how bad of a product it is now. For instance, I could not find a way to see who were the people having access to a shared note. 💻
Renewal costs for .net domains on Gandi are going through the roof. Transferring to CloudFlare now. 💻
GitHub - aaronpk/Meetable: an event listing website
I just found out this project by Aaron Parecki. I just moved to a new city and trying to find local events forced me to spend time on Facebook, which is the de facto solution for venues to advertise events. An alternative would be great so I love that Meetable exists. I know nothing from the tech stack though so not sure I could contribute or tune it for my needs if i was willing to invest time on it for a side-project. 💻
Celebrating the 200th pull request on my Statium monorepo. So much more gratifying for solo side-projects. 💻
Jekyll does not seem to do well. Despite being used by GitHub for GitHub pages, largely used plugins from the community — such as jekyll-assets, — are falling behind Jekyll 4 or the end of life of Ruby 2.
Ghost has very convincing pros: it is easy, fast and beautiful. It also has everything one can need fully integrated when you just start publishing.
But for a technical person such like me, who has an history of web publishing behind, it also has major cons:
As such, Ghost does not sound like a good CMS solution for me. To be continued. 💻
👨💻 Yesterday, I pulled out my Sortmash iOS app code off dusty shelves as I needed to sort a large amount of data by order of preference — namely my Sorare cards 🤦♂️ — and it was a very fun experience. Exploring a pre-ARC Objective-C with embedded dependencies — TouchJSON and ASIHTTPRequest — felt like traveling in time, and made me so grateful of where we stand now. Making the code run again was surprisingly easy but visually very buggy since the code was from an era where iPhone and iPad had each a unique screen size.