How to Recover a Barwa Chair

Recovering your Barwa chair is totally possible and we’ll help you do it!

Barwa chairs are amazing. It’s a mid-century modern chair that features two sitting positions; both are incredibly relaxing and comfortable IMO. The design is incredibly smart yet simple and elegant in the execution. The chair pictured here belonged to my father’s family and is approximately 70 years old. In April of 2021, Amanda and I restored it and documented a fair amount of the work here on youtube. Covers are incredibly difficult to come by, but the good news is you can make your own! Start by watching the videos and I’ll detail as much of the process as possible here. Also, please leave comments with your tips, suggestions, etc. I’ll keep this page updated based on feedback, and hope that it becomes a valuable resource to help others maintain these wonderful chairs.

Continue reading “How to Recover a Barwa Chair”

UEFI HTTP Boot with Libvirt


I’ve been a big proponent of network based provisioning pretty much my entire career. My second job out of college involved imaging ~800 computers multiple times a week. When I was hired, my predecessors used floppy disks to load a small OS, matching NIC driver, and imaging client (remember Ghost?!). The bottom line was it was very time/labor intensive and a horrible process. Imaging a group of systems took about 30-60 min. Long story short we reduced that time to about 5 min after we leveraged a combination of PXE, wake-on-lan, UNDI drivers, vlans, and IGMP snooping. My second iteration of the solution took the total attended time to less than 30 seconds. Anyway, it’s amazing technology for provisioning, and I even got hired at Red Hat by giving a presentation on PXE. Needless to say, I’m a huge fan!

Continue reading “UEFI HTTP Boot with Libvirt”

Using cgroup v2 w/ Containers on Fedora Silverblue

I’ve been really interested in the potential behind the unified cgroup hierarchy, aka cgroup v2, in the kernel for a while now. I even helped out with a talk on this subject earlier this year. It’s worth listening to Tejun’s part of the talk if you’re not familiar with the value behind v2. While a lot of user space, for example systemd, has really solid support for v2, there have been historic gaps around virt and containers. On the virt side, initial v2 support went into libvirt 4.9 or 5.0, and it’s continuing to be improved. For containers, we’re tracking the OCI progress here and here, and Giuseppe Scrivano has done some great v2 enablement with an alternative runtime he wrote called crun. crun is basically runc re-written in C, and while there are pros and cons on the language side, it’s ridiculously fast at instantiating containers compared to runc.

Continue reading “Using cgroup v2 w/ Containers on Fedora Silverblue”

Controlling repos with sed

As a RHEL & Fedora user of Atomic Host, I find myself using package layering on a regular basis. I typically only want a limited selection of repos enabled to keep the metadata transfers to a minimum. This is really simple with the default Fedora repos, but can be trickier with RHEL depending on the subscription that’s attached to the system. Subscription-manager can quickly disable everything and then enable the desired repos, but it’s a slower command to execute as it connects to the CDN. Anyway, I found this sed snippet handy for making this easy and quicker:
Continue reading “Controlling repos with sed”

After 2.5 years the Fire TV is still an amazing device.

I bought my first Amazon Fire TV in the summer of 2014, and 2.5 years later I’m still loving this device. In fact, I liked it so much that I moved my whole house over to Fire TVs: living room, bedroom, and a fire stick in the playroom (all 1st gen). These are primarily used for streaming content, e.g. Netflix, Amazon Prime, etc, mythtv front-end for over-the-air TV via Kodi, and now video games!

Continue reading “After 2.5 years the Fire TV is still an amazing device.”

Tweaking the Ikea Billy Bookcase for Perfect CD Storage

Growing up I bought a lot of CDs. Even thought I’ve converted them all to MP3s, I still can’t part with my collection. Storing these in a usable manor has been a challenge over the years though. I’m at the point where I think all CD storage that exists sucks. In fact click here if you don’t believe me.  The depressing state of this lead me to use an existing book case I already had a few years back.

Enter the Ikea Billy Continue reading “Tweaking the Ikea Billy Bookcase for Perfect CD Storage”

MythTV on the Amazon FireTV

…..okay so the tile of this should probably be XBMC/Kodi on the FireTV, but whatever.

I love the small footprint

It’s been over 10 years since I’ve cut the cable with ….cable/satellite, and 7 years since I’ve deployed MythTV and ditched Tivo. Disregarding some negligible hardware costs, I’ve been spending about $20 a year on television. Absolutely awesome! About four years ago I started supplementing local broadcasts with streaming services like Netflix and Amazon. This was great from a content and cost perspective, but proved challenging from a Linux/Flash support perspective. At first the best option was to dual-boot to Windows, but this had extremely low WAF, Wife Acceptance Factor (and even worse OSAF, or open source acceptance factor). About a year ago I picked up some cheap Sony blueray players that supported all the the streaming media capabilities we needed. They’re a great buy and I’d highly recommend these units since they offer a lot for ~$50. The problem this left me with is the fact that I have this old, power hungry, x86 computer next to my televisions, and the percentage has shifted to where we stream 70% of what we watch. I thought about deprecating MythTV, but honestly it’s just too good to ditch. Plus I already have the infrastructure (master backend server and tuners) and we still need something for our movies and broadcast shows.
Continue reading “MythTV on the Amazon FireTV”

