For the past few years I've hosted all my websites in a "special" way:
The webserver I chose initially was thttpd, which gained points because it was small, auditable, and simple to launch. Something like this was my recipe:#!/bin/sh exec thttpd -D -C /srv/steve.org.uk/thttpd.conf
Unfortunately thttpd suffers from a few omissions, most notably it doesn't support either "Keep-Alive", or "Compression" (i.e. gzip/deflate), so it would always be slower than I wanted.
On the plus side it was simple to use, supported CGI scripts, and served me well once I'd patched it to support X-Forwarded-For for IPv6 connections.
Recently I setup a server optimization site and was a little disappointed that the site itself scored poorly on Google's page-speed test. So I removed thttpd for that site, and replacing it with nginx. The end result was that the site scored 98/100 on Google's page-speed test. Progress. Unfortunately I couldn't do that globally because nginx doesn't support old-school plain CGI scripts.
So last night I removed both nginx and thttpd, and now every site on my box is hosted using lighttpd.
There weren't too many differences in the setup, though I had to add some rules to add caching for *.css, etc, and some of my code needed updating.
Beyond that today I've setup a dedicated docker host - which allows me to easily spin up containers. Currently I've got graphite monitoring for my random hosts, and a wordpress guest for plugin development/testing.
After Internet Explorer updates to IE11 it introduces a rather annoying bug into Outlook. Typed emails often get cut off mid sentence when you click Send ! So only part of the email gets sent !
What I think is happening is that Outlook is reverting to a previously autosaved copy before sending.
Removing the IE11 update would probably fix it but perhaps the easiest way is to disable the "Autosave unsent email" option in Outlook.
Tools, Options, E-Mail Options, Advanced E-Mail Options, and disable the "Autosave unsent" option.
I am sure that you have all seen the exciting news about the first partners to ship Ubuntu smart-phones. For those who haven’t seen it:
19th February 2014, London: Canonical today announces it has signed agreements with mobile device manufacturers bq (www.bqreaders.com) (Spain) and Meizu (China) to bring Ubuntu smartphones to consumers globally. Canonical is working with these partners to ship the first Ubuntu devices on the latest hardware in 2014. Ubuntu has also received significant support from the world’s biggest carriers, some of which intend to work with OEM partners to bring phones to market this year.
Development programmes have begun with the partners to provide smartphones with a superior user experience on mid to high end hardware for consumers around the world. Devices will be available to buy online through bq, Meizu and at Ubuntu.com.
Today was a hectic day, starting with our Ubuntu town hall hangout and spent in a wealth of meetings. As such I haven’t had a chance to write a blog post about this announcement yet, but I wanted to throw something out on my blog before I go to bed.
Naturally this is tremendously exciting news. As I posted about before, 2013 was an intense year as we not only started building our convergent platform, but also the many inter-connecting pieces too such as our SDK, image based updates, Mir, app developer platform, platform services, app insulation, developer portal, and more. As a result of this work, since May 2013 I have been running Ubuntu full-time on my phone and we are in great shape.
In the last year my team has been heavily focused on building a new community; our Ubuntu app developer community. I have directed many resources in my team here for a number of reasons that I believe are of strategic importance to the future health, growth, and opportunity of Ubuntu and our community.
Firstly, we want Ubuntu to instill a level of simplicity, elegance, and power that is not just present in the default platform, dash, scopes, and services, but also emphasized across the apps that users want to use. This means kickstarting a new generation of apps inspired by the design and development principles that are driving our convergence vision and using a simple and powerful app developer platform so devs can go from idea to app store as quickly and easily as possible.
Secondly, I personally believe that apps are key to our success. I suspect that OEMs and carriers will be even more motivated by a platform with great apps and a powerful developer platform, I believe that users will be attracted to a platform with great apps, and I believe that developers will want to build apps for a platform that is both fun to use and develop for.
Thirdly, I believe there is a huge opportunity to refine and innovate in so many areas of our app developer platform and community. Everything from the tooling to knowledge and support to publishing can be optimized and refined to build the very best developer platform.
As such, in my peanut-sized brain the apps are where much of my team’s strategy should be focused.
I am delighted by the progress we are making here. As I wrote about a few days ago, there is lots of wonderful work going on and fresh features and improvements landing soon. Our Ubuntu app developer platform is growing in leaps and bounds and I am really proud of the efforts of so many people.
Now, while I am proud of where we are today, I am not going to compromise until we have the best developer platform in the world.
So, how does this all relate to the bq and Meizu news?
Well, this news starts the ball rolling on the first set of devices that are going to be hitting the market. This in-turn will result in a general consumer audience starting to use Ubuntu on smart-phones. While today we have thousands of developers flashing their phones with Ubuntu and eagerly writing apps and using other people’s apps, the injection of general consumers will build even more motivation and momentum for our app developers to create apps they are truly proud of and that will be of interest to a new generaton of Ubuntu smart-phone users. As a musician I can tell you that having an audience makes everything that much more worthwhile, and I think it is the same our developers who are about to get a new audience growing around them.
These are tremendously exciting times. Our vision is ambitious but every day the momentum grows and I delighted you are all joining the journey with us. Let’s do this, friends!
I was rather excited to receive my box set of Doctor Who: Dark Eyes 2 today. Not just because it’s the follow-up to the BBC Audio Drama Award-winning first series. Here’s the splendid artwork that accompanies the 4 CD release:
You see the photographs of Nicola Walker from Spooks on the box, album art and even the disk itself? I took those! Thanks to the design wizardry of Damien May they blend seamlessly with the photographs of Paul McGann, Ruth Bradley and Alex Macqueen in costume that they already had. It’s tremendously exciting to see one’s efforts printed on an actual BBC authorised CD.
Nick Briggs (Executive Producer and voice of the Daleks) asked if I could attend the recording session at the studio to photograph Nicola, Alex, Ruth and other cast members. Not knowing exactly what I would encounter when I got there, I tried to cover all the possibilities. I ended up shooting using off camera flash to get the dramatic lighting suitable for the covers and album art, and natural light for the more straight-forward shots. It was fascinating to see how a complex audio drama is recorded, and yes, the lunches at the Big Finish studios are every bit as good as they are made out to be!
I can see more of my photos of Ruth (below), Alex and Nicola in issue 60 of Big Finish’s free magazine, Vortex. Dark Eyes 2 is available now from bigfinish.com. I suppose I better go and listen to it now!Pin It
In cycling, a ride's Training Stress Score is a function of that ride's duration, average power and the intensity of the ride relative to the rider's capability. This Slowtwitch article provides a good overview on how intensity and TSS is calculated on a bike.
However, having TSS values for other sports allows a multisport athelete to take into consideration the physiological cost of activities in different sports. This is achieved by ensuring, say, 50 TSS on the bike "counts" the same as a 50 TSS run.
This can be used to simply determine the length, intensity and scheduling of an athletes next workout (to ensure adequate recovery) regardless of the combination of sports, or to identify the athlete's long-term tolerance to—and targets for—training load using metrics such as Chronic Training Load.
To make this possible when using Strava, I wrote a Chrome extension that estimates the TSS score of a run from its Grade Adjusted Pace distribution:
To "pedestal" an aerobar means to elevate the bars above the basebar using risers instead of using headset spacers:
You might do this for a few reasons:
So, assuming you currently have a bike that uses headset spacers, what would be the effect on your position if you were to replace, say, a 10mm headset spacer with a 10mm armrest riser?
First, let us consider the effect of removing the headset spacer. The crucial insight is that removing a 10mm spacer will not lower the stack height—ie. the vertical distance relative to the bottom bracket—by 10mm.
This is because spacers are not oriented perpendicular to the ground; they are stacked along the steerer tube at the head tube angle of the frame. We will assume a head tube angle of 72.5° degrees.
We can calculate that removing a 10mm spacer will reduce the stack height by:sin(72.5°) × 10mm = 9.54mm
... and by the same argument it will also increase the effective reach—ie. the horizontal distance relative to the bottom bracket—by:cos(72.5°) × 10mm = 3.01mm
Next, let us consider the impact of adding the riser. These are oriented perpendicular to the ground, so its addition makes no further change to the reach. However, we can now calculate the overall change in stack height:Δ stack = -(sin(72.5°) × 10mm) + 10mm = 0.46mm
We can then repeat the calculation for any length of replacement:Replacement (mm) Δ stack (mm) Δ reach (mm) 10 +0.46 +3.01 20 +0.93 +6.01 30 +1.39 +9.02 40 +1.85 +12.0 50 +2.31 +15.0 60 +2.78 +18.0
From this table, I can discover that if I were to replace 30mm of headset spacers with 30mm of risers it would:
Three further considerations must be noted:
(It may seem odd to provide results for up to 60mm of headset spacers when such a large number of spacers would—at the very least—void one's warranty. However, I suspect such setups are transiently common within the confines of a fitting studio.)
I've updated my markdown-pastebin site, to be a little cleaner, and to avoid spidering issues.
Previously every piece of uploaded text received an incrementing integer to describe it - which meant it was trivially easy for others to see how many pieces of text had been uploaded, and to spider all past uploads (unless the user deleted them).
Now each fresh paste receives a random UUID to describe it, and this means spidering is no longer feasible.
I've also posted the source code to Gitub so folk can report bugs, fork, etc:
That source code now includes a Dockerfile which allows you to quickly and easily build your own container running this wonderful service, and launch it without worrying about trashing your server ;)
Anyway other than the user-interface overhaul it is still as functional, or not, as it used to be!
Eat, Drink and talk LinuxEvent Date and Time: Wed, 19/02/2014 - 19:30 - 23:00