Display your Flickr Favourites as Screensaver Slideshow

Install XScreenSaver and remove Gnome default

sudo apt remove gnome-screensaver
sudo apt install xscreensaver xscreensaver-gl xscreensaver-gl-extra

Run the Screensaver UI and configure

In the “Advanced” section enter your Flickr RSS URL in “Choose Random Image”

XScreenSaver Ui
XScreenSaver Ui

https://api.flickr.com/services/feeds/photos_faves.gne?id=YOURFLICKRUSERID #replace with your Flickr User ID

Create a systemd user service to autostart

mkdir -p ~/.config/systemd/user/
vim ~/.config/systemd/user/xscreensaver.service

Past the following
[Unit]
Description=XScreenSaver
[Service]
ExecStart=/usr/bin/xscreensaver -nosplash
[Install]
WantedBy=default.target

Start and enable systemd user service

systemctl --user enable xscreensaver
systemctl --user start xscreensaver

To copy the settings (including RSS URL) onto other PC’s or re-install it might be a good idea to backup or copy the contents of ~/.xscreensaver

Ubuntu 14.04 Amazon EC2 Cloud Desktop using LXQT

Using Amazon EC2’s free usage tier to host your own cloud desktop is a very economical way to to have a desktop at hand anytime you can not be near one. Since I quite often use Chromebooks these days when on the road this is a particular handy way should I need a full desktop for certain tasks.

Since Ubuntu 14.05 is my default desktop on my normal hardware I obviously want to have my cloud desktop running the same underlying OS. However I don’t think running Unity as the desktop interface would be appropriate via a low-bandwidth remote desktop connection. For this reason I chose LXQT. If you need total stability you probably should go for the more mature LXDE instead, but I have already tried LXQT on an old EEE PC and was very impressed by the speed and low resource usage.

NOTE (Edit: 2014-11-03): Please find an updated (and easier) version of this blog here. I was experiencing some issues with LXQT (which is understandable as it clearly states that it is not a release version)

Provision Ubuntu 14.04 LTS EC2 Instance

EC2 Choose Image

Instance details

  1. Connect to AWS Console and go to EC2 Service
  2. Choose OS Image: “Ubuntu Server 14.04 LTS” (see screenshot)
  3. Choose a “Micro Instance” if you want to use Amazon’s Free Usage Tier
  4. Choose Instance details – the defaults will generally be fine
  5. Add Storage (I generally add a separate Volume for /home but default should do)
  6. Tag instance (just give it a name to that makes sense to you in the console if you have more than one)
  7. Configure Security Group – I only set SSH which is the default (see Firewall config below). Add any other ports needed
  8. Review & Launch the instance. You need to choose your RSA Access Keys in this step. If you haven’t got any and download. DO NOT LOOSE the private keys or you will not be able to connect.

Setup Desktop & VNC

Connect via SSH to the EC2 Instance you just created (using the IP in the control panel and your RSA Key)

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:lubuntu-dev/lubuntu-daily
sudo add-apt-repository ppa:gilir/q-project
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install lxqt-metapackage lxqt-panel vnc4server

Start VNC server under the desired user account. This will create the desired configuration files. Kill after the startup process is finished.

vncserver
#after successful start
vncserver -kill :1

Edit xstartup files

vim ~/.vnc/xstartup
Paste the following:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
exec openbox-session &
startlxqt &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &

Create startup script

sudo vim /etc/init.d/vncserver
Paste the following:
#!/bin/bash
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: VNC Server Startup Script
# Description: Author: Leo Gaggl (www.gaggl.com)
### END INIT INFO
unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Starting $prog: "
ulimit -S -c 0 >/dev/null 2>&1
RETVAL=0
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
DISP="${display%%:*}"
export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
fi
done
}
stop() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Shutting down VNCServer: "
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
export USER="${display##*:}"
su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
fi
done
echo -e "\n"
echo "VNCServer Stopped"
}
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

Mark the startup script as executable and create the config file for the startup script.
sudo chmod +x /etc/init.d/vncserver
sudo mkdir /etc/vncserver
sudo vim /etc/vncserver/vncservers.conf

Paste the following:
VNCSERVERS="1:USERNAME"
VNCSERVERARGS[1]="-geometry 1024x768"

update-rc.d vncserver defaults 99

Start the VNC Server

sudo /etc/init.d/vncserver start

Firewall configuration

By default VNC will use port 9501 (and subsequent ports for each session). Since VNC password authentication is generally very weak I personally do not expose this port through the firewall. I use SSH port forwarding to tunnel the VNC port through SSH (encrypted) which means only the SSH port is open and can be properly secured.

