<?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>Casey A. McLaughlin &#187; IT Management</title>
	<atom:link href="http://www.caseymclaughlin.com/sections/it-management/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.caseymclaughlin.com</link>
	<description>Online Portfolio</description>
	<lastBuildDate>Fri, 30 Sep 2011 13:10:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>My Mercurial Workflow</title>
		<link>http://www.caseymclaughlin.com/2010/11/my-mercurial-workflow/</link>
		<comments>http://www.caseymclaughlin.com/2010/11/my-mercurial-workflow/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 17:39:56 +0000</pubDate>
		<dc:creator>McLaughlin Casey</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[diagrams]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[vcs]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://www.caseymclaughlin.com/?p=282</guid>
		<description><![CDATA[This post contains a few diagrams I worked up for colleagues at work to describe the Mercurial workflow.]]></description>
			<content:encoded><![CDATA[<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.type=&amp;rft.format=text&amp;rft.title=My Mercurial Workflow&amp;rft.source=Casey A. McLaughlin&amp;rft.date=2010-11-22&amp;rft.identifier=http://www.caseymclaughlin.com/2010/11/my-mercurial-workflow/&amp;rft.language=English&amp;rft.aulast=McLaughlin&amp;rft.aufirst=Casey&amp;rft.subject=IT Management&amp;rft.subject=Web Development"></span>
<p><a href="http://www.caseymclaughlin.com/wp-content/uploads/2010/11/programming_principles.jpg"><img class="alignright size-thumbnail wp-image-294" title="Programming Principles" src="http://www.caseymclaughlin.com/wp-content/uploads/2010/11/programming_principles-150x150.jpg" alt="Where does VCS fit in here?" width="150" height="150" /></a>About a year ago, I wrote an article on this website about Version Control.  In <a title="VCS .. The early days :)" href="http://www.caseymclaughlin.com/2009/12/make-codeigniter-svn-friendly/">that article</a>, I touted the glory of Subversion, and mentioned:</p>
<blockquote><p>&#8220;I&#8217;ve since tried other VCS systems like <a title="Mercurial Homepage" href="http://mercurial.selenic.com/">Mercurial</a>, <a title="Git Homepage" href="http://git-scm.com/">Git</a>, and <a title="Bazaar Homepage" href="http://bazaar.canonical.com/en/">Bazaar</a>, but have not found any compelling reason to switch.&#8221;</p></blockquote>
<p>Well, I&#8217;ve since found my compelling reasons to switch.  SVN lost some of our files, and it was a pain to do all sorts of stuff (get setup, keep clean, branch, merge, etc).  I won&#8217;t get into; there are <a title="Google will show you." href="http://www.google.com/search?sourceid=chrome&amp;ie=UTF-8&amp;q=subversion+sucks">enough rants about Subversion</a> on the &#8216;net already.  We use Mercurial now, and boy has our workflow improved.</p>
<p>Mercurial is my new favorite child, because it&#8217;s easy to setup, easy to use, easy to branch and merge, and easy to teach to my students.  Oh, and it just works.  <a title="I got rather excited in September." href="http://twitter.com/#!/caseyamcl/status/23944288332">Sometimes</a> I think it runs off magic.<span id="more-282"></span></p>
<p>In order to help my colleagues make the transition from SVN to Hg, I came up with a few diagrams to explain the workflow.  I thought I&#8217;d share them here.</p>
<a name="Mercurial+Recipe+for+Success"></a><h2>Mercurial Recipe for Success</h2>
<a name="You+will+Need%3A"></a><h5>You will Need:</h5>
<ol>
<li>Mercurial.  <a title="Hg Website." href="http://mercurial.selenic.com/">Grab and install it from the official site</a>.</li>
<li>Your files.  You know, all of those <em>css, html, </em>and<em> php</em> files that you&#8217;ve been working so hard on.</li>
<li>A repository server.  If you don&#8217;t have one, go get a free account at <a title="Bitbucket Mercurial Hosting (Free)" href="http://www.bitbucket.org">Bitbucket</a>.</li>
<li>A web server.  Install Mercurial here too.</li>
</ol>
<a name="The+Workflow%3A"></a><h5>The Workflow:</h5>
<div id="attachment_286" class="wp-caption aligncenter" style="width: 608px"><a href="http://www.caseymclaughlin.com/wp-content/uploads/2010/11/Hg-Setup.png"><img class="size-full wp-image-286 " title="Hg Setup" src="http://www.caseymclaughlin.com/wp-content/uploads/2010/11/Hg-Setup.png" alt="Diagram showing steps to setup a Mercurial Repository" width="598" height="338" /></a><p class="wp-caption-text">Setting up a Mercurial Repository</p></div>
<div id="attachment_287" class="wp-caption aligncenter" style="width: 608px"><a href="http://www.caseymclaughlin.com/wp-content/uploads/2010/11/Hg-Workflow.png"><img class="size-full wp-image-287 " title="Hg Workflow" src="http://www.caseymclaughlin.com/wp-content/uploads/2010/11/Hg-Workflow.png" alt="Diagram showing day-to-day Hg Workflow" width="598" height="305" /></a><p class="wp-caption-text">Day-to-Day Developer Workflow</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.caseymclaughlin.com/2010/11/my-mercurial-workflow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Backups and Disaster Recovery Kit</title>
		<link>http://www.caseymclaughlin.com/2010/01/backups-and-disaster-recovery-kit/</link>
		<comments>http://www.caseymclaughlin.com/2010/01/backups-and-disaster-recovery-kit/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:21:00 +0000</pubDate>
		<dc:creator>McLaughlin Casey</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[basics]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.caseymclaughlin.com/?p=186</guid>
		<description><![CDATA[In this post, I chastise you, the reader, for presumably not backing up your department's data, and share how to create a portable DR kit.]]></description>
			<content:encoded><![CDATA[<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.type=&amp;rft.format=text&amp;rft.title=Backups and Disaster Recovery Kit&amp;rft.source=Casey A. McLaughlin&amp;rft.date=2010-01-15&amp;rft.identifier=http://www.caseymclaughlin.com/2010/01/backups-and-disaster-recovery-kit/&amp;rft.language=English&amp;rft.aulast=McLaughlin&amp;rft.aufirst=Casey&amp;rft.subject=IT Management"></span>
<p><a href="../wp-content/uploads/2010/01/bear-survival-kit.jpg"><img class="alignright" title="bear-survival-kit" src="../wp-content/uploads/2010/01/bear-survival-kit-150x150.jpg" alt="Be Prepared!" width="150" height="150" /></a>It&#8217;s the perfect time to think about it.  With <a title="..and the subsequent media frenzy" href="http://en.wikipedia.org/wiki/2010_Haiti_earthquake">disaster</a> on everybody&#8217;s mind, and this being the season of resolutions, it&#8217;s time to think about your disaster recovery strategy.</p>
<p>Recently, a major department right here at FSU <a title="News article about the loss" href="http://cci.fsu.edu/news/?p=6580">suffered catastrophic loss</a> to their servers, with scant means of quick recovery.  Their site was down literally for weeks as staff from all over the University scrambled to assist them in recreating the critical pieces.  They lost of <em>a lot</em> of time and money.</p>
<p>I&#8217;m absolutely sure they&#8217;ll be super-prepared next time, but <span style="text-decoration: underline;"><em>you</em></span> don&#8217;t have to wait until something tragic happens to be prepared!</p>
<a name="Disaster+Recovery+Enterprise+Planning+%3D+Big+Words+%28Scary%21%29"></a><h3><span id="more-186"></span>Disaster Recovery Enterprise Planning = Big Words (Scary!)</h3>
<p>When I was an IT Manager n00b, I thought that planning for disasters was intimidating and complicated.  I thought it took a team of folks working around the clock, military-style, to prepare for incidents.  I was encouraged to believe this by colleagues constantly talking in <a title="Yeah... stuff like this" href="http://spedr.com/5rduk">business-speak</a>, conference sessions talking about <a title="Just like this." href="http://spedr.com/2v7ul">things like &#8220;DR evaluation metrics&#8221;</a>, and by <a title="Big Ugly Book" href="http://spedr.com/1frzy">big</a> <a title="What's the picture on the front of the book supposed to indicate?" href="http://spedr.com/3y867">ugly</a> <a title="More books" href="http://spedr.com/3wig0">books</a> that take days to even read through.</p>
<p>In the meantime, while I was being intimidated by all this &#8220;enterprise&#8221; stuff, we went without reliable backups.  We would have been <em>Scre-ewed</em> if something happened.</p>
<a name="1.+Embracing+Common+Sense"></a><h3>1. Embracing Common Sense</h3>
<p>Okay, just ignore all that business-speak.  Let&#8217;s start with the basics:  If you&#8217;re not backing up your data, put down the <a title="Big Ugly Book" href="http://spedr.com/1frzy">big</a> <a title="What's the picture on the front of the book supposed to indicate?" href="http://spedr.com/3y867">ugly</a> <a title="More books" href="http://spedr.com/3wig0">DR books</a> <em>right now</em> and go setup a backup.</p>
<p>No, seriously, do it <span style="text-decoration: underline;">right now</span>.</p>
<p>This does not have to be complicated.  Go find an external hard drive, then find out where your data is on your computers or servers.  Plug the hard-drive into the back of the computers and copy the folders with your data.  Do this every day, and you have a basic disaster recovery strategy!</p>
<blockquote><p><em>Pro Tip: </em>If you&#8217;re using Windows, I&#8217;m a big fan of using <a title="Seriously awesome freeware." href="http://www.codesector.com/teracopy.php">Teracopy</a> when I have to copy lots of data at a time.</p></blockquote>
<p>You get bonus if you copy the data to two hard-drives and take one off-site every day.  Now your data is in two geographic locations on three devices.</p>
<p>See? Easy.  Now that you&#8217;re off and running, you can make your life even easier by automating your backups.  If you&#8217;re not excited about doing a bunch of geeky tech stuff to get your automated backups working, go convince your boss to spend a few bucks a month on <a title="Mozy Pro Goodness" href="http://mozy.com/pro">cheap</a>, <a title="I Drive is good, too" href="http://www.idrive.com/">easy-to-setup</a> <a title="SOS Backup Services" href="http://www.sosonlinebackup.com/">online backup services</a>.  If he doesn&#8217;t want to spend the money, you can scare him with <a title="Coding Horror: Backup Awareness Day" href="http://spedr.com/5nizg">many</a> <a title="Company Fail" href="http://spedr.com/4jg32">horrifying</a> <a title="Marketing site, but still true" href="http://spedr.com/4niov">stories</a> of data loss on the Internet.</p>
<a name="2.+Being+Prepared"></a><h3>2. Being Prepared</h3>
<p>Next Step: Just sit down in a quiet place for a few minutes and think about the things that could go wrong:</p>
<ul>
<li>&#8220;My server could suffer a catastrophic hardware failure&#8221;</li>
<li>&#8220;My backup data could be corrupt&#8221;</li>
<li>&#8220;The building could burn down&#8221;</li>
<li>&#8220;We could get robbed&#8221;</li>
<li>&#8220;An employee could go apeshit and format the C: drive of the server&#8221;</li>
<li><em>etc..</em></li>
</ul>
<p>Now consider which three or four of those scenarios are most likely to happen in your department. You&#8217;ve just considered your risks.  Now, for each one of those scenarios, think about (a) what you can easily do to guard against them and (b) what you would have to do to recover from them:</p>
<ul>
<li>Buy a second, backup server (or set an old computer aside to act as server temporarily in case of disaster).</li>
<li>Keep two backup copies instead of one and periodically test opening files on the backup.</li>
<li>Take backups offsite so that the data doesn&#8217;t burn down with the rest of the building.</li>
<li>Lock the servers in a room without windows.</li>
<li>Keep backups (already done), and make sure employees don&#8217;t have too much access to the server.</li>
<li><em>etc..</em></li>
</ul>
<p>If you write all of this stuff down somewhere and tell your boss about it, you have a basic DR plan!  Go have a beer.</p>
<a name="3.+Building+Your+Kit"></a><h3>3. Building Your Kit</h3>
<p>Now that you are creating backups and thinking about our risks/responses, it&#8217;s time to build your <strong>Disaster Recovery Kit!</strong> Put this kit somewhere out of harm&#8217;s way, and have it handy in case you need it.  Here&#8217;s mine:</p>
<ol>
<li><strong>A camcorder bag</strong> &#8212; I like this, because it&#8217;s easy to carry and has a lot of compartments for all the stuff below:</li>
<li><strong>Operating System Boot discs </strong>&#8211; In my case, Ubuntu Server 8.04</li>
<li><strong>GParted Boot disc</strong> &#8212; For formatting and partitioning systems on-the-fly.</li>
<li><strong>Cables </strong>&#8211; Standard power cable and USB cable.</li>
<li><strong>Backup hard drives</strong> &#8212; Two.  They are my offsite copies of all our data.  I rotate them and keep them encrypted.</li>
<li><strong>Flash light </strong>&#8211; Small and compact, for poking around inside computers or navigating server rooms in the dark</li>
<li><strong>Thumb drive</strong> &#8212; Includes a backup of my server setup procedures/changelogs, systems passwords (in KeePass), and a bunch of portable apps.  Updated weekly.</li>
<li><strong>Printed copy of contact information for key stakeholders</strong> &#8212; My IT colleagues, clients, and my boss, so I can keep them updated.</li>
<li> <strong>Geek tool kit</strong> &#8211;  <a title="Belkin Basic Toolkit" href="http://spedr.com/3mv8z">Something like this</a>.  Includes screwdrivers, etc.</li>
<li><strong>External SATA Hard Disk Reader </strong>&#8211; Something<a title="StarTech USB SATA adapter" href="http://spedr.com/46suc"> small and compact</a>.  In case I need to rip a hard drive from a computer and get the data off quickly.</li>
<li><strong>A big sheet of paper that says <span style="color: #800000;">&#8220;<em>Don&#8217;t Panic</em>&#8220;</span></strong></li>
<li><strong>Music CD</strong> with high-energy power music on it.</li>
<li><strong>Energy supplement</strong> &#8212; Or a flask of whiskey, depending on how you roll.</li>
<li><strong>&#8220;Getting started&#8221; guide </strong>&#8211; A piece of paper, right on top, that explains briefly how to use the kit.</li>
<li><strong>Checklist</strong> &#8212; With all of these items on it, and with weekly DR Kit maintenance procedures.</li>
</ol>
<p>There, now I can sleep at night much better.  What&#8217;s in your DR Toolkit?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caseymclaughlin.com/2010/01/backups-and-disaster-recovery-kit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teaching PHP: Course Curriculum</title>
		<link>http://www.caseymclaughlin.com/2009/08/teaching-php-course-curriculum/</link>
		<comments>http://www.caseymclaughlin.com/2009/08/teaching-php-course-curriculum/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 20:11:31 +0000</pubDate>
		<dc:creator>McLaughlin Casey</dc:creator>
				<category><![CDATA[IT Management]]></category>
		<category><![CDATA[curriculum]]></category>
		<category><![CDATA[instruction]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[teaching]]></category>

		<guid isPermaLink="false">http://www.caseymclaughlin.com/?p=108</guid>
		<description><![CDATA[The problem, succinctly stated, is: How do you best organize 14 weeks of study to teach PHP to a group of motivated College students?]]></description>
			<content:encoded><![CDATA[<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.type=&amp;rft.format=text&amp;rft.title=Teaching PHP: Course Curriculum&amp;rft.source=Casey A. McLaughlin&amp;rft.date=2009-08-03&amp;rft.identifier=http://www.caseymclaughlin.com/2009/08/teaching-php-course-curriculum/&amp;rft.language=English&amp;rft.aulast=McLaughlin&amp;rft.aufirst=Casey&amp;rft.subject=IT Management"></span>
<p><a href="http://www.caseymclaughlin.com/wp-content/uploads/2009/08/php-sauce.jpg"><img class="alignright size-full wp-image-110" title="php-sauce" src="http://www.caseymclaughlin.com/wp-content/uploads/2009/08/php-sauce.jpg" alt="php-sauce" width="139" height="150" /></a>The problem, succinctly stated, is: <strong>How do you best organize 14 weeks of study to teach PHP to a group of motivated College students?</strong></p>
<p>I know they must be pretty motivated, because they&#8217;re signing up for the class despite the fact that it starts at 8 am.</p>
<p>This Fall, I will  be teaching a course in Web Application Development at FSU.  The topic will be server-side scripting, and the focus will be PHP.  Since I&#8217;ve taught this course before, developing the curriculum won&#8217;t take months, but I am nevertheless spending a fair amount of time updating and tweaking for the next go-around.</p>
<p><span id="more-108"></span></p>
<p>A quick <a title="Google Search for &quot;Teaching PHP&quot;" href="http://spedr.com/xyd0">Google Search for &#8220;Teaching PHP&#8221;</a> brings up only a few relevant links, mostly message board discussions.  &#8220;Server Side Scripting Curriculum&#8221; doesn&#8217;t return much either.  Likewise, <a title="WaSP Web Standards Project" href="http://interact.webstandards.org/">WaSP</a> have not yet published their recommended server-side scripting course recommendations.</p>
<p>So, I&#8217;ve had to come up with a lot of the course unilaterally.  The learning objectives are as follows:</p>
<p>By the end of the course, students will understand:</p>
<ul>
<li>Basic programming skills</li>
<li>Web application development principles</li>
<li>How to find and use PHP resources on the Internet</li>
<li>How to manage tasks, bugs, and revision control mechanisms for web projects</li>
</ul>
<p>By the completion of this course, students will be able to:</p>
<ul>
<li>Program and deploy simple scripts in PHP</li>
<li>Process web-based input and output in PHP</li>
<li>Build multi-file PHP applications</li>
<li>Connect PHP applications to a database</li>
<li>Design a simple dynamic website using PHP, MySQL, HTML, and CSS</li>
</ul>
<p>After a few iterations of course development, here are the topics I have planned to discuss, in order, thus far:</p>
<ul>
<li>The current &#8220;State of the Internet&#8221;</li>
<li>How the technology works &#8211; Web servers and clients</li>
<li>Eclipse setup and good  practices for personal workflow</li>
<li>PHP basics &#8211; Syntax, variables, arrays, functions, iterators, etc.</li>
<li>Form processing (GET/POST)</li>
<li>Database integration</li>
<li>Multi-file application organization</li>
<li>Classes and objects</li>
<li>MVC frameworks</li>
<li>Revision control and associated workflow</li>
<li>Basic management: Ticket and bug tracking</li>
<li>Web Services &#8211; SOAP and RPC</li>
<li>XML integration</li>
<li>Comprehensive application organization</li>
</ul>
<p>That&#8217;s <em>a lot</em> of information.  Fortunately the students will have object-oriented experience AND database experience.  So, we should be able to leap off the cliff quickly and into the world of iterators, encapsulation, and inheritance.</p>
<p>I&#8217;ll post the week-by-week calendar when I finalize it, which necessity dictates will be very soon.  Feel free to grab it and use it for your own courses, or <a title="Contact Me Form" href="http://www.caseymclaughlin.com/contact/">tell me</a> what I can improve on.</p>
<p><strong>UPDATE:</strong> The course calendar and other details are live online at <a title="LIS4368 Course Website" href="http://lis4368.cci.fsu.edu">http://lis4368.cci.fsu.edu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.caseymclaughlin.com/2009/08/teaching-php-course-curriculum/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

