The Librem 5 phone is still at an early stage

When I learned that Purism was going to develop a privacy respecting and security focused smart phone, I was immediately very excited. So far the only real open source phone was the OpenMoko, and that was almost a decade ago. I ordered one as soon as they opened the pre-orders. A quick look in my Bitcoin wallet revealed that I paid the phone pre-order on Aug 24th 2017. Of course I knew that it would take a while, and that problems are to be expected, which result in later deliveries. When they finally prepared for shipping, they asked everyone for their preferred batch. They warned that early batches would be not as flush as later iterations, and that the software was still a work in progress. Having waited for so long, I was eager to get it as soon as possible. Using an OpenMoko and later Ubuntu Touch device as my main phone, I gathered some experience with unfinished products. A solid base is more important to me than the finished product.
To my knowledge it is the only phone that separates the main CPU from the base band (correction in the comments). Like the Purism notebooks, it has hardware kill switches. One for wifi/bluetooth, one for camera/microphone, and one for the cellular modem. This makes it the only phone on the market where the user is in control. It allows the owner to own the phone instead of Google/Apple in combination with the phone company. In today’s economy, this is a very important development. Modern phones track their users in so many ways that hey have become golden hobbles. This is the main concern with Android, but even Apple is not without doubts in this area. The main issue I have with iOS is that it patronizes its users. If you don’t want neither of these evils, then you cannot just walk into the next phone store and expect to find something. Devices that came installed with Ubuntu Touch have sold out a long time ago. Purism describe their phone as:

hardware and software that treats you like a person and not a commodity to be exploited for profit

Last Friday, the waiting was finally over, and I received my Librem 5.
The first impression when unpacking was, that it is thick and heavy. In fact it is so thick that my kids make fun of me. The build quality is a lot better than I expected after the warnings about the early batches.
The on-off button doesn’t always work reliably, so I first charged it like the manual suggested. It is quite quick to boot. When I can’t get it to start with the on/off button, I usually open the device, and remove the battery for a moment. This always makes it boot reliably. Did I mention that it boots really fast?
Here is another report with unboxing pictures, so that I don’t have to make the pictures myself.
Switching apps and general usage of the phone OS makes a good impression. Not as good as current ubports, but a lot better than OpenMoko in its best days.

Wifi and bluetooth

Unfortunately the phone froze during the initial setup when trying to connect to the office wifi. After a reboot, I removed the wifi in the settings, and connected again. This time it appeared to connect, but it didn’t get an IP address, and thus I was unable to fetch anything from the internet. At home, connecting to the wifi worked as easy as with every other device.
I talked to a sysadmin, and he told me there is nothing special with the company wifi. But he told me that the signal strength is not great everywhere. So I went straight to the physical wifi router. In close proximity, the phone connected successfully, and I was able to browse the web. This is probably the reason there was something about antenna optimization in the description of a later batch.
The bluetooth configuration doesn’t work at all. But the phone is discoverable, and when another device wants to pair, it displays the code to compare. The other device then reports success. But so far I was not able to make use of bluetooth with the device. Bluetooth audio is one of the sore points with my current ubports phone. It used to work perfectly for a long time. But then I got an update last winter that crippled bluetooth functionality. For almost a year already, I could receive calls in the car, but after one second the audio connection breaks every time. It was one of my biggest hopes that bluetooth hands free in the car would work out of the box with the Librem 5.
I haven’t tested mobile data connection yet. This is because I rarely buy mobile data. I have wifi at most places I go. My car has an internet connection and a browser which is enough for on the way. The only time really I need mobile data is when I want to pay with Bitcoin in a restaurant, and no friend is with me who can set up an access point on his phone.

Text messages

Sending a text message worked on the first try. Only the integration with the address book still needs to be improved. Speaking of the address book, I haven’t found out yet how to synchronize or import my contacts.
So far I didn’t receive any text messages. I strongly suspect that at least some should have come my way in the last couple of days. I tried testing it myself with LnSms, but it didn’t arrive. This is possibly due to a bug with non numeric senders. But that I didn’t receive regular text messages is bothering me. A friend sent some to me for testing, and none arrived.

Phone

Even before I wanted to place a call, I read in the forum that there is a problem with audio routing. I didn’t even get that far. I cannot initiate a call, because below the dial buttons there is a message warning me that there is no voice-capable modem. Somewhere in the bug tracker I found a post that claimed that it should be possible to work around this by killing the cally app five times in a row. That didn’t work for me. So if this smart phone is no phone yet, I hope that it is at least smart 😉

Browser

It is not the best browser that exists for phones, but it works good enough for everything I tried so far. For sure it is better than the browser in the Tesla.

Settings

The settings pages look very familiar. In fact they are the same as in any modern Gnome desktop operating system. Some pages are too big for the screen, and some don’t make much sense for a phone, while some phone specific settings are missing. I already installed the first update, although I don’t know what it actually contained.
The audio page reveals that there are lots of audio devices. I went through them all, and clicked the test sound button, but I couldn’t hear any sound coming from the device.

Terminal

