using ipados 13.4 with the logitech mx ergo plus trackball

I’ve been working with iPadOS 13.4 on my iPad Pro, 12.9”, second generation ever since the update. The iPad is my primary writing tool (along with the logi keyboard cover). I picked it up nearly a year ago when B&H Photo had it on sale for $500 off its regular price. Key feature for me was its 512GB of storage. I believe in large storage because I don’t believe in iCloud or Google Drive or anything else. It’s my data, it stays on my machines under my control, and I’m big enough now to do regular backups. This iPad is also capable of 4G LTE connectivity but I declined to enable that; I pay AT&T enough as it is, and if I need network connectivity away from WiFi I’ll turn on my iPhone’s personal hotspot and use that.

I have for the last six months been using the logi (Logitech) MX Ergo Plus trackball mouse (on sale! half price!) with my iPad. I have a second I use with my MacBook. In both cases, I was able to pair them directly over Bluetooth. The Ergo trackball comes with a dongle to plug into a computer’s USB A port for older computers. I had to do that with a Dell laptop I used when I worked. It came with Windows 10 Enterprise installed, with all the corporate controls turned on, so there was no Bluetooth pairing with that machine; thus, the use of the USB dongle. Unfortunately, there is no physical location anywhere on the mouse to store the dongle when not in use, so I’ve managed to misplace it. That means it’s now able to only use Bluetooth with machines that can pair with it, like all of my Apple computer gear.

Before direct mouse support was added to iPadOS I was using the Accessibility settings to enable the mouse. With direct mouse support, that’s no longer necessary. My only complaint with direct mouse support is that the mouse pointer went from being a fairly large circle with a dot in the middle to being a much smaller, semi-transparent circle that disappears over any active control. The Accessibility mouse pointer never disappeared, which I consider a much better ergonomic feature over the way it works now. Otherwise, a mouse on the iPad Pro works pretty much like I would expect. In fact mouse support on the iPad is pretty fantastic, and makes the iPad a marvelous writing tool, at least for me.

I know that the latest iPad Pros (2018 and 2020) can be used with Apple’s latest keyboard which contains a track pad, but I’m not that big a fan of trackpads in general (nor am I a big fan of its $300+ price tag). I came to despise trackpads from years ago due to poor support on both Windows and Linux. I neither want nor need them, preferring a mouse or trackball. The trackball is the best solution for me as the device just sits next to my computer/pad, and I maneuver the cursor with the ball. It’s now second nature to me, and I’ve got a travel bag that has a spot for the trackball that allows it to travel where-ever I need to go.

Perhaps this will be the combination that finally induces me to write more. I’ve been making plans and promises to write more for some time, but every time I got into a writing sprint it would suddenly taper off and I’d not post anything for weeks at a time. Perhaps I should recognize that I’m not one of these “regular writers” who can post once a day, every day. I’ve said it before, and I’ll say it again; writing is hard, especially good writing, the kind people want to spend time reading.

flutter toolchain cleans up its act

Back in early December I ranted a bit against the full release of Flutter (see “the very definition of insanity – trying to make google flutter work“). I left flutter alone for about a month, and then two days ago this month I upgraded flutter with the following welcome results:

Williams-MBP:~ wbeebe$ flutter upgradeUpgrading Flutter from /Users/wbeebe/Develop/flutter...From https://github.com/flutter/flutter   7a88fbc5f..985ccb6d1  dev   -> origin/dev * [new branch]  logo-tos  -> origin/logo-tos   faae8bde7..517f8dc27  master-> origin/master * [new branch]  mit-mit-patch-1   -> origin/mit-mit-patch-1 * [new branch]  revert-23424-dragfix2 -> origin/revert-23424-dragfix2 * [new branch]  revert-26090-switch_to_dev_finder -> origin/revert-26090-switch_to_dev_finder * [new tag] v1.1.5-> v1.1.5 * [new tag] v1.1.8-> v1.1.8 * [new tag] v1.1.6-> v1.1.6 * [new tag] v1.1.7-> v1.1.7Already up to date.Upgrading engine...Already up-to-date.Flutter 1.0.0 • channel stable • https://github.com/flutter/flutter.gitFramework • revision 5391447fae (6 weeks ago) • 2018-11-29 19:41:26 -0800Engine • revision 7375a0f414Tools • Dart 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)Running flutter doctor...Doctor summary (to see all details, run flutter doctor -v):[✓] Flutter (Channel stable, v1.0.0, on Mac OS X 10.14.1 18B75, locale en-US)[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)[✓] Android Studio (version 3.2)[✓] IntelliJ IDEA Ultimate Edition (version 2018.3.2)[!] Connected device! No devices available! Doctor found issues in 1 category.

