Archive

Archive for the ‘Uncategorized’ Category

Streaming from linux to ipad

October 11th, 2011 Ed 1 comment

I’ve taken the plunge and bought an iPad – very different experience to android, and so far, I still prefer androids – they’re more transparent. Didn’t like having to immediately install itunes (which needs windows/mac) to turn the iPad on, then didn’t like having to fill in a credit card number to register an account, and then didn’t like the fact that you can’t try out apps that cost (you get 15mins on android to uninstall and get a refund, no questions asked).

Anyway, I wanted to be able to:
Stream MythTV to iPad
Stream music to iPad

MythTV to iPad – really cool, using AirVideo (£1.99) and an AirVideo server that transcodes your recordings in realtime on-demand on your linux server, and spouts them out for the app on the iPad to read. Instructions here: http://wiki.birth-online.de/know-how/hardware/apple-iphone/airvideo-server-linux – except you need to download the JAR from here: http://www.inmethod.com/forum/posts/list/1856.page

Music to iPad, via “Music Player Daemon” (MPD): mpd is a daemon that can play music on local speakers, to an icecast server, and as a http stream. You can control it via a variety of plugins, inc a firefox one, bitMPC on androids, and MPoD/MPaD on i-devices. If you have “lame” setup, add this to /etc/mpd.conf:

audio_output {
type "httpd"
name "Jukebox"
encoder "lame" # optional, vorbis or lame
port "8001"
quality "6.0" # do not define if bitrate is defined
# bitrate "192" # do not define if quality is defined
format "44100:16:2"
}

Then download FStream and whack in http://IPADDRESS:8001 – tada – it works!

Categories: Uncategorized Tags:

Installing an Acer Revo with Ubuntu & MythTV

February 10th, 2011 Ed 3 comments

This post is not intended to be interesting, just a list of useful steps/links for setting up an Acer Revo with Ubuntu and MythTV (and is probably already out of date)

I have two TV cards – a Hauppage WinTV NOVA TD with Diversity (dual tuner freeview) and a TeVii S660 Freesat receiver (primarily for HD).

Installing
Downloaded the latest Ubuntu ISO (10.10) and used existing Ubuntu to turn a USB disk into a startup disk. Worked a treat.

Fed up with sudo password…
sudo vi /etc/sudoers, and change the line:
%admin ALL=(ALL) ALL
to
%admin ALL=NOPASSWD:ALL
This gives me sudo access with no need for a password.

Non-free drivers
System > Administration > Additional drivers
Installed both the nvidia and DVB drivers.

Installing packages
System > Adminstration > Synaptic Package Manager
Search for mythtv, mythweb, mythvideo and install them all.
I also grabbed phpmyadmin for managing the mysql database.

TeVii S660
http://ubuntuforums.org/showpost.php?p=9927773&postcount=32 – that has a link to a modified driver that works on Ubuntu 10.10. Unzip the zip, and then execute run “bash README” which executes all the commands in the README file. Turn off the machine (must turn it off, not restart it), wait a few seconds, then turn it on.

Consistent USB Device numbers
Depending on all things random, a device that reports as /dev/dvb/adapter0 now may end up as /dev/dvb/adapter1 on the next reboot (assuming you have dual tuners/multiple cards). I found udev rules didn’t work – it’d link two new adapters to the second adapter each time. However, creating /etc/modprobe.d/dvb.conf and putting “options dvb_usb_dib0700 adapter_nr=5,6″ means that the freeview tuners will always be adapter5 and adapter6, leaving the freesat tuner as adapter0 (by default).

MythTV
First, the system taskbar doesn’t vanish when running mythtv in fullscreen. To fix this – System > Pref > Appearance > Visual Effect = None

Run mythtv-setup. If it can’t connect to database, the password can be found in ~mythtv/.mythtv/mysql.txt

grano.la
Grano.la is a beautifully simple way to save money by scaling CPU appropriately – http://grano.la/

Categories: Uncategorized Tags:

Perl Serial Comms on Ubuntu 10.10

February 10th, 2011 Ed No comments

Thanks to @ceejay, here’s some code to set up serial parameters and read from the serial device. Bizarrely the usual method stopped working after an update.
#!/usr/bin/perl
use strict;
use warnings;
use Device::SerialPort;

my $serport="/dev/ttyUSB0";

my $dev = tie (*SERIAL, 'Device::SerialPort', $serport) || die "Can't tie: $!";

$dev->baudrate(4800);
$dev->databits(8);
$dev->parity("none");
$dev->stopbits(1);

