<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/">
  <channel>
    <title>DIY</title>
    <link>https://www.linuxjournal.com/</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>RV Offsite Backup Update</title>
  <link>https://www.linuxjournal.com/content/rv-offsite-backup-update</link>
  <description>  &lt;div data-history-node-id="1340746" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Having an offsite backup in your RV is great, and after a year of use,
I've discovered some ways to make it even better.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Last year I wrote a feature-length article on the data backup system I
set up for my RV (see Kyle's &lt;a href="https://www.linuxjournal.com/content/diy-rv-offsite-backup-and-media-server"&gt;"DIY
RV Offsite Backup and Media Server"&lt;/a&gt; from the June 2018 issue of
&lt;em&gt;LJ&lt;/em&gt;). If you haven't read that article yet, I recommend
checking it out first so you can get details on the system. In summary,
I set up a Raspberry Pi media center PC connected to a 12V television
in the RV. I connected an 8TB hard drive to that system and
synchronized all of my files and media so it acted as a kind of
off-site backup. Finally, I set up a script that would attempt to sync
over all of those files from my NAS whenever it detected that the RV was on
the local network. So here, I provide an update on how that
system is working and a few tweaks I've made to it since.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
What Works&lt;/span&gt;

&lt;p&gt;
Overall, the media center has worked well. It's been great to have all
of my media with me when I'm on a road trip, and my son appreciates
having access to his favorite cartoons. Because the interface is
identical to the media center we have at home, there's no learning
curve—everything just works. Since the Raspberry Pi is powered off
the TV in the RV, you just need to turn on the TV and everything fires
up.
&lt;/p&gt;

&lt;p&gt;
It's also been great knowing that I have a good backup of all of my
files nearby. Should anything happen to my house or my main NAS, I know
that I can just get backups from the RV. Having peace of mind about
your important files is valuable, and it's nice knowing in the worst
case when my NAS broke, I could just disconnect my USB drive from the
RV, connect it to a local system, and be back up and running.
&lt;/p&gt;

&lt;p&gt;
The WiFi booster I set up on the RV also has worked pretty well to
increase the range of the Raspberry Pi (and the laptops inside the RV)
when on the road. When we get to a campsite that happens to offer WiFi,
I just reset the booster and set up a new access point that amplifies
the campsite signal for inside the RV. On one trip, I even took it out
of the RV and inside a hotel room to boost the weak signal.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/rv-offsite-backup-update" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 07 Aug 2019 21:15:00 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1340746 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Build a Custom Minimal Linux Distribution from Source, Part II</title>
  <link>https://www.linuxjournal.com/content/build-custom-minimal-linux-distribution-source-part-ii</link>
  <description>  &lt;div data-history-node-id="1340348" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/petros-koutoupis" lang="" about="https://www.linuxjournal.com/users/petros-koutoupis" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Petros Koutoupis&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Follow along with this step-by-step guide to creating your own
distribution.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
In an &lt;a href="https://www.linuxjournal.com/content/diy-build-custom-minimal-linux-distribution-source"&gt;article
in the June 2018 issue of &lt;em&gt;LJ&lt;/em&gt;&lt;/a&gt;, I introduced a basic recipe for building your
own minimal Linux-based distribution from source code packages. The guide
started with the compilation of a cross-compiler toolchain that ran on
your host system. Using that cross-compiler, I explained how to build a
generic x86-64 target image,
and the Linux Journal Operating System (LJOS) was born.
&lt;/p&gt;

&lt;p&gt;
This guide builds on what you learned from &lt;a href="https://www.linuxjournal.com/content/diy-build-custom-minimal-linux-distribution-source"&gt;Part
I&lt;/a&gt;, so if you haven't already, be sure to go through those
original steps up to the point where you are about to package the target
image for distribution.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
Glossary&lt;/span&gt;

