Calendar interface in Nextcloud

The problem with purism

At heart, I’m a Linux guy.  For many tasks, I use Emacs (a popular editor among some developers due to its extensibility), with Orgmode as my primary means of managing tasks, recording time, jotting down notes and, at times, trying to manage my calendar.

But there were several problems with this. Firstly, the only mobile client to sync Orgmode files with reasonable reliability, was MobileOrg.  Sadly, this project has been discontinued for a while, and to my knowledge it hasn’t yet seen a superior successor.  In addition, Orgmode is a great calendar within Emacs, but it’s not so strong outside. And while MobileOrg was “ok”, it didn’t present information in a convenient, easily-interpreted way.

In short, having a text-only, Linux/Android-only solution, was awkward.

The compromising advantage

Part of the appeal of Orgmode and MobileOrg was being able to keep all data within one’s own infrastructure.  As one of MobileOrg’s features is to “sync files from an SSH server”, and Emacs has TRAMP for accessing network locations, this made it possible to get each end talking with the other, and the synchronisation was generally reliable.

But in some ways, using Emacs, Orgmode and MobileOrg – to achieve data security and ultimate privacy – is arguably a case of the tail wagging the dog.  Was this the only private-data solution? Probably not. Was it the most convenient?  Was Orgmode the right tool for many of life’s repeatable, short-lived events? Definitely not.

image of org-mode
org-mode in action: showing a list of links

Despite trying to use only free, libre & open source software to address this requirement, around 2016 it started becoming clear that simpler solutions existed – albeit involving proprietary software of some kind.  Certain diehards might scoff that, if some software only exists in proprietary form, it’s inherently evil and you must build a free/libre version. But such ideals are rarely achievable when your needs as a new parent and business owner outweigh most others.

As I pondered my motives, it became clear to me that controlling my data was more important to me than controlling the tools.

The next move

For years on Android, I used CalDav and CardDav syncing tools, which were proprietary plugins that presented calendar and contact “providers” to the OS.  These worked great, but finding equivalent staples on Linux was somewhat harder.  The time had arrived when I needed desktop access to calendar, task and contact management, that wasn’t based in an Office365 tenancy.

The right move here was to set up Nextcloud. On my small personal hosting box at DigitalOcean [discount referral link], I set up a virtual server to run Nextcloud.  Nextcloud provides calendar, tasks and contact databases that are conveniently accessible through CardDav & CalDav.

As I had to work on a Mac in order to test websites in Safari (which accounted for at least 9% of traffic, and often more), it was useful to have syncing of this data there too.  And this, unlike some of my earlier grumpiness with all things Mac, was actually a pleasant surprise: macOS actually had great support for CalDav and CardDav.

Conclusion

Account set-up in iOS
Setting up access to other services is a cinch in iOS.

Do I get the solution I need? Yes. Does it sync well? Yes. Am I happier? Yes.

Not only that, but the downside of Orgmode syncing was that it worked best if restricted to two-way communications. If you added a third or fourth client and tried syncing between all of them, it would quickly become a clusterfunk.

Is Apple the enemy?  Well, probably. But better the devil you know, sometimes. Due to the ease of synchronisation with tasks, contacts and calendar in macOS, I slowly warmed up to the idea of replacing my ageing Samsung Galaxy Note 4 with an iPhone. So I did.  And arguably, for this requirement, it was a good choice.

Does this mean I’m no longer a Linux guy? Oh no, not at all. I still have my ThinkPad T420S, which was a side-grade replacement for my chunky T420. I use it every day in my work as a Senior Systems Administrator, for one of the UK’s top universities. I still use Emacs and Orgmode as a daily driver for tasks and coding.

But at home, my wife and I share a calendar and contact list across Android and iOS, thanks to the support of industry standard protocols.

Controlling where the data is has served us pretty well.

This is why I hit on @apple. From the article:

This situation has some prominent Mac users up in arms. Forum posts have been popping up at various locations since Mojave’s release and last month, a petition that currently has over 2,800 signatures landed on Change.Org urging Apple and Tim Cook to work with NVIDIA.
— Read on www.forbes.com/sites/marcochiappetta/2018/12/11/apple-turns-its-back-on-customers-and-nvidia-with-macos-mojave/

