Welcome to Technology Short Take #77. I’ve got a new collection of links and articles from around the Web on various data center-focused technologies.
In my Linux migration initial progress report, I provided an early assessment of the Linux distribution that I thought I would use moving forward. At that time, I had selected Ubuntu. Since that time, though, I’ve pivoted a bit and selected a different Linux distribution as the operating system (OS) for my primary laptop moving forward. In this post, I’d like to describe why I selected Fedora.
My original reasons for selecting Ubuntu 16.04 were as follows:
These are all valid reasons, but as I continued to compare Ubuntu against Fedora 25 I realized that some of these factors weren’t as critical as I’d originally thought:
Hardware support: I initially targeted Ubuntu because it runs really well on Apple hardware. Fedora, on the other hand, doesn’t run quite as well on Apple hardware. Since I’m coming from the OS X world, I initially placed some emphasis on support for Apple hardware. The reality is, though, that I need a Linux distribution that does a great job of supporting my new work laptop, not one of my leftover Mac laptops. My experience with Fedora 25 on the Dell E7370 Continue reading
For the last few years, I’ve been sharing my list of projects for each year (here’s the list for 2012, the list for 2013, 2015’s list, and last year’s list—I didn’t do a list for 2014). Toward the end of each year, I also publish a “report card” assessing my performance against that year’s list (here’s the 2016 assessment). In this post, I’m going to share my list of planned projects for 2017.
Without further ado, here’s the list for 2017:
Finish the network automation book. One way or another, the network automation book I’m writing with Jason Edelman and Matt Oswalt is getting finished in 2017. (It’s available now as an Early Access edition if you’d like to give it a look and provide some feedback.)
Launch an open source book project. This is something I’ve been tossing around for a while now. Since my efforts at making code contributions to an open source project aren’t going so well (though I’m going to keep moving in that direction), I figured I’d contribute in a way I know I can do. This is going to be a “cookbook”-style book, and the goal I’m setting Continue reading
As part of my Linux migration (see my initial progress report), late this past week I started setting up my first non-Apple laptop since 2003. In this post, I’d like to share my thoughts on my new laptop, a Dell Latitude E7370.
First, let’s get the specs—the “speeds and feeds”—out of the way:
Based on the specs alone, it’s easy to see this laptop is no slouch. It’s certainly comparable to the latest-generation of MacBook Pro laptops, except for the touchscreen (which the Macs don’t offer/support).
Subjectively, I have to say I’m impressed with the E7370. I travel quite a bit, so size and weight are important. This laptop looks and feels more svelte than my previous laptop, a 13” MacBook Air. From a comparison perspective, I’d say it’s on par with my son’s 11” MacBook Air. The build quality is great, and the laptop feels solid and sturdy. The display is crisp, sharp, and bright, and battery life (so far, without any OS-level tuning) has been respectable. Unlike some previous ultrabooks I’ve seen, Dell’s done Continue reading
Welcome to Technology Short Take #76, the first Technology Short Take of 2017. Normally, I’d publish this on a Friday, but due to extenuating circumstances (my mother-in-law’s funeral is tomorrow) I’m posting it today. Here’s hoping you find something useful!
Almost 2 years ago, I set out on an experiment in plain text productivity. I won’t say the experiment was a failure; I did learn from the experiment, and gaining knowledge is usually a positive outcome. In the end, I switched back to OmniFocus, the OS X- and iOS-specific app I’d been using previously. In the last few weeks, though, I’ve revisited the idea of a plain text productivity system as part of my migration to Ubuntu Linux as my primary desktop OS, and I think I’ve resolved some of the issues that were present in my last attempt.
To recap, in my previous attempt I settled on the TaskPaper format (named after the OS X app of the same name). The format is extraordinarily flexible, and the OS X app is more powerful than you might expect. However, I uncovered some issues that made the solution untenable; namely:
At the time, the app had no way to dynamically respond to Continue reading
In this article, I want to share with you the steps I took to enable wireless networking on an older (mid-2011) 13” MacBook Pro running Fedora 25. This is driven by a continued need to evaluate Fedora 25, as I’ve run into a few potential roadblocks with Ubuntu 16.04 as my primary laptop OS. Using Fedora 25 instead may help resolve some of these issues, which primarily center around corporate collaboration.
First, you’ll want to enable the RPM Fusion repositories. This is pretty well documented on the RPM Fusion web site. This link will take you to the configuration page, which will provide links for graphical setup via your browser as well as CLI commands.
Once the RPM Fusion repositories (both Free and Nonfree) repositories are enabled, then it’s just a matter of installing a few packages:
First, install the “kernel-devel” package appropriate for your current kernel. The command to use is:
sudo dnf install "kernel-devel-uname-r == $(uname -r)"
This could be user error on my part, but I’ve found that it’s necessary to use the full package (including version) instead of just “kernel-devel”. Otherwise, Fedora seems to have a tendency to install the latest package, which may not Continue reading
In this post, I’d like to share a script I wrote to help with converting Outline Processor Markup Language (OPML) documents to Markdown. If you read the recent update on my Linux migration plans, you may recall that I identified OPML files (created in OmniOutliner) as an area where some work was going to be required. This script is the result of my efforts in this area.
<aside>Before I continue, I want to very briefly point out that this script was written to help in my specific use case. It’s quite likely that you’ll want or need to adjust the behaviors of this script in order to meet the needs of your particular use case.</aside>
This script takes advantage of two tools: pandoc
and sed
. pandoc
is a third-party tool that is easily installed on Ubuntu using apt
or apt-get
. (I haven’t checked other Linux distributions, but I suspect packages are available there as well.) pandoc
is also available for OS X, making it a very handy cross-platform tool to have in my toolchest. (See this post for more information on how you can use pandoc
in a Markdown-heavy environment.) sed
, of course, is a Continue reading
One aspect of my pending migration to Ubuntu Linux on my primary laptop has been the opportunity to explore “non-traditional” uses for Linux containers. In particular, the idea of using Docker (or systemd-nspawn
or rkt
) to serve as a sandbox (of sorts) for GUI applications really intrigues me. This isn’t a use case that many of the container mechanisms are aiming to solve, but it’s an interesting use case nevertheless (to me, anyway).
So, in no particular order, here are a few articles I found about using Linux containers as application containers/sandboxes (mostly focused around GUI applications):
A Docker-Like Container Management using systemd
Running containers without Docker
Containerizing Graphical Applications on Linux with systemd-nspawn
Debian Containers with systemd-nspawn
Using your own containers with systemd-nspawn and overlayfs
I was successful in using Docker to containerize Firefox (see my “dockerfiles” repository on GitHub)), and was also successful in using systemd-nspawn
in the same way, including the use of overlayfs. My experiments have been quite helpful and informative; I have some ideas that may percolate into future blog posts.
A few days ago I posted a tweet about a new tool I’d (re-)discovered called jrnl
. Someone replied to that tweet, asking me to list my “multi-platform toolbelt.” While it’s still evolving (every day!), I thought it might make for a good blog post. So, here’s a list of my still-evolving multi-platform toolbelt.
Sublime Text: Over the last few years, I’ve moved to creating the vast majority of my content in Markdown (MultiMarkdown, to be more specific). At first I was using OS X-specific text editors (first TextMate 1.x, then BBEdit), but last year I switched to Sublime Text. Sublime Text supports OS X, Linux, and Windows. I don’t have any Windows-based systems, so I only use it on OS X and Linux.
Wire: My use of Wire is still a bit limited, but only because the reach of the platform is also still a bit limited (this is a classical example of network effect). I’m currently using Wire on Linux and OS X, with plans to extend to iOS and Android. (If you’re using Wire, feel free to look me up! My username is “scottslowe”).
IMAP/SMTP: I’ve standardized on using IMAP/SMTP for all my e-mail Continue reading
Welcome to Technology Short Take #75, the final Technology Short Take for 2016. Fortunately, it’s not the final Technology Short Take ever, as I’ll be back in 2017 with more content. Until then, here’s some data center-related articles and links for your enjoyment.
Nothing this time around!
As I’ve done for the last few years, in early 2016 I published a list of my planned personal projects for the year. In this post, I’d like to look back on that list of projects and grade myself on my progress (or lack of progress, if that is the case). Even though 2016 isn’t over yet, it’s close enough to the end of the year that things won’t change that much before 2017 is upon us.
For reference, here’s the list of planned 2016 projects:
Let’s look at each of these planned projects and see how I fared.
Complete a new book (again): Well—in the spirit of total honesty and transparency—this was a major failure. Not only did I fail to complete the network automation book I’ve been working on with Matt Oswalt and Jason Edelman, but the other book project I had planned also did not go anywhere. Granted, the circumstances preventing the second book project were outside my control, but the fact remains I still did Continue reading
As part of my effort to make myself and my workflows more “cross-platform friendly,” I’ve been revisiting certain aspects of how I do things. One of the things I’m reviewing is how I capture—and later review—posts or articles on the web. On OS X, I would run an AppleScript that generated a .webloc
file (aka an Internet location file). This is an XML file that OS X understands. However, Linux doesn’t natively understand these files, so today I came up with a solution to reading .webloc
files with Ubuntu and Firefox.
The solution to the file involves the use of xmllint
, a tool that you can install on Ubuntu as part of the “libxml2-utils” package. Using xmllint
, you can easily extract a single XML element from an XML file—and .webloc
files are just XML files. For the sake of illustration, here’s the contents of a .webloc
file generated on OS X:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>URL</key>
<string>http://blog.fntlnz.wtf/post/systemd-nspawn/</string>
</dict>
</plist>
Using xmllint
, you can extract the URL value, and then pass Continue reading
About 4 years ago, I discussed some changes in the Apple ecosystem that might lead me to move away from OS X. To be honest, I’ve made only token efforts since that time to actually migrate away, even though the forces that I described in that post are still in full effect. In fact, some might say that the “iOS-ification” of OS X (now rebranded as “macOS”) is even stronger now. As a result, I’ve stepped up my work on a Linux migration, and I’m happy to report that I’ve made some progress.
Here’s a quick update on where things stand so far.
I’ve looked at a fair number of Linux distributions. I tried Elementary OS, which some have raved about but which I found too simplistic. I also went back and looked again at Ubuntu derivatives like Linux Mint. Given that Ubuntu is itself derived from Debian, I also took a look at Debian “Jessie”. Finally, I tested Fedora 25. For a number of reasons—which I’ll describe in more detail in a moment—I’ve settled on Ubuntu 16.04.
So, why Ubuntu 16.04 “Xenial Xerus”? Keep in mind that the reasons I list below are my Continue reading
In this post, I’m going to share how to hide the user list on the login screen for Ubuntu 16.04. The information here isn’t necessarily new or ground-breaking; however, in searching for the solution myself I found a lot of conflicting information as to how this may or may not be accomplished. I’m publishing this post in the hopes of providing a bit more clarity around this topic.
I’ve verified that this procedure works on the desktop distribution of Ubuntu 16.04. Note also that this is probably not the only way of making this work; it’s likely there are other ways of accomplishing the same thing.
To make configuration changes to the login screen, you’ll want to add configuration files to /etc/lightdm/lightdm.conf.d
. I used a single file to hide the user list and disable guest logins; presumably, you could use separate files for each configuration directive.
To disable the user list and disallow guest logins, add this content to a file in the etc/lightdm/lightdm.conf.d
directory (I used the filename 00-hide-user-list.conf
):
[SeatDefaults]
greeter-hide-users=true
greeter-show-manual-login=true
allow-guest=false
Once this file is in place, you’ll need to either restart your Ubuntu system, or restart the LightDM Continue reading
A few weeks ago I wrote a post about installing Ansible 2.2 on Fedora 25; today, I’d like to tackle what’s involved in installing Ansible 2.2 on Ubuntu 16.04. This post, like its Fedora counterpart, stems from my ongoing evaluation of Linux distributions and desktop environments. While the information here is very similar to the information in the Fedora post, I’m putting it in its own post in the hopes of making the information easier for readers to find.
It’s not really a secret that I like to run Ansible in a Python virtualenv, but I don’t believe that it will make any difference to the procedure described in this post. The errors that result when trying to install Ansible 2.2 without the necessary prerequisite packages should be the same either way (in a virtualenv or not). However, I’m happy to be corrected if someone knows otherwise.
To create a Python virtualenv, you’ll first need virtualenv installed. I prefer to install virtualenv globally for all users using this command:
sudo -H pip install virtualenv
Alternately, you could install it via a package, with apt install virtualenv
. As far as I can tell, either approach Continue reading
In this post, I’m going to discuss how to use OVN (Open Virtual Network; part of the Open vSwitch project) with KVM and Libvirt to provide virtual networking for KVM-based virtual machines. This post will build on some concepts around OVS and Libvirt that I’ve discussed previously; be sure to review the OVS posts and Libvirt posts on this site for more details and prerequisite knowledge.
I’ll structure this discussion around 2 key steps:
Note that I’m not going to discuss setting up KVM/Libvirt, as that’s something I’ve covered previously and is well-documented.
Ready? Let’s jump in!
The biggest “challenge” here is package availability—many Linux distributions don’t have packages available for OVS 2.6.0, which is the first release with non-experimental support of OVN. If you’re an Ubuntu user, then you can use the Ubuntu Cloud Archive for the OpenStack “Newton” release, which includes OVS/OVN 2.6.0 packages. For other distributions, you’ll probably need to compile from source. In that case, the OVS installation documentation is quite accurate and usable.
For the purposes of this post, I’ll assume you’re using Ubuntu 16.04 and will pull packages Continue reading
Welcome to Technology Short Take #74! The end of 2016 is nearly upon us, and it looks as if there will be only one more Technology Short Take before the end of the year. So, let’s get on with the content—time is short!
Nothing this time, but I’ll stay alert for content to include in the future.
Over the last few days, I’ve added two new Vagrant-based learning environments to my GitHub “learning-tools” repository, both of them focused on Open Virtual Network (OVN). OVN, if you aren’t aware, is part of the Open vSwitch (OVS) project aimed at adding open source network virtualization functionality to OVS. If you’re interested in learning more about OVN, you may want to check out these new learning environments.
Here’s more details on the two new learning environments:
The first one, found in the “ovn” folder of the repository, just builds out a simple three-node OVN 2.6.0 environment running Ubuntu 16.04. This would allow you to run OVN commands like ovn-nbctl
, ovn-sbctl
, ovs-vsctl
, and other related commands to better understand how the components interact with each other and how OVN works.
The second environment, found in the “ovn-docker-ansible” folder, builds on the first one by adding Docker Engine to each node in the environment and adding the OVN driver for Docker networking. In addition to being able to run various OVS and OVN commands, this environment allows you to build OVN-backed overlay networks between Docker containers running on any node in the environment. Continue reading
This is a liveblog of the Thursday keynote at AWS re:Invent 2016. Today’s keynote is led by Werner Vogels, CTO of Amazon Web Services. Unlike yesterday, today I opted not to attend the keynote in the main hall, viewing the keynote instead from an “overflow” area. Turns out the “overflow” area has drinks, tables, and power! That’s a far better option that being crammed in the main hall, though in the past I’ve found it more difficult to liveblog when not viewing the keynote directly. We’ll see if that continues to hold true.
After an entertaining “remix” of Werner quotes in the pre-keynote music mix, Vogels takes the stage at 9:30. The remote viewing is, unfortunately, off-sync; the video doesn’t match up to the audio. Vogels starts his keynote by looking back at the last 10 years, and seeing the sorts of transformations have occurred. He rails against the vendors, and how AWS vowed to be “the Earth’s most customer-centric IT company.” Vogels says customers should be in charge, not vendors, and that includes AWS.
How does AWS be a customer-centric IT company?