&lt;p&gt;
Here's a quick review the
terminology from the first part of this series:
&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Host&lt;/strong&gt;: the &lt;em&gt;host&lt;/em&gt; signifies the very machine on
which you'll
be doing the vast majority of work, including cross-compiling and
installing the target image.
&lt;/li&gt;

&lt;li&gt;
&lt;strong&gt;Target&lt;/strong&gt;: the &lt;em&gt;target&lt;/em&gt; is the final cross-compiled operating
system that you'll be building from source packages. You'll build it
using the cross-compiler on the &lt;em&gt;host&lt;/em&gt; machine.
&lt;/li&gt;

&lt;li&gt;
&lt;strong&gt;Cross-Compiler&lt;/strong&gt;:
you'll be building and using a &lt;em&gt;cross-compiler&lt;/em&gt; to
create the &lt;em&gt;target&lt;/em&gt; image on the &lt;em&gt;host&lt;/em&gt;
machine. A cross-compiler is built to run on a host machine, but it's used
to compile for an architecture or microprocessor that isn't compatible
with the target machine.
&lt;/li&gt;&lt;/ul&gt;&lt;span class="h3-replacement"&gt;
Gathering the Packages&lt;/span&gt;

&lt;p&gt;To follow along, you'll need the following:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
busybox-1.28.3.tar.bz2 (the same package used in Part
I).
&lt;/li&gt;

&lt;li&gt;
clfs-embedded-bootscripts-1.0-pre5.tar.bz2 (the same package used in Part
I).
&lt;/li&gt;

&lt;li&gt;
Dropbear-2018.76.tar.bz2.
&lt;/li&gt;

&lt;li&gt;
Iana-etc-2.30.tar.bz2.
&lt;/li&gt;

&lt;li&gt;
netplug-1.2.9.2.tar.bz2.
&lt;/li&gt;

&lt;li&gt;
sysstat-12.1.1.tar.gz.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;em&gt;Note: I ended up rebuilding this distribution
with the 4.19.1 Linux kernel. If you want to do the same, be sure
to install the development package of the OpenSSL libraries on your host
machine or else the build will fail. On distributions like Debian or
Ubuntu, this package is named libssl-dev.&lt;/em&gt;
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
Fixing Some Boot-Time Errors&lt;/span&gt;

&lt;p&gt;
After following along with Part I, you will have noticed that during boot time, a couple
errors are generated (Figure 1).
&lt;/p&gt;