This is a confession of a new Mac user, seeking absolution.

I have a Mac.  It’s for work.  Unfortunately, I finally came to realise that I cannot reasonably develop web apps to work on iOS and macOS without having access to those platforms for testing.  I feel I’ve done exceptionally well to avoid this reality for many years and plough on with the Linux desktop, but building a VM Hackintosh without a proper software license is against my morals and, indeed, the law.

Would I have bought a Mac for personal use?  Of course not.  There’s no need; I have been a (more-or-less) happy GNU/Linux user for 15+ years.  The Linux desktop has provided me with everything I need from a computer, and I’ve enjoyed the reliability of open source software.  And I will continue to be a GNU/Linux user.

I <3 Linux

But … one thing about Linux that is, occasionally, frustrating is the complexity of software.  I don’t mean that its typical user software is difficult or overwhelming in Linux.  Instead, it’s that there is never the ‘best’ way to do things in Linux; there are multiple, ‘reasonable’ ways.  It’s this lack of ‘purity’ about the desktop experience which sometimes confounds newbies, and turns some people off.

Tux, the cartoon penguin.
Tux: the mascot of Linux. Does any other modern OS even have a mascot?

From my admittedly limited experience, it seems that people prefer to learn one way to do things and to stick to that way.  With all the desktop environment options in Linux, there is no ‘one way’.  This is why each platform has its advocates and evangelists, whether it’s Windows, macOS or GNU/Linux.

I feel like I have been spoilt with GNU/Linux, and especially with GNOME 3.  To me, there is no better desktop environment than GNOME 3, despite having moments of hair-pulling frustration at it, from time to time.  But GNOME 3 is a beautiful desktop: it’s clean and minimalist, its default file system application, Nautilus is more functional than the Mac’s Finder, its handling of multiple workspaces (where Linux is constantly superior) and navigation across those workspaces is much more fluid and natural, and so on.

There are political, social and technical issues with GNOME development and the whole GNU/Linux system at large (let’s not mention systemd here), but if you were to ignore those factors and introduce somebody to ‘the Linux desktop’, I would argue that GNOME 3 (and Cinnamon too, for that matter) present a beautiful interface to enjoy and work in.  It’s not perfect, and can be problematic too at times, but it’s flexible and open.

The Problems with a Mac

That was a very long-winded introduction, but I felt it necessary to establish my position, before I talk about the Mac.

Macbook Pro 2015
Ladies and Gentlemen: The 2015 Macbook Pro. A really expensive laptop, considering the spec.

The problem I have is this: I want to love the Mac, but I don’t.  Sometimes, especially in business, you feel you need a commercial product simply because it helps you fit into the world around you. And, when a computer costs you a significant amount of hard-earned cash, it’s got to be something you want.  Sadly, I didn’t want this.  It was simply a necessity for me to continue doing what I do to earn a living.  Therefore, it felt ‘forced’ rather than chosen, or desired.

When you identify with a philosophy, such as I have with the guiding principles of free/libre open source software, you develop a mindset.  You become attached to the tools and methodology deriving from that philosophy.  It becomes incredibly frustrating when things that were easy on Linux become hard on anything else.  You wonder why people put up with all these obstructions to productivity…

Obstructions to productivity

Let’s look at a few of these.  As a software developer, sysadmin, business person and general user (who is used to the layout of a standard UK PC keyboard), I ran into several problems switching over to a Mac:

'3' key on Mac keyboard.
Having a less-accessible hash key on a keyboard is challenging, especially for coding.
  • The hash (pound) key.  The hash symbol is used extensively in a UNIX environment to comment out sections of software code for reference purposes.  On a UK PC keyboard, this symbol is located on its own key to the right of the keyboard; on a Mac, this is located on the ‘3’ key; you have to use a modified key (the option / alt key) to access it.  This is a barrier to productivity, although perhaps due to muscle memory and old habits.  The position of the @ symbol (on the ‘2’ key) is also annoying.
  • Finder: no SFTP support!  As someone who needs to upload files to web servers quite often, it’s stunned me that a well-established UNIX-based OS like macOS doesn’t support this transfer method ‘out of the box’.  One has to resort to a third-party program.
  • Finder: no Cut?!  Apple have a strange approach to doing some things, especially considering their claimed print-based heritage (recall Steve Jobs telling a university that Apple focused so much on typography…?).  Take Cut and Paste.  Cut (not Copy) and Paste is a relic from the printing press age, where articles in layouts would literally be cut and pasted into position.Unlike all other decent file managers, Cut has no place in Finder on a Mac.  Only Copy does.  Except… Copy works like Cut when the source and destination locations of a file are on the same filesystem. In this situation, Copy moves the file (Cut-Paste).  But, if the source location is on one filesystem, and the destination on another, the file is Copied (Copy-Paste).  This is totally inconsistent and confusing, resulting in two copies of the same file – sometimes
  • Finder (again): no option to show hidden files.  Yup.  As a GNU/Linux user, you take this stuff for granted.  This preferences option (or hitting CTRL-H) in GNOME is a lesson to Apple:

    GNOME's Files application preferences
    How to hide or show hidden (dot-)files, e.g. .config.
  • Disk formatting: not enough filesystem support.  A typical vendor lock-in situation, where the OS vendor totally fails to provide sufficient flexibility with regard to mounting ‘foreign’ file systems.  It’s a complete joke that Tim Cook, CEO of Apple, would refer to Chromebooks as ‘test machines’, when in fact they are more flexible for mounting external devices than a Macbook ‘Pro’.
  • Disks – no S.M.A.R.T. support on external USB drives.  This is inexcusable.  Not being able to see an external drive’s S.M.A.R.T. status, especially when that drive might be used for your time machine backups, is akin to gross incompetence.  Other operating systems do this; Apple not doing this is a bad joke.
  • Time machine: scheduling not flexible enough.  I want daily backups, not hourly.  Where’s the option to change this?
  • Text editing and stupid modifier key behaviour.  On a PC, to select a word at a time you would hold down CTRL+Shift and then arrow left (or right) to select a word.  Press the arrow key again to select the second word.  Then, to Cut or Copy on the PC, you would keep CTRL held down, release Shift and press X or C, respectively.  Not on a Mac.  The process of keyboard-based word selection on a Mac is to hold down ‘Option / Alt’+Shift, arrow left or right to select a word at a time, then release all modifier keys, then press and hold Command and then press X or C respectively.
  • Workspace / Desktop management is less efficient than GNOME 3.  Linux desktops pioneered virtual desktops / workspaces, with Windows and Mac OS (X) following suit.  In GNOME 3, workspaces are created and destroyed dynamically, and can be navigated to efficiently using the keyboard (not like on the Mac, where you have to use a three-finger swipe on a trackpad, or the Mission Control key and a mouse).  macOS doesn’t destroy unused desktops automatically, leaving visual clutter.
    macOS mission control
    Why not just get rid of that unused desktop/workspace?!  Compare GNOME 3, below.

    https://www.youtube.com/watch?v=bRHAio98n-g

  • A pure split-window session is unnecessarily modal.  In macOS, you cannot easily create a left-right split of windows that take up all available screen real-estate, without forcing those windows into full-screen modality.  Forcing anything is bad, mmm’kay?  Again, compare GNOME 3.

Migrating for good?

So, the question remains, is there enough goodness left in macOS to entice me to migrate over for good?

Are you kidding?!

Less productivity, less freedom, some bizarre defaults, some frustrating impediments to productivity and all backed by a ‘can do no wrong’ philosophy mean that Apple’s products will stay strictly off my shopping list commercially and personally for the foreseeable future.

I won’t be selling my ThinkPad T420.  No way, José!  But at least I can now do iOS and macOS testing for web apps and site layouts.  In that vein, Apple makes great test machines!

And I think I have absolved myself 🙂