I'm the lead developer of NDN Forwarding Daemon (NFD).
In this article, I want to share how my development machine is setup.
Everything in Virtual Machines
I do all NFD development work in virtual machines.
There are many benefits in using VMs: I can have a clean operating system, I can test out different OS versions if necessary, and I can work on a different change on another VM when "my code's compiling".
My VM was setup using Vagrant, using the following Vagrantfile:
BerryBoot is a bootloader for Raspberry Pi, allowing multiple operating system images to be placed on a single microSD card.
It displays a menu upon system boot, so that the user can choose which OS to load.
I use a Raspberry Pi 3 as my primary desktop computer.
It loads Ubuntu Mate 16.04 by default, in which I can code, read, and write dissertation.
The same computer is also equipped with RetroPie, as my gaming machine playing FreeDoom.
One problem I'm frequently facing is: in order to switch from work mode to game mode, I must reboot the machine.
Shutting down Ubuntu Mate can take as little as 10 seconds, or as much as 3 minutes, depending on luck.
I hate to stay with the machine while it's rebooting, but if I walk away, I may miss the 10-second window in which I should select RetroPie from the BerryBoot menu, before it loads the default, Ubuntu Mate, automatically.
A less known feature of BerryBoot is its
You may have BerryBoot to load a specific image at next boot by writing the image name to
data/runonce file in BerryBoot partition.
This works particularly well if the Raspberry Pi is headless and does not have a keyboard, but it requires 5 steps and requires typing the full image name in the
To simplify this process and quickly switch to another operating system in BerryBoot, I wrote a little script:
Recently I'm doing some heavy research work.
One part of my work involves invoking a simulation script with different inputs and parameters and then an analysis script to analyze the simulation output.
At first, this is an easy bash loop: