November 29, 2021

Editing for adults

It took perhaps five minutes after I finished my last post about starting fresh on a new Mac until I realized I will not want to standardize on Visual studio code as my One Editor for all types of text.

So what sin did it commit so quickly and completely as to immediately be beyond forgiveness?

Its cross-platform nature reared its ugly head in the worst possible way: Visual studio code has built its editing component in such a way that it can not support text services.

Sure, but what does that mean?

Services are one of many ways of automating things in Macos. I have created a few for myself which I have hooked into system-wide shortcuts. My most used one, by far, takes the URL from the active Safari tab and turns the currently selected text in the active application into a Markdown-style link to that URL. I use that dozens of times every time I write show notes for a new podcast episode, and I typically write show notes for a new podcast episode twice per week.

I am not sure where in the chain of technology Visual studio code breaks things. At first I thought I was doing something wrong setting up my service, as it was simply not showing up in the services menu (nor responding to my keyboard shortcut). But then, I noticed the shortcut working perfectly in other apps, fed Google a few words, and voila: an open bug about the problem, including some poor person working around it by entering text into the find dialog and running their service from there.

Did I mention the bug was opened in June, of 2017?

Clearly this is not worthy of a good text editor, nor of a good platform citizen.

I now face the fun question of whether I simply go back to Sublime text for non-code text editing, or if I should try some other more focused Markdown editor. Since Code will stay around for, well, code, my other editor definitely does not need all of the power Sublime provides. Tips are welcome!

Now, perhaps I should configure my shell aliases a bit more?

November 27, 2021

Macbook prose

I do actually miss one thing about the touch bar:

The animated arrow when touch ID is active.

It was a clear indicator even in the corner of my eye, and without it I somehow find myself taking a breath longer to realize I am supposed to authenticate with my finger.

Actually, I think that sums up everything I miss about the 2016 Macbook pro, which was my previous work computer. It served me very well for a long time, but the 2021 Macbook pro is such a comprehensive and huge improvement that there is nothing to miss anywhere.

I was on Zoom for a couple of hours, running on battery, unintentionally leaving my whole development environment running in the background. This machine absolutely did not care. The machine was cool, the battery almost full. Oh, and the fans were not only silent, they were actually completely turned off the entire time.

This is clearly unreasonable for a powerful work machine. But it just does it. Handles any task with understated power. And it looks and sounds great while doing so. Build times for our C++ code is halved, but the feeling of power and flow during my day to day web development is probably what will be the more important thing in the long run. It gives the same feeling - only more so - as my Mac mini: the machine just sits there quietly, housing the power to do anything I ask without it seeming the least bit taxing.

Oh yes, all this is also while taking a step down in size. My 2016 machine was of the 15-inch size, while this one is 14. Cool things come in small packages.

Looks, sounds, and feels

I was not sold on the look of the new Macbook pros when I just saw them in photos and videos. Handling one in person, I think it looks great. It both feels more modern and clean, approaching "looks like a 3D rendering"-territory, and somehow reminds me of old Powerbooks at the same time. It feels nicer to hold, and is solid in a way which reminds me of something I can not quite place.

The notch exists, and that is the extent of problems it has caused me. The eye tends to ignore it in favour of the outrageously good screen stretching out below. Sharp, bright, and beautiful. That impression of pixels somehow being right at the surface of the screen is definitely there. And the processing thrown at the slightly better camera hardware hiding in that notch really makes a difference. Whichever room I am in looks brighter and has nicer colors on camera than it does in real life. But surely daring to step above the courageous 1080p resolution would hurt nobody?

Sound is slightly outrageous too, the speakers sound louder and better than they have any right to.

The keyboard is back to being my favourite among laptops. It could have been a candidate for overall favourite if I had not fallen into the rabbit hole of ortholinear 40% keyboards. As it is, buttons feel a bit spread out, and some things are simply less convenient than on my own layout and a smaller keyboard. I do not think I will ditch using an external keyboard when the laptop is in desk mode with monitor and everything else connected, but I will happily use this keyboard on the move.

An unexpected nice little detail since my last keyboard: the fn key now doubles as a globe key, which I can tap to bring up the emoji picker anywhere. Much nicer than the regular keyboard shortcut I somehow forget all the time.

Starting fresh

I decided to set this machine up from scratch rather than migrating things from my previous one. I do like to keep things convenient, and so usually go for the migration assistant. But since I was moving both machines and architechture at the same time, it felt even more appropriate not to bring a bunch of baggage along.

It occured to me that I should create a list of large and small things I do when setting up a new computer, and possibly a separate list for home and work. There are always things I realize over time, things which would be very quick to rattle off all at once if I just had a list of them.

On the other hand, I do enjoy starting fresh and re-evaluating things here and there as I go. For example, I have only installed Visual studio code on this machine, rather than using it and Sublime text for different purposes. I have kept Spotlight on its default cmd-space keyboard shortcut rather than ctrl-space where I had it before. I did not blindly copy my whole Zsh configuration file over, and while I have copied a few things and still miss a few more I definitely have not missed or even understood everything in the old file.

Another bonus of starting fresh: rather than get packages installed for Python 2, I finally did the minimal work (thanks, 2to3!) to upgrade the script I use to build this site to Python 3.

Laptop versus desk

But how will I use it?

A wonderful small package which encourages being on the move, working in different places and positions, and so on. But my desk setup provides such better ergonomics, which unfortunately negate not only the advantages of compactness, but also many of the other improvements. I have a laptop begging to be used as a great laptop, but chances are I will ignore that most of the time. Sad in one way, truly the best of worlds in another. And it probably will make me change up my work position and location more often, which is also a plus. In the little more than a week since getting this machine, I have already spent a lot more computing time away from my desk than in a long while. Many moments can be computing moments when the nicest and most powerful computer in your life also happens to fit on your lap.