GNOME3 and Vertical Screens

GNOME3 doesn’t do the best job of handling monitors of a different size, especially when they’re setup vertically. Having said that, it’s almost a perfect user experience if the larger monitor is setup as the primary. When the smaller one is primary, at least in my case, windows do not maximize properly and resize while dragging between screens. I’m probably the last person on earth to learn about this but the primary display can be selected by dragging the top panel to the other screen under Settings -> Display. I still consider myself a KDE guy, but I’m enjoying GNOME a lot more now that I’ve set the larger screen to primary. I should probably RTFM once in a while.

New Monitor Setup

I got almost ten years out of my 19″ Dell Ultra Sharp monitors, but the 4×3 resolution really started getting to me. I picked up two of the Asus VS247H-P 23.6-Inch LED monitors for $120 each on Amazon. They’re not the best monitors I’ve ever seen, but for the money they’re amazing. My favorite thing about them is they have three inputs: VGA, DVI, & HDMI. For the first time I have all my systems connected and I don’t have to fish for cables. While a KVM switch would be ideal, I don’t switch to the other systems enough to warrant the cost. I leave my primary desktop on the left one and dual screen my work laptop on the right. When I record I extend the desktop screen to the monitor on the right, as that’s the only time I need both on my desktop. Two other inputs go to my Lenovo testing workstations, and I have an extra HDMI port for embedded boards like the raspberry pi. I’ve had the setup now for four months and it’s turned out even better than I expected. With 4K becoming the new “HD” now is a great time to pickup a good 1080p-ish monitor on the cheap.

Audrey’s first PC

I decided to get Audrey a PC for her fourth birthday. She’s a little too young for it, but I really want to get both our girls exposed to technology at an early age. Another goal is for them to learn to touch type at an early age. Anyway, I didn’t really want to spend a lot of money on something that’s likely to get broken. I figured a netbook would fit the bill perfectly. Lucky for me my brother-in-law wasn’t using his old Eee PC 900, and gave it to Audrey for her birthday. To make this more fun I went with a Hello Kitty theme on the system. It’s running Fedora 19, XFCE desktop, sugar, KDE Education Project, and a home page of

Hello Kitty wallpaper really helped get her interested. It’s such a cheap trick, but it’s effective.

Continue reading “Audrey’s first PC”

Syslinux 6.01 @ PXE


I was reminded tonight that newer versions of syslinux (one of my favorites) has broken out libraries from the previous stand-alone modules. Traditionally, for setting up PXE environments all that was needed was pxelinux.0, memdisk, menu.c32, vesamenu.c32. The friendly folks on #syslinux directed me to

Basically now you’ll need:
pxelinux.0, memdisk, menu.c32, vesamenu.c32, ldlinux.c32, libutil.c32, libcom32.c32
in the root of your tftp server.

All of these can be found under the bios directory when you download versions 5 or 6 of syslinux.


Fedora 19. Making libvirt and firewalld play nice

I’ve been running Fedora for quite some type and it’s hands down my favorite bleeding-edge distro. Since I’ve been at Red Hat though, I’ve been using RHEL on my work laptops, and I’ve really enjoyed the experience and stability. So the past three years it’s been Fedora at home and RHEL at work, and that’s worked out perfectly. …..until now. Continue reading “Fedora 19. Making libvirt and firewalld play nice”

How much is too much?

I love mobile devices. You name it, laptops, smart phones, tablets, etc. There’s just something about a small screen that’s portable that draws me in. I still have very fond memories of my first monochrome PDA with 2 MB of storage. I also had a really great Windows mobile device, the HP 1910 made by HTC. Back in the day these things were amazing. …but they’ve started accumulating in my house. I need a better lifecycle for getting rid of old things I no longer use. Continue reading “How much is too much?”

HDHomeRun Repair

Over the Christmas break I re-wired my “server room” at the house and I accidentally plugged in the wrong power supply to my original HDHR. The unit is supposed to run on 5 volts but I sent 12 through it. The only reason I noticed was this electrical burning smell. After taking apart the case I could tell the inductor behind the AC jack was what was heating up and creating the odor. It turns out this wasn’t the problem but rather the symptom of IC7 being blown. The support I received from Silicon Dust, the manufacturer, was amazing. Not only did they help me troubleshoot a unit who’s warranty expired years ago, but they also told me the make/model of the chip so I could order a new one. My buddy Daryl helped with soldering, as I’ve never done components this small and my soldering iron stinks. A replacement chip was ~$3 from Digikey and the HDHR works perfectly and no longer smells like burning.