You’ll note my biggest gripe is fixed now, the inability to apparently determine if the iOS (sub) toolchain was actually sane. Another minor but welcome fix was for the Android toolchain. The Android toolchain incorporates the Android SDK. In the past flutter doctor would complain that the Android licensing was inconsistent/incorrect. The workaround before this drop was to go and re-run sdkmanager (tools/bin/sdkmanager) and then re-run ‘flutter doctor’. That seemed to fix the Android toolchain issues. I’m not worried about the connected device because right now there is no connected device, and so this error message is correct. Again, these are welcome changes.

This morning I upgraded flutter again and got the following:

Williams-MBP:~ wbeebe$ flutter upgradeUpgrading Flutter from /Users/wbeebe/Develop/flutter...From https://github.com/flutter/flutter   985ccb6d1..1407091bf  dev-> origin/dev + af09490e1...40c4925a5 gallery-> origin/gallery  (forced update)   517f8dc27..6c7fb8805  master -> origin/master * [new tag] v1.1.9 -> v1.1.9Already up to date.Upgrading engine...Already up-to-date.Flutter 1.0.0 • channel stable • https://github.com/flutter/flutter.gitFramework • revision 5391447fae (6 weeks ago) • 2018-11-29 19:41:26 -0800Engine • revision 7375a0f414Tools • Dart 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)Running flutter doctor...Doctor summary (to see all details, run flutter doctor -v):[✓] Flutter (Channel stable, v1.0.0, on Mac OS X 10.14.1 18B75, locale en-US)[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)[✓] Android Studio (version 3.2)[✓] IntelliJ IDEA Ultimate Edition (version 2018.3.2)[!] VS Code (version 1.30.2)[!] Connected device! No devices available! Doctor found issues in 2 categories.

Now the complete toolset is tracking Visual Studio (VS) Code, the editor/minimal IDE. Thinking I needed to update VS Code, I checked my version of VS Code, and guess what?Yep, I’m running with the latest production release. A quick check showed that all the installed plugins were up to date as well. Then I re-ran ‘flutter doctor -v’ and got the verbose output. This is part of what I got on that run.

[!] VS Code (version 1.30.2)• VS Code at /Users/wbeebe/Applications/Visual Studio Code.app/Contents• Flutter extension not installed; install from  https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

Sure enough I was missing the Flutter extension. Don’t ask me how, but re-installing the extension and then running ‘flutter doctor’ again produced the following cleaner output:

Williams-MBP:bin wbeebe$ flutter doctorDoctor summary (to see all details, run flutter doctor -v):[✓] Flutter (Channel stable, v1.0.0, on Mac OS X 10.14.1 18B75, locale en-US)[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)[✓] Android Studio (version 3.2)[✓] IntelliJ IDEA Ultimate Edition (version 2018.3.2)[✓] VS Code (version 1.30.2)[!] Connected device! No devices available! Doctor found issues in 1 category.

Which is what I would have expected. I’m glad that they’re checking VS Code and the Flutter extension, but if there is a problem with the Flutter extension (or any other extension that Flutter depends upon) then they should surface that directly, rather than the current cryptic “You’ve got a problem” error message. Like the connected device message directly below it.

I’m going back into using Flutter for app development instead of using it as an excuse to run tutorials. I’ve got at least two small projects in mind to use this tool on.