LUG Community Blogs

Tony Whitmore: It’s all in the eyes

Planet HantsLUG - Wed, 19/02/2014 - 22:23

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!

See, that’s my actual name! In the same listing as Terry Nation and Ron Grainer. I never thought I would see that happen.

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 I suppose I better go and listen to it now!

Pin It
Categories: LUG Community Blogs

March Madness comes to a city near you

Planet SurreyLUG - Wed, 19/02/2014 - 21:45
Before Christmas, I  announced that MongoDB was planning to celebrate its own version of “March Madness” called MongoDB March Madness, an event featuring 27 of our European MongoDB User Groups.  This is the second annual March MUG Madness, and we’re thrilled that the number of requests to take part has only continued to grow. March […]
Categories: LUG Community Blogs

Chris Lamb: Estimating Training Stress Score (TSS) for running on Strava

Planet ALUG - Tue, 18/02/2014 - 21:17

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:

The "TSS (estimated)" value is calculated by the extension.

Source code is available. If you found this Strava extension useful, you might like my extensions to quickly switch between metric and imperial units or to change the default comparison filter.

Categories: LUG Community Blogs

Dick Turpin: When can I have them?

Planet WolvesLUG - Tue, 18/02/2014 - 13:29
Here's a good one.
Ask me to look at the prices of my quotation. "Can you do anything on the price?"
Ask me for slightly higher spec's. Aye? You just asked me to cut the base price?
Ask me for a delivery date as well. How the feck would I know when I have no idea what you're ordering?
Categories: LUG Community Blogs

Chris Lamb: The effect of pedestaling on TT bike position

Planet ALUG - Tue, 18/02/2014 - 00:19

To "pedestal" an aerobar means to elevate the bars above the basebar using risers instead of using headset spacers:

David Millar, 2010 Giro d'Italia.

You might do this for a few reasons:

  • The rider is in a more aerodynamic position when cornering or descending on the basebars.
  • Lowers the rider's centre of gravity, improving cornering confidence.
  • Less flex when climbing or accelerating under high wattage.
  • Teardrop-shaped risers are more aerodynamic than a cylindrical steerer tube:

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:

  1. Increase my effective stack height by 1.39mm (likely neglible).
  2. Increase my reach by 9.02mm. This might require me to use a shorter stem to get the same position. If that was undesirable—for example, if was already using an extremely short stem—I might be forced to abandon the idea altogether.

Three further considerations must be noted:

  1. The resultant low height of the base bar could be quite drastic and prevent you breathing properly whilst climbing.
  2. Having the steerer tube cut down after to removing headset spacers will reduce the resale value of your bike.
  3. You might need to re-cable your brakes as you may have changed the distance the cables must span.

(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.)

Categories: LUG Community Blogs

Steve Kemp: My pastebin will now run under docker.

Planet HantsLUG - Mon, 17/02/2014 - 19:59

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!

Categories: LUG Community Blogs

Meeting at "The Moon Under Water"

Wolverhampton LUG News - Mon, 17/02/2014 - 18:00

53-55 Lichfield St
West Midlands

Eat, Drink and talk Linux

Event Date and Time:  Wed, 19/02/2014 - 19:30 - 23:00
Categories: LUG Community Blogs

Dick Turpin: Email expert.

Planet WolvesLUG - Mon, 17/02/2014 - 17:04
Customer: "My emails won't go I keep getting an email saying there's a problem."
Colleague: "Can you send me the bounce-back?"

A few minute later.

Colleague: "You've sent me the emails you're trying to send."

Categories: LUG Community Blogs

Adam Trickett: Picasa Web: 2014-02-16

Planet HantsLUG - Sun, 16/02/2014 - 19:09
Date: 16 Feb 2014
Number of Photos in Album: 1

View Album

Categories: LUG Community Blogs

Adam Trickett: Picasa Web: 2014-02-16

Planet HantsLUG - Sun, 16/02/2014 - 19:09
Date: 16 Feb 2014
Number of Photos in Album: 1

View Album

Categories: LUG Community Blogs

Adam Trickett: Picasa Web: 2014-02-16

Planet HantsLUG - Sun, 16/02/2014 - 19:08
Date: 16 Feb 2014
Number of Photos in Album: 1

View Album

Categories: LUG Community Blogs

Wayne Stallwood (DrJeep): Dancing Ferrofluid first test

Planet ALUG - Sun, 16/02/2014 - 19:03
First attempt, This is using a coil scavenged from an old hard drive. The real project I am working on isn't really about driving it with audio but I just wanted to see how it worked out.

Fed with half wave rectified audio. The coil impedance measured at approximately 6 ohms which was convenient as it's not that far from a loudspeaker coil.

