<?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>David Orlo .com</title>
	<atom:link href="http://www.davidorlo.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.davidorlo.com</link>
	<description>Read-Learn-Create-Make-Build</description>
	<lastBuildDate>Sun, 19 Feb 2012 04:40:59 +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>iMac 2006 Core Duo to Core 2 Duo, Memory, Hard Drive Upgrade</title>
		<link>http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade</link>
		<comments>http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade#comments</comments>
		<pubDate>Sun, 19 Feb 2012 04:40:35 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[~Site Updates~]]></category>
		<category><![CDATA[Hard Drive]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[laptop]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1793</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/iMac-150x150.jpg" class="alignleft tfe wp-post-image" alt="iMac" title="iMac" />Yes you can upgrade a weak old Core Duo iMac into a decent performing modern machine that will support the latest Mac OS and if your interested, allow you to program for the iPhone and iPad. Note: this isn&#8217;t for the faint hearted and later when I have more time I will revise this posting [...]
Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/mods-guides/upgrade-you-brand-name-pc-or-laptop' rel='bookmark' title='Upgrade your OEM Laptop or Desktop'>Upgrade your OEM Laptop or Desktop</a> <small>You have an HP, Compaq, Dell, or a less known...</small></li>
<li><a href='http://www.davidorlo.com/articles/mods-guides/upgrade-zt-ms-16362-to-4gb-of-ram' rel='bookmark' title='Upgrade ZT MS-16362 to 4GB of RAM'>Upgrade ZT MS-16362 to 4GB of RAM</a> <small>This is a quick litle guide on upgrading a ZT...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Yes you can upgrade a weak old Core Duo iMac into a decent performing modern machine that will support the latest Mac OS and if your interested, allow you to program for the iPhone and iPad.</p>
<p>Note: this isn&#8217;t for the faint hearted and later when I have more time I will revise this posting with more detail and I will break out the images from the gallery or add captions to the gallery photos to give a better understanding of what is going on in each photo.</p>
<p>The first thing you need to do it open up the iMac, I really wish I would have read how to do this before attempting it on my own because there are two metal levers inside of the front bezel which you need to press to allow the bezel to release. I thought it was just being stubborn and since the metal is so thin I ended up bending it and eventually had to remove the metal framework to get the bezel to fit flush. This is the only thing that holds the top half of the bezel to the iMac so if you pull on the top near the webcam you will see it separate from the case.</p>
<p>After you remove the front bezel and place it to the side you will need to work on the LCD but first carefully remove the black heat-shield which is made up of a paper foil type of material. This stuff is very important and if it&#8217;s not replaced in the fashion it was removed you will likely damage one part or more from overheating. I have seen screens damaged and power supplies fail when this stuff isn&#8217;t replaced because not only does it block heat from reaching specific components but it also redirects the hot air up and out the back vents.</p>
<p>Once this is all done and you have removed the LCD and placed to the side safely you can work on getting the main board out, if your only upgrading your hard drive you can stop here and swap it out. The processor is on the back of the main board so you will need to completely remove it from the case but don&#8217;t worry the worst is behind you at this point and removing the main board is actually quite easy. When the heat-sink is removed you will see the main CPU and GPU on the back of the board, removing the CPU from the socket is no different from removing it from a common laptop socket. You can replace the CPU with any Core Duo or Core 2 Duo which runs on the same FSB (Front Side Bus) as the stock piece. Unfortunately even after replacing the CPU with a true 64bit Core 2 Duo the iMac will still run in 32 bit mode and there is no way to force it into 64 bit mode. This is a problem because it limits the memory so don&#8217;t bother buying 8GB of ram because the system wont even boot. In fact if memory serves me correctly the max was a measly 2GB. One thing that was really deceiving is when I installed a 2GB stick in the system it booted up just fine, normally this means that the system will take 4GB because the only time you will see a maximum memory limit that applies to either a single slot or dual slots is when it&#8217;s imposed in the BIOS or in this case the UEFI. I know this because the chipset used on the board does in fact support 4GB of memory and if one slot will boot with a 2GB stick than that means the max is the maximum of each slot combined unless there is a limit imposed somewhere else. Shame on Apple for never releasing an update to fix this, but one thing you can count on Apple for is figuring out a way to make the old products useless to force users into buying the new products. In all the big brands that I know of, Apple is the #1 offender of this practice.</p>
<p>OK so now that we have the CPU and hard drive upgraded the last thing is to put it all back together the way it came apart and install the memory, boot it up, cross fingers.</p>

<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0143' title='IMG_0143'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0143-150x150.jpg" class="attachment-thumbnail" alt="IMG_0143" title="IMG_0143" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0145' title='IMG_0145'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0145-150x150.jpg" class="attachment-thumbnail" alt="IMG_0145" title="IMG_0145" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0146' title='IMG_0146'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0146-150x150.jpg" class="attachment-thumbnail" alt="IMG_0146" title="IMG_0146" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0147' title='IMG_0147'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0147-150x150.jpg" class="attachment-thumbnail" alt="IMG_0147" title="IMG_0147" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0148' title='IMG_0148'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0148-150x150.jpg" class="attachment-thumbnail" alt="IMG_0148" title="IMG_0148" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0150' title='IMG_0150'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0150-150x150.jpg" class="attachment-thumbnail" alt="IMG_0150" title="IMG_0150" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0151' title='IMG_0151'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0151-150x150.jpg" class="attachment-thumbnail" alt="IMG_0151" title="IMG_0151" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0153' title='IMG_0153'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0153-150x150.jpg" class="attachment-thumbnail" alt="IMG_0153" title="IMG_0153" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0154' title='IMG_0154'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0154-150x150.jpg" class="attachment-thumbnail" alt="IMG_0154" title="IMG_0154" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0155' title='IMG_0155'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0155-150x150.jpg" class="attachment-thumbnail" alt="IMG_0155" title="IMG_0155" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0156' title='IMG_0156'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0156-150x150.jpg" class="attachment-thumbnail" alt="IMG_0156" title="IMG_0156" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0157' title='IMG_0157'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0157-150x150.jpg" class="attachment-thumbnail" alt="IMG_0157" title="IMG_0157" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0158' title='IMG_0158'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0158-150x150.jpg" class="attachment-thumbnail" alt="IMG_0158" title="IMG_0158" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0159' title='IMG_0159'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0159-150x150.jpg" class="attachment-thumbnail" alt="IMG_0159" title="IMG_0159" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0160' title='IMG_0160'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0160-150x150.jpg" class="attachment-thumbnail" alt="IMG_0160" title="IMG_0160" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0161' title='IMG_0161'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0161-150x150.jpg" class="attachment-thumbnail" alt="IMG_0161" title="IMG_0161" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0162' title='IMG_0162'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0162-150x150.jpg" class="attachment-thumbnail" alt="IMG_0162" title="IMG_0162" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0163' title='IMG_0163'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0163-150x150.jpg" class="attachment-thumbnail" alt="IMG_0163" title="IMG_0163" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/img_0164' title='IMG_0164'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/IMG_0164-150x150.jpg" class="attachment-thumbnail" alt="IMG_0164" title="IMG_0164" /></a>
<a href='http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/attachment/imac' title='iMac'><img width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/iMac-150x150.jpg" class="attachment-thumbnail" alt="iMac" title="iMac" /></a>

<p>Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/mods-guides/upgrade-you-brand-name-pc-or-laptop' rel='bookmark' title='Upgrade your OEM Laptop or Desktop'>Upgrade your OEM Laptop or Desktop</a> <small>You have an HP, Compaq, Dell, or a less known...</small></li>
<li><a href='http://www.davidorlo.com/articles/mods-guides/upgrade-zt-ms-16362-to-4gb-of-ram' rel='bookmark' title='Upgrade ZT MS-16362 to 4GB of RAM'>Upgrade ZT MS-16362 to 4GB of RAM</a> <small>This is a quick litle guide on upgrading a ZT...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/site-updates/imac-2006-core-duo-to-core-2-duo-memory-hard-drive-upgrade/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress prompts for FTP credentials when trying to update plugins and themes</title>
		<link>http://www.davidorlo.com/articles/wordpress/wordpress-prompts-for-ftp-credentials-when-trying-to-update-plugins-and-themes</link>
		<comments>http://www.davidorlo.com/articles/wordpress/wordpress-prompts-for-ftp-credentials-when-trying-to-update-plugins-and-themes#comments</comments>
		<pubDate>Thu, 16 Feb 2012 18:55:31 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1751</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/Wordpress-Inside-150x150.png" class="alignleft tfe wp-post-image" alt="Wordpress-Inside" title="Wordpress-Inside" />There is a simple fix for this annoying prompt and I will cut to the short of it. FTP to your WordPress installation directory and copy the wp-config.php to your local machine. Open the file in your favorite editor and paste the following code right into the file near the top or bottom it doesn&#8217;t matter [...]
Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/wordpress/wordpress-show-posts-from-specific-categories-on-homepage' rel='bookmark' title='WordPress &#8211; Show Posts from Specific Categories on Homepage'>WordPress &#8211; Show Posts from Specific Categories on Homepage</a> <small>This post will explain the proceedure to show posts only...</small></li>
<li><a href='http://www.davidorlo.com/articles/wordpress/wordpress-sticky-a-post-on-the-homepage' rel='bookmark' title='WordPress &#8211; Sticky a Post on the Homepage'>WordPress &#8211; Sticky a Post on the Homepage</a> <small>I will explain how to keep a post on the...</small></li>
<li><a href='http://www.davidorlo.com/articles/wordpress/wordpress-show-post-excerpts-thumbnails' rel='bookmark' title='WordPress show Post Excerpts + Thumbnails'>WordPress show Post Excerpts + Thumbnails</a> <small>This article will show you a couple methods for showing...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>There is a simple fix for this annoying prompt and I will cut to the short of it. FTP to your WordPress installation directory and copy the wp-config.php to your local machine. Open the file in your favorite editor and paste the following code right into the file near the top or bottom it doesn&#8217;t matter which.</p>
<pre class="brush: php; title: ; notranslate">//*Wordpress FTP Update Credentials*
define('FTP_HOST', 'ftp.yourhostname.com');
define('FTP_USER', 'FTP_Username');
define('FTP_PASS', 'FTP_password');
//*If you want to use FTP set to true*
define('FTP_SSL', false);</pre>
<p>Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/wordpress/wordpress-show-posts-from-specific-categories-on-homepage' rel='bookmark' title='WordPress &#8211; Show Posts from Specific Categories on Homepage'>WordPress &#8211; Show Posts from Specific Categories on Homepage</a> <small>This post will explain the proceedure to show posts only...</small></li>
<li><a href='http://www.davidorlo.com/articles/wordpress/wordpress-sticky-a-post-on-the-homepage' rel='bookmark' title='WordPress &#8211; Sticky a Post on the Homepage'>WordPress &#8211; Sticky a Post on the Homepage</a> <small>I will explain how to keep a post on the...</small></li>
<li><a href='http://www.davidorlo.com/articles/wordpress/wordpress-show-post-excerpts-thumbnails' rel='bookmark' title='WordPress show Post Excerpts + Thumbnails'>WordPress show Post Excerpts + Thumbnails</a> <small>This article will show you a couple methods for showing...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/articles/wordpress/wordpress-prompts-for-ftp-credentials-when-trying-to-update-plugins-and-themes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMware vCenter Converter Standalone Warning: Unable to locate the required Sysprep files. \sysprep\svr2003</title>
		<link>http://www.davidorlo.com/articles/virtual-machine/vmware-vcenter-converter-standalone-warning-unable-to-locate-the-required-sysprep-files-sysprepsvr2003</link>
		<comments>http://www.davidorlo.com/articles/virtual-machine/vmware-vcenter-converter-standalone-warning-unable-to-locate-the-required-sysprep-files-sysprepsvr2003#comments</comments>
		<pubDate>Thu, 16 Feb 2012 18:51:42 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1749</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2012/02/VMWare-150x150.jpg" class="alignleft tfe wp-post-image" alt="VMWare" title="VMWare" />Warning: Unable to locate the required Sysprep files. Please upload them under C:\ProgramData\VMware\VMware vCenter Converter Standalone\sysprep\svr2003 if you have been running into this error there is a simple fix although not usually the one posted all over the web about downloading them from Microsoft&#8217;s website. Maybe they are on there somewhere but here is the [...]
Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/virtual-machine/virtualization-face-off-bare-metal-os-level' rel='bookmark' title='Virtualization Face Off, Bare metal &amp; OS Level'>Virtualization Face Off, Bare metal &#038; OS Level</a> <small>Once the new server is built I plan to revisit...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Warning: Unable to locate the required Sysprep files. Please upload them under C:\ProgramData\VMware\VMware vCenter Converter Standalone\sysprep\svr2003 if you have been running into this error there is a simple fix although not usually the one posted all over the web about downloading them from Microsoft&#8217;s website. Maybe they are on there somewhere but here is the easy solution.</p>
<p>Insert the Windows 2003 x86 CD it doesn&#8217;t if its R2, SP2 or whatever as long as its x86 or x64 to match the version of the OS your trying to copy over.<br />
Open the directory on YOUR Machine, NOT the server your trying to convert. You will see the directory already exists but is empty, now open the Server 2003 CD and browse to  \SUPPORT\TOOLS and you will see Deploy.CAB. You may need a program like WINRAR for this next part, right click on the Deploy.cab and select &#8220;Extract Files&#8221; you will want to extract the files to any location it really doesn&#8217;t matter because it will create a new folder called &#8220;Deploy&#8221; and what we need is the files in this folder. Now open the Deploy folder and select all the files and simply cut / paste them into C:\ProgramData\VMware\VMware vCenter Converter Standalone\sysprep\svr2003.</p>
<p>Don&#8217;t forget you will need to completely close vCenter Convert and re-open it after the files are moved. Simply restarting the transaction isn&#8217;t enough.</p>
<p>Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/virtual-machine/virtualization-face-off-bare-metal-os-level' rel='bookmark' title='Virtualization Face Off, Bare metal &amp; OS Level'>Virtualization Face Off, Bare metal &#038; OS Level</a> <small>Once the new server is built I plan to revisit...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/articles/virtual-machine/vmware-vcenter-converter-standalone-warning-unable-to-locate-the-required-sysprep-files-sysprepsvr2003/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Site Design Changes</title>
		<link>http://www.davidorlo.com/site-updates/test-post</link>
		<comments>http://www.davidorlo.com/site-updates/test-post#comments</comments>
		<pubDate>Fri, 18 Nov 2011 18:19:46 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[~Site Updates~]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1669</guid>
		<description><![CDATA[<img align="left" hspace="5" width="128" height="128" src="http://www.davidorlo.com/wp-content/uploads/2011/11/website.png" class="alignleft tfe wp-post-image" alt="website" title="website" />I&#8217;m working on some site design changes so if you see something that looks off just try refreshing the page or waiting a while and revisiting the site. No related posts.
No related posts.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on some site design changes so if you see something that looks off just try refreshing the page or waiting a while and revisiting the site.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/site-updates/test-post/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asus RT-N16 MMM pt.1 Fan Mod</title>
		<link>http://www.davidorlo.com/articles/mods-guides/asus-rt-n16-mmm-pt-1-fan-mod</link>
		<comments>http://www.davidorlo.com/articles/mods-guides/asus-rt-n16-mmm-pt-1-fan-mod#comments</comments>
		<pubDate>Wed, 05 Oct 2011 21:36:59 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[Misc Mods & Guides]]></category>
		<category><![CDATA[Mod]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1652</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_09-150x150.jpg" class="alignleft tfe wp-post-image" alt="Fan Mounted" title="ASUS_RT_N16_09" />The Asus RT N16, I found this router when I was looking for something to replace my D-Link DGL-4500 Gamer Lounge. Although the router was very expensive when I bought it and the flashy LCD sure looks nice it doesn&#8217;t actually perform all that well and if I disconnect my Sonicwall and try to use [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<div id="attachment_1653" class="wp-caption alignright" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_01.jpg"><img class="size-medium wp-image-1653 " title="ASUS_RT_N16_01" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_01-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Ready for the mods</p></div>
<p>The Asus RT N16, I found this router when I was looking for something to replace my D-Link DGL-4500 Gamer Lounge. Although the router was very expensive when I bought it and the flashy LCD sure looks nice it doesn&#8217;t actually perform all that well and if I disconnect my Sonicwall and try to use the router by itself it chokes out and locks up under heavy bit torrent load. I decided I would shop for something else and when I read the specs on this unit and the fact it could run DD-WRT I thought it sounded like a great deal. One problem is that it gets hot, very hot. In fact its underclocked to help it run cooler so there is hidden potential there that is being lost out on due to the heat issues. I decided I would mod the hell out of this thing through a series of articles and start with a simple fan mod. At first I thought I&#8217;d go with a super slim fan and hide it inside the unit but then later changed my mind when I found this fan.</p>
<div id="attachment_1654" class="wp-caption alignleft" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_02.jpg"><img class="size-medium wp-image-1654 " title="ASUS_RT_N16_02" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_02-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Xigmatec 120mm Fan</p></div>
<p>Looked good to me, just needed to remove that cheesy sticker from the top of the fan. Yeah its a little big and a tad gaudy but its all good and will cool the router below reasonable temperatures.</p>
<div id="attachment_1655" class="wp-caption alignright" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_03.jpg"><img class="size-medium wp-image-1655 " title="ASUS_RT_N16_03" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_03-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Fan on Router</p></div>
<p>I lined up the fan on the router so it would be centered to get an idea of what the finished product will look like before I started hacking away at my router.</p>
<div id="attachment_1656" class="wp-caption alignleft" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_04.jpg"><img class="size-medium wp-image-1656 " title="ASUS_RT_N16_04" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_04-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Fan Interference</p></div>
<p>There was some interference from the plastic LED extensions, nothing a Dremel couldn&#8217;t fix though. I brought the router out to the garage for the first bit of hackery and starting chopping away at the inside of the router.</p>
<div id="attachment_1657" class="wp-caption alignright" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_05.jpg"><img class="size-medium wp-image-1657 " title="ASUS_RT_N16_05" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_05-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Problem Solved</p></div>
<p>After some grinding the problem was resolved and I could start outlining the fan mounting location.</p>
<div id="attachment_1658" class="wp-caption alignleft" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_06.jpg"><img class="size-medium wp-image-1658 " title="ASUS_RT_N16_06" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_06-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Tracing the Fan</p></div>
<p>I lined up the fan the best I could using the holes in the top of the router as my guide. I traced the fan with a fine tip Sharpie marker and brought the router back out to the shop for more hacking and grinding with the Dremel.</p>
<div id="attachment_1659" class="wp-caption alignright" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_07.jpg"><img class="size-medium wp-image-1659 " title="ASUS_RT_N16_07" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_07-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Traced Hole</p></div>
<p>The hole has been traced and we are ready to cut some holes.</p>
<div id="attachment_1660" class="wp-caption alignleft" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_08.jpg"><img class="size-medium wp-image-1660 " title="ASUS_RT_N16_08" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_08-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Test Fit</p></div>
<p>I had to do several cuts and a few trims here and there. When I was finished I cleaned up the hole with some heavy grit sand paper to smooth out the rough edges and melted plastic.</p>
<div id="attachment_1661" class="wp-caption alignright" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_09.jpg"><img class="size-medium wp-image-1661 " title="ASUS_RT_N16_09" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_09-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Fan Mounted</p></div>
<p>Fan mounted and looking pretty good if I might say myself. I choose this fan specifically because of the way it mounted. I thought it would look like a cool turbine or smoke stack of sorts sticking out of the top of the router with the fan whirring away.</p>
<div id="attachment_1662" class="wp-caption alignleft" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_10.jpg"><img class="size-medium wp-image-1662 " title="ASUS_RT_N16_10" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_10-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Inside Router</p></div>
<p>This picture shows the inside of the router where I had to trim the plastic away so the fan would fit. I think it looks just as good on the inside as it does on the outside.</p>
<div id="attachment_1663" class="wp-caption alignright" style="width: 190px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_11.jpg"><img class="size-medium wp-image-1663 " title="ASUS_RT_N16_11" src="http://www.davidorlo.com/wp-content/uploads/2011/10/ASUS_RT_N16_11-300x225.jpg" alt="" width="180" height="135" /></a><p class="wp-caption-text">Inside with LED Extensions</p></div>
<p>Here is a picture of the inside with the LED extensions showing they are still fully functional. I noticed the very last extensions doesn&#8217;t actually connect to an LED and can be removed completely which I may need to do for my final mod. I did not take any &#8220;finished product&#8221; style photos because they product isn&#8217;t finished yet. I still have several more mods to do including internal heatsink mods, fan controller microcontroller, thermal sensors and an LCD screen to display stats and so on. The heatsink mod is nearly done and I am working on building the circuit for the LCD screen so it shouldn&#8217;t be too much longer before I get the articles posted.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/articles/mods-guides/asus-rt-n16-mmm-pt-1-fan-mod/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Craigslist Flawed Post Flagging System Problem Solved</title>
		<link>http://www.davidorlo.com/blog/craigslist-flawed-post-flagging-system-problem-solved</link>
		<comments>http://www.davidorlo.com/blog/craigslist-flawed-post-flagging-system-problem-solved#comments</comments>
		<pubDate>Wed, 05 Oct 2011 18:34:58 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Mazda RX-7]]></category>
		<category><![CDATA[RX-7]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1628</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2011/10/craigslist2-150x150.jpg" class="alignleft tfe wp-post-image" alt="Craigslist Peace Sign" title="Craigslist Peace Sign" />There&#8217;s no doubt if you have listed more than a handful of items for sale on Craigslist you have ran into the issue of one of your postings being flagged and removed from Craigslist instantly and what your likely don&#8217;t know, autonomously. I have listed about 30 ads on Craigslist in my lifetime and only [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s no doubt if you have listed more than a handful of items for sale on Craigslist you have ran into the issue of one of your postings being flagged and removed from Craigslist instantly and what your likely don&#8217;t know, autonomously. I have listed about 30 ads on Craigslist in my lifetime and only recently ran into the issue of having one of my listing removed because it was flagged. I received an e-mail which had a title of &#8220;flagged &amp; removed: item#&#8221; and stated &#8220;Your posting has been flagged for removal.&#8221;. The e-mail was very short and to the point and listed 2 links to assist the user in troubleshooting the cause of the flagging. The first link was to the <a href="http://www.craigslist.org/about/terms.of.use" target="_blank">Craigslist TOC</a> which I read over and nothing there fit my posting so I was left puzzled and clueless. I then decided I would visit the second link which read &#8220;If you need help figuring out why your posting was flagged, try asking in our flag help forum <a href="http://forums.craigslist.org/?forumID=3" target="_blank">http://forums.craigslist.org/?forumID=3</a>&#8220;, So I did just that.</p>
<p>At first I attempted to follow the rules completely and post the following</p>
<ul>
<li>title</li>
<li>body</li>
<li>categor(ies) posted to</li>
<li>cit(ies) posted to</li>
<li>posting frequency</li>
<li>listed price</li>
<li>links? images? HTML? counters? keywords?</li>
</ul>
<p>BUT I ran into an issue immediately with the following errors &#8220;<span style="color: #ff0000;">body is limited to 2400 characters</span>&#8221; &amp; &#8220;<span style="color: #ff0000;">This account is too new to post images &#8230; please try again in 7 days</span>&#8220;. This became a rather cumbersome issue because although I attempted to post as much of my listing as possible I was continually asked to post my ad listing body which I continually repeated that I could not.<br />
Before I go any further I&#8217;d like to explain my ad and show a link to the HTML I attempted to use, the ad itself was for my Mazda RX-7 which I decided to sell for $900 which I believe was quite fair. I had bad experiences with Craigslist and eBay from not posting enough or very clear pictures of a vehicle and thus resulting in an unhappy potential buyer and lots of wasted time so my primary goal was information. Although I didn&#8217;t have a ton of information about the cars history I did have the ability to take lots of high resolution pictures and I did just that. Then the problem arose of how to display this information without overwhelming the potential buyer so I quickly formatted the text and pictures in HTML using standard formatting for the text and a 4 column table for the photos. I then re-sized all of the photos into thumbnails for the table with a link that would open the full size image in a new window so the user wouldn&#8217;t lose their place on the site. I put about 45 minutes into this listing but the thought was that it would potentially save me dozens of pointless phone calls and in person visits. Check out the ad for yourself and let me know what you think.<br />
<a href="http://www.davidorlo.com/img/sell/rx7/RX7.html">http://www.davidorlo.com/img/sell/rx7/RX7.html</a></p>
<p>Most of the responses I received were rather demeaning and rude with unclear or senseless explanations that left me with a feeling that something just wasn&#8217;t right. Some of the responses I received were,<br />
<em>&#8220;If you want to post high res images and use lots of HTML go to eBay&#8221;</em><br />
<em>&#8220;Craigslist users prefer the built in uploader images and don&#8217;t like lots f HTML and High Res Images&#8221;</em><br />
I thought this one was extremely retarded and immediately responded with the fact that I am a Craigs user and I don&#8217;t like the uploaded low res images and if this was true then why do people ditch their old low res TV&#8217;s for high def big screens and so on.<br />
<em>&#8220;You look like a dealer with all that HTML&#8221;</em><br />
Another dumb one considering I was selling a $900 car<br />
<em>&#8220;&#8221;Looks like you created a $3000 ad for a $900 car&#8221;</em></p>
<p><em></em><br />
Not really the point here but it really didn&#8217;t take me that long and again the trade off for wasted time would be well worth the extra effort spent.<br />
Basically it went on like this for a while before I realized that these people have no clue why my listing was removed, in fact it was all automated with no user intervention what so ever. You might be saying to yourself &#8220;Well DUH&#8221; but I honestly did not know this. After I thought about it for a minute it made sense because Craigslist is free and for the most part non-profit so how would they be able to afford any staff to look at these flagged posts before they are removed. Just for a test I quickly sent out a message on IM to several friends to FLAG a post on Craiglist to see what happens, Sure enough 5 minutes later it was gone.</p>
<p>This shows that any group of individuals with nothing better to do with their time can simple pick out a listing and make it disappear. Whats even more worry some is that there appears to be no back-end logic what so ever. What I mean by this is the people I sent the message to were spread out among the US and the ad we took down was local to me for a coffee table, if there were any logic it seems the first thing would be to see where the IP&#8217;s are coming from and if they are within driving distance of the object if it is not an object that would normally be sold nationally like a car.<br />
This got me thinking on my way home from work that day and I decided I would help write the algorithms to fix the issue at hand. The first thing I thought was that it needed to remain completely automated to keep things free.<br />
These are not perfect and some are pseudo code but this should be more then enough to fix the issue and keep the process autonomous. Most of these solutions are meant to be implemented as a whole and work together to resolve the issue.</p>
<p><span style="font-size: medium;"><strong>Flexible Flag Limt</strong></span><br />
<strong>Scenario:</strong> How do you set a legit limit on Flagging without effecting users who are truly trying to help? What is a realistic limit anyway? Is it per day, per month? per hour?<br />
First we have to think of the person that only visits Craigs once a month to buy something or even less than that, when they browse a specific category for a specific item they are surely to find several items which should be flagged, they could easily flag 6 or more posts and all of them be legit. So should the limit be 6 posts a day, well what about the person looking to cause trouble this now allows them to flag 180 posts in a month. So should it be set per month, maybe 30 posts a month? This would still allow someone then to flag 30 posts in a day and then take the month off.<br />
<strong>Solution:</strong> The limit needs to be set on a first reached basis, there needs to be a hard limit on how many posts can be flagged each day, week and month. Which ever limit is hit first is put into effect and disables the users ability to flag any more posts until the limit resets at the beginning of the next limit cycle that was hit.<br />
<strong>Example:</strong> Bobby flags 6 posts a day and can no longer flag any posts until the next day, he repeats this until he hits the weeks limit which is 12 posts. This is reset on the next week until he hits 24 posts at which point he can not flag any more posts until the next month.<br />
These values obviously need to be tweaked by this keeps flagging fair for the average user while putting a stop to be people abusing the system.</p>
<p><strong><span style="font-size: medium;">IP Weight Based Flagging</span></strong><br />
<strong>Scenario:</strong> A group of users on a forum agrees to flag every posts for a similar item that one of its fellow members is selling to help reduce competition in that users local area.<br />
<strong>Solution:</strong> The IP of each user should be logged and checked for relative distance to the item being flagged.<br />
<strong>Example:</strong><br />
If the user is within acceptable driving distance they will have a flagging weight of 1.<br />
If the user is within the state of which the item is being flagged they will have a flagging weight of .75.<br />
If the user is within the timezone of the item being flagged they will have a flagging weight of .5.<br />
All others will have a flagging weight of .25.<br />
This solves the issue of the item being sold located on the border of a state or in another timezone, as long as the user is within driving distance nothing else matters and they have full flagging weight.</p>
<p><strong><span style="font-size: medium;">Population Biased Flagging</span></strong><br />
<strong>Scenario:</strong> It&#8217;s obvious your listing will get more views when posted in New York City compared to a city in the middle of the desert somewhere. So its also safe to say that an item in a highly populated area will get much more flags than an item in a non-populated area.<br />
<strong>Solution:</strong> The population of the location where the item is being listed would be taken into consideration for each item listed. The Flag limit would be raised based on population which would be hard set for each Craiglist location and tweaked by demand over time. This could be implemented with very little work by Craiglist and little to no changes to the current setup.</p>
<p><strong><span style="font-size: medium;">Flag Warning</span></strong><br />
<strong>Solution:</strong> This is a simple warning system that sends the Craiglist seller an e-mail when their post has received half of the flags needed to be removed with a suggestion that they edit their post before it is removed from the site. The e-mail should contain common issues of why posts are flagged with suggestions how to fix the issues.</p>
<p><span style="font-size: medium;"><strong>Implementation</strong></span><br />
Implementation would be rather simple, first start my modifying the existing database to add a new table, this table will be the new flagging table and consist of the following columns,</p>
<ul>
<li><em>User ID</em></li>
<li><em>Flagging Weight</em></li>
<li><em>IP Address</em></li>
<li><em>Distance to Item</em></li>
<li><em>Current Flags Day</em></li>
<li><em>Current Flags Week</em></li>
<li><em>Current Flags Month</em></li>
</ul>
<p>The current item flag count column could be utilized so no changes would need to be made to the item database.<br />
Then the next step would be writing a new function which would be included in the listing page and linked to from the Flag button. Once the button is pressed the function will process recording user id and IP address and flag statistics. The distance to object could be calculated from a Whois or reverse lookup on the IP and then the zip code of the item being sold to determine the overall weight of the flag. The final or even the first step would be a simple if statement dealing with the current users flag limit.</p>
<pre class="brush: php; title: ; notranslate">If $userid $Current Flags Day &lt; 6 Then;
     If $userid $Current Flags Week &lt; 12 Then;
          If $userid $Current Flags Month &lt; 24 Then;
               User Allowed to Flag;
          }
     }
}</pre>
<p>I believe these systems with some tweaking would completely resolve the abuse of the flagging system on Craigslist. Hopefully someone listens and implements them before it gets any worse.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/blog/craigslist-flawed-post-flagging-system-problem-solved/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle VirtualBox adds Option to save in any major virtual format</title>
		<link>http://www.davidorlo.com/articles/virtual-machine/oracle-virtualbox-adds-option-to-save-in-any-major-virtual-format</link>
		<comments>http://www.davidorlo.com/articles/virtual-machine/oracle-virtualbox-adds-option-to-save-in-any-major-virtual-format#comments</comments>
		<pubDate>Tue, 04 Oct 2011 16:30:50 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1623</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2011/10/VirtualBox-150x150.png" class="alignleft tfe wp-post-image" alt="VirtualBox" title="VirtualBox" />In the latest version of Oracle VirtualBox it looks like they went the extra distance and trumped all other virtualization platforms by adding the ability to impersonate each one of them. You read that correctly, the latest VirtualBox can now save a virtual machine in any of the most popular formats including, VDI &#8211; Sun [...]
Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/virtual-machine/installing-drivers-in-hyper-v-server' rel='bookmark' title='Installing drivers in Hyper-V Server'>Installing drivers in Hyper-V Server</a> <small>I am going to assume the person reading this is...</small></li>
<li><a href='http://www.davidorlo.com/articles/virtual-machine/managing-hyper-v-server-in-a-workgroup-environment-2' rel='bookmark' title='Managing Hyper-v server in a workgroup'>Managing Hyper-v server in a workgroup</a> <small>Microsoft makes it very difficult to manage a standalone Hyper-v...</small></li>
<li><a href='http://www.davidorlo.com/articles/virtual-machine/vm-shootout-performance-numbers' rel='bookmark' title='VM Shootout Performance Numbers'>VM Shootout Performance Numbers</a> <small>!!! &#8212; UPDATE &#8212; !!! ~~ UPDATE &#8211; I will...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In the latest version of Oracle VirtualBox it looks like they went the extra distance and trumped all other virtualization platforms by adding the ability to impersonate each one of them. You read that correctly, the latest VirtualBox can now save a virtual machine in any of the most popular formats including,</p>
<p>VDI &#8211; Sun / Oracle VirtualBox<br />
VMDK &#8211; VMWare Workstation, Server, ESX, ESXi<br />
VHD &#8211; Microsoft Virtual PC, Hyper-V<br />
HDD &#8211; Parallels Desktop</p>
<p>This is very interesting stuff, My next test will be to see if it will load all of these formats from their native applications.</p>
<p><a href="http://www.davidorlo.com/wp-content/uploads/2011/10/vbox.jpg"><img class="alignnone size-medium wp-image-1624" title="VirtualBox Formats" src="http://www.davidorlo.com/wp-content/uploads/2011/10/vbox-300x226.jpg" alt="" width="300" height="226" /></a></p>
<p>Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/virtual-machine/installing-drivers-in-hyper-v-server' rel='bookmark' title='Installing drivers in Hyper-V Server'>Installing drivers in Hyper-V Server</a> <small>I am going to assume the person reading this is...</small></li>
<li><a href='http://www.davidorlo.com/articles/virtual-machine/managing-hyper-v-server-in-a-workgroup-environment-2' rel='bookmark' title='Managing Hyper-v server in a workgroup'>Managing Hyper-v server in a workgroup</a> <small>Microsoft makes it very difficult to manage a standalone Hyper-v...</small></li>
<li><a href='http://www.davidorlo.com/articles/virtual-machine/vm-shootout-performance-numbers' rel='bookmark' title='VM Shootout Performance Numbers'>VM Shootout Performance Numbers</a> <small>!!! &#8212; UPDATE &#8212; !!! ~~ UPDATE &#8211; I will...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/articles/virtual-machine/oracle-virtualbox-adds-option-to-save-in-any-major-virtual-format/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IT Systems Monitoring Solutions Overview</title>
		<link>http://www.davidorlo.com/articles/it-admin/it-systems-monitoring-solutions-overview</link>
		<comments>http://www.davidorlo.com/articles/it-admin/it-systems-monitoring-solutions-overview#comments</comments>
		<pubDate>Tue, 09 Aug 2011 16:24:15 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[IT Administration]]></category>
		<category><![CDATA[IT Networking]]></category>
		<category><![CDATA[Monitoring]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1561</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2011/08/dashboard-150x150.jpg" class="alignleft tfe wp-post-image" alt="dashboard" title="dashboard" />When it comes to IT monitoring software you nearly need a Bachelor&#8217;s degree from the software provider just to manage the damn thing, and we won&#8217;t even get into the complications involved in setting it all up. Its no secret I often fantasize about the perfect piece of monitoring software for specific tasks and all [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>When it comes to IT monitoring software you nearly need a Bachelor&#8217;s degree from the software provider just to manage the damn thing, and we won&#8217;t even get into the complications involved in setting it all up. Its no secret I often fantasize about the perfect piece of monitoring software for specific tasks and all in one style solutions. At one point in the last year it was a task of mine to research all monitoring solutions I could find and come up with something affordable, fairly straight forward and easy to manage and it needed to scale well. By the end of this task I was left with only a few solutions that made the cut and I will briefly cover those as well as some that didn&#8217;t and why they didn&#8217;t. Although I only list a handful here I can assure you I tested over 20 different monitoring solutions of all shapes and sizes.</p>
<p>Our primary goal was a monitoring solution that could monitor servers, workstations, network devices, virtualized servers such as VMWare and possibly the actual hardware to replace Dell OpenManage. I wanted a few things in the software itself but they were not all must have features, such as WMI, SNMP, Windows &amp; Linux Support, At a Glance style dashboards, customizable reports that can run on a schedule.</p>
<hr style="width: 75%;" width="75%" />
<p><span style="font-size: large;"><em><strong>Main Contenders</strong></em></span></p>
<p><span style="text-decoration: underline; color: #000000;"><span style="text-decoration: underline;"><strong>Microsoft &#8211; Systems Center Operations Manager</strong></span></span><br />
The first piece of software I want to mention is Microsoft&#8217;s own Systems Center Operations Manager, or simply SCOM (pronounced es&#8217; com). This seemed like the perfect solution because of the huge support database for features, operating systems, plugins and partners. Another nice perk was how well it integrates with Active Directory and Windows Server Update Services (WSUS). We were not looking for a piece of software to manage updates because we were already using and were happy with WSUS, so the fact that it all tied right in together was very nice indeed. I found plugins for nearly everything including our Dell servers which read like a complete replacement for the OpenManage suite.</p>
<p>My first bit of displeasure came from the grueling installation which seemed to be one minor issue or annoyance after another. After this I noticed how insanely detailed the setup was, this isn&#8217;t just the setup for the software itself but the setup of every machine you want to monitor. I had issues pushing agents and getting machine to report back correctly. I had issues setting up what I actually wanted to monitor and what I didn&#8217;t. The biggest annoyances came from the consistent alerts and yellow flags thrown on my workstations and servers which were almost always nothing that I wanted to alert on anyway. Yes I know I have some event log errors for specific things that currently no fix exists but I don&#8217;t want my machine health to be shown as degraded based on this either.</p>
<p>The frustration was never ending with this software and managing it was a full time job. There were no quick overview style dashboards to be found which was the one feature I really wanted in a monitoring solution. Overall after a few weeks I abandoned this garbage and never looked back, the only advice I can give here is if your serious about running SCOM you should buy a few of those huge Microsoft books we are all so familiar with and possibly enroll in a few courses so you can throw it on your next resume. Personally I&#8217;d rather invest the time into learning more C# or PowerShell over a monitoring solution.</p>
<p>Pro&#8217;s</p>
<ul>
<li>Very Powerful when combined with plugins</li>
<li>Management of software installations, updates and rollouts on top of monitoring</li>
<li>Complete solution which could replace several pieces of software</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Very complicated to setup</li>
<li>Very complicated to use</li>
<li>Time consuming to manage</li>
<li>No simple one time reports</li>
<li>Designed for full central management weather you want it or not</li>
<li>Consistent alerts on seemingly unimportant events</li>
<li>Adding new machines and features is very time consuming</li>
<li>Agent installation failures with vague descriptions of why</li>
<li>Most monitoring requires configuration changes on the servers, not required by other software</li>
<li>No native Linux support, must pay 3rd party fees</li>
</ul>
<p><span style="text-decoration: underline;"><strong>IPSwitch &#8211; What&#8217;s Up Gold</strong></span><br />
After installing What&#8217;s Up Gold I immediately found it wasn&#8217;t for us at all and could possibly be adapted but why reinvent the wheel? I found this software to be better suited for an organization with lots of locations spread out geographically. I found the setup to be nearly as frustrating as SCOM with the exception that most of the machines I attempted to monitor with WMI just outright failed to report any data back. The software even struggled on the simplest of things like detected the proper machine name, I don&#8217;t care how the software gets the name but when it reports back just an IP address on a network where both DNS and NETBIOS work properly that&#8217;s just unacceptable.</p>
<p>Pro&#8217;s</p>
<ul>
<li>Ability to monitor the entire network including network devices</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Complicated setup and failures with WMI monitoring</li>
<li>Designed for multi-location monitoring</li>
<li>Poor job of detecting system names, roles, CPU types and more</li>
<li>Linux Support cost extra</li>
<li>Reports are generic and bland</li>
<li>Most reports cause errors when running on a single machine</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Manage Engine &#8211; OpManager</strong></span><br />
This was just like IPSwitch What&#8217;s Up Gold all over again, just read my review for that and apply here.</p>
<p>Pro&#8217;s</p>
<ul>
<li>Free</li>
<li>Could be useful for other light duty management tasks</li>
<li>Printer monitoring of ink levels and current print job is a nice touch</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Very expensive and I mean VERY</li>
<li>Quoted Price of 4k for 50 devices, 2k for VMWare, 2k for Netflow and then almost 1k for each type of plugin, AD, Exchange, SQL and so on</li>
<li>Over crowded and complex interface</li>
<li>Issues setting up on Windows 7 and Server 2008</li>
<li>Designed more towards Muti Site like What&#8217;s Up Gold</li>
<li>Very few built in server roles</li>
<li>Server can&#8217;t belong to more than 1 role at a time, i.e. Exchange &amp; Active Directory</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Uptime Software &#8211; Up.Time</strong></span><br />
This was my favorite application by far, it seemed to have just about everything I was looking for and was extremely easy to setup and manage. So much stuff worked right out of the box and by the time I got around to installing this piece of software I already had experienced several others so I was really able to see where the software excelled where others fell on their face. Although we didn&#8217;t end up with this solution in the end it was my final choice and I&#8217;d be lying if I said it was a tough decision.</p>
<p>Pro&#8217;s</p>
<ul>
<li>Plenty of Management options including Agent, Agentless, WMI, SNMP, Node, Novell, LPAR, VirtualNode &amp; ESX</li>
<li>Extremely easy to setup and manage including adding new machines</li>
<li>Very diverse reports with an abundance of reporting options</li>
<li>Can dynamically add users &amp; machines to a report without recreating the whole report</li>
<li>Monitoring for Windows, Linux, Network Devices and VMWare</li>
<li>Nice easy to follow interface with that &#8220;at a glance&#8221; appeal</li>
<li>Easy to setup one time reports for deep analysis or trending</li>
<li>Only application that Network interface bandwidth consumption worked out of the box</li>
<li>Several installation options including Windows, Linux, Sun, Virtual Appliance and others</li>
<li>Historical data retention along with (Min / Max / Avg) style performance reporting metrics</li>
<li> ESX license covers all virtual machines on that server</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Pricey, especially for Linux</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Quest &#8211; Spotlight on Applications</strong></span><br />
I wasn&#8217;t able to fully give these applications a try because the first issue I ran into a a free only version of their Windows monitoring application. This was only a problem because there were obvious issues with the application and no support so I didn&#8217;t even bother trying any of their other applications like Spotlight on SQL and so on. I think the way Quest operates is that they buy software from smaller companies and then resell it under their brand. I know its something like this because when I was trying to get quotes I was working with another company who was separate from Quest and they were telling me to go to their site and check out what else they had to offer. This has me worried because it was obvious Quest wasn&#8217;t making this software and when I asked about just purchasing one application to do everything I was told it was not possible and never would be. The reason was because some of the Spotlight Apps come from one company while others from another, could you image the nightmare trying to support that?</p>
<p>Pro&#8217;s</p>
<ul>
<li>NONE</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Free only Windows Application kills the rest of the apps if you want everything from one vendor</li>
<li>Deal with several companies by the time you get the whole Spotlight on Suite</li>
<li>No chance of integrating Spotlight Applications into one since the developers are different companies</li>
</ul>
<hr style="width: 75%;" width="75%" />
<p><span style="font-size: large;"><em><strong>Free &amp; Open Source</strong></em></span></p>
<p><span style="text-decoration: underline;"><strong>Spiceworks</strong></span><br />
Who hasn&#8217;t heard of Spiceworks right? The infamous defacto standard in free IT applications.</p>
<p>Pro&#8217;s</p>
<ul>
<li>Free</li>
<li>Could be useful for other light duty management tasks</li>
<li>Printer monitoring of ink levels and current print job is a nice touch</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Designed more as a IT help desk solution rather than a full monitoring solution</li>
<li>No scheduled reports</li>
<li>Poor job of detecting system names, roles, CPU types and more</li>
<li>Monitoring requires additional software, configuration and lots of custom work</li>
<li>No resource usage reporting</li>
<li>Most features don&#8217;t work out of the box</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Hyperic &#8211; HQ Open Source Edition</strong></span><br />
Hyperic is a little lesser known in the SMB IT world but its a platform that is known to scale well and has impressive list of partners and support. The slogan on the front page of their site reads &#8220;Monitoring the World&#8217;s Largest Web Applications&#8221;. This tells me they must be big, stable and well known in the corporate world but also throws up a red flag for pricing if we wanted to move to the paid solution.</p>
<p>Pro&#8217;s</p>
<ul>
<li>Free</li>
<li>Division of VMWare (Could also be a Con for some folks)</li>
<li>Works with Windows, Linux, ESX &amp; More</li>
<li>Ability to convert to paid solution if you outgrow the open source edition</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>No Reports in the free version</li>
<li>Agent based only, NO WMI or SNMP</li>
<li>Had issues using both auto and manual discovery when setting server roles</li>
<li>Some metrics reported incorrectly</li>
<li>No built in disk monitoring tools</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Nagios Open Source</strong></span><br />
Nagios is a product I have heard time and time again in the open source world. Its extremely well known and known to be one of the only platforms that will scale beyond the needs of any SMB.</p>
<p>Pro&#8217;s</p>
<ul>
<li>Free</li>
<li>Well known in the Open Source district</li>
<li>Tons of support out there</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Only installs on Linux</li>
<li>Absolute PITA to install for a Linux Novice</li>
<li>Every plugin and addon has to be built in Linux, then configured manually for your specific setup</li>
<li>I struggled to get this working and continually found myself looking for help more then monitoring my systems</li>
<li>Everything including the dashboards are ugly, stripped down and nearly useless until you manually build and configure plugins</li>
<li>Site is poorly designed and difficult at times to navigate and find items</li>
</ul>
<p><strong><span style="text-decoration: underline;">Quest &#8211; Spotlight on Windows</span><br />
</strong>Personally I think just about every other monitoring application should takes notes from how well the main dashboard in Quest SoW in designed. Although its starting to look a bit dated, I absolutely love the main dashboard and the ability to have it automatically cycle through machines. Another nice touch is a separate tab for all of the most important monitors including CPU, Memory, Disk, Event viewer and others. There is even a nice &#8220;drill down&#8221; feature where you can get really in depth with your analysis. Some major issues I found were no e-mail on alarms, constant disconnects of machines and a huge memory leak in the application when left running for more than a full day. Its such a shame to see such a nice product go to waste with no desire from the company to pick up support and carry on development. I plan to review this application and another free goodie from Quest which basically shuts up every complaint I have here in a later review.</p>
<p>Pro&#8217;s</p>
<ul>
<li>Free</li>
<li>Perfect interface although a tad dated</li>
<li>Several options for setting alarm notifications on screen</li>
<li>Options to set trending for specific metrics</li>
<li>Customizable metrics for each status monitored</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Disconnects machines without attempting reconnect if there are any network interruptions</li>
<li>Has a giant memory leak after running for more than a few hours</li>
<li>Free ONLY, no support, no more features</li>
<li>No options to adjust data retention</li>
<li>No e-mail on alarms</li>
</ul>
<p><span style="text-decoration: underline;"><strong>OpenSmart</strong></span></p>
<p>Pro&#8217;s</p>
<ul>
<li>Free</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Only Monitors Ping &amp; Uptime</li>
</ul>
<hr style="width: 75%;" width="75%" />
<p><span class="Apple-style-span" style="font-size: large;"><em><strong>Others barely worth mentioning</strong></em></span></p>
<p><span style="text-decoration: underline;"><strong>PowerAdmin &#8211; Server Monitor</strong></span></p>
<p>Pro&#8217;s</p>
<ul>
<li>NONE</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li> Designed for monitoring of network devices more than servers and workstations</li>
<li>Tons of features useless to most SMB&#8217;s built in and activated by default</li>
<li>Very busy interface that makes administration very time consuming</li>
<li>No Linux support</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Eastbow &#8211; Server Performance Monitor</strong></span></p>
<p>Pro&#8217;s</p>
<ul>
<li>NONE</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>No option to run reports on a schedule</li>
<li>One monitors 1 hard drive in each machine</li>
<li>No Service monitoring option</li>
<li>No Linux Support</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Towodo &#8211; System Monitor</strong></span></p>
<p>Pro&#8217;s</p>
<ul>
<li>NONE</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>No option to run reports on a schedule</li>
<li>Requires SQL Database</li>
<li>Reporting is designed for deep analysis rather than trending</li>
<li>No Linux Support</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Adrem &#8211; Server Monitor</strong></span></p>
<p>Pro&#8217;s</p>
<ul>
<li>NONE</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>Needs Novell Client installed on each machine to be monitored</li>
<li>Primarily for Disk monitoring</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Diffusione &#8211; Informatica Health Monitor</strong></span></p>
<p>Pro&#8217;s</p>
<ul>
<li>NONE</li>
</ul>
<p>Con&#8217;s</p>
<ul>
<li>NONE</li>
</ul>
<hr style="width: 75%;" width="75%" />
<p><span style="font-size: large;"><em><strong>Our Choice</strong></em></span><br />
So what did we choose? Well we actually already had been using Kaseya for some of our customers and I already knew Kaseya management quite well and its my personal favorite if you can afford and justify it. It does everything that all of the pieces of software I listed here do and so much more including pushing scripts with its own custom scripting language built in. Kaseya also has the best patch management that I have seen to date so for us this was a no brainer but we know now that absolutely without a doubt this is the best option for us and there is nothing else out there that we overlooked.</p>
<hr style="width: 75%;" width="75%" />
<p><em><strong><span style="font-size: large;">Closing Thoughts</span></strong></em><br />
Their are so many things that just seem obvious in the way of machine monitoring yet some how so many seem to miss these things and focus on other features while passing over the most important fundamentals. I&#8217;ve seen so many solutions that seem to get off on a bad start and instead of keeping the focus on the most important tasks like simplicity, ease of management, and that &#8220;at a glance&#8221; view I keep referring to, they focus on building in as many features as possible even though most you will never even use and this just further exacerbates the situation. Up.Time was quite refreshing and came into my lineup just when I was about to lose all hope for a viable monitoring solution that fit our criteria. If Kaseya isn&#8217;t an option for you then I highly recommend you give it a test drive. I know their are some Microsoft die hards that will run nothing but Microsoft in their production environment and if you have the time and desire to learn SCOM then I believe this could also be a viable solution but you will pay dearly in the amount of time you need to sink to not only learn the software but the time to continually manage it as well.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/articles/it-admin/it-systems-monitoring-solutions-overview/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino &#8211; Analog Read Potentiometer to Digital Out LED + Bonus Photoresistor to LED</title>
		<link>http://www.davidorlo.com/articles/arduino/arduino-analog-read-potentiometer-to-digital-out-led-bonus-photoresistor-to-led</link>
		<comments>http://www.davidorlo.com/articles/arduino/arduino-analog-read-potentiometer-to-digital-out-led-bonus-photoresistor-to-led#comments</comments>
		<pubDate>Sun, 03 Jul 2011 20:05:43 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[ADC]]></category>
		<category><![CDATA[analog to digital]]></category>
		<category><![CDATA[photoresistor]]></category>
		<category><![CDATA[potentiometer]]></category>
		<category><![CDATA[PWM]]></category>
		<category><![CDATA[Wiring]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1549</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2011/07/Arduino-150x150.png" class="alignleft tfe wp-post-image" alt="Arduino" title="Arduino" />The analog to digital sketches have been covered a million ways from Sunday with every conceivable part but in order for us to move on to more complex circuits and concepts I need to be sure you know these simpler ones. This tutorial wont be quite as in depth as the others because frankly there [...]
Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-getting-started' rel='bookmark' title='Arduino &#8211; GettingStarted ~A Must Read'>Arduino &#8211; GettingStarted ~A Must Read</a> <small>Arduino Duemilanove I have always been into Electrical Engineering and...</small></li>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-getting-started-pt-1' rel='bookmark' title='Arduino Getting Started Pt.1'>Arduino Getting Started Pt.1</a> <small>So your ready to jump into the vastly complex world...</small></li>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-advanced-led-blink' rel='bookmark' title='Arduino &#8211; Advanced LED Blink'>Arduino &#8211; Advanced LED Blink</a> <small>By now you should have your Arduino and have gone...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The analog to digital sketches have been covered a million ways from Sunday with every conceivable part but in order for us to move on to more complex circuits and concepts I need to be sure you know these simpler ones. This tutorial wont be quite as in depth as the others because frankly there just isn&#8217;t much code. Without further delay I give you the wiring diagram.</p>
<div id="attachment_1552" class="wp-caption alignnone" style="width: 310px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/07/TUT-Analog-Potentiometer-to-Digital-LED1.jpg"><img class="size-medium wp-image-1552" title="Arduino Analog Potentiometer to Digital LED" src="http://www.davidorlo.com/wp-content/uploads/2011/07/TUT-Analog-Potentiometer-to-Digital-LED1-300x143.jpg" alt="" width="300" height="143" /></a><p class="wp-caption-text">Arduino Analog Potentiometer to Digital LED</p></div>
<p>Another very simple circuit diagram, by the way if you have been wondering what program I am using for these diagram and its actually the most widely used program for diagramming Arduino circuits, its called <a href="http://fritzing.org/download/" target="_blank">Fritzing and you can get it here</a>. Its completely Free and has tons of well known parts either built in directly or available for download on the user submission pages.</p>
<p>As shown above the Analog signal is positive and as the positive input increases the digital output increases as well. There is of course a pull down resistor in place which is directly connected to the potentiometer, an interested side note and the reason for the 3 legs on the potentiometer is that you can swap the positive and negative in the diagram above and the LED will get brighter when you turn the potentiometer to the left (CCW) instead of the right (CW).</p>
<pre class="brush: cpp; title: ; notranslate">
/*
Analog Potentiometer to Digital LED Sketch
By: David M. Orlo
www.DaviedOrlo.com
*/
byte potPin=0; //Analog 0 connected to the potentiometer
byte LEDPin=6; //Connected to LED on Pin 6
int potValue=0; //Value returned from the potentiometer

void setup(){
  pinMode(LEDPin, OUTPUT); //Set Pin 6 as an Output
}

void loop(){
  potValue = analogRead(potPin)/4; //Read the potentiometer, convert it to 0 - 255
  analogWrite(LEDPin, potValue); //Write the converted potentiometer value to LED pin
}
</pre>
<p>So simple isn&#8217;t it? Now lets change things up a bit and make the LED pulse in relation to the potentiometer value. We can keep the same circuit layout but we need to make a few tweaks to the code.</p>
<pre class="brush: cpp; title: ; notranslate">
/*
Analog Potentiometer to Digital LED Sketch
By: David M. Orlo
www.DaviedOrlo.com
*/
byte potPin=0; //Analog 0 connected to the potentiometer
byte LEDPin=6; //Connected to LED on Pin 6
int potValue=0; //Value returned from the potentiometer

void setup(){
  pinMode(LEDPin, OUTPUT); // Set Pin 6 as an Output
}

void loop(){
  potValue = analogRead(potPin); //Read the potentiometer
  digitalWrite(LEDPin, HIGH);  //Turn the LED on
  delay(potValue); //Use the potentiometer value as a length of time to pause the micro
  digitalWrite(LEDPin, LOW); //Turn the LED off
  delay(potValue); //Use the potentiometer value as a length of time to pause the micro
}
</pre>
<p>The first thing you will notice is that the LED blinks faster when you turn the pot to the left which seems opposite to whats intuitive, I will let you figure out how to reverse this either in code or in hardware using the hint I gave you above about the potentiometer.</p>
<p>Now for the Photoresistor, the circuit is very similar as you will see below.</p>
<div id="attachment_1557" class="wp-caption alignnone" style="width: 310px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/07/Photoresistor-to-LED.jpg"><img class="size-medium wp-image-1557" title="Arduino PhotoResistor to LED Blink" src="http://www.davidorlo.com/wp-content/uploads/2011/07/Photoresistor-to-LED-300x137.jpg" alt="" width="300" height="137" /></a><p class="wp-caption-text">Arduino PhotoResistor to LED Blink</p></div>
<p>The code is exactly the same so no changes needed there, You will notice I used a 1K resistor instead of a 10K thats used in other examples. In my example above you will notice the LED blinks faster as the photoresistor gets darker, lets say you want to reverse that and make it blink slower, simple just reverse the GND and POS and swap out the 1K resistor for a 10K.</p>
<p>Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-getting-started' rel='bookmark' title='Arduino &#8211; GettingStarted ~A Must Read'>Arduino &#8211; GettingStarted ~A Must Read</a> <small>Arduino Duemilanove I have always been into Electrical Engineering and...</small></li>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-getting-started-pt-1' rel='bookmark' title='Arduino Getting Started Pt.1'>Arduino Getting Started Pt.1</a> <small>So your ready to jump into the vastly complex world...</small></li>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-advanced-led-blink' rel='bookmark' title='Arduino &#8211; Advanced LED Blink'>Arduino &#8211; Advanced LED Blink</a> <small>By now you should have your Arduino and have gone...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/articles/arduino/arduino-analog-read-potentiometer-to-digital-out-led-bonus-photoresistor-to-led/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino – Interrupt Tutorial with LED &amp; Switch</title>
		<link>http://www.davidorlo.com/articles/arduino/arduino-%e2%80%93-interrupt-tutorial-with-led-switch</link>
		<comments>http://www.davidorlo.com/articles/arduino/arduino-%e2%80%93-interrupt-tutorial-with-led-switch#comments</comments>
		<pubDate>Sun, 03 Jul 2011 08:28:32 +0000</pubDate>
		<dc:creator>David Orlo</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[AttachInterrupt]]></category>
		<category><![CDATA[Interrupt]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[Push Button]]></category>
		<category><![CDATA[Switch]]></category>
		<category><![CDATA[Volatile]]></category>
		<category><![CDATA[Wiring]]></category>

		<guid isPermaLink="false">http://www.davidorlo.com/?p=1536</guid>
		<description><![CDATA[<img align="left" hspace="5" width="150" height="150" src="http://www.davidorlo.com/wp-content/uploads/2011/07/Arduino-150x150.png" class="alignleft tfe wp-post-image" alt="Arduino" title="Arduino" />Well well well, Look who&#8217;s back for more already. If you&#8217;re pushing through these Arduino tutorials screaming give me more then I&#8217;d like to be the first to tell you good job and keep it up. Soon you will have this thing called the Arduino mastered and that creation that you had in mind (The [...]
Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-getting-started' rel='bookmark' title='Arduino &#8211; GettingStarted ~A Must Read'>Arduino &#8211; GettingStarted ~A Must Read</a> <small>Arduino Duemilanove I have always been into Electrical Engineering and...</small></li>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-getting-started-pt-1' rel='bookmark' title='Arduino Getting Started Pt.1'>Arduino Getting Started Pt.1</a> <small>So your ready to jump into the vastly complex world...</small></li>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-advanced-led-blink' rel='bookmark' title='Arduino &#8211; Advanced LED Blink'>Arduino &#8211; Advanced LED Blink</a> <small>By now you should have your Arduino and have gone...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Well well well, Look who&#8217;s back for more already. If you&#8217;re pushing through these Arduino tutorials screaming give me more then I&#8217;d like to be the first to tell you good job and keep it up. Soon you will have this thing called the Arduino mastered and that creation that you had in mind (The one that got you into this mess in the first place) will seem like child&#8217;s play once I&#8217;m through with you. So throw on another pot of coffee and indulge in whatever other vexes you may have because its 4AM here near Detroit Michigan and I am right there going strong with you.</p>
<p>OK so in order to be here you should have already read the first LED tutorial entitled <a href="http://www.davidorlo.com/articles/arduino/arduino-advanced-led-blink">Advanced LED Blink.</a> That tutorial will give you the background on this tutorial and will also help you get started into Arduino&#8217;s.<br />
So where we left off previously is that we had a working LED blink circuit that was triggered by a momentary push button, the problem was that once we were in the LED blink loop it was difficult to get back out due to the program periodically sleeping and thus ignoring all commands. We are now going to tackle this issue with whats known as an interrupt, we will still have another annoying issue which is known as button <em>de-bouncing</em> but there are plenty of guides for this on the internet so I will not go over that in great detail here. I will say generally you have two options to debounce a button, hardware and software. Hardware is compromised of actual physical hardware to do the debouncing and software generally consist of sleeping the code for short periods of time combined with a check to see how rapid the button is pressed to determine if the presses are faster than a human can physically press the button and if so they are disregarded.</p>
<p>You will notice the circuit has slightly changed from the previous tutorial and the reason behind that is because we are now triggering our LED even from the switch input transitioning from High to Low where as previously we triggered on a change from Low to High. If you remember from the previous article I explained that in order to give the micro controller a solid stable signal when the line was not in use we had to &#8220;pull&#8221; the signal either &#8220;low&#8221; or &#8220;high&#8221; by using a pull-up or pull-down resistor. So an easy way to picture that is previously our line was Ground and we would apply a Positive to the line taking it High and now it is the opposite  where our line is already Positive but then we introduce a Ground signal and Pull it Low which then causes our event to trigger in our code.</p>
<div id="attachment_1541" class="wp-caption alignnone" style="width: 310px"><a href="http://www.davidorlo.com/wp-content/uploads/2011/07/TUT-LED-Interrupt.jpg"><img class="size-medium wp-image-1541" title="Arduino LED Button Switch Interrupt" src="http://www.davidorlo.com/wp-content/uploads/2011/07/TUT-LED-Interrupt-300x157.jpg" alt="" width="300" height="157" /></a><p class="wp-caption-text">Arduino LED Button Switch Interrupt</p></div>
<p>Comparing the new circuit layout with the old located <a href="http://www.davidorlo.com/wp-content/uploads/2011/06/LED-Blink-1.jpg" target="_blank">here</a> you can clearly see how we have switch the polarity of the push button switch. This allows us to trigger on a High to Low signal rather than a Low to High signal. Like I said previously the circuit hasn&#8217;t changed much at all so let&#8217;s go ahead and dive into the code. I will post the code and then go over some of the specifics but I would like to mention that you will notice the code has become what I like to call &#8220;tight&#8221; or tighter than the last bit of code I posted. What this means is that for the sake of simplicity in the last example I broke some of the code out to better showcase where the end of a statement was and how the symbols where used in the code and so forth. In this example and future examples I will be tightening up the code to show my preferred coding which at times can be a little unconventional in the C language standards but its easier to view as whole in my opinion due to better code density. One example of this would be as follows</p>
<p>Standard C++ Code example</p>
<pre class="brush: cpp; title: ; notranslate">
if (1==1)
 {
   Do something;
 }
   else
 {
   Do something else;
 }
}
</pre>
<p>Tightened Code Example</p>
<pre class="brush: cpp; title: ; notranslate">
if (1==1){
   Do something;}
   else{
   Do something else;}
}
</pre>
<p>So you see how this could complicate things for a beginner when trying to read and work with the code but it keeps the code clean and compact which in my opinion makes the code easier to read overall when you can see more of the code at once.</p>
<p>Now that we have that out the way lets see the actual code we will be using, again this should be a direct copy-paste-upload-run for you project if you have followed the example image I posted above.</p>
<pre class="brush: cpp; title: ; notranslate">
/*
Advanced Blink with an Interrupt Sketch
By: David M. Orlo
www.DaviedOrlo.com
*/
byte SWITCHPIN=2; //Set Pin 2 as Switch
byte LEDPIN=6; //Set Pin 6 as LED
byte brightness; //Create a Integer variable named brightness
byte delayedoff; //Create a Integer variable named delayedoff
byte delayedon; //Create a Integer variable named delayedon
//If you want to go higher than 255 you must change from &quot;byte&quot; to &quot;int&quot;
volatile boolean trigger=LOW; //This is our interrupt connected to the button switch

