News aggregator

Chris Dennis: Self-signed multiple-domain SSL certificates

Planet HantsLUG - Wed, 09/07/2014 - 00:54

I’ve finally worked out how to create self-signed SSL certificates for multiple domain names with openssl. 

These notes relate to Debian GNU/Linux, but the principles will apply to other operating systems.

The first step to make the process easier and repeatable in the future is to copy the default configuration file from /etc/ssl/openssl.cnf to a working directory where you can adapt it

Let’s assume that you’ve copied /etc/ssl/openssl.cnf to ~/project-openssl.cnf.  Edit the new file and set the various default values to the ones that you need — that’s better than having to respond to openssl’s prompts every time you run it.

For real non-self-signed certificates, you would generate a certificate signing request (.csr) file, ready for a certificate authority to sign it for you.  In that case, you need to follow the instructions at http://wiki.cacert.org/FAQ/subjectAltName.

But for a self-signed certificate, the subjectAltName has to go in a different place.  Make sure you’ve got this line present and un-commented in the [req] section of the config file:

[req] ... x509_extensions = v3_ca

and then this goes at the end of the [v3_ca] section:

[v3_ca] ... subjectAltName = @alt_names [alt_names] DNS.1 = example.com DNS.2 = www.example.com DNS.3 = example.co.uk DNS.4 = www.example.co.uk

There is (apparently) a limit to the number (or total length) of the alternate names, but I didn’t reach it with 11 domain names.

It’s also possible to add IP addresses to the alt_names section like this:

IP.1 = 192.168.1.1 IP.2 = 192.168.69.14

Then to create the key and self-signed certificate, run commands similar to these:

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout project.key -out project.crt -config ~/project-openssl.cnf cp project.crt /etc/ssl/localcerts/ mv project.key /etc/ssl/private/

Note that I move (rather than copy) the key to the private directory to avoid leaving a copy of it lying around unprotected.

You can check that the certificate contains all the domains that you added by running this:

openssl x509 -in project.crt -text -noout | less Alternative approach

I haven’t tried this, but according to http://apetec.com/support/GenerateSAN-CSR.htm it’s also possible to create a CSR and then self-sign it like this:

openssl x509 -req -days 3650 -in project.csr -signkey project.key -out project.crt v3_req -extfile project-openssl.cnf References:
Categories: LUG Community Blogs

Steve Kemp: What do you do when your free service is too popular?

Planet HantsLUG - Tue, 08/07/2014 - 17:47

Once upon a time I setup a centralized service for spam-testing blog/forum-comments in real time, that service is BlogSpam.net.

This was created because the Debian Administration site was getting hammered with bogus comments, as was my personal blog.

Today the unfortunate thing happened, the virtual machine this service was running on ran out of RAM and died - The redis-store that holds all the state has now exceeded the paltry 512Mb allocated to the guest, so OOM killed it.

So I'm at an impasse - I either recode it to use MySQL instead of Redis, or something similar to allow the backing store to exceed the RAM-size, or I shut the thing down.

There seems to be virtually no liklihood somebody would sponsor a host to run the service, because people just don't pay for this kind of service.

I've temporarily given the guest 1Gb of RAM, but that comes at a cost. I've had to shut down my "builder" host - which is used to build Debian packages via pbuilder.

Offering an API, for free, which has become increasingly popular and yet equally gets almost zero feedback or "thanks" is a bit of a double-edged sword. Because it has so many users it provides a better service - but equally costs more to run in terms of time, effort, and attention.

