<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mike Shoup</title>
	<atom:link href="http://mikeshoup.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikeshoup.com</link>
	<description>Some Tech, Bicycles and Family</description>
	<lastBuildDate>Wed, 27 May 2015 19:30:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.4.2</generator>
	<item>
		<title>Nagios &#8211; Checking DHCP Leases with Ubiquiti EdgeRouter</title>
		<link>http://mikeshoup.com/2015/05/27/nagios-checking-dhcp-leases-with-ubiquiti-edgerouter/</link>
		<comments>http://mikeshoup.com/2015/05/27/nagios-checking-dhcp-leases-with-ubiquiti-edgerouter/#respond</comments>
		<pubDate>Wed, 27 May 2015 18:26:05 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Ubiquiti]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=827</guid>
		<description><![CDATA[Here&#8217;s a small script I threw together to check the number of DHCP leases on an Ubiquiti EdgeRouter. It&#8217;s made for use with Nagios. It basically connects to the router via SSH, executes show dhcp leases and returns OK, WARNING, or CRITICAL depending on how many leases exist. See the comments for a little bit &#8230; <a href="http://mikeshoup.com/2015/05/27/nagios-checking-dhcp-leases-with-ubiquiti-edgerouter/" class="more-link">Continue reading <span class="screen-reader-text">Nagios &#8211; Checking DHCP Leases with Ubiquiti EdgeRouter</span></a>]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s a small script I threw together to check the number of DHCP leases on an Ubiquiti EdgeRouter. It&#8217;s made for use with Nagios.</p>
<p>It basically connects to the router via SSH, executes <code>show dhcp leases</code> and returns OK, WARNING, or CRITICAL depending on how many leases exist. See the comments for a little bit of documentation.</p>
<p>Download: <a href="https://gist.githubusercontent.com/shouptech/8828fce48615269fe56a/raw/186a7f792cd0449e0901d77bdd0e8ad97fa2927c/check_er_dhcp_leases.sh">check_er_dhcp_leases.sh</a></p>
<p><span id="more-827"></span></p>
<p><script src="https://gist.github.com/shouptech/8828fce48615269fe56a.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2015/05/27/nagios-checking-dhcp-leases-with-ubiquiti-edgerouter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PVC Irrigation For Raised Garden Bed</title>
		<link>http://mikeshoup.com/2015/05/17/pvc-irrigation-for-raised-garden-bed/</link>
		<comments>http://mikeshoup.com/2015/05/17/pvc-irrigation-for-raised-garden-bed/#respond</comments>
		<pubDate>Sun, 17 May 2015 21:48:43 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Garden]]></category>
		<category><![CDATA[Irrigation]]></category>
		<category><![CDATA[Raised Beds]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=816</guid>
		<description><![CDATA[Summer is upon us here in Denver and it&#8217;s time to start planting vegetables. This year, Niki and I decided to try out a raised garden bed. I decided to go with a simple, 3 foot by 8 foot box, made out of 2&#8243;x8&#8243; lumber. Below is the quick plan I drew up: This is &#8230; <a href="http://mikeshoup.com/2015/05/17/pvc-irrigation-for-raised-garden-bed/" class="more-link">Continue reading <span class="screen-reader-text">PVC Irrigation For Raised Garden Bed</span></a>]]></description>
				<content:encoded><![CDATA[<p>Summer is upon us here in Denver and it&#8217;s time to start planting vegetables.</p>
<p>This year, Niki and I decided to try out a raised garden bed. I decided to go with a simple, 3 foot by 8 foot box, made out of 2&#8243;x8&#8243; lumber. Below is the quick plan I drew up:</p>
<p><a href="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/bed-plan.png"><img class="aligncenter size-large wp-image-817" src="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/bed-plan-1024x435.png" alt="Raised Bed Plan" width="660" height="280" srcset="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/bed-plan-300x127.png 300w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/bed-plan-1024x435.png 1024w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/bed-plan.png 1060w" sizes="(max-width: 660px) 100vw, 660px" /></a></p>
<p>This is just a simple garden box that allows 8ish inches deep of soil. Lag screws hold the sides together, and the soil will keep the box from moving.</p>
<p>Next up, we needed an easy way to water the plants. Denver is in an arid climate, and we don&#8217;t want to waste water. The best thing to do is to get the water right to the roots of your plants. For that, we turn to a system developed in Utah.</p>
<p>Jeffrey Banks, out of Juab County in Utah, <a href="http://extension.usu.edu/files/publications/publication/horticulture_home_2008-02pr.pdf" target="_blank">put together a wonderful document detailing a system they&#8217;ve been using</a>. The system is inexpensive and very flexible.</p>
<p><a href="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-overview.jpg"><img class="aligncenter size-large wp-image-819" src="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-overview-1024x576.jpg" alt="Bed With PVC" width="660" height="371" srcset="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-overview-300x169.jpg 300w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-overview-1024x576.jpg 1024w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-overview.jpg 1040w" sizes="(max-width: 660px) 100vw, 660px" /></a></p>
<p>The ingredients:</p>
<ul>
<li>7 feet of 3/4&#8243; PVC</li>
<li>21 feet of 1/2&#8243; PVC</li>
<li>Six 3/4&#8243;x3/4&#8243;x1/2&#8243; Tee fittings</li>
<li>3/4&#8243;x1/2&#8243; Elbow</li>
<li>Seven 1/2&#8243; caps</li>
<li>Two 3/4&#8243; PVC Street Elbows</li>
<li>3/4&#8243; Ball Valve</li>
<li>3/4&#8243; PVC to Hose fitting</li>
</ul>
<p>The 3/4&#8243; PVC runs along one of the long sides of the box. I cut it into seven 12&#8243; sections. The 3/4&#8243;x1/2&#8243; elbow is glued on the very end, with each section separated by the tee fittings. These fittings are glued. At the far end, a pair of street elbows are attached to a ball valve and a garden hose fitting.</p>
<p><a href="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-hose.jpg"><img class="aligncenter size-large wp-image-820" src="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-hose-1024x576.jpg" alt="Valve + Hose" width="660" height="371" srcset="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-hose-300x169.jpg 300w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-hose-1024x576.jpg 1024w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/pvc-hose.jpg 1040w" sizes="(max-width: 660px) 100vw, 660px" /></a></p>
<p>The ball valve helps control the rate of flow. Eventually, as more beds are added, they will be interconnected and the ball valves can control where water goes as needed.</p>
<p>The short pipes are called laterals, and are made from the 1/2&#8243; PVC. One pipe is usually sufficient to water two rows. I follows the directions from the Juab County system document, and drilled 1/16&#8243; holes every 6 inches for rows beans and other stuff. For the squash, I grouped three holes together, 2 inches apart right next to the mounds. Since these are spread further apart, only one later is used for each row.<a href="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/IMG_20150517_152733734_HDR.jpg"><img class="aligncenter size-large wp-image-822" src="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/IMG_20150517_152733734_HDR-1024x576.jpg" alt="Water Holes" width="660" height="371" srcset="http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/IMG_20150517_152733734_HDR-300x169.jpg 300w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/IMG_20150517_152733734_HDR-1024x576.jpg 1024w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/05/IMG_20150517_152733734_HDR.jpg 1040w" sizes="(max-width: 660px) 100vw, 660px" /></a></p>
<p>Controlling the flow rate is essential. This is where the ball valve comes in really handy. I can fully open the spigot at the house, then use the ball valve to restrict the flow going into the pipes. As you can see above, the system is less drip and more trickle irrigation.</p>
<p>Time will tell how well the system works. Based on the results seen in Juab county though, I have a good feeling that it will work well.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2015/05/17/pvc-irrigation-for-raised-garden-bed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BtrFS Snapshots w/ Samba</title>
		<link>http://mikeshoup.com/2015/03/16/btrfs-snapshots-w-samba/</link>
		<comments>http://mikeshoup.com/2015/03/16/btrfs-snapshots-w-samba/#respond</comments>
		<pubDate>Tue, 17 Mar 2015 03:26:22 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[BtrFS]]></category>
		<category><![CDATA[Gist]]></category>
		<category><![CDATA[Samba]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=808</guid>
		<description><![CDATA[The following is a script I wrote that will take snapshots of a BtrFS subvolume and name them in a convention that works with Samba&#8216;s VFS shadow_copy module.]]></description>
				<content:encoded><![CDATA[<p>The following is a script I wrote that will take snapshots of a BtrFS subvolume and name them in a convention that works with <a href="https://www.samba.org/" target="_blank">Samba</a>&#8216;s VFS <a href="https://www.samba.org/samba/docs/man/manpages/vfs_shadow_copy2.8.html" target="_blank">shadow_copy</a> module.</p>
<p><script src="https://gist.github.com/shouptech/89b6c83b68496656a135.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2015/03/16/btrfs-snapshots-w-samba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HP MSM Access Points and Cacti</title>
		<link>http://mikeshoup.com/2015/02/14/hp-msm-access-points-and-cacti/</link>
		<comments>http://mikeshoup.com/2015/02/14/hp-msm-access-points-and-cacti/#respond</comments>
		<pubDate>Sun, 15 Feb 2015 00:55:21 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Cacti]]></category>
		<category><![CDATA[Graphs]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=799</guid>
		<description><![CDATA[I love graphs. Just ask my wife. Any sort of metric I can get my hands on, I try to graph and display visually. One of my favorite tools for graphing data is Cacti. As such, if it can be queried via SNMP, I want it on Cacti. I have an HP MSM430 access point &#8230; <a href="http://mikeshoup.com/2015/02/14/hp-msm-access-points-and-cacti/" class="more-link">Continue reading <span class="screen-reader-text">HP MSM Access Points and Cacti</span></a>]]></description>
				<content:encoded><![CDATA[<p>I love graphs. Just ask my wife. Any sort of metric I can get my hands on, I try to graph and display visually.</p>
<p>One of my favorite tools for graphing data is Cacti. As such, if it can be queried via SNMP, I want it on Cacti.</p>
<p>I have an HP MSM430 access point that I use in our home. It presents quite a bit of data via SNMP. I&#8217;ve developed some Cacti templates that can be used to graph average SNR for a station (a station is an SSID on an individual radio), as well as the number of users connected to a station.</p>
<p>Find it on github: <a href="https://github.com/shouptech/hp-msmAP-cacti">https://github.com/shouptech/hp-msmAP-cacti</a></p>
<p><img class="aligncenter size-full wp-image-800" src="http://mikeshoup.com/wp-content/uploads/sites/2/2015/02/avg-snr.png" alt="avg-snr" width="595" height="224" srcset="http://mikeshoup.com/wp-content/uploads/sites/2/2015/02/avg-snr-300x113.png 300w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/02/avg-snr.png 595w" sizes="(max-width: 595px) 100vw, 595px" /> <img class="aligncenter wp-image-801 size-full" src="http://mikeshoup.com/wp-content/uploads/sites/2/2015/02/num-users.png" alt="num-users" width="581" height="224" srcset="http://mikeshoup.com/wp-content/uploads/sites/2/2015/02/num-users-300x116.png 300w, http://mikeshoup.com/wp-content/uploads/sites/2/2015/02/num-users.png 581w" sizes="(max-width: 581px) 100vw, 581px" /></p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2015/02/14/hp-msm-access-points-and-cacti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comcast IPv6 with Ubiquiti EdgeRouter</title>
		<link>http://mikeshoup.com/2015/02/08/comcast-ipv6-with-ubiquiti-edgerouter/</link>
		<comments>http://mikeshoup.com/2015/02/08/comcast-ipv6-with-ubiquiti-edgerouter/#comments</comments>
		<pubDate>Sun, 08 Feb 2015 15:15:37 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Comcast]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Ubiquiti]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=797</guid>
		<description><![CDATA[With the latest release of firmware (1.6) for Ubiquiti EdgeRouter devices, you can now use DHCPv6-PD with only modifying the device config. It works with Comcast&#8217;s IPv6. Here&#8217;s my config to get you going: [crayon-56c4e2f2a4e38141387075/] &#160;]]></description>
				<content:encoded><![CDATA[<p>With the latest release of firmware (1.6) for Ubiquiti EdgeRouter devices, you can now use DHCPv6-PD with only modifying the device config.</p>
<p>It works with Comcast&#8217;s IPv6. Here&#8217;s my config to get you going:</p><pre class="crayon-plain-tag">firewall {
    all-ping enable
    broadcast-ping disable
    ipv6-name client6-in {
        default-action accept
        description "Clients to other nets"
    }
    ipv6-name client6-local {
        default-action accept
        description "Clients to router"
    }
    ipv6-name wan6-in {
        default-action drop
        description "WAN IPv6 to networks"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "drop invalid state"
            state {
                invalid enable
            }
        }
        rule 30 {
            action accept
            description "Allow icmpv6"
            protocol ipv6-icmp
        }
    }
    ipv6-name wan6-local {
        default-action drop
        description "WAN inbound to router"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
        rule 30 {
            action accept
            description "Allow IPv6 ICMP"
            protocol ipv6-icmp
        }
        rule 40 {
            action accept
            description "Allow dhcpv6"
            destination {
                port 546
            }
            protocol udp
            source {
                port 547
            }
        }
    }
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    name client-in {
        default-action accept
        description "Clients to other net"
    }
    name client-local {
        default-action accept
        description "Clients to router"
    }
    name wan-in {
        default-action drop
        description "Internet to local net"
        rule 1 {
            action accept
            description "Allow established/related"
            log disable
            state {
                established enable
                related enable
            }
        }
        rule 2 {
            action drop
            description "Drop inavlid state"
            log enable
            state {
                invalid enable
            }
        }
    }
    name wan-local {
        default-action drop
        description "Internet to Router"
        rule 1 {
            action accept
            description "Allow established/related"
            log disable
            state {
                established enable
                related enable
            }
        }
        rule 2 {
            action drop
            description "Drop invalid state"
            log enable
            state {
                invalid enable
            }
        }
        rule 5 {
            action accept
            description "ICMP 50/m"
            limit {
                burst 1
                rate 50/minute
            }
            log enable
            protocol icmp
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        address 10.0.0.1/24
        description Clients
        duplex auto
        firewall {
            in {
                ipv6-name client6-in
                name client-in
            }
            local {
                ipv6-name client6-local
                name client-local
            }
        }
        speed auto
    }
    ethernet eth1 {
        address dhcp
        description WAN
        dhcpv6-pd {
            pd 0 {
                interface eth0 {
                    host-address ::1
                    prefix-id :1
                    service slaac
                }
                prefix-length 60
            }
            rapid-commit enable
        }
        duplex auto
        firewall {
            in {
                ipv6-name wan6-in
                name wan-in
            }
            local {
                ipv6-name wan6-local
                name wan-local
            }
        }
        speed auto
    }
    ethernet eth2 {
        disable
        duplex auto
        speed auto
    }
    loopback lo {
    }
}
service {
    dhcp-server {
        disabled false
        hostfile-update disable
        shared-network-name wired-eth0 {
            authoritative disable
            description "Wired Nework eth0"
            subnet 10.0.0.1/24 {
                default-router 10.0.0.1
                dns-server 10.0.0.1
                lease 86400
                ntp-server 10.0.0.1
                start 10.0.0.150 {
                    stop 10.0.0.199
                }
            }
        }
    }
    dns {
        forwarding {
            cache-size 150
            listen-on eth0
            system
        }
    }
    gui {
        https-port 443
    }
    nat {
        rule 5010 {
            log disable
            outbound-interface eth1
            protocol all
            type masquerade
        }
    }
    ssh {
        port 22
        protocol-version v2
    }
}
system {
    config-management {
        commit-revisions 50
    }
    conntrack {
        expect-table-size 2048
        hash-size 32768
        modules {
            sip {
                disable
            }
        }
        table-size 262144
        timeout {
            icmp 30
            other 600
            udp {
                other 60
                stream 300
            }
        }
    }
    domain-name home
    host-name fw
    login {
        user **** {
            authentication {
                encrypted-password *****
                plaintext-password ""
            }
            level admin
        }
    }
    name-server 8.8.8.8
    name-server 8.8.4.4
    name-server 2001:4860:4860::8888
    name-server 2001:4860:4860::8844
    ntp {
        server 0.us.pool.ntp.org {
        }
        server 1.us.pool.ntp.org {
        }
        server 2.us.pool.ntp.org {
        }
        server 3.us.pool.ntp.org {
        }
    }
    offload {
        ipsec enable
        ipv4 {
            forwarding enable
        }
        ipv6 {
            forwarding enable
        }
    }
    package {
        repository squeeze {
            components "main contrib non-free"
            distribution squeeze
            password ""
            url http://http.us.debian.org/debian
            username ""
        }
        repository squeeze-security {
            components main
            distribution squeeze/updates
            password ""
            url http://security.debian.org
            username ""
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone America/Denver
}</pre><p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2015/02/08/comcast-ipv6-with-ubiquiti-edgerouter/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Amelia</title>
		<link>http://mikeshoup.com/2014/12/07/amelia/</link>
		<comments>http://mikeshoup.com/2014/12/07/amelia/#respond</comments>
		<pubDate>Sun, 07 Dec 2014 13:57:00 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Familiy]]></category>
		<category><![CDATA[Amelia]]></category>
		<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=783</guid>
		<description><![CDATA[I&#8217;m a bit late on this announcement. Amelia Shoup was born at the end of October.]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m a bit late on this announcement.</p>
<p>Amelia Shoup was born at the end of October.</p>
<p><a href="https://www.flickr.com/photos/shoupiest/15336654523" title="PB291441_01 by Mike Shoup, on Flickr"><img src="https://farm9.staticflickr.com/8647/15336654523_b904eec51b_z.jpg" width="640" height="482" alt="PB291441_01"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2014/12/07/amelia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Universal Media Server, Headless, on CentOS 7</title>
		<link>http://mikeshoup.com/2014/11/30/universal-media-server-on-centos-7/</link>
		<comments>http://mikeshoup.com/2014/11/30/universal-media-server-on-centos-7/#comments</comments>
		<pubDate>Mon, 01 Dec 2014 03:13:00 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[DLNA]]></category>
		<category><![CDATA[UMS]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=766</guid>
		<description><![CDATA[Universal Media Server originally started as a fork of PS3 Media Server. It is a great DLNA server for Linux. It has a large device support among other features. In our home, it is used to stream from our media server in the basement to the PS3 in the living room. The following steps will &#8230; <a href="http://mikeshoup.com/2014/11/30/universal-media-server-on-centos-7/" class="more-link">Continue reading <span class="screen-reader-text">Universal Media Server, Headless, on CentOS 7</span></a>]]></description>
				<content:encoded><![CDATA[<p><a title="Universal Media Server" href="http://www.universalmediaserver.com/" target="_blank">Universal Media Server</a> originally started as a fork of <a title="PS3 Media Server" href="http://www.ps3mediaserver.org/" target="_blank">PS3 Media Server</a>. It is a great DLNA server for Linux. It has a large device support among other features. In our home, it is used to stream from our media server in the basement to the PS3 in the living room.</p>
<p>The following steps will get it installed in a headless fashion on CentOS 7. They should also be easily adapted for any recent versions of Fedora. The biggest difference from this guide and others I&#8217;ve seen is I provide a service file for systemd.</p>
<p><strong>Install Prerequisites</strong></p>
<ol>
<li>Install <a title="EPEL" href="https://fedoraproject.org/wiki/EPEL" target="_blank">EPEL&#8217;s</a> and <a title="NUX" href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0CCAQFjAA&amp;url=http%3A%2F%2Fli.nux.ro%2Frepos.html&amp;ei=F6p7VLJ7xYKKAuaTgfAG&amp;usg=AFQjCNGJ09SWCEUlm-lczD5FYw9LHykakA&amp;sig2=iQfSzb0cpD1MSe-NBw9_Yw&amp;bvm=bv.80642063,d.cGE" target="_blank">Nux&#8217;s</a> repositories. Visit each project&#8217;s website for the latest release, but the following should work:<br />
<pre class="crayon-plain-tag">$ sudo yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
$ sudo yum install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm</pre>
</li>
<li>Install programs needed for transcoding:<br />
<pre class="crayon-plain-tag">$ sudo yum install mplayer mencoder ffmpeg mediainfo</pre>
</li>
<li>Install Java. You have two choices here. Install the appropriate openjdk package, or get the latest RPM from <a title="Oracle Java" href="http://java.com/en/download/linux_manual.jsp?locale=en" target="_blank">Oracle&#8217;s website</a>. I&#8217;ve found Oracle&#8217;s java release works best with UMS.</li>
</ol>
<p><strong>Install the files for UMS</strong></p>
<ol>
<li>Download a tarball of the latest version from <a title="UMS" href="http://www.universalmediaserver.com/" target="_blank">UMS&#8217; website</a> to your home directory.</li>
<li>Extract the tarball, and move it to <tt>/opt</tt>. Create a symlink from <tt>/opt/ums-#.#.#</tt> to <tt>/opt/ums</tt>. This allows you to add new versions and just replace the symlink, preserving the old installs if you want.<br />
<pre class="crayon-plain-tag">$ tar zxf UMS-4.2.2-Java7.tgz
$ sudo mv ums-4.2.2 /opt
$ sudo ln -s /opt/ums-4.2.2 /opt/ums</pre>
</li>
<li>Copy the config files to <tt>/etc/ums</tt>. This makes more sense than keeping them with the UMS files.<br />
<pre class="crayon-plain-tag">$ sudo mkdir /etc/ums
$ sudo cp UMS.conf WEB.conf /etc/ums</pre>
</li>
<li>Create a user, <tt>ums</tt>, to run the UMS application under. This user will need permissions to read the media files, as well as write permissions to the folder for the config files and the application files. Don&#8217;t set a password, use <tt>/opt/ums</tt> for the home directory, and use <tt>/sbin/nologin</tt> for the shell.<br />
<pre class="crayon-plain-tag">$ sudo useradd -d /opt/ums -s /sbin/nologin ums
$ sudo chown -R ums:ums /opt/ums-4.2.2
$ sudo chown -R ums:ums /etc/ums</pre>
</li>
<li>Now, open up <tt>/etc/ums/UMS.conf</tt> in your text editor. Go through and adjust the parameters as necessary for your setup.</li>
</ol>
<p><strong>Systemd configuration</strong></p>
<p>Systemd is the init system in CentOS 7 and the more recent versions of Fedora. It will be utilized to start UMS on startup, as well as provide easy logging of events.</p>
<ol>
<li>Create the file <tt>/etc/systemd/system/ums.service</tt>. This gives systemd information about how to start UMS. It should have the following contents:<br />
<pre class="crayon-plain-tag">[Unit]
Description=Universal Media Server

[Service]
Type=simple
Environment="UMS_PROFILE=/etc/ums/UMS.conf"
User=ums
Group=ums
ExecStart=/opt/ums/UMS.sh

[Install]
WantedBy=multi-user.target</pre>
</li>
<li>Next, instruct <tt>systemctl</tt> reload its configuration, then enable, and start the service:<br />
<pre class="crayon-plain-tag">$ sudo systemctl daemon-reload
$ sudo systemctl enable ums
$ sudo systemctl start ums</pre>
</li>
<li>Provided everything started fine, there should be no output from <tt>systemctl</tt> after starting it. You can utilize <tt>systemctl</tt> to verify everything started correctly:<br />
<pre class="crayon-plain-tag">$ sudo systemctl status ums
ums.service - Universal Media Server
   Loaded: loaded (/etc/systemd/system/ums.service; enabled)
   Active: active (running) since Sun 2014-11-30 19:12:20 MST; 32min ago
 Main PID: 12912 (java)
   CGroup: /system.slice/ums.service
           └─12912 java -Xmx768M -Xss2048k -Dfile.encoding=UTF-8 -Djava.net.p...</pre>
</li>
<li>Systemd captures all the output from UMS and stores it in its logs. You can access all that information with <tt>journalctl</tt>. This is extremely useful if there are problems. To view all messages from UMS, you could use the command: <tt>sudo journalctl _SYSTEMD_UNIT=ums.service</tt></li>
</ol>
<p><strong>Open the firewall</strong></p>
<p>Unless you&#8217;ve already mucked with the defaults, the CentOS firewall should be up and running, and likely only allowing port 22/tcp in. You will need to open some holes in the firewall.</p>
<p>Let&#8217;s first look at the ports that UMS uses:</p><pre class="crayon-plain-tag">$ sudo netstat -pln | grep java
tcp        0      0 0.0.0.0:9001            0.0.0.0:*               LISTEN      12912/java          
tcp        0      0 10.0.0.204:5001         0.0.0.0:*               LISTEN      12912/java          
udp        0      0 0.0.0.0:1900            0.0.0.0:*                           12912/java</pre><p>Unless you&#8217;ve changed anything, by default, those are 5001/tcp, 9001/tcp and 1900/udp. Port 9001/tcp is optional. Enable it if you want to browse your media via a web browser. Let&#8217;s utilize the <tt>firewall-cmd</tt> utility to poke the holes:</p>
<ol>
<li>Determine the active zone for your network interface. In the command below, the zone in use is <tt>internal</tt>. Yours will likely be the default, which is <tt>public</tt>. Notate it, and use it for the next commands:<br />
<pre class="crayon-plain-tag">$ sudo firewall-cmd --get-active-zones
internal
  interfaces: eth0</pre>
</li>
<li>Open the ports on the zone, and reload the firewall:<br />
<pre class="crayon-plain-tag">$ sudo firewall-cmd --add-port=5001/tcp --zone=&lt;zone&gt; --permanent
success
$ sudo firewall-cmd --add-port=9001/tcp --zone=&lt;zone&gt; --permanent
success
$ sudo firewall-cmd --add-port=1900/udp --zone=&lt;zone&gt; --permanent
success
$ sudo firewall-cmd --reload
success</pre>
</li>
<li>Verify the ports are open:<br />
<pre class="crayon-plain-tag">$ sudo firewall-cmd --list-ports --zone=&lt;zone&gt;
5001/tcp 9001/tcp 1900/udp</pre>
</li>
</ol>
<p>Congrats! You&#8217;re done! Launch your DLNA client (or PS3 as it were) and make sure things are working. Utilize <tt>journalctl</tt> to gather diagnostic information if things aren&#8217;t working right.</p>
<p>Update: I&#8217;ve made some changes in the systemctl setup and noted that port 9001 is optional. These were at the advice of <a href="http://www.universalmediaserver.com/forum/viewtopic.php?f=10&amp;t=2533#p13298" target="_blank">Vallimar on the UMS forums</a>. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2014/11/30/universal-media-server-on-centos-7/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ride Diary: Saturday 10/19</title>
		<link>http://mikeshoup.com/2014/10/21/ride-diary-saturday-1019/</link>
		<comments>http://mikeshoup.com/2014/10/21/ride-diary-saturday-1019/#respond</comments>
		<pubDate>Tue, 21 Oct 2014 18:21:17 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Ride Diary]]></category>
		<category><![CDATA[Autumn]]></category>
		<category><![CDATA[bicycle]]></category>
		<category><![CDATA[Miyata]]></category>
		<category><![CDATA[Vanover Park]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=760</guid>
		<description><![CDATA[Weather started out cool. Wore my new long sleeved Novara jersey for the first time and needed my full fingered gloves. Headed west via 26th Avenue and 32nd Avenue. Passed and was passed by many cyclists. Lots of groups out. I rode by a rather large one gathering at a church at 32nd Ave and &#8230; <a href="http://mikeshoup.com/2014/10/21/ride-diary-saturday-1019/" class="more-link">Continue reading <span class="screen-reader-text">Ride Diary: Saturday 10/19</span></a>]]></description>
				<content:encoded><![CDATA[<p>Weather started out cool. Wore my new long sleeved Novara jersey for the first time and needed my full fingered gloves.</p>
<p>Headed west via 26th Avenue and 32nd Avenue. Passed and was passed by many cyclists. Lots of groups out. I rode by a rather large one gathering at a church at 32nd Ave and McIntyre St. As I went by the Coor&#8217;s brewery, they went past me in a rather spirited fashion. They looked like they were having fun and ready to climb <a title="Lookout Mountain - Google Maps" href="https://goo.gl/maps/ReWh6" target="_blank">Lookout Mountain</a> (I&#8217;ll do that one of these days).</p>
<p>Got to <a title="Vanover Park - Google Maps" href="https://goo.gl/maps/80DZi" target="_blank">Vanover park</a> in Golden. The leaves were falling on a couple of trees and presented an excellent photo op.</p>
<p><a title="Autumn Ride by Mike Shoup, on Flickr" href="https://www.flickr.com/photos/shoupiest/15570274366"><img src="https://farm4.staticflickr.com/3940/15570274366_6c0407f21f_z.jpg" alt="Autumn Ride" width="640" height="359" /></a></p>
<p>After a brief rest, turned my bike back around and went up Clear Creek. According the RideWithGPS app on my phone, I reached 37.5 MPH on a downhill section of this. If that&#8217;s true, I think that&#8217;s my record on a bicycle. Fortunately, the trail was completed devoid of other humans at that time.</p>
<p>Once I reached the I-70 underpass along the Clear Creek trail, I took a moment to debate if I wanted to keep heading up it, or head back home on the roads. I took the road option.</p>
<p>Turned down the Youngfield Service Rd and headed back east on 32nd Ave. At some point I ended up on 26th Ave and headed home.</p>
<p><a href="http://ridewithgps.com/trips/3658433" target="_blank">Here&#8217;s my ride from the RideWithGPS app</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2014/10/21/ride-diary-saturday-1019/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bike Lock Strategies: The Ring Lock</title>
		<link>http://mikeshoup.com/2014/10/20/bike-lock-strategies-the-ring-lock/</link>
		<comments>http://mikeshoup.com/2014/10/20/bike-lock-strategies-the-ring-lock/#respond</comments>
		<pubDate>Mon, 20 Oct 2014 20:11:12 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Bicycles]]></category>
		<category><![CDATA[bicycle]]></category>
		<category><![CDATA[lock]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=758</guid>
		<description><![CDATA[Leave your bicycle unattended anywhere, and you&#8217;re going to worry about someone walking away with it. It&#8217;s important to have a good strategy for locking bicycles. Many locking strategies often consist of carrying multiple items to lock your bike, such as multiple locks, or supplementing your lock(s) with cables. This is necessary because parts on &#8230; <a href="http://mikeshoup.com/2014/10/20/bike-lock-strategies-the-ring-lock/" class="more-link">Continue reading <span class="screen-reader-text">Bike Lock Strategies: The Ring Lock</span></a>]]></description>
				<content:encoded><![CDATA[<p>Leave your bicycle unattended anywhere, and you&#8217;re going to worry about someone walking away with it. It&#8217;s important to have a good strategy for locking bicycles.</p>
<p>Many locking strategies often consist of carrying multiple items to lock your bike, such as multiple locks, or supplementing your lock(s) with cables. This is necessary because parts on modern bicycles are made to be easily removed, which is the opposite of what you want if you need to leave your bike unattended.</p>
<p>The ring lock, or frame lock, is not seen very often in the United States. Very common in Europe, the ring lock usually attaches to the seat stays, and immobilizes the bike by placing a metal rod through the wheel&#8217;s spokes. My primary commuter bicycle is equipped with one, and it is my favorite lock ever.</p>
<p><a title="Ring Lock &amp; Purple Tektro Cantilever by Mike Shoup, on Flickr" href="https://www.flickr.com/photos/shoupiest/6212349099"><img class="aligncenter" src="https://farm7.staticflickr.com/6221/6212349099_c225db4bc2_z.jpg" alt="Ring Lock &amp; Purple Tektro Cantilever" width="640" height="426" /></a>What&#8217;s great about the ring lock, the lock is always with my bicycle. I can put my key in it and immediately immobilize my bicycle. Great for quick trips.</p>
<p>Also, many ring locks like the ABUS Amparo pictured above have cables and chains you can plug into the side. This allows you to secure your bicycle to a stationary object such as a bike rack. Combine it with anti-theft skewers (such as Velo Orange&#8217;s) and you have a pretty decent bicycle theft prevention system.</p>
<p>Unfortunately, these are pretty difficult to obtain in the states.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2014/10/20/bike-lock-strategies-the-ring-lock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stop de Kindermoord (Stop the Child Murder)</title>
		<link>http://mikeshoup.com/2014/09/25/stop-de-kindermoord-stop-the-child-murder/</link>
		<comments>http://mikeshoup.com/2014/09/25/stop-de-kindermoord-stop-the-child-murder/#comments</comments>
		<pubDate>Thu, 25 Sep 2014 16:17:15 +0000</pubDate>
		<dc:creator><![CDATA[Mike Shoup]]></dc:creator>
				<category><![CDATA[Bicycles]]></category>
		<category><![CDATA[advocacy]]></category>
		<category><![CDATA[bicycle]]></category>
		<category><![CDATA[cycling for children]]></category>
		<category><![CDATA[infrastructure]]></category>

		<guid isPermaLink="false">http://mikeshoup.wp.shouptech.com/?p=706</guid>
		<description><![CDATA[Most cyclists in America are aware that the Netherlands is a cycling country. So much so, that nationwide, 27% of all trips in the Netherlands are by bicycle. Digest that statistic for a moment. That means, over one quarter of all trips in the Netherlands are by bicycle. So how&#8217;d the Dutch arrive there? A &#8230; <a href="http://mikeshoup.com/2014/09/25/stop-de-kindermoord-stop-the-child-murder/" class="more-link">Continue reading <span class="screen-reader-text">Stop de Kindermoord (Stop the Child Murder)</span></a>]]></description>
				<content:encoded><![CDATA[<p>Most cyclists in America are aware that the Netherlands is a cycling country. So much so, that nationwide, <a href="http://www.fietsberaad.nl/library/repository/bestanden/CyclingintheNetherlands2009.pdf" target="_blank">27% of all trips in the Netherlands are by bicycle</a>. Digest that statistic for a moment. That means, over one quarter of all trips in the Netherlands are by bicycle. So how&#8217;d the Dutch arrive there?</p>
<p>A lot of articles on the subject point to a movement in the 1970s calls &#8220;Stop de Kindermoord&#8221; which literally translates to English as &#8220;Stop the Child Murder.&#8221; The following is a quote from <a href="http://www.aviewfromthecyclepath.com/" target="_blank">David Hembrow</a> on a <a href="http://www.aviewfromthecyclepath.com/search/label/stop%20de%20kindermoord" target="_blank">blog post</a> of his:</p>
<blockquote><p>1973 was also the year that the pressure group &#8220;Stop de Kindermoord&#8221; (&#8220;Stop the Child Murder&#8221;) started. The object of this group was to point out the number of deaths caused to children and to campaign to reduce them. They successfully influenced the Dutch government to re-emphasize building of segregated cycle paths, and to make money available to pay for them. This resulted in both a rise in cycling and a reduction in cyclist deaths, reversing the previous trend. It has been a success not only for child cyclists, but for all cyclists, and indeed for the population as a whole.</p></blockquote>
<p>In my opinion, campaigning for children is the best way to make progress in America. <a href="http://www.peopleforbikes.org/" target="_blank">People for Bikes</a> has recently taken this idea and started their own campaign: <a href="http://www.peopleforbikes.org/blog/entry/a-new-north-star-in-bikeway-design-build-it-for-isabella" target="_blank">Build it for Isabella</a>. It&#8217;s a simple concept: &#8220;Every new bike project should strive to be usable by a 12-year old.&#8221;</p>
<p>Here&#8217;s Isabella:</p>
<figure id="attachment_710" style="width: 217px" class="wp-caption aligncenter"><img class="wp-image-710 size-medium" src="http://mikeshoup.com/wp-content/uploads/sites/2/2014/09/Isabella-Solo-217x300.png" alt="Isabella" width="217" height="300" /><figcaption class="wp-caption-text">Source: <a href="http://www.peopleforbikes.org/green-lane-project/pages/build-it-for-isabella" target="_blank">http://www.peopleforbikes.org/green-lane-project/pages/build-it-for-isabella</a></figcaption></figure>
<p>When considering current designs of infrastructure in the Denver area, I have a hard time imagining Isabella riding on most of our infrastructure.</p>
<p>For example, can you envision her sharing the road when sharrows are involved?</p>
<p><a title="Denver Sharrows on Sherman St by Mike Shoup, on Flickr" href="https://www.flickr.com/photos/shoupiest/4491726586" target="_blank"><img class="aligncenter" src="https://farm5.staticflickr.com/4068/4491726586_afe426a8db.jpg" alt="Denver Sharrows on Sherman St" width="500" height="333" /></a></p>
<p>What about even buffered bike lanes like this?</p>
<p><a title="Champa St Bike Lane by Mike Shoup, on Flickr" href="https://www.flickr.com/photos/shoupiest/5295112064" target="_blank"><img class="aligncenter" src="https://farm6.staticflickr.com/5170/5295112064_76836e2f9f.jpg" alt="Champa St Bike Lane" width="500" height="375" /></a></p>
<p>Or is this more like it?</p>
<p><a title="Bannock Cycle Track by Mike Shoup, on Flickr" href="https://www.flickr.com/photos/shoupiest/5730569442" target="_blank"><img class="aligncenter" src="https://farm4.staticflickr.com/3444/5730569442_2f1c62420f.jpg" alt="Bannock Cycle Track" width="500" height="299" /></a></p>
<p>The above looks like something Isabella could safely ride on, if she&#8217;s heading toward the photo. But what about the bike lane for those riding away from the photo?</p>
<p>I would also like to point out that protected tracks like pictured above are not enough. Protected intersections are also necessary. The Bannock cycle track posted above abruptly ends, leaving Isabella on the sidewalk, mixing with pedestrians and riding through crosswalks. (The sign in the photo below cautioning cyclists to slow has since been removed.) There is no clear indication of where she can safely ride from here.</p>
<p><a title="Bannock Cycle Track Ends by Mike Shoup, on Flickr" href="https://www.flickr.com/photos/shoupiest/5730569866" target="_blank"><img class="aligncenter" src="https://farm3.staticflickr.com/2416/5730569866_d14daba92c.jpg" alt="Bannock Cycle Track Ends" width="500" height="299" /></a></p>
<p>We even have here in Denver, the first of what cycling advocates are calling a protected lane in the form of the <a href="https://www.denvergov.org/bikeprogram/BicyclinginDenver/15thStreetBikeway/tabid/444594/Default.aspx" target="_blank">15th Street Bikeway</a>. It has many positive design elements, such as:</p>
<ol>
<li>A protected buffer from the rest of traffic (done with plastic <del>sticks </del>bollards).</li>
<li>Intersection treatments, like green zebra strips.</li>
<li>Bicycle signals at the end of the track.</li>
</ol>
<p>Here again though, the design has serious deficiencies that would keep Isabella&#8217;s parents from considering it safe for her:</p>
<ol>
<li>&#8220;Mixing zones&#8221; where cars need to turn left across the bike lane.
<p><figure id="attachment_723" style="width: 300px" class="wp-caption aligncenter"><img class="wp-image-723 size-medium" src="http://mikeshoup.com/wp-content/uploads/sites/2/2014/09/mixing-zone-2-300x249.jpg" alt="" width="300" height="249" srcset="http://mikeshoup.com/wp-content/uploads/sites/2/2014/09/mixing-zone-2-300x249.jpg 300w, http://mikeshoup.com/wp-content/uploads/sites/2/2014/09/mixing-zone-2.jpg 420w" sizes="(max-width: 300px) 100vw, 300px" /><figcaption class="wp-caption-text">Source: <a href="https://www.denvergov.org/bikeprogram/BicyclinginDenver/15thStreetBikeway/tabid/444594/Default.aspx" target="_blank">https://www.denvergov.org/bikeprogram/BicyclinginDenver/15thStreetBikeway/tabid/444594/Default.aspx</a></figcaption></figure></li>
<li>A lack of interconnected routes.</li>
<li>Abrupt ending of the lane where cyclists must merge back in with traffic.</li>
</ol>
<p>Denver <em>can</em> and <em>should</em> do better. If we ever want to cycling to reach double digits modal share, or to see our children cycling like the Dutch we need to do better. This video is something that I think we can achieve in American cities:</p>
<p><iframe width="660" height="371" src="https://www.youtube.com/embed/8NUgB_xkIvU?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://mikeshoup.com/2014/09/25/stop-de-kindermoord-stop-the-child-murder/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