void setup(){
  attachInterrupt(0, interrupttrigger, LOW); //Interrupt 0 is Digital Pin 2
  //When the Input goes from High to Low it will trigger a function called crazyLED
  pinMode(LEDPIN, OUTPUT); //Set Pin 6 as Output
}

void loop(){
  delay(200); //Wait a moment to help debounce the switch
  if (trigger==1){ //Check to see if the interrupt was triggered
    crazyLED();} //Enter our LED blinking function
  else{ //If the button was pressed again
    analogWrite(LEDPIN, 0);} //Turn the LED off
}

void crazyLED(){
  delay(200); //Wait a moment to help debounce the switch
  while(trigger == HIGH){ //Will run this loop until the interrupt value changes
    brightness = random(1, 254); //Generates a random number from 1-254 and assigns it to the variable named brightness
    delayedoff = random(1, 125); //A random amount of time the LED is turned off
    delayedon = random(1, 250); //A random amount of time the LED is turned on
    analogWrite(LEDPIN, brightness); //Uses the random number we generated to write the value to our LED
    delay(delayedon); //random delay on time
    analogWrite(LEDPIN, 0); //We turn the LED off for a blinking effect
    delay(delayedoff);} //Random delay off time
}

void interrupttrigger(){ //When the switch is pressed (Interrupt is triggered) the arduino enters this function
  if (trigger ==LOW){ //Checks to see what the last value was (high or low)
    trigger=HIGH;} //If its low it is now set to high
  else{
    trigger=LOW;} //If its high it is now set to low
}
</pre>
<p>As you can see we don&#8217;t have much more code than we did previously and the operation of the code is nearly the same with the introduction of a new function which I will explain in a moment. I would like to point out a very important note and I really want you to pay attention to this because over time this will become very important to you and the success of how much code you can fit in your project. As you may already be aware there is a limit to how much code you can pack into that little micro controller chip on your Arduino board and that limit is expressed every time you verify and upload your code. This is represented as &#8220;X bytes used out of X bytes maximum&#8221; or something to that effect. This is telling you how much space in memory your code is actually taking up, there is actually more to than just that and I am just giving you an overall explanation of memory size so you understand there is a limit to the size of your code but there are things you can do to reduce the size of your code and one very easy thing to do is just simply telling your micro controller the proper data types when declaring variables, so what the hell does that mean? Its really quite simple, do you remember how in the last tutorial I said a variable is basically a word that represents something else like a number or set of numbers? Well at the top of our code we declare some variables and if you take a look at this code in particular you will see that each variable is a representation of numbers but I declare them differently. The most common one you will see is &#8220;int&#8221; which is short for integer, if your not a math wiz and don&#8217;t already know these like the back of your hand you can simply just bookmark the <a href="http://arduino.cc/en/Reference/HomePage" target="_blank">Arduino Reference page</a> and they have them listed out which a description of each. Generally what I will do is use &#8220;int&#8221; for each variable because I do NOT know them by heart, and then later I will go through and correct them unless it is just some small sample code that I am playing with. It&#8217;s good to get in the habit of using the proper data types for your variables because it can add up quickly in a large project.</p>
<p>Next up is the Setup function in which you will notice we got rid of the setup of our Input Pin and added an interrupt in its place. The interrupt is really quite simple but first thing you must know is that each Arduino board model (i.e. Mega vs. Duemilnove) has a different amount of interrupts and they are also on different pins. The Duemilanove for example has 2 interrupts and they are on digital pins 2 &amp; 3, this is detailed in the <a href="http://arduino.cc/en/Reference/AttachInterrupt" target="_blank">AttachInterrupt function page</a> as well as how to use the function. To use the function we specify the Interrupt number rather than the pin number, Interrupt 0 is pin 2 and interrupt 1 is pin 3. Next we need to tell it how we want the interrupt to be triggered as their are several options which again are detailed on the function page. In my example I decided to use the LOW trigger because it made the most sense for how I would be using the interrupt, in a future tutorial I will show you how to use an interrupt to read a changing state and calculate RPM on several objects.</p>
<p>Now if your paying attention you are probably thinking I skipped right over something else which is new and peculiar and that is the word &#8220;volatile&#8221; before our trigger variable declaration. Don&#8217;t worry I didn&#8217;t forget it, this actually has to do with the interrupt itself and this is what I waited until after the interrupt to describe it. My next description of the interrupt and what is actually does is quite simple, basically look at the interrupt as a function that interrupts the micro controller at any time and then  forces the micro controller to enter a specific function which you define when you create the attach interrupt function, in my example this is called &#8220;interrupttrigger&#8221;. Before we go any further there is one important catch to interrupts in the Arduino and it gave me a lot of grief when I was first learning them and that is that you can not use delays in the interrupt function and you can&#8217;t have another interrupt, interrupt the interrupts function(man that&#8217;s confusing) along with a few other catches. What that meant to me was that I only wanted to use the interrupt function for very simple things like changing a few variables, then exit the function and allow the main code to read those changed variables and then do what you actually needed to do in the first place. So generally I try to get out of the interrupt function as quickly as possible and get back into my code. Now the volatile part, in the Arduino attach interrupt documentation it is written <em>&#8220;You should declare as volatile any variables that you modify within the attached function&#8221;</em> So that tells us if the variable will be changed within the &#8220;attachinterrupt&#8221; function we need to declare it as volatile. For now this all you need to know and remember about using interrupts.</p>
<p>It should be plain as day at this point what the code does but just in case its not I will run over it real quick. First we enter the main loop and at this point the code doesn&#8217;t really do anything. The code is checking to see if something has changed but we know nothing has because we haven&#8217;t pressed the button yet. Once you do press the button the code will skip right down to the interrupttrigger function and there is where the most simple thing in the world happens, its the old 1 2 switch-a-roo. The code looks at the volatile variable named trigger and checks its value, the value can only be High or Low (1 or 0) and which ever it is the code will now make it the opposite. From there the interrupt function is complete and the code re-enters the main loop, at this point the main loop notices something has changed, our trigger variable is now a 1 when it was a 0 and the code knows to enter our good ol CrazyLED function that we created in the previous tutorial. So how do we get back from here? Well the code is still able to be interrupted by the ?, you guess it, the interrupt, and when that happens it will just simply switch that variable back to a 0 (LOW) from a 1 (HIGH) and when the code enters the previous function it notices it should no longer be running the CrazyLED function and we are back at square 1. So very simple when you walk through the code like this and I bet at first you were a little perplexed if this were your first interrupt lesson but in the end it turned out to be a very simple yet very useful function that I bet you will get tons of use out of.</p>
<p>Until next time, Dave</p>
<p>Related posts:<ol>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-getting-started' rel='bookmark' title='Arduino &#8211; GettingStarted ~A Must Read'>Arduino &#8211; GettingStarted ~A Must Read</a> <small>Arduino Duemilanove I have always been into Electrical Engineering and...</small></li>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-getting-started-pt-1' rel='bookmark' title='Arduino Getting Started Pt.1'>Arduino Getting Started Pt.1</a> <small>So your ready to jump into the vastly complex world...</small></li>
<li><a href='http://www.davidorlo.com/articles/arduino/arduino-advanced-led-blink' rel='bookmark' title='Arduino &#8211; Advanced LED Blink'>Arduino &#8211; Advanced LED Blink</a> <small>By now you should have your Arduino and have gone...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.davidorlo.com/articles/arduino/arduino-%e2%80%93-interrupt-tutorial-with-led-switch/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
