Permalink 04:36:15 pm, by mholmes, 31 words, 15 views   English (CA)
Categories: Activity log; Mins. worked: 60

Updated to Ubuntu 17.10

A bit late coming to this, and it took an hour or so to get everything back up and running, but fonts are way nicer and the Japanese input works better.


Permalink 04:53:57 pm, by mholmes, 136 words, 22 views   English (CA)
Categories: R & D, Activity log, Documentation; Mins. worked: 180

Setting up yet another encrypted volume

Put the new HD into the machine and tried to do a direct dd copy from the old HD in a USB cradle, but the operation failed at the same point twice (after about 15GB). In the end, I created a new encrypted volume on the new disk, formatted it as ext4 and set an scp job going to bring everything down from Rutabaga. The results will be pretty messy, I know, but there's no real alternative. I'll have to do a bunch of chmods to handle .svn folders and such; it may be simpler to check things out again. If it's possible to get my VMs off the old drive, that's the next thing to try because those aren't backed up. Only the Windows one gets used, though, and that's easy to rebuild if necessary.


Permalink 11:57:40 am, by Greg, 200 words, 35 views   English (CA)
Categories: Servers, Documentation; Mins. worked: 0

PHP upgrade issues

The new cluster runs PHP 5.6 by default, and PHP 7.1 with suPHP (instructions to follow). Testing old apps has revealed two specific issues:

  1. Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.

  2. Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

We aren't sure why, but you may get one or the other or both messages. It *appears* that if you fix problem #2 both problems go away, but if you only fix problem #1, you'll be left with problem #2. So, at a bare minimum, solve problem #2.

Here's how to address each problem:

  1. Log in to phpMyAdmin as the db user required by your PHP script and run the following SQL in the context of the app's DB:
    SET SESSION old_passwords=0;
    SET PASSWORD=PASSWORD('my_password');

    This has worked without further effort, but some say that you should also run:
    as the DB admin user

  2. You can either fix the problem by changing your MySQL Extension methods (mysql_*) to MySQL Improved Extension methods (mysqli_*), or the sub-optimal "ignore the deprecation" method of adding error_reporting(E_ALL ^ E_DEPRECATED); to the head of your scripts.


Permalink 09:44:51 am, by sarneil, 87 words, 37 views   English (CA)
Categories: Activity log; Mins. worked: 60

Firefox profile manager

FF Dev updated itself, created a new profile and somehow my copy of FF Prod ended up pointing at the dev profile. (i.e. all my bookmarks, plugins, history etc. "disappeared").

To tell FF which profile to use.
Close all instances of Firefox
Open the Terminal application.
In the Terminal application, enter the following:
/Applications/Firefox.app/Contents/MacOS/firefox-bin -P
Press Return. The Firefox Profile Manager (Choose User Profile) window should open.
Choose the correct profile.
Click Start Firefox.



Permalink 05:32:08 pm, by mholmes, 27 words, 35 views   English (CA)
Categories: R & D, Activity log; Mins. worked: 60

QGIS learning

In prep for RA work, installed QGIS locally and worked through the initial parts of the tutorial. Will keep going with this. So far it's pretty straightforward.


Permalink 04:58:27 pm, by mholmes, 333 words, 60 views   English (CA)
Categories: Servers, R & D, Activity log, Documentation, Documentation; Mins. worked: 90

Building a vector tile server

Now that Open Layers fully supports vector layers, we're looking at the practicality of running a vector tile server for our projects. Starting from this docker example, I created a script which I can run on a standard Debian Stretch install to create a working tile server:


#This is to be run on a standard Debian Stretch install.

#Install core stuff
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install apt-transport-https curl unzip build-essential python libcairo2-dev libprotobuf-dev xvfb 

#Temporarily use a specific source for the exact nodejs version we need.
echo "deb https://deb.nodesource.com/node_4.x jessie main" >> /etc/apt/sources.list.d/nodejs.list
echo "deb-src https://deb.nodesource.com/node_4.x jessie main" >> /etc/apt/sources.list.d/nodejs.list

#Install it.
apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y --allow-unauthenticated install nodejs 

#Now remove the source.
rm /etc/apt/sources.list.d/nodejs.list
apt-get clean

#Added these in order to get the npm install to run properly. 
#The problem was building canvas.
apt-get -y install libjpeg62-turbo-dev libpango1.0-dev libgif-dev g++

#Create directory for tileserver application.
mkdir -p /usr/src/app

#Get the Klokantech code for the server.
cd /usr/src/app 
curl -L https://github.com/klokantech/tileserver-gl/archive/master.zip -o master.zip
unzip master.zip 
cp -r tileserver-gl-master/* ./
rm -rf tileserver-gl-master

#Install the node stuff
npm install --production

#Set environment variable
echo NODE_ENV=\"production\" >> /etc/environment

#Create the folder for the mbtiles files (you'll need to supply these later).
mkdir /data

#In case other servers are installed and running, stop them.
systemctl stop apache2 mysql
systemctl disable apache2 mysql

echo "Now put your mbtiles files into the /data folder, and run /usr/src/app/run.sh."
#Start the tileserver on port 80.

This could form the basis for a VM-based tileserver for our projects, including the Confederation Debates; running a server for all of Canada is quite practical due to the efficiency of the vector format.


Permalink 11:36:29 am, by mholmes, 108 words, 43 views   English (CA)
Categories: R & D, Activity log, Documentation; Mins. worked: 45

CSS issue for the record

Just recording this because it took a little while to figure out:

We discovered this morning that the B and T conference site program would not print past the first page; it was as if the rest of the content was invisible to the print renderer (in all browsers). The culprit turned out to be this, in style.css:

.internal {
  position: relative;
  overflow: auto;   <<------------------------this line
  width: 100vw;
  height: 100vh;
  -webkit-overflow-scrolling: touch;

It hides anything beyond the viewport window from the print renderer. I was able to override by adding:

@media only print {
  .internal {
     overflow: visible;

I let PS know about it, since it's his stylesheet.


Permalink 12:47:46 pm, by Greg, 22 words, 45 views   English (CA)
Categories: Documentation; Mins. worked: 0

Keyman keyboards on Linux

Placeholder for info on using Keyman keyboards on Linux using KMFL framework provided by SIL. A full tutorial will be added eventually.


Permalink 02:34:53 pm, by Greg, 23 words, 55 views   English (CA)
Categories: Servers, Activity log; Mins. worked: 450

Building an Ubuntu package server - apt-mirror, reprepro, tftp

I'm building a new apt Frankenserver out of spare parts, and have re-documented the process from scratch. Notes are in the utilities repo.


Permalink 09:05:19 am, by mholmes, 77 words, 39 views   English (CA)
Categories: Servers, R & D, Activity log, Activity log, Documentation, Documentation; Mins. worked: 30

Upgrading teiJenkins java

The upgrade for Jenkins on teiJenkins was being kept back, and it turned out this was because Ubuntu 14.04 has Java 7 by default. I added a PPA for Java 8, updated the alternatives (sudo update-alternatives --config java) to point to the new one, and was then able to install Java 8. Following that, the Jenkins update went ahead. I elected to keep my existing config for Jenkins rather than overwrite. It needed a reboot for Apache to find Jenkins again.

:: Next Page >>


This blog is the location for all work involving software and hardware maintenance, updates, installs, etc., both routine and urgent, in the server room, the labs and the R&D rooms.


XML Feeds