A linux smart phone needs a terminal. The Librem 5 comes with Kings Cross pre-installed. The terminal app itself looks quite good. But the virtual keyboard is lacking arrow and tab keys which are extremely helpful when working with a terminal.
I was delighted to find out that unlike with ubports, you can hack around with the actual system, and the packages seem to be apt based. I never liked click, snap or flatpack. Apt is my favorite package format.

Clock

For the first three days, after every reboot, the system date was reverted to February 2019. This rendered all TLS certificates issued after this date invalid. Thus preventing me from upgrading the system until I manually fixed the date every time. I am not sure what I did yesterday, but I suspect that I re-enabled automatic time synchronization just AFTER correcting the date. Since then, the system time is correct IF the phone has an internet connection. It is not yet synchronized from the cell phone network, or preserved across reboots.
For the last 20 years I used my phone to wake me up in the morning. Some phones also worked when switched of, while others had to be enabled to reliably wake me up. In the settings of the Librem 5, I can set multiple alarm clocks, and specify how to repeat and on which days of the week. So far so good, this is on par with most phones. Problem is, when the time comes, no sound emits from the device, and not even a reminder is visible on the screen.

Battery life

Whether the screen is on or off doesn’t seem to make a difference. The device gets very, very hot. It is no surprise that the battery doesn’t last very long. It doesn’t even last an hour. So I just have to switch the phone off while it is not being used and not plugged in. People at purism are working to tweak the kernel to dial down the frequency, switch off cores, and put the CPU to sleep when not in use. I hope they assign this issue a high priority.
Charging time when the phone it is turned off is ok. But when it is turned on, I don’t really know if it is slowly charging or slowly discharging. That is with the provided charger. Be careful where you plug in the phone for charging!
When I plug in the phone to my notebook, the notebook often looses internet connectivity. I didn’t investigate why yet. Maybe it adds another connection and assigns it priority in the routing table. I will try with an USB condom and see how that goes…. Indeed, no problem so far if I use an USB condom.
When I plug in the phone to the USB ports in the car, I often get a warning on the dash that there is a problem with the touch screen. The big screen in the middle of the car still updates, but it no longer processes touch inputs. I then have to unplug the phone and reboot the MCU. I’m not sure if the phone registers as an HDI device, draws too much power or interferes in another way.

Apps

The phone comes with the following apps pre installed: phone, messages, browser, contacts, clock, settings, help, terminal, software, text editor
Anything can be installed from the software app or at the command line from the apt repository, but so far I have mostly installed command line applications. I suspect most regular desktop applications don’t behave well on a phone. I am not aware of a list of applications that run well on phones. And I don’t think there are a lot of apps that were developed specifically for this device other than the apps from Purism themselves.
As a test I installed my favorite desktop Bitcoin wallet: Electrum. Unfortunately it didn’t start. At the commandline I saw an error about something missing to bridge Qt5 to Wayland. So far I didn’t investigate much further.
After using ubports for the longest time, I am used to most apps not being available to me, so the whole app thing is no big deal for me.
What I miss most on my current ubports phone is a decent Bitcoin wallet. As long as there is none, at least a qr code reader would be cool. This would be necessary if I want to use a web based wallet.

Conclusion

I hate to say it, but at the current state, this phone is even less usable than both my previous linux phones in their initial condition. The previous phones improved quickly and got more or less usable. I abandoned the OpenMoko after half a year, because it was just not reliable enough as a phone, especially the audio in calls. The Ubuntu Touch phone on the other hand has been my daily driver for almost five years.
Maybe I am too optimistic in wanting to use the Librem 5 as my main and only phone from the start. Lets see how things progress from here… With some software updates I hope it will become the phone that I want to use for the next five years.
I hope I didn’t discourage anybody from ordering a Librem 5. If you want a phone that preserves your dignity, this is pretty much the only option at the moment. And I am sure it will improve.

Flying AdHoc Network

The first time I heard about FANET was at a gathering of some paragliding friends last year. They mentioned that they can display each others position on their flight computers. While that sounds cool, I don’t often get to fly cross country any more. Thus this feature was not of particular interest to me. Then some months ago I read an article about the Skytraxx 3.0 in a paragliding magazine. It was mainly focused on the builtin database of aerial obstacles, namely dangerous cables. But it also mentioned that weather stations could broadcast wind information on FANET, which the flight computer would then display in real time. Now that was more interesting to me. The part I like the most about the FANET technology is that it is an open LoRa mesh network. I watched a video where the developer explained that it is even possible to transmit landing procedures based on wind direction to be displayed on the flight computer. Further pilots can send messages to each other, and change the mode from “flying” to “retrieve car” or “need a ride”. All of this together was too much to ignore.
While FANET was developed by Skytraxx, it is an open protocol, and other companies started including support for it in their devices. The Skytraxx devices that come with FANET, also include FLARM. FLARM started as collision avoidance system for sailplanes. But in the meantime, most light aircraft are equipped. Devices for paragliders only transmit to FLARM. They are unlikely to crash into one another due to the slow speed. But by transmitting their position, faster aircraft can be warned soon enough about their presence. Like FlightRadar for big airplanes there is GliderNet based on FLARM and SkyNet based on FANET. These sites are fed by ground stations that decode the signals broadcast by the aircraft. All you have to do in order to appear on these sites, is register with the Open Glider Network. If you register in addition with LiveTrack24 and link your OGN registration (the FLARM id), then your flights are automatically archived. What I like most about this, is that I can give the URL to my beloved ones. If I’m not home in time, they can check if I am still airborne, and where my last recorded position was. So in the improbable case of an accident, they could send search and rescue in the right direction.

