May 25, 2021

Lawnmower man

A year with a robot mowing the lawn.

Robot lawnmower, boldly going where no robot has gone before Robot lawnmower, boldly going where no robot has gone before

When we were blessed with a garden, it was made clear that mowing the lawn was not a thing we collectively would be spending time on. Thus, a robot lawnmower was called for. While I happened to have a friend more than happy to try and answer any questions I had, and while there were some amount of reviews and stuff out there to look at, I did not really find anything about what it is like to own and maintain a robot lawnmower, especially not over time.

Hello, I am Fredrik, and I have had a Gardena sileno something-or-other mowing my lawn for a year now.


You need one cable which surrounds your entire lawn, and which forms loops around any large objects you do not wish the mower to bump into all the time. You also need a second cable which starts from the base station and attaches to the outer loop at some distant point in the garden. The mower uses this cable both to efficiently reach the far corners, and to find its way back home when it is time to charge.

Gardena provided quite detailed instructions and manuals, which as far as I recall actually managed to answer most of my questions. Still, I am always a little nervous doing something like this where you need quite a bit of work before you know if anything works at all. Would I connect the cables poorly? Would I have accidentally damaged the cable as I placed it?

When I connected everything and plugged in power, I was dismayed to see the base station blinking in the way which indicates cable problems. Frantic cable inspections followed, but fortunately it turned out to be a really easy mistake. The connectors you use to patch the cable work by simply inserting the cable ends into holes, then pushing down a nice button-looking section to close and seal the connection. For my very first one, I had not pressed hard and evenly enough, producing a loose end. That button needs to pushed down all the way, and you can push as hard as you like. Once I did that, the system lit up and was ready to go.

The cables themselves are thin, but it seems hard to damage them without noticing. Even pulling them out of the ground works - at least with our ground, your mileage may vary and so on. I did accidentally pull one out of one of those connectors once, but I think that is the only time I have unintentionally caused a break, despite numerous dig actions and re-arrangements.

The game

One thing nobody told me when we bought the mower was that it comes packed with the game Cable hero. One might have thought that initial setup meant the end of most cable business, but no. The game has one initial phase, after which three different modes are unlocked. Switches between modes can be both sudden and planned.

The initial phase

This phase starts as soon as you finish basic setup. You have placed all the guide cables, found a suitable position for the base station, and actually got the whole thing running.

In the initial phase, the mower is actively looking for trouble.

You probably got everything in place nicely. But perhaps there is a spot on the lawn with just a bit too much elevation change (I have heard professional garden people refer to this as a "hole"). Perhaps the cable was just a tad too high off the ground in some places, where you ran out of staples and had no energy to dig it down. Or possibly, the cable ran a little close to some troublesome vegetation under a bush or something. Do not worry, the lawnmower will find those places for you. You will find it standing still, and you will have a feeling almost but not completely unlike a child on Christmas Eve as you walk over to find out what you will need to fix this time. A spare cable repair kit comes in handy.

At some point, the mower will have found all the places you missed. The initial phase will be over, and the three modes of the main game will be unlocked.

Mode 1: smooth operation

Yes, it happens. Frequently to some, more rarely to others. The mower goes about its business, finds its way back to charge, all day, many days. You become used to the lawn being set at a single height, and to the small robot quietly bumbling about, spending surprising amounts of time in a single corner yet managing to cover the whole surface eventually.

Mode 2: forced changes

Look, we have some new lawn chairs! We are building a deck! Let us plant a bush over there! That shrubbery needs to go!

Whatever happens in your garden, it now includes a step zero where you evaluate if and how it affects the lawnmower. Will you be digging where you might hit the cable? Will a new area need to be closed off from the lawnmower, or will you create new areas which should be cut? Even after the initial phase of the lawnmower cutting poorly placed cables, I have found myself patching cables surprisingly often to rearrange as needs change.

Mode 3: optimization

It might sound similar to forced changes, but if your mind has the right bent, there is a surprising amount of fun to be had here. That place where the lawnmower bumps into the patio? You could move the cable a little bit further out. That little patch of weeds under the big bush? Perhaps it would look nicer if you cut all that down and then rerouted the cable so the lawnmower covers it? Just before writing this, I cleared some ground and managed to both extend the cutting area, and eliminate a couple of corners for the mower to get stuck on at the same time. It feels dangerously satisfying.

In all phases, it has turned out much more useful than I expected to have the mower’s associated app installed. Getting a push notification whenever a new surprise occurs feels much better than finding out about it two days later, in the rain, or watching the lawn like a hawk all day.

Digging in

The lawnmower (at least ours) came with a rather big bag of staples for attaching the guide cables to the ground. There were almost enough of them for our whole garden, but I did end up buying another bag to have some spares for the inevitable changes.

If you are low on staples, the alternative is to dig. Having the cable underground is nice in many ways, the main downsides are that it is harder to find and - of course - a lot more work both initially and whenever you need to make a change. A nicely stapled cable gets covered by grass quite quickly, so you are not creating an eyesore by not digging either. (But it can get pulled by people or animals if you are unlucky. That somehow happened to us in a corner with particularly soft and muddy ground.)

Despite the downsides, I think I have dug down a lot more than half the total cable length by now. I started with a few uneven places where it took a lot of staples to get the cable properly close to the ground. Then I dug more and more whenever I was making changes anyway, and now I almost seem to have more staples in stock than when I started.

Do I like it?

Well, yes. Yes I do.

Even if it adds extra work and thought to any garden-changing activity, it is really nice to not be thinking about mowing the lawn all summer. Another major benefit occured to me as this season was starting: sound. When the neighbours started their gas-guzzling Mad Max-type monstrosities the roar filled the air like that of some ancient beast. Our little robot can tumble around on the lawn all day, and it takes a lot longer to get the job done, but it is so quiet it can actually sneak up on you.

