<?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>Sam Hooker</title>
	<atom:link href="http://samhooker.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://samhooker.net</link>
	<description>Web Developer</description>
	<lastBuildDate>Thu, 13 Jun 2013 10:36:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Break Points</title>
		<link>http://samhooker.net/break-points/</link>
		<comments>http://samhooker.net/break-points/#comments</comments>
		<pubDate>Thu, 13 Jun 2013 10:36:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://samhooker.net/?p=470</guid>
		<description><![CDATA[There is a general acknowledgement among working humans that we all occasionally need to stop working.  Countless hours have been devoted to figuring out the proper amount of work one should perform, how much vacation one should take, and comparing different nations&#8217; standards. As a result, vacation is a well-understood topic.  Those 2+ weeks per [...]]]></description>
				<content:encoded><![CDATA[<p>There is a general acknowledgement among working humans that we all occasionally need to stop working.  Countless hours have been devoted to figuring out the proper amount of work one should perform, how much vacation one should take, and <a title="I'm moving to the UK." href="http://www.huffingtonpost.com/2013/03/13/vacation-policies_n_2812952.html">comparing different nations&#8217; standards</a>.</p>
<p>As a result, vacation is a well-understood topic.  Those 2+ weeks per year that most of us know and cherish really do a lot to reset our brains, reinvigorate our spirits, and generally remind us that there&#8217;s more to life than delivering goods and services in exchange for the means to purchase other goods and services.</p>
<p>The big void that vacation research has left us deals with the minor detail of the year&#8217;s other 50 weeks.  Most of us find ourselves, maybe 20 weeks after our last vacation, staring down the barrel of the next 30 and wondering how we&#8217;ll make it to vacation time again with some measure of sanity intact.</p>
<p>While it would be great to have two or three big vacations a year, most of us who missed out on that whole Ivy League thing are unlikely to  pull it off.  So we make it through the greater part of the year by virtue of minor distractions and lesser breaks from soul-crushing repetition.</p>
<p>For those of us working in per-project industries, one such lesser break is the <strong>break point</strong>.  Projects with short timelines are great, because they give us &#8220;quick wins,&#8221; and feelings of accomplishment.  Longer projects, on the other hand, can seem to drag on forever (and in terms of fixed-bid projects, are more likely to go over budget&#8230; but that&#8217;s a gripe for another article).</p>
<p>One of the biggest problems with long projects is <strong>the rut</strong>.  In our industry, developers who beat on the same body of work for long periods of time tend to lose sight of the overall scope of the project, get mired in the details, and become less productive overall because they don&#8217;t see any end in sight.  It&#8217;s depressing, and it hurts everybody &#8212; the developers, their bosses, the clients and their customers.</p>
<p>As previously noted, an extra jaunt to someplace tropical to &#8220;shake off the blues&#8221; isn&#8217;t really feasible in most cases.  While your developers are spinning their tires in the mud, other projects are piling up.  When is all of this work going to get done?</p>
<p>Well&#8230; how about <em>now</em>?</p>
<p>When going through the motions of ramping up a long project, explain to your client that you&#8217;ll need to build in a break point for you developers&#8217; morale (or, if you&#8217;re a freelancer, your own).  For example, if it&#8217;s a 10-week engagement, tell them that they won&#8217;t hear anything or receive any invoices for week 6.  You can give them lots of good reasons:</p>
<h2>Reasons Your Client Should Respect and Appreciate Your Break Points</h2>
<ol>
<li><span style="line-height: 13px;">You have other clients to manage, and you&#8217;d rather compartmentalize them than try to juggle them.</span></li>
<li>Giving your developers a week to reset their brains will make them more productive when they return to it.</li>
<li>You bill them the same amount per hour, whether that hour was 100% productive or 50% productive.</li>
<li>Designating down time in advance lowers the risk of it happening by emergency/accident and disrupting the schedule.</li>
<li>By keeping your backlog clear, you have more time available for your client if the project runs longer than expected, or if they have change requests.</li>
</ol>
<p>I recently completed a long project that seemed to drag on <em>forever</em>.  In the bug-fixing phase, I got mired in the monotony so badly that it required more time to summon the will to open the next ticket than to rewrite the two lines of code that would solve it.  Fortunately, my client handed me a site update that had a super-tight deadline and said &#8220;forget the big one, please knock this out for us!&#8221;</p>
<p>It took me a week, and it made all of the difference.  I got a feeling of accomplishment for the quick win, I got to work with a new and challenging problem, and when I went back to the long project, I wasn&#8217;t overwhelmed by it.  I was projecting another week to finish it, but I was done in 2 days.</p>
<p>In short, when a vacation is out of the question, briefly switching projects can make all the difference for your business, your developers&#8217; sanity and your relationship with your clients.</p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/break-points/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Hard Truth About Border Radius and IE8</title>
		<link>http://samhooker.net/the-hard-truth-about-border-radius-and-ie8/</link>
		<comments>http://samhooker.net/the-hard-truth-about-border-radius-and-ie8/#comments</comments>
		<pubDate>Mon, 13 May 2013 17:24:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://samhooker.net/?p=466</guid>
		<description><![CDATA[Don&#8217;t skip this paragraph: If you are currently trying to appease a client who insists on rounded corners in versions of Internet Explorer before 9, let&#8217;s rip off a BAND-AID® Brand Adhesive Bandage.  There is not a solid CSS or Javascript solution that&#8217;s going to help you.  Embrace the inevitable, open up Photoshop (or GIMP, if [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Don&#8217;t skip this paragraph: </strong>If you are currently trying to appease a client who insists on rounded corners in versions of Internet Explorer before 9, let&#8217;s rip off a BAND-AID® Brand Adhesive Bandage.  There is <strong>not</strong> a <em>solid</em> CSS or Javascript solution that&#8217;s going to help you.  Embrace the inevitable, open up Photoshop (or GIMP, if you&#8217;re not into the whole over-paying-for-software thing), and crank out some background images.  If you like what you&#8217;ve already got with <em>border-radius</em> in the better browsers, set those background images up in a conditional stylesheet, and you&#8217;re good to go.</p>
<p>Moving forward &#8212; and for all of your future projects &#8212; let&#8217;s start by accepting the fact that <strong>there is no magic bullet.</strong>  There are a couple of Hail Mary solutions out there that <em>can</em> work, but they&#8217;re not reliable.  The advice in this article is offered more in the spirit of a support group than that of a war council.  We&#8217;re not going to fight it, we&#8217;re going to talk about how we can accept the bitter truth and <em>move on</em>.</p>
<h2>The Problem</h2>
<p>In the early years of the last decade, web designers went to great lengths to put rounded corners on visual elements.  Then, with the first wave of CSS3 features, we got <em>border-radius</em> &#8212; a quick-and-easy magic bullet that rounded the corners of markup elements with a simple rule declaration.  <em>Brilliant!</em>  And there was much rejoicing for that which science had wrought.</p>
<p>But much to our chagrin, adoption was slow.  Slowest of all was Internet Explorer, the most widespread of all browsers, whose manufacturer gives its users negligible incentive or prodding to upgrade.  The most fearful and reactionary luddites cling tenaciously to their old versions, fiercely clinging to the ill-advised maxim &#8220;if it ain&#8217;t broke, don&#8217;t fix it!&#8221;</p>
<p>It&#8217;s broken, Grandpa.  Time to fix it.</p>
<p>The sad reality is that IE8, as of last month (April 2013), still holds a whopping 23.08% of <a href="http://www.netmarketshare.com/browser-market-share.aspx?qprid=2&amp;qpcustomd=0">worldwide desktop browser market share</a>.  While there&#8217;s a lot more you <em>should </em>consider when forecasting your viewer demographics, the hard truth for us as web professionals is that many clients don&#8217;t look any further than that.  They want to make sure everything works in IE8, and no amount of our frustration is too high a price.</p>
<h2>The Silver Lining</h2>
<p>Rounded corners are no longer en vogue.  Clean, simple design is &#8220;the new black&#8221;, and by the time that changes, I&#8217;m confident IE8 will have dipped below 8% market share, which is the magic number to appease most clients.</p>
<p>Still, many of our clients are going to want them.  And contrary to the high ideals of the &#8220;visionaries&#8221; who smugly retort that we should be better at convincing them why they <em>don&#8217;t</em> want it, it&#8217;s hard to pay the rent with our adherence to best practices if we argue too firmly with our clients.  So let&#8217;s have a strategy, shall we?</p>
<h2>The Hail Marys</h2>
<p>There are solutions like <a href="http://css3pie.com/">CSS3 PIE</a>, which relies on the CSS <em>behavior</em> attribute, or the <a href="https://github.com/malsup/corner">jQuery Corner Plugin</a>, which relies on Javascript.  These have limited success in very simple solutions, such as a single-color DIV with rounded corners on top of a white background, with no funny business.  I give all credit to their creators for giving it their best shot, and for making the strides that they were able to make (seriously, thank you).  But these are far from plug-and-play solutions, and they rarely work for me.  Give them a shot, respectfully contribute to the conversations, but don&#8217;t bet the farm on them.</p>
<h2>The Solution</h2>
<p>Start by looking at your client&#8217;s target demographic, then do some targeted searching to figure out what percentage of IE8 actually infects them.  Expecting you&#8217;ll get a lot of mobile visitors?  IE8 may not be as big a deal as you think.</p>
<p>Show them some examples of cool, contemporary sites with no rounded corners, if it&#8217;s early in the design process.  If they&#8217;re already committed to their PSDs, you may be out of luck &#8212; so move on to <em>The Negotiation</em>.</p>
<h2>The Negotiation</h2>
<p>Can you do rounded corners for old browsers?  Hell yeah, you can do it.  You&#8217;re old-school, you can roll up your sleeves and knock it out the hardy way&#8230; but it&#8217;s going to cost them.</p>
<p>Depending on the number of rounded elements you&#8217;re talking about, figure out how much graphical editing time you&#8217;re going to need, and drop it on top of the estimate.  If they <em>really</em> have to have it, a good designer will give it to them &#8212; and will be compensated accordingly.</p>
<p>Whether they balk at the price or not, you should point out that they can save everyone some time and financial distress by simply foregoing rounded corners on the browsers that don&#8217;t play nice with them.  If their luddite visitors are only looking at it in their old browsers anyway, they&#8217;re likely to not notice the difference (and if they <em>do</em>, maybe they can be convinced to upgrade).</p>
<h2>Final Thoughts</h2>
<p>I look forward to updating this article in a year or two.  I&#8217;ll be all like &#8220;Never mind, IE8 has 4% market share, your client shouldn&#8217;t care &#8212; but if they do, this guy made a solid magic bullet!&#8221;  Man, that&#8217;s gonna be <em>sweet.</em></p>
<p>But for now, in thes tumultuous days, the visionaries are half-right.  We should attempt to educate our clients, and make them want better sites; but when it becomes clear that they&#8217;re going to get the old-and-tired upon which they insist, give them what they want, and make them pay for it.  When they finally see the light, they&#8217;ll remember that you were right all along, and they&#8217;ll follow your lead on v2.0 of the site.</p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/the-hard-truth-about-border-radius-and-ie8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Detox, or How I Moved to Linux and Retained My Sanity</title>
		<link>http://samhooker.net/windows-detox-or-how-i-moved-to-linux-and-retained-my-sanity/</link>
		<comments>http://samhooker.net/windows-detox-or-how-i-moved-to-linux-and-retained-my-sanity/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 13:23:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://samhooker.net/?p=462</guid>
		<description><![CDATA[I recently decided to see if the grass is greener on the open-source side of the fence.  This long-time Windows thrall has gone Linux. Why Switch? There were several factors that I weighed in the decision.  Familiarity and a steady stream of deadline-dependent freelance work kept me in Windows for awhile, but here were the [...]]]></description>
				<content:encoded><![CDATA[<p>I recently decided to see if the grass is greener on the open-source side of the fence.  This long-time Windows thrall has gone Linux.</p>
<h2>Why Switch?</h2>
<p>There were several factors that I weighed in the decision.  Familiarity and a steady stream of deadline-dependent freelance work kept me in Windows for awhile, but here were the bits that finally convinced me to devote a weekend to the migration.</p>
<ol>
<li><span style="line-height: 13px;"><strong>Windows 8 is atrocious.</strong>  Sorry, I gave it as fair a try as humanly possible &#8212; but it&#8217;s an enormous resource hog, and the o<em>ne-UI-for-all-devices</em> paradigm resulted in a jumbled mess that&#8217;s just not intuitive.  Drop the mic, I&#8217;m out.<br />
</span></li>
<li><strong>Linux is free.</strong>  Now that I&#8217;m a freelancer, my budget cushion is considerably lower.  Paying for an OS doesn&#8217;t get me more features, nor does it make my work any easier.  To that end, this was a no-brainer.</li>
<li><strong>Bleeding edge development tools</strong><strong>.</strong>  I spent a lot of time playing with different tools in Windows to get things like syntax highlighting and compilation working for LessCSS.  With <a href="http://www.sublimetext.com/2">Sublime Text 2</a>, I just used the built-in plugin interface to add both automatically.  That&#8217;s right, <em>my text editor compiles LESS into CSS for me, practically out-of-the-box</em>.</li>
<li><strong>All of the cool kids are doing it.</strong>  Now that I&#8217;m a freelancer, everyone I partner with is using tools that are a pain in the ass to configure on Windows.  I was really tired of all the extra time I had to spend just getting ready to work!</li>
</ol>
<h2>The Hard Parts</h2>
<p>There were several things that made the switch very difficult &#8212; let&#8217;s not paint too rosy a picture.</p>
<ol>
<li><span style="line-height: 13px;"><strong>MS Office OneNote has no equal.</strong>  If I had to pick a single thing that Microsoft has done better than anyone else in the history of software, I would point to OneNote.  Hands down, it is the best note-taking software ever.  It may be dethroned one day, but in the here-and-now, this was the single biggest impediment to my decision to make the plunge.  I&#8217;m currently using the <a href="http://www.evernote.com">Evernote</a> web interface (because the <a href="http://sourceforge.net/projects/nevernote/">NixNote</a> port has too many problems); it gets the job done, but I miss my hotkeys!<br />
</span></li>
<li><strong>Photoshop doesn&#8217;t Linux.</strong> I may try to run it in <a href="http://www.winehq.org/">WINE</a>, but I haven&#8217;t had a need yet &#8212; I get paid more to code than to art these days.  I&#8217;ve been using Photoshop for over 10 years, but if I&#8217;m going to be a proper Linux guy, I should probably devote a weekend to <a href="http://www.gimp.org/">GIMP</a> tutorials.</li>
<li><strong>The command line learning curve.</strong>  I honestly had no idea how easy the Windows GUI tools had made my life for so long.  The command window has been pushed further out of view with each successive release of Windows since the demise of proper DOS.  This is not the case with Linux &#8212; prepare to use the terminal fairly regularly.  It&#8217;s not terribly difficult after a week or so, but it&#8217;s frustrating out of the gate.</li>
</ol>
<h2>How I Learned To Stop Debating and Love The Penguin</h2>
<p>One does not simply snap one&#8217;s fingers and become a Linux guy, and there&#8217;s no one right way to do it.  Here are the broad strokes of how I managed the shift.</p>
<ol>
<li><strong>Try Ubuntu.</strong>  There are scores of Linux distros out there, and picking the right one can be difficult.  Ubuntu is a great choice for Windows detoxers because it loads with a GUI and several tools that we find familiar.  You can also take it for a test drive with a <a href="http://www.ubuntu.com/download/desktop/try-ubuntu-before-you-install">Live CD or USB Stick</a>.  Ubuntu is well-documented, so Googling answers is a breeze.  It has lots of support, so you won&#8217;t be left without answers.</li>
<li><span style="line-height: 13px;"><strong>Dual Boot.</strong>  Sorry, this intrepid explorer kept one foot in the comfort zone.  Frankly, I work with too many different tools to be able to simply reformat my hard drive and go.  I can say that after a couple of weeks, I now only boot into Windows if I need Photoshop or something from OneNote.  If you do anything at a professional level with Windows, don&#8217;t go cold turkey.  <a href="http://lmgtfy.com/?q=dual+boot+windows+8+ubuntu">Want some help getting started?</a><br />
</span></li>
<li><strong>Don&#8217;t let the command line intimidate you.</strong>  You&#8217;ll pick it up as you go.  The noob forums are riddled with reassurances that <em>everyone</em> copies and pastes commands that they found through diligent Googling.  You can definitely search your way to success.</li>
</ol>
<h2>Command Line Tips for the Ubuntu Beginner</h2>
<p>This section is shamelessly intended to get me some search engine hits.  I need to be loved like everyone else.</p>
<ol>
<li><span style="line-height: 13px;"><strong>Ctrl+Alt+T opens the terminal.</strong>  You&#8217;ll use it often enough to commit this to memory.  It will make your life a lot easier, I promise.<br />
</span></li>
<li><strong>A new terminal&#8217;s location defaults to your Home folder.</strong>  See the <em>Other Tips</em> section for more info about the Home folder&#8217;s location.</li>
<li><strong>The almighty hammer&#8217;s name is &#8220;sudo.&#8221;</strong>  It&#8217;s a contraction for <em>Super User DO</em>, and it tells that OS that you mean business.  If any command results in an error telling you you have insufficient rights, try again with &#8220;sudo&#8221; at the beginning of the statement.  No wall can contain your sudo might!  <a href="http://xkcd.com/149/">See?</a><br />
<strong></strong></li>
<li><strong>Learn the syntax for apt-get.</strong> Linux&#8217; Advanced Packaging Tool (APT) is the best and easiest way to install most software on your machine.  Check out the <a href="https://help.ubuntu.com/community/AptGet/Howto">Getting Started</a> guide.  Of all the commands you&#8217;ll type, at least in the beginning, <em>sudo apt-get install [package-name]</em> will be one of the most common.</li>
<li><strong>Don&#8217;t paste in the &#8216;$&#8217; from the example.</strong>  The terminal prompt ends in a dollar sign, and is often included as an indicator in examples you&#8217;ll find via Google (or Bing, if you drank <em>that </em>much of the Microsoft Kool-Aid).</li>
<li><strong>&#8220;ls&#8221;</strong> <strong>to list the files in your current directory.</strong>  Like all terminal commands, there are a lot of arguments you can pass along with it.  type <em>ls &#8211;help</em> to see your options.</li>
<li><strong>&#8220;cd&#8221; to Change Directory.</strong>  A few extra notes here:
<ol>
<li>Typing <em>cd</em> with no arguments will return you to your Home folder.</li>
<li>Typing <em>cd ..</em> (space and 2 dots) will move you up one directory.</li>
<li>From the Home folder, typing <em>cd /dirname</em> will move you to <em>dirname </em>in the file system root (see file system structure notes under<em> Other Tips</em>).  The magic ingredients here are being in the Home directory and leading the file path after <em>cd </em>with a forward slash.</li>
<li>Tab to auto-complete.  Type the first letter of a directory in a <em>cd </em>statement, then hit Tab.  If it&#8217;s unique enough, the terminal will auto-complete the name of the directory.  For example, from the Home folder, type <em>cd /e</em> and hit tab, and the terminal will fill in the rest of the line to leave <em>cd /etc/</em> &#8212; you can then type the first letter of a subsequent folder and then hit tab again to continue going deeper into the directory (but if there is more than one directory that starts with that letter, you will need to type a bit more of the name you&#8217;re looking for) .  Note that this is case-sensitive.</li>
</ol>
</li>
<li><strong>Right-click to copy/paste in the Terminal.</strong>  Ctrl+C and Ctrl+V would be nice, but you can still manage it.</li>
</ol>
<h2>Other Tips</h2>
<ol>
<li><span style="line-height: 13px;"><strong>Chrome is called Chromium.</strong>  It&#8217;s the exact same browser, for all intents and purposes.  You can even import and sync all of your bookmarks from Chrome on Windows.<br />
</span></li>
<li><strong>Workspace switching hotkeys: Ctrl+Alt+[arrow].</strong>  You get 4 workspaces (alternate desktops) for free.  Not sure how Windows never latched onto this concept, or how I lived without it.</li>
<li><strong>Learn the basic file system structure.</strong>  Click on the Home Folder icon in the Launcher (bar ob the desktop with all of the icons) to get a Windows Explorer-esque interface for file browsing.  Note: No drive letters!
<ol>
<li>The <em>File System</em> link is the root of the drive that Linux is installed on.</li>
<li> The file browser automatically opens to your username&#8217;s <em>Home</em> folder.</li>
<li>The aforementioned <em>Home</em> folder from the file system root is found under <em>/home/[username]</em>.  When you open it, it the path will be listed as <em>/home/Home</em>.  Just remember it&#8217;s a relative path at that point &#8212; it confused me initially.</li>
</ol>
</li>
<li><strong>Search with the Dash Home button (top of the Launcher bar).</strong>  Installed a program and can&#8217;t find it?  Click Dash Home, then start typing the name of the program.  Voila.</li>
<li><strong>Add sources for non-canonical software.</strong>  The term &#8220;canonical&#8221; refers to the vast collection of software packages that have been vetted for safety and quality by The Powers That Be.  Generally, if the software you want to install is canonical, you just open a terminal and type <em>sudo apt-get install [package-name]</em>.  If you find a non-canonical package that you want to install, you&#8217;ll need to add it to your list of sources.  Click on Dash Home, type &#8220;sources&#8221; and click on Software Sources.  Add the source through the Other Sources tab.</li>
<li><strong>Alt+Tab works almost exactly the way you know and love.</strong>  Slightly better, in my opinion.  Give it a whirl.</li>
</ol>
<h2>The Benefits</h2>
<p>While the switch wasn&#8217;t exactly easy, I&#8217;d definitely say it was worth it.  Despite the loss of a couple of favorite programs &#8212; and in addition to my text editor compiling LESS into CSS for me with a few clicks &#8212; Linux has a lot to love.</p>
<ol>
<li><span style="line-height: 13px;"><strong>Painless updates for everything.</strong>  The Ubuntu Software updater streamlines the update processes for everything to a couple of clicks &#8212; in my opinion, this is the best part of the entire Linux paradigm.  I&#8217;ll never have to worry about updating my core and canonical software, or even the OS itself.<br />
</span></li>
<li><strong>Fast and responsive.</strong>  Since so much software is vetted and updated through canonical, the old <em>sign-in-to-Windows-and-go-grab-a-coffee-while-it-loads-all-of-the-startup-programs</em> time drain is dead.  I still need to tweak my BIOS to speed up the initial load a bit, but starting from the password prompt, it&#8217;s smooth sailing.</li>
<li><strong>Bleeding edge web development software.</strong>  This may be less attractive to some, but as a web developer, this has been an amazing couple of weeks.  If you want to run things like Ruby, Rails, MongoDB or Node.js on Windows, it can be done&#8230; but have fun jumping through the hoops.  All of the newest and shiniest have been born from Linux, and the ease of installation (and subsequent updates and add-ons) makes it apparent that if you&#8217;re pursuing a career in web development over the next 5 years or so, Linux is where you need to be.</li>
<li><strong>IT&#8217;S FREE.</strong>  That&#8217;s me on the mountain, shouting it down.  Sorry for waking you.</li>
<li><strong>Better networking.</strong>  I barely know where to check my IP address on this thing, because I never have any problems.  Networked printers?  No problem.  File sharing?  Easy.  Ubuntu has righteously conquered problems that Microsoft should be embarrassed they&#8217;re still dealing with.</li>
<li><strong>More OS control.</strong>  Again, there&#8217;s a bit of a learning curve with terminal commands; but once you know how to do it, altering the way the OS handles certain things <em>works reliably</em> &#8212; unlike things such as Windows file permissions, which don&#8217;t seem to make sense if you don&#8217;t have your A+ certification&#8230;</li>
<li><strong>SO many options!</strong>  Ubuntu ships with the Unity desktop environment, but you can switch to GNOME, KDE or others if you prefer.  Write code in Geany, Sublime Text, or any other IDE that you like (except Visual Studio, unless you want to run it in an emulator&#8230; which you can do).  The list is seemingly endless.  I have yet to find myself without an option to accomplish whatever I need.</li>
<li><strong>I understand 30% more <a href="http://xkcd.com/">XKCD</a> panels.</strong>  I don&#8217;t <em>care</em> if it&#8217;s not important to <em>you</em>, this is <em>my </em>blog.</li>
</ol>
<h2>Summary</h2>
<p>To make a long story short (too late), properly getting past the learning curve (and only <em>occasionally</em> having to boot into Windows) took a couple of weeks.  I would definitely say that it&#8217;s been worth it &#8212; I feel as comfortable with Ubuntu after 2 weeks as I did with Windows 8 after 6 months, and a lot less frustrated.  While Microsoft and Apple are fighting for market share with their expensive, proprietary operating systems, I&#8217;ll be with the cool kids, taking care of business.</p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/windows-detox-or-how-i-moved-to-linux-and-retained-my-sanity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Math is Hard is Surrender</title>
		<link>http://samhooker.net/math-is-hard-is-surrender/</link>
		<comments>http://samhooker.net/math-is-hard-is-surrender/#comments</comments>
		<pubDate>Tue, 12 Mar 2013 10:44:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Ethics]]></category>

		<guid isPermaLink="false">http://samhooker.net/?p=458</guid>
		<description><![CDATA[Some things are harder than others.  It&#8217;s harder to build a dugout canoe than to make a really good piece of toast.1  It&#8217;s harder to learn Chinese than to put your pants on.  It&#8217;s harder to split atoms, run a marathon or paint a self-portrait than it is to write an article about the relative [...]]]></description>
				<content:encoded><![CDATA[<p>Some things are harder than others.  It&#8217;s harder to build a dugout canoe than to make a really good piece of toast.<sup>1</sup>  It&#8217;s harder to learn Chinese than to put your pants on.  It&#8217;s harder to split atoms, run a marathon or paint a self-portrait than it is to write an article about the relative differences in difficulty between disparate activities.</p>
<p>When I was born, I was entirely unable to do math or play the guitar.  37 years later, I&#8217;m a pretty good guitar player.  I do not do math as well as I play the guitar.  Having tried both, I&#8217;d honestly say that doing math and playing the guitar are comparable in difficulty; I just spent more time with the guitar because I was more interested in it.</p>
<p>Sheepishly, I will admit to Googling<sup>2</sup> &#8220;mathematician&#8221; to learn about <a href="http://www.princeton.edu/admission/whatsdistinctive/facultyprofiles/wiles/">Andrew Wiles</a>, one of the world&#8217;s leading mathematicians.  I say &#8220;sheepishly&#8221; because I could probably name a dozen phenomenal guitar players in a single breath, without having to Google anything.  In my opinion, neither Andrew Wiles nor Zakk Wylde are less deserving of praise than the other &#8212; they are both masters of what they do, and those things are not easy.</p>
<p>When I was in school several hundred years ago, it was perfectly acceptable in my social circles to simply say &#8220;math is hard,&#8221; only try hard enough to get a passing grade, and play Metallica covers on my guitar.  I don&#8217;t regret having chosen guitar over math &#8212; it was more interesting to me, and I don&#8217;t feel that one is more important than the other.</p>
<p>The thing I do regret is my quick dismissal of math.  It&#8217;s no harder than guitar; in fact, there&#8217;s actually quite a bit of math involved in guitar theory, but that&#8217;s beside the point.  The point is that I had entirely the wrong attitude.  When I gave up on math because it was hard, I <em>gave up</em>.  I created a predetermined failure, and told myself that I was incapable of learning a difficult thing.</p>
<p>That&#8217;s crap!  I was learning guitar, wasn&#8217;t I?  And I didn&#8217;t have a teacher for that!  If I could go back in time and tell myself one thing, I&#8217;d straighten myself out on this whole &#8220;math is hard&#8221; thing.  It&#8217;s fine to make choices, but to tell yourself that you&#8217;re not doing something because it&#8217;s hard is tantamount to surrender.</p>
<p>&#8220;I&#8217;m not doing this because I don&#8217;t dig it.&#8221;  That&#8217;s what I meant.  There&#8217;s not a single child in a public school in the world who isn&#8217;t capable of graduating Summa Cum Laude with a degree in math from MIT if they dig math enough.</p>
<p>I&#8217;m really glad that computers are more ubiquitous now than they were 20 years ago, when I decided that <em>math is hard</em>.  Maybe it&#8217;ll be uncool to be a jock for awhile.  I apologize for my adolescent contributions to anti-intellectualism &#8212; maybe I&#8217;ll write a song about it as a penance.<sup>3</sup></p>
<hr />
<p><em>1. Apologies to those who have dedicated their lives to the art of toasting bread.  Yours is a venerable and respected art; but before you raise your voice, maybe try making a dugout canoe.</em></p>
<p><em>2. One day, I&#8217;ll have a company that gets its own verb &#8212; but probably not until my math improves.</em></p>
<p><em>3. With blistering 3-part, harmonized solos! If I can work out the math&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/math-is-hard-is-surrender/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Experience Manager</title>
		<link>http://samhooker.net/user-experience-manager/</link>
		<comments>http://samhooker.net/user-experience-manager/#comments</comments>
		<pubDate>Thu, 28 Feb 2013 16:45:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://samhooker.net/?p=453</guid>
		<description><![CDATA[I recently had lunch with a friend of mine here in Spain, who has created a position for himself in the development cycle, and I&#8217;m having trouble fathoming the fact that I&#8217;ve done without it thus far.  He&#8217;s a User Experience Manager (UXM), serving as a highly qualified and experienced buffer between the Project Manager and [...]]]></description>
				<content:encoded><![CDATA[<p>I recently had lunch with a friend of mine here in Spain, who has created a position for himself in the development cycle, and I&#8217;m having trouble fathoming the fact that I&#8217;ve done without it thus far.  He&#8217;s a <strong>User Experience Manager (UXM)</strong>, serving as a highly qualified and experienced buffer between the Project Manager and the Lead Developer.</p>
<p>In most development shops, any given project will be staffed with a few key roles:</p>
<ol>
<li><span style="line-height: 13px;">The <strong>Project Manager</strong> makes sure that the client gets the product they&#8217;re paying for, and makes sure the development team has what they need to get it done.</span></li>
<li>The <strong>Lead Developer</strong> Oversees the development team, and acts as a translator between the developers and the PM.</li>
<li>The <strong>Developers</strong> load up on caffeine and beat on their keyboards until the right code flies from them.  It&#8217;s magic, just trust them.</li>
</ol>
<p>The problem with this structure is the fact that the PM is expected to advocate for the client and the end user (or in other words, for the product itself).  One of two things happens all too often:</p>
<ol>
<li><span style="line-height: 13px;">The client has no idea how the UX should function, so advocating for the client means doing it the fastest, easiest and <em>cheapest</em> way possible.</span></li>
<li>The client has very specific &#8212; and very <em>bad</em> &#8212; ideas about the UX, prompting the PM to simply say &#8220;yes&#8221; to keep the client happy.</li>
</ol>
<p>Either way, the UI is doomed to suffer.  Thus the PM starts working with a conflict of interest.  If that&#8217;s not problematic enough, we often find that there&#8217;s not enough time in the work week for one person to handle both the client and the development team well &#8212; things are going to slip.</p>
<p>Enter the UXM.  The right person for this role will generally have several years served in the industry, having floated from role to role during their tenure.  In a soup-to-nuts operation, designers and developers have to collaborate to bring in the win, and only a person who has served in both of these capacities knows enough to effectively bridge them.</p>
<p>Entry-level designers are often artists, not <em>designers</em>.  They can deliver some truly amazing graphical assets, but they haven&#8217;t spent a lot of time thinking about how people use interfaces, so they work best within specific parameters handed down to them by a UXM.  The UXM is the advocate for the end user of the product, and is ultimately responsible for the thing making <em>sense</em>.</p>
<p>On the other side of the coin, development is a life-long discipline.  The right candidate for a UXM position probably isn&#8217;t a 100% capable developer, but they can grok enough to bridge the gaps and keep things moving.</p>
<p>The ideal team breakdown, in my humble opinion:</p>
<ol>
<li><span style="line-height: 13px;">The <strong>PM</strong> advocates for the client, sets schedules and delivery parameters, and makes sure benchmarks are hit.</span></li>
<li>The <strong>UXM</strong> advocates for the user, and facilitates communication between the designers, developers and the PM, and dumbs things down a bit for the PM.</li>
<li>The <strong>Lead Developer</strong> advocates for the development team, makes sure they&#8217;re all headed in the right direction, and dumbs things down a bit  for the UXM.</li>
<li>The <strong>Developers</strong> still do all of the real work.</li>
</ol>
<p>While I don&#8217;t generally support adding more cooks to the proverbial kitchen, this one just makes sense.  I don&#8217;t plan to find myself foxholed into managing <em>and</em> developing a large-scale project again, now that I know there&#8217;s a better way.</p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/user-experience-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Language Barrier</title>
		<link>http://samhooker.net/language-barrier/</link>
		<comments>http://samhooker.net/language-barrier/#comments</comments>
		<pubDate>Tue, 12 Feb 2013 12:54:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Spain]]></category>

		<guid isPermaLink="false">http://samhooker.net/?p=449</guid>
		<description><![CDATA[I moved to Spain about 6 months ago, and I love living in Madrid.  I only really started learning how to speak Spanish a few months before I got here, and it&#8217;s been challenging, but I&#8217;ve managed to stumble my way through life here. When I was living in the US (mostly in Texas &#8212; [...]]]></description>
				<content:encoded><![CDATA[<p>I moved to Spain about 6 months ago, and I love living in Madrid.  I only really started learning how to speak Spanish a few months before I got here, and it&#8217;s been challenging, but I&#8217;ve managed to stumble my way through life here.</p>
<p>When I was living in the US (mostly in Texas &#8212; you&#8217;d think my Spanish would be better), I would occasionally come into contact with people who didn&#8217;t speak much English.  I often wondered not only how they managed to get through what I considered very simple day-to-day interactions, but also how I could most easily interact with them.  Now that I&#8217;m on the other side of the issue, I have some insight into feeling your way through a foreign language.</p>
<h2>Repeat Slowly and Distinctly</h2>
<p>This is probably the most important thing that you can do to help someone understand you.  One of the biggest problems with starting to communicate in a different language is understanding the words that people speak.  It often happens that I know the words that people are using, but I&#8217;m unable to recognize them due to three major factors: <strong>accents</strong>, <strong>slang</strong>, and <strong>mumbling</strong>.</p>
<p>As the foreigner, the first two are my problem, and they just take some getting used to.  That being said, I certainly appreciate it when people explain what slang words and phrases mean, as some of them aren&#8217;t very intuitive.</p>
<p>Mumbling, on the other hand, is a bad habit for any speaker of any language.  It&#8217;s often hard enough to understand a mumbler in your primary language!  It&#8217;s difficult for someone who&#8217;s new to your language to piece an idea together from a few key words that they picked out of a mumbled mess.  You&#8217;re more likely to be understood if you speak clearly.</p>
<p>When conversing in your primary language, you can listen more passively.  In a foreign language, your brain has to actively translate words.  By speaking slowly, you give your listener more time to actively translate what you&#8217;re saying in their head, and they have to make fewer choices between translating what you just said and listening to the next thing you say.</p>
<h2>Let Them Try</h2>
<p>Madrid is a very international city, and a lot of people here speak English as well as I speak Spanish.  While I appreciate that they can quickly switch to English to accommodate me, they wouldn&#8217;t have to if I got more practice!</p>
<p>If you happen to speak the primary language of a foreign speaker, resist the urge to &#8220;help&#8221; them by switching to their language.  It&#8217;s gratifying to be able to show your linguistic diversity and talents, but if the foreign speaker is willing to try to adapt to the culture, it&#8217;s better to use the language of the place where you currently are.</p>
<p>Of course, if they&#8217;re totally lost, you can certainly help them out.  It&#8217;s best to throw a few keywords of their language into yours at first, to see if a little push is all that they need.</p>
<h2>Use Core Words</h2>
<p>Most language-learning systems (such as Rosetta Stone or Pimsleur) will concentrate on the most common and useful words in that language, quickly enabling students to communicate in a variety of situations.  For example, verbs like <em>to be</em>, <em>to speak</em> or <em>to see</em> are more commonly understood by foreign speakers than <em>to re-evaluate</em>, <em>to ascertain</em> or <em>to acquiesce</em>.</p>
<p>If a foreign speaker has trouble understanding a complex sentence, try rephrasing it using simpler, more common words.  While I generally refrain from using Wikipedia as a source, you can use <a title="Most Common Words in English" href="http://en.wikipedia.org/wiki/Most_common_words_in_English">this page</a> to get an idea of the kinds of words foreigners are more likely to understand.</p>
<h2>Offer Minimal Corrections</h2>
<p>The most important function of speaking another language is the communication of ideas.  As long as the message received by the listener accurately reflects the idea that the speaker is trying to convey, the communication was successful.</p>
<p>Foreign speakers often misplace or misuse words, but if the misuse is minor, it&#8217;s generally best to let it go.  Every language has a lot of nuance, and it&#8217;s difficult to cram all if that nuance into one&#8217;s head at once.  Over a long period of time, the foreign speaker will pick up nuances and their use of the language will improve; if they&#8217;re only using the language for a short period of time, they won&#8217;t remember it anyway.</p>
<p>If, for example, a foreign speaker says &#8220;I will meet you <em>of</em> dinner tonight,&#8221; as long as you both know what he meant, it&#8217;s best just to leave it alone.  On the other hand, if the speaker instead says &#8220;I will meet you for <em>murder</em> tonight,&#8221; they&#8217;re likely to get into trouble at some point in the future!  A correction at this point is appropriate.<em><br />
</em></p>
<h2>Be Patient</h2>
<p>Above all else, just have a little bit of patience.  Most foreign speakers are sincerely trying to adapt, and every successful conversation in their new language helps them adapt and build confidence.</p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/language-barrier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The New Tech Resume</title>
		<link>http://samhooker.net/the-new-tech-resume/</link>
		<comments>http://samhooker.net/the-new-tech-resume/#comments</comments>
		<pubDate>Wed, 06 Feb 2013 12:51:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://localhost:1975/?p=444</guid>
		<description><![CDATA[The correct way to write a resume has changed a lot over the years, and the tech industry has its own set of flaming hoops to jump through.  With a little bit of extra effort, the hoop-jumping can be relatively burn-free. I wrote an article a couple of years ago (What (not) to put on [...]]]></description>
				<content:encoded><![CDATA[<p>The correct way to write a resume has changed a lot over the years, and the tech industry has its own set of flaming hoops to jump through.  With a little bit of extra effort, the hoop-jumping can be relatively burn-free.</p>
<p>I wrote an article a couple of years ago (<a href="http://localhost:1975/what-not-to-put-on-your-resume/">What (not) to put on your resume</a>) based on my experiences from the hiring end of things.  The target was new grads entering the industry, and there were 3 core ideas:</p>
<ol>
<li><span style="line-height: 13px;"><strong>Don&#8217;t shotgun your resume.</strong>  You&#8217;re wasting your time and someone else&#8217;s when you apply for a job you&#8217;re not qualified to do.<br />
</span></li>
<li><strong>Waiting tables is just waiting tables.</strong>  Don&#8217;t over-explain or embellish the work you&#8217;ve done.</li>
<li><strong>Don&#8217;t inflate your title.</strong>  Work for a small business that lets you pick your title?  Neat!  Still, keep it realistic.</li>
</ol>
<p>These rules hold true for everyone, newbies and veterans alike.  There are also a few cross-industry rules that we should all keep in mind as well:</p>
<ol>
<li><strong>One page only.</strong>  Keep your print resume lean and targeted.  Put more info on your website or <a href="http://www.linkedin.com">LinkedIn</a> page, they&#8217;ll look if they want.</li>
<li><strong>Use proper channels.</strong> Don&#8217;t try to circumvent their hiring system and send your resume straight to the boss.  It shows that you can&#8217;t follow simple directions.</li>
<li><strong>Tailored objectives. </strong> Edit the <em>Objective</em> section of your resume for each application, and do the same for your cover letter.</li>
<li><strong>Add references.</strong>  Any good company will want to check, so offer at least two people with whom you&#8217;ve worked before (not your friends or relatives, newbies).</li>
</ol>
<p>Oh, and a <strong>pro tip:</strong>  Talk to your references before you use them.  Make sure they agree to being a reference for you, and give them an idea of how you&#8217;d like to be represented.</p>
<p>In addition, I&#8217;ve done some research lately to help me market myself a bit more effectively, and I found some new advice that&#8217;s specific to getting work in the tech industry.</p>
<h2>Skills First</h2>
<p>If you follow the standard resume format, your skills will probably wind up at the bottom of your resume.  In the tech industry &#8212; especially if you&#8217;re working with a recruiter &#8212; the people who read resumes tend to skim for keywords that are specific to the job in question.  If you&#8217;re applying for a job that requires experience with WinForms development and &#8220;WinForms&#8221; is not in a prominent place on your resume, it&#8217;s doubtful you&#8217;ll gain more than a passing glance.</p>
<p>By putting your skills at the top of the page, it&#8217;s more likely you&#8217;ll survive the skim and at least have someone read your resume.</p>
<h2>Focus on Format</h2>
<p>Think of your qualifications as more than a piece of paper that you hand to a potential employer.  The data and meta-data that describe your work and experience are only meaningful when reviewed in a <strong>context</strong>, and it&#8217;s your responsibility to showcase yourself appropriately in different contexts.</p>
<p>Once such context is the print resume.  When viewing your print resume, an employer or recruiter wants to see that you have the skill set associated with the position they are trying to fill.  If you have multiple skill sets, you&#8217;ll want to have multiple resumes.  For example, my developer resume doesn&#8217;t say anything about my management experience.  I have a separate resume that I can use if I&#8217;m applying for work as a manager.  If a job happens to demand both, I would send the one that is most relevant, and mention the other in my cover letter or resume objective.</p>
<p>What about non-print resumes?  Your LinkedIn profile is another important context, and should have your updated work history as well.  While sites like this allow you to simply copy/paste your resume, you should take the time to fill it out their way.  It makes your data more searchable for employers and recruiters, and shows that you care enough to do things properly.</p>
<p>The same applies to companies that have HR sites, which ask you to fill out a profile.  When given the choice to fill out the form or copy/paste, always fill out the form.</p>
<h2>Show the Proof</h2>
<p>There&#8217;s no end to the rumors that you can fake your way to a great job.  You&#8217;ve probably heard, from a friend or relative, that they know someone who pretended to know something in an interview, studied up really quickly, and conned their way into a 6-figure salary.  I can promise you nothing but disappointment if this is your strategy.</p>
<p><em>As much as it pains me to break it to you, you&#8217;re actually going to have to know what you&#8217;re doing.</em></p>
<p>If you&#8217;re fortunate enough to have a catalog of demonstrable work, such as publicly-accessible websites that look and function really well, make a portfolio.  You don&#8217;t even need to launch a whole website &#8212; there are plenty of services like <a href="http://www.behance.net">Behance</a> and <a href="http://dribbble.com">Dribbble</a> that can have you up and running in an hour or two.  Don&#8217;t forget that you can showcase things other than finished work, such as concept art, code snippets, etc.</p>
<p>If you&#8217;re not able to showcase your work at the moment, keep the concept in mind and resolve to put a portfolio together in the future.  For now, make sure you&#8217;ve got all of your social media profiles updated (especially LinkedIn) and be ready for potential employers to test you.  It&#8217;s not uncommon for development shops to put candidates through test exercises to make sure they&#8217;re hiring someone who groks the core concepts.</p>
<p>The more you know what you&#8217;re doing, and the more you can prove it, the better your chances will be &#8212; both in terms of making it to the interview and landing the job.</p>
<p>Good luck, and happy hunting!</p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/the-new-tech-resume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metro Color Codes for LessCSS</title>
		<link>http://samhooker.net/metro-color-codes-for-lesscss/</link>
		<comments>http://samhooker.net/metro-color-codes-for-lesscss/#comments</comments>
		<pubDate>Tue, 05 Feb 2013 17:18:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://localhost:1975/?p=442</guid>
		<description><![CDATA[Especially during my work with FrogSlayer, I often found myself employing Microsoft&#8217;s Metro color scheme on the web.  I most recently used it in the re-theming of this site &#8212; it&#8217;s a bright and engaging scheme, and it works very well as an accent palette on an otherwise greyscale site. Anyone who&#8217;s discussed CSS with me in [...]]]></description>
				<content:encoded><![CDATA[<p>Especially during my work with FrogSlayer, I often found myself employing Microsoft&#8217;s Metro color scheme on the web.  I most recently used it in the re-theming of this site &#8212; it&#8217;s a bright and engaging scheme, and it works very well as an accent palette on an otherwise greyscale site.</p>
<p>Anyone who&#8217;s discussed CSS with me in the past year or two knows I use <a href="http://lesscss.org">LessCSS</a> on every site that I can (including this one), because of all of the extra functionality it offers (not to mention cutting down on the sheer amount of code I have to write).</p>
<p>I mention these two concepts together because I wanted to share the boilerplate color declarations I&#8217;ve been using to bring the Metro palette to my .less files.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Metro Colors */</span>
<span style="color: #a1a100;">@metroPurple: #a200ff;</span>
<span style="color: #a1a100;">@metroMagenta: #ff0097;</span>
<span style="color: #a1a100;">@metroTeal: #00aba9;</span>
<span style="color: #a1a100;">@metroLime: #8cbf26;</span>
<span style="color: #a1a100;">@metroBrown: #a05000;</span>
<span style="color: #a1a100;">@metroPink: #e671b8;</span>
<span style="color: #a1a100;">@metroOrange: #f09609;</span>
<span style="color: #a1a100;">@metroBlue: #1ba1e2;</span>
<span style="color: #a1a100;">@metroRed: #e51400;</span>
<span style="color: #a1a100;">@metroGreen: #339933;</span></pre></td></tr></table></div>

<p>If ever the two should meet on your site, I&#8217;ll take all the credit for doing this 3 minutes of work for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/metro-color-codes-for-lesscss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Malware detected on your WordPress site?</title>
		<link>http://samhooker.net/malware-detected-on-your-wordpress-site/</link>
		<comments>http://samhooker.net/malware-detected-on-your-wordpress-site/#comments</comments>
		<pubDate>Fri, 19 Oct 2012 10:44:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Deployment]]></category>

		<guid isPermaLink="false">http://www.samhooker.net/?p=329</guid>
		<description><![CDATA[I recently helped some friends of mine with a problem.  When visiting their site, their visitors got a Malware Detected! page, which is usually the last thing that you&#8217;d like prospective clients to see on your site.  If this has happened to you, here are the steps that I took to clean the site.Basically, someone hacked [...]]]></description>
				<content:encoded><![CDATA[<p>I recently helped some friends of mine with a problem.  When visiting their site, their visitors got a <strong>Malware Detected!</strong> page, which is usually the last thing that you&#8217;d like prospective clients to see on your site.  If this has happened to you, here are the steps that I took to clean the site.<span id="more-329"></span>Basically, someone hacked the site and dropped a big block at the top of every PHP file that looks like this:</p>
<div></div>
<div><em>&lt;?php /**/ eval(base64_decode(&#8220;<strong>hugeString<wbr>OfCharacters</wbr></strong>&#8220;));?&gt;</em><br clear="all" /><br />
The <em><strong>hugeString<wbr>OfCharacters</wbr></strong></em><em> </em>is basically encoded nastiness, which the <em>eval</em> function unleashes on your visitors.  Google will blacklist you in order to reduce the number of people who will be infected, and destroy any SEO work you&#8217;ve done.  Cool, right?</div>
<div></div>
<div>The answer is to remove the big <em>eval </em>block at the top of every file.  When you consider all of the plugins and core WP files, this is a major pain in the ass.  Here&#8217;s how I fixed it on my friends&#8217; site:</div>
<div>
<ol>
<li>Grab a copy of the following:
<ol>
<li>The custom theme</li>
<li>Any custom plugins you wrote</li>
<li>Any custom files you wrote in the root directory for the site</li>
<li>The <em>wp-config.php</em> file from the root directory for the site</li>
</ol>
</li>
<li>A list of all of the installed (non-custom) plugins</li>
<li>Download a fresh copy of WordPress from <a href="http://wordpress.org/" target="_blank">wordpress.org</a></li>
<li>Download fresh copies of all of the non-custom plugins</li>
<li>On the server, delete the <em>wp-admin</em> and <em>wp-includes</em> directories, as well as all of the WordPress-related files in the root directory (same level as the aforementioned directories).  Use your fresh copy of WordPress as a reference, if you have trouble identifying the files.</li>
<li>In the <em>wp-content</em> directory, delete everything but the <em>uploads</em> directory.</li>
<li>Upload the fresh copy of WordPress into the root directory for the site.  There should be no duplicates, but tell it to overwrite if it finds any.</li>
<li>Upload the fresh copies of the non-custom plugins.</li>
<li>Go through all of the PHP files in the stuff you downloaded in the first step.  Open the files, delete the big <em>eval</em> block, and save the files.</li>
<li>Put the cleaned files back into their original locations on the server.</li>
</ol>
<div>Once you&#8217;re all done, scan the site at <a href="http://sitecheck.sucuri.net/scanner/" target="_blank">http://sitecheck.sucuri.<wbr>net/scanner</wbr></a>.  You may have to do it 2-3 times to get past any cached checks they may have.  If you do the above steps correctly, the only problem you should see is the Google blacklist &#8212; that means the site is clean, you just have to get Google to re-check it (which is a part that I haven&#8217;t done, so best of luck!).</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/malware-detected-on-your-wordpress-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Definition: Project Manager</title>
		<link>http://samhooker.net/definition-project-manager/</link>
		<comments>http://samhooker.net/definition-project-manager/#comments</comments>
		<pubDate>Mon, 20 Aug 2012 14:40:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.samhooker.net/?p=324</guid>
		<description><![CDATA[It doesn&#8217;t take a genius to be a project manager.  It&#8217;s okay for me to say that, because I am a project manager. Generally speaking, there are only a few requirements to effectively manage a project: A basic understanding of the work to be done&#8230; you don&#8217;t have to know how to do it, just [...]]]></description>
				<content:encoded><![CDATA[<p>It doesn&#8217;t take a genius to be a project manager.  It&#8217;s okay for me to say that, because I am a project manager.</p>
<p>Generally speaking, there are only a few requirements to effectively manage a project:</p>
<ul>
<li>A basic understanding of the work to be done&#8230; you don&#8217;t have to know how to do it, just enough to talk about it.</li>
<li>The ability to compose an email well.</li>
<li>Contact information for the people who can answer your questions.</li>
</ul>
<p>That&#8217;s it.  <strong>A project manager is a 2-way funnel for information.  S/he passes instructions to developers, passes updates to clients, and manages expectations all around.</strong>  A good PM will play an active role in the completion of a project by assuring quick turn-around time for requests between the client and the developers, and will not add any requirements to the process.</p>
<p>That second bit is the real differentiator between a PM and a Middle Man.  Where a Project Manager facilitates the efficient exchange of information, a Middle Man requires extra attention from both the developers and the client.</p>
<p>For example, a PM may have a spreadsheet to track the progress of several individual tasks.  He keeps his ear the the ground, updates the sheet as necessary, and uses it to deliver qualitative information to the client (i.e., &#8220;We&#8217;re done with the contact form ahead of schedule, so you can start testing it.&#8221;)</p>
<p>A Middle Man will have the same, but asks the developers to update it, then simply emails the sheet to the client so they can review the raw data and draw their own conclusions.  If the MM wasn&#8217;t there, the developer could email updates directly to the client &#8212; the MM adds no value to the process, only occupies space in it.</p>
<p>The PM reduces distractions on both ends, so the both the developers and the client can focus on the things that they are primarily employed to do.</p>
<p>So if you <em>are</em> a PM, make sure you&#8217;re adding to the process &#8212; not just being a Middle Man.</p>
<p>If the project on which you&#8217;re working <em>has</em> a PM, make sure you use them as a filter; if not, you&#8217;re doing extra work for no good reason &#8212; not to mention forcing them to play catch-up, when they find out they weren&#8217;t kept in the loop.</p>
]]></content:encoded>
			<wfw:commentRss>http://samhooker.net/definition-project-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