Technical inspection with the Tesla

Cars have to go to the technical inspection every second year in Switzerland. New ones are exempt from this for the first five years. Now that my Model S is closing in on becoming six years old next month, I got the invitation to bring it in for inspection. Usually with my old ICE cars, I would visit the mechanic beforehand to bring everything in order and to wash the engine. The Tesla has no dirty engine to wash, and was in service last July. So I completely skipped the preparation part.
As usual, the expert performed a short test drive with hard braking. Then followed the indoor inspection. Testing brakes, suspension and lights was as usual. But that was it already. He admitted that he didn’t have much training for Teslas. His manual seemed to indicate that the parking brake was mechanical, while I am convinced it is electronically activated. So he tried to spot the cable. But we were unable to figure out which way it was, because everything is so well hidden behind covers. He said that the lower part of the car looked like from formula one, and wanted to know what material the shield of the battery was made of. He did not have a single complaint, and was done in less than 15 minutes. Wow, I never had a car before that was through the inspection so quickly.

So now is a good time to do some recap. I had the car now for three months short of three years. During this time, I did the following to it:
* Added 95’000 km to the odometer (essentially doubled it)
* Charged 19’208 kWh
* Paid CHF 2’082.5 for electricity
* Paid CHF 63.5 for parking that was only necessary for charging
* Bought three sets of new tires, that I paid all with Bitcoin

Here is some statistic about where I charge:

* 65% at home (typ2 16kWh)
* 15% superchargers
* 13% typ2 22kWh. Probably the lions share of this is the public charger near my in-law’s place, but it also includes Tesla destination chargers and most public chargers in general.
* 2% Chademo (50 kW) and CCS (150 kW)

Given that only 2% was Chademo and CCS together it seems silly that I bought both adapters that cost together close to CHF 1’000. But it was mainly about peace of mind, being sure I can charge everywhere. During holiday trips each one of them proved invaluable. Even if I have an insurance that covers the cost for towing, it would be very inconvenient to get stranded, especially far away from home.

I had a couple of repairs:
* Two xenon headlight bulbs replaced
* One 12V battery replaced
* One door handle replaced with newer version (known problem with the cable to the micro switches in the first revision)
* Tire pressure monitor system replaced with newer version.
* Front brake disks and pads replaced. Was damaged from under usage due to recuperation.
* One electric motor replaced under warranty. It worked still fine, but it was not completely silent any more.
* Replaced all lug nuts, because somebody damaged them using a wrong tool when changing tires.

In total, I paid something more than CHF 4’000 for all the repairs.

When a product is better than the description

When I was a kid I liked wrist watches from Casio. I had one with a calculator, one with an address database, one with an infrared remote control and one with an altimeter. But for the last 25 years I didn’t wear one. I don’t like to wrap anything around my wrist. And since I carry a phone, I have a way to find out what time it is.
When friends and neighbors started wearing fitness trackers, I thought I don’t need that. When I went running, I did it for my personal fitness, not to compare to somebody else. And I can care about my fitness without a device telling me to walk some more before going to bed. When my wive wanted to gift me a step counter for my birthday a couple of years ago, my response was: thanks, but no thanks. I have no use for a step counter.
Some times I brought my phone when I went running to record the GPS track just to try. Some co-workers upload all their activity to Strava, and claim “if it’s not on Strava, it didn’t happen”. Not so for me.
Since I started carrying my ultra light paraglider for run and fly, I took the phone with me more often. In the backpack it disturbs less than in the shirt. The main reason for carrying the phone was to be able to call for help in an emergency. And when I brought the phone with me anyway, I could just as well run the tracker app on it. But unfortunately it didn’t work very reliably. When the screen was off, it stopped tracking, and when the screen was on, it often registered fingers that weren’t there. So it happened often that it stopped tracking after a while, or deleted the track entirely. Sometimes I had a ton of apps open after running and I didn’t know what else happened to my phone. But still, with the few tracks that recorded at least the uphill running part, I could see my progress on that segment. That turned out to be more interesting than I anticipated.
So when my wife recently wanted ideas for my birthday, I told her “a cheap wristwatch with GPS tracker, that works without a crappy lock-in smartphone app”. My absolute nightmare is to have a closed source device that tracks my every move, where I have no control over the data it collects. Worst of all, it would become useless when the manufacturer decided to stop maintaining the app. I don’t want devices with planned obsolescence. Of course I had to do the research myself. On the product page they only mentioned their iOS and Android apps, which are of no use to me. I noticed a while ago, that there are some packages in the debian repo for Garmin Forerunner devices. Further research brought me to quite complicated methods to get the data from these watches. But then I found a page that stated that when you plug in the watch with its USB cable to a computer, it mounts a filesystem and you can just copy the activity files. If it is really that easy, then I really don’t understand all the fuss. Everything seemed to indicate that all Forerunner watches come with a USB cable for charging the device that also acts as a data cable. It is beyond me why they don’t mention that explicitly on the product page. So, for my purposes a relatively cheap Forerunner 30 or 35 should be just fine.
And so I got one for my birthday from my wive. It even has a heart rate sensor that I wouldn’t need. And indeed, just plugging it in with the USB cable, I can grab the fit files and either upload it directly to Strava, or convert it to a more common format using gpsbabel.

