AWS Not So Free Tier

Well, I just got charged for using Amazon’s “free” AWS tier. I’m not sure why (I used an AMI that the launch wizard said was eligible for free usage and it’s definitely a t1.micro instance). I’ve contacted AWS support over this, but I can’t say I’m expecting any actual support.

If there’s one good thing about this is that it gives me a good idea of how much running a small server 24/7 costs – it’s currently around USD 0.80 a day. Not too bad, but I think I want it doing more than just running tt-rss.

Posted in Uncategorized | Tagged | 1 Comment

Amazon’s EC2 & Tiny Tiny RSS Reader

WARNING! I got charged by Amazon!

I am one of the many disappointed users of Google Reader, who now have to go out and find an alternative. My first port of call was this article over on lifehacker but in the end I decided to go the DIY route, setting up an Ubuntu Server EC2 instance and installing Tiny Tiny RSS Reader (tt-rss).

Getting an Ubuntu EC2 instance up and running is surprisingly fast and easy (this is my first go at using EC2 and I’m taking advantage of their one year free micro instance). I more or less followed this guide (though I went with a more up to data Ubuntu 12.04 image) - http://www.robotmedia.net/2011/04/how-to-create-an-amazon-ec2-instance-with-apache-php-and-mysql-lamp/ Getting the basic server up and running was a few minutes time and very little effort (the longest part of the process was waiting for Amazon to authorize my account)

Getting tt-rss up and running was mostly straight forward as well. Reading the installation notes and the pages listed under “see also” provided almost all the information I needed (here’s a hint – for me the desired/target directory was /var/www). Again, it didn’t take very long.

Once tt-rss was installed, I logged in as admin, created an account for myself, logged in as that and then imported the OPML feed file generated by Google Takeout.

Probably the longest part of the process has been to go through my subscriptions, weeding out the dead feeds and setting appropriate update intervals (if a feed is updated irregularly then it’s probably not worth wasting bandwidth by checking it every 30 minutes).

I’ve got the Android app running on my Nexus 7 (which I actually like better than Google Reader’s Android app) and I’m thinking of going back to using Liferea as a desktop client. I used to use Liferea before Google Reader and it supports syncing to tt-rss (apparently it also supports/supported syncing with Reader, but I was unaware of that).

One thing to note about this whole incident is that I’m wondering if I should start a general degoogling process (with GMail probably being first in the firing line). Perhaps even a more general audit of the cloud services I use (especially the free ones) is in order.

Posted in Uncategorized | Tagged , , , | 4 Comments

New Year, New Project – A Pi Audio Gateway

On my commute to and from work I listen to a lot of podcasts on my my phone (using Podkicker Pro) and more often than not I’m halfway through listening to one when I get home. While I want to carry on listening, I don’t want to have to keep the headphones on. What I want to do is pipe the audio to an internet radio. So this is the first use case for my Pi Audio Gateway project – get audio off a phone and onto an internet radio (there are other use cases involving various things with DNLA/UPNP or streaming DAB/DVB radio over the local network, but they can come later).

In order to get the audio off the phone, I’ll use Bluetooth’s A2DP protocol to stream the audio to a gateway that converts it to a stream that the internet radio can tune to. The Raspberry Pi has become my go to device for projects like this and I’ll be using one of the newer 512Mb models. Fortunately, Google has been my friend in getting this up and running (I’m not the first person think of doing things with a Raspberry Pi and Bluetooth audio or icecast streaming).

Step 1: Install Raspbian

I started with a basic Raspbian install with just “Standard system utilities” and “SSH server” and then modified it to use a static IP address.

Step 2: Get Bluetooth up and running

I’m using an old Bluetooth dongle that I got years ago at Tesco. I mostly followed KMonkey’s guide, but it didn’t quite work as described there (at a guess, this might be due to differences between using a “ready to go” image and installing Raspbian from the installer). To get the onboard sound to work (for testing, and who knows, it might come in handy down the road) I needed to

apt-get install alsa-utils

and I had I to load the Broadcom sound module even though from what I can tell, it should be enabled by default.

modprobe snd_bcm2835

(I had to do both of these as root – the basic install doesn’t install sudo by default and I haven’t gotten around to installing it)

I had to do things slightly differently to get the Bluetooth side of things going as well. For some reason my phone wouldn’t see the Pi (neither would my Nexus 7). I found some slightly different instructions on the OpenELEC site, So I ran this

hcitool scan

to get the MAC address of the phone and then

echo "0000" | bluez-simple-agent hci0 XX:XX:XX:XX:XX:XX

to do the pairing.

Step 3: Install icecast2

This bit is simple

apt-get install icecast2

I then had to edit /etc/default/icecast2 to change ENABLED to true and then

service icecast2 start

Step 4: Install gstreamer

I’ll use gstreamer to pipe audio out of PulseAudio and into icecast2, so I need to install gstreamer and it’s plugins.

apt-get install gstreamer-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good

Step 5: There be Dragons!

