EdgeRouter Lite is a great device to run at the edge of a home network. It becomes even better when it's running OpenBSD. This guide documents how to setup such a gateway. There are accompanying git repos to somewhat automate the process as well.
pkgsrc is a cross operating system package manager. It supports -- among many others -- NetBSD, Minix, SmartOS, Linux, and macOS. I like it because of this portability. It also has the additional, and I would say the best, benefit of being installed in the home directory and run completely without needing root access. I also like that I don't have to depend on binary packages built by someone else, say Joyent, although there's absolutely nothing wrong with it. Finally, it provides a large number of different packages. I have never encountered a package that I needed but was not available. In short pkgsrc is a portable, featureful, and flexible package manager. What's not to like?
pkgsrc can sometimes be a little behind native package managers, such as MacPorts on macOS, but it catches up quickly. For my use case -- getting access to multiple versions of Python -- it works well enough if I closely follow its trunk branch.
There's generally good and detailed documentation available for pkgsrc but an introductory guide that pulled in some essential starter information was lacking. This guide fills that void by making it easy to get started with pkgsrc and learn about some of its core concepts. Thus, I dubbed it the mini handbook or the missing starter handbook.
EdgeRouter Lite is a great device to run at the edge of a home network. It becomes even better when it's running FreeBSD. This guide documents how to setup such a gateway. There are accompanying git repos to somewhat automate the process as well.
Tips I have learned on how to do things in shell scripts.
Fixtures are a great feature of PyTest but using them can be tricky. I found them to be very useful when all important environment logic resides in them and tests use a consistent interface without regard to how the environment is actually set up.
There are many options to install newer Python on CentOS, including building from source, installing from EPEL, installing from Software Collections (SCL), installing third party rpm package, etc. These all work to some degree of success. I had a different use case and could not find a pre-built rpm package to fit it.
My use case had these restraints:
- Install newer Python alongside the default system version
- Install multiple Python versions simultaneously
- Install the latest release from upstream Python project not just the latest release from a repository (repo)
- Do not build from source unless absolutely necessary
I configured requiring encryption in Apache Qpid (C++ broker) by adding the following line to /etc/qpid/qpidd.conf file and restarting the broker
Later when I used qpid-stat I got an error message
$ qpid-stat -q -b user@password/localhost:5672 Failed: AuthenticationFailure - Error in sasl_client_start (-4) SASL(-4): no mechanism available
After following a mailing list post to a JIRA to a Review Board entry I found that when broker requires a secure TLS connection then the connection string must use amqps protocol instead of amqp like so
$ qpid-stat -q -b amqps://user@password/localhost:5672
I was using version 0.34 of both broker and client.
An issue in FreeBSD 11-CURRENT - where make buildworld fails when run on RPi2 - prompted an investigation on automating the creation of bootable FreeBSD images from 11-CURRENT on a Mac OS X machine.
In an ideal situation, a build process can be kicked off at any time to produce an image that can be written to a Micro SD card for the RPi2 to boot from.
I found at one point that using an 8GB Micro SD card caused me headaches as I ran out of disk space at some points. I would recommend buying a bigger card.
This guide was created using OS X 10.10 (Yosemite) as the "client". All instructions assume:
- Correct software installed on OS X
- You know how to use Disk Utility and CLI
- You have already assembled the Raspberry Pi (RPi) hardware (case, etc.)
- WiFi USB adapter is not connected initially (it's configured later)
- Ethernet, HDMI, keyboard, mouse are connected to Raspberry Pi
- USB to TTL serial cable is available for use (I bought this one: http://www.amazon.com/gp/product/B00QT7LQ88)
- Drivers from http://prolificusa.com/pl-2303hx-drivers/
WARNING: This is a "living document" and will be updated as I learn from my mistakes. There may be a lot of errors in this doc so all the standard disclaimers apply.
In Atom open the command palette (Shift-Command-p) and enter command Install Shell Commands.
Configure Atom as git's editor.
git config --global core.editor "atom --new-window --wait"
Now when you do git commit it should open a new Atom window for you to enter your commit message.