Driving around the adriatic sea

This years summer holiday we spent in Korfu, Greece. At first we talked about Croatia, when somebody came up with the idea to go farther south to Greece.
Lets begin with the important facts. This time not as accurate as for the trip to Norway, since I deactivated app access a while ago, which allowed to automatically collect all the data in the past.
Duration: 13 days
Distance covered: 4’100 km
Electricity charged: 850 kWh
Waiting time for charges: 3 hours
Cost for charges: EUR 34 + tips
Our route on a map
All hotels except the holiday house on Corfu booked with CheapAir and paid with Bitcoin
Like the last few years, a key criteria was that we didn’t want to spew big amounts of CO2 and accompanying toxic gasses into the atmosphere. Thus we went again with our electric car. On the way to Corfu I drove the Balcan route. To make the trip home shorter, we took a fairy to Italy. Not only are the roads better in Italy, but also the charging infrastructure is more developed.
It was going to be the first time for us leaving the comfort of the Superchargers. There are some stations planned for the lower Balcan, but no dates are provided yet.
As you can see when comparing the above numbers to the trip to Norway, this time we had some waiting times for charging the car. It had a couple of reasons as you will see when reading through. In general, when I write about a short stop at a Supercharger, that is for coffee or ice cream and toilet. A longer stop at a Supercharger usually means lunch or dinner. These types of breaks don’t count towards the “waiting time for charges” as there is no waiting involved. With waiting times I mean times that were not necessary if it was not for charging. Not all of the waiting was strictly necessary to reach the next destination. But in countries without established charging infrastructure, I always wanted to have some reserve in the battery. You never know if the next planned charge really works out. This is in stark contrast to the normal use of Superchargers, which always work reliably in my experience. With everything else, there is always some risk involved. Thus on our trip I always had a plan B and a plan C.
I love electric road trips, but unfortunately not everybody in the family does. The compromise was to spend a full week stationary in a holiday house on Corfu island. The road trip through the Balcan was a mere means to get there. My wive wanted to have all the hotels on the way booked in advance. The one time we had difficulty finding accommodation in Norway was too stressful for her.

day 1: Driving to Croatia

We started very early in the morning, hoping to reach our destination in the early afternoon. We made it around Milano before the morning rush hour, and our first stop was at the Supercharger in Brescia. We were so early, the shopping mall next to it was still closed. Thus our plan of having breakfast there didn’t play out. So we had some breakfast from our food reserves in the Tesla lounge. We made a short (coffee and toilet) stop at the Supercharger next to Venice. The next stop was already at the Supercharger in Slowenia. Again, our plan of having lunch there didn’t play out, because there was no restaurant nearby, only a gas station shop. So, we drove to a restaurant with a destination charger that was close to our route. It turned out to be a very nice restaurant. The food was delicious, and the view over the sea marvelous. Now the battery had more than enough energy to reach the Plitvice Holiday Resort. We didn’t know that for the tiny strip of highway in Slowenia we were supposed to buy a vignette. And promptly two policemen imposed a EUR 150 fine on us. Yes, the Swiss police also hands out fines to tourists who drive on the highway without a vignette, but the signs are hard to miss upon entering Switzerland. While we didn’t see anything when entering Slowenia. Avoiding the highway would probably not even have been a time penalty, if I knew about this. On the way to Grabovac, the navigation system took us through single lane back country roads. Once even on a dirt road which turned out to be an error. I booked a tree house for the night, and it was the absolute highlight for our boys. The resort has a pictogram for E.V. charging on the website, and when I asked, they told me that I don’t have to reserve a charging spot, and that it will be all fine. When we arrived, I realized that there was no special infrastructure for charging cars, instead I could connect to one of the power outlets, that are all over the camp ground. Because the fuse constantly blew, I had to dial down all the way to 7Amp (1.6kW).

day 2: Plitvice lakes

We spent all morning in the tree house and the resort. It was a dream come true for the boys. At the bottom of the tree house there was a trampoline atop of a small artificial river. The river ended in a small artificial lake that was surrounded by nice bungalows. In the afternoon, we visited the Plitvice Lakes. It is one of UNESCOs oldest national parks. The 16 lakes and numerous waterfalls are a must see! In the evening we drove to Zadar. I didn’t care to book an accommodation with charging, because the next Supercharger is so close. We visited the old town where the car charged on a free station while we had dinner.

day 3: Dubrovnik and driving to Montenegro

We made short stops at all the Superchargers we crossed: Zadar, Split and Gravorac. Then we topped up the Battery in the parking, while visiting the old town of Dubrovnik. We knew it must look cool, if they filmed part of “Game of Thrones” there. But it was almost like Venice, just without canals. After leaving Croatia, we drove through most of Montenegro while it was already dark. But at least we got to see some of its beauty in daylight and during dawn. Next time, I would plan more time for Montenegro. I didn’t know the country, and my wive was worried about the cleanliness, so I booked a better hotel than we would usually choose. The prices are generally cheaper in Montenegro, thus we got a gigantic suite with two bedrooms, two bathrooms and a big kitchen/living room in a spa hotel for the same price as we got a simple room or apartment in other places. After the last Supercharger was in Croatia, it was important that we can charge the car full over the night. Thus I booked only after making sure to get three phase power. The owner was very well prepared and helpful. I am also thankful to Benedikt who sent me an old Yugoslavian plug which is still common in Montenegro.

day 4: Driving through Albania

Before leaving Ulcinj, the boys took a swim in the hotel pool. Albania was the country where part of our family didn’t look forward to. It is really different to the other countries we visited. It has nice places, but you also see a lot of dirt and garbage lying around everywhere. Especially the suburbs of Tirana looked grim. This was close to the industrial area where we visited the Volkswagen importer which has a CCS charging station. My car got the CCS retrofit only weeks before our trip. CCS is normally used for high power fast charging of up to 150kW and potentially more in the future. So I was a little bit disappointed when I found out that this CCS station only delivers 22kW. At least the employees were very friendly and helpful. Unfortunately there was no good restaurant nearby, so we had our lunch again from our food reserves. Albania has highways that are free to use. But they are different from what we are used to. Every ten minutes or so, there is a crossing where it narrows to one lane and the speed is limited to 40km/h. And every time you slow down in concert with 10 other cars, there is one asshole who crosses all the double markings on the road and passes everyone else with 150km/h, risking fatalities if another car crossed the road. This sort of extreme reckless driving was present everywhere in Albania. I had to brake very hard multiple times to prevent frontal crashes on curvy roads where some idiot drove on the wrong lane in front of a curve with zero visibility. This really tainted my image of Albanians even though the people I had direct contact with, were really nice and friendly.
When I missed a fork, because the road looked like a dirt road and I thought there must be a better road ahead, we came to a nice beach and took a short break. After that, the navigation system told me to continue along the dirt road to the other end of the beach. To my astonishment, the road leading up to the main road was not paved, and in a very bad condition. I put the air suspension to “very high”, but still had to be very careful not to scratch the bottom of the car at the rocks. This was really at the border of what I want to put my car through. But after you drove a bad road for a while and think that it has to improve any moment, it is hard to turn around and go back.
We arrived at the Palazzine Hotel in Vlore in the late afternoon. Vlore is by far the nicest place in Albania that we saw. It has a long beach full of hotels and restaurants. It is relatively clean, not as clean as in western Europe, but cleaner than the rest of the country. For about the same price we got a nice suite again. Despite the reassurances when booking and a week before the trip, the receptionist didn’t know anything about car charging. But she called a house keeper and a cook. They were extremely helpful, and didn’t stop searching until they found a suitable three phase plug in the upper kitchen. With my 10 meter extension cord it was just enough to reach the charging port of the car. The hotel has a beautiful terrace about 20 meters above the sea. From there we witnessed a scenic sunset while having a delicious and surprisingly cheap dinner.

day 5: Reaching Corfu

Shortly after leaving Vlore, we drove up a mountain pass road. On the way up, the forest looked almost like home to us. But the way down on the other side had totally different vegetation. It was a lot drier and steeper, going straight to the sea. There was a paragliding spot, but we didn’t have time. From there we could already see Corfu in the distance. Even if the straight line distance was not a lot, driving the curvy roads along the coast all the way to Igoumenitsa took a long time. Because we didn’t wand to wait an hour for the fairy which goes to the south of Corfu, we took the one to the north which left earlier. Only on the boat we realized how much longer this detour would take. Nonetheless we arrived at our holiday house shortly before dawn.

A week in Corfu

We spent a week in Corfu, visiting different beaches, the highest mountain, a castle built for Sissi and the main city. I couldn’t fly my paragllider, because I drove to the wrong town which sounded so similar. But I took some basic lessons for kite surfing. The feel for the wing I gained from paragliding helped a lot. But standing up on the board was not so easy for me. At the premise we had access to a regular household plug for charging the car. Since our trips on the island were usually not that long, the slow charging speed was enough.

Fairy to Brindisi

For the trip back home we took a fairy to Italy. This reduced our travel time considerably. I was told to be one hour before departure at the port, where I would get the real ticket in exchange for the voucher. At the entrance of the harbor, we asked where we would get that ticket, and they sent us back into the city. After some more misinformation, we barely made it onto the ship in time. I took the shortest fairy route because I wanted to produce the least amount of CO2. But we were still disgusted to see the dirty air exiting the exhaust of the fairy boat. My wive didn’t want to sleep on the boat, so we spent an extended afternoon looking at the calm sea, and trying to find food on a boat with only closed restaurants. Arriving in Brindisi, we drove until our hotel near Pescara with a dinner stop at the Cerignola Supercharger.

Back home