&lt;img src="https://www.linuxjournal.com/sites/default/files/styles/max_650x650/public/u%5Buid%5D/12648f1.png" width="650" height="362" alt="""" class="image-max_650x650" /&gt;&lt;p&gt;
&lt;em&gt;Figure 1. Errors generated
during the init process of a system boot.&lt;/em&gt;
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/build-custom-minimal-linux-distribution-source-part-ii" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 28 Mar 2019 11:30:00 +0000</pubDate>
    <dc:creator>Petros Koutoupis</dc:creator>
    <guid isPermaLink="false">1340348 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Weekend Reading: Do-It-Yourself Projects</title>
  <link>https://www.linuxjournal.com/content/weekend-reading-do-it-yourself-projects</link>
  <description>  &lt;div data-history-node-id="1340279" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/carlie-fairchild" lang="" about="https://www.linuxjournal.com/users/carlie-fairchild" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Carlie Fairchild&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;Join us this weekend as we bring the DIY movement back. Not only is it a chance to start working on those ideas you've been putting off for months, but it's also a great way to learn while playing.&lt;/p&gt;

&lt;h2&gt;&lt;a href="https://www.linuxjournal.com/content/why-you-should-do-it-yourself"&gt;Why You Should Do It Yourself&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;by Kyle Rankin&lt;/p&gt;

&lt;p&gt;Bring back the DIY movement and start with your own Linux servers.&lt;/p&gt;

&lt;p&gt;It wasn't very long ago that we lived in a society where it was a given that average people would do things themselves. There was a built-in assumption that you would perform basic repairs on household items, do general maintenance and repairs on your car, mow your lawn, cook your food and patch your clothes. The items around you reflected this assumption with visible and easy-to-access screws, spare buttons sewn on the bottom of shirts and user-replaceable parts. Through the years though, culture has changed toward one more focused on convenience.&lt;/p&gt;

&lt;h2&gt;&lt;a href="https://www.linuxjournal.com/content/building-voice-controlled-front-end-iot-devices"&gt;Building a Voice-Controlled Front End to IoT Devices&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;by Michael J. Hammel&lt;/p&gt;

&lt;p&gt;Apple, Google and Amazon are taking voice control to the next level. But can voice control be a DIY project? Turns out, it can. And, it isn't as hard as you might think.&lt;/p&gt;

&lt;p&gt;This article covers the &lt;a href="https://gitlab.com/xjarvis/jarvis"&gt;Jarvis project&lt;/a&gt;, a Java application for capturing audio, translating to text, extracting and executing commands and vocally responding to the user. It also explores the programming issues related to integrating these components for programmed results. That means there is no machine learning or neural networks involved. The end goal is to have a selection of key words cause a specific method to be called to perform an action.&lt;/p&gt;

&lt;h2&gt;&lt;a href="https://www.linuxjournal.com/content/two-portable-diy-retro-gaming-consoles"&gt;Two Portable DIY Retro Gaming Consoles&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;by Kyle Rankin&lt;/p&gt;

&lt;p&gt;A look at Adafruit's PiGRRL Zero vs. Hardkernel's ODROID-GO.&lt;/p&gt;

&lt;p&gt;If you enjoy retro gaming, there are so many options, it can be tough to know what to get. The choices range from officially sanctioned systems from Nintendo all the way to homemade RetroPie projects like I've covered in &lt;em&gt;Linux Journal&lt;/em&gt; in the past. Of course, those systems are designed to be permanently attached to a TV. But, what if you want to play retro games on the road?&lt;/p&gt;

&lt;h2&gt;&lt;a href="https://www.linuxjournal.com/content/diy-build-custom-minimal-linux-distribution-source"&gt;Build a Custom Minimal Linux Distribution from Source&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;by Petros Koutoupis&lt;/p&gt;

&lt;p&gt;Follow along with this step-by-step guide to build your own distribution from source and learn how it installs, loads and runs.&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/weekend-reading-do-it-yourself-projects" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Sat, 23 Mar 2019 10:00:00 +0000</pubDate>
    <dc:creator>Carlie Fairchild</dc:creator>
    <guid isPermaLink="false">1340279 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Two Portable DIY Retro Gaming Consoles</title>
  <link>https://www.linuxjournal.com/content/two-portable-diy-retro-gaming-consoles</link>
  <description>  &lt;div data-history-node-id="1340063" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;
A look at Adafruit's PiGRRL Zero vs. Hardkernel's ODROID-GO.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
If
you enjoy retro gaming, there are so many options, it can
be tough to know what to get. The choices range from officially sanctioned
systems from Nintendo all the way to homemade RetroPie projects like I've
covered in &lt;em&gt;Linux Journal&lt;/em&gt; in the past. Of course, those systems are designed
to be permanently attached to a TV.
&lt;/p&gt;

&lt;p&gt;
But, what if you want to play retro games
on the road? Although it's true that you could just connect a gamepad to a
laptop and use an emulator, there's something to be said for a console
that fits in your pocket like the original Nintendo Game Boy. In this
article, I describe two different portable DIY retro
gaming projects I've built and compare and contrast their features.
&lt;/p&gt;


&lt;span class="h3-replacement"&gt;
Adafruit PiGRRL Zero&lt;/span&gt;

&lt;p&gt;
The RetroPie project spawned an incredible number of DIY retro consoles
due to how easy and cheap the project made it to build a console out of the widely
available and popular Raspberry Pi. Although most of the projects were aimed
at home consoles, Adafruit took things a step further and created the
PiGRRL project series that combines Raspberry Pis with LCD screens,
buttons, batteries and other electronics into a portable RetroPie system
that has a similar form factor to the original Game Boy. You buy the kit,
print the case and buttons yourself with a 3D printer, and after some
soldering, you have a portable console.
&lt;/p&gt;

&lt;p&gt;
The original &lt;a href="https://learn.adafruit.com/pigrrl-raspberry-pi-gameboy"&gt;PiGRRL&lt;/a&gt; was based off the Raspberry Pi and was similar
in size and shape to the original Game Boy. In the original kit, you
also took apart an SNES gamepad, cut the electronics and used it for
gamepad electronics. Although you got the benefit of a real SNES gamepad's
button feedback, due to that Game Boy form factor, there were no L and
R shoulder buttons, and only A and B buttons on the front, so it was aimed
at NES and Game Boy games.
&lt;/p&gt;

&lt;p&gt;
The &lt;a href="https://learn.adafruit.com/pigrrl-2"&gt;PiGRRL 2&lt;/a&gt; took the original PiGRRL and offered a number of
upgrades. First, it was based on the faster Raspberry Pi 2, which could
emulate newer systems like the SNES. It also incorporated its own custom
gamepad electronics, so you could get A, B, X and Y buttons in the front,
plus L and R buttons in the back, while still maintaining the similar
Game Boy form factor.
&lt;/p&gt;

&lt;img src="https://www.linuxjournal.com/sites/default/files/styles/max_1300x1300/public/u%5Buid%5D/12516f1.jpg" width="1300" height="866" alt="""" class="image-max_1300x1300" /&gt;&lt;p&gt;
&lt;em&gt;Figure 1. PiGRRL 2&lt;/em&gt;
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/two-portable-diy-retro-gaming-consoles" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 03 Sep 2018 12:33:21 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1340063 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>#geeklife: weBoost 4G-X OTR Review</title>
  <link>https://www.linuxjournal.com/content/geeklife-weboost-4g-x-otr-review</link>
  <description>  &lt;div data-history-node-id="1340026" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Will a cellular booster help me stay connected on my epic working
