Font Updates 002

Previous post set in the new typeface. It works even without a bold font in the current layout

After playing with the font for a while, I’ve started getting to know what I want. I want to bring back the nostalgic feeling of interfaces from the 90s — Verdana/Tahoma and Lucida Grande. Also, even though designing your own version of Helvetica is cool, it’s psychologically hard to do when you have so many open Helvetica descendants — Inter, Geist.

I redid most of the glyphs. Now counters are more open and letters have abrupt joints. The letters I and J have serifs and the letter M has two stories.

Interestingly, once you get spacing right, text starts looking legible even when letter forms are not perfect.


iOS 18 Preview

Yesterday, Apple showed the iOS 18 Preview and Apple Intelligence and it might be the worst release they made.

The entire update is about generative AI. Companies have been adding generative AI whenever it’s useful for the past few years. Apple was among few companies that didn’t and now they jumped on that bandwagon as well.

One would expect Apple to add AI features sparingly, where it feels right, where it doesn’t obstruct the user flow, where it’s invisible. They have not. Instead, they’ve released a bunch of unrefined features as if to show their relevance.

Some features — summaries, proofreading — are more or less valuable. While others — emoji generation, anyone? — are out of place.

Another problem with iOS 18 is that it looks like it was designed in a haste. Apple has been slowly losing its design edge for a few years, but this update feels even less polished. You get buttons that are not aligned, font colors that do not match, and patterns that do not work.

The entire update feels like there was no attention to details — neither to design nor feature choices.


Algorithmic Feeds

The algorithmic feed is among the worst inventions of the 21st century. The extent of damage it has caused is hard to measure, but you can probably feel it.

The main issue with generated feeds is that they need to rely on some metric to decide what content to show you. In most cases, this metric is engagement, which is pretty annoying. To be fair, any metric would be bad. It’s impossible to reduce what someone likes or dislikes into one number.

When a single number is used to track the quality of recommendations, it stops reflecting reality. Instead, people start to gamble it. As a result, you get clickbait tweets, posts, and video titles. Content quality deteriorates, yet you are more likely to engage with it.

The best solution I’ve found is to avoid any app or service with algorithmic feeds.

For example, I almost abandoned Twitter. There was a time when I could read what the people I followed wrote. Then, Twitter introduced algorithmic feeds and eventually removed third-party clients.

It’s not only about Twitter. Much worse happened to Instagram where you almost don’t see what your friends post. Meta knows better what you’ll engage with.

I would still love to use Twitter or Instagram. But it’s too much work — there are only a few people left there who I like following, the rest became victims of this race to the bottom — self-promotion at the expense of sincerity.

There’s an essay by Scott Alexander on the topic of competition and the incentives it creates. I want to finish this post with a quote from that post:

There’s a passage in the Principia Discordia where Malaclypse complains to the Goddess about the evils of human society. “Everyone is hurting each other, the planet is rampant with injustices, whole societies plunder groups of their own people, mothers imprison sons, children perish while brothers war.”

The Goddess answers: “What is the matter with that, if it’s what you want to do?”

Malaclypse: “But nobody wants it! Everybody hates it!”

Goddess: “Oh. Well, then stop.”


The Creative Act by Rick Rubin

I didn’t like this book at first. At the beginning, he talks about spiritual nonsense — the Source. It didn’t make much sense then and it doesn’t make sense now. The best approach is to ignore these parts or think about them as Rick’s way to express things that he’s unable to put into words. If you survive this initial shock, you get to the good part.

The good part, and why you should read it, is all the things that you believe in and wanted to hear somebody else saying. Things that we collectively lost along the way.

We live in a messed-up world where quality is reduced to a few numbers on a dashboard or where people stopped doing what they like and started doing what drives engagement. I needed to know that there are people who still appreciate simple things and who work for themselves.

His main point is that art (read it as ”anything you do”) is about yourself. The quality of your work is what you should struggle to improve. Everything else — feedback, critique, self-doubt, motivation — is a means to the final result.

At some point in my life, I lost track of who I am — there were too many voices aroud, and too many instances where I need to conform to someone else’s opinion. This book gave me a breath of fresh air and I don’t care anymore.


Querying OpenStreetMap Data

I’ve recently started using Strava to create cycling routes. I noticed that sometimes it doesn’t use some roads because the paving is not specified. In theory, you can add additional points to route through these roads, but this isn’t the best solution.

Strava highlights roads with “unspecified” surface in white

Strava uses Mapbox for maps and navigation, which in turn uses OpenStreetMap data.

I wanted to know what roads didn’t have a surface type specified to adjust them in OpenStreetMap later.

I needed a way to query OpenStreetMap data. I found Overpass Turbo, which allows you to query and visualize any data from OSM.

I used this query to highlight all roads that didn’t specify their surface type:

[out:json];

(
  way[highway~"primary|secondary|tertiary|residential"]["surface"!~"."]({{bbox}});
);

out body;
>;
out skel qt;
Displaying the result of the query in Overpass Turbo

Filtering roads with a certain speed limit

Another useful application of Turbo Pass is finding roads with certain speed limits. Scalp road is one the most beautiful roads in Ireland, but it has an 80km/h speed limit. I can only ride on it in the morning when the traffic is low. At other times, I need to find roads with lower speeds.

Scalp road

The following query can be used to highlight roads with 30-60 km/h speed limits.

way[highway~"primary|secondary|tertiary|residential"]["maxspeed"
~"30|40|50|60"]({{bbox}});