Like the first day, the last one of our holiday was a very long one with a lot of driving and traffic jams. We charged at the following Superchargers: Pescara, Fano, Modena, Melide. This time eating while charging worked out again as it usually does. When we approached Altdorf in the middle of the night, we discovered that the Axenstrasse is closed, and we thus had to drive all around lake Lucerne, adding yet another hour.

Navigation

I was curious about where the car would have internet connectivity, and how far the offline maps of the navigation system would reach. My guess was that connectivity would only be available in countries where Tesla has Superchargers, namely only as far as Croatia. I was almost correct. Luckily for us the car had connectivity also in Greece. In Montenegro and Albania the car had no Internet, leaving us with only the offline maps and without traffic information nor music streaming. No big deal, really. If it were not for a little problem we discovered when driving through Montenegro in the dark. As soon as the screen switched to night mode after the sun went down, the offline maps didn’t display any information other than the current route. At least it correctly recalculated the route when I missed a fork. A bit more context would be helpful, though.

Energy consumption vs time saving

There is a construction site at the feeway exit for my work place. Because of that, it takes about ten minutes more to commute. That triggered me to drive along the other site of lake Zug. It is the shorter route. But since it is a small road that goes through all the villages, it usually takes about ten minutes longer. What is more interesting, is the energy consumption.
On the freeway route the car usually consumes between 15 and 23 kWh per daily commute. The actual value depends mainly on temperature and weather conditions. The highest consumption values are with freezing temperatures and snow storms. This results in bad aero-dynamics and high rolling resistance combined with energy used for heating the cabin.
On the alternative route the car only consumed about 11kWh the other day. That was with moderate temperature and a short part of freeway. And this was still with winter tires, which usually lead to higher consumption.
The massive difference is not explained by the shorter distance, but by the slower speed. Hence by driving the shorter route, I could reduce the energy cost per daily commute from an average CHF 2.7 to CHF 1.7 but is this worth enlarging the commute from 2×30 to 2×40 minutes? Not really!
Oh and BTW, the daily commute by train would be CHF 25 and take on the order of 2×50 minutes.

Bitcoin Advanced Course by 21lectures

Last week I attended a Bitcoin Advanced Course that was hosted by 21lectures. Lucas who is also the president of the Bitcoin Association Switzerland initially wanted Jimmy Song to teach his Bitcoin courses also in Switzerland. But when that didn’t work out, he decided to build the classes himself, with the help of great quality teachers and developers from the local community.
To guarantee fruitful interaction, the groups are kept small. But when I arrived, the group was even smaller than I expected. What surprised me even more, was that a good portion of the students came to Zurich from other countries especially for this course.
The biggest part of the course was taught by James Chiang. He is preparing a bigger course that he will host online. It consisted of theory and practical exercises.
Setting up the environment for the exercises proved to be almost as challenging as the hardcore crypto theory.
For me, the most interesting part was the last day, which was about the Lightning Network. As it is still new technology that is in heavy development, there is not a lot of learning material around. All the more valuable was the first hand information we received from Christian Decker.
An important part of the whole experience were the lunches. Most of the times, the teachers joined, so that we could ask additional questions and have interesting discussions.
If you are interested in Bitcoin and programming, I can definitely recommend this course.

A somewhat interesting aspect was also how to get to Zurich. Downtown parking during office hours is really expensive, and there can be traffic jams. The venue was very close to the main train station. So it would appear to be reasonable to get there by train. But a return ticket for one day costs CHF 56. Lots of Swiss people have a half price card for public transport. They changed their terms a couple of years ago. I made the mistake of reading the new terms and discovered that they are really not acceptable. So I drove there by car, which cost CHF 4.15 for the electricity and CHF 36 for the parking. Still a lot, but also a lot cheaper then by train.

CppOnSea

I meant to write about CppOnSea for a while. The event is already a month in the past. So I better write down my impressions as long as I can remember anything. My comments will probably be shorter than had I written it down earlier.
Last year I learned from a podcast about a new C++ conference in Great Britain. It made a good first impression. As the details trickled in over the course of the ensuing months, I started to think it would be worth visiting.
When I asked around in the office who would join, I got only one positive answer. Reaching the venue by plane would not only be impractical, but I also didn’t really want to pollute the atmosphere. So I proposed to drive there with my electric car.
I checked the weather in advance, since what I wanted the least, was driving through a snow storm for a whole day. Exactly the night before we left, we had a good portion of fresh snow. As it was even on the highway, we made rather slow progress in the first two hours. The rest of the trip was uneventful, with the exception of having to drive over a small pass because a tunnel was closed in the Elsass. We took the tunnel below the channel. It is different than riding through the Swiss mountains on the back of a train, but not too much different. We arrived late in the evening at a nice old hotel on the cliff right next to the event hall where the conference was going to be. The breakfast was a lot better than what I remembered from previous stays in the UK.
A baroque event hall built right into the cliff served as the venue for the conference. During the breaks we had a nice view onto the sea, and sometimes we had the impression we could see France on the other side.

Opening Keynote: Oh The Humanity

The opening keynote was funny and entertaining. That is all I remember.

Postmodern immutable data structures

The speaker presented his library for immutable data structures. They enable a more functional style. It sure has something to it, but I don’t see a use case in anything that I am currently involved.

What I Talk about When I Talk about Cross Platform Development

He had a much broader scope than what I considered so far. It is interesting to know, but I don’t think I will use any of it in the foreseeable future. But it triggered me to think about using emscripten again.

Better Tools in Your Clang Toolbox: Extending clang-tidy With Your Custom Checks

I have known and sporadically used clang on linux for some years. But even though it is a great compiler I didn’t use it too much because you would have to compile everything yourself, rather than using dependencies from the apt repository. Also I knew that clang is shipped with VisualStudio, but only for cross compiling to ARM. What was new to me, is that you can also compile (but not link) regular desktop applications on Windows, with some work even MFC applications. This in turn allows the usage of clang tidy, which a good portion of this talk was about. What was also new to me, is that the MSVC compiler switch /permissive- causes VisualStudio to use a completely new compiler that is no longer built with YACC, but is much more standards compliant. This better compiler introduces breaking changes to old code. That is why we didn’t use the flag so far. But I think it would be good to slowly introduce it module by module. This way we could sanitize the codebase, and maybe later start using the clang tools.

Deconstructing Privilege

This one was in the main hall, and for all attendees. It had nothing to do with C++ or with programming per se. It was more about social interactions with minorities. I still don’t know why there was such an emphasis on this topic. But it seems to be a phenomenon at lots of IT conferences lately.

The Hitchhiker’s Guide to Faster Builds

Building the CAD I am working on can take up to an hour if I build only locally. Over the years we optimize the pre compiled headers from time to time, but also the linker takes a lot of time. So this was especially interesting for me.
The speaker ran through an extensive list of approaches to reduce build times. Lots of it was not applicable for us, or too esoteric. But one main takeaway was that I should look into union builds. He mentioned cotire to help with that. When we switched to cmake a couple of years ago, I tried to use cotire to simplify the handling of pre compiled headers, but couldn’t really get it to work. Maybe it is time to re-visit it.

Diffuse your way out of a paper bag

This one was entertaining, but I didn’t learn much from it, except for the british humor.

A linear algebra library for C++23

In a way it is surprising that C++ has no linear algebra library standardized by now. Because of this many independent libraries exist, and many companies wrote their own implementations. This could lead to the conclusion that it comes too late. But I was delighted to learn, that the proposed library mixes well with existing libraries and data structures. So we will see how much of it we end up using when it is finally released.

Sailing from 4 to 7 Cs: just keep swimming

This one was about tooling. Nothing that I think will be applicable for us.

Keynote: What Everyone Should Know About How Amazing Compilers Are

This one was informative and entertaining. He had many good examples of how amazingly good modern compilers are at optimizing our code, and work around bugs in certain CPUs. This video is worth watching even if you don’t work with C++.

How I wrecked the new glider by flying into a cable

We went skiing to Stoos lately. From time to time I went up to the Fronalpstock with the kids. Every time we were up there, I checked the conditions for paragliding. Every time, the wind was blowing from the back. Not very strong, but if it is from the wrong direction, it can be too much rather quickly.
When the day was almost over, I figured that I could also go to the Klingenstock, which is better shielded from southerly winds. When I reached the summit, there was virtually no wind at all. As the sun was already quite low, I could not spot some cables that I knew from the past. I knew I had to be especially careful.
I don’t fly at the Klingenstock very often, only once in a couple of years. The last time was with the speed wing, and I started close to the top on the west side. With the speed wing, I just glide with the skis and the glider comes up pretty quickly. I didn’t want to stretch the lines that quickly with the fragile single skin glider. That is why I descended a bit to a more flat area. I took off from there with a regular paraglider many years ago.
Now the single skin has a worse glide ratio compared to a regular glider. This is why after take off and flying straight for a while, I realized that it would get tight with clearing a small hill in front. My first reaction was to avoid it by flying left. But then I would cross the ski slope with very little ground clearance or possibly even having to land. This is not only forbidden, it can also be dangerous in some cases. So I decided to fly around the small hill on the right hand side. Thus I made a right turn of approximately 90 degrees.
And there it was. All of a sudden I saw a cable right in front of me frighteningly close. I had no time to think. Call it instinct or muscle memory, I immediately continued the right hand turn as hard as I could, to fly back to the slope. For a moment it looked almost as if I could clear the cable and perform a slope landing. But when I was only about 5 meters above ground, the upper left part of the lines connecting the glider to the harness collided with the cable. My forward movement came to a halt, and I slid down gently into the soft snow. Along the way down I could hear lines snapping and the fabric ripping. I was not injured or even hurt, but the glider looked like a wreck. I sent it for repair. But it turned out that it was a total loss. The glider was only two months old and had less than ten flights. Bad things always happen when the equipment is new! Like when I was ground handling a brand new glider 15 years ago, and a RC airplane hit it.
This was the most severe incident in my 17 years of flying with more than 2’200 flights.
In the aftermath it is always important to analyze what went wrong, and what I should have done better.
The first and most important thing is that I was not hurt. But could I have saved the glider?
To save the glider after I saw the cable, I could stall or spin it. That way I would hit the ground before the cable or slip under it. But these procedures induce a pendulum moment and/or spin movement. This is not what you want close to the ground. The risk of injuries would be way too high. In school we learned that some people overreact in this sort of situation, and involuntarily stall or spin the glider. This often results in injuries. So I am relieved that my instinct reaction was just right. I would act the same way if I had the time to fully evaluate the situation.
If my reaction was correct after the fact, what could or should I do better that it couldn’t happen in the first place?
The easiest answer would be to look out carefully for any sort of obstacles. The bad part about this, is that I actually did that.
The next would be to inform about a flying area before going there. When leaving home, I expected to fly from Fronalpstock which I know fairly well. And even if I considered flying from Klingenstock, I don’t think I would look up the map with aerial obstacles, since I was flying there before. But maybe I should.
Cables can be dangerous also for other aerial vehicles like helicopters. There are efforts to remove cables that are no longer in use. So I asked the corporation that owns the land about the cable.
In the meantime I already received the replacement, which is the exact same model of single skin paraglider. Last weekend I used the new glider for the purpose that I bought it for : run and fly. I ran halfway up the Urmiberg an flew down.