road trip?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
I'm a Linux geek, and I think I safely can assume everyone reading an article
in &lt;em&gt;Linux Journal&lt;/em&gt; identifies themselves as Linux geeks as well.
Through
the years I've written about many of my geeky projects here in &lt;em&gt;Linux
Journal&lt;/em&gt;, such as my Linux-powered beer fermentation fridge or my 3D
printer that's remotely controlled using a Raspberry Pi and Octoprint
software. The thing is, my interests don't stop strictly at Linux,
and I doubt yours do either. While my homebrewing, 3D printing and
(more recently) RV interests sometimes involve Linux, often they don't,
yet my background means I've taken a geek's perspective and approach
to all of those interests. I imagine you take a similar approach to
your hobbies and side projects, and readers would find some of those
stories interesting, useful and inspirational.
&lt;/p&gt;

&lt;p&gt;
We discussed this at &lt;em&gt;Linux Journal&lt;/em&gt; and realized there should be a
space for Linux geeks to tell their geeky stories even if they don't
directly involve Linux. This new series, #geeklife, aims to provide a
place where Linux geeks can talk about interests and projects even
if they might not be strictly Linux-related. We invite you to send proposals
for #geeklife articles to ljeditor@linuxjournal.com.
&lt;/p&gt;

&lt;p&gt;
For this first #geeklife article, I'm telling the story of a geeky,
connected working road trip I just took in my RV, and within that context,
I also review a particular piece of hardware I hoped would make the trip possible,
the &lt;a href="https://www.weboost.com/products/drive4g-x-otr"&gt;weBoost Drive
4G-X OTR&lt;/a&gt;. In the interest of full disclosure, Wilson
Electronics provided me with this review unit, and I did not purchase
it independently.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
Working Remotely&lt;/span&gt;

