when ideology ruins technology

I’ve been conducting an experiment with myself as the test subject since the first of this year. The reason for this personal experiment has been to determine if I can live without the Chrome browser and Google search.

I can’t go cold turkey on Google. I have multiple Gmail accounts to handle various tasks, having been a Gmail user since 2005 when I was invited to participate in the Gmail beta. In the past I attempted to use Google+, and I will on occasion go slumming through YouTube to look for some off-beat bit of music or old TV program. I experimented using G Suite and its individual tools in place of Microsoft Office, but I’ve since just installed and use Libre Office everywhere, not out of some misguided idealogical motivation but because it wouldn’t do all I wanted, the way I wanted.. Finally I’m a Go language user, Go having been developed by Google and for Google’s internal use before it was released as open source for the rest of the world. Google search was the first Google product I turned to, abandoning Yahoo! search completely the day I switched to Google Beta in late 1998. That’s over two decades of using Google products in some form or fashion. And I haven’t even talked about Google World and Google Maps…

Regardless, I fell under the sway of the screaming mimies that Chrome in all its forms was Evil, as was using Google Search. Ok. So on my iPhone and iPads and Mac I started using Apple’s Safari. It was pre-installed and Apple has this big deal about being privacy focused. I’ll give it a shot. For search I turned to DuckDuckGo, the current champion of the digital cognoscenti everywhere. So how did that work out for you Bill?

In the beginning it was a little rough. Search results, in particular, were a little thin, both in quality and quantity. Using Safari was OK and wasn’t all that different than using Chrome or Firefox. Until later.

Over time I found a problem with Safari on both macOS and iOS and iPadOS. It would crash and any open tabs were lost. On. All. Three. Platforms. I use my many open browser tabs to keep track of research that is ongoing at any given time. Over time, the oldest open tabs bubble to the back and are eventually closed by me. I make those decisions. But after three crashes (two on my iPad, one on macOS), I got really peeved. I’ve never had the problem with either Chrome or Firefox. They may crash, but they have tab recovery. No so Safari. The worst crash was on macOS where I had over a dozen leading tabs out of almost 100 open to areas I was actively using for my software and hardware development. That one truly hurt.

I’ve now gone back to a combination of Chrome and Firefox. I won’t even consider Microsoft Edge, so please don’t mention it. As for DuckDuckGo, when I switched browsers I switched back to Google and got what I consider much better search results. For technical questions, I consider Google’s results to be much superior.

Lesson learned? In the future, take everything that is pushing a technical ideological agenda with many grains of salt.

getting started with flutter on macos mojave, part 2

It’s been a little while since getting all the Flutter bits installed, running, and working together. I finally found a few moments this Sunday morning to spin it up and go farther into the Flutter Getting Started demo on the Flutter website.

I’ve gotten into the habit of running ‘flutter doctor’ every time I open a shell because I’ve found that, for whatever reason, the Android SDK licensing check gives me an “Android license status unknown” for 26.0.2, even though I run tools/bin/sdkmanager from the shell. That seems to clear up any licensing issues, at least from the command line. Run ‘flutter doctor’ from within Visual Studio Code and it pops back up again.

Another problem is with libimobiledevice, a library that is a royal pain to get installed cleanly along with its dependencies. And you need that to talk to XCode and Apple mobile devices. The last time I had a problem with libimobiledevice I finally got it straightened out with ‘brew doctor’ and then installing libimobiledevice yet again. So far, right now (as you can see above), everything is OK.

My second set of initial impressions:

  • I got this up and running without writing a single line of code so far. The app running on the iPhone simulator is equivalent to your “Hello world” examples everywhere else.
  • It is interesting that I’m using Microsoft’s editor to debug an iOS application in an Apple simulator running on macOS. If I were really into cross-development I’d use the Android simulator as well, and I have no doubt it would work.
  • Hot reload works a treat. Starting the simulator takes more than a few seconds, but hot reload is very fast and does not require a simulator restart.

My overall impression is that it is very much still a work in progress. It feels fragile, especially when the Flutter doctor keeps reporting Android licensing and imobiledevice issues at odd times, either at the shell or within Visual Studio Code.

Having said that, it’s remarkable to see all this major systems lashed together into a decently working development environment. There is great potential in Flutter. If I can write better iOS applications within Flutter and do so with less frustration and at a faster pace, then I’m all for this and want to see it succeed. In the past, app development has (and still is) heavily siloed, where you get the development environment unique to each platform (XCode for iOS, Android Studio/IntelliJ for Android) and dealt with cross-platform development as best as possible. Now we’ve got the emergence of Flutter with its largely open source underpinnings. As long as Google keeps serious Flutter development going to at least a solid 1.0 release, then I think it will succeed.

And I personally want to see it succeed.