Fedora 23 and upgrade issues



Fedora 23 has been released yesterday, and as a big fan and a long time user I had to upgrade my laptop (from Fedora 22) immediately.  Or at least try.

Usually, the process is quite simple and doesn’t take much figuring out.  This time it was somewhat different though.  At first, the recommended upgrade command changed slightly from the nice and simple fedup to dnf system-upgrade.

The first attempt downloaded all packages, ended with a cryptic error along the lines of “No updates for kernel packages were found“.  Hmm, weird.  I thought maybe this was caused by me forgetting to run “dnf update” before the upgrade process.  So I did.  Some updates were installed, but there were no kernel packages among them.  I rebooted the laptop just in case.

The second attempt for some reason failed to find any of the previously downloaded packages, so I had to wait until the almost 2 GB get pulled down again.  Result – same error about missing kernel updates.  Hmm, again.

After poking around for a bit, I realized that I had previously configured yum to exclude some packages from updates (kernel, kmod-wl, kmod-VirtualBox, and VirtualBox).  These settings were picked up by dnf.  Editing both /etc/yum.conf and /etc/dnf/dnf.conf to disable the exclude fixed the issue.  “dnf update” now pulled some updates to the kernel.  Another reboot.

The third attempt once again lost all the downloaded packages and I had to wait some more.  This was annoying, especially at 1am now.  The process of downloading finished OK and this time there was no errors.  So “dnf system-upgrade reboot” should do the trick now, right?  Wrong!

Surprisingly, there was no boot menu for system upgrade upon reboot.  So I went with Fedora 22 boot option.  Which resulted in a brief screen saying “Preparing for upgrade“.  Which then disappeared and the system booted back into Fedora 22.  Now that was interesting.

It took me a while to find the issue.  The problem was that my Fedora 22 laptop wasn’t a clean install, but an upgrade from Fedora 21.  That shouldn’t be a problem, but it is, due to this bug.  My /etc/os-release file didn’t have the VARIANT and VARIANT_ID variables (thanks to this blog).  So after adding these lines:

VARIANT="Workstation Edition"

I’ve rebooted once again, and started the fourth attempt.  Downloaded packages were gone once again, so I had to wait a bit more.  This time the faster office Internet connection helped to save some time.  Download finished OK. Another reboot.  Once again, there is no option to upgrade Fedora, so I’m going into Fedora 22 boot.  Finally, now there is the upgrade screen!  After some preparation time, the packages were installed, the machine rebooted, and now I’m Fedora 23 user.

Checking my /etc/os-release file I see that both variant variables are gone now.  This feels weird, but hopefully won’t cause issues in the future.  If it will, I’ll probably Google for three hours before finding this very blog post.

Best WordPress Plugins – Over 40 Hand-Tested Plugins!


Best WordPress Plugins is an excellent collection of plugins for all sorts of things – from posts and comments management to podcasting and security.  Some are free, others – commercial.  I’m sure that even if you’ve been running a WordPress site for years, you’ll still find something new for you here.

The Definitive Guide to Natural Language Processing

The Definitive Guide to Natural Language Processing” is an easy to follow article on what a challanging task it is for machines to understand human language.  There’s also this cool video of two bots talking to each other.

27 languages to improve your Python

Nick Coghlan writes:

One of the things we do as part of the Python core development process is to look at features we appreciate having available in other languages we have experience with, and see whether or not there is a way to adapt them to be useful in making Python code easier to both read and write. This means that learning another programming language that focuses more specifically on a given style of software development can help improve anyone’s understanding of that style of programming in the context of Python.

To aid in such efforts, I’ve provided a list below of some possible areas for exploration, and other languages which may provide additional insight into those areas.

The languages and areas are:

  • Procedural programming: C, Rust, Cython
  • Object-oriented data modelling: Java, C#, Eiffel
  • Object-oriented C derivatives: C++, D
  • Array-oriented data processing: MATLAB/Octave, Julia
  • Statistical data analysis: R
  • Computational pipeline modelling: Haskell, Scala, Clojure, F#
  • Event driven programming: JavaScript, Go, Erlang, Elixir
  • Gradual typing: TypeScript
  • Dynamic metaprogramming: Hy, Ruby
  • Pragmatic problem solving: Lua, PHP, Perl
  • Computational thinking: Scratch, Logo

SwiftKey goodness

For a few years now I’ve been a happy user of the SwiftKey app.  SwiftKey is a predictive keyboard for Android and iOS.  I was very skeptical when I tried it the first time, but my mind was blown almost instantly.  The app does not just make generic predictions T9 style, but learns from your SMS history, emails, social network posts, and even your blog’s RSS (obviously, only those channels that you allow it access to).  With that, the predictions are so accurate that you rarely have to type more than a couple of characters for it to guess.  In fact, sometimes it guesses the next word without you even typing anything.

Well, OK, so I wrote this all before.  Why am I suddenly retyping this?  Because I got an email from SwiftKey with some updates as to what’s happening there.  And I think that it’s pretty cool how they’ve taken something so seemingly simple as a keyboard and turned into a … well, not industry yet, but something more and something exciting.

ninja themes

For all those touch-typing fans, they’ve released two keyboard themes Ninja Pro and Ninja Trainer.  If you mastered your laptop’s keyboard, enhance and extend your skill to the mobile and tablet now.

swiftkey 6

SwiftKey 6 beta version is out with some cool features.  Most notably  – Double-Word Prediction, which should save you even more typing.  SwiftKey has also reached 100 supported languages, so you can recommend it to your foreign friends much easier.


And if SwiftKey wasn’t awesome already, they are pushing the boundaries with some real high end computing – neural networks and machine learning.  The blog post goes into detail of how this whole approach works and how it makes predictions better.

Wow!  Talk about a simple keyboard app for the mobile now … The sky is truly the limit.

2016 will be the year of the ARM laptop

Slashdot links to the story that quotes Linus Torvalds’ address of the LinuxCon 2015:

“2016 will be the year of the ARM laptop”

For those who’s rusty on the CPU hardware side, he’s a very easy to follow article, describing the key difference between ARM and x86 architectures.

rather – replace anything you want in your social feeds


For all those people who complain about my pictures of food, somebody else’s pictures of babies, Justin Bieber photos, and the like, here’s something to try: get rather.

This sounds like a handy tool for anyone who hasn’t been blessed with patience or can’t figure out the “unsubscribe” button.

Weird New Tricks for Browser Fingerprinting

I’ve given up on privacy and security a long time ago.  So I don’t really care much.  But every time when my position is reinforced with things like “Weird New Tricks for Browser Fingerprinting“, I still lose some sleep for some reason.  And she is on the good side too …

On acting professionally

A few weeks back, there was this story about Sarah Sharp quitting Linux kernel development due to some issues she had with communications on the Linux kernel mailing list (aka LMKL).  I never cared much about this sort of things, so I skipped the story altogether (people disagree, no big deal).

Today I was catching up with my RSS feeds, and the story came up again (via this post and discussion thread in Russian), which linked to this Slashdot comment nicely summarizing the story.

Among all the other comments, there was a link to the related email from Linus Torvalds, where he opens up a bit about the “professional” behavior and communication.  I think it’s absolutely brilliant and everybody should read the whole thing.  But I’ll leave this small quote here for myself:

Because if you want me to “act professional”, I can tell you that I’m not interested. I’m sitting in my home office wearign a bathrobe. The same way I’m not going to start wearing ties, I’m *also* not going to buy into the fake politeness, the lying, the office politics and backstabbing, the passive aggressiveness, and the buzzwords. Because THAT is what “acting professionally” results in: people resort to all kinds of really nasty things because they are forced to act out their normal urges in unnatural ways.

The Rise and Fall of .Ly

Jon Postel

The Rise and Fall of .Ly” covers some of the not so widely known Internet history, including The God of the Internet, Jon Postel:

Until 1998, the Internet had a “God.” His name was Jon Postel.

Postel was a computer science student at UCLA in the late 1960s. In 1969, he got into the Internet more or less on the ground floor, when he was part of the team that set up the first node of the ARPANET — which would lay the technological groundwork for the modern Internet.

In these early days, computers would refer to each other and the files on them by IP address. The earliest web addresses were strings of numbers, like: If you wanted to reference, access, or communicate with a computer, you’d type in its numerical address. As the ARPANET grew, its moderators compiled a single file mapping memorable names, often pronounceable strings of characters, to IP addresses. This file was named “HOSTS.TXT”, and it was like a giant phone book with every computer’s name and number in it. Hosts made copies of the master HOSTS.TXT. This system got more and more cumbersome as the network got bigger and bigger.

In 1983, ARPANET became a subnet of the early Internet. At around the same time, Postel, along with computer scientist Paul Mockapetris, devised a new system to name the various places of the web. Their invention, called the Domain Name System (DNS), took the role of the HOSTS.TXT file and distributed it across an eventually vast, multifaceted network of servers.