&lt;p&gt;
My job is 100% remote. It took me many years of braving multi-hour
California Bay Area commutes and turning down opportunities to
find a job where I finally could work completely from home. Smart
organizations are finally beginning to realize the many
advantages to having a remote workforce,
but I've found it works best if you have the right team,
the right tools and the bulk of the workforce is remote. When everyone is
distributed, everyone relies on the incredible modern collaboration tools
currently available, and you have focus and incredible productivity
when you need it while still being able to communicate with your peers.
&lt;/p&gt;

&lt;p&gt;
My wife is a freelance writer and has worked from her home office long
before I also worked from home. Once I also landed a job where I was
completely remote, we posed the following question to ourselves: in
theory, we could work from anywhere with a decent internet connection,
but in practice, is that really something we could do? What would that
kind of working trip look like?
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/geeklife-weboost-4g-x-otr-review" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 07 Aug 2018 12:00:00 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1340026 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>DIY RV Offsite Backup and Media Server</title>
  <link>https://www.linuxjournal.com/content/diy-rv-offsite-backup-and-media-server</link>
  <description>  &lt;div data-history-node-id="1339875" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;What better way to add a geeky touch to #vanlife than with a
Linux server in your RV?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
One easily could make the strong argument that an RV is the ultimate DIY project
playground. It combines all of the DIY projects you could perform on a
vehicle with the DIY projects for a home. Add to that the fact that you may
spend days living in a small house on wheels navigating highways, forests
and deserts, and you have a whole other class of DIY projects to make
the most of that smaller space. RVs also offer a whole suite of power
options from 12V deep cycle batteries to 110V shore power to generators
and alternators to solar power, so there's a whole class of electrical
DIY projects related to making the most of your changing power options.
&lt;/p&gt;

&lt;p&gt;
And if you're a geek, having an RV introduces a whole other level of DIY
possibilities. First, there are all of the electronics projects to
manage switching between power sources, tracking energy consumption
and keeping those batteries charged. Then there's an entire category of
projects related to internet access while away from home that involve
everything from mobile WiFi hotspots to cellular-boosting networks to
roving satellite internet (and if you're clever, a smart router that
routes you to the best and cheapest available option). Finally, there
are several project possibilities related to the computer systems in the RV,
including local switches and routers, personal computers
that turn the RV into a mobile office, and media centers so you can watch
TV and movies from the road.
&lt;/p&gt;

&lt;p&gt;
It just so happens that I recently got an RV—a 1996 Roadtrek 170 to
be exact. Although this purchase has spawned a huge list of DIY projects,
my very first Linux-based project focuses on the media center. At
home, my media center is a Raspberry Pi running OSMC, and it works great
for accessing my ripped DVDs and CDs from my NAS and playing them on
my living-room TV. When I got the RV, I realized that one of the first
things we'd want is a way to access all of that media from the road, even
if we were in the middle of the woods.
&lt;/p&gt;

&lt;p&gt;
In this article, I
describe all the steps I took to build a media server just for the
RV that maintains an up-to-date copy of my media and even
syncs up automatically when it's parked in my driveway. It turns out that in the process of
building a media server, I ended up with a pretty great off-site backup
solution as well. Even if you don't own an RV, you could adapt these
steps to add your own semi-offsite backup to your car.
&lt;/p&gt;

&lt;img src="https://www.linuxjournal.com/sites/default/files/styles/max_1300x1300/public/u%5Buid%5D/12413f1-smaller.jpg" width="800" height="600" alt="""" class="image-max_1300x1300" /&gt;&lt;p&gt;
&lt;em&gt;Figure 1. Introducing "Van Winkle" (Photo Credit: Joy Rankin)&lt;/em&gt;
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/diy-rv-offsite-backup-and-media-server" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 10 Jul 2018 11:45:00 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1339875 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Building a Voice-Controlled Front End to IoT Devices</title>
  <link>https://www.linuxjournal.com/content/building-voice-controlled-front-end-iot-devices</link>
  <description>  &lt;div data-history-node-id="1339907" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/michael-j-hammel" lang="" about="https://www.linuxjournal.com/users/michael-j-hammel" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Michael J. Hammel&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Apple, Google and Amazon are taking voice control to the next level.
But can voice control be a DIY project? Turns out, it can. And, it isn't
as hard as you might think.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Siri, Alexa and Google Home can all translate voice commands into
basic activities, especially if those activities involve nothing more
than sharing digital files like music and movies. Integration with
home automation is also possible, though perhaps not as simply as users
might desire—at least, not yet.
&lt;/p&gt;

&lt;p&gt;
Still, the idea of converting voice commands into actions is intriguing
to the maker world. The offerings from the big three seem like magic in
a box, but we all know it's just software and hardware. No magic here.
If that's the case, one might ask how anyone could build magic boxes?
&lt;/p&gt;

&lt;p&gt;
It turns out that, using only one online API and a number of freely
available libraries, the process is not as complex as it might seem.
This article covers the &lt;a href="https://gitlab.com/xjarvis/jarvis"&gt;Jarvis
project&lt;/a&gt;, a Java application for capturing
audio, translating to text, extracting and executing commands and
vocally responding to the user. It also explores the programming
issues related to integrating these components for programmed results.
That means there is no machine learning or neural networks involved.
The end goal is to have a selection of key words cause a specific method
to be called to perform an action.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
APIs and Messaging&lt;/span&gt;

&lt;p&gt;
Jarvis started life several years ago as an experiment to see if
voice control was possible in a DIY project. The first step was to
determine what open-source support already existed. A couple weeks
of research uncovered a number of possible projects in a variety of
languages. This research is documented in a text document included in
the docs/notes.txt file in the source repository. The final choice of a
programming language was based on the selection of both a speech-to-text
API and a natural language processor library.
&lt;/p&gt;

&lt;p&gt;
Since Jarvis was experimental (it has since graduated to a tool in
the &lt;a href="http://redmine.graphics-muse.org/projects/ironman/wiki/Getting_Started"&gt;IronMan
project&lt;/a&gt;), it started with a requirement that it be as
easy as possible to get working. Audio acquisition in Java is very
straightforward and a bit simpler to use than in C or other languages.
More important, once audio is collected, an API for converting it to
text would be needed. The easiest API found for this was &lt;a href="https://cloud.google.com/speech"&gt;Google's Cloud
Speech REST API&lt;/a&gt;. Since both audio collection and REST interfaces are
fairly easy to handle in Java, it seemed that would be the likely choice
of programming language for the project.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/building-voice-controlled-front-end-iot-devices" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 25 Jun 2018 13:44:37 +0000</pubDate>
    <dc:creator>Michael J. Hammel</dc:creator>
    <guid isPermaLink="false">1339907 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Piventory: LJ Tech Editor's Personal Stash of Raspberry Pis and Other Single-Board Computers</title>
  <link>https://www.linuxjournal.com/content/piventory-lj-tech-editors-personal-stash-raspberry-pis-and-other-single-board-computers</link>
  <description>  &lt;div data-history-node-id="1339868" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;It's like an extra-geeky episode of &lt;em&gt;Cribs&lt;/em&gt; featuring single-board
computers.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
I'm a big fan of DIY projects and think that there is a lot of value
in doing something yourself instead of relying on some third party. I
mow my own lawn, change my own oil and do most of my own home repairs,
and because of my background in system administration, you'll find
all sorts of DIY servers at my house too. In the old days, geeks like
me would have stacks of loud power-hungry desktop computers around and
use them to learn about Linux and networking, but these days, VMs and
cloud services have taken their place for most people. I still like
running my own servers though, and thanks to the advent of these tiny,
cheap computers like the Raspberry Pi series, I've been able to replace
all of my home services with a lot of different small, cheap, low-power
computers.
&lt;/p&gt;

&lt;p&gt;
Occasionally, I'll hear people talk about how they have a Raspberry Pi
or some other small computer lying around, but they haven't figured out
quite what to do with it yet. And it always shocks me, because I have a house full of
those small computers doing all sorts of things, so in this article, I
describe my personal
"Piventory"—an inventory of all of the little low-power computers that
stay running around my house. So if you're struggling to figure out
what to do with your own Raspberry Pi, maybe this article will give you
some inspiration.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
Primary NAS and Central Server&lt;/span&gt;

&lt;p&gt;
In &lt;a href="https://www.linuxjournal.com/content/papas-got-brand-new-nas"&gt;"Papa's
Got a Brand New NAS"&lt;/a&gt; I wrote about my search for a replacement
for my rackmount server that acted as a Network-Attached Storage (NAS)
for my house, along with a bunch of other services. Ultimately, I found
that I could replace the whole thing with an ODroid XU4. Because of its
octo-core ARM CPU, gigabit networking and high-speed USB3 port, I was
able to move my hard drives over to a Mediasonic Probox USB3 disk array
and set up a new low-power NAS that paid for itself in electricity costs.
&lt;/p&gt;

&lt;p&gt;
In addition to a NAS, this server provides a number of backup services
for my main server that sits in a data center. It acts as a backup mail
server, authoritative DNS, and it also provides a VPN so I can connect to
my home network from anywhere in the world—not bad for a little $75
ARM board.
&lt;/p&gt;

&lt;img src="https://www.linuxjournal.com/sites/default/files/styles/max_1300x1300/public/u%5Buid%5D/figure1.jpg" width="975" height="1300" alt="""" class="image-max_1300x1300" /&gt;&lt;p&gt;
&lt;em&gt;Figure 1. Papa's New NAS&lt;/em&gt;
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/piventory-lj-tech-editors-personal-stash-raspberry-pis-and-other-single-board-computers" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 14 Jun 2018 12:00:00 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1339868 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Linux Gets Loud</title>
  <link>https://www.linuxjournal.com/content/linux-gets-loud</link>
  <description>  &lt;div data-history-node-id="1339905" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/joshua-curry" lang="" about="https://www.linuxjournal.com/users/joshua-curry" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Joshua Curry&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Exploring the current state of musical Linux with interviews of developers
