KDE Slimbook 2 Review

KDE Slimbook 2 Review

KDE Slimbook 2  Outside

The kind folks at Slimbook recently sent me the latest generation of their ultrabook-style laptop line for review, the KDE Slimbook 2. You can hear my thoughts on the latest episode of the Ubuntu Podcast, released on June 7th 2018.

Slimbook are a small laptop vendor based in Spain. All the laptops ship with KDE Neon as the default operating system. In addition to their hardware, they also contribute to and facilitate local Free Software events in their area. I was sent the laptop only for review purposes. There's no other incentive provided, and Slimbook didn't see this blog post before I published it.

Being a small vendor, they don't have the same buying power with OEM vendors as other big name laptop suppliers. This is reflected in the price you pay. You're supporting a company who are themselves supporting Free Software developers and communities.

If you're after the cheapest possible laptop, and don't care about its origin or the people behind the device, then maybe this laptop isn't for you. However, if you like to vote with your wallet, then the KDE Slimbook should absolutely be on your list to seriously consider.

Specs

The device I was sent has the following technical specifications.

  • Core i5-7200 @ 2.5GHz CPU
  • Integrated Intel HD 620 GPU
  • 16GB DDR4 RAM
  • 500GB Samsung 960 EVO SSD
  • Intel 7265 Wireless chipset
  • Bluetooth chipset
  • 1080p Matte finish
  • Full size SD card
  • Heaphone socket and built in mic
  • 720p webcam
  • 1 x USB 3.0 (USB3.1 Gen 1) (Type A), 1 x USB 3.0 (USB3.1 Gen 1) (Type C), 1 x USB 2.0 (Type A)
  • Spanish 'chiclet' style keyboard with power button in top right
  • 3-level keyboard backlight
  • Elan Synaptics touch pad
  • 46Wh battery, TPS S10
  • Power adpater with right-angle plug
  • USB-C dongle

As shipped, mine came in at around ~1098EUR / 956GBP / 1267USD. Much of this can be tweaked, including the keyboard layout, although doing so may extend the lead time on receiving the device. There are plenty of options to tweak, and the site gives a running total as you adjust to taste. There's an i7 version, and I'm told it will soon be possible to order one with a black case, rather than the silver I was shipped. The laptop shipped with one drive, but has capacity for both an M.2 and traditional form factor drive too. So, fully loaded you could order this with 2x1TB SSDs if you're after extra disk space.

Notable is the lack of Ethernet port, which for some is a dealbreaker, even in these days of ubiquitous reliable wifi for many. The solution Slimbook went with is to provide two optional 'dongles'. One connects to USB3 Type A and presents an Ethernet port. The other option connects to the USB C port and provides 3 more USB 3 tradtional ports and an Ethernet socket. Slimbook shipped me the latter, which was super useful for connecting more USB devices, and a LAN cable.

The cable on the dongle is relatively short, but it feels solid, and I had no problems with it in infrequent daily use. One omission on the dongle is the lack of a pass-through USB C port. Once the dongle is attached to the laptop, you've used your only type-c connector. This might not be a problem if you're a luddite like me who had very few USB-C devices, but I imagine that'll be more of an issue going forward. This is an optional dongle though, and you could certainly choose not to get it, but purchase a differenty one to service your requirements.

Software

KDE Slimbook  2 Inside

Default install - KDE Neon

The laptop shipped with KDE Neon. It's no secret to listeners of the Ubuntu Podcast that I'm a bit of a KDE fanboy since I began testing Neon a few months back, and stuck with it on my ThinkPad T450. So I am a little biased in favour of this particular Linux distribution. So I felt very much at home on the Slimbook with KDE.

On other computers I've tweaked the desktop in various ways - it's the KDE raison d'être to expose settings for everything, and I usually tweak a fair number. However on the Slimbook I wanted to try out the default experience. I found the default applications easy to use, well integrated and reliable. I'm writing this blog post in Kwrite, and have noticed features that I would have not expected here, such as the zoomed out code view and popup spelling completion.

I'm pleasantly surprised by the choices made on the software build here. KDE performs well & starts up and wakes from suspend quickly. Everything works out of the box, and the selection of applications is small, but wisely chosen. Unsurprisingly I've augmented the default apps with a few applications I use on a daily basis elsewhere, and they all fit in perfectly. I didn't feel any of the applications I use stood out as alien, or non-KDE originals. The theme and app integration is spot on. If I were a Slimbook customer, I'd happily leave the default install pretty much as-is and thoughouly enjoy the experience.

The software is delivered by the usual Ubuntu 16.04 (Xenial) archives, with the KDE Neon archive delivering updates to the KDE Plasma desktop and suite of applications. In addition two PPAs are enabled. One for TLP and another for screenfetch. Personally on a shipping laptop I'd be inclined not to enable 3rd party PPAs, but perhaps supply documentation which details how the user can enable them if required. PPAs are not stable, and can deliver unexpected updates and experiences to users.

I should also mention in the pack was a tri-fold leaflet titled "Plasma Desktop & You". It details a little about KDE, the community and invites new users to not only enjoy the software, but get involved. It's a nice touch.

Alternative options

Slimbook don't appear to offer other Linux distributions - and given the lid of the laptop has a giant KDE logo engraved on it, that wouldn't make a ton of sense anyway.

However I tested a couple of distros on it via live USB sticks. With Ubuntu 18.04 everything worked, including the USB C Ethernet dongle. For fun I also tried out Trisquel, which also appeared to mostly work including wired network via the dongle, but wifi didn't function. I didn't attempt any other distros, but given how well KDE Neon (based on Ubuntu 16.04), Ubuntu 18.04 worked, I figure any distro-hoppers would have no hardware compatibility issues.

Hardware

Display & Graphics

The 1080p matte finish panel is great. I found it plenty bright and clear enough at maximum brightness. There are over 20 levels of brightness and I found myself using a balanced setting near the middle most of the time, only needing full brightness sometimes when outside. The viewing angles are fine for a single person using it, but don't lend well to having a bunch of people crouched round the laptop.

I ran a few games to see how the integrated GPU performed, and it was surprinsgly okay. My usual tests involved running Mini Metro which got 50fps, Goat Simulator at 720 got me 25fps and Talos Principle at 1080p also clocked in 25fps. This isn't a gaming laptop but if you want to play a few casual games or even run some emulators between work, it's more than up to the task.