Run and fly with the XXLite2

Before I participated in the rollibock trophy in Fiesch last October, I thought my paraglider equipment was fairly lightweight. The glider is a regular Mac Para Marvel, but the Advance Lightness 2 harness is optimized for weight as the name implies, as well as the accompanying backpack. With helmet, gloves, sun glasses, flight computer and clothes, the equipment is slightly less than 14.5kg. When I started paragliding in 2002, a normal equipment was about 20kg. For reference, My tandem equipment is around 30kg, and my competition equipment also was in that ballpark.
When I looked around the participants at the rollibock, I was astonished by the small and light backpacks they had. They were literally running up the mountain. When single skin gliders were first released, it didn’t spark my interest. They were a strange appearance, and the flight characteristics looked slightly frightening to me. But a lot has improved since then. Some models have tubes along the leading edge, others from front to back. They have a lot better characteristics and performance than the first models. I started my research in the internet. Some models weight only 1kg.
Best of all, I started thinking how cool it would be to combine hill running with paragliding. I try to run once a week from Brunnen to Morschach and back. Depending on my daily condition, I make it up to the cable car, or I turn around shortly before I reach Morschach. I always prefer running uphill. Especially since I started getting cramps in my forearms on the descent, sometimes even extending from there. It only happened on longer tours, and only on the descent. After a while I found out that it was caused by dehydration, and I took detours to water sources. I didn’t want to carry anything when I go running. But carrying an ultra light paraglider is something entirely different.
So I asked the loal flying school for an Ozone XXLite 2 glider for a test flight. November is the worst month for flying in Switzerland. The weather is mostly bad with lots of fog, and most cable cars are closed for revision. When the weather was finally flyable, somebody else grabbed the wing already a couple of times. In early December, I finally got to try it. I didn’t really know what to expect. Some people I talked to, praised single skin gliders as great and fun, while others dismissed them as falling out of the sky like a stone. I completed two flights from the Rothenflue. Take off was very nice both times. With the slightest blow of light wind, you can bring it above the head and maintain it there. Also without wind it was easy to get airborne. The handling was surprisingly similar to a regular paraglider. It doesn’t flare as well as a regular wing, but it does flare somewhat. I didn’t know beforehand, but most single skin gliders apparently don’t flare at all. Apart from the handling, I was mostly interested in the performance of the glider. Of course it was not made for performance, and is far from regular gliders in that respect. The teacher from the school providing the glider told me to expect something in the range of a school glider at the time I started flying. When I checked my XCTrainer in the air, I mostly saw glide ratios between 6.5 and 7 with speeds around 35km/h. For comparison, my regular glider has a glide ratio of around 9 and a current high end comp glider is slightly above 10. The trim speed again seems to be different from other single skin gliders that apparently mostly fly less than 30km/h.
My resume after the first two flights was that the flying characteristics are good enough, and the small and ultra light package is just astonishing. In short, I ordered one on the same day. Luckily the forecasted delivery time was was much shorter than I expected.
A week after ordering, I picked up the new wing including the super light harness that I didn’t see before. Of course I bought the glider at the flying school where I can pay with Bitcoin.At home, I installed the special lightweight carabiners and the speed system. But the weather really didn’t look good. We had occasional rain and very strong wind for days. I added a ribcap and gloves to the kit. With this addition, the backpack now weights 1.8kg.
As the first chance of getting good enough weather, I went to the Zugerberg. Instead of the usual walking to the takeoff, I ran. The light backpack really doesn’t bother at all. Even with light wind from behind, the glider took off flawlessly. The gliding ratio was enough to clear the trees halfway down. When I started paragliding, some school gliders had to land before the trees here because they didn’t glide good enough. Also the landing was smooth. The only thing that was strange was the cold wind flowing around my butt. Usually it is very comfy in my cocoon harness. The equipment is packed rather quickly into the backpack, and I was ready to run up to the train. From the train of course I ran again to the car. So my first flight with the new kit was not a pure “run and fly”, but I can say that it works as I envisioned. Now I’m ready for the real “run and fly” adventures.