Older blog entries for redi (starting at number 283)

20 May 2014 (updated 24 May 2014 at 11:25 UTC) »
Static IPs and DNS for VM guests in Fedora 20

I recently needed to let my guest VMs talk to each other, which I did by assigning them static IPs as described below. Most of this is documented in Virtual Networking page of the libvirt wiki.

Add VM host and guests to /etc/hosts on the host, choosing a static IP for each guest vhost.virtdomain vhost guest1.virtdomain guest1

Find each guest's MAC address:
[root@localhost ~]# virsh domiflist guest1
Interface Type Source Model MAC
- network default virtio 52:54:00:ab:cd:ef
(You can find this info via the virt-manager GUI instead if you prefer.)

Add <host> entries mapping MAC to the static IP
Run virsh net-edit default to edit the virtual network configuration
<range start='' end=''/>
<host mac='52:54:00:ab:cd:ef' name='guest1.virtdomain' ip=''/>

Restart dnsmasq
killall -HUP dnsmasq
Now dnsmasq will make the host's /etc/hosts available to all guests.

restart libvirtd
systemctl restart libvirtd.service

Exporting an NFSv3 mount to guest VMs in Fedora 20

With my virtual network configured how I wanted it, I could use NFS to share the host's filesystem with the guests. Most of the documentation I found on exporting an FS said to use the 9p protocol, but although that's supported in the Fedora kernel, it isn't supported by my RHEL6 and BSD guests, so I went for NFS. Figuring out the NFS config was harder than the network setup as all the documentation I found was outdated and/or didn't work on Fedora 20.

* On the host:

Edit /etc/exports to define the mount point:
(In my case I'm using ro so I'll only export a read-only filesystem.)

Enable the NFS server
systemctl enable nfs-server.service
systemctl restart nfs-server.service

You should be able to list the available exports on the localhost
showmount -e

Configure firewall
Add the virtual network interface to a firewalld zone (I used "internal") and allow 'nfs', 'rpc-bind' and 'mountd' in that zone.
Make changes to the "permanent" profile to survive past restart, the runtime profile is not persistent, but can be useful for testing changes.

* On each guest:

You should be able to list the available exports
showmount -e
(If you set up DNS as described above you should be able to use host or host.virtdomain instead of the IP address.)

Mount the exported filesystem
mkdir /mnt/host
mount -t nfs -o nfsvers=3 /mnt/host

By default the clients seemed to want to use NFSv4, so trying to mount failed with an "access denied" error.
On RHEL6 I needed nfsvers=3 in the options, on BSD I needed nfsv3.
If that works correctly you can add it to etc/fstab to make it permanent.

Every time I type #include <utility> I wish there was a second C++ library header of utilities called <utilitu>, and another header of file utilities called <futility>.

20 Feb 2014 (updated 20 Feb 2014 at 09:46 UTC) »

To generate a PDF from the LaTeX sources for the C++ working draft:

git clone https://github.com/cplusplus/draft.git
cd draft/sources
latexmk -pdf std

On Fedora 20 I needed to install the following packages:


chalst, ncm still posts here, unsyndicated, but infrequently.

I've been a bit more active recently, but don't rely on it being most months :) As I don't have much to say I don't see the point of setting up a dedicated blog site and syndicating it, Advogato's diary entries work for me.
ACCU 2014

Register now for ACCU 2014!

It's sad that Advogato's recentlog is now all but useless because of the frequency of embedded videos in people's posts, which bork the rest of the page.

New job

I started a new job at Red Hat today. After many years of contributing to libstdc++ as a volunteer I will now be working full-time on the GNU C++ library and runtime. I couldn't be happier to be working on a project I really care about and to be joining a great team of first class experts at Red Hat. I'm really excited about helping to provide an even better C++ implementation in GCC!
ACCU 2014 Call for Papers

Closing date is November 5th.
6 Sep 2013 (updated 6 Sep 2013 at 08:35 UTC) »

I wish people would stop syndicating blogs containing videos to advogato, it borks the html parser completely and makes the rest of the page unreadable.

If you work for a telecoms, networking or crypto company and have assisted the NSA by inserting backdoors or weakening crypto then I hope you are eaten alive by rats. Shame on you.

There should be an app for that pt. 92

Sometimes you install an app for your phone that works well and does what it says on the tin. At a later date you install an update which introduces some serious problem that turns your phone to a slow, creaking, unusable heap of crap (Roaming Angel from Orange, I'm looking at you) or simply removes all the useful functionality (I'm told this happened to First Direct banking on the go).

The app's "star rating" in the marketplace might appear average, but if you look in more detail you'll see the ratings are almost all polarised, giving either one or five stars. If you look into it in even more detail you'll see that the older reviews give it five stars but all the recent reviews give only one star. The app has rotted.

App stores should weight ratings so that every time the app is updated all older ratings have less weighting than ratings since the update. Another alternative would be to show a chart of ratings against time, so you can tell if the rating is dropping over time and see at a glance that the average rating dropped suddenly at a particular time.

But that wouldn't help existing users of the app, who are unlikely to go and check the popularity of apps they've already installed, and may not realise which app update made their phone slow to a crawl. Someone should write an app that tracks the rating of all your installed apps and warns you if any of them suddenly gets worse according to the reviews in the app store, so you can remove the rotten apps. The app should be called Rotten Apps (Rotten Apples is unlikely to get past the censors in Cupertino) or Approbrium. You're welcome. I'll accept royalties for this idea in cash or beer.

274 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!