Performance

I use a bunch of fairly chunky applications on a daily basis including common electron apps and tools. I also frequently build software locally using various compilers. The Slimbook 2 was a super effective workstation computer for these tasks. It rarely broke into a sweat, with very few occasions where the fan span up. Indeed I can't really tell you how loud the fan is because I so rarely heard it.

It boots quickly, the session starts promptly and application startup isn't a problem. Overall as a workstation, it's fine for any of the tasks I do daily.

Keyboard

KDE Slimbook  2 Keyboard

The keyboard is a common 'chiclet' affair, with a full row of function keys that double as media, wifi, touchpad, brightness hardware control buttons. The arrow cluster is bottom right with home/end/pgup/pgdown as secondary functions on those keys. The up/down arrows are vertically half-size to save space, which I quite like.

The "Super" (Windows) key sports a natty little Tux with the Slimbook logo beneath. Nice touch :)

Touchpad

The touchpad is a decent size and works with single and double touch for click/drag and scrolling. I did find the palm rejection wasn't perfect in KDE. I sometimes found myself nuking chunks of a document while typing as my fat thumbs hit the touchpad, selecting text and overtyping it.

I tried fiddling with the palm rejection options in KDE but didn't quite hit the sweet-spot. I've never been a fan of touchpads at all, and would likely just turn off the device (via Fn-F1) if this continued to annoy me, which it didn't especially.

Audio

As with most ultrabook style laptops the audio is okay, but not great. I played my usual test songs and the audio reproduction via speakers lacked volume, was a bit tinny and lacked bass.

With headphones plugged in, it was fine. I rarely use laptop speakers personally, but tend to use a pair of headphones. Nobody wants to hear what I'm listening to :). It's fine for the odd video conference though.

Battery

The model I had was supplied with a 46Wh battery, a small & lightweight ~40W charger and euro power cable & right angled barrel connector to the laptop. Under normal circumstances with medium workload I would get around 7 hours, sometimes more.

Leaving the laptop on, connected to wifi, with KDE power management switched off and brightness at 30% the system lasted around 8 hours 40 mins. I'd anticipate with a variable workload, with KDE power management switched on, you'd get similar times.

I also tried leaving the laptop playing a YouTube video at 1080p, full screen with wifi switched on and power management suppresed by the browser. The battery gave out after around 5 hours.

The battery takes around 4 hours to re-charge while the laptop is on. This is probably faster if you're not using the laptop at the time, but I didn't test that.

Overall impressions

I've been really happy using the KDE Slimbook 2. The software choices are sensible, and being based on Ubuntu 16.04 meant I could install whatever else I needed outside the KDE ecosystem. The laptop is quiet, feels well built and was a pleasure to use. I'm a little sad to give it back, because I've got used to the form-factor now.

I have only a couple of very minor niggles. The chassis case is a little sharp around the edges, much like the MacBook Air it takes design cues from. Secondly, when suspended the power LED is on the inside of the laptop, above the keyboard. So if like me, you suspend your laptop by closing the lid, you won't know if it suspended properly by looking at the slow blink of the power LED. It's a minor thing, but having been burned (literally) in the past by a laptop which unexpectedly didn't suspend, it's something I'm aware of.

Other than that, it's a cracking machine. I'd be happy to use this on a daily basis. If you're in the market for a new laptop, and want to support a Linux vendor, this device should totally be on your list. Thanks so much to Slimbook for shipping the device over and letting me have plenty of time to play with it!

New Ubuntu Community Hub Launched

A while back I proposed that we replace the old static Ubuntu Community site, which looked a bit like this, with something a little more dynamic.

The previous Ubuntu Community site

So today we are replacing the static site with an instance of discourse, which looks a bit like this

The new Ubuntu Community Hub

You can go back and read that blog post for the full rationale but essentially it boils down to two aims:

  • We want to improve community communication
  • We want to smooth the onboarding process for new contributors.

Since the blog post I have spent some time getting feedback from people in the Ubuntu community and we’ve had a bunch of great tips and suggestions to ensure the site works effectively.

The site is now live at https://community.ubuntu.com/ - I’d welcome new and existing Ubuntu community members to head on over and take a look. We have opted to exclusively use Ubuntu SSO for authentication, so you won’t need to remember a new password.

A prototype site was stood-up which allowed us to shake out installation and setup issues, and build the initial categories and theme. We created a basic Ubuntu branded theme which will do for the initial site launch, but could certainly be improved upon - CSS experts welcome here!

We ported the existing content over from the static site into the documentation category. These have been converted to ‘wiki posts’ so they can continue to be easily expanded, refined and improved by future visitors. I’d welcome our active community members to re-review those periodically and help us to make them an accurate and welcoming starting point for new contributors.

We created a few “seed” posts thanks to Will Cooke from the Desktop team, and Jean Baptiste on the subject of QA.

A sample desktop post

We have a few initial categories to get things started. Desktop for discussion of the Ubuntu Desktop, where we expect there to be a lot of interest as the 17.10 release approaches, and people discover the new GNOME default desktop. The Quality topic is for co-ordination and announcements of QA activities, such as ISO testing, or where we have interesting new things landing which need wider validation.

A sample QA post

The Events topic was created for discussion of Ubuntu-related events. These could be meet-ups, UbuCons, Ubuntu Hours or any other appropriate in person or virtual advocacy activities. If you’re thinking of planning an event and want to discuss it with people who have trodden this path before, this is the place to do it. It would also be great to see posts in there after events have happened, detailing how things went, what activities were well received, and how things could be improved.

The Site Feedback section and Uncategorised sections should speak for themselves. We will of course take a view on whether more categories are required as and when particular topics break out from the existing ones. For now, the existing ones should be sufficient, but if not, let us know.

Not a technical support site

Finally, the site is very specifically not for technical support, so I’ve explained this in the Support & Help Requests category to make it clear. The site isn’t designed to be a replacement for all the other great places users can get technical help. So we’ve linked to them in the category description.

Where to get support

I’d like to thank Gustavo Neimeyer for standing up the site prototype. I’d also like to thank Nathan Haines, Simon Quigley, Marius Quabeck, Will Cooke, Martin Wimpress and Didier Roche for all their work in keeping this little project pointing in the right direction.

Head on over to https://community.ubuntu.com/, and get involved! :)

Ubuntu Community Hub Proposal

Status Quo

For over four years now, the Ubuntu Community Portal has been the 'welcome mat' for new people seeking to get involved in Ubuntu. In that time the site had seen some valuable but minor incremental changes; no major updates have occurred recently. I'd like us to fix this. We can also use this as an opportunity to improve our whole onboarding process.

I've spent a chunk of time recently chatting with active members of the Ubuntu Community about the community itself. A few themes came up in these conversations which can be summarised as:-

  • Our onboarding process for new contributors is not straightforward or easy to find
  • Contributors find it hard to see what's going on in the project
  • There is valuable documentation out there, but no launch pad to find it

To try address these concerns we have looked at each area to try improve the situation.

Onboarding

A prospective contributor has a limited amount of their spare time to get involved, and with a poorly documented or hard-to-find on-boarding process, they will likely give up and walk away. They won't know where to go for the 'latest news' of what's happening in this development cycle, or how they can contribute their limited time to the project most effectively and it is important that get access to the community straight away

Communication

Ubuntu has been around a long time with teams using a range of different communication tools. Despite happening in the open, the quick moving and scattered conversations lose transparency. So finding out what's 'current' is hard for new (and existing) contributors. Surfacing the gems of what's needed and the current strategic direction more obviously would help here and having a place where all contributors can discuss topics is important.

Documentation

The wiki has served Ubuntu well but it suffers from many of the problems wikis have over time, namely out-of-date information, stale references, and bloat. We could undertake an effort to tidy up the wiki but today we have other tools that could serve better. Sites such as http://tutorials.ubuntu.com and http://docs.ubuntu.com which are much richer and easier to navigate and form the basis of our other official documentation and ways of working. Using these in conjunction with any new proposal makes much more sense.

So, what could we do to improve things?

Community Hub Proposal

I propose we replace the Community Portal with a dynamic and collaboratively maintained site. The site would raise the profile of conversations and content, to improve our onboarding and communication issues.

We could migrate existing high-value content over from the existing site to the new one, and encourage all contributors to Ubuntu, both within and outside Canonical to post to the site. We will work with teams to bring announcements and conversations to the site, to ensure content is fresh and useful.

In common with many other projects, we could use discourse for this. I don't expect this site to replace all existing tools used by the teams, but it could help to improve visibility of some.

The new Hub would contain pointers to the most relevant information for on-boarding, calls for participation (in translation, documentation, testing), event announcements, feature polls and other dynamic conversations. New & existing contributors alike should feel they can get up to date with what's going on in Ubuntu by visiting the site regularly. We should expect respectful and inclusive conversation as with any Ubuntu resource.

The Community Hub isn’t intended to replace all our other sites, but add to them. So this wouldn’t replace our existing well established Ask Ubuntu and Ubuntu Forums support sites, but would supplement them. The Community Hub could indeed link to interesting or trending content on the forums or unanswered Ask Ubuntu questions.

So ultimately the Community Hub would become a modern, welcoming environment for the community to learn about and join in with the Ubuntu project, talk directly with the people working on Ubuntu, and hopefully become contributors themselves.

Next steps

We’ll initially need to take a snapshot of the pages on the current site, and stand up an instance of discourse for the new site. We will need to migrate over the content which is most appropriate to keep, and archive anything which is no longer accurate or useful. I’d like us to have some well defined but flexible structure to the site categories. We can take inspiration from other community discourse sites, but I’d be interested in hearing feedback from the community on this.

While the site is being set-up, we’ll start planning a schedule of content, pulling from all teams in the Ubuntu project. We will reach out to Ubuntu project teams to get content lined up for the coming months. If you’re active in any team within the project, please contact me so we can talk about getting your teams work highlighted.

If you have any suggestions or want to get involved, feel free to leave a comment on this post or get in touch with me.

Ubuntu Artful Desktop July Shakedown

Ubuntu Artful Desktop July Shakedown

We’re mid-way through the Ubuntu Artful development cycle, with the 17.10 release rapidly approaching on the horizon. Now is a great time to start exercising the new GNOME goodness that’s landed on our recent daily images! Please download the ISO, test it out on your own hardware, and file bugs where appropriate.

If you’re lucky enough to find any new bugs, please tag them with ‘julyshakedown’, so we can easily find them from this testing session.

Ubuntu Artful Desktop

We recently switched the images to GDM as the login manager instead of LightDM, and GNOME Shell is now the default desktop, replacing Unity. These would be great parts of the system to exercise this early in the cycle. It’s also a good time to test out the Ubuntu on Wayland session to see how it performs in your use cases.

Get started

Suggested tests

This early in the cycle we’re not yet recommending full ISO testing, but some exploratory tests on a diverse range of set-ups would be appropriate. There’s enough new and interesting stuff in these ISOs that make it worthwhile giving everything a good exercise. Here’s some examples of things you might want to run through to get started.

Ubuntu on Wayland

  • Logging in using the ‘Ubuntu on Wayland’ session for your normal day to day activities
  • Suspend & resume and check everything still functions as expected
  • Attach to, and switch between wired and wireless networks you have nearby
  • Connect any bluetooth devices you have, especially audio devices, and make sure they work as expected
  • Plug in external displays if you have them, and ensure they work as usual

Reporting issues

The Ubuntu Desktop Team are happy to help you with these ISO images. The team are available in #ubuntu-desktop on freenode IRC. If nobody is about in your timezone, you may need to wait until the European work day to find active developers.

Bugs are tracked in Launchpad, so you’ll need an account there to get started.

If you report defects that occur only when running a wayland session please add the tag ‘wayland’ to the bug report.

Remember to use the 'julyshakedown' tag on your bugs so we can easily find them!

Known issues

There is a known issue with using Bluetooth audio devices from the greeter.  This means that people won’t be able to use screenreaders over Bluetooth at the greeter.  Once in the session this should all work as normal though.

Issues specific to wayland:

We look forward to receiving your feedback, and results!

:)

Building Apps for Linux without Linux

It's now super easy to build Linux software packages on your Windows laptop. No VM required, no need for remote Linux hosts.

