Image of cupcakes with unusual toppings

Despite previous posts advocating the indieweb, sadly I need to trim down my WordPress plugin experience.  This is mainly to seeing a lot more traffic on my site recently, and not having the time or resources to optimise the plugin code running on my virtual server.  I found that the number of plugins in my site (around 48) was really starting to hamper performance.

So it’s with regret that I step out of the indieweb sharing platform, by removing all associated plugins from my WordPress.  Despite being in full agreement with the indieweb mantra, of owning one’s own data, I do find some satisfaction and convenience of using WordPress.com‘s own tools to do the same job now.  To some extent, they have embraced providing a richer, more social experience through WordPress sites – whether hosted by them, or by “us”.

My only regret is that I couldn’t contribute to the project, the principles of which I wholly believe in and support – if only on an intellectual level.

Good luck Indieweb!

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 🙂

Here is the solution to Emacs mastery (from someone who watches other people’s YouTube videos…):

Learning

More Learning

Yet More Learning

Practice, More Practice…

Time to repeat.

 

Yet… More challenges:

Lots to learn

Huge number of options

Infinitely configurable

Which way is best

Vast software selection

Lots of online sources, spread around

 

Keys to overcoming challenges

Master self-confidence

Pick one problem at a time, and work hard on it

Take time to enjoy the new power gained. Feel rewarded.

Choose the next option.

(if this helps) Document what you did.

Image of speed blur - Self-hosting the IndieWeb

Discovering the IndieWeb movement was a 2015 highlight for me. It addressed many of my concerns about the direction of the modern internet, especially regarding ownership and control over that data.  But to truly own your own data, self-hosting is a must!

Background: Self-hosting your own stuff

I’m an ideas person. I have a number of projects – or, rather, project ideas – lined up, which I need to record and review. My blog provides me with the ideal space for that, as some ideas may attract the attention of others who are also interested. But why does this matter?

As someone who naturally likes to share experiences and knowledge, I see no benefit in not sharing my ideas too. After all, the web is all about sharing ideas. This matters to me, because the web is widely regarded as the most valuable asset civilised society has today (aside from the usual – like natural resources, power, warmth and sustenance)!

Owning your own data

As a small business owner, I sometimes benefit from various common business practices. For example, the standard accounting principle of straight-line depreciation means that after several years, capital assets once purchased by the business have little-to-no use for the business, meaning they become potential liabilities (both in the financial and risk-management sense). This means I am able to get hold of used, good-condition computing hardware of 4-5 years old at very little cost.

 

Two HP ProLiant tower servers, side by side. Self-hosting a website can work on much older hardware.
Even 10 year old servers still make for good general purpose machines. I’ll be using one of these for this blog, soon.  Expect plenty of caching!

 

This is useful for me, as a blogger and an IndieWeb advocate, as I can not only publish and manage all my own data, but also physically host my own data too. As I have fibre broadband running to my house, it’s now feasible to serve my blog as reasonable speeds with 10-20 Mib/sec upstream (“download speed” to you), which is sufficient for my likely traffic and audience.

This ties in nicely with one of my core beliefs, that people should be able to manage all their own data if they choose. I am technically competent enough, and have the meants at my disposal to do it. So why not!

Another driver towards this is that I wish to permanently separate “work” and “pleasure”. My business web hosting and cloud service is for my customers. Yes, we host our own web content as a business, but personal content? Well, in the interests of security and vested interests, I am pushing towards making  personal content something that is only hosted for a paying customer.

Of course, I would encourage anyone to start their own adventure self-hosting too!

Many bridges to cross

Naturally, taking on this type of arrangement has various challenges attached. Here is a selection of the tasks still to be achieved:

  • Convert some space in house for hosting
    • Create a level screed
    • Sort out wiring
    • Fire detection/resistance considerations
    • Power supply (e.g. UPS)
    • Physical security
  • Get server cabinet & rack it up
  • Configure firewall(s)/routing accordingly
  • Implement back-up – and possibly failover – processes

Step one: documentation