Running it with a 60W amp meant that I only had about 30 seconds before the coil started to overheat. Quite fun though I might try a bigger coil or an array of more small coils.

Categories: LUG Community Blogs

Steve Kemp: Pastebin site with markdown support

Planet HantsLUG - Sun, 16/02/2014 - 17:47

Today I setup a new website:

Something I want, something I'll use, and something that might be useful to others?

Categories: LUG Community Blogs

Aq: More on an Ubuntu Component Store

Planet WolvesLUG - Sun, 16/02/2014 - 15:21

After yesterday’s musings on a “component store” for Ubuntu developers, a few people said “hm that sounds interesting, how would it work?” So I’ve thrown together a little demo.

I should be clear: this is a demo. It’s not a component store; it’s not for real use; you can’t add things to it; you can’t use it in your apps. This is just enough of a test implementation to allow people to talk about whether this is a good idea or not. None of the code I’ve written would be used in a real implementation, if such a thing existed: I don’t do any error checking, I don’t have any tests. It’s just to give a demo of what I think the developer experience of a component store might be like if it existed, which it does not.

First you need the utility which searches the store, which is called ucs. Get it with bzr branch lp:~sil/+junk/ucs-cli. You now have a utility named ucs which can search the component store for components you might find useful in your apps.

Next, an app which uses it. Grab a demo with bzr branch lp:~sil/+junk/ucs-demo-app. You can now load that app into the Ubuntu SDK editor, or just run it from the command line with qmlscene ucs-demo-app/UCSDemoApp.qml. If you do that, you’ll see that it’s missing components: UCSDemoApp.qml:3 "ubuntu_component_store": no such directory. So, the app needs components and they aren’t installed, which is correct. Change to the app’s folder and run ucs install.1

$ cd ucs-demo-app $ ucs install Installing RedButton

and now the app should work: qmlscene UCSDemoApp.qml shows an app with a red button in it. If you look at the source of the app in the ucs-demo-app folder, you’ll see two things that make it different from a stock app:

  1. import "ubuntu_component_store" at the top of UCSDemoApp.qml. This includes components installed from the UCS into the app. You don’t need to individually name the components you import: just import "ubuntu_component_store". The app can then use all the components it asks for, such as the RedButton {} QML Item.

  2. there is an ubuntu_component_store.json file in the app’s folder. This ships with the app, and it describes the components that this app uses. Basically, it is JSON like this: { dependencies: { RedButton: "*" }}, describing that this app requires a component called RedButton and doesn’t care about its version number (hence "*").

So the process for working on an app which uses components from the store is: get the app source, then ucs install. That will install all the components that the app requires, and then you can start hacking on the app.

The process for developing an app which needs components: if you want to add a component to your app-in-progress, then ucs list will show the list of all components (which in this demo is one, RedButton), and ucs install RedButton will install that component2 and update ubuntu_component_store.json to add it to your dependency list. So when developing, just ucs install ComponentINeed, and then make sure that ubuntu_component_store.json is checked into source control and that the ubuntu_component_store/ folder isn’t checked in.

Those of you who have worked with node.js and npm will be thinking: this looks a lot like npm. You are not wrong. I think that that’s an excellent model for building projects. There will be people who say “but what if I want the same component in two projects but I don’t want to have it on my disk twice?” Ignore these people. Make a component store which works on a project-by-project basis; it’s so much nicer. Clearly there’d need to be a bunch more work on all this: ucs search and ucs submit and ucs remove and a web UI to browse everything and API specifications and server scaling and re-running ucs install after you install a component in case that component itself has dependencies and deciding what happens if two components in the same project have the same dependency and actually paying attention to version numbers and, and, and. There’s a bunch of integration which could be done with the Ubuntu SDK editor: if your app ships with an ubuntu_component_store.json file, then run ucs install when you open it. Ship ucs with the SDK. Automatically add ubuntu_component_store/ to bzr ignore. Provide a graphical browser for the list of components. This is not an implementation: it’s a demo. A real version would need a decent amount of thought.

I don’t know whether this would actually take off. I don’t know whether there are sufficient people developing reusable components for Ubuntu apps to justify it. But I think that, if there are, then this might be a good way for someone to go about it.

  1. fill in a path to the ucs utility wherever you branched it, of course, or put it on your $PATH
  2. from wherever the store says it’s hosted. This RedButton component is on github, mainly because ucs downloads a zip file of the component and github helpfully provides them for you, which Launchpad doesn’t. Note that I think that components should not themselves be uploaded to the store; the store just stores a URL for them.
Categories: LUG Community Blogs
Syndicate content