I spend a lot of my day talking to developers about their Linux software packaging woes. Many of them are using Linux desktops as their primary development platform. Some aren't, and that's their (or their employers) choice. For those developers who run Windows and want to target Linux for their applications, things just got a bit easier.

Snapcraft now runs on Windows, via Bash on Windows (a.k.a Windows Subsystem for Linux).

Snapcraft on Windows

Microsoft updated their Windows Subsystem for Linux to include Ubuntu 16.04.2 LTS as the default image. When WSL first launched a year ago, it shipped 14.04 to early adopters and developers.

Snapcraft is available in the Ubuntu 16.04 repositories, so is install-able inside WSL. So developers on Windows can easily run Snapcraft to package their software as snaps, and push to the store. No need for virtual machines, or separate remote hosts running Linux.

I made a quick video about it here. Please share it with your Windows-using developer friends :)

If you already have WSL setup with Ubuntu 14.04 the easiest way to move to 16.04.2 is to delete the install and start again. This will remove the installed packages and data in your WSL setup, so backup first. Open a command prompt window in Windows and run:-

lxrun /uninstall

To re-install, which will pull down Ubuntu 16.04.2 LTS:-

lxrun /install

Re-installing Ubuntu

Once you've got Ubuntu 16.04.2 LTS in WSL, launch it from the start menu then install snapcraft from the Ubuntu repositories with:-

sudo apt install snapcraft

Once that's done, you can either launch snapcraft within Bash on Windows, or directly from a Window command prompt shell with bash -c snapcraft. Here's a video showing me building the Linux version of storjshare using this configuration on my Windows 10 desktop from a standard command prompt window. I sped the video up because nobody wants to watch 8 minutes of shell scrolling by in realtime. Also, my desktop is quite slow. :)

You can find out more about snapcraft from our documentation, tutorials, and the videos. We also have a forum where we'd love to hear about your experience with snapcraft.

OpenSpades Snap - pew pew

OpenSpades is a super-fun "Open-Source Voxel First Person Shooter". I've been playing it for a while both on my GameOS desktop and under WINE on Linux. For whatever reason the upstream OpenSpades on github project had no Linux builds available for download, and I was lazy so I used WINE, which worked just fine.

This weekend though I decided to fix that. So I made a snap of it and pushed it to the store. If you're on a Linux distro which supports snaps you can install it with one command:-

snap install openspades

That will install the current stable release of openspades - 0.1.1c. If you'd rather test the latest github master build (as of yesterday) then use:-

snap install openspades --edge

Note: OpenSpades needs a fairly decent video card. My poor Thinkpad T450 with its integrated Intel GPU isn't up to the job, so the game switches to software rendering. However on my more beefy nVidia-powered desktop, it uses the GPU for OpenGL funky stuff.

OpenSpades on Ubuntu

I tested this build on Ubuntu 16.04, Debian 9, elementary OS Loki, Lubuntu (i386), Fedora 25 and OpenSUSE Tumbleweed. One snap(*), lots of distros. Yeah baby! :D

OpenSpades on OpenSUSE Tumbleweed

OpenSpades on Fedora 25

OpenSpades on Debian 9

(*) Technically four snaps. One per arch (32/64-bit) and one per release (stable/edge).

I proposed my changes upstream to the OpenSpades project.

I used Launchpad to build the binaries for stable and edge on both i386 and amd64 architectures, for free. Thanks Canonical!

I had to do a couple of interesting things to make OpenSpades work nicely across all these systems. I bundled in a few libraries, and wrapped the launching of the game in a script which sets up some environment variables. I just copy and pasted that part from other projects I've done in the past.

The only slightly kludgy thing I did was copy the Resources directory into a writable directory and modify the default configuration for first-launch. OpenSpades has an 'update check' feature which looks for game updates online, but it seems to me this doesn't work on Linux - probably due to there being no binary builds currently available. So rather than the user getting prompted to enable this feature, I enabled it by default, so the user just gets a notification that they're on the latest version, rather than being asked to enable a feature that won't work anyway. With snaps the user will get an update as soon as it's pushed to the store, so no need for the in-app update mechanism I think.

I also had to disable EAX (positional audio) because it crashes OpenAL on the i386 builds. Players on AMD64 systems can of course just re-enable this, as it's only the default I set, not permanently off. I might modify this default so it's only disabled on i386 builds in future.

So if you're in need of something fun to play on your Linux system. Give OpenSpades a try, and let me know if you get any problems with the snap!

Pew pew!

April Snapcraft Docs Day

Continuing Snapcraft Docs Days

In March we had our first Snapcraft Docs Day on the last Friday of the month. It was fun and successful so we're doing it again this Friday, 28th April 2017. Join us in #snapcraft on Rocket Chat and on the snapcraft forums

Flavour of the month

This month's theme is 'Flavours', specifically Ubuntu Flavours. We've worked hard to make the experience of using snapcraft to build snaps as easy as possible. Part of that work was to ensure it works as expected on all supported Ubuntu flavours. Many of us run stock Ubuntu and despite our best efforts, may not have caught certain edge cases only apparent on flavours.

If you're running an Ubuntu flavour, then we'd love to hear how we did. Do the tutorials we've written work as expected? Is the documentation clear, unambiguous and accurate? Can you successfully create a brand new snap and publish it to the store using snapcraft on your flavour of choice?

Soup of the day

On Friday we'd love to hear about your experiences on an Ubuntu flavour of doing things like:-

Happy Hour

On the subject of snapping other people's projects. Here's some tips we think you may find useful.

  • Look for new / interesting open source projects on github trending projects such as trending python projects or trending go projects, or perhaps recent show HN submissions.
  • Ask in #snapcraft on Rocket Chat if others have already started on a snap, to avoid duplication & collaborate.
  • Avoid snapping frameworks, libraries, but focus more atomic tools, utilities and full applications
  • Start small. Perhaps choose command line or server-based applications, as they're often easier for the beginner than full fat graphical desktop applications.
  • Pick applications written in languages you're familiar with. Although not compulsory, it can help when debugging
  • Contribute upstream. Once you have a prototype or fully working snap, contribute the yaml to the upstream project, so they can incorporate it in their release process
  • Consider uploading the application to the store for wider testing, but be prepared to hand the application over to the upstream developer if they request it

Finally, if you're looking for inspiration, join us in #snapcraft on Rocket Chat and ask! We've all got our own pet projects we'd like to see snapped.