ssh -L 5901:localhost:5901 -i /path/to/your/aws/keyfile.pem YOUR.EC2.IP.ADDRESS

You should then be able to access VNC via localhost:

VNC Viewer

Hopefully you should see the LXQT Desktop:

Ubuntu LXQT

 

If you want to access this from a Chromebook this blog might help.

Turning the Toshiba Z830 into a Ubuntu Ultrabook

ultrabook

EDIT: Here are some tweaks if you install 12.04 (Precise Pangolin).

Since I will have to do a fair amount of traveling in the next year I was in need of upgrading my trusted workhorse of Toshiba Qosmio F60 to a more portable option that will be easier on the shoulders during long travels. After doing some research into which of the major manufacturers offer the best support for a Linux based Operating System it came down to a final two: the Intel i7 variants of Samsung Series 9 and the Toshiba Z830.

Thanks to these sites for some useful content:

In the end it came down to Toshiba having full-size VGA, HDMI and Ethernet connectors at the rear of the unit (no need for carrying adapters) and getting a very decent price rebate for the Toshiba.

The first and only task in the included Windows 7 OS was to create a recovery USB drive using the Toshiba included utility (on the desktop). You need a 12GB USB stick (found out the hard way after buying an 8GB version with the unit on advice of the sales guy).

After booting from a USB stick created from the Ubuntu 11.10 ISO (http://www.ubuntu.com/download/ubuntu/download) with Ubuntu Bootdisk Creator (or alternatively UnetBootin) I opted to wipe the whole SSD drive. If you are not sure that you want to stick with Ubuntu it might be safer to try running from USB or dual-boot.

Note: you need to use the USB3 connector on the right-hand side of the machine to boot (not the rear USB2 connectors). Press the F-12 Function key when turning the unit off and choose the USB Boot option.

It always gives me strange pleasure to wipe a pristine new machine from all the rubbish that manufacturers pre-install and start with a clean system that I can customise to my needs (without having redundant stuff cluttering the system and waste valuable resources).  So enjoy that part ;-)

toshy ultrabook

The Oneiric Ocelot (11.10) installation was extremely smooth. As predicted by the previous research all the hardware was detected automatically. Even Bluetooth and Toshiba Function keys (screen brightness and display switching) work without any tweaking.

I am currently looking into some SSD specific tweaks thanks to this article on ZDNET. I will post future updates on further experiences when it comes to battery-life and other day-2-day issues.

Update: I have made a tweak to improve disk I/O parameters to improve SSD performance

Disable the ‘elevator’ I/O scheduler in the kernel by editing the default Grub config (/etc/default/grub)

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

Looks like this unit is definitely a good option for people looking for Ubuntu Notebook / Ultrabook hardware. Well done Toshiba ! Now I just want a refund for the wasted Windows license….

Enjoy your OPEN Ultrabook !

Mobile Browser Testing on the Desktop

If you need to check websites for mobile compliance on a regular basis you know that having a device to constantly check is painful and slows down your work during debugging and phases of constant change.

Surrounding myself with screens by adactio, on Flickr
Creative Commons Attribution 2.0 Generic License  by  adactio 

There are a few tools that will make this work a lot easier:

Google Chrome

Chrome does have some nice dedicated plug-ins to help with this task

Firefox

I am not aware of any plug-ins like Chrome, but as a hack I have found it useful to employ a user-agent switching plugin to trick the browser

User Agent Switcher (http://chrispederick.com/work/user-agent-switcher/) works well for this.

  1. Download the User Agent Switcher Add-on for Firefox
  2. Restart Firefox for the add-on change to take place.
  3. To start a new browsing session using an emulated browser, go to Tools > User Agent Switcher and select the appropriate mobile web browser you want to emulate
  4. To switch back to normal browsing, just select the default option from the above menu.

If you need more specific UA Strings check here: http://www.zytrax.com/tech/web/mobile_ids.html

For more serious work there are obviously dedicated emulators from the major Mobile OS vendors (but they need to be installed and configured for each platform):

 

PS: Nothing substitutes final QA testing on actual devices …

 

Revert Ubuntu Netbook UI

If you upgrade you Ubuntu Netbook release to 10.10 (Maverick Meerkat) you will notice a change to the new ¨Unity¨ user interface.

Personally I think the new interface is absolutely horrible (from a usability perspective) and I wanted to revert to the previous Netbook-Launcher.

HOWTO

Install the required components via terminal:

sudo apt-get install netbook-launcher-efl

After install just change the “Login Settings”

Log out and after the next login: voila – the laucher interface:

However in the end I changed to the desktop interface which I found the most useful for my type of usage.