The Case of Garmin Training Center Crashing

Whenever I go running, I take my Garmin Forerunner 305 with me to track my progress (or lack thereof). It comes with a neat piece of software called Garmin Training Center which allows me to download the data recorded by the Forerunner to my PC for analysis.

The Problem

Garmin Training Center can also back up this data to a file. As I like to use OneDrive as my cloud backup, I stored that backup file on there as well. In upgrading to Windows 10, however, I had to change the location of my OneDrive folder.

The software remembers where I saved my last backup which is normally very convenient. However, that location no longer exists and when I click “Browse…” to change it, the software crashes.

The Solution

The last backup location is stored in the registry at HKEY_CURRENT_USER\SOFTWARE\Garmin\Garmin Training Center(r)\Settings in BackupFilePath. Just have that point to an existing folder and you’ll be able to create backups again. Editing that value does not even require Administrator access as it’s in the current user hive.

The version of the Garmin Training Center PC software I use is 3.6.5. According to their website and the application’s own update functionality that is the latest version available.

Upgrading to Windows 10

As a Windows enthusiast I of course installed Windows 10 on the day it came out. Here are my observations after a couple of days of use.

Start Screen

Getting Windows 10

The upgrade process itself was extremely smooth. Once Windows 10 had booted up, most things worked right out of the box. Including modern apps such as Photos and OneDrive that hadn’t functioned the day before under Windows 8.1. Curiously enough, none of the modern apps (including the Store and Edge) could access the internet, while desktop applications such as Outlook and Firefox could. Naturally, the network troubleshooter couldn’t find any issues. I assumed this was caused by my antivirus. BitDefender offered to upgrade to a Windows 10 compatible version the next morning, and I hadn’t had any connectivity issues since.

You will be missed

So the basic functionality was there: email, internet, Office etc. I was also prepared for a few things that weren’t there anymore, most notably Media Center, since that had been widely documented before. However, there have been a number of other changes that I hadn’t anticipated.

For instance, I have an SD card in my Surface Pro that I use to sync my OneDrive to. This, however, is no longer supported in Windows 10. Curiously, it hadn’t been supported in Windows 8 but was later supported in Windows 8.1. Luckily, the solution is simple: instead of assigning the SD card a drive letter, I used Disk Management to mount the volume in an empty folder (C:\Data) on my harddrive and created a “OneDrive” subfolder inside it. For some reason, OneDrive does not want to use the mounted folder C:\Data directly, but only works with the subfolder.

I also noticed that I could no longer pin applications that were located on the SD card to the task bar. This problem, too, went away after mounting the card in a folder.

Other issues

  • On the first day or so, jumplists for applications I had pinned to the taskbar (but also the most recent ones in Start Menu) where extremely sluggish, taking a second or so to show up. At some point, the stopped working altogether. After a day or so, they worked again and I haven’t had any issues since.
  • I also experienced two blue-screens since installing Windows 10. I haven’t had a chance yet to investigate them further.
  • I’m a bit annoyed by how the Alarms app was redesigned. The old design wasn’t super intuitive, but once you learned what those circle controls did, it was extremely fast to set a new timer. It takes a lot more clicks to do the same in the new design.
  • While going through Settings, I noticed that you can now set whether you write with you left or your right hand and the system will accommodate that. Unfortunately, when you set this to right-handed this means that menus will open up to the left, the opposite of what has been the behavior on all previous versions of Windows. I understand they did this so the menu would not be obscured by your hand when opening it via pen input. Still, I changed my handedness-setting to left-handed to get back the old menu behavior. It just felt wrong.

Annoying inconsistencies

First off, Windows 10 is a giant leap forward compared to Windows 8.1 when it comes to making the user experience more consistent and have modern apps work alongside desktop applications more seamlessly. Also, the Settings app is finally a usable alternative to the Control Panel and the weird two-worlds approach the start screen was using is gone.

Nonetheless, even in the redesigned parts of the Windows, there are a number of inconsistencies and usability issues that I find extremely annoying:

  • Microsoft’s own design guidelines have always insisted that in any dialog the Cancel button goes to the right. I have no idea, why they decided to violate that rule in the prompt you get when removing items from jumplists (see screenshot).
  • This is probably rarely used these days, but for desktop applications it is possible to double-click the icon in the top-left corner of an application window to close it. Unfortunately, this feature is missing from modern apps’ windows.
  • The title bar design (e.g. icon and back-arrow color and positioning) is also a bit inconsistent among desktop applications and modern apps. In some apps (such as Settings) it is also unclear where the title bar ends and where the client area begins (since they are the same color), making it more difficult be to drag the window.
  • The back arrow in Settings works totally different from back arrows in any other application (e.g. Control Panel). It simply brings you back to the start of the settings. So when you click from one settings through to the next, you won’t be taken back to the first one, as one would expect from every other application using a navigational pattern.
  • Many times, the Action Center icon and tooltip in the notification area had indicated a new notification, even though there was none when I opened it.
  • StartMenuNormally, font sizes are used to establish a visual hierarchy, i.e. text in a smaller font is subordinate to text in a larger font. Unfortunately, the context menu you get when clicking “Power” in the start menu had a larger font then the Power button making for a weird visual hierarchy (see screenshot). Furthermore, it’s not even the same font used on other context menus, e.g. when right-clicking the desktop.
  • I know few people will use this keyboard shortcut, but I just love Ctrl+Shift+Arrow Left/Right to select entire words via the keyboard. Normally, this works on all edit controls. When renaming a group of tiles on the start menu, however, this keyboard shortcut instead changes the width of the menu. I find it extremely annoying when applications (let alone the operating system) use established keyboard shortcuts and just assign new meaning to them. I always discourage such tactics in my fellow developers. Since they can now rightfully claim, “But look, even Microsoft doesn’t follow their own design guidelines, why should I”, this makes my life so much harder.

The best parts

  • I had used ModernMix since Windows 8 was released to use modern apps in windows on the desktop. For a 5$ tool it was amazing. But since Windows 8 was not designed to be used that way, the tool had limitations. Now all modern apps run reliably in windows and I no longer need a third party solution.
  • I also like that the Most Used list of applications from Windows 7 is back complemented with a new Recently Installed list.
  • The unnatural right-click to bring up the menu bar behavior is also gone, as menu items in most apps are now just visible. The ways those menu items are spread out over the top and left edges, however, is something I think needs to be refined. It’s a bit unclear in my opinion why certain things are on the top left, the bottom left or the top edge.
  • Finally, you can use Ctrl+C, Ctrl+V and other shortcuts in cmd.exe. Finally!

Conclusion

I’m pretty happy with Windows 10. Particularly on a touch-enabled device such as the Surface Pro that you also want to use with mouse, keyboard and a big screen, it’s a welcome upgrade. I hope that the smaller releases and faster upgrade cycles Microsoft has announced for this OS will be used to address some of the issues and inconsistencies noted above.

I haven’t upgraded my parents’ computers yet and will probably wait to do so until some of the issues have been worked out.

The Case of Multicast Messages not being Received on a Windows Server 2008 R2 Microsoft Failover Cluster

This article is semi-related to Writing a High-Performance C# Application. The application I did that research for has now been extended to use UDP to send data to a large number of clients.

The Problem

UDP messages were received by clients running on other machines. Clients on the same machine (a Windows Server 2008 R2 box running Microsoft Failover Cluster), however, did not receive any message.

For me as a developer, the following analysis was a fun excursion into sysadmin territory, something I only get to do occasionally.

The Cause

In order to subscribe to multicast messages, a client joins a multicast group, identified by a class D network address. Using the command

netsh interface ipv4 show joins

you can see which interfaces are joined to which multicast groups. In other words, you can see on which interface the client listens on for incoming multicast messages.

In Windows Server 2008 R2 Microsoft introduced a special adapter called Microsoft Failover Cluster Virtual Adapter (see [1] and [2]). This adapter is hidden in the network adapter UI, but it shows up in the output of the

ipconfig  /all

command.

On the machine in question, the client had joined the multicast group using this virtual adapter instead of the physical adapter that was actually receiving the multicast messages.

When joining a multicast group, an application can specify the interface to use in the ip_mreq structure. In fact, Microsoft recommends it.

The network interface with the lowest value for the routing metric for a destination IP address of 224.0.0.0 is the default interface for IPv4 multicast.

However, if the application does know not anything about the interfaces available on the machine, it can instruct the operating system to use the default multicast interface. This default multicast interface is determined by the IP routing table. You can view the routing table by running the command

route print

As it turns out, the virtual adapter was added to the IP routing table with a metric lower than that of the physical adapter; meaning the virtual adapter would be chosen over the physical one.

The Solution

I compared the routing table on the non-working machine to one from a machine that did receive multicast messages. After I had adjusted the metric for the virtual adapter, clients started receiving multicast messages. No reboot required.

Vintage Advertisement for Gisbert Hennessen Verlag

As the house at the corner of Kasernenstraße and Bastionstraße in Düsseldorf was torn down, it revealed this vintage advertisement on the neighboring building. The advertisement is for “Textil-Mitteilungen” a publication for the fashion industry which seems to have been published between 1948 and 2005 by the publishing house Gisbert Hennessen Verlag.

Advertisement "Textil-Mitteilungen"

Here’s what I found out about the company’s history: According to these reports, in the early 1980s Gisbert Hennessen Verlag moved its offices from Kasernenstraße to Königsallee 70. This is also the last known address according to this company profile saying the company does not exist anymore under that name. Probably, because according to the reports mentioned above, in 1988 the company was bought by Axel Springer (see also this 1987 Spiegel article) and renamed Branche & Business. Branche & Business was subsequently renamed B+B Media Company according to this press release from their new owner Management Capital, when they were merged with j’n’c into the European Professional Publishing Group.

Textil Mitteilungen as a brand still exists in the form of TM digital published by B+B Media Company.

I was also able find one of their early publications on Amazon: “Spielregeln der Mode” which translates to “Rules to the Game of Fashion”, published in 1949 and which references the Textil Mitteilungen.

Textil-Mitteilungen

Excellent Summary of Greece’s Debt Burden in The New Yorker

I normally steer clear of politics on this blog, but I couldn’t not share this excellent article in The New Yorker about the Greece’s debt burden. It’s rather brief, but makes a few points that I think are very important:

  1. Tür der KämmereiGreece’s debt dynamics are unsustainable.
  2. Dragging out the negotiations hasn’t helped this, but to suggest that Syriza is to blame for Greece’s debt load being unsustainable is silly.
  3. The bailout was more about protecting German banks, but especially the French banks, from debt write-offs than helping the Greek people.
  4. European leaders were concerned that writing off some of Greece’s debts would set a precedent for other heavily indebted countries. This is true, but it’s probably too late now.
  5. Germany has benefited from debt relief after World War II, so it might be time to return the favor.

This is the kind of harsh realities I would like to hear from my government and other European leaders.