<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Jeff Minard, Web Developer</title>
<link href="http://jrm.cc" ></link>
<id>urn:uuid:9834e99d-c6a1-f284-da30-b663ad83698c</id>
<description type="html" ><![CDATA[A blog by Jeff Minard]]></description>
<entry>
<title>Wonderful Workspace</title>
<link href="http://jrm.cc/wonderful-workspace" ></link>
<id>urn:uuid:98f4b88d-44d9-c24f-396c-da9380eced61</id>
<updated>2012-10-26T20:49:46-07:00</updated>
<summary type="html" ><![CDATA[<p><img src="http://jrm.cc/uploads/th_c94c82023c7cc8f7705103a5d45c5709_wonderful-workspace.jpg" alt="" /></p><p>I really like this. Nice wood floor, comfy chair, good lighting, and plants. Lovely, greenery.</p>]]></summary>
</entry>
<entry>
<title>Light Shadows</title>
<link href="http://jrm.cc/light-shadows" ></link>
<id>urn:uuid:d4cf9a37-a330-3802-c5d3-0967245cc3ee</id>
<updated>2012-09-10T23:22:35-07:00</updated>
<summary type="html" ><![CDATA[<p><img src="http://jrm.cc/uploads/th_cf3d6616b6f242ef12c2da78b80e4e9c_light-shadows.jpg" alt="" /></p>]]></summary>
</entry>
<entry>
<title>Dual Monitors Once Again</title>
<link href="http://jrm.cc/dual-monitors-once-again" ></link>
<id>urn:uuid:a51f3e1d-9e3b-26aa-937e-552d938141c6</id>
<updated>2012-08-19T15:24:10-07:00</updated>
<summary type="html" ><![CDATA[<p><img src="http://jrm.cc/uploads/th_83934e9cbd054c04e28fc92426c028c8_dual-monitors-once-again.jpg" alt="" /></p>	<p>One of my first purchases after coming back from Sweden was a used Dell 2408WFP &#8212; which has been a great monitor, even though it was second hand <strong>and</strong> refurbished. Even then, however, the only issue I ever had was the <span class="caps">VGA</span> port not working correctly. </p>

	<p>One of the wedding gifts was a second monitor arm, so I figured it was time to get a second monitor :) I was going to try and find a smaller, non wide screen monitor to go sideways next to the 2408, but ultimately couldn&#8217;t really find anything <strong>that small</strong> for retail sale anymore. Instead, I went ahead and ponied up for the successor to the 2408, the U2410. </p>

	<p>No complaints so far, and I expect it will last me a good long while. At least until retina-display <span class="caps">DPI</span> levels start hitting the 24&#8221; monitor ranges.</p>]]></summary>
</entry>
<entry>
<title>Diving Dolphins</title>
<link href="http://jrm.cc/diving-dolphins" ></link>
<id>urn:uuid:83fde63b-8ce2-b8c2-0eaa-812da98779e1</id>
<updated>2012-08-17T20:30:57-07:00</updated>
<summary type="html" ><![CDATA[<p><img src="http://jrm.cc/uploads/th_8351726268e54b6abf6c17c8e00ceeb9_diving-dolphins.jpg" alt="" /></p><p>I'd like to see this in person, very cool installation. :)</p>]]></summary>
</entry>
<entry>
<title>&quot;Power Tools&quot;</title>
<link href="http://jrm.cc/power-tools" ></link>
<id>urn:uuid:a63098a8-91bb-5cc4-8a8a-5dd48d0f5392</id>
<updated>2012-07-22T23:06:44-07:00</updated>
<summary type="html" ><![CDATA[<p>Clever re-use.<br />
<br />
(Sadly, illegal in CA due to the lack of a combination/key lock.)</p>]]></summary>
</entry>
<entry>
<title>How Many People Are On Mars Right Now?</title>
<link href="http://jrm.cc/how-many-people-are-on-mars-right-now" ></link>
<id>urn:uuid:239d4067-20c0-3204-2392-17643cc011a5</id>
<updated>2012-07-21T23:27:53-07:00</updated>
<summary type="html" ><![CDATA[]]></summary>
</entry>
<entry>
<title>&quot;THIS. IS. MINECRAFT!&quot;</title>
<link href="http://jrm.cc/this-is-minecraft" ></link>
<id>urn:uuid:b2f1f216-edf6-9c04-fb04-263058c32697</id>
<updated>2012-07-20T23:05:53-07:00</updated>
<summary type="html" ><![CDATA[<p><img src="http://jrm.cc/uploads/th_cdfd2825c8265b0625bb790ba8fad8b1_this-is-minecraft.jpg" alt="" /></p><p>Well rendered :)</p>]]></summary>
</entry>
<entry>
<title>Racecar Rollercoaster</title>
<link href="http://jrm.cc/racecar-rollercoaster" ></link>
<id>urn:uuid:4daddb6b-4281-f1bc-e7d2-db74266dcd56</id>
<updated>2012-07-19T19:38:39-07:00</updated>
<summary type="html" ><![CDATA[<p><img src="http://jrm.cc/uploads/th_f845c8b13bb6bf12494a65c1f8a90fb5_racecar-rollercoaster.jpg" alt="" /></p><p>Kick ass!</p>]]></summary>
</entry>
<entry>
<title>How High Can We Build?</title>
<link href="http://jrm.cc/how-high-can-we-build" ></link>
<id>urn:uuid:f9c51629-1811-8ace-b445-dd4fcdfc7ed9</id>
<updated>2012-06-03T15:08:44-07:00</updated>
<summary type="html" ><![CDATA[<blockquote>
  <p>Why should we [build a space elevator]? Because it's awesome.</p>
</blockquote>
]]></summary>
</entry>
<entry>
<title>GIT For Backup </title>
<link href="http://jrm.cc/git-for-backup" ></link>
<id>urn:uuid:36bc1d2d-faeb-5421-2e79-1795c030cae7</id>
<updated>2012-06-03T09:04:31-07:00</updated>
<summary type="html" ><![CDATA[<p>With an ESXi box at home and one in a datacenter, I'm having all kinds of fun toying with interesting computer experiments. This weekends endeavor was to replace (more or less) Dropbox.</p>

<p>There area few key things Dropbox does for me:</p>

<ul>
<li>Backup files to a remote location, securely (more or less)</li>
<li>Keep versioned copies of the files I backup (indefinitely)</li>
<li>Provide remote access to files</li>
</ul>

<p>Dropbox does more than this, but this is all I use it for. I decided that this all sounds erily like what a GIT repository can do. </p>

<h3>CAVEAT AHOY!</h3>

<p>I do not edit my documents in any place but my home (source) machine. Dropbox is more about backup than sync for me. This fact greatly simplifies my workflow such this project doesn't have to deal with "the document was modified on my iPhone and desktop -- auto resolve/raise issue" etc. Continuing on...</p>

<h3>Overview</h3>

<p>The general idea here is to setup a network share over Samba which I can mount to my Windows7 machine and work with as normal. As I work, the change will be auto committed, and once in a while the whole git repo will get mirrored off to my backup machine.</p>

<h3>More Specifically</h3>

<p>A GIT repository, one which is mirrored off-site, will provide all primary features of Dropbox: remote backup, versioning, and remote access (with a bit extra work). However, I don't want to <em>think</em> about GIT while I am doing these things -- like Dropbox, I just want a folder that stays backed up and safe.</p>

<p>I use Windows as my primary OS. I do my development, putzing about, and <strong>gaming</strong> on this machine. I'm slowly pairing it down to a beefy graphics card, ram, and a few SSD's -- leaving my ESXi to hold loads of large HD's and keep a low, but always on, power signature. So, when I want a convenient place to store files, I put together a Samba share on my CentOS6.2 minimal install. Toss it under an LVM so I can add more space later (surprisingly not that hard), and I've got an expandable, safe file storage area. (All my phyical disks on the ESXi sit in some kind of RAID mirror.)</p>

<p>Once I've connected and mounted to that, I have a Dropbox-esque area to save files, work on them, and generally use. </p>

<h3>Automatic Versioning &amp; Syncing</h3>

<p>Like I said, I don't want to deal with GIT add, commit, branch -- I don't want to see it at all, to be honest, I just want whatever is in the share to be saved. GIT is pretty good about tracking changes, be it renames, moves, edits, deletes, or new files -- you just <code>git add -A &amp;&amp; git commit -am 'files changed'</code> and you're good to go. The trick is getting that to trigger.</p>

<p>Thankfully, linux has a nice helper, as part of the <code>inotify-tools</code> package called <code>inotifywait</code> which will wait for various events to occur on your watched folders/files, and then do something. In my case, the "something" is the GIT sequence above. </p>

<p>With that in place watching the share, I now have "if something changes, there's a record" setup. Awesome.</p>

<p>The syncing part is quite simple -- you have a remote git repo, you push to it with <code>git push --mirror remote</code> and you're set. Toss that into a cronjob and kick back.</p>

<h3>Take Away Notes</h3>

<p>Not everything went perfectly smooth:</p>

<ul>
<li>inotify-tools, for centos6.2, is in EPEL. I did a minimal install, so I didn't have EPEL and needed to add it.</li>
<li>Windows 7 can't login as two different users to the same network host (or share, for that matter). Fortunately, Windows' idiocy is also our saving grace: Edit your HOSTS file and add several alias to the same IP address and use those to connect as different users.</li>
<li>You can run inotifywait in a loop or in daemon mode. If you run it in a loop, it's possible that while the commands in the loop are run, you'll miss of file modifications because you're not "waiting" anymore. In daemon mode, you never miss anything, but running commands seemed trickier. Personally, I just liked the loop better, and it didn't really come out to matter, ultimately.</li>
<li>The loop process ran into the cronjob once or twice, thus I had one process trying to <code>git add/commit</code> stuff while another was trying to <code>git push</code>. Between that and needing inotifywait to be in a constant loop, I may end up dropping the bash script and instead move towards a single script that (attempts) a <code>git add -A &amp;&amp; git commit</code> every 5 minutes, and then will follow up with a push on the hourly update. However, doing so would mean losing the incremental updates that inotify can give me right now.</li>
<li>The first time you drag &amp; drop several gigbytes of files into the directory you'll causes a series of git commits that are just KILLER. But, that's to be expected -- if you <code>git init &amp;&amp; git add -A &amp;&amp; git commit -a</code> a 100GB directory you're gonna be in for a long wait no matter what you do.</li>
</ul>
]]></summary>
</entry>
<entry>
<title>Leon (The Professional)</title>
<link href="http://jrm.cc/leon-the-professional" ></link>
<id>urn:uuid:02d12f60-4923-67bc-dbf9-ecaeb8437cdc</id>
<updated>2012-05-15T22:58:04-07:00</updated>
<summary type="html" ><![CDATA[<p><img src="http://jrm.cc/uploads/th_67161928f73e3cde59f4c4399088b7d9_leon-the-professional.jpg" alt="" /></p>Ah, what a good movie. The <a href="http://cooley.bigcartel.com/product/leon-non-limited-edition">artist responsible</a>.]]></summary>
</entry>
<entry>
<title>Redis Changelog</title>
<link href="http://jrm.cc/redis-changelog" ></link>
<id>urn:uuid:df3e0600-1ef5-b975-e66c-bf9d7da5ce98</id>
<updated>2012-05-12T15:42:59-07:00</updated>
<summary type="html" ><![CDATA[<p>I really like how the redis change log has a quick section for the difference between the latest large revision. I'm also find the &quot;UPGRADE URGENCY&quot; section on each bug list really useful for quickly seeing, &quot;do I really need to worry that my package manager is 0.0.2 versions behind?&quot; Quite handy.</p>]]></summary>
</entry>
<entry>
<title>The Civil Wars - Billie Jean (Live)</title>
<link href="http://jrm.cc/the-civil-wars-billie-jean-live" ></link>
<id>urn:uuid:8972617c-4ac1-0eab-b9af-5ad65b1da6da</id>
<updated>2012-05-09T21:37:55-07:00</updated>
<summary type="html" ><![CDATA[<p>Great cover.</p>]]></summary>
</entry>
<entry>
<title>Gibson (II) Retirement, Gibson (III) Build Log</title>
<link href="http://jrm.cc/gibson-ii-retirement-gibson-iii-build-log" ></link>
<id>urn:uuid:98166612-46a9-c015-7f1d-9f9a5423354a</id>
<updated>2012-05-07T19:39:43-07:00</updated>
<summary type="html" ><![CDATA[<p><i>Towards the end of 2011, my colocated server, Gibson (II) started experiencing what I assumed was hard drive issues. This is the work log for the replacement of the machine.</i></p>

<p>The server ("Gibson") which normally hosts the website you are looking for is currently offline.</p>

<p>After roughly 5 years of service, Gibson is experiencing significant drive failures and needs down time to be replaced.</p>

<p>I will keep a work log here of progress on the rebuild (all updates are in reverse chronology):</p>

<ul>
	<li><strong>2012-05-08</strong><br/>
	<strong>UP AND RUNNING!</strong><br/>If you are still seeing this, give it some time. DNS needs to propogate<br/>
	RAID system repaired, Gibson2 image booting, functionality to be restored soon. *cross fingers*<br/>
	<li><strong>2012-05-07</strong><br/>
	So close. Datacenter people reseated some cords and all drives show up now, so RAID has been restored. However, the KVM has ceased working at this point, which is a problem. Trying to get that sorted out.<br/>
	<li><strong>2012-05-06</strong><br/>
	Ugh. Got the KVM working and one of the drives is not showing up in the RAID controller. My guess, at this point and would be a best case scenario, is that a cable came loose during shipping. Really hope that's the issue.<br/>
	<li><strong>2012-05-05</strong><br/>
	Waiting to hear back from datacetner about the server. In the mean time, I'm reconditioning what's left of Gibson 2. It had 4 drives in it: 2 x 150GB WD Raptors, and 2 x 400GB WD RE2's (Raid Edition). <b>All but one Raptor are dead.</b> (They make the most wonderfully horrible clanking noises if you try to read from them.) The fact that Gibson even booted and worked at all for the last however-long these drives were out is a testament to the RAID card it had. Sheesh.<br/>
	<li><strong>2012-05-04</strong><br/>
	The server has been racked and turned on -- and the RAID is missing. And the KVM (remote management) is not responding. Not sure what's going on yet.<br/>
	<li><strong>2012-05-03</strong><br/>
	Server has arribed at datacenter a day early. Waiting to hear back on when it will be re-racked.<br/>
	<li><strong>2012-05-02</strong><br/>
	UPS tracker says server is in TX at airport.<br/>
	<li><strong>2012-05-01</strong><br/>
	Server in UPS hands. Off it goes, should arrive at DC on Friday.<br/>
	<li><strong>2012-04-30</strong><br/>
	Work day; got SSL certs for remote management purchased, installed, and tested. Setup ip addresses for DC network. Zip-tied up all the interior cords nice and snazzy, secured the top cover, put it in the shipping bag, <a href="/images/downtime/cats-goodbye.jpg">moved the cats</a>, and boxed it up. It'll hit the road wednesday morning. Probably get to the DC by saturday. Hopefully come sunday we'll all be looking at normal websites again. At which point I can start the long process of upgrading the OS from Fedora 6 to something not made 3 years ago.<br/>
	<li><strong>2012-04-29</strong><br/>
	Added commenting ability below.<br/>
	
	Very excited about this screenshot:
	<br/><br/>
	<a style="text-align: center; display: block" href="/images/downtime/configured.png"><img src="/images/downtime/configured-small.png" alt="remote configuration setup" /><br/><i>Click to enlarge</i></a>
	<br/>
	What you are looking at is my ability to completely, remotely control the server with KVM over IP, plus monitor fan speeds, temperatures gauges, etc. Additionally, the SSD drives and 6TB RAID5 array is running in VMWare. Finally, the single virtual image installed? All of the sites that would normally be hosted here -- ready to go once the machine makes it back to the DC (and after a little network configuration repair). This is very exciting.
	<br/>
	100% formatted, total: 57h 01m<br/>
	<li><strong>2012-04-28</strong><br/>
	92% complete @ 51h 04m -- Finally going to wrap up sometime while I sleep.<br/>
	Discovered that old Gibson, while supporting PWM (variable speed) fans, was built with 3 pin fans instead -- so they've been cranking full speed for the last 5 years. Ooops. I ordered new 4 pin fans to replace the old ones to reduce noise as I am recommissioning it as my home server.<br/>
	86% complete @ 46h 18m<br/>
	71% complete @ 37h 40m<br/>
	<li><strong>2012-04-27</strong><br/>
	44.7% after 22 hours. Looks like my jibe about it "taking 40 hours" was closer to accurate than I thought.<br/>
	<li><strong>2012-04-26</strong><br/>
	Initializing RAID5 array. This should only take, like, 40 hours <i>update: estimate sits at 24 hours</i><br/>
	RAID card successfully integrated with VMWare ESXi5<br/>
	Moved the raid card from G2 to G3 and getting it rebuilt. Considering getting the raid card bios up to date.<br/>
	The drive copy went smashingly. The old gibson OS has no idea its now living in a virtual wonderland -- outside of resetting its ethernet adapter. Database checked out fine, files all present. Yay!<br/>
	<li><strong>2012-04-25</strong><br/>
	This things fans are intense. Hard drive image copy underway -- once the image is stored, it will be moved to the new server and started up as a virtual machine.<br/>
	Server just arrivd back. Yay! I expected fully evolved, walking, talking dust bunnies but was surprised to find the chassis <a href="/images/downtime/mobo.jpg">almost</a> <a href="/images/downtime/blades.jpg">dust</a> <a href="/images/downtime/fan.jpg">free</a>. Naturally, <a href="/images/downtime/cat-box.jpg">the cats approved</a> of this shipment.<br/>
	<li><strong>2012-04-24</strong><br/>
	Gibson has landed in San Jose. Should be on a truck to my place tomorrow.<br/>
	<li><strong>2012-04-23</strong><br/>
	The server is on a plane from Texas to California. <i>Flyyin, on a jet plane. Don't know when I'll boot up agaaaaiiin.</i><br/>
	<li><strong>2012-04-22</strong><br/>
	Got the server scheduled for pickup on Monday, delivered from Texas to CA by Wednesday.<br/>
	<li><strong>2012-04-21</strong><br/>
	Gibson has been unracked, packed up, and will be getting shipped back to me tomorrow. Will take a few days to get here.<br/>
	<li><strong>2012-04-20</strong><br/>
	The server migration/upgrade has begun. If you are seeing this then Gibson is no longer serving requests for the website you're looking for.<br/>
	<li><strong>2012-03-09</strong><br/>
	Gibson has been holding up quite well over the last few days, actually, none-the-less, the replacement build is nearly complete. At this point, I am only waiting on the cpu heatsink/fan parts to come in. All drives have been wired, fans hooked up, etc.<br/>
	<li><strong>2012-03-05</strong><br/>
	Gibson looks like it ate dirt today.<br/>
	Yeah, crashed, but came back up. Hopefully it'll hold for another few weeks while the new server is pieced together.<br/>
	<li><strong>2012-03-01</strong><br/>
	The majority of the parts are in. Still missing heat sinks, some moliex->esata power adapters. Everything I have so far is installed$
	<li><strong>2012-02-25</strong><br/>
	New parts ordered. Dual Xeon motherboard, two 5606 processors, 64GB ram, 4x2TB WD HD, 2x32GB SSD, Chenbro 3u rackmount.<br/>
</ul>]]></summary>
</entry>
<entry>
<title>Wonderful Kitchen Setup</title>
<link href="http://jrm.cc/wonderful-kitchen-setup" ></link>
<id>urn:uuid:9c90147d-3bb4-d300-096b-e8d2244eaae3</id>
<updated>2012-04-06T22:17:18-07:00</updated>
<summary type="html" ><![CDATA[<p><img src="http://jrm.cc/uploads/th_c0ee0f3753a1b1f7339a3f22b196717f_wonderful-kitchen-setup.jpg" alt="" /></p>]]></summary>
</entry>
</feed>
<!-- rendered in: 0.013023 seconds -->