Food for thought

Repeated from last time, here's a handy reference of the projects we work on with their repos and bug trackers:-

Project Source Issue Tracker
Snapd Snapd on GitHub Snapd bugs on Launchpad
Snapcraft Snapcraft on GitHub Snapcraft bugs on Launchpad
Snapcraft Docs Snappy-docs on GitHub Snappy-docs issues on GitHub
Tutorials Tutorials on GitHub Tutorials issues on GitHub

Switching from WordPress to Nikola

Goodbye WordPress!

For a long while my personal blog has been running WordPress. Every so often I've looked at other options but never really been motivated to change it, because everything worked, and it was not too much effort to manage.

Then I got 'hacked'. :(

I host my blog on a Bitfolk VPS. I had no idea my server had been compromised until I got a notification on Boxing Day from the lovely Bitfolk people. They informed me that there was a deluge of spam originating from my machine, so it was likely compromised. Their standard procedure is to shutdown the network connection, which they did.

At this point I had access to a console to diagnose and debug what had happened. My VPS had multiple copies of WordPress installed, for various different sites. It looks like I had an old theme or plugin on one of them, which the attackers used to splat their evil doings on my VPS filesystem.

Being the Christmas holidays I didn't really want to spend the family time doing lots of phorensics or system admin. I had full backups of the machine, so I requested that Bitfolk just nuke the machine from orbit and I'd start fresh.

Bitfolk have a really handy self-service provisioning tool for just these eventualities. All I needed to do was ssh to the console provided and follow the instructions on the wiki, after the network connection was re-enabled, of course.

However, during the use of the self-serve installer we unconvered a bug and a billing inconsistency. Andy at Bitfolk spent some time on Boxing Day to fix both the bug and the billing glitch, and by midnight that night I'd had a bank-transfer refund! He also debugged some DNS issues for me too. That's some above-and-beyond level of service right there!

Hello Nikola!

Once I'd got a clean Ubuntu 16.04 install done, I had a not-so-long think about what I wanted to do for hosting my blog going forward. I went for Nikola - a static website generator. I'd been looking at Nikola on and off since talking about it over a beer with Martin in Heidelberg

Beer in Heidelberg

As I'd considered this before, I was already a little prepared. Nikola supports importing data from an existing WordPress install. I'd already exported out my WordPress posts some weeks ago, so importing that dump into Nikola was easy, even though my server was offline.

The things that sold me on Nikola were pretty straightforward.

Being static HTML files on my server, I didn't have to worry about php files being compromised, so I could take off my sysadmin hat for a bit, as I wouldn't have to do WordPress maintenance all the time.

Nikola allows me to edit offline easily too. So I can just open my text editor of choice start bashing away some markdown (other formats are supported). Here you can see what it looks like when I'm writing a blog post in todays favourite editor, Atom. With the markdown preview on the right, I can easily see what my post is going to look like as I type. I imagine I could do this with WordPress too, sure.

Writing this post

Once posts are written I can easily preview the entire site locally before I publish. So I get two opportunities to spot errors, once in Atom while editing and previewing, and again when serving the content locally. It works well for me!

Nikola Workflow

Nikola is configured easily by editing conf.py. In there you'll find documentation in the form many comments to supplement the online Nikola Handbook. I set a few things like the theme, disqus comments account name, and configuration of the Bitfolk VPS remote server where I'm going to host it. With ssh keys all setup, I configured Nikola to deploy using rsync over ssh.

When I want to write a new blog post, here's what I do.

cd popey.com/site
nikola new_post -t "Switching from WordPress to Nikola" -f markdown

I then edit the post at my leisure locally in Atom, and enable preview there with CTRL+SHIFT+M.

Once I'm happy with the post I'll build the site:-

nikola build

I can then start nikola serving the pages up on my laptop with:-

nikola serve

This starts a webserver on port 8000 on my local machine, so I can check the content in various browsers, and on mobile devices should I want to.

Obviously I can loop through those few steps over and again, to get my post right. Finally once I'm ready to publish I just issue:-

nikola deploy

This sends the content to the remote host over rsync/ssh and it's live!

Conclusion

Nikola is great! The documentation is comprehensive, and the maintainers are active. I made a mistake in my config and immediately got a comment from the upstream author to let me know what to do to fix it!

I'm only using the bare bones features of Nikola, but it works perfectly for me. Easy to post & maintain and simple to deploy and debug.

Have you migrated away from WordPress? What did you use? Let me know in the comments below.

My Ubuntu 16.04 GNOME Setup

My Ubuntu 16.04 GNOME Setup

This is a post for friends who saw my desktop screenshot and anyone else who likes Unity and is looking at alternatives. A big thanks to Stuart Langridge and Joey Sneddon whose linked posts inspired some of this.

The recent news that upcoming versions of Ubuntu will use GNOME as the default desktop rather than Unity, made me take another look at the GNOME desktop

If you're not interested in my opinion but just want to know what I did, then jump to "Migration from Unity to GNOME" below.

Why Unity?

I'm quite a Unity fan - yes, we exist! I've used it on my laptops and desktops my daily desktop pretty much since it came out, long before I worked at Canonical. I've tried a few other desktop environments, usually for no more than a week or so before getting frustrated and running back to Unity.

Here's what my typical desktop looks like on Ubuntu 16.04

Unity as I use it

At this point I'm sure there are a few people reading this and wondering why I like Unity, incredulous that anyone would. I get this from time to time. Some people seem to bizzarely think "I don't like Unity, therefore nobody does." which is ludicrous, but very obviously happening.

Anecdotally, I still see way more Unity screenshots than other desktops in random non-Linux videos on YouTube, on stranger's laptops on trains & on "millions of dollars" worth of laptops sold by Dell, System76 etc. I've also been told in person by people who like it, but don't like speaking up for fear of unwanted confrontation. ¯\_(ツ)_/¯

But it's a vocal minority of Linux users who tell me what desktop I (and everyone else) shouldn't use. Screw them, it's my PC, I'll run what I like. :)

However, that said, Unity is "dead", apparently, despite it having a few years of support left on the 16.04 LTS release. So I thought I'd take a fresh look at GNOME to see if I can switch to it easily and keep the parts of the Linux desktop I like, change the things I don't and tolerate the things I can't.

