Implementing macOS Finder text shortening
I recently watched a video from a talk about the future of the Desktop UX from Scott Jenson, a designer who has worked on a lot of stuff that we all probably use in our daily lives, without giving it much thought.
Right at the beginning of the talk, he mentions some of his work while at Apple, including a cool detail about how Finder handles the display of filenames. Instead of placing the ellipsis at the end, Finder places it in the middle — which, according to him, preserves important information about the file.
It’s a neat detail, and while I didn’t pay it much attention back then, it recently came back to me and it’s just the sort of UI challenge that I love to tackle, so here we are.
…CSS transitions with clip-path
One of the more “recent” additions to CSS is clip-path property. It essentially allows you to add a mask to any content. Anything inside the mask region is shown, while anything outside of it becomes hidden.
There’s a lot that can be said about to clip-path, but today I want to focus on using it in CSS transitions.
…Thoughts on clarity
Writing code for a living is a tricky business. There’s a lot that happens even before a line of code is put on the screen: meetings, gathering requirements, asking questions, discussions on which technology stack to use, and so on.
All of this is done with one purpose: figuring out the shape of the solution to the problem. We do this because, humans aren’t yet able to read each other’s minds. And because we need a proper understanding of the task at hand before we can start working on it.
…Learning Go: Sequential Channels
Go uses channels as a means of communication between threads (goroutines).
Today I want to look how can we use channels sequentially, to pass information from one goroutine to another in a sequence, creating a sort of pipeline.
And for that we’re going to need some sugar.
…Learning Go: Channels
Recently, I’ve been on a journey to learn Go.
One of its defining features, is the concept of Channels.
Channels are the way Go enables communication between asynchronous code, which in Go takes the name of goroutines.
…