Posts in category Linux:
I found it surprisingly difficult to find a plain explanation of setting up hug and apache mod_wsgi. So here is how I did it.
Minimal hug API
Writing an API with hug is really easy. You can write a "hello world" in four lines of code:
@hug.get('/hello') def hello(name: str) -> str: return "Hello " + name
Running this on a devserver is also trivial:
hug -f hello.py
Whenever I want to test a new release of Ubuntu I find myself cloning the root partition so I can safely upgrade and still keep my old install.
However, I usually forget some step and end up needing to debug grub boot. So this is a summary of what needs to be done in order to clone the partition and make it work. (Almost all of the below need to be run as root of course.)
First you need the file systems in question to be unmounted, so likely you
I have a mostly-headless HTPC without keyboard, so it is easier to control it remotely. VNC lets you do anything, but for simple things a command line is faster.
My media player of choice is rhythmbox, so there's an easy way to control it: rhythmbox-control. However, it requires an X session and ssh -X opens a new one. Here's how to use it to control a rhythmbox instance that is already running in the main display:
[code]alias rthythmbox-remote="env DISPLAY=:0.0 rhythmbox-control
When using Ubuntu Live USB there is the option of using persistence to store changes on the USB. It uses aufs to layer a read-write filesystem on top of a read-only squashfs compressed filesystem. This is great, because it fits over 2GB worth stuff into a c. 700MB default live system and still allows changes to be stored.
The bad news is that updates quickly eat the rw space because old versions of applications cannot be removed to free space. Also, removing
Update: Updated below for 11.04/Natty.
So I had some trouble getting grub-reboot to work, since it only seems to like numbers, but I figured it out. I made a script to reboot to another kernel or OS (Windows for me) once, leaving the default unchanged.
First one must set
/etc/default/grub and run
grub-set-default to set the default kernel (usually
'0' for the most recent Linux kernel).
The encrypted home directory feature of Ubuntu is especially useful with laptops, where if it is lost one probably doesn't want others to have access to data. Unfortunately it messes up ssh access with public keys.
Key authentication is a very useful feature of ssh that I use all the time. It lets me avoid constantly typing in passwords and is more secure than password authentication. It works by storing authorized public keys (by default)
One of the changes in the recent Ubuntu 10.10 (Maverick) is the upgrade of Linux kernel from version 2.6.32 (in Lucid) to 2.6.35. The change introduces several new features of which I especially like Radeon power management (for use with open drivers).
Unfortunately the default power profile only saves power when the screen is off (or on battery I think). I also know of no GUI tools to
To make the wireless of my 1001PX work in Ubuntu Lucid I had to install the 2.6.35 kernel from Kernel team PPA. The package name is linux-meta-lts-backport-maverick and it should eventually become available in the Lucid package archives.
Unfortunately, the touchpad didn't support multi-touch OOTB and the option in Mouse Settings was disabled. Here are the xinput commands I put in /etc/rc.local to get multi-touch scrolling and click emulation.
I finally have Ubuntu Lucid looking like I want it to. First a couple of screenshots and then some linking to the relevant packages etc. Here's the desktop with Firefox open.
And here I've marked some customizations in the image. (Apologies for ugly text.) [![Lucid Lynx Screenshot /w
When Googling for hostname aliasing on Linux, the most prominent answers were for SSH hostname aliasing, which is simple. For a general purpose solution the common answer was "install a DNS server", which is way over the top. Here's what I managed to figure out.
The objective is to have something like /etc/hosts, except like "hostname hostname2" instead of "address hostname".
My solution is to use the HOSTALIASES variable, which should point to a host alias file. In my case I did:
Ok, so I have a 160GB disk image I need to split to small pieces (so I
can compress those individually in the background later), but I only
have a few GB free on the disk containing the image. Unfortunately,
split isn't in place. Here's what I managed to put together using Bash
#!/bin/bash file=$1 size=$2 count=$3
for i in `seq $((count-1)) -1 0` do dd if=$file of=$file.$i bs=4096 skip=$((size*i/4096)) truncate --size=$((size*i)) $file echo $((count-i))/$count done
Update: See the bottom for Ubuntu Lucid
I just installed my new Trust Slimline Sketch graphics tablet on Ubuntu Karmic 9.10. It was reported as "UC-LOGIC Tablet WP8060U" by xinput. Here's how I made in work, (based on Ubuntu wiki and some Googling):
1. Install wizardpen from Michael Owens' PPA using ppa:doctormo/xorg-wizardpen and installing the package.
2. Create an .fdi file using
sudo apt-get install origami && sudo origami install -t 45104 -u USERNAME
Unfortunately, while it is niced by default, it keeps the CPU running at 100%. This means the CPU uses more electricity and runs hotter. Most
With KVM you can use a high resolution by passing kvm the -vga std parameter (or -std-vga before KVM-77). When using virt-manager to manage virtual machine guests, there is no option to change display resolution. However, it is possible to work around it as follows.
First, create a bash script that adds the argument to a kvm call:
#!/bin/bash kvm [email protected] -vga std
Put it at, say, /usr/bin/qemu-kvm and make it executable:
chmod +x qemu-kvm sudo install qemu-kvm /usr/bin/