Whilst I am progressing these endeavours, it would be remiss if I didn’t document them. There is a lot to be said for the benefits (to a devop, anyway) of hosting one’s own sites and data, but naturally my blog must carry on while I am in the process of building its new home.

A quick jiggle around of my site’s menu structure will hopefully clarify where you can see this work, going forwards (hint, check the projects menu).

Taking it from here

If you are interested in hosting your own servers and being in direct control over your content/data, why not subscribe to this blog’s RSS feed or subscribe by email (form towards footer). Or if you have comments, just “Leave a Reply” beneath! 🙂

Ravensbourne campus entrance
The campus venue where the magic happens.

MozFest

Let’s be clear from the outset: there’s no word that adequately defines MozFest.  The Mozilla Festival is, simply, crazy. Perhaps it’s more kindly described as chaotic? Possibly. A loosely-coupled set of talks, discussion groups, workshops and hackathons, roughly organised into allocated floors, feed the strangely-complimenting hemispheres of work and relaxation.

Internal cross-section of Ravensbourne's floors
Nothing can prepare you for the 9 floors of intensity.

How MozFest works

Starting from the seeming calm of Ravensbourne’s smart entrance, you stroll in, unaware of the soon-experienced confusion. A bewildering and befuddling set of expectations and realisations come and go in rapid succession. From the very first thought – “ok, I’m signed in – what now?”, to the second – “perhaps I need to go upstairs?”, third – “or do I? there’s no obvious signage, just a load of small notices”…. and so on, descending quickly but briefly into self-doubt before emerging victorious from the uneasy, childlike dependency you have on others’ goodwill.

Volunteers in #MozHelp t-shirts, I’m looking at you. Thanks.

The opening evening started this year with the Science Fair, which featured – in my experience – a set of exciting hardware and software projects which were all in some way web-enabled, or web-connected, or web-controlled. Think Internet of Things, but built by enthusiasts, tinkerers and hackers – the way it should be.

“Open Hardware” projects, interactive story-telling, video games and robots being controlled by the orientation of the smartphone (by virtue of its gyroscopic capability).. the demonstration of genius and creativity is not even limited by the hardware available. If it didn’t already exist, it got designed and built.

An Open Web, for Free Society

Seminar on fixing corruption in public services
A multitude of social and policy-driven themes permeated MozFest

As made clear from the opening keynotes on Saturday morning, MozFest is not a place for debate. Don’t think this as a bad thing. The intention is simply to help communicate ideas, as opposed to getting bogged down in the mire of detail. “Free” vs “Open”? Not here. The advice given was to use one’s ears much more than one’s mouth, and it’s sound advice – no pun intended. I have generally been considered a good listener, so I felt at home not having to “prove” anything by making a point. There was no point. 😉

Several themes were introduced in the keynote speeches which really resonated with the attendees – sorry, the participants of MozFest. That of online security and surveillance, more than two years after Edward Snowden’s revelations, was as prominent as ever. Participation was another key theme, and to me one of the most poignant ideas of the whole weekend. Participation was not encouraged or expected; it was simply threaded into the very fabric of one’s presence. You participated, to a lesser of greater degree. This was one of the most socially inclusive experiences I have ever known.

Stories by the Fireside

I cannot overstate how social inclusion at all levels permeated MozFest. From the smallest of teams – 2 individuals, to the largest groups I saw, people were constantly engaged in conversation, development – personal, social and technical, and – perhaps surprisingly – quiet reflection, too.

Image of cupcakes with unusual toppings
Creativity and individuality – there’s a lot of it

Quiet zones were available for those needing a little downtime. The cerebral intensity of the weekend is clearly felt.

The concept of the fire-side story appeared several times, reminding us that the web isn’t just a resource in and of itself, but rather a medium to convey information.  Storytelling, one of the oldest methods of such conveyance, was a prescient theme. Represented through journalism, community and leadership, the scale of recognition (and a reminder) that the web is, primarily, a means to convey stories, took me somewhat aback. It’s inescpable logic, almost lost amidst the omnipresent noise of today’s social media.

Looking to the Future

Not only was MozFest a means to appreciate, understand and build upon the means to share information, it was also firmly invested in its future. Science and education were extremely well represented by group talks, workshops and forums.

Code visualising MozFest pathways on GitHub
Pathways were a means for guiding participants through the plethora of activities.

In fact, the sheer number of topics on offer, and guaranteed clashing of events sure to interest you, simply went to prove one thing: the web is not just big, it’s bigger than you can imagine. How the event planners and coordinators of MozFest actually found a way to combine the multitude of themes and interests into “Spaces” and “Pathways” is a huge credit to the thought-leadership behind this event. By encouraging leadership, the Mozilla Foundaiton has shown itself to be a more-than-capable leader in as diverse a field as there can be.

What I learned at MozFest

On arrival, I didn’t know what to expect. First-timers don’t.  I had a vague incling that I would face a learning curve, adapting to the culture and activities of the event. Like a wandering spirit, I probably stared starry-eyed at the overwhelming number of quickly-scribbled “adverts”, pinned, taped and hung up everywhere, telling me about “this event” or “that workshop”.  Even now, in reflection, I feel that the above post barely scratches the surface of the experience.

It’s sensory-overload, pure and simple. 🙂

MozFest is a journey. Physically, many people made long journeys to attend and participate. To those people, I am grateful – you have made my life richer by your efforts. But psychologically, emotionally and intellectually MozFest is so much more than the sum of its multitudinous parts: It’s an idea, a belief that together we can build something better for much time to come; build something to last that has intrinsic “goodness”. And we are not actually talking about the web. The conversation has evolved. The web might be the medium, but the story is now about us.

The question is, how do we nurture our most sublime nature, and be all we can?

I recently kept getting this problem in Firefox:

Screen capture of error message in Firefox
Are you seeing this a lot when using Firefox / Iceweasel / etc?

If you use Firefox and have recently come across this error, fear not.  This intention of this page is to resolve these errors once and for all!

There are a few key steps to resolving it:

  1. Clear Cookies & Cache
  2. Use System Proxy
  3. Disable all Add-ons
  4. Close and restart browser
  5. Try again

 

The instructions provide clues, but don’t spell out, how to set up org2blog for multiple blogs. https://github.com/punchagan/org2blog

(setq org2blog/wp-blog-alist 
  '(("wordpress" :url "http://username.wordpress.com/xmlrpc.php"
     :username "username"
     :default-title "Hello World"
     :default-categories ("org2blog" "emacs")
     :tags-as-categories nil) 
    ("my-blog" :url "http://username.server.com/xmlrpc.php"
     :username "admin")))

But what if you don’t want to specify your username and password in this multi-site set-up?

The answer lies in expanding on the elisp provided.

(let 

 (creds-stevedowe creds-warpuni creds-status)
 (add-to-list 'auth-sources "~/.netrc") 
 
 (setq creds-stevedowe (auth-source-user-and-password "stevedowe.me")) 
 (setq creds-warpuni (auth-source-user-and-password "warpuni.com")) 
 (setq creds-status (auth-source-user-and-password "status.warphost.net"))

 (setq org2blog/wp-blog-alist 
  `( ("stevedowe.me"
      :url "https://dowe.io/xmlrpc.php"
      :default-categories ("me" "process" "things" "world")
      :tags-as-categories nil
      :username ,(car creds-stevedowe)
      :password ,(cadr creds-stevedowe)) 

     ("warpuni.com"
      :url "https://warpuni.com/xmlrpc.php"
      :default-categories ("Analytics","BioData","FreeSoftware","Internet","Mobile","News","Productivity","Security","Social" "Support")
      :tags-as-categories nil
      :username ,(car creds-warpuni)
      :password ,(cadr creds-warpuni)) 

     ("status.warphost.net"
      :url "https://status.warphost.net/xmlrpc.php"
      :tags-as-categories nil
      :username ,(car creds-status)
      :password ,(cadr creds-status)))))

[ This is a legacy post. Some details may no longer be relevant to modern software implementations. ]