Fun with HDHomeRuns

The updated board is 1/3rd the size

The HDHR3 has a dual tuners, but only uses a single coax input.

The HDHomeRun by Silicon Dust has been my favorite tuner for MythTV for several years now. I think I got it back in 2007 or 2008. It has a fantastic set of cross-platform software including a robust command line utility. Silicon Dust has also done a great job of releasing regular firmware updates that have added new features and increased the reliability, even for the older devices. Continue reading “Fun with HDHomeRuns”

New DLP Lamp

We bought our DLP TV back in 2006 and five years later it was finally time to change and lamp. Over time the screen became very dark and it was very difficult to see dark scenes in movies (or play Halo). My wife finally lit a fire under me to fix it and I got a new, name-brand lamp on Amazon for $100. After all of five minutes to swap bulbs the TV looks good as new, and I’m not used to the really bright screen anymore. I had planned on keeping the original lamp as a backup until I removed it. I’ve never actually seen one of these that’s on it’s way out. See how the halogen is extremely swollen at the base? That combined w/ the discoloration in the upper left hand corner of the backing tells me this bulb was probably hours or minutes away from blowing. Anyway, kudos to Amanda for encouraging me to change it.

I love my EVO

Once the #4 button broke on my old Razr, it became clear that I was going to need to get a “real” phone. I decided to either get the hip, ever popular, iPhone or an Android device. After reading up on the subject, it became quite clear that Android was the right platform for me. I wouldn’t say it’s better that iOS, in fact its lacking in several ways, but it was definitely the right choice for me. I decided to go with the HTC EVO because Sprint had the cheapest plans and it was the newest Android phone and has incredible specs. I’ve had the phone for eight months now, and I’m writing this because I just upgraded to the latest Cyanogenmod 7 nightly build of Gingerbread and I’ve completely fallen in love with this phone all over again. Right now it’s absolutely perfect. Continue reading “I love my EVO”

Bust-a-Cap in yo TV?

One of my reps at work was complaining about Samsung refusing to repair his TV even though there was known problem with defective capacitors for this model. Their response was that his serial number was not an effected unit. I told him I thought we could fix it, but he seemed like he was looking for an excuse to get a new TV. This was a 46″ 720p LCD that was about three years old. These are still priced at $1,900 on amazon, even though you can buy a much better one for less. I offered him $50 for it and he accepted. :) Sure enough after opening it up I could immediately see the problem. I’ve probably repaired this same problem on 50+ Dell gx2{6,7,8}0 motherboards; I recognized it right away. I went to Tanner Electronics for the replacement caps which cost a whopping $2.55. It took me about an hour and a half to replace them. Continue reading “Bust-a-Cap in yo TV?”

system-config??? More like sissy-config!

Sissy is a pejorative for a boy or man to indicate that he fails to behave according to the traditional male gender role. Generally, it implies a lack of the courage and stoicism which are thought important to the male role.


We all love the ease of a nice graphical interface. Often times GUIs (and TUIs) are great because they lower the barriers of technology, but sometimes this ease of use has a price. In the Linux world my gripes with GUIs are that sometimes they:

  1. lack features of their command line counter parts
  2. are cumbersome
  3. difficult/impossible to script.

RHEL & Fedora ship with a nice set of system tools that begin with the name system-config-*. Sometimes these tools really come in handy, but most of the time I use them I’m really just being lazy. In fact, I often feel a little guilty for “cheating” with these tools. I decided that I could do something about it. I wrote a little script today to help encourage myself and others to limit their use of these utils. It’s not that there’s anything wrong with using them, but that there’s often more efficient methods of accomplishing the end results. Like so many things in life I decided to address this head-on using mockery and sarcasm. This little script will create a symbolic link to a more appropriate command name, and if you chicken out, it will mock you. :)

cmds=(`ls /usr/bin/system-config-*`)
echo -e "There are $num potential \e[01;35m sissy-config\e[00m commands on this system."
echo "Do you wish to convirt them?"
select yn in "Yes" "No"; do
  case $yn in
       while [ $i -lt $num ]; do
       c=$(echo ${cmds[$i]} | sed "s/system-config/sissy-config/g")
       ln -s ${cmds[$1]} $c
       let i++
done; exit;;
    No) echo "OMFG! You are a sissy!!"; exit;;

You can download the script here. Don’t forget to run it as root or use sudo.



While the script functions perfectly, the links do not execute properly. I’ve tried substituting cp & mv and I get the same result. I don’t understand what I’m missing. I hope someone can comment and shed some light on this for me.

***Update 2***

The problem with this script is that for some it creates a symlink to a symlink for some of these utilities. For this to work properly the script would need to search for the actual binaries. Maybe one day I’ll have time to fix this.