(And I just realized over the weekend that my Flattr account is full of money (~50 euro) that I can't withdraw - since I deleted my paypal account last year. Ooops.)

Meh.

Happy news? I'm avoiding the issue of free service indefinitely with the git-based DNS product which was covering costs and now is .. doing better. (20% off your first months bill with coupon "20PERCENT".)

Categories: LUG Community Blogs

Jonathan McDowell: 2014 SPI Board election nominations open

Planet ALUG - Mon, 07/07/2014 - 21:13

I put out the call for nominations for the 2014 Software in the Public Interest (SPI) Board election last week. At this point I haven't yet received any nominations, so I'm mentioning it here in the hope of a slightly wider audience. Possibly not the most helpful as I would hope readers who are interested in SPI are already reading spi-announce. There are 3 positions open this election and it would be good to see a bit more diversity in candidates this year. Nominations are open until the end of Tuesday July 13th.

The primary hard and fast time commitment a board member needs to make is to attend the monthly IRC board meetings, which are conducted publicly via IRC (#spi on the OFTC network). These take place at 20:00 UTC on the second Thursday of every month. More details, including all past agendas and minutes, can be found at http://spi-inc.org/meetings/. Most of the rest of the board communication is carried out via various mailing lists.

The ideal candidate will have an existing involvement in the Free and Open Source community, though this need not be with a project affiliated with SPI.

Software in the Public Interest (SPI, http://www.spi-inc.org/) is a non-profit organization which was founded to help organizations develop and distribute open hardware and software. We see it as our role to handle things like holding domain names and/or trademarks, and processing donations for free and open source projects, allowing them to concentrate on actual development.

Examples of projects that SPI helps includes Debian, LibreOffice, OFTC and PostgreSQL. A full list can be found at http://www.spi-inc.org/projects/.

Categories: LUG Community Blogs

HP 255 G1 Laptop with Ubuntu

Planet SurreyLUG - Mon, 07/07/2014 - 13:08

At work I needed a cheap laptop for a computer-illiterate user. Giving them Windows, would have meant that they would have had to keep up-to-date with Windows Updates, with all the potential issues that would cause, along with the need for malware protection. It would also have pushed up the cost, a laptop capable of pushing Windows along reasonably decently, would have cost a few hundred pounds at least.

Generally I would just have purchased a low-end Lenovo laptop and installed Ubuntu onto it, but I was aware that Ebuyer had recently launched an HP255 G1 Laptop with Ubuntu pre-installed for £219.99 inc. vat (just £183 if you can reclaim the VAT).

Buying pre-installed with Ubuntu afforded me the comfort of knowing that everything would work. Whilst Ubuntu generally does install very easily, there are sometimes hassles in getting some of the function buttons working, for brightness, volume etc. Knowing that these issues would all be sorted, along with saving me the time in having to install Ubuntu, seemed an attractive proposition.

Unboxing

My first impressions were good, the laptop comes with a laptop case and the laptop itself looks smart enough for a budget machine. An Ubuntu sticker, instead of the usual Windows sticker, was welcome, although the two sticky marks where previous stickers had been removed were less so. Still, at least they had been removed.

Whilst we are on the subject of Windows’ remnants – the Getting Started leaflet was for Windows 8 rather than Ubuntu. Most Ubuntu users won’t care, but this is a poor attention to detail and, if this laptop is to appeal to the mass market, then it may cause confusion.

First Boot

Booting up the laptop for the first time gave me an “Essential First Boot Set-up is being performed. Please wait.” message. I did wait and for quite a considerable time – probably a not dissimilar time to installing Ubuntu from scratch; I couldn’t help but suspect that was precisely what was happening. Eventually I was presented with a EULA from HP, which I had no choice but to accept or choose to re-install from scratch. Finally I was presented with an Ubuntu introduction, which I confess I skipped; suffice to say the new user was welcomed to Ubuntu with spinny things.

The first thing to note is that this is Ubuntu 12.04, the previous LTS (Long Term Support release). This will be supported until 2017, but it is a shame that it didn’t have the latest LTS release – Ubuntu 14.04. Users may of course choose to upgrade.

Secondly, the wireless was slow to detect the wireless access points on the network. Eventually I decided to restart network-manager, but just as I was about to do so, it suddenly sprang into life and displayed all the local access points. Once connected, it will re-connect quickly enough, but it does seem to take a while to scan new networks. Or perhaps I am just too impatient.

Ubuntu then prompted to run some updates, but the updates failed, as “91.189.88.153” was said to be unreachable, even though it was ping-able. The address is owned by Canonical, but whether this was a momentary server error, or some misconfiguration on the laptop, I have no idea.

This would have been a major stumbling block for a new Ubuntu user. Running apt-get update and apt-get dist-upgrade worked fine, typing Ctrl+Alt+t to bring up the terminal and then typing:

$ sudo apt-get update $ sudo apt-get dist-upgrade

I notice that this referenced an HP-specific repository doubtless equipped with hardware specific packages:

http://oem.archive.canonical.com/updates/ precise-oem.sp1 public http://hp.archive.canonical.com/updates precise-stella-anaheim public

I assume that adding this latter repository would be a good idea if purchasing a Windows version of this laptop and installing Ubuntu.

Hardware

This is a typical chunky laptop.  But, if you were expecting a sleek Air-like laptop for £220, then you need to take a reality shower. What it is, is a good-looking, well-made, traditional laptop from a quality manufacturer. At this price, that really should be enough.

Ubuntu “System Details” reveals that this is running an “AMD E1-1500 APU with Radeon HD Graphics x 2″, running 64-bit with a 724GB drive and 3.5GiB RAM. That would appear to be a lower spec processor than is typically available on-line for an HP 255 G1 running Windows; which generally seem to have 1.75Ghz processors (albeit at twice the price).

The great news was that, as expected, all the buttons worked. So what? Well, it may seem like a trivial matter whether, for example, pressing Fn10 increases the volume or not, but I think many of us have the experience of spending inordinate amounts of time trying to get such things to work properly. And buttons that don’t work, continue to irritate until the day you say goodbye to that machine. The fact that everything works as it should is enormously important and is the primary reason why buying Ubuntu pre-installed is such a big deal.

The keyboard and trackpad seem perfectly good enough to me, certainly much better than on my Novatech ultrabook; although not everyone seems to like them. In particular, it is good to have a light on the caps lock key.

I have not tested battery life, but, as this is usually the first thing to suffer in an entry-level machine, I would not hope for much beyond a couple of hours.

For other details on hardware, please refer to the product information and read more reviews here.

Performance

Booting up takes around 45 seconds and a further 20 seconds to reach the desktop. That is quite a long time these days for Ubuntu, but fast enough I would imagine for most users and considerably faster than it takes Windows to reach a usable state, at least in my experience.

Being that bit slower to boot, Suspend becomes more important: Closing the lid suspended the laptop and opening it again brought up the lock screen password prompt almost immediately. Repeated use showed this to work reliably.

As to system performance, well frankly this is not a fast laptop. Click on Chromium, post boot, and it takes about 9 seconds to load; LibreOffice takes about 6 seconds to load. Even loading System Settings takes a second or two. Once you’ve run them once, after each boot, they will load again in less than half the time. Despite the slow performance, it is always perfectly usable, and is absolutely fine for email and web-browsing applications.

The other thing to remember is that this will be the performance you should be able to expect throughout its life – i.e. it will not slow down even more as it gets older. Windows users typically expect their computers to slow down over time, largely because of the different way in which system and application settings are stored in Windows. Ubuntu does not suffer from this problem, meaning that a 5-year-old Ubuntu installation should be working as fast as it did when it was first installed.

Conclusions

I struggle to think of what else you could buy that provides a full desktop experience for £220. And it isn’t even some cheap unbranded laptop from the developing world. Sure, it isn’t the fastest laptop around, but it is perfectly fast enough for web, email and office documents. And the fact that you can expect it to continue working, with few, if any, worries about viruses, makes it ideal for many users. It certainly deserves to be a success for HP, Ubuntu and Ebuyer.

But, whilst this low-price, low-power combination was ideal for me on this occasion, it is a shame that there are no other choices available pre-installed with Ubuntu. I wonder how many newcomers to Ubuntu will come with the belief that Ubuntu is slow, when in reality it is the low-end hardware that is to blame?

Please HP, Ubuntu and Ebuyer – give us more choice.

And Lenovo, please take note – you just lost a sale.

For more reviews please visit Reevo.


Categories: LUG Community Blogs

Meeting at "The Moon Under Water"

Wolverhampton LUG News - Mon, 07/07/2014 - 08:43
Event-Date: Wednesday, 9 July, 2014 - 19:30 to 23:00Body: 53-55 Lichfield St Wolverhampton West Midlands WV1 1EQ Eat, Drink and talk Linux
Categories: LUG Community Blogs

Chris Lamb: Strava Enhancement Suite

Planet ALUG - Sun, 06/07/2014 - 20:55

Today I merged my individual Strava Chrome extensions into a single package, added some features that I thought were still missing and published it to the Chrome Web Store.

It now supports:

  • Infinite scroll: Automatically load more dashboard entries when reaching the bottom.
  • Switch imperial/metric units: Quickly switch from miles/km from the browser address bar.
  • Default to my results: Changes the default leaderboard to "My Results" instead of "Overall" when viewing a segment effort.
  • Hide "find friends": Hide invitations to invite and find friends to Strava
  • "Enter" posts comment: Immediately posts comment when pressing the "enter" / "return" key in the edit box rather than adding a new line.
  • Compare running: Changes the default sport for the "Side by Side comparison" module to running.
  • Running cadence: Show running cadence by default in elevation profile.
  • Variability Index: Calculate a Variability Index (VI) from the weighted average power and the average power, an indication of how 'smooth' a ride was.
  • Estimated FTP: Select "Show Estimated FTP" by default on Power Curve.
  • Running TSS: Estimates a run's Training Stress Score (TSS) from its Grade Adjusted Pace distribution.
  • Standard Google Map: Prefer the "Standard" Google map over the "Terrain" view (experimental).

Needless to say, this software is not endorsed by Strava. Suggestions, feedback and contributions welcome.

UPDATE: Also added more aggregate segment data, leaderboard options, showing running heart rate by default, links to Veloviewer & Race Shape.

View/install in Chrome Web Store.

Categories: LUG Community Blogs

Martin Wimpress: Headless cloudprint server on Debian for MFC-7360N

Planet HantsLUG - Sat, 05/07/2014 - 12:00

I have a Brother MFC-7360N printer at home and there is also one at work. I wanted to to get Cloudprint working with Android devices rather than use the Android app Brother provide, which is great when it works but deeply frustrating (for my wife) when it doesn't.

What I describe below is how to Cloudprint enable "Classic printers" using Debian Wheezy.

Install CUPS

Install CUPS and the Cloudprint requirements.

sudo apt-get install cups python-cups python-daemon python-pkg-resources Install the MFC-7360N Drivers

I used the URL below to access the .deb files required.

If you're running a 64-bit Debian, then install ia32-libs first.

sudo apt-get install ia32-libs

Download and install the MFC-7360N drivers.

wget -c http://download.brother.com/welcome/dlf006237/mfc7360nlpr-2.1.0-1.i386.deb wget -c http://download.brother.com/welcome/dlf006239/cupswrapperMFC7360N-2.0.4-2.i386.deb sudo dpkg -i --force-all mfc7360nlpr-2.1.0-1.i386.deb sudo dpkg -i --force-all cupswrapperMFC7360N-2.0.4-2.i386.deb Configure CUPS

Edit the CUPS configuration file commonly located in /etc/cups/cupsd.conf and make the section that looks like:

# Only listen for connections from the local machine. Listen localhost:631 Listen /var/run/cups/cups.sock

look like this:

# Listen on all interfaces Port 631 Listen /var/run/cups/cups.sock

Modify the Apache specific directives to allow connections from everywhere as well. Find the follow section in /etc/cups/cupsd.conf:

<Location /> # Restrict access to the server... Order allow,deny </Location> # Restrict access to the admin pages... <Location /admin> Order allow,deny </Location> # Restrict access to the configuration files... <Location /admin/conf> AuthType Default Require user @SYSTEM Order allow,deny </Location>

Add Allow All after each Order allow,deny so it looks like this:

<Location /> # Restrict access to the server... Order allow,deny Allow All </Location> # Restrict access to the admin pages... <Location /admin> Order allow,deny Allow All </Location> # Restrict access to the configuration files... <Location /admin/conf> AuthType Default Require user @SYSTEM Order allow,deny Allow All </Location> Add the MFC-7360N to CUPS.

If your MFC-7360N is connected to your server via USB then you should be all set. Login to the CUPS administration interface on http://yourserver:631 and modify the MFC7360N printer (if one was created when the drivers where installed) then make sure you can print a test page via CUPS before proceeding.

Install Cloudprint and Cloudprint service wget -c http://davesteele.github.io/cloudprint-service/deb/cloudprint_0.11-5.1_all.deb wget -c http://davesteele.github.io/cloudprint-service/deb/cloudprint-service_0.11-5.1_all.deb sudo dpkg -i cloudprint_0.11-5.1_all.deb sudo dpkg -i cloudprint-service_0.11-5.1_all.deb Authenticate

Google accounts with 2 step verification enabled need to use an application-specific password.

Authenticate cloudprintd.

sudo service cloudprintd login

You should see something like this.

Accounts with 2 factor authentication require an application-specific password Google username: you@example.org Password: Added Printer MFC7360N

Start the Cloudprint daemon.

sudo service cloudprintd start

If everything is working correctly you should see your printer the following page:

Printing from mobile devices Android

Add the Google Cloud Print app to Android devices and you'll be able to configure your printer preferences and print from Android..

Chrome and Chromium

When printing from within Google Chrome and Chromium you can now select Cloudprint as the destination and choose your printer.

References
Categories: LUG Community Blogs

Adam Trickett: Picasa Web: Tour de France

Planet HantsLUG - Sat, 05/07/2014 - 08:00

The Tour de France visits Yorkshire

Location: Yorkshire
Date: 5 Jul 2014
Number of Photos in Album: 67

View Album

Categories: LUG Community Blogs

Steve Kemp: And so it begins ...

Planet HantsLUG - Thu, 03/07/2014 - 22:00

1. This weekend I will apply to rejoin the Debian project, as a developer.

2. In the meantime I've been begun releasing some some code which powers the git-based DNS hosting site/service.

3. This is the end of my list.

4. I lied. This is the end of my list. Powers of two, baby.

Categories: LUG Community Blogs

Creating Time-lapse Videos on Ubuntu

Planet SurreyLUG - Thu, 03/07/2014 - 16:17

I’ve previously blogged about how I sometimes setup a webcam to take pictures and turn them into videos. I thought I’d update that here with something new I’ve done, fully automated time lapse videos on Ubuntu. Here’s when I came up with:-

(apologies for the terrible music, I added that from a pre-defined set of options on YouTube)

(I quite like the cloud that pops into existence at ~27 seconds in)

Over the next few weeks there’s an Air Show where I live and the skies fill with all manner of strange aircraft. I’m usually working so I don’t always see them as they fly over, but usually hear them! I wanted a way to capture the skies above my house and make it easily available for me to view later.

So my requirements were basically this:-

  • Take pictures at fairly high frequency – one per second – the planes are sometimes quick!
  • Turn all the pictures into a time lapse video – possibly at one hour intervals
  • Upload the videos somewhere online (YouTube) so I can view them from anywhere later
  • Delete all the pictures so I don’t run out of disk space
  • Automate it all
Taking the picture

I’ve already covered this really, but for this job I have tweaked the .webcamrc file to take a picture every second, only save images locally & not to upload them. Here’s the basics of my .webcamrc:-

[ftp] dir = /home/alan/Pictures/webcam/current file = webcam.jpg tmp = uploading.jpeg debug = 1 local = 1 [grab] device = /dev/video0 text = popeycam %Y-%m-%d %H:%M:%S fg_red = 255 fg_green = 0 fg_blue = 0 width = 1280 height = 720 delay = 1 brightness = 50 rotate = 0 top = 0 left = 0 bottom = -1 right = -1 quality = 100 once = 0 archive = /home/alan/Pictures/webcam/archive/%Y/%m/%d/%H/snap%Y-%m-%d-%H-%M-%S.jpg

Key things to note, “delay = 1″ gives us an image every second. The archive directory is where the images will be stored, in sub-folders for easy management and later deletion. That’s it, put that in the home directory of the user taking pictures and then run webcam. Watch your disk space get eaten up.

Making the video

This is pretty straightforward and can be done in various ways. I chose to do two-pass x264 encoding with mencoder. In this snippet we take the images from one hour – in this case midnight to 1AM on 2nd July 2014 – from /home/alan/Pictures/webcam/archive/2014/07/02/00 and make a video in /home/alan/Pictures/webcam/2014070200.avi and a final output in /home/alan/Videos/webcam/2014070200.avi which is the one I upload.

mencoder "mf:///home/alan/Pictures/webcam/archive/2014/07/02/00/*.jpg" -mf fps=60 -o /home/alan/Pictures/webcam/2014070200.avi -ovc x264 -x264encopts direct=auto:pass=1:turbo:bitrate=9600:bframes=1:me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 -vf scale=-1:-10,harddup mencoder "mf:///home/alan/Pictures/webcam/archive/2014/07/02/00/*.jpg" -mf fps=60 -o /home/alan/Pictures/webcam/2014070200.avi -ovc x264 -x264encopts direct=auto:pass=2:bitrate=9600:frameref=5:bframes=1:me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 -vf scale=-1:-10,harddup -o /home/alan/Videos/webcam/2014070200.avi Upload videos to YouTube

The project youtube-upload came in handy here. It’s pretty simple with a bunch of command line parameters – most of which should be pretty obvious – to upload to youtube from the command line. Here’s a snippet with some credentials redacted.

python youtube_upload/youtube_upload.py --email=########## --password=########## --private --title="2014070200" --description="Time lapse of Farnborough sky at 00 on 02 07 2014" --category="Entertainment" --keywords="timelapse" /home/alan/Videos/webcam/2014070200.avi

I have set the videos all to be private for now, because I don’t want to spam any subscriber with a boring video of clouds every hour. If I find an interesting one I can make it public. I did consider making a second channel, but the youtube-upload script (or rather the YouTube API) doesn’t seem to support specifying a different channel from the default one. So I’d have to switch to a different channel by default work around this, and then make them all public by default, maybe.

In addition YouTube sends me a “Well done Alan” patronising email whenever a video is upload, so I know when it breaks, I stop getting those mails.

Delete the pictures

This is easy, I just rm the /home/alan/Pictures/webcam/archive/2014/07/02/00 directory once the upload is done. I don’t bother to check if the video uploaded okay first because if it fails to upload I still want to delete the pictures, or my disk will fill up. I already have the videos archived, so can upload those later if the script breaks.

Automate it all

webcam is running constantly in a ‘screen’ window, that part is easy. I could detect when it dies and re-spawn it maybe. It has been known to crash now and then. I’ll get to that when that happens

I created a cron job which runs at 10 mins past the hour, and collects all the images from the previous hour.

10 * * * * /home/alan/bin/encode_upload.sh

I learned the useful “1 hour ago” option to the GNU date command. This lets me pick up the images from the previous hour and deals with all the silly calculation to figure out what the previous hour was.

Here (on github) is the final script. Don’t laugh.

Categories: LUG Community Blogs

Alan Pope: Creating Time-lapse Videos on Ubuntu

Planet HantsLUG - Thu, 03/07/2014 - 16:17

I’ve previously blogged about how I sometimes setup a webcam to take pictures and turn them into videos. I thought I’d update that here with something new I’ve done, fully automated time lapse videos on Ubuntu. Here’s when I came up with:-

(apologies for the terrible music, I added that from a pre-defined set of options on YouTube)

(I quite like the cloud that pops into existence at ~27 seconds in)

Over the next few weeks there’s an Air Show where I live and the skies fill with all manner of strange aircraft. I’m usually working so I don’t always see them as they fly over, but usually hear them! I wanted a way to capture the skies above my house and make it easily available for me to view later.

So my requirements were basically this:-

  • Take pictures at fairly high frequency – one per second – the planes are sometimes quick!
  • Turn all the pictures into a time lapse video – possibly at one hour intervals
  • Upload the videos somewhere online (YouTube) so I can view them from anywhere later
  • Delete all the pictures so I don’t run out of disk space
  • Automate it all
Taking the picture

I’ve already covered this really, but for this job I have tweaked the .webcamrc file to take a picture every second, only save images locally & not to upload them. Here’s the basics of my .webcamrc:-

[ftp] dir = /home/alan/Pictures/webcam/current file = webcam.jpg tmp = uploading.jpeg debug = 1 local = 1 [grab] device = /dev/video0 text = popeycam %Y-%m-%d %H:%M:%S fg_red = 255 fg_green = 0 fg_blue = 0 width = 1280 height = 720 delay = 1 brightness = 50 rotate = 0 top = 0 left = 0 bottom = -1 right = -1 quality = 100 once = 0 archive = /home/alan/Pictures/webcam/archive/%Y/%m/%d/%H/snap%Y-%m-%d-%H-%M-%S.jpg

Key things to note, “delay = 1″ gives us an image every second. The archive directory is where the images will be stored, in sub-folders for easy management and later deletion. That’s it, put that in the home directory of the user taking pictures and then run webcam. Watch your disk space get eaten up.

Making the video

This is pretty straightforward and can be done in various ways. I chose to do two-pass x264 encoding with mencoder. In this snippet we take the images from one hour – in this case midnight to 1AM on 2nd July 2014 – from /home/alan/Pictures/webcam/archive/2014/07/02/00 and make a video in /home/alan/Pictures/webcam/2014070200.avi and a final output in /home/alan/Videos/webcam/2014070200.avi which is the one I upload.

mencoder "mf:///home/alan/Pictures/webcam/archive/2014/07/02/00/*.jpg" -mf fps=60 -o /home/alan/Pictures/webcam/2014070200.avi -ovc x264 -x264encopts direct=auto:pass=1:turbo:bitrate=9600:bframes=1:me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 -vf scale=-1:-10,harddup mencoder "mf:///home/alan/Pictures/webcam/archive/2014/07/02/00/*.jpg" -mf fps=60 -o /home/alan/Pictures/webcam/2014070200.avi -ovc x264 -x264encopts direct=auto:pass=2:bitrate=9600:frameref=5:bframes=1:me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 -vf scale=-1:-10,harddup -o /home/alan/Videos/webcam/2014070200.avi Upload videos to YouTube

The project youtube-upload came in handy here. It’s pretty simple with a bunch of command line parameters – most of which should be pretty obvious – to upload to youtube from the command line. Here’s a snippet with some credentials redacted.

python youtube_upload/youtube_upload.py --email=########## --password=########## --private --title="2014070200" --description="Time lapse of Farnborough sky at 00 on 02 07 2014" --category="Entertainment" --keywords="timelapse" /home/alan/Videos/webcam/2014070200.avi

I have set the videos all to be private for now, because I don’t want to spam any subscriber with a boring video of clouds every hour. If I find an interesting one I can make it public. I did consider making a second channel, but the youtube-upload script (or rather the YouTube API) doesn’t seem to support specifying a different channel from the default one. So I’d have to switch to a different channel by default work around this, and then make them all public by default, maybe.

In addition YouTube sends me a “Well done Alan” patronising email whenever a video is upload, so I know when it breaks, I stop getting those mails.

Delete the pictures

This is easy, I just rm the /home/alan/Pictures/webcam/archive/2014/07/02/00 directory once the upload is done. I don’t bother to check if the video uploaded okay first because if it fails to upload I still want to delete the pictures, or my disk will fill up. I already have the videos archived, so can upload those later if the script breaks.

Automate it all

webcam is running constantly in a ‘screen’ window, that part is easy. I could detect when it dies and re-spawn it maybe. It has been known to crash now and then. I’ll get to that when that happens

I created a cron job which runs at 10 mins past the hour, and collects all the images from the previous hour.

10 * * * * /home/alan/bin/encode_upload.sh

I learned the useful “1 hour ago” option to the GNU date command. This lets me pick up the images from the previous hour and deals with all the silly calculation to figure out what the previous hour was.

Here (on github) is the final script. Don’t laugh.

Categories: LUG Community Blogs

Chris Lamb: Race report: Ironman Austria 2014

Planet ALUG - Thu, 03/07/2014 - 12:13

I arrived in Klagenfurt early on Thursday before Sunday's race and went to register at the "Irondome" on the shores of Lake Wörthersee. I checked up on my bike at Race Force's HQ and had a brief look around the expo before it got busy.

Over the next few days I met up a number of times with my sister who had travelled—via Venice—to support and cheer me. Only the day before the race did it sincerely dawn on me how touching and meaningful this was, as well as how much it helped having someone close by.

I had planned to take part in as much of the "Ironman experience" as possible but in practice I not only wanted to stay out of the sun as much as possible, I found that there was an unhealthy pre-race tension at the various events so I kept myself at a slight distance.

Between participants the topic of discussion was invariably the weather forecast but I avoided paying much attention as I had no locus of control; I would simply make different decisions in each eventuality. However, one could not "un-learn" that it reached 40°C on the run course in 2012, landing many in hospital.

As this was my first long-distance triathlon with a corresponding investment of training I decided that conservative pacing and decisions were especially prudent in order to guarantee a finish. Ironman race intensity is quite low but this also means the perceived difference between a sustainable and a "suicide" pace is dangerously narrow.

Despite that, my goal was to finish under 11 hours, targeting a 1:20 swim, a 5:30 bike and a 4:00 marathon.

Race day

I got to sleep at around 10PM and awoke early at 3AM, fearing that I had missed my alarm. I dozed for another hour before being woken at 4AM and immediately started on two strong coffees and waited for a taxi.

Over the next 2 hours I ate two Powerbars, a banana and sipped on isotonic energy drink. I also had a gel immediately before the swim, a total of approximately 600 calories. Many consume much more pre-race, but I had not practised this and there would be plenty of time to eat on the bike.

I got to transition as it opened at 5AM and checked over my bags and bike and then made my way slowly to the lake to put on my wetsuit.

Swim
Distance
3.8km / 2.4 miles
Time
1:21:31 (2:08/100m)

I felt my swimming ability to be just on the right of the bell-curve so I lined myself up according to their suggestion. I'm quite good with nerves so in the final ten minutes I kept to myself and remained very calm.

After some theatrics from the organisers, the gun finally went off at 7AM. It was difficult to get my technique "in" straight away but after about 5 minutes I found I could focus almost entirely on my stroke. I didn't get kicked too much and I reached the first turn buoy in good time, feeling relaxed. Between the next two buoys I had some brief hamstring cramps but they passed quickly.

After the second turn I veered off-course due to difficulties in sighting the next landmark—the entrance to the Lend canal—in the rising sun. Once I reached it, the canal itself was fast-moving but a little too congested so I became stuck behind slower swimmers.

The end of the swim came suddenly and glancing at my watch I was pretty happy with my time, especially as I didn't feel like I had exerted myself much at all.

T1
Time
6:30

Due to the size of Ironman events there is an involved system of transition bags and changing tents; no simple container beside your bike. There was also a fair amount of running between the tents as well. Despite that (and deciding to swim in my Castelli skinsuit to save time) I was surprised at such a long transition split – I'm not sure where I really spent it all.

I also had been under the impression volunteers would be applying sunscreen so I had put my only sun spray in the bike-to-run bag, not the swim-to-bike one. However, I found a discarded bottle by my feet and borrowed some.

Bike
Distance
180km / 112 miles
Time
5:30:12 (32.7kph - 20.3mph)

The bike leg consists of two hilly laps just to the south of the Wörthersee.

It felt great to be out on the bike but it soon became frustrating as I could not keep to my target wattage due to so many people on the course. There were quite a few marshalls out too which compounded this – I didn't want to exert any more than necessary in overtaking slower riders but I also did not want to draft, let alone be caught drafting.

This also meant I had to switch my read-out from a 10-second power average to 3-seconds, a sub-optimal situation as it does not encourage consistent power output. It's likely a faster swim time would have "seeded" me within bikers more around my ability, positively compounding my overall performance.

I started eating after about 15 minutes: in total I consumed six Powerbars, a NutriGrain, half a banana, four full bottles of isotonic mix and about 500ml of Coca-Cola. I estimate I took on about 1750 calories in total.

The aid stations were very well-run, my only complaints being that the isotonic drink became extremely variable—the bottles being half-filled and/or very weak—and that a few were cruelly positioned before hills rather than after them.

I felt I paced the climbs quite well and kept almost entirely below threshold as rehearsed. Gearing-wise, I felt I had chosen wisely – I would not have liked to have been without 36x28 in places and only managed to spin out the 52x12 four or five times. Another gear around 16t would have been nice though.

There was quite heavy rain and wind on the second lap but it did not deter the locals or my sister, who was on the Rupitiberg waving a custom "Iron Lamb" banner. It was truly fantastic seeing her out on the course.

On the final descent towards transition I was happy with my time given the congestion but crucially did not feel like I had just ridden 112 miles, buoying my spirits for the upcoming marathon.

T2
Time
3:46

Apart from the dismount line which came without warning and having a small mishap in finding my bike rack, transitioning to the run was straightforward.

Run
Distance
42.175km / 26.2 miles
Time
3:54:21 (5:33/km - 8:56/mile)

The run course consists of two "out-and-backs". The first leads to Krumpendorf along the Wörthersee and the railway, the second to the centre of Klagenfurt along the canal. Each of these is repeated twice.

I felt great off the bike but it is always difficult to slow oneself to an easy pace after T2, even when you are shouting at yourself to do so. I did force my cadence down—as well as scared myself with a 4:50 split for the first kilometer—and settled into the first leg to Krumpendorf.

Once the crowds thinned I took stock and decided to find a bathroom before it could become a problem. After that, I felt confident enough to start taking on fuel and the 10km marker on the return to the Irondome came around quickly.

Over the course of the run I had about three or four caffeinated gels and in latter stages a few mouthfuls of Coke. I tried drinking water but switched to watermelon slices as I realised I could absorb more liquid that way, remaining moving and gaining a feeling of security that comes from simply carrying something.

The first visit to Klagenfurt was unremarkable and I was taking care to not go too hard on the downhill gradients there – whilst going uphill is relatively straightforward to pace, I find downhill running deceptively wearing on your quads and I still had 25km to go.

The halfway point came after returning from Klagenfurt and I was spotted by my sister which was uplifting. I threw her a smile, my unused running belt and told her I felt great, which I realised I actually did.

At about 23km I sensed I needed the bathroom again but the next aid station had locked theirs and for some bizarre reason I then did not stop when I saw a public WC which was clearly open. I finally found one at 28km but the episode had made for a rather uncomfortable second lap of Krumpendorf. I did run a little of the Klagenfurt canal earlier in the week, but I wished I had run the route through Krumpendorf instead – there was always "just another" unexpected turn which added to the bathroom frustration.

In a chapter in What I Talk About When I Talk About Running, Haruki Murakami writes about the moment he first ran past 26.2 miles:

I exaggerate only a bit when I say that the moment I straddled that line a slight shiver went through me, for this was the first time I'd ever run more than a marathon. For me this was the Strait of Gibraltar, beyond which lay an unknown sea. What lay in wait beyond this, what unknown creatures were living there, I didn't have a clue. In my own small way I felt the same fear that sailors of old must have felt.

I was expecting a similar feeling at this point but I couldn't recall whether my longest run to date was 30 or 31km, a detail which somehow seemed to matter at the time. I certainly noticed how uphill the final return from Krumpendorf had suddenly become and how many people had started walking, lying down, or worse.

32km. Back near the Irondome, the crowds were insatiable but extremely draining. Having strangers call your name out in support sounds nice in principle but I was already struggling to focus, my running form somewhat shot.

In the final leg to Krumpendorf, the changes of gradient appeared to have been magnified tenfold but I was still mostly in control, keeping focused on the horizon and taking in something when offered. Once I reached Klagenfurt for the last time at 36km I decided to ignore the aid stations; they probably weren't going to be of any further help and running on fumes rather than take nutrition risks seemed more prudent.

The final stretch from Klagenfurt remains a bit of a blur. I remember briefly walking up a rather nasty section of canal towpath, this was the only part I walked outside of the aid stations which again seemed more important (and worrying) at the time. I covered a few kilometers alongside another runner where matching his pace was a welcome distraction from the pain and feelings of utter emptiness and exhaustion.

I accelerating away from him and others but the final kilometer seemed like an extremely cruel joke, teasing you multiple times with the sights and sounds of the finish before winding you away—with yet more underpasses!—to fill out the distance.

Before entering the finishing chute I somehow zipped up my trisuit, flattened my race number and climbed the finish ramp, completely numb to any "You are an Ironman" mantra being called out.

Overall
Total time
10:56:20

I spent about 15 minutes in the enclave just beyond the finish line, really quite unsure about how my body was feeling. After trying lying down and soaking myself in water, Harriet took me off to the post-race tent where goulash, pizza and about a litre of Sport-Weiss made me feel human again...

(Full results)

Categories: LUG Community Blogs

David Goodwin: Automated twitter compilation up to 16 June 2014

Planet WolvesLUG - Mon, 16/06/2014 - 16:22

Arbitrary tweets made by TheGingerDog up to 16 June 2014

2014/06/15

  • RT Proud my 8yo girl failed this worksheet. Wish she had failed it even “worse.” #GenderBias
  • 2012/11/03

  • RT #PHP devs. Please satisfy my curiosity and let me know about the frameworks you’ve used recently. Ta. https://twtpoll.com/gw7zecvn991qaxj (plz RT) 2014/06/15
  • RT Best banner at the World Cup so far
  • 2014/06/14

  • RT RT if you believe in freedom & democracy. #Falklands #LiberationDay
  • 2014/06/14

  • RT WordFriday: crosspathy
  • Attempt to pass homeopathy off as credible by combining it with empirically valid medicine.

    https://www.facebook.com/WordFriday/posts/637531733001454

    2014/06/13
  • And back home. Zzzz. Bromsgrove 2014/06/12
  • And now. Time to catch a plane. #snackTime Cyprus 2014/06/11
  • Thankfully I don’t use tweetdeck. Cyprus 2014/06/11
  • RT “US invasion and occupation cost Washington close to a trillion dollars ” – www.theguardian.com/world/2014/jun/11/mosul-isis-gunmen-middle-east-states enough to address climate change… #iraq 2014/06/11
  • RT #Iraq army capitulates to Isis militants in four cities – www.theguardian.com/world/2014/jun/11/mosul-isis-gunmen-middle-east-states what a disaster…well done, Bush and Blair… 2014/06/11
  • RT Twitter worms are so 2011. 2014/06/11
  • RT Tweetdeck XSS flaw leaves users vulnerable to account hijacking bit.ly/1lcEUK8 2014/06/11
  • RT HOW MUCH PIZZA AND COKE DO I HAVE TO FEED YOU NERDS BEFORE YOU SHUT UP ABOUT 80 HOUR WEEKS 2014/03/26
  • RT If one searches for CityLink on Google right now, you get this rather marvellously off message cartoon.
  • 2014/06/10

  • This morning we saw some Roman ruins and a Byzantine castle (mosaics etc)
  • Cyprus 2014/06/10

  • Oh Jesus. It’s raining men ! Cyprus 2014/06/08
  • It’s fun to stay at the YMCA …. You can get yourself clean. You can have a good meal …. Cyprus 2014/06/08
  • Wedding time.
  • Cyprus 2014/06/08

  • RT
  • 2014/06/07

  • The sun lounger things have already been stolen.
  • Cyprus 2014/06/08

  • It is dark early here. #landed Cyprus 2014/06/07
  • Our trusty steed for the next few hours.
  • Solihull 2014/06/07

  • RT Did… Did MongoDB just kill itself because it couldn’t rotate its log file? It did! It fucking did! 2014/06/07
  • Trying to scan this qr code causes my phone to reboot. #nexus4 #android #bug
  • Solihull 2014/06/07

  • Great weather this morning.
  • We woke to continual thunder.

    I think it is time to leave the country.

    Solihull 2014/06/07

  • Airport grammar fall. #bhx
  • Solihull 2014/06/07

  • RT HTTP/1.1 just got a major update. – Evert Pot feedproxy.google.com/~r/bijsterespoor/~3/padm6aekKhA/http-11-updated 2014/06/07
  • RT I love cycling, but it does really piss me off when cyclists cruise through red lights with an arrogance & nonchalance that boils the blood! 2014/06/06
  • RT Burnout.io – Help build a resource for the IT community to combat burnout: buff.ly/S1nWmk 2014/06/06
  • It has arrived ! (@TheMikeBennett‘s awesome book).
  • Bromsgrove 2014/06/06

  • RT But for the sacrifice of many, we may not have been born free. Think of that today if nothing else. #DDay70 #DDay #LestWeForget East, United Kingdom 2014/06/06
  • RT At turned midnight 6/6/2014 my biggest worry is getting home tomorrow. 70 yrs ago many didn’t, I doubt my day will be as life changing #DDay East, United Kingdom 2014/06/06
  • Categories: LUG Community Blogs

    Jono Bacon: FirefoxOS and Developing Markets

    Planet WolvesLUG - Fri, 13/06/2014 - 00:40

    It seems Mozilla is targeting emerging markets and developing nations with $25 cell phones. This is tremendous news, and an admirable focus for Mozilla, but it is not without risk.

    Bringing simple, accessible technology to these markets can have a profound impact. As an example, in 2001, 134 million Nigerians shared 500,000 land-lines (as covered by Jack Ewing in Businessweek back in 2007). That year the government started encouraging wireless market competition and by 2007 Nigeria had 30 million cellular subscribers.

    This generated market competition and better products, but more importantly, we have seen time and time again that access to technology such as cell phones improves education, provides opportunities for people to start small businesses, and in many cases is a contributing factor for bringing people out of poverty.

    So, cell phones are having a profound impact in these nations, but the question is, will it work with FirefoxOS?

    I am not sure.

    In Mozilla’s defence, they have done an admirable job with FirefoxOS. They have built a powerful platform, based on open web technology, and they lined up a raft of carriers to launch with. They have a strong brand, an active and passionate community, and like so many other success stories, they already have a popular existing product (their browser) to get them into meetings and headlines.

    Success though is judged by many different factors, and having a raft of carriers and products on the market is not enough. If they ship in volume but get high return rates, it could kill them, as is common for many new product launches.

    What I don’t know is whether this volume/return-rate balance plays such a critical role in developing markets. I would imagine that return rates could be higher (such as someone who has never used a cell phone before taking it back because it is just too alien to them). On the other hand, I wonder if those consumers there are willing to put up with more quirks just to get access to the cell network and potentially the Internet.

    What seems clear to me is that success here has little to do with the elegance or design of FirefoxOS (or any other product for that matter). It is instead about delivering incredibly dependable hardware. In developing nations people have less access to energy (for charging devices) and have to work harder to obtain it, and have lower access to support resources for how to use new technology. As such, it really needs to just work. This factor, I imagine, is going to be more outside of Mozilla’s hands.

    So, in a nutshell, if the $25 phones fail to meet expectations, it may not be Mozilla’s fault. Likewise, if they are successful, it may not be to their credit.

    Categories: LUG Community Blogs

    Jono Bacon: Community Management Training at OSCON, LinuxCon North America, and LinuxCon Europe

    Planet WolvesLUG - Wed, 11/06/2014 - 18:55

    I am a firm believer in building strong and empowered communities. We are in an age of a community management renaissance in which we are defining repeatable best practice that can be applied many different types of communities, whether internal to companies, external to volunteers, or a mix of both.

    I have been working to further this growth in community management via my books, The Art of Community and Dealing With Disrespect, the Community Leadership Summit, the Community Leadership Forum, and delivering training to our next generation of community managers and leaders.

    Last year I ran my first community management training course, and it was very positively received. I am delighted to announce that I will be running an updated training course at three events over the coming months.

    OSCON

    On Sunday 20th July 2014 I will be presenting the course at the OSCON conference in Portland, Oregon. This is a tutorial, so you will need to purchase a tutorial ticket to attend. Attendance is limited, so be sure to get to the class early on the day to reserve a seat!

    Find Out More

    LinuxCon North America and Europe

    I am delighted to bring my training to the excellent LinuxCon events in both North America and Europe.

    Firstly, on Fri 22nd August 2014 I will be presenting the course at LinuxCon North America in Chicago, Illinois and then on Thurs Oct 16th 2014 I will deliver the training at LinuxCon Europe in Düsseldorf, Germany.

    Tickets are $300 for the day’s training. This is a steal; I usually charge $2500+/day when delivering the training as part of a consultancy arrangement. Thanks to the Linux Foundation for making this available at an affordable rate.

    Space is limited, so go and register ASAP:

    What Is Covered

    So what is in the training course?

    My goal with each training day is to discuss how to build and grow a community, including building collaborative workflows, defining a governance structure, planning, marketing, and evaluating effectiveness. The day is packed with Q&A, discussion, and I encourage my students to raise questions, challenge me, and explore ways of optimizing their communities. This is not a sit-down-and-listen-to-a-teacher-drone on kind of session; it is interactive and designed to spark discussion.

    The day is mapped out like this:

    • 9.00am – Welcome and introductions
    • 9.30am – The core mechanics of community
    • 10.00am – Planning your community
    • 10.30am – Building a strategic plan
    • 11.00am – Building collaborative workflow
    • 12.00pm – Governance: Part I
    • 12.30pm – Lunch
    • 1.30pm – Governance: Part II
    • 2.00pm – Marketing, advocacy, promotion, and social
    • 3.00pm – Measuring your community
    • 3.30pm – Tracking, measuring community management
    • 4.30pm – Burnout and conflict resolution
    • 5.00pm – Finish

    I will warn you; it is an exhausting day, but ultimately rewarding. It covers a lot of ground in a short period of time, and then you can follow with further discussion of these and other topics on our Community Leadership discussion forum.

    I hope to see you there!

    Categories: LUG Community Blogs

    Dick Turpin: Old Tom

    Planet WolvesLUG - Thu, 05/06/2014 - 12:58
    So most of you will have heard my complaints about the difficulty in simply being able to order fish and chips from the chip shop? Well it would seem there are many other opportunities out there to eat up your lunch hour when trying to buy something.

    A well known UK car accessory outlet.

    Me: "Hi there can I have a Tom Tom Start 25 UK & ROF @ £99.99 please?"
    Assistant: "Do you want the maps for life?"
    Me: "Oh Christ, here we go! No thank you."
    Assistant: "Do you want the European maps?"
    Me: [Sobbing gently] "Could I just have the Tom Tom I asked for please?"
    Assistant: "OK I'll go and fetch one."
    Categories: LUG Community Blogs

    David Goodwin: Automated twitter compilation up to 04 June 2014

    Planet WolvesLUG - Wed, 04/06/2014 - 12:41

    Arbitrary tweets made by TheGingerDog up to 04 June 2014

    Categories: LUG Community Blogs

    David Goodwin: Automated twitter compilation up to 01 June 2014

    Planet WolvesLUG - Sun, 01/06/2014 - 06:00

    Arbitrary tweets made by TheGingerDog up to 01 June 2014

    • RT Apologies but the #psychic fayre at Finstall Park has been cancelled due to unforeseen circumstances. 2014/05/31
    • RT 2 great PHP conferences this autumn in the UK: #Symfony_Live & #PHPNW14. Wonder if I either will let me do a talk 2014/05/30
    • RT As we await the Apple iWatch, don’t forget that in 1984 Seiko made an iWatch — of sorts. And boy it was awesome.

    2014/05/30

  • RT One of the best #PHP conferences in the world is back for 2014, and is looking for sponsors. conference.phpnw.org.uk/phpnw14/sponsors/sponsorship-packages/ 2014/05/30
  • The coop parking enforcer is out and going to be quite rich today it seems. Bromsgrove 2014/05/30
  • Sainsburys at Hundred House (Stourbridge road, Bromsgrove)? Alcohol licence application notice.
  • Bromsgrove 2014/05/29

  • New Hair ! #goodHairDay #selfie
  • Bromsgrove 2014/05/29

  • Haha. It appears my evil plan involving a weakened beer bottle and a car boot worked ! #brotherlylove Bromsgrove 2014/05/26
  • Whoops! Didn’t vote ukip. #noukip West Midlands, United Kingdom 2014/05/22
  • .@moreteadoctor the children have been shouting “‘ERE SHEILA!” for 10 mins in this playground. You have a lot to answer for. #memoryLivesOn Bromsgrove 2014/05/22
  • RT #WhyImVotingUkip DISGRACE!!!! This is one of meny!1!
  • 2014/05/20

  • RT #WhyImVotingUkip Because the weather’s really starting to pick up, and I don’t want it ruined by gays. 2014/05/21
  • RT Because if the gays obtain control over the weather it might start raining men, and they will probably be Romanian #WhyImVotingUkip 2014/05/21
  • RT #WhyImVotingUkip Because these immigrants can’t speak proper English! Oh wait a minute…
  • 2014/05/21

  • RT #WhyImVotingUkip because my university is being overrun by Librarians and we need to send them back to Libraria 2014/05/21
  • RT Worrying signs that the girl will be a javascript programmer. “Sometimes, Daddy, 5 and 5 makes 55 and sometimes it makes 10.” 2014/05/17
  • RT eBay hacked. They say that stolen user passwords were encrypted, ask users to change passwords anyway. https://blog.ebay.com/ebay-inc-ask-ebay-users-change-passwords/ 2014/05/21
  • At school early for once. No doubt they’ll be late out today. #schoolrun West Midlands, United Kingdom 2014/05/21
  • RT Virgin Media #facebooknews
  • 2014/05/21

  • RT Tried as I might, I could not get this damn thing to work. Seen at airport.
  • 2014/05/20

  • Somewhat surprised that a government information site (ratings.food.gov.uk) has been offline for ~6 days. #fail #hygiene Bromsgrove 2014/05/20
  • RT Just finished my second listen-through of ‘Harvey’ by Phil Rossi. I still love the story. You can listen free here: podiobooks.com/title/harvey/ 2014/05/19
  • RT Computer timings in perspective:
  • 2014/05/17

  • Lawn mowed. Decking had a second coat of brown stuff. 25% of study painted. No children drowned. Forest explored. Den made. #today Bromsgrove 2014/05/18
  • TIL – don’t mess with massive lizards. #Godzilla2014 Birmingham 2014/05/17
  • Godzilla o’clock. 2014/05/17
  • “Couldn’t think of an image for this slide”… Thanks. @jukesie #port80
  • Newport 2014/05/16

  • RT Amazingly clever, and somewhat manipulative talk by @roy on neuro-marketing in user experience. #mindblown #Port80
  • 2014/05/16

  • “Don’t worry it’s only marketers collecting our personal information … ” #port80 (thanks @kwe)
  • Newport 2014/05/16

  • RT Watching someone try to get through a spam captcha using voice commands is painful! Cc/ @kimberleytew #port80 2014/05/16
  • RT Next up at @Port80Events is @roy talking about the human brain & what makes people click
  • 2014/05/16

  • Cool brain anatomy lesson with @roy at #port80 … Hopefully we won’t be fighting bears to design websites … #betterSafeThanSorry Newport 2014/05/16
  • Now: @nathan_ford “Mastering the dark art of fluid layout.” — if only I could learn everything about it in a 45min talk #port80 #webdesign Newport 2014/05/16
  • RT Recommended reading from @hereinthehiveElement Queries, From the Feet Up
    www.backalleycoder.com/2014/04/18/element-queries-from-the-feet-up/
    #port80 2014/05/16
  • Thank you @hereinthehive #port80 Newport 2014/05/16
  • Css Breakpoints. Responsive & fluid design. Progressive enhancement. Device type. Reusability. Modularity.
    patternlab.io #port80 Newport 2014/05/16
  • “Failure is only the opportunity to begin again intelligently.”
    “Do it again …like a baby” … #port80 Newport 2014/05/16
  • Power pose time!
    Thanks @denisejacobs #port80 Newport 2014/05/16
  • RT Letter of the week, from May 10 issue of @TheEconomist.
  • 2014/05/15

  • It looks like the parking attendants are fining people today who are parking incorrectly outside coop. #bromsgrove Bromsgrove 2014/05/15
  • Yesterday I mowed the lawn (1st time for me), stained the decking and fitted a new light. Today may be tame in comparison. Bromsgrove 2014/05/15
  • throw new TooHotForAJumperException(“missing the rain ?”); Bromsgrove 2014/05/15
  • RT Bloody Polish: coming over here and teaching us proper English. Vote Ukip, and stop this outrage via @georgephilipb
  • 2014/05/12

  • RT “@mental_floss: U.S. banned the sale of lawn darts in 1988. Parents were urged to “destroy them immediately.”” – meanwhile assault rifles.. 2014/05/13
  • The woman driving k80 anm would do well to look before crossing mini roundabouts. #ifOnlyInsurersCheckedTwitter #driving Bromsgrove 2014/05/13
  • RT How to use friendship.js
  • 2014/05/13

  • Real life HITMAN youtu.be/hKEjM9gF4UQ via @YouTube (it was an awesome film) 2014/05/13
  • RT artificial intelligence, technology of the future — always has been, always will be. #DualismTheBook 2014/05/13
  • The early bird is tired. #airport #taxi #conscript Bromsgrove 2014/05/13
  • RT OK. I give up. Just put the apostrophes where you like Dorothy Perkins.
  • 2014/05/09

  • Drawing Eyebrows On Babies – The Best Of www.anorak.co.uk/397145/strange-but-true/drawing-eyebrows-on-babies-the-best-of.html/ via @TheAnorak 2014/05/12
  • RT 10 Great Reasons to vote #UKIP. I don’t know who made it – so I referenced it from official #UKIP websites
  • 2014/05/05

  • Achievement unlocked : Plumbing 102.
    Fixed leaking stop tap gland.
    Fixed leaking hot water joint. #relieved #EasyFix Bromsgrove 2014/05/11
  • Rowan ran 5km today in his first fun run. He was very happy to have a medal.
  • Bromsgrove 2014/05/11

  • RT Wow. Such elePHPants. Much PHP.
  • 2014/05/06

  • With my psychic powers I predict there will be more painting taking place soon. Bromsgrove 2014/05/11
  • I can’t see the tires on this light. Tier perhaps?
  • Bromsgrove 2014/05/10

  • RT UK surveillance oversight in action (yes, this is a real exchange):
  • 2014/05/09

  • Bromsgrove has a fair this week.
  • Bromsgrove 2014/05/08

  • RT when someone says “giving 110%” this is what they mean i.imgur.com/uFDRzSN.gif 2014/05/06
  • RT A wood near Bromsgrove yesterday. The colour & scent were amazing! @WoodlandTrust
  • 2014/05/06

  • Now to see if the house has flooded while I’ve been out. #noPuddleYet Bromsgrove 2014/05/06
  • There’s nothing like chasing another runner (and beating them) to make you speed up and push yourself that bit more. #sweatingLikeAPig Bromsgrove 2014/05/06
  • Arrangements sorted for @Port80Events … May 16th. Newport. All the cool kids will be there (and me). #port80 #webdesign Bromsgrove 2014/05/06
  • RT They were planning an attack on an EDL demo with guns, knives, and an improvised explosive (pictured) #WMCTU
  • 2014/05/06

  • And now …. to run. Run like the wind. Bromsgrove 2014/05/06
  • Achievement unlocked: Plumbing 101 – outside tap replacement. #WorkingHose #BewareCat
  • Bromsgrove 2014/05/06

  • RT Gotten quite a few photo requests for this underdoge: @dogecoin @Josh_Wise @PPR98. #VeryDega #SuchWow #NASCAR
  • 2014/05/04

  • RT Check out the product placement on this…
  • 2014/05/04

  • RT How very very true — who the slave and who the master? (via @elvis717)
  • 2014/05/04

  • RT Learning how to map disease breakout areas using #OpenStreetMap at @ukodi with @msf_uk 2014/05/03
  • RT Hey @ITISLENNYHENRY. You’ve got to to see this. Genius via @beaubodor #YouKip
  • 2014/05/03

  • Unimpressed by The Amazing Spiderman 2 (not worth paying for). Divergent seemed better. Bromsgrove 2014/05/04
  • This is good Bombay mix like stuff. (Farari Chevra).
  • Bromsgrove 2014/05/04

  • Yum yum. Tasty chocolates from Brussels. (Van Dender)
  • Bromsgrove 2014/05/04

  • RT “£130?! For one night?! I paid less for her. NO F*CKING WAY!” Shouts the drunk guy, with a hooker, at Premier Inn reception. Oh dear oh dear 2014/05/03
  • My house has been invaded by lots of noisy women. Time to plan my escape to the cinema or something …. Bromsgrove 2014/05/03
  • RT 2048 for Atari 2600:
    2048 for Commodore 64
  • 2014/05/03

  • RT Everyone has to work.
    That’s what family farms do.
  • 2014/05/03

    Categories: LUG Community Blogs

    Dick Turpin: Four coaches.

    Planet WolvesLUG - Sat, 31/05/2014 - 18:15
    I am living proof of those people who say "You know if I wrote a book about it nobody would believe it!"

    So I went to visit my daddy today in Birmingham QE hospital. I caught the train to Birmingham and had to change for University station. I spied a guy in blue offering platform information at Birmingham and made my way towards him. Mr Blue coat (I have no idea what they're called?) was just about to help a very smartly dressed guy who looked to be in his early twenties.

    Passenger: "Can you tell me where to go for the 13.20 to blah blah blah?" (I forget where now)
    Mr Blue: "Platform 7 sir."
    Passenger: "Platform 7? You sure?"
    Mr Blue: "Yes sir, platform 7"
    Passenger: "It says four coaches?"
    Mr Blue: "That's right sir."
    Passenger: "So there's no tracks at platform 7 then?"
    Mr Blue: "I'm Sorry?"
    Passenger: "I've never heard of coaches stopping at platforms before?"
    Mr Blue: "The train is made up of four coaches sir."

    Me and Mr Blue pissed ourselves silly once he was out of reasonable earshot.
    Categories: LUG Community Blogs

    Jono Bacon: Last Day Today

    Planet WolvesLUG - Thu, 29/05/2014 - 16:34

    Recently I announced I am stepping down as Ubuntu Community Manager at Canonical and moving to XPRIZE as Senior Director of Community. Today is my last day at Canonical.

    I just want to say how touched I have been by the response. The comments, social media posts, emails, and calls from you have been so kind and supportive. You are all good people, and I am going to miss every single one of you.

    The reason why I have devoted my life to understanding communities is that I believe communities bring out the best in people, and all of you are a perfect example of that. I cannot express just how much I appreciate it.

    Over the course of the next few weeks my replacement will be sourced and announced. and in the interim my team (Daniel Holbach, Michael Hall, David Planella, Nicholas Skaggs, Alan Pope) will take over my duties. Everything has been transitioned over, and remember, the weekly Q&As will continue at 6pm UTC every Tuesday on Ubuntu On Air with my team filling in for me. As ever, any and all Ubuntu questions are welcome!

    Of course, I will still be around. I am going to continue to be a member of the Ubuntu community and an avid Ubuntu user, tester, and supporter. I will continue to be on IRC, you can email me at jono@jonobacon.org, I will continue to do Bad Voltage, and I have a busy schedule at the Community Leadership Summit, OSCON, and more. I am also going to continue to have my own Q&A session every week where you can ask questions about my perspectives on Ubuntu, Canonical, community management, XPRIZE, and more; I will announce this soon.

    Ubuntu has a tremendous future ahead of it, built on the hard work and passion of a global community. We are only just getting started with a new era of Ubuntu convergence and cloud orchestration and while I will miss being there in an official capacity, I am just thankful that I can continue to be along for the ride in the very community I played a part in building.

    I now have a few weeks off and then my new adventure begins. Stay tuned.

    Categories: LUG Community Blogs
    Syndicate content