Sadly, my internet radio doesn’t support the Ogg Vorbis format, so I’ll need to use MP3. MP3 is patent encumbered (at least in some parts of the world) so I’ll need to install gstreamer-plugins-ugly, as that’s where you’ll find the more legally ambiguous parts of gstreamer (a quick check on http://mp3licensing.com/royalty/emd.html indicates that they’re not that bothered by private non-commercial activity, though you should look into whatever legal issues you may face for yourself).

Step 6: Setting up the gstreamer pipline

Everything is now installed, now it’s time to get the stream running. All I need to do is slightly modify the instructions found here so that it uses the Bluetooth PulseAudio device (instead of the local monitor) and a lower bitrate.

gst-launch pulsesrc device=bluez_source.C8_D1_5E_2B_6B_2B ! audioconvert ! lamemp3enc bitrate=32 ! shout2send ip=localhost port=8000 password=hackme mount=stream.mp3

I’m keeping the bitrate low to keep the processor demand low (at the moment the whole pipeline  + PulseAudio is using around 60% of the CPU). Fortunately  it doesn’t seem to make much difference with TWiT style podcasts.

Step 7: Tuning the radio

My radio uses a chipset from Frontier Silicon, which means that I need to go to http://www.wifiradio-frontier.com/ in order to add custom stations. I can’t say I’m overly comfortable with this, as I’ve already had hardware that has died because the company that made it went under and it was no longer able to phone home. But as that’s how my radio works then that’s what I have to do.

Step 8: Profit! Listen!

And that’s it – I’m listening to a podcast on my phone via my radio.  However, there’s plenty of room for improvement. One of the first things I want to look at is getting it so that it doesn’t need to do so much decoding and encoding. The files on the phone are MP3s, the A2DP protocol supports streaming MP3s over it and the icecast steam is in MP3, so there must be some way to not touch the bitstream.

Posted in Pi Audio Gateway | Tagged , , , , , | Leave a comment

Crossover 12 + Onlive = Success!

I’ve finally gotten Onlive to work on Linux. As I had some spare time with the holidays I thought I’d give it a go with the newish version of Crossover. It worked!

Posted in Uncategorized | Tagged , , , | Leave a comment

Chromebooked

Samsung recently released low priced ARM based Series 3 Chromebooks “for everyone” so I went straight out and bought an Acer AC 700 first generation Chromebook from Amazon UK’s Warehouse deals instead.

I’m now a couple of weeks in to my Chromebook experiment and it’s going about as expected. It boots in 10 seconds, lasts all day at work (well, sort of – it spends a lot of time in standby as usually I’m using my big work laptop, but I can unplug it in the morning and take it to work and back and it always has enough battery for what I want to do) and web browsing performance is adequate (it’s about 1/2 the horsepower of a  Samsung Series 3). As expected, I use SSH quite a bit. What has been unexpected is the amount of media I’m using it for – as the keyboard acts like a built in stand and the screen is 11.6 inches it’s taken over bedside Netflix duties from my Nexus 7.

Posted in Uncategorized | Leave a comment

Cloud Gaming Coming To (Some) Samsung & LG TVs

This past week both Samsung and LG have announced cloud gaming services are coming to some of their TVs. First up is Samsung, who are launching Gaikai’s service for their 2012 7000 series LED TVs (though according to the article on Broadband TV news it’s US only). LG has opted for Onlive’s service instead for their Google TV based TVs (which are also currently US only).

If Onlive is going to be available for LG’s Google TVs, I wonder if it will be available for other Google TV TVs and STBs. While I can why see Sony might not offer Onlive straight out of the box on thier gTVs, I can’t see how they could block it from Google Play.

The slow rise of cloud gaming on smart TVs brings up some questions about the long term viability of the games console. Both the Playstation 3 and the XBox 360 are trying to be entertainment devices as well as games consoles.  Smart TVs are are now trying to be games consoles as well as entertainment devices. The Smart TV’s “No extra box needed” + “Lots of games for a modest subscription” could be a compelling offering. Consoles have the advantage that the TV doesn’t need to be a Smart TV (which gives them some time)- but I have to wonder if Sony and Microsoft would be better off if the PS 4 and XBox 720 were actually just dirt cheap versions of PS 3 and XBox 360 and all the games that would push those machines beyond their limits are handle by game servers in the cloud.

Posted in Online Services | Tagged , , | Leave a comment

A Virtual Desktop with QEMU/KVM, Mint 13 and NoMachine

One thing that has been on my to do list for a while has been to set up a Virtual Desktop VM on my VM server. So I finally got around to doing it.

Because I plan on accessing it remotely as opposed to just around the house I’ve decided to use the NoMachine NX protocol because in the past I’ve found that NX works well over low bandwidth connections. There’s one thing to keep in mind when choosing a distribution for use with NX – the rush to create style over substance desktops has (for the moment at least) left NX behind thanks to thier reliance on accelerated 3d graphics hardware. Fortunately, sanity prevails over at the Linux Mint and MATE projects and the MATE edition of Linux Mint 13 should provide a “productive, stable and mature” virtual desktop.

It was fairly straightforward to set up. The steps I followed were (roughly)

  1. Create a virtual disk image in qcow2 format
  2. Install the OS (I used QEMU’s built in VNC server to do this bit)
  3. Install openssh server
  4. Download from NoMachine and then install nxclient, nxnode and nxserver (I’ve decided to go with version 3.5 – version 4 is experimental and it appears that the software is time limited)
  5. Start the VM with a port forward for the SSH port (I have yet to figure out how to get “proper” networking running with QEMU/KVM)
  6. On the client, create a new connection to the VM server (using the forwarded port) – remember to set  it up so that the entire session is encrypted, that way all the communication will go through the forwarded port that is visible on the local network.

That’s pretty much it. It’s up, running and working well. For those who are concerned about free software purity, there are several fully open source NX server alternatives (the client and server from NoMachine is proprietary software built on top of an open source core).

Posted in Remote Desktop | Tagged , , , , , | Leave a comment