Enabling Suica support for a non-Japanese Fitbit device/account

TL;DR: change your Fitbit account country to Japan here (not in the app).

Whether you can actually add funds with a non-Japan-issued credit or debit card is a separate matter.

At the time of writing, the Fitbit Charge 4 (Japan model only), Charge 5, Sense, Sense 2, Versa 3 and Versa 4 (all models) are listed as being compatible with Suica. However, if you are a visitor to Japan, the Suica tile probably won’t appear in the wallet configuration in the Fitbit app – in my case, the only transit option listed was iPASS (Taiwan only).

(As an aside, read Joel Breckinridge Bassett’s blog for the gory details on why your non-Japanese Android phone won’t work with Mobile Suica.)

Enabling the Suica tile

I tried doing a factory reset of my Versa 3, changing the language of my phone and changing the location setting in the Fitbit app (‘Select location’) to no avail.

Settings irrelevant to enabling Suica support

It turns out the key to enabling support is to change one’s Fitbit account country. This setting doesn’t appear to be exposed in the Android app, but can be changed via the website.

Switch this to Japan, open the Fitbit app and the Suica tile should appear.

大成功!

Support doesn’t even seem to be geofenced – I still see the tile with a Hong Kong IP address.

Adding funds

Unfortunately, it’s not necessarily smooth sailing from here. I was unable to add funds (error message: The system is busy) with my Australia-issued Mastercard credit card and Visa debit card. However, American Express cardholders may be in luck:

Non-Japan-issued Visa card payments have been blocked for Apple Pay Suica/PASMO/ICOCA since August 2022, but seemingly even Mastercard won’t work for Fitbit Suica. This is a shame, given American Express credit card payments incur a 3% international transaction fee (at least in my case), and I keep a fee-free Mastercard largely for this purpose. Perhaps being unable to dodge fees is fitting.

TeamViewer (sometimes) doesn’t work with DNSSEC enabled

Update (2022-12-06): It looks like TeamViewer fixed their DNS config (before and after).

Update (2022-11-12): I tested again after Frankie in the comments noted that it works on his machine, and indeed it does for me, too, even with DNSSEC turned back on. My only explanation is that it’s an intermittent issue.

I couldn’t figure out why TeamViewer was perpetually stuck in the ‘Not ready. Please check your connection’ state, and the help article didn’t give any clues (port 5938 was already open for outbound connections).

The dreaded ‘Not ready. Please check your connection’

The log files (/opt/teamviewer/logfiles/TeamViewer15_Logfile.log in Fedora) gave a hint:

The host would cycle from router1.teamviewer.com to router16.teamviewer.com, but none of them would resolve. Long story short, DNSSEC is broken for these TeamViewer domains, and the application won’t work if none of them can be reached.

Sadly, this problem was reported years ago but nothing has changed.

Workarounds

Neither of these is good! I recommend contacting TeamViewer and letting them know about this issue (particularly if you’re a paying customer).

Hard code an IP address in hosts

Adding an IP address for router1.teamviewer.com to hosts seems to make the application functional.

I just picked the first IPv4 address and added it to /etc/hosts:

These IP addresses are of course liable to change.

Disable DNSSEC

Note: DNSSEC exists for a reason – don’t disable it unless absolutely necessary.

The nuclear option is to turn off DNSSEC checks entirely, or switch to using DNS servers that don’t support it in the first place (I recommend neither).

On Fedora 36 with systemd-resolved, this means editing /etc/systemd/resolved.conf and adding DNSSEC=no under [Resolve].

High sensitivity headphones are picky about amps

Recently I decided to upgrade a pair of long in the tooth Shure SE215 IEMs after one too many wonky cables and a disintegrating right ear piece (the drivers are working as well as ever). I settled on the Shure SE535, and even if the 4x price increase hasn’t made my music sound four times better, I’m happy with the purchase.

I was less thrilled to hear a soft hiss when I plugged them into my handy (and affordable) Audioengine D3 DAC/amplifier. Fearing it was a defective product, I sought to have it replaced, but could only get a refund due to a lack of stock. I next ordered the similarly priced Dragonfly Black, and much to my dismay this device exhibited exactly the same issue.

As it turns out, their low impedance (36 Ω) and very high sensitivity (119 dB SPL/mW) make the SE535 IEMs easy to drive and suitable for portable devices with low output at the cost of not meshing so well with amps designed for headphones with higher impedance and lower sensitivity. After doing some more research I ended up with the FiiO K3, which is almost (but not quite) silent with no audio playing, and still within my desired price range. Regrettably Schiit products are overpriced in Australia, so I had to rule them out.

TL;DR: your fancy new IEMs might not be suited to your amp. Do your research before you buy.

What's up with Office 2013's context menu and tooltip shadows?

Update (2015-04-22): Somewhat surprisingly, a recent Office 2013 patch appears to have fixed this issue.

Update (2015-03-04): Office 2016 fixes this.

Update (2014-10-03): Office 2013 running on the Windows 10 Technical Preview (build 9841) exhibits the same issue 🙁

At some point in the not-too-distant past, Office 2013 started rendering strange shadow artefacts in the four corners of all context menus and tooltips:

Screenshot of Word 2013 Context Menu Shadow Artefacts

This didn’t always happen, as a quick search for ‘Word 2013 screenshots’ will reveal lots of images of glitch-free floating windows. I’m too lazy to check, but I’ll hazard a guess that this started happening with Windows 8.1 or Windows 8.1 Update 1.

Being Office, they’ve re-implemented every GUI element themselves instead of letting the OS handle them. One can sympathise with this approach, but it’s important to get the little details right. A bit like how the IE team should finally spend the time to get their scrollbars right. Of course, it’s folly to ever expect UI consistency on Windows when even Microsoft can’t get it right.

A man can dream, though. A man can dream.

Fix Visual Studio 2013 Start Menu shortcuts

Click here to see this bug on Connect.

Visual Studio 2013 configures Start Menu shortcuts differently to earlier versions. Specifically, it adds a shortcut to ‘Visual Studio Tools’ (%PROGRAMFILES(X86)%\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts), where Visual Studio 2012 added a directory called ‘Visual Studio Tools’ and added copies of the shortcuts. This is all a bit confusing, but the end result is that searching in the Start Menu/Screen won’t bring up results for useful things like the Developer Command Prompt or Spy++.

This annoyed me sufficiently that I wrote a PowerShell script (run it as administrator) to restore the shortcut directory:

The Visual Studio Shortcuts directory doesn’t contain shortcuts to Spy++ (and a number of other programs). Here’s another script to restore shortcuts to Spy++:

Migrating from Opera to Chrome

I’ve used Opera as my primary web browser since the year 2005. It’s never looked quite at home on Windows and its tiny market share means it’s lucky to ever be included on a website’s list of ‘supported browsers’, but still I preferred it over Internet Explorer, Firefox and later Chrome. I valued the user interface for nearly always being extremely responsive (much more so than the other browsers, in my experience), even when I had more than 100 tabs open, which somehow manages to happen quite often. Features like mouse gestures and an RSS reader are available out of the box – other browsers require a lot of extensions before they come close to reaching the level of functionality that’s built-in to Opera.

Opera (the company) announced in February this year that Opera (the browser) would be moving from the Presto engine to the Google Chromium implementation of WebKit (it was later revealed that in fact both Google and Opera will be using a new engine called ‘Blink’, forked from WebKit). An early version of Opera 15, the first version to be built around Chromium, was released this week, so of course I was keen to try it out. Regrettably, most of what I loved about Opera is gone – no RSS, no customisable mouse gestures, basically no UI customisation, no sidebar (handy for RSS, downloads and window/tab management), no separate search box, no MDI (multiple document interface), no private tabs (rather than windows) and probably other features that I’ve forgotten. On one hand, I’m disappointed that my favourite browser has changed for the worse. On the other hand, this gives me a reason to switch to a better-supported browser.

I’ve never really cared too much for Firefox, so Google Chrome seemed the obvious choice. Benchmarks would suggest Firefox’s engine is getting ever faster, but the UI has never been quite responsive enough for my liking. This is quite possibly unfair prejudice on my part.

Chrome is certainly not perfect, buy with the help of extensions, it’s a pretty good replacement for Opera. That said, I don’t see any particular advantages over Opera, other than perhaps the benefit of knowing that your browser is being developed by a tech giant and will almost certainly be supported by nearly every website.

Here’s what I don’t like, and the steps I’ve taken to mitigate each issue:

  1. No mouse gesture support. The Smooth Gestures extension is decent, and it’s certainly much easier to setup gestures than it is in the old Opera settings dialog. You can tell it’s not a native part of the browser, though, as gestures only work when drawn within a page (not on the tab bar or address bar, for example), and they don’t work at all on the new tab page, settings page or Chrome Web Store pages.
  2. No MRU tab ordering. I’m really missing Opera’s most recently used ordering of tabs (the same ordering that Windows uses for windows), and I’m quite shocked that in 2013 Chrome doesn’t have an option to enable this. Partially resolved by the ‘Tab to the next’ extension, but it’s far from ideal. The (Shift+)Ctrl+Tab shortcut is almost useless.
  3. No RSS reader. I’ve started using Feedly, since Google Reader is apparently about to be shut down. It seems pretty good – I just need to get used to the keyboard shortcuts.
  4. No support for POST searches. I find this one a bit baffling – there’s no support for creating a search shortcut that requires the POST verb (I personally need this for WWWJDIC). I happened to have already written a simple script to ‘translate’ GET requests to POST requests (the usage being something like post.php?url=encodedurl&args=encodedpostargs). My POST searches go via my server now, but it’s a reasonable compromise.

Surprisingly – given its multi-process architecture – Chrome doesn’t seem to handle lots of tabs being open at once as well as Opera did, but it’s not terrible. Flash seems to be crashing more in Chrome, which doesn’t make a lot of sense to me, as I thought it was the same plugin. Tabs take up more horizontal width than seems necessary, and I don’t really like that they go to the very top of the window when maximised (makes it difficult to grab the window border).

I’ll give Opera 15 another shot when it is out of beta – by then it might be closer in functionality to Opera 12.15 – but for now Chrome doesn’t seem like a bad alternative, even with its various flaws.

SetDPI Utility Version 2

View source on GitHub.

A couple of years ago I made a small command-line program for setting the DPI/PPI of PNG files. I used the System.Drawing.Bitmap class (i.e. GDI+) to set this property, which had the unfortunate side effect of producing relatively bloated files. Given that the chunk specifying this property is only 21 bytes long, I thought I could do better.

SetDPI version 2 searches for the pHYs chunk and updates it directly, or adds it immediately before the first IDAT chunk if it doesn’t already exist. Files produced by this tool will be at most 21 bytes larger than the original (or the same size when the pHYs chunk was already present).

SetDPI.7z
13,478 bytes; SHA-1: 800D83A390F2AD80772D79D7FB45C7EAAB0D4294

Connecting to the internet with a Rami Levy SIM card

I recently bought a prepaid SIM card from Rami Levy for my unlocked HTC 7 Mozart. Unfortunately, I was unable to access the internet at first, despite having turned on the mobile data connection.

Setting the APN manually caused everything to work correctly. These are the details I used (source):

Access Point: internet.rl
Username: rl@3g
Password: rl