# Upgrading Nikola: some pitfalls and how I climbed out of them

After some hacking of my dotfiles and python settings, I lost my nikola virtual environment (I think it broke after a brew update or something. The hacking's only partly recorded in the issues on GitHub).

But that's no biggie, just make a new one and re-install, right? Well, not quite. The re-install gives you the latest Nikola (great!) and that means I have to review and update my conf.py (okay...) and figure out runtime errors like this:

[src:?][[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */:~/hax/net/blog/milosophical.me]
[07:27](nikola)$nikola version Traceback (most recent call last): File "/Users/mjl/lib/nikola/bin/nikola", line 11, in <module> sys.exit(main()) File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/__main__.py", line 171, in main _ = DN.run(oargs) File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/__main__.py", line 339, in run self.nikola.init_plugins() File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/nikola.py", line 1077, in init_plugins self._activate_plugins_of_category("SignalHandler") File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/nikola.py", line 1233, in _activate_plugins_of_category plugin_info.plugin_object.set_site(self) File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/plugins/misc/taxonomies_classifier.py", line 328, in set_site self._register_path_handlers(taxonomy) File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/plugins/misc/taxonomies_classifier.py", line 316, in _register_path_handlers doc = taxonomy.path_handler_docstrings[name] KeyError: 'page_index_folder_index'  (well, pooh). I decided a while back that I wasn't going to meta-blog (otherwise most of my posts would be about blogging!), but I think in this case, Rule 4 will come to the rescue. Anyway at least you know this story has a happy ending, or else I wouldn't be able to add this new_post! Read more… # Organising my digital stuff I started to write about my ${HOME} directory structure in my post about /home filesystem choices but then it got terribly long and complicated. So I'm writing about it here.

Since switching to a new computer at work I have been reviewing my hodge-podge of directories that I moved from my old work laptop. Same as with my emacs configuration, I like my \${HOME} to be familiar and friendly no matter what computer and operating system I'm using. Also like emacs at the beginning of this year, it's presently a mess. So I'm documenting how I'd like it to look, be that on my home Linux computer, the Windows mode of the same, or on my work's Macintosh.

This long and detailed article is for my own purpose. Others MAY find it frightfully dull and of little value.

# Choosing Filesystems and devices for home server

With the release of openSUSE Leap 42.2 just 25 days away, I'm considering to move to it, from my current openSUSE 13.2 Harlequin. I had skipped Leap 42.1 Malachite not for any technical issues with Leap itself, but because I've been pretty tied up learning about Mac OS for work, and because I've been very happy with Harlequin anyway. But it'll reach end of life in Q1 2017 so it's time to upgrade, and I will go to the newest Leap release when it's out. The rolling release Tumbleweed is still not an option for me: not when I have an NVidia GPU and also want to play with CUDA and run VirtualBox VMs.

When I moved house back in 2013, I made a number of rushed decisions and among those was to accept the default filesystem suggestion from Harlequin's YaST installer: use btrfs for the /root volume, and XFS for /home. I also put both of these into LVM volumes on the computer's 128G SSD, with about 40G for /root, 8G for swap and the rest for /home thinking "It's LVM, so I can resize the volumes later if this doesn't work out." .... Well, yes, you can resize LVM volumes, but the filesystems contained within behave differently. It turned out that I wanted to grow /root by taking away some space from /home, but I hit a snag: XFS filesystems can't be shrunk, only grown. Bummer.

This time around I will take the opportunity of the upgrade to reformat my /home volume, but the questions are:

• Which filesystems to choose from?
• Which filesystem for /home is best?
• Where to put /home?

Should I have my home on my fast, but pokey SSD, or should I move it to a slow(er) but expansive HDD? Come to think of it, what about tiered storage in general? (SSD, HDD, "cloud", backups, archives). How should I manage these volumes in a non-intrusive way?

So here are my thoughts and plans.

We're back from a two-weeks family trip to Victoria, along the Great Ocean Road. We planned to do some GeoCaching along the way and we even purchased a store-display model Magellan eXplorist 510 which has support for paper-less caching. It's great, if a bit heavy on the batteries.

The trip was so epic and busy, and we did so many things along the way that we barely had time to stop for caches - we only found six! But it was still a fun diversion.

This article's about the TomTom XL though, our venerable old in-car sat' nav', which needs a little help to do GeoCaching. The device dates from around 2006/2007 I think. Before our trip, we purchased a (long overdue) map update for it, and then the night before we left home I sat down for a bit to re-learn how to upload caches into it as Points Of Interest. This makes driving to the nearest cache much simpler because the TomTom can plan the route. Or else you will see caches popping up along your way if you have a different route already planned.

# One Spacemacs Config to Rule Them All

It's been a month since I started using Spacemacs for my Emacs configuration, and adopted it as my main editor. What's been happening?

Well, mostly not a lot, which is exactly why I wanted to use it. Oh, sure, my commit history shows I've been fairly busy making small adjustments, but they are just tweaks here and there, nothing to blog about.

But, I did sit down this weekend and hack at it so that I can install the same dotspacemacs settings everywhere, which is worth a blog entry.

# Standing Desks update

It's been about a year since I started standing at work, time for an update, mainly so I can show off the desktop I built a few months ago, which is working out quite nicely.

# Spacemacs for 2016

I've been an Emacs user for more than 15 years and I've been keeping my emacs configuration ever since February 2000 (when it was just a simple ~/.emacsrc) until it evolved over time to something quite complex and hairy. Since the past couple of years it's developed a will of its own, to the point now that I cannot easily maintain it: if I make a change to something, three other things will unexpectedly break.

I tried last year to overhaul my ~/.emacs.d structure and I had some success, but it's still an awful mess.

So, in December 2015 I declared Emacs Configuration Bankruptcy.

# Import Library eBooks into Kobo

I was asked by my neighbor (a second time) to help importing eBooks that she downloaded from the state Library into her mother's Kobo eReader. Much scratching of heads and drinking of tea ensued, but we sorted it out, in the end. This post describes some of what I learned, though not the DRM bit: we worked that out the first time and it was so painful I have driven it from my mind.

# Resetting Firefox

I just survived my first Firefox Reset and lived to tell about it.

I was experiencing some weird cross-site stuff for one of work's web tools, and decided to give Firefox's Reset a try. It actually worked!

My concern was that, because it deletes all your add-ons and customisations, I would lose them. Fortunately, I also use Firefox Sync already. So that meant, after Firfox had cleaned itself up, it re-downloaded all my custom goodness and re-installed it.

One caveat: you do have to Restart Firefox after Sync has done it's bit to re-install Addons. After that, everything is as it should be. Hurray.

### The steps to Refresh Firefox are:

1. Go to about:support
2. Press the Refresh button in the top right
3. Wait for Sync to finish (you can check how it's going by looking in about:addons to see if your Extensions are all there yet)
4. Restart Firefox (either from the addons page, or by pressing Alt-F2 and typing restart)

It's really handy to have all my SSH authentication be passwordless, but in a secure way. In openSUSE, the ssh-agent is started for you automatically, but you still need to add your identities manually (and enter passphrases when you do this). That's a bit of a pain to do every time you login.