For me, it's not one single feature that made me come back to Unity time and time again, but a variety of reasons. Here's a non-exhaustive list of features I enjoy:-

  • Dash - Single button + search to launch apps and find files
  • HUD - Single button + search to find application features in menus
  • Launcher - Quick access via keyboard (or mouse) to top 10+ apps I use, always on screen
  • Window controls - Top left is their rightful place
  • Menus - In the titlebar or top bar (global)
  • App & Window switch behaviour via Alt+Tab & Alt+(key-above-tab)
  • App Spread - Super+S and Super+W to see all windows, or all windows of an app
  • Focus follows mouse - Initially global menu broke this but it was fixed

Much of this comes down to "is really well managed with just a keyboard" which is amusing given how many people tell me Unity (before Unity 8) is awful because it's designed for touch screens.

The things I think could be improved in Unity comprise a pretty short list, and if I thought really hard, I might expand this. If I did they'd probably only be papercut nit-picks rather than significant issues. So, I would have liked these things to have been fixed at some point, but that probably won't happen now :(

  • Memory footprint - It would be nice if the RAM usage of Unity was lower.
  • CPU/GPU overhead - Sometimes it can take a second or two to launch the dash, which should be near-instant all the time
  • Incompleteness - There were interesting designs & updates which never really got finished in Unity7
  • Cross distro support - It would have been nice to have Unity on other distros than just Ubuntu

So let's say a fond farewell to my primary desktop for over 6 years and make the switch.

Migration from Unity to GNOME

With that said, to move from Unity to GNOME on my ThinkPad T450 running Ubuntu 16.04 LTS I did the following:-

Install GNOME

I decided to go with the GNOME version shipping in the archive. People have suggested I try PPAs, but for my primary desktop I'd rather keep using the archive builds, unless there's some really compelling reason to upgrade.

So I backed up my laptop - well, I didn't - my laptop is backed up automatically every 6 hours, so I just figured if anything went belly-up I'd go back to the earlier backup. I then installed GNOME using this command:-

sudo apt install ubuntu-gnome-desktop^

Logout from Unity, choose GNOME at the login screen and we're in.

Default GNOME Desktop

Default GNOME Desktop

First impresssions

These are the things that jump out at me that I don't like and how they're fixed. One thing that's pretty neat about GNOME Shell is the ability to modify it via extensions. For most of the things I didn't like, there was an extension to change the behaviour.

Some are just plain extensions installed via GNOME Extensions, but some needed extra fiddling with Tweak Tool.

Activites hot corner

I find this too easily triggered, so I used No TopLeft Hot Corner. Later, I also discovered the Hide Activtes Button which helps even more by moving the window controls to the very top left, without the "Activities" in the way. I can still use the Super key to find things, with Activities hidden.

No Launcher

GNOME hides the launcher until you press Activites or the Super key. I fixed that with Dash to Dock.

In Tweak Tool, Dash to Dock settings -> Position and size -> tick "Panel mode: extend to the screen edge". I set "Intelligent Autohide" off, because I never liked that feature in Unity, although it had some vocal fans. Also I set the pixel size to 32px. In the Launchers tab I set "Move the applications button at the beginning of the dock".

Legacy indicators

Apparently developers are terrible people and haven't updated their indicators to some new spec, so they get relegated to the "Lower Left Corner of Shame". This is dumb. I used TopIcons Plus to put them where $DEITY intended, and where my eyes are already looking, the top right corner.

Volume control

In Unity I'm used to adjusting the master volume with the mouse wheel while the sound indicator is clicked. I fixed this with Better Volume Indicator

Giant titlebars

GNOME always feels to me like it's designed to waste vertical space with titlebars so I added Pixel Saver.

Missing Rubbish Bin

I like having the Trash / Rubbish Bin / Recycle Bin / Basket on screen. In Unity it's at the bottom of the launcher. I couldn't find an extension which did this so I used trash extension to move it to the top panel indicator area.

Slow animations

Some things felt a bit sluggish to me, so it was recommend that I install the Impatience extension, which seems to have helped my perception, if nothing else.

Remaining niggles

Things I haven't figured out yet. If you have any suggestions, do let me know in the comments below.

  • How to hide the clock completely
    • I frequently record screencasts of my laptop and the time jumping around in the recording can be distracting. So I just hide the clock. I don't see an easy way to do that yet.
  • Make accelerator keys work in alt+space window menu
    • For many years I have used the accelerators in the window controls menu accessed via Alt+space to do things like maximize the window. Alt+Space,x is welded in my muscle memory. I don't understand why they were disabled in GNOME Shell (they work in other desktops).
  • Alt-Tab behaviour is broken (by design (IMHO))
    • All windows of an application come to front when Alt+Tabbed to, even if I only want one window. I have to dance around with Alt+Tab & Alt+Grave.

Reader Suggestions

In the comments below, the following addtional extensions have been suggested.

Greg suggested the Alt Tab List First Window Extension which on initial play seems to fix the Alt-Tab issue listed above! Many thanks Greg!

Alif mentioned Status Area Horizontal Spacing which is great for compressing the gaps out of the indicator area in the top right, to use the space more efficiently. Thanks Alif!

The Internet's ever-fantastic Stuart Langridge created Clock override which allows me to hide the clock, or change it to any arbitrary text or date format. Thank's Stuart!

Conclusion

So this is now my desktop, and I'm quite pleased with it! Massive thanks to the GNOME team, the Ubuntu GNOME flavour team, and all the extension authors who made this possible.

My new Ubuntu GNOME Desktop

My new Ubuntu GNOME Desktop

Initially I was a bit frustrated by the default behaviour of GNOME Shell. I've been pleasantly surprised by the extent and functionality of extensions available. Without them, there's no way I'd use this on a daily basis, as it's just too irritating. I'm sure somebody loves the default behaviour though, and that's great :)

I realise I'm running an 'old' version of GNOME Shell (3.18) coming directly from the Ubuntu 16.04 (LTS) archive. It may be there's additional features or fixes that are going to improve things further. I won't be upgrading to 16.10, 17.04 or 17.10 however, and likely won't use a GNOME PPA for my primary desktop. I'll stick with this until 18.04 (the next Ubuntu LTS) has baked for a while. I don't want to upgrade to 18.04 and find extensions break and put me backwards again.

I've had this setup for a few days now, and I'm pretty pleased with how it went. Did you try this? Any other changes you made? Let me know in a comment below! Thanks. :D

Dell XPS 13 9360 Review

Dell XPS 13 9360 Review

On the 'Tasty Different Cow' (don't ask) episode of the Ubuntu Podcast - we reviewed the latest Dell XPS 13 9360 Laptop shipping with Ubuntu.

Dell kindly sent us the review unit for a couple of weeks, and while we talked all about it on the podcast, I thought I'd jot some notes down here in case I missed anything or it's not clear in the audio version.

Turns out I made more notes than I thought! Scroll to the very bottom to read my conclusion.

Hardware

First up, what did I get? Dell have a ton of different laptops available, shipping with Ubuntu out of the box, this is the one I got. I didn't get to choose it, they just sent me this unit, which I suspect has done the rounds to a few proper journalists before I got my grubby mits on it.

Specs

  • i5-7200U 2.5GHz
  • 8GB RAM
  • 256GB SSD
  • Atheros QCA6174A 802.11ac wireless
  • 1080p matte screen
  • SD slot
  • Combined headset/mic port
  • 2xUSB 3 (one each side)
  • 1xUSB-C peripheral and charging port
  • US keyboard layout
  • 60Wh design battery - model RNP726B

Mine also shipped with a very dinky 45W charger which terminates in a barrel connector. The power socket on this Dell is on the left side at the back, next to the USB C port. I didn't try charging via USB C because I don't have a high enough wattage charger - my OnePlus Dash charger wasn't sufficient. I also don't have any USB C peripherals, so couldn't test that port at all.

The laptop feels premium, very sturdy to hold, like it would stand up to some abuse, but I think a prior journalist has tested that a bit too far. My review unit was a bit bent, so rocked on the desk when typing. I can't imagine brand new factory models have this issue though, so it didn't colour my review.

Software

The Dell shipped with a relatively up to date install of Ubuntu 16.04 LTS. It didn't have the latest HWE stack installed, but that's not a big problem.

The install wasn't an out of the box experience, but had a password stuck on the box, which again, I assume is not normal ;) but for the journalists using this review unit.

Differences from stock Ubuntu

Once I logged in, there were a few things I noticed which differ from the standard Ubuntu 16.04 install I'm used to on my ThinkPad T450. This may be old news to those of you who have tried a Dell XPS 'Sputnik' laptop in the past, but it was new to me, a die-hard ThinkPad fanboy :)

There's a Dell PPA enabled by default, and some of the packages installed on the system came from there. I expect this was to support the hardware or known issues Dell customers had. Good to see, so long as it's maintained and doesn't break upgrades, in my opinion.

The Windows 'Super' key doesn't work by default. This was a bit of a shock to me, as I use the Super key on Unity all the time to launch applications and find files. Having to move my hand from the keyboard to the trackpad or mouse and move it all the way over to the top left is super inefficient and breaks the keyboard-centric nature of Unity. Thankfully this mis-feature can be disabled, Andrew Hayzen wrote some notes about his laptop (a similar model) detailing how.

The base software shipped on the laptop is different from a stock install too. With both Google Chrome and Chromium installed and listed in the launcher. Firefox isn't installed at all on this image. I don't know if the motivation is user-centric or financial, but I had no problem with this change, as I've used Google Chrome as my default browser for some time now. Others may prefer Firefox, and of course that can easily be installed.

The combined headphone/headset port was interesting to me because while I have the same on my ThinkPad, the behaviour was different. Plugging headphones into the port presented a popup dialog asking the user what type of device was attached. A handy dialog the first time I saw it, but it got a bit annoying every single time I plugged my headphones in.

Dell Recovery

One of the applications shipped from the Dell PPA is the "Dell Recovery" tool. It can make recovery USB sticks, and reboot into a recovery tool which resets the laptop back to factory defaults. This is a most welcome addition to the Ubuntu install im my mind. I've often wanted to nuke a laptop back to initial install and start fresh. I'm sure many other people have too. Having the tool built in rather than having to download an ISO and put it on a USB stick is a bonus. The downside is that the recovery media eats a chunk of your precious laptop disk space. In my mind, this is worth having.

I tested the recovery tool a couple of times, initially to see if the version of Ubuntu I had been shipped installed was the same as the out of the box one from Dell. It was. The tool worked perfectly each time, and got me back to factory install in a few minutes, with little interaction from me, just a confirmation and password prompt.

The ability to make a recovery USB stick - tailored for Dell devices - which has the PPA enabled, and the customisations mentioned previously, is also a welcome bonus. In fact my good friend and colleague Martin Wimpress made use of this on my review laptop to make a USB stick to reset his Dell back to factory defaults. More manufacturers of Linux machines should do this kind of customisation, it's fantastic.

Daily uses

Overall the laptop 'feels' really fast, especially when building software or other intense things. The fan did spin up a bit on heavy load, which was pretty audible, but I didn't hear the famous 'coil whine' that others have reported with previous models.

I had the 1080p matte screen version. I don't think I'd go for a hidpi, touch or reflective version. 1080p seems the right resolution for the 13" screen.

The keyboard has only a short travel, but that didn't present a problem when I was typing on it. I did however find myself feeling cramped using the laptop on a desk. The tiny bezel makes the 13" model look and feel pretty tiny and a bit cramped.

As mentioned, the laptop I got has a US layout, which also has the modifier keys in a strange (to me) layout. The order from bottom left is Ctrl, Fn, Win, Alt. I'm more used to having Fn in the far left, I'm sure I'd get used to this, but it threw me initially, having Ctrl farther away for my left thumb than I'm used to.

As with most laptops of the day, the Fuction keys (F1-F12) double up as media device control keys. The Fn key in the bottom left corner of the keyboard is both a 'shift' (hold-and-press) key and a toggle (tap to change mode) key. The problem here is there's no indication to tell you which mode you're in before you press a function key. The ThinkPad lines have a little light on the key itself so you know if you're in "function key" or "device control" mode, but the Dell doesn't, which is a little odd and takes getting used to.

The tiny bezel does however make my ThinkPad look like it was made in 1984. The Dell looks like a modern, premium device, not something fabricated in an eighties Soviet nuclear bunker.

The downside of having nearly no bezel is that camera location. Having been on plenty of hangouts with friends and colleagues who own this device, I now know what the insides of their nostrils look like. Not a great look.

I noticed some flicker in Google Chrome, which I've also seen on my ThinkPad, so I suspect it's either a software issue with Chrome, Unity or Compiz, or perhaps a GPU driver bug. I never got to the bottom of it on my ThinkPad, and haven't seen it on non-Intel machines. ¯\_(ツ)_/¯

Initially the Ubuntu battery gauge says 9h battery life on a full charge after boot up. I did a bit of 'work' on it and the fan spun up a bit, whereupon the battery gauge went down to 4.5h left. Once the workload was comlpete, the fan eventually span down and estimated battery life shot back back up to 7 hours. So 9h is "doing nothing" battery life, 4 hours could be considered "quite busy" battery life. Real life I found, somewhere in between, doing the usual workload of typing docs, browsing, a bit of audio and the odd game. Clearly this will vary greatly on your workload. I can't see how anyone can get more than about 7-8 hours under real world conditions though.

Media

I use Spotify for my music these days, and am not any kind of audiophile. I am usually happy listen to music on my OnePlus3T headphones, or a bluetooth speaker. So whatever I say about audio quality has to be taken with a pinch of salt.

I initially listened to 3 'test' tracks on the laptop, Sparks - "This Town Aint Big Enough", XTC - "Making Plans for Nigel" and Jean-Michel Jarre - "Equinoxe Pt 5", as they're all songs I'm likely to listen to in my regular playlist.

Unsurprisingly the speakers are exactly what you'd expect from non-Apple laptop units. Basically "okay", but not "great" by any stretch. They're alright for background music, watching a talky YouTube video or listening to the radio, but not for rocking out with. I had to dial down the volume a bit for most tracks as they're too loud in mid range. As expected, when using headphones, it was a different story. No problem at all, but nothing I'd rave about.

Steam / Gaming

I installed steam from the Ubuntu repo with a simple apt install steam and launched it from the dash. It did the usual update dance and all worked fine, no problem. I installed a bunch of games including Mini Metro, Goat Simulator and Talos Principle.

Mini Metro ran perfectly, unsurprisingly as it's not a massively demanding game. You should buy it though, it's great fun if you're even remotely a train nerd, or like the aesthetic of London Undergroud maps.

Goat Simulator defaulted to 720p (on a 1080p panel) and was just about playable, but at 20fps, with the fan blasting out, I don't think I'd recommend it. Perhaps dialling down some detail or reducing the resolution even further might have helped, but I gave up after a few minutes.

Talos Principle however was excellent. On first launch I got around 30fps at 1080p which for a pretty puzzle game was fine. I played this quite a bit, and had no issue with the actual game itself. However at one point I tried to take a screenshot and the laptop froze for a minute or so. I alt-tabbed out and found a GPU hang in dmesg. So I guess that's an Intel video driver or mesa issue. I only had it happen once though.

I did try updating to the latest HWE stack and latest Mesa drivers which made no discernable difference to any of the games I tried, nor the flickering in Chrome.

I did a firmware update via GNOME Software. "XPS 13 9360 System Update 66306" which says "Updating the system firmware improves performance" and (in red) "Device cannot be used during update". If I click it there is "No update description available" which doesn't inspire confiidence. However, if I click "Restart and install" it flickers and then I get the usual Ubuntu shut down dialog, so I clicked "Restart". After reboot the Dell logo appeared and then it proceeded to apply the update successfully then rebooted back into Ubuntu. So well done Dell & GNOME Software developers for making firmware updates easy on Linux!

Benchmarking

I used phoronix test suite to run a batch of tests. Here's the results. Unfortunately I did this on the base 16.04 install, and not with the HWE stack, perhaps someone else who has updated to the latest HWE / Mesa can re-run them and compare. Leave a comment below if you have.

Questions

We asked some listeners of Ubuntu Podcast in our Telegram Chat if they wanted me to test anything, and here's what they said:-

Andrew Hayzen, who has the fully loaded version offered his notes up http://www.ahayzen.com/docs/installs/devices/dell_9360/

John Lenton asked, "does it sleep or suspend? What does powertop say it eats when on battery, noodling around? (run a powertop --calibrate first, but note that takes a while and you can't use it)"

It suspends. After calibartion, 6.6w with just terminal open doing nothing much, down to 5.9 if I lower the brightness nearly all the way.

Sturmflut asked " does the external display come back after suspend?"

I have no usb c to display cable - so can't test as it has no VGA or HDMI. Andrew has one though and says it does!

Joe Ressington asked "does everything work in trisquel?"

Unfortunately I couldn't get Trisquel to boot at all, so couldn't test this.

Andre Bacao asked a 'battery' of questions, "Battery time? Time to charge? How is the charger? Small? Bulky? Full load noise? Does it heats up by being plugged?"

Battery life was betwen 4 and 9 hours depending on load. I didn't get a chance to time the charge, but it didn't take long. It was quite warm but not unpleasantly hot.

André Bação then asked "Charger watts and power cord lenght? Suitable or lacking in range?"

It's a small non-bulky 45W model. There was a pretty long cable on it too, so I didn't feel I was stretching it to get to a mains outlet.

Joe Ressington also asked "Oh straight connector or right angle? Seems minor but means the difference between longevity and a quickly broken power jack"

It's a straight barrel connector with a light on the connector itself so you know it's plugged into the mains under the desk.

Finally, André Bação asked "Keyboard feel? Does the keys touch the screen when closed? Hate when the screen has keys marks"

I certainly found it different to type on than my T450. The lack of travel was certainly notiable initially, but I soon got used to it. I couldn't see any marks on the screen from the keys.

Thanks for the questions!

Conclusion

Overall I'd have to say my experience with this laptop has made me re-think my opinion of Dell laptops. I've been a ThinkPad (X220 then T450) user for some years, and had a Apple MacBook Pro before that. When I bought all of those laptops, I'd looked at Dell and relegated them to 3rd or 4th place in my shopping list. This laptop changed that. This has pushed the Dell XPS to the top of my list despite it not having a TrackPoint, which I've usually used as an excuse to stay on the ThinkPad train. The only thing I'd probably consider is getting a physically larger display such as the 15" version.