Plus, it looks pretty cute and confused when it tries to random walk itself out of tight spots.

What could improve? More smarts, definitely. I would love to be able to provide or have the robot create a map of the garden and enable it to cut quicker and more precisely. Also, with good enough mapping, perhaps they could build a model which did not need so many darn cables …

(I am fully aware such models may even exist already. For the sake of the bank account, I refuse to research any further until the current one has worn itself down.)

May 24, 2021

Books I have read

Books and other literature I have read, in, somewhat uncertain, reverse chronological order. The list starts from the summer of 2008, and my main purpose with it is to be able to see what I have actually been reading. I do feel that I read many quite good books, but I never seem to be able to recall what I have recently read when asked for recommendations.

May 13, 2021

Coffee break

Just over two weeks ago, I had one of those bad days. One of those where I walk around at once very tired, and also kind of tense. As if I am about to fall asleep and holding my breath at the same time.

Rather than attempt to blame pressure, difficult questions turning around in my head, or other classics somewhat outside of reach for immediate action, I decided it was time for a break from coffee.

I have taken those before, but it was a long time since I last took one. If anything, I have only become a more regular coffee drinker over the years, so whenever I take a break I wonder if this will be the time I have to deal with those headaches and other withdrawal symptoms other people talk about.

The first day, I was possibly on the edge of a headache sometime in the afternoon, but the overwhelming feeling was one of relaxed tiredness. The difference to the tense tiredness of the day before was clear, as if a weight had been lifted off of my chest.

I also did not feel like having any coffee. That makes everything easier.

So I have kept going. The real surprise is not that I can do it in itself, but that I have not really felt like having a coffee at any point so far. Good coffee is pretty much a button press away at any point of any day, so if I did get the urge I could act on it instantaneously. But no, not even when making coffee for others have I felt the urge to pour myself a cup as well.

Sadly, I also have not had my regular coffee break experience of finding that coffee smells a lot better when I am not having it. I kind of enjoy that one.

I do not expect this to last forever, but perhaps my breaks will be a bit more frequent in the future?

Did you know?

It is completely okay, good even, to just not do stuff all the time.

Hard to believe how often I have to rediscover that.

Simple story

Podcast Chapters is back to being straight up for pay. Up front, no in-app unlocking of anything. My previous adjustments made no difference, so now I am back to the ways of Olde to see if sales eventually come back too. Fingers crossed, and some more improvements are being considered.

I got a very nice email from another user of the app too. Podcast creators are such a nice lot!

April 18, 2021

Stingy, with in-app purchases

When I started writing this text, I had just submitted a version of Podcast Chapters which would revert the app to be paid up-front, removing the in-app purchase.


Because, for some reason, fewer people are willing to pay to unlock a free version than are willing to pay before even trying the app. Significantly less willing, despite an experimental one-week sale. Podcast Chapters has never made a lot of money, but sales were quite steady, and that income was a great motivation to keep working on the app. Since people are unfortunately not likely to get in touch to tell me why they are not buying my app, I am left to speculate wildly about reasons.

My own thinking got as far as realizing that the purchase psychology must be a lot different for in-app purchases than for straight up paid apps. I asked around a bit and heard an interesting second-hand theory:

In short, in the Mac app store, being paid up-front and having regular updates are seen as quality markers. People who look for utility apps look at paid and free options separately, trying multiple free options before settling on one. And if a free app is limited by an in-app purchase, people are more likely to move on to check out the next free option rather than making the purchase.

Hence, Podcast Chapters made a good impression as a paid app, but fared poorly when free with a relatively expensive-looking in-app purchase required for full functionality.

Then what happened?

As I looked this text over, writing paused mid-sentence, I realized there was one rather large elephant relaxing over on the couch:

A severely limited free app is no fun.

My original reaction to the in-app purchase not selling was to lower the number of chapters you could add for free, making it darn near impossible to get a feel for using the app as intended. How was anyone supposed to get a good impression and make a fair evaluation of the app with that?

Before I go back to paid up-front, surely it is worth trying giving people a fair ability to truly use the app as intended? It is not like I need to convince a lot of people after all, a pretty modest conversion rate would easily bring sales back to what they were before. Surely, the added eyes on the app should be good for me if I just give them a fair trial version?

The end, for now

I rejected the version myself and quickly submitted a new one raising the chapter limit to a magnificent ten chapters. Suddenly, I have gone from feeling frustrated at the state of things to carefully optimistic. Perhaps this type of utility is best served as a paid up-front thing, but it must be worth experimenting a little more before settling back in familiar territory.


I think this is the first time I have sat down to write about a decision, changed my mind midway and gone in a new direction by the end. I knew already how good writing is for my thinking, but this is a new and exciting level.

March 24, 2021

A brief love letter

It started with


"Wow, I never downloaded the database for my old site! It should still be around untouched, but I have no idea when I even made a backup of it."

First discovery

Phew, the database looks intact and unchanged! As it should be, but you never know.

Second discovery

Oh look, there is a convenient export menu. And JSON is an option.


How many lines of Javascript it takes to parse that one JSON blob and generate individual HTML pages plus an index?


Operations like this make it clear how outrageously fast and powerful modern computers are. Parsing just over 6 megabytes of JSON, looping through 1810 elements, wrapping their content in the barest HTML, and writing them all plus the index to disk - using freaking Node.js - takes literally no time at all.

Moving 1811 files to trash, however, is outrageously slow by comparison, taking multiple seconds. What exactly is Macos doing there?

Anyway, great fun!