Earlier today I upgraded my installation of Virtualbox on Windows 10 from 5.0.20 to 5.0.22. This also came up with an update to the guest additions which I installed into my Ubuntu 16.04 guest machine.
After a reboot Ubuntu would no longer boot and instead would flicker as it tried to change the screen resolution inside the virtual machine. This is a known problem in VirtualBox (see: https://www.virtualbox.org/ticket/15526).
I’ve managed to revert VirtualBox and the guest additions back to 5.0.20 using the following steps:
- On the host OS (in this case Windows 10) reinstall VirtualBox 5.0.20 over 5.0.22 – this was straight forward, I found the old installer in my downloads directory.
- Open VirtualBox and start the Ubuntu guest machine, immediately hold down the left shift key. This must be done before the purple splash screen.
- At the grub menu that loads select “Advanced Options for Ubuntu” and then select the second menu entry. This entry should contain the word “upstart”.
- Once Ubuntu has booted to a console, login.
- Switch to the currently installed VirtualBox guest additions install directory
and try and run
I didn’t have much success with this.
- Insert the guest additions CD from VirtualBox’s top menu bar.
- Mount the CD Rom:
sudo mount /dev/cdrom /mnt/cdrom
- Switch to the cdrom directory
- Reinstall the old version of the guest additons
- Reboot Ubuntu and everything “should” be fine.
Until the previous evening I hadn’t even heard of Speyer and discovering it turned out to be one of the highlights of my trip. After spending the morning exploring Worms I jumped on a train for the 35 minute journey to Speyer.
Arriving at Speyer I walked from the Hauptbahnhof along to the Altpörtel and Maximilianstraße, Speyer’s main street. Here the pastel coloured buildings of Speyer felt a lot more like “stereotypical” Germany than Worms or Mainz did. This may be due to it receiving much less damage during WWII than the other two cities.
Continue reading “Central Europe Adventures 2016 – Part Twenty One: Speyer”
Finding my way from Worms station to my hotel for the night should have been pretty simple. All I had to do was walk down one road and then turn once and walk down a second but somehow I still managed to get lost. It turned out that my hotel was above a restaurant that was closed over the winter. Once I had figured out how to get into the hotel I put my bags into my room and headed out again to find food for dinner.
Worms was a lot smaller than what I was expecting. Trying to find dinner turned out to be quite a challenge as many of the restaurants and pubs contained people openly smoking inside. In the end I just settled for a hot chocolate at a cafe, planned ideas for things to see the following day and then had an early night.
Continue reading “Central Europe Adventures 2016 – Part Twenty: Worms”
Diet of Worms Luther Monument
Old City Walls
Here be dragons
My next destination after Aachen was Worms around three hours away. Getting to Worms required me to catch three different trains. So rather that trying to get there as fast as possible I gave myself the whole day to do some sightseeing along the way.
It was fortunate that I wasn’t in a hurry as my first train of the day from Aachen to Cologne was delayed by 25 minutes. Once I got to Cologne I changed trains for a slower IC train but one that would wind itself down the side of the Rhine Valley.
I have previously been down the Rhine Valley on my first visit to Germany but it is so spectacular that it is worth doing multiple times – next time I do it I hope to be on a boat, photos taken through a train window just don’t do it justice. For tourism reasons it is called the “Romantic Rhine” and with huge cliffs, many castles and beautiful villages it more than lives up to its name.
Continue reading “Central Europe Adventures 2016 – Part Nineteen: The Rhine Valley and Mainz”
A year or so ago I first saw the draft model Erebus E63 Mercedes Benz V8 Supercar that Biante Model Cars was producing, it looked absolutely spectacular. A few months ago the finished version of that model was released and as Erebus Motorsport are no longer racing the E63 I decided it would be a model worth collecting so I purchased it. This was the first model car that I’ve purchased since I was a teenager and by far the most expensive. When it arrived I couldn’t believe the level of detail in the 1/18 scale model. As a consequence I purchased the model of the Volvo S60 on my next paycheck. They are now proudly displayed on my bookcase and I have my eyes on more models, this could become an expensive hobby.
Like any good computer scientist I use git for many research and personal projects. My primary use of git is for code backups rather than collaborating with others. However, in some of my recent work I’ve been sharing repositories with colleagues and students which has caused me to improve my git skills.
The following is some of the functionality I’ve only recently discovered that has been extremely helpful:
git cherry-pick commit-id-number
This command proved very useful when I recently forked a github repo and made some changes to the source code for the specific project I’m working on. I soon discovered a bug in the original repository that a number of users had reported. I was able to fix the bug in my fork, but as my fork had changes that I didn’t want to contribute back to the original repository I was able to use the cherry-pick command to bring across only the specific commit related to the bug fix.
git checkout --theirs conflicted_file.php
Merge conflicts suck. But sometimes despite trying to pull as often as possible they still occur and can full your code with ugly messes to clean up. I recently wanted to throw away my changes to a file and simply use the latest committed file. By using git checkout –theirs I was able to throw away all my changes and go for the file that had been committed and conflicted with my changes. Conversely, you can use –ours to replace the conflicted file in favour of local changes.
During the past few weeks the students in the course I’ve been teaching this semester have used git to collaborate on group projects. The git shortlog command produces a list of commits grouped by each author allowing you to quickly see the relative rate at which people are contributing commits to a repository.
git branch -a
When you clone a remote repository it pulls in all branches from the remote repository. However, if you just type git branch you won’t see this. The -a flag allows you to see everything.
git log --all
The same issue applies when you are trying to see the log across all commits across all branches, just using the standard git log command will only produce the log for the current branch. The -all flag allows you to see the log across all branches, combining this with the cherry-pick command is very useful when you want to bring across just one set of changes rather than merging a whole branch.
git log --all --stat --author="Tom"
Bringing this all together I’ve begun to regularly use the above command to see all commits by a single user across all branches. This has been a good way to measure students’ contributions to a group project (note: the author option is case sensitive).
Departing Osnabrück in the rain I had to catch two trains to get to Aachen. I had hoped to stop for a few hours in Dusseldorf but given the wet weather I stayed on the train to Cologne and then switched for the local train to Aachen. The second train I caught was completely full of football fans and I had to stand for close to half the journey.
Once I arrived in Aachen I walked down the road to my hotel, the Ibis Hauptbahnhof, which ironically is further from the main station than the Ibis Marschiertor. After I had checked in I met up with a friend who was so excited to see me she literally knock me to the ground when running up to give me a hug. We then joined a larger group of students and had Flammkuchen for dinner (it’s rather similar to Pizza) and rounded off the night drinking a bottle of wine in the student dorms at the university.
Continue reading “Central Europe Adventures 2016 – Part Eighteen: Aachen and Liege”
Playing with reflections in the train window