October 23, 2021

The whirlwind of autum

The weeks are too short, the mornings too dark. On the other hand, the colours out there are great, and we are getting some of that autumn air and sunligt I love so much.

And, of course, that classic autum feeling of slightly too many things going on at once. I am fortunate that pretty much all of them are good, but I still need to get better at finding moments to breathe.

I am prodding my personal productivity system rather hard at the edges as well, feeling there should be more I can do in various ways to feel more on top of things, and hopefully also more relaxed as a result. I keep thinking about doing a Kodsnack episode about it, but I have not yet found more people interested in discussing the topic. I might actually do a solo episode, because I think I can take a while to go through it all, and I think I would get a lot out of it just from talking out loud. (Listeners will hopefully get something out of it too, and if they do not I trust them to tell me what I should do differently the next time.)


Townscaper town Townscaper town

I discovered Townscaper sometime early last week. Developer Oskar Stålberg describes it as more of a toy than a game, and I can wholeheartedly agre with that while also stating that it is the most fun and relaxing game I have played in a long while.

How much do I like it? So much that the day it became available on IOS (when I discovered the game it was only available on Steam and Switch) I sent it as a gift to three people, getting extremely enthusiastic responses back from all of them within minutes.

I also happened to mention it in an episode of Kodsnack in such a way some listeners jokingly (I hope) wondered if I was getting paid.

So, what do you actually do in Townscaper? You place down blocks in the sea. A block at sea level becomes ground, a block on top of another block becomes a building. You can pick from a nice range of pastel colors for your building blocks.

In a way, that is all there is to it.

All the rest is details. Details which make it the wonderful experience it is. The main source of discovery and wonder is how blocks affect eachother. Contents of adjacent blocks affect how a new block appears. As a basic case, if you place two blocks of the same colour next to eachother you get a single building two blocks wide. However, if they have different colours you will get two one-block buildings very close together. Another basic case is that a building one block wide will have a slanted roof, while wider buildings get a flat roof, ready to become a courtyard for higher buildings.

It goes on like that, with a huge variety of details to create, all based on what exactly surrounds the block you just placed. There are posts out there trying to map all the possibilities, and I would not be surprised if there are still undiscovered ones.

The screen space of an Ipad is of course great for taking in more of your city, but it works surprisingly well on the Iphone's much more limited space too. Which means I never have a reason to reload random web pages or get stuck in Twitter whenever I have downtime. Now I can relax and place a few blocks instead, trying to get more birds to appear, create a medieval town center, or what have you.

Autumn needs more like this.

October 12, 2021

Ramvärk - bekämpa stressen?

Länklista och annan rolig(?) information för mitt snack om Javascript på Plushögskolan i Göteborg den 12 oktober 2021.



September 11, 2021

Of USB hubs and 4K screens

I have never had any luck with USB hubs. There is always a letdown of one kind or another, where connecting that one last perhipheral suddenly seems to break everything, either all the time or - almost worse and far more commonly - at irregular and frustrating times.

Despite this, I am giving a USB hub another go right now. Motivated in no small part by the fact that it comes with an attached 4K monitor.

Behold the vastness of space and the jungle of dangling cables.

4K monitor on arm, connected to Mac mini 4K monitor on arm, connected to Mac mini

Not very obvious from this rather messy photo is the fact that a single cable is all that is connecting the monitor and all my peripherals to my computer. And moving that one cable is all I need to connect all the same devices to my work laptop. And that cable also charges the laptop.

(Which is also why the Magic trackpad is wired. I have never had any luck whatsoever trying to efficiently move it between machines when it's not connected with a wire.)

I have only used this solution for a couple of days, but I have already had one occasion where I needed to unplug and re-plug in a different port to get the keyboard to work. Time will tell how many such situations will occur during a standard work week, and it will probably make the difference between a glorious one-cable lifestyle and one full of boring old hubs and extra cables.

What about the actual monitor then?

Oh, I like it. This is the first time I have had a desktop monitor capable of retina display modes (despite thinking about getting one ever since getting my retina Macbook in 2015). Being the same brand (Dell) and size as my previous monitor, getting it in place was completely uneventful, and the setting my Mac picked made everything roughly the same size as before, only that much sharper and smoother.

All nice, no surprises. Happy ever after.

The big surprise this far has been discovering that I can, in fact, work quite comfortably in actual 4K resolution. I expected a case of "Wow, look at all this space where text is way too small, not let us go back and get actual work done", but with some care paid to desk setup I find it completely useful.

I knew from the start that podcast editing would probably work very nicely. When I edit, I benefit from every single horizontal pixel I can get, I do not need to read very much text, and it is great to be able to fit show notes and a browser below the editing window at the same time. Being able to do this with minimal to no overlap between the various windows feels a lot nicer and smoother than tabbing and clicking around and having various things constantly jump to the front covering everything else.

Having the monitor on a flexible arm has been key, because I really need the right height and distance from my eyes to work comfortably in 4K. Once I found the sweet spot, I set the work laptop to screen mirroring mode optimized for the monitor, turned off the builtin screen, and spent the whole day working this way. (I do not understand people who work with a docked laptop with the lid closed. Not the way the fans run in this one even when the lid is open.)

My standard work setup before has been to have a browser window on the left half of the screen and the developer tools on the right side. Now, that just looks too large, I have space for another column if you will, and I am not even sure I want or need them to cover the full height of the screen either.

Perhaps this is how I get into tiling window managers? It does feel like this addition of space makes a lot of my previous window placement and management go out the window.

(I switched down to 1440p-equivalent resolution just now. Wow, was everything always this large and chunky? Where did my oceans of space go?)