of popular packages.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Linux is ready for prime time when it comes to music production. New
offerings from Linux audio developers are pushing creative and technical
boundaries. And, with the maturity of the Linux desktop and growth of
standards-based hardware setups, making music with Linux has never
been easier.
&lt;/p&gt;

&lt;p&gt;
Linux always has had a place for musicians looking for inexpensive
rigs to record and create music, but historically, it's been a pain to
maintain. Digging through arcane documentation and deciphering man pages
is not something that interests many musicians.
&lt;/p&gt;

&lt;p&gt;
Loading up Linux is not as intimidating as it once was, and a helpful
community is going strong. Beyond tinkering types looking for cheap beats,
users range in experience and skill. Linux is still the underdog when
it comes to its reputation for thin creative applications though.
&lt;/p&gt;

&lt;p&gt;
Recently, musically inclined Linux developers have turned out a variety
of new and updated software packages for both production and creative
uses. From full-fledged DAWs (Digital Audio Workstations), to robust
soft-synths and versatile effects platforms, the OSS audio ecosystem
is healthy.
&lt;/p&gt;

&lt;p&gt;
A surge in technology-focused academic music programs has brought a
fresh crop of software-savvy musicians into the fold. The modular synth
movement also has nurtured an interest in how sound is made and encouraged curiosity
about the technology behind it.
&lt;/p&gt;

&lt;p&gt;
One of the biggest hurdles in the past was the lack of core drivers for
the wide variety of outboard gear used by music producers. With USB 2.0
and improvements in &lt;a href="https://www.alsa-project.org/main/index.php/Main_Page"&gt;ALSA&lt;/a&gt; and &lt;a href="http://www.jackaudio.org"&gt;JACK&lt;/a&gt;, more hardware became available for
use. Companies slowly have opened their systems to third-party developers,
allowing more low-level drivers to be built.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
Hardware&lt;/span&gt;

&lt;p&gt;
In terms of raw horsepower, the ubiquity of multicore processors
and cheap RAM has enabled Linux to take advantage of powerful
machines. Specifically, multithreaded software design available to
developers in the Linux kernel offer audio packages that offload DSP and UI
to various cores. Beyond OS multithreading, music software devs have
taken advantage of this in a variety of ways.
&lt;/p&gt;

&lt;p&gt;
A well known API called Jack Audio Connection Kit (JACK) handles multiple
inter-application connections as well as audio hardware communication
with a multithreaded approach, enabling low latency with both audio
DSP and MIDI connections.
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://ardour.org"&gt;Ardour&lt;/a&gt; has leveraged multithreaded processing for some time. In early
versions, it was used to distribute audio processing and the main interface
and OS interaction to separate cores. Now it offers powerful parallel
rendering on a multitude of tracks with complex effects.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/linux-gets-loud" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 13 Jun 2018 13:08:08 +0000</pubDate>
    <dc:creator>Joshua Curry</dc:creator>
    <guid isPermaLink="false">1339905 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Linux Journal June Issue: Do-It-Yourself</title>
  <link>https://www.linuxjournal.com/content/linux-journal-june-issue-do-it-yourself</link>
  <description>  &lt;div data-history-node-id="1339931" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/carlie-fairchild" lang="" about="https://www.linuxjournal.com/users/carlie-fairchild" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Carlie Fairchild&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;As tech editor Kyle Ranklin so aptly put it, June's Do-It-Yourself issue is "like an extra-geeky episode of Cribs featuring single-board computers".&lt;/p&gt;

&lt;p lang="x-size-15" xml:lang="x-size-15" xml:lang="x-size-15"&gt;In this issue:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Make Your Own RV Offsite Backup and Media Server&lt;/li&gt;
	&lt;li&gt;Create a Custom Minimal Linux Distribution from Source&lt;/li&gt;
	&lt;li&gt;Build a Voice-Controlled Front End for IoT Devices&lt;/li&gt;
	&lt;li&gt;Introducing PyInstaller&lt;/li&gt;
	&lt;li&gt;Shell Scripting a Password Generating Tool&lt;/li&gt;
	&lt;li&gt;OpenStreetMap Should Be a Priority to the Open Source Community&lt;/li&gt;
	&lt;li&gt;The Current State of Linux and Music&lt;/li&gt;
	&lt;li&gt;Open Hardware and IoT&lt;/li&gt;
	&lt;li&gt;A Programmer's Look at Jakarta EE&lt;/li&gt;
	&lt;li&gt;JaxoDraw for Physics&lt;/li&gt;
	&lt;li&gt;FOSS Project Spotlights: Codelobster and WallPaperDownloader&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Subscribers, you can &lt;a href="https://secure2.linuxjournal.com/pdf/dljdownload.php"&gt;download your June issue&lt;/a&gt; now.&lt;/p&gt;

&lt;p&gt;Not a subscriber? It’s not too late. &lt;a href="http://www.linuxjournal.com/subscribe"&gt;Subscribe today&lt;/a&gt; and receive instant access to this and ALL back issues since 1994!&lt;/p&gt;

&lt;p&gt;Want to buy a single issue? Buy the June magazine or other single back issues &lt;a href="https://store.linuxjournal.com/collections/back-issues-of-linux-journal/products/june-2018-issue-of-linux-journal"&gt;in the LJ store&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/linux-journal-june-issue-do-it-yourself" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Fri, 01 Jun 2018 03:36:34 +0000</pubDate>
    <dc:creator>Carlie Fairchild</dc:creator>
    <guid isPermaLink="false">1339931 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