#wait for device to exist
while (1) {
my $val = ;
last if $val;
}

while (1) {
my $val = ;
next unless $val;
chomp $val;
print $val . "\n";
#sleep 1;
}
# die if port closes/goes away

Categories: Uncategorized Tags:

How to calculate the average angle of bearings

August 26th, 2010 Ed 2 comments

This is going to be a tediously dull post, but given the amount of faffing I did, I don’t want to forget it!

Firstly, this is mostly not my maths – this is thanks to @helenbowyer, @bluerhinos and a parent of a scout who saw a link to my site on @rmappleby’s blog and then saw my tweet asking for help!

The problem is what happens when you cross the 0/360 boundary – how to average 5 degrees and 355 degrees to get 0 degrees. A “mean” would give 180 degrees – oops!

The answer is trigonometry, treating the angles as vectors.

First get the SIN of the angle, and divide by the COS of it. Then take the “ATAN2″ of it to get the final result. Tada!

For my application, I am putting the last 40 values into an ArrayList and calculating a weighted average (in Utilities.weightedAverage()) – you can replace this with any averaging function. Here’s the Java:

sinTotals.add(Math.sin(angleInRadians));
cosTotals.add(Math.cos(angleInRadians));

if (sinTotals.size() > 40) {
	sinTotals.remove(0);
	cosTotals.remove(0);
}
double sinAverage = Utilities.weightedAverage(sinTotals);
double cosAverage = Utilities.weightedAverage(cosTotals);

double direction =
     (Math.toDegrees(Math.atan2(sinAverage, cosAverage)) + 360) % 360;
Categories: Uncategorized Tags:

Developing RSA plugins using Eclipse

May 14th, 2010 Ed No comments

If you’re developing plugins for RSA, you’ll probably have one RSA open and a runtime RSA, both eating huge amounts of memory. To reduce the memory footprint, I’m using Eclipse to develop, but still launching a runtime RSA.

To do this, install RSA and eclipse (separately), then in your eclipse:

Install the JRE:
1. Windows > Preferences > Java > Installed JREs
2. Add c:\Program Files\IBM\SDP\jdk\jre
3. Tick its tick-box

Set the Target Platform:
1. Windows > Preferences > Plugin-in Development > Target Platform
2. Browse for c:\Program Files\IBM\SDP
3. Tick “Build target platform based on the target’s installed plugins”
4. Click “Reload”

Running as RSA
1. Run > Run Configurations
2. Change the Run as product to: com.ibm.rational.rsa4ws.product.v75.ide (or equivalent)

Tada! I’ve found I get far less out of memory errors and things are generally quicker.

Categories: Uncategorized Tags: , ,

Wild Camping and Night Photography by Torchlight

April 25th, 2010 Ed 2 comments

On the 17th April I set off to the Black Mountains for a weekend solo hike, wild-camping overnight, to gain more experience for the “Scout Terrain 1 Assessment” and “Walking Group Leader Assessment”.

Day 1 was a 25km route (horizontally), scarily that doesn’t include 1.1km ascent and 800m descent – very knackering, but I did rescue a stray dog on route!

After eating my home-made boil in the bags and waiting for it to get dark enough, I put my camera on my jumper on a rock (there was no way I was going to carry a 3kg tripod around the place), and these were the (edited) results:

For those that care, the waterfall image was taken first, with an exposure of 30s at F9, ISO 100.

The tree was taken 20mins later after much experimenting, with an exposure of 4 minutes, F9, ISO 100. This meant there was long enough for the stars to streak across the sky. I felt this distracted from the photo, so removed them – you can see them in the original out-of-the-camera image on the right (there were even more of them after tweaking the brightness levels, but you get the idea). I didn’t have the patience to enable the noise reduction function on the camera – the one where it takes the photo, then takes another photo of black for the same length of time – in hindsight, I wish I had, but hey!

Both images involved painting the area that I wanted to show up with a super-bright LED head-torch. With the waterfall image, I set the exposure to 30s, and quickly walked above the waterfall to light the area around the top, then quickly came back to light the actual waterfall. The tree shot meant using a (tempermental) shutter-release cable (£6 from ebay, so can’t expect much more), and sitting behind the camera moving the torch evenly over the tree.

So that was fun. I went to bed and woke up in the morning feeling sunburnt and knackered. Day 2’s route was a mere 16km, this time descending a total of 820m and ascending 435m.

Really can’t complain waking up here: