Centos, MakeMKV and External Drives

For most of the last two years, I have been using an HP Microserver as my media server (running plex) and general development server running on CentOS 7. A few months ago I bought an external Blu-Ray writer, specifically a Samsung SE-506, for use with it.

In the past I have tried MakeMKV for extracting MKV files from some old home made DVDs, and I wanted to try this directly from the server. I had two problems when trying this:

  1. The drive was not supported by the libusb version supplied with the version of CentOS which was available at the time, fortunately the release of CentOS 7.3 brought the support I needed.
  2. MakeMKV was unable to use the attached drive unless it was being ran by root.

In order to allow MakeMKV to be able to access the drive when ran as a non-root user, a new udev rule is needed. My drive is mounting as the device “/dev/sr0”, so I created a new file “etc/udev/rules.d/80-bluray.rules” with the content:

    KERNEL=="sr?", MODE="0666"

This file will target any “sr” device and change the permissions so it is accessible by any user (the default permissions where 0660). More details are available in the udev documentation - it looks to be an enourmously powerful utility.

Site Updates

Last week I became aware of an issue where some pages of my site were not rendering correctly, specifically ones which used code blocks including line numbers. Unfortunately it looks like this has been the case since February when GitHub Pages upgraded to Jekyll 3.

With the help of Parker Moore from the Jekyll Project the cause was found to be the compress layout for Jekyll, which I’ve previously written about and recommended. This is logged as an issue against the project, but there does not seem to be a fix on the horizon.

In addition to removing this layout from use, I have redone the CSS to be built using SASS instead of LESS. This change is purely so the build is part of Jekyll and not a separate process to manage. Re-doing it provided the opportunity to streamline and optimise the CSS used. The styling is not yet perfect, but it is sure a lot more manageable than it was previously.

Pythonista Dropbox Sync - Revisited

As mentioned in my previous post the Pythonista Dropbox Sync script has been receiving some improvements as a result of “issues” raised on the GitHub Project. It still has some outstanding issues, but has gained many new features since it was first introduced.

Run Arguments

Pressing and holding the Play button in Pythonista will result in a prompt dialog being displayed to allow arguments to be supplied to the script.

There are three run arguments which can be supplied to this script to change its behaviour.

  1. “-v” turns on FINE level logging in the script
  2. “-vv” turns on full DEBUG level logging in the script
  3. “-c” runs the advanced configuration phase detailed below.

Arguments are processed from first to last, with later arguments taking precedence where there is any overlap.


The initial version of the script which was published required the user to tweak some variables near the start of the file to hold items such as API tokens. This made updating the script to commit, or pulling a new version problematic.

First run configuration

When the script is ran without the “<Pythonista Documents>/dropbox_sync/PythonistaDropbox.conf” file existing, a set of first-run configuration prompts are shown. This just covers the basic configuration of the Dropbox authentication token required for the script to function.

Advanced configuration

Running the script with the “-c” run argument will prompt for input for an advanced set of configuration options.

These are:

  • The file extensions to sync.
    • The default set are: “.py, .pyui, .txt, .conf”.
    • A special value of “*” can be used to sync all file types.
    • Entered values will be merged with the default options.
  • File paths to explicitly skip
    • Multiple paths can be specified by comma separating them.
    • Paths should be relative to the root Pythonista documents folder.

Going Forward

There are still a few bugs to work out in the script, and a few larger enhancements. I’m hoping to get some time over the next month to tackle them, but all contributions are welcome!

You can contribute using this GitHub repository.

(Temporarily) Abandoned, but not forgotten

It has been around 6 months since I last posted a new article on this site.

For the last 6 months I have been in full blown tight deadline project mode, which has resulted in a general lack of ability to pursue personal projects at night time. The one personal project which has seen some updates is the Pythonista Dropbox Sync script.

As this first phase of the project I have been working on is drawing to a close, personal projects and research should be returning. The first item on the list however, will be writing up the Pythonista Dropbox Sync script, as it’s current feature set is described by a set of GitHub issue tickets and nothing else.