<?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>hackyourworld.com</title>
	<atom:link href="http://hackyourworld.com/feed" rel="self" type="application/rss+xml" />
	<link>http://hackyourworld.com</link>
	<description>Take your world apart</description>
	<lastBuildDate>Thu, 19 Apr 2012 21:10:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Know your tools</title>
		<link>http://hackyourworld.com/2011/10/know-your-tools</link>
		<comments>http://hackyourworld.com/2011/10/know-your-tools#comments</comments>
		<pubDate>Sat, 15 Oct 2011 02:07:12 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=84</guid>
		<description><![CDATA[Prerequisets Linux/Unix host Linux/Unix destination with SSH server Ready, Set, Go! Getting right down to it, here is a quick simple snippet I use quite often to transfer batches of files (often text, or other highly compress-able files) : tar cz file.foo folder foo/* &#124; ssh user@destination.host.com &#8216;cat &#62; ~/file.tar.gz&#8217; Today I found myself wanting [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Prerequisets</strong></p>
<p>Linux/Unix host<br />
Linux/Unix destination with SSH server</p>
<p><strong>Ready, Set, Go!</strong></p>
<p>Getting right down to it, here is a quick simple snippet I use quite often to transfer batches of files (often text, or other highly compress-able files) :</p>
<p>tar cz file.foo folder foo/* | ssh user@destination.host.com &#8216;cat &gt; ~/file.tar.gz&#8217;</p>
<p>Today I found myself wanting to transfer an entire CD to a remote host, normally I&#8217;d just find a place to download it, but being a proprietary disc, that wasn&#8217;t an option.  This was too easy, but keep in mind if you don&#8217;t have a good upload speed, this can take awhile:</p>
<p>dd if=/dev/cdrom | ssh user@destination.host.com &#8216;cat &gt; cd.iso&#8217;</p>
<p>Now of course you can mount it on the remote server:</p>
<p>mount /home/user/cd.iso -o loop /mount/path</p>
<p>Any questions?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2011%2F10%2Fknow-your-tools&amp;title=Know%20your%20tools" id="wpa2a_4"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2011/10/know-your-tools/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Mercurial Patch Queue</title>
		<link>http://hackyourworld.com/2011/10/the-mercurial-patch-queue</link>
		<comments>http://hackyourworld.com/2011/10/the-mercurial-patch-queue#comments</comments>
		<pubDate>Wed, 12 Oct 2011 13:49:28 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=78</guid>
		<description><![CDATA[Prerequisets This article assumes you&#8217;re already familiar with Mercurial, if you&#8217;re not, there are plenty of places to find a quick and basic tutorial.  Chances are if you&#8217;ve ever used version control, you&#8217;ll be able to follow.  Some of the Mercurial commands used don&#8217;t show up until later versions of Mercurial (1.6), so if you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Prerequisets</strong></p>
<p>This article assumes you&#8217;re already familiar with Mercurial, if you&#8217;re not, there are plenty of places to find a quick and basic tutorial.  Chances are if you&#8217;ve ever used version control, you&#8217;ll be able to follow.<strong></strong>  Some of the Mercurial commands used don&#8217;t show up until later versions of Mercurial (1.6), so if you&#8217;re running an old version (shoutout to all those Lenny users), there are ways to accomplish the same, but the syntax and ease-of-use is a little more difficult.</p>
<p><strong>What is the patch queue?</strong></p>
<p>Mercurial&#8217;s patch queue is probably seen differently depending on the environment it&#8217;s used in.  Personally, I like to think of it as &#8220;flexible changesets&#8221;, meaning until I&#8217;ve finalized my queue and pushed it upstream I can work on any revision in the queue and &#8220;refresh&#8221; the revision to include changes I make.</p>
<p><strong>What does that mean?</strong></p>
<p>If you&#8217;re familiar with version control, you know that generally speaking, changesets are immutable, if you wanted to add some extra comments to a file, you&#8217;d have to make them in a new revision, separate from the changes that make the comments relevant.  I like to keep my version control history clean and concise, and that is where the patch queue really shines.</p>
<p><strong>The patch queue in the workplace</strong></p>
<p>I work with many various Mercurial repositories on a daily basis and can have projects in-progress across multiple repositories.  Normally, I&#8217;m not going to finish a project in a single sitting, so the very first thing I do when I start working is create a patch, named for set of changes I&#8217;m planning to implement, but the name doesn&#8217;t really matter.</p>
<p>Example: hg qnew patch_queue_example</p>
<p>This initializes the patch queue and puts the &#8220;patch_queue_example&#8221; patch on top of the stack.  I am now free to make changes, and can then save them by &#8220;refreshing&#8221; the patch I&#8217;m in.</p>
<p>Example:<br />
touch newfile<br />
hg add newfile<br />
echo &#8220;Test&#8221; &gt;&gt; newfile<br />
hg qrefresh</p>
<p>Now, if you look at the head of the repository (hg heads), you&#8217;ll see a new changeset, with the patch name.</p>
<p>changeset:   0:6627f1eb79a5<br />
tag:         patch_queue_example<br />
tag:         qbase<br />
tag:         qtip<br />
tag:         tip<br />
user:        Tim &lt;example@example.com&gt;<br />
date:        Wed Oct 12 09:14:59 2011 -0400<br />
summary:     [mq]: patch_queue_example</p>
<p>This changeset includes my changes to &#8220;newfile&#8221;, which you can see by running &#8220;hg export tip&#8221;</p>
<p>Now, that I&#8217;ve made those changes, I want to work on changes to the same repository, but they don&#8217;t relate to my previous changeset, so I create a new patch.</p>
<p>hg qnew non_related_changes</p>
<p>Looking at &#8220;hg heads&#8221; again, I see a new revision:</p>
<p>changeset:   1:52cfaec4afa1<br />
tag:         non_related_changes<br />
tag:         qtip<br />
tag:         tip<br />
user:        Tim &lt;example@example.com&gt;<br />
date:        Wed Oct 12 09:19:38 2011 -0400<br />
summary:     [mq]: non_related_changes</p>
<p>Now, I&#8217;ll go about making new changes:</p>
<p>echo &#8220;These changes are unrelated to my previous changes, so I&#8217;ve created a new patch&#8221; &gt; unrelated_changes<br />
hg add unrelated_changes<br />
hg qrefresh (again, this is rolls the current changes into the current patch)<br />
hg heads</p>
<p>You&#8217;ll notice the short revision id has stayed the same (1), but the node has changed</p>
<p>changeset:   1:52cfaec4afa1<br />
tag:         non_related_changes<br />
tag:         qtip<br />
tag:         tip<br />
user:        Tim &lt;example@example.com&gt;<br />
date:        Wed Oct 12 09:19:38 2011 -0400<br />
summary:     [mq]: non_related_changes</p>
<p>You can see the changes by running &#8220;hg export tip&#8221;, you&#8217;ll see the &#8220;unrelated_changes&#8221; with the text we&#8217;ve echoed into it.</p>
<p><strong>Great, get to the useful stuff</strong></p>
<p>Now, let&#8217;s say I wanted to go back and edit the &#8220;patch_queue_example&#8221; changes, I decided I wanted to add some more files in that changeset.  Normally, you&#8217;d just add the files, and make a new commit, providing a commit message stating you forgot to do something in the previous commit, or something similar.<br />
With the patch queue I can simple &#8220;pop-off&#8221; the current changeset and go back to editing &#8220;patch_queue_example&#8221;</p>
<p>hg qpop</p>
<p>popping non_related_changes<br />
now at: patch_queue_example</p>
<p>So we&#8217;ll add a few files</p>
<p>echo &#8220;foo&#8221; &gt; example1<br />
echo &#8220;bar&#8221; &gt; example2<br />
echo &#8220;baz&#8221; &gt; example3</p>
<p>Now, add them to Mercurial</p>
<p>hg add</p>
<p>adding example1<br />
adding example2<br />
adding example3</p>
<p>Looking at a &#8220;hg status&#8221;, you&#8217;ll see the files have been added:</p>
<p>A example1<br />
A example2<br />
A example3</p>
<p>Now, let&#8217;s save the changes and go back to the &#8220;unrelated_changes&#8221; patch</p>
<p>hg qrefresh<br />
hg status</p>
<p>You&#8217;ll notice the files are no longer listed as added, because the changes have been &#8220;commited&#8221; ( != hg commit).</p>
<p>Let&#8217;s move back to the &#8220;unrelated_changes&#8221;, by &#8220;pushing&#8221; it back onto the top of the stack</p>
<p>hg qpush</p>
<p>applying non_related_changes<br />
now at: non_related_changes</p>
<p>At this point, I hope you see where this is going, you can continue doing this until you&#8217;ve finished all the relevant work.<br />
Now it&#8217;s time to convert them into &#8220;real changesets&#8221; so they can be pushed upstream, which I haven&#8217;t mentioned until now, you don&#8217;t want to try pushing patches upstream, namely because they should be considered unfinished until you&#8217;ve converted them, but also because each &#8220;hg qrefresh&#8221; you do, the node will be updated (Mercurial generates the node id based on changes/history, it <strong>will </strong>change if you change anything).</p>
<p>To convert these into real changes I want to do two things<br />
1) Edit the commit messages<br />
2) Remove them from the patch queue</p>
<p>Editing commit messages:<br />
hg qpop (to move back to the first patch)<br />
hg qrefresh -e (should drop you into a text editor, whatever you put here is the commit message)<br />
hg qpush (to move to the second patch)<br />
hg qrefresh -e (edit second patch commit message)</p>
<p>Removing from the patch queue:<br />
Note: You can remove them one at a time using &#8216;hg qfinish $rev&#8217;, but we&#8217;re going to do it all at once.<br />
hg qfinish -a</p>
<p>That&#8217;s it!  Now take a look at your log:</p>
<p>hg log</p>
<p>changeset:   1:1bb3052c69fc<br />
tag:         tip<br />
user:        Tim &lt;example@example.com&gt;<br />
date:        Wed Oct 12 09:42:47 2011 -0400<br />
summary:     This was the second commit in the Mercurial patch queue example</p>
<p>changeset:   0:5c616b8e4745<br />
user:        Tim &lt;example@example.com&gt;<br />
date:        Wed Oct 12 09:41:56 2011 -0400<br />
summary:     This was the first patch in the Mercurial patch queue examples</p>
<p>These changes are ready to be pushed upstream.</p>
<p>This article of course does not cover extensive use and some of the neat things you can do while working in the patch queue, for the brave, here are some other commands I use frequently, maybe you can figure out where they&#8217;re good for.</p>
<p>Extra commands:<br />
hg qnew -f new_patch_name<br />
hg qpush &#8211;move patch_name</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2011%2F10%2Fthe-mercurial-patch-queue&amp;title=The%20Mercurial%20Patch%20Queue" id="wpa2a_8"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2011/10/the-mercurial-patch-queue/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3 Favorite Geek Tips/Tricks</title>
		<link>http://hackyourworld.com/2009/09/3-favorite-geek-tipstricks</link>
		<comments>http://hackyourworld.com/2009/09/3-favorite-geek-tipstricks#comments</comments>
		<pubDate>Mon, 28 Sep 2009 08:02:09 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tunnel]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=73</guid>
		<description><![CDATA[Every geek should have at least a few tips or tricks that they don&#8217;t have to reference documentation or google for, here&#8217;s a few of my favorites that I use daily. 1) SSH Tunnels &#8211; Each and every time I&#8217;ve used this to cut half the time off a task I remember just how great [...]]]></description>
			<content:encoded><![CDATA[<p>Every geek should have at least a few tips or tricks that they don&#8217;t have to reference documentation or google for, here&#8217;s a few of my favorites that I use daily.</p>
<p><strong>1) SSH Tunnels</strong> &#8211; Each and every time I&#8217;ve used this to cut half the time off a task I remember just how great SSH is.</p>
<p>When to use: Anytime you need internal access to a remote network.  Or perhaps your company filters your internet usage and you need to check your gmail, this allows you to TUNNEL to your internet back at the house and ask it to do all the talking for you.</p>
<p>Example: I&#8217;m working from home, but I really need to access a &#8216;local&#8217; resource on the remote network, it could be something as simple as connecting to the router on-site that doesn&#8217;t have remote access setup.</p>
<p>Howto Linux: If you&#8217;re a linux user, use the &#8220;-D&#8221; option with your standard ssh command.  IE: ssh -l username -D 54321 sub.domain.com</p>
<p>Howto Windows: Get PuTTY.  You&#8217;ll likely want to save this configuration so, open PuTTY, type in the hostname, give the session a name, on the left hand panel navigate to Connection-&gt;SSH-&gt;Tunnels.  Under &#8220;Add New Forwarded Port&#8221; pick a port number, I like to use something high in the range, 54321 or you can pick your own.  There are two rows of radio buttons, on the top choose &#8220;Dynamic&#8221; and leave the other as &#8220;Auto&#8221;, click &#8220;Add&#8221;. Now before connecting, on the left hand panel goto Sessions and click &#8220;Save&#8221;, now click &#8220;Open&#8221;</p>
<p>Utilizing the tunnel: What this essentially does is creates a secure SOCKS proxy for you to use.  In Firefox, goto Preferences-&gt;Advanced-&gt;Network-&gt;Settings and set the SOCKS proxy address to &#8220;127.0.0.1&#8243;, that&#8217;s right, localhost (but don&#8217;t use &#8216;localhost&#8217;), then enter the port you chose earlier.  Click &#8220;Ok&#8221; and you&#8217;re now surfing securely through SSH.</p>
<p><strong>2) Converting movies to pocket size (linux only):</strong><br />
I have a simple Creative Zen 8GB Mp3 Player, it was cheap and works exactly as expected.  It plays video of the same quality popular cell phones use, occasionally I want to watch a TV episode so I pieced together a simple little alias to make it quick and painless, you&#8217;ll need mencoder for this, if your on debian/ubuntu it&#8217;s as simple as &#8216;apt-get install mencoder&#8217;</p>
<p>Code (I put in ~/.bashrc): alias encode=&#8217;mencoder -ovc xvid -oac mp3lame -vf scale=320:240 -xvidencopts fixed_quant=4 -o ${args[0]} ${args[1]}&#8217;</p>
<p>Usage: encode outputFile.avi /path/to/file/to/convert.flv|avi|mpg</p>
<p><strong>3) Using axel for super fast downloads</strong><br />
Situation: You&#8217;re remotely connected to a server you adminster, you&#8217;re crunched for time and need to download a file, maybe an ISO or perhaps a service pack, but you need it fast.  You have no problem finding links to get it, but which do you use, which will be faster?  The solution, grab 3 or 4 of those links and use axel.</p>
<p>Usage: axel -n X url1 url2 url3&#8230;<br />
Replacing &#8216;X&#8217; with the number of connections you want to use, passing as many URLs in as you&#8217;d like.  In most cases, 3 or 4 seem to be enough to max out my 2MB/s.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2009%2F09%2F3-favorite-geek-tipstricks&amp;title=3%20Favorite%20Geek%20Tips%2FTricks" id="wpa2a_12"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2009/09/3-favorite-geek-tipstricks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CLI Usefullness</title>
		<link>http://hackyourworld.com/2009/08/cli-usefullness</link>
		<comments>http://hackyourworld.com/2009/08/cli-usefullness#comments</comments>
		<pubDate>Sun, 30 Aug 2009 09:38:04 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[developement]]></category>
		<category><![CDATA[mercurial]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=39</guid>
		<description><![CDATA[For the past year and a half I&#8217;ve been doing developement in a linux based enviroment, these tools and particularly these commands have become used frequently. If anyone has something useful, post it up! Mercurial is a cross-platform, distributed revision control tool for software developers. Easy way to view most recent changes: Command: hg export [...]]]></description>
			<content:encoded><![CDATA[<p>For the past year and a half I&#8217;ve been doing developement in a linux based enviroment, these tools and particularly these commands have become used frequently.  If anyone has something useful, post it up!</p>
<p><strong>Mercurial</strong> is a <a style="text-decoration: none; color: #002bb8; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial;" title="Cross-platform" href="http://en.wikipedia.org/wiki/Cross-platform">cross-platform</a>, <a style="text-decoration: none; color: #002bb8; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial;" title="Distributed revision control" href="http://en.wikipedia.org/wiki/Distributed_revision_control">distributed revision control</a> tool for <a style="text-decoration: none; color: #002bb8; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial;" title="Software developer" href="http://en.wikipedia.org/wiki/Software_developer">software developers</a>.</p>
<p>Easy way to view most recent changes:<br />
Command: hg export tip | colordiff | less -R</p>
<p>Useful for: Quick code reviews, or just to peek at what you&#8217;ve recently done</p>
<p><strong>Manipulating text files:</strong></p>
<p><strong>SED:</strong> (<em>stream editor</em>) is a <a style="text-decoration: none; color: #002bb8; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial;" title="Unix" href="http://en.wikipedia.org/wiki/Unix">Unix</a> utility that (a) parses text files and (b) implements a <a style="text-decoration: none; color: #002bb8; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial;" title="Programming language" href="http://en.wikipedia.org/wiki/Programming_language">programming language</a> which can apply textual transformations to such files.</p>
<p>Command: sed &#8216;s/\t/&#8221;,&#8221;/g;s/^/&#8221;/;s/$/&#8221;/;s/\n//g&#8217; &gt; filename.csv<br />
In action: mysql  -uuser -ppass DBNAME -e &#8220;SELECT foo FROM bar WHERE baz = &#8216;world&#8217;&#8221; | sed .. &gt; output.csv</p>
<p>Explanation:</p>
<ul>
<li>&#8220;s/\t/&#8221;,&#8221;/g;&#8221; &#8211; Search for tabs, replace with commas</li>
<li>&#8220;s/$/&#8221;/;&#8221; &#8211; Replace last of line with quote</li>
<li>&#8220;s/\n//g&#8221; &#8211; Remove newlines</li>
</ul>
<p>Useful for: This is specifically used for converting MySQL results to csv.  I build lots of mailing lists for my employer.</p>
<p><strong>AWK</strong>: is a <a style="text-decoration: none; color: #002bb8; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial;" title="Programming language" href="http://en.wikipedia.org/wiki/Programming_language">programming language</a> that is designed for processing text-based data, either in files or data streams, and was created at <a style="text-decoration: none; color: #002bb8; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial;" title="Bell Labs" href="http://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> in the 1970s</p>
<p>Command: awk &#8216;BEGIN {OFS=&#8221;|&#8221; FS=&#8221;|&#8221;}; {print $1, $3, $5}&#8217; file.csv<br />
Explanation:</p>
<ul>
<li>OFS &#8211; Output field separator</li>
<li>FS &#8211; Field separator</li>
<li>Printing fields 1, 3, and 5</li>
</ul>
<p>Useful For: Pulling text out of delimited list and re-organizing the data, quickly and gui-free</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2009%2F08%2Fcli-usefullness&amp;title=CLI%20Usefullness" id="wpa2a_16"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2009/08/cli-usefullness/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Avimark and linux, finally can dump windows server</title>
		<link>http://hackyourworld.com/2009/07/avimark-and-linux-finally-can-dump-windows-server</link>
		<comments>http://hackyourworld.com/2009/07/avimark-and-linux-finally-can-dump-windows-server#comments</comments>
		<pubDate>Thu, 09 Jul 2009 07:04:59 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[avimark]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=16</guid>
		<description><![CDATA[There&#8217;s probably not that many people that actually care about this, but it&#8217;s taken me a long time to get to this point, so if your a tech guy at a vet&#8217;s office, enjoy! I&#8217;ve been running this successfully for almost a year now. WARNING: If you choose to do this, that&#8217;s your choice, read [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s probably not that many people that actually care about this, but it&#8217;s taken me a long time to get to this point, so if your a tech guy at a vet&#8217;s office, enjoy!  I&#8217;ve been running this successfully for almost a year now.</p>
<p>WARNING:  If you choose to do this, that&#8217;s your choice, read this through before even thinking of diving in.  In other words, I am not responsible for ANYTHING that happens as a result of what YOU choose to do.  I also assume your familiar with linux and the distro of your choosing, really, I won&#8217;t be explaining some things as this is already going to be lengthy.</p>
<p>Note: This may not be the most secure way to do things, but I feel it&#8217;s stronger than windows, I have better backups (flyback for gnome, and a few scripts I&#8217;ve written), and no one has &#8220;Administrator&#8221; access, except me of course.</p>
<p>For the past 2 years or so I&#8217;ve been the &#8216;Tech Guy&#8217; at two vet offices in my &#8220;free&#8221; time.  I&#8217;ve had one Windows 2000 server, which was actually the most reliable, compared to the Windows Small Business Server 2003.  I&#8217;ve experienced more problems than I care to recall, let&#8217;s suffice it to say, the workstations in the larger office were unreliable on network, even after a network rebuild (replace and tested all cable, made sure machines were clean, running the server on a gigabit network connection, all fun stuff).  Finally it got to the point where I was spending all my free time there, no good.  I am far more comfortable on any linux box than a windows machine, so I decided to take the plunge and make it work, installing linux servers that is.  It may sound easy, but even since the switch I&#8217;ve had many unexpected surprises.  </p>
<p><span id="more-16"></span>Office 1 was something like (It has come a LONG way):</p>
<ul>
<li>Windows 2000 server, static IP, gigabit network, file and print sharing on, rdp, that&#8217;s about it</li>
<li>15 Workstations &#8211; Slight variations of course, 2 or 3 year old dell desktops, 2.4 Ghz, 256-512mb ram, wired network</li>
<li>Most cable all came back to a 24 port switch, old and hot, however they had expanded since then so they installed 2 ROUTERS in certain points in the office, when I first got there they were both broadcasting wireless and DHCP, in addition to:</li>
<li>Bellsouth/Westel DSL Modem/Router &#8211; oh JOY! (Broadcasting DHCP also)</li>
</ul>
<p>Needless to say this office was unreliable at best.  It&#8217;s taken some time and effort but now:</p>
<p> </p>
<ul>
<li>Server (AMD 3.2Ghz, 4 gig ram, locking case, enough storage, headless now, after the switch from windows)</li>
<li>I bridged the Westel to a WRT54GS running DD-WRT v24, replacing a simple 4 port linksys switch (forgot to mention that)</li>
<li>Installed a new 24 port switch, 2 gigabit ports, with a fan :-p</li>
<li>Obviously turned the routers in the building to switches</li>
<li>All cable tests good, removed anything sketchy</li>
</ul>
<p> <br />
After installing Windows Server 2003 and still running like crap, I can&#8217;t diagnose anything because either I&#8217;m just not that Microsoft certified, or any decent software costs too much for me to justify, anything more than 10 bucks or so.  So what do I do?  Rip that Windows COA off the case, throw in my Ubuntu Intrepid cd I&#8217;m on my way (actually I&#8217;d been thinking/tinkering with this for months).  Oh, a few things that might be problems:</p>
<ul>
<li>Avimark doesn&#8217;t support linux.  Scares the hell out of the Vet.</li>
<li>Applying Avimark updates, online updates work just fine</li>
<li>Running reports, they &#8216;need&#8217; to be run on the server</li>
<li>Vet &#8216;Admin&#8217; people need access to Avimark on the server, more than just for reports.</li>
<li>You won&#8217;t/shouldn&#8217;t run the Avimark &#8220;Server&#8221; edition on linux</li>
<li>Sharing remote (over the internet) printers via CUPS</li>
</ul>
<p>The list goes on, but let&#8217;s go over a few benefits:</p>
<ul>
<li>Remote admin is <strong>so</strong> much simpler</li>
<li>You get a real server (Apache, <span style="text-decoration: underline;">SSH &#8211; complete with tunneling to easily bring their network to your home network</span>, CUPS)</li>
<li>Users won&#8217;t have physical access to your server</li>
<li>Nagios, useful for server and workstation failures</li>
<li>Crons (Backups, notifications, etc.)</li>
<li>OpenVPN</li>
<li>I also setup Wiki and put useful information for the employees there (IE: Installing a printer&#8230;)</li>
<li>Open source help desk of your choosing
<li>Oh yea, SAMBA, the single most important tool for replacing windows servers.</li>
</ul>
<p>Again, list goes on but I digress, let&#8217;s begin.</p>
<p>You can pretty much follow <a title="Ubuntu 9.04 - The Perfect Setup" href="http://www.howtoforge.com/perfect-server-ubuntu-9.04">http://www.howtoforge.com/perfect-server-ubuntu-9.04</a> if you&#8217;re reading this I trust you can do your own install and I don&#8217;t need to tell you much, you&#8217;ll need samba, I prefer to have Apache, mySQL, SSH, and it&#8217;s very handy if you can send mail, and we&#8217;ll be using VirtualBox 2.0.4, not OSE, it&#8217;s easier.</p>
<p>So once your all done and booted up, sign in, check the internet, etc.  Let&#8217;s get to the gritty, config!</p>
<p>I&#8217;ve started with the default smb.conf, this is along the lines of what I have now:<br />
<a href="http://www.hackyourworld.com/smb.conf.web" target="_blank">View it here </a></p>
<p>I&#8217;ve found it very important to make sure Avimark is happy with the permissions, access a good portion of the features before you give up.  It&#8217;s absolutely necessary to make sure the samba user has access to all files that clients will create, as well as files that will be created when &#8220;Vet Admin&#8221; are using the VRDP server, I had fun with that for some time.</p>
<p>Now, you&#8217;ll need a direct connection to the server to do things like running reports and rebuilding indexes, that&#8217;s where VirtualBox comes in.</p>
<p>Modify /etc/apt/sources.list</p>
<pre>
Add: deb http://download.virtualbox.org/virtualbox/debian intrepid non-free
Run: wget http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -

Then:
sudo aptitude install virtualbox-2.2 (or newest version)
</pre>
<p>Now, make sure your user is allowed to use VirtualBox</p>
<pre>
sudo adduser `whoami` vboxusers
</pre>
<p>Create the machine and the disk, setup the vrdp while we&#8217;re here:</p>
<pre>
VBoxManage createvm foo (be sure to add quotes if you use spaces)
VBoxManage createhd -filename .VirtualBox/foo.vdi -register -size 5120
VBoxManage modifyvm foo -hda "/home/ttpears/.VirtualBox/foo.vdi"
VBoxManage registerimage dvd /path/to/your/legal/copy/of/winxp/PRO.iso
VBoxManage registerimage dvd /usr/share/virtualbox/VBoxGuestAdditions.iso
VBoxManage modifyvm foo -dvd /path/to/your/legal/copy/of/winxp/PRO.iso
VBoxManage modifyvm foo -vrdp
VBoxManage modifyvm foo -vrdpmulticonn 1
VBoxManage startvm foo -type vrdp (I've turned this into an alias)
</pre>
<p>Using either rdesktop or mstsc connection to the host ip address, you should see the machine booting up.  Do the windows install, then change the cd (we added the GuestAdditions cd to VirtualBox earlier), shut down the vm:</p>
<pre>
VBoxManage controlvm foo poweroff
VBoxManage modifyvm foo -dvd /usr/share/virtualbox/VBoxGuestAdditions.iso
VBoxManage sharedfolder add foo -name "sharedfolder" -hostpath "/srv/avimark"
VBoxManage startvm foo -type vrdp
</pre>
<p>Now, connect again and install the utilities, makes the whole experience much more pleasing.<br />
Open a run prompt and type &#8216;net use Z: \\vboxsvr\sharedfolder&#8217;<br />
If you know anything about Avimark, you know they don&#8217;t condone using mapped drives, but they only do it because it&#8217;s unreliable, this is a whole different story here, as we are physically on the same computer.<br />
Open up the Z:\, navigate to Avimark.exe and create the shortcut on the desktop.<br />
You&#8217;ll probably want to print from here too, you can browse the network by ip, open a run box and type &#8216;\\192.168.XX.XXX&#8217;, Open or connect the printer of your choice and set the printer in Avimark.  I make RDP shortcuts on the client workstations that will be using the server connection, now you might have noticed we enabled multiconn, this allows more than one user, but not in the traditional RDP way, more VNC like, all users control the same screen.</p>
<p>Oh I wish it ended there, but one of the vet admins had been using a RDP from Office 2&#8211;> Office 1 and printing at Office 2, &#8230;.REALLY?  Well, cups to the rescue, install and setup cups, you&#8217;ll need port 631 for this (I mentioned I wouldn&#8217;t explain everything, right?).  Now you can do this at both ends and make it two way, or you can just choose one office to print remotely.  So connect to the other office&#8217;s VRDP connection, add a Internet Printer (IPP), use http://foo.fqdn.com:631/printers/printername, set as the default and set it in Avimark.</p>
<p>Again not explaining much except &#8216;how it&#8217;s done&#8217;, on top of that I broke the money rule, I broke the rule, I wanted a rock solid remote admin for the workstations so I went with RAdmin, installed the server and a matching user name and password, set them to incrementing port numbers, forwarded the ports, saved all the connections in a folder, very nice, if you need to copy the settings you can find the file in Application Data.  I find it&#8217;s very fast, and since some of the workstations have XP home, RDP wasn&#8217;t an option, DSL isn&#8217;t very friendly to VNC.</p>
<p>What more can you want?  Oh, a monitoring service, now this may be a little overkill for some people, but I like to know what&#8217;s going on at a glance, not to mention my vet doesn&#8217;t hesitate to blow up my phone.  I installed Nagios, I monitor Avimark.exe, and an assortment of system stats on each workstation, keeps me on my toes.  </p>
<p>Again, a disclaimer, don&#8217;t do this on your production machine, set it up in a dev environment and just switch it over on a weekend.<br />
<!--more--></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2009%2F07%2Favimark-and-linux-finally-can-dump-windows-server&amp;title=Avimark%20and%20linux%2C%20finally%20can%20dump%20windows%20server" id="wpa2a_20"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2009/07/avimark-and-linux-finally-can-dump-windows-server/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Cha Cha Cha Changes</title>
		<link>http://hackyourworld.com/2008/06/cha-cha-cha-changes</link>
		<comments>http://hackyourworld.com/2008/06/cha-cha-cha-changes#comments</comments>
		<pubDate>Mon, 09 Jun 2008 05:27:23 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Providers]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[gatorhost]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[totalchoice]]></category>
		<category><![CDATA[zoneedit]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=13</guid>
		<description><![CDATA[Well, a lot has changed since the last time I posted anything here.  The biggest thing, getting married, new job, and even a new host.  Being married is great, the job is in the IT field, and the host is hostgator.com.  Funny story about switching host. I signed up a few days ago, got the [...]]]></description>
			<content:encoded><![CDATA[<p>Well, a lot has changed since the last time I posted anything here.  The biggest thing, getting married, new job, and even a new host.  Being married is great, the job is in the IT field, and the host is <a href="http://hostgator.com" target="_blank">hostgator.com</a>.  Funny story about switching host.</p>
<p>I signed up a few days ago, got the welcome email, and since I use <a href="http://www.zoneedit.com" target="_blank">zoneedit.com</a> to manage the DNS (we&#8217;ll get to this later) I was in no hurry to get the DNS moved over.  I check my email last night and find an email from the hosting company saying I may be in violation of the TOS!  What?  I&#8217;m thinking I don&#8217;t even have a website there yet since I hadn&#8217;t switched the DNS, so I give them a call (mind you, they&#8217;re available 24/7 by phone via 1-800, very cool).  A guy picks up after waiting only a moment or so, again very cool, I explain the situation and ask how I could possibly be breaking the TOS before even have a website there.  The guy on the phone takes a moment to look up everything and understand what&#8217;s going on, they&#8217;ve flag it as a hacker web site.  &#8220;Really&#8230;. why?&#8221; I ask.  Of course at this point in my head I repeat the domain name, OH!  I think I understand now, so I suggest the guy on the phone visits the site to have a look for himself, which he directs to someone who can actually make the call.  We make small talk on the phone while we wait for the &#8220;reviewers&#8221;, the guy is very nice and rather knowledgeable, again very cool, he actually visits the site himself while we&#8217;re waiting and recognizes asterisk and x10!  After a few minutes the reviewers decided it was okay and instantly my account was reinstated, sweet..  This whole host switch was motivated by the terrible support and poor quality of <a href="http://totalchoicehosting.com" target="_blank">totalchoicehosting.com</a>, which I had been with for quite a few years, while other hosts improved over the years my host added nothing and kept the prices the same.  Just a small comparision:</p>
<p>TotalChoice: 2.4 gigs space<br />
80 gb a month transfer<br />
no ssh<br />
5$ a month</p>
<p>Gatorhost: 600gb<br />
6000 gb a month transfer<br />
SSH!<br />
8$ a month</p>
<p>So even if I would have bumped up to the 8.95$ plan with totalchoice the space went up to 3gb and transfer to 140gb a month, and still no ssh, still way less than I&#8217;m getting and already and<br />
the support with hostgator has been great!</p>
<p>Now to get back to <a href="http://www.zoneedit.com" target="_blank">zoneedit.com</a>.  This company has been around for quite some time now, I think I&#8217;ve been with them at least 8 or 9 years now, for free.  They offer a DNS service that rivals anything you&#8217;ve ever used.  The site may not look like much, but they let you manage up to 5 free &#8220;zones&#8221;, or domains.  So when you buy a new domain name, you use the nameservers they give you and they let you manage your dns settings, but heres the catch, it&#8217;s nearly INSTANT, anyone who ever has changed host knows that in the 24-72 hours after changing your website can be all out of sorts.  Not only do your changes take effect very quickly, you can add sub-domains that point to different ips, or even point something like foo.hackyourworld.com to google.com without the viewer even seeing the google.com.  If you find yourself wanting more control over your domain name, this is the ticket!</p>
<p>With all the changes I am planning on making this more regular, topics for the future will likely include bash, testing web pages, using ssh for demonstrations and opening your garage door by bluetooth proximity.  Hope you enjoy.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2008%2F06%2Fcha-cha-cha-changes&amp;title=Cha%20Cha%20Cha%20Changes" id="wpa2a_24"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2008/06/cha-cha-cha-changes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My favorite 10 windows tools &#8211; another list!</title>
		<link>http://hackyourworld.com/2007/12/my-favorite-10-windows-tools-another-list</link>
		<comments>http://hackyourworld.com/2007/12/my-favorite-10-windows-tools-another-list#comments</comments>
		<pubDate>Fri, 14 Dec 2007 06:08:36 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[Freeware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=11</guid>
		<description><![CDATA[I know I&#8217;ve been posting a lot today, there was just so much I had got half done and I&#8217;ve got the next few days off from work, but my fiance does not, so you&#8217;ll probably see even a couple more over the next few days, then you can expect it to slow down to [...]]]></description>
			<content:encoded><![CDATA[<p>I know I&#8217;ve been posting a lot today, there was just so much I had got half done and I&#8217;ve got the next few days off from work, but my fiance does not, so you&#8217;ll probably see even a couple more over the next few days, then you can expect it to slow down to 1-2 a week.  So yea, it&#8217;s been done over and over, but I never seem to see many tools I use on this list, so just some common things I use on windows.  I tend to look for the lightest but powerful tools, seeing how I know what happens to Windows when you stress it out, I keep my laptop running smooth and snappy using these tools.  In no particular order:</p>
<p>* Looking at the stats from the traffic of this site we&#8217;re going to assume everyone already uses Firefox.</p>
<p><span id="more-12"></span><a href="http://ftp.ssh.fi/pub/ssh/SSHSecureShellClient-3.2.9.exe" target="_blank">SSH Secure Shell Client</a> &#8211; Assuming you have a linux computer, or anything you use SSH for, this has got to be one of my most used tools, sure there is putty, but it just doesn&#8217;t provide the full functionality that this discontinued free tool does, and still is lightweight.  Includes built-in support for SFTP transfers, saves profiles, supports tunneling.</p>
<p><a href="http://www.download.com/MediaMonkey/3000-2141-10109807.html" target="_blank">Media Monkey</a> &#8211; I finally kicked winamp to curb after I found this little gem.  Keeps my music in a fashion that I can quickly find what I&#8217;m looking, or just double click the auto-generated favorites list to hear songs I commonly search for, it does this without eating all my memory or processor, something winamp hasn&#8217;t been able to do in a long time.  I can also keep my desktop shared music in the library and remove it from the playlist when I&#8217;m away from my home with just a few mouse clicks, or it just skips it without fussing.</p>
<p><a href="http://www.utorrent.com/download.php" target="_blank">µTorrent</a> &#8211; Who doesn&#8217;t use this now days?  The lightest client, but still has everything I need.  I always seem to get the best speeds using this, it could be that Azureus just eats up so much memory that it can&#8217;t keep up with the 1200KB I get off Tvtorrents.com <img src='http://hackyourworld.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  .  Make sure to tweak your connection settings to handle more connections than the default, assuming you have a fast connection.  If your using XP you&#8217;ll probably want to increase the amount of half-open connections you can have (default is 10), visit <a href="http://www.lvllord.de/?lang=en&amp;url=downloads" target="_blank">this site</a> and download the tool.</p>
<p><a href="http://www.download.com/3000-2356-10122208.html" target="_blank">LeechFTP</a> &#8211; If anyone used this FTP client before you probably still do, again I&#8217;m always looking for the lightest client, efficient, and to the point.  It&#8217;s from 1996 I think, but since I&#8217;ve started using it, I&#8217;ve tried just about every one out there and I can&#8217;t seem to find one that is as light and works as easily.  Supports bookmarking, ASCII file transfers, and multiple threads.  Was last updated in the very late 90&#8242;s, maybe one day we&#8217;ll get an update, but it still works just as well as it always has</p>
<p><a href="http://www.videolan.org/vlc/download-windows.html" target="_blank">VLC Media Player</a> &#8211; Does it get any better than this player?  I think not.  It will play damn near anything you throw at it, including unfinished AVI videos and BIN/CUE.  Supports playlist, not the best interface for the playlist, but effective and supports drag-n-drop.  You can skin it if you&#8217;d like, but I find it works fine out of the box, and I usually full screen everything anyway.  Did I mention it runs on almost every operating system natively without bogging your system down like a certain Media Player that comes with Windows?  Who could ask for more??</p>
<p><a href="http://www.2brightsparks.com/assets/software/SyncBack_Setup.zip" target="_blank">Syncback V3</a> &#8211; I do a lot of work with Windows computers that are on the same network, many times I want to sync some directories between a few users, this will do just that, create a profile for each task you want, schedule it, run it, and forget it.  Copies files even when their in use, options to make it overwrite files based on which is newer or older, or only sync files one way (more like a backup).  I tend to forget I installed this on some machines as it doesn&#8217;t slow me down even if it&#8217;s running while I&#8217;m using the computer.</p>
<p><a href="http://www.uvnc.com/download/" target="_blank">UltraVNC</a> &#8211; Let me just say I&#8217;ve used VNC clients for years, this one is the most full featured, customizable, and yet the fastest.  It will auto select connection settings, auto-scale the screen to fit the system your using.  The server allows for silent installs and disabling user control, and will even hide the icon for you.  Useful on systems you don&#8217;t want people knowing it&#8217;s running in the background.</p>
<p><a href="http://www.magicdisc.net/setup_magicdisc.exe" target="_blank">MagicDisc</a> &#8211; So you downloaded an ISO/BIN or pretty much any other type of compressed CD that you would normally be burning before you use.  This little tool is a lifesaver sometimes, you can mount (acting as a virtual cdrom drive) almost all types of compressed CD formats to a virtual drive and use it without burning, even will install into the context menu (right click menu) so you don&#8217;t have to open the program first.</p>
<p><a href="http://sourceforge.net/project/showfiles.php?group_id=95717&amp;package_id=102072" target="_blank">Notepad++</a> &#8211; Tired of notepad screwing up your perfectly formatted text/php/perl/ASCII files?  Yea it gets old real fast, that when I wanted a quick replacement for notepad.  Supports tabs, so you don&#8217;t end up with 10 or 20 open at a time.  Other than that, just a basic text editor that won&#8217;t mess up our formatting, pretty straightforward, again, lightweight, and free.  When downloading you&#8217;ll most likely want the .exe</p>
<p><a href="http://www.codesector.com/download.php" target="_blank">Teracopy</a> &#8211; Another replacement for a standard Windows tool.  This will make coping files a breeze.  How many times have you been coping files and Windows encounters a small error and the 20 minute file transfer cancels itself.  Just once too many times it happened to me, I went in search and found this drop-in replacement for Windows copy.  It will let you adjust the buffer size you use as well, has a few more bells and whistles, but I&#8217;m just glad to never see &#8220;could not copy xxxxx&#8221; and my whole transfer get canceled, as it will ask you what you want to do if it encounters an error, which doesn&#8217;t happen nearly as much.</p>
<p>I hope you enjoy these free tools as much as I do, this is what makes me able to stand using Windows for extended periods of time.  None of these files should negatively effect Windows.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2007%2F12%2Fmy-favorite-10-windows-tools-another-list&amp;title=My%20favorite%2010%20windows%20tools%20%26%238211%3B%20another%20list%21" id="wpa2a_28"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2007/12/my-favorite-10-windows-tools-another-list/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>X10 Scheduling</title>
		<link>http://hackyourworld.com/2007/12/x10-scheduling</link>
		<comments>http://hackyourworld.com/2007/12/x10-scheduling#comments</comments>
		<pubDate>Thu, 13 Dec 2007 17:59:43 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[X10]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=10</guid>
		<description><![CDATA[In the last entry we just did some basics of the X10 system, now we&#8217;ll go over using them efficiently. The CM11A device allows you to upload a schedule to it that it will store in it&#8217;s own memory, so even if your computer is off, your X10 still works without missing a beat. All [...]]]></description>
			<content:encoded><![CDATA[<p>In the last entry we just did some basics of the X10 system, now we&#8217;ll go over using them efficiently.  The CM11A device allows you to upload a schedule to it that it will store in it&#8217;s own memory, so even if your computer is off, your X10 still works without missing a beat.  All it takes is a small config file stored in /etc/heyu (or in ~/.heyu) called x10.sched .   Heyu comes with a sample file, it&#8217;s very lengthy and can be confusing to some people.</p>
<p><span id="more-11"></span>Let&#8217;s just start by explaining what each section does, below is some of my x10.sched:</p>
<p>timer smtwtfs 01/01-12/31 05:20 07:30 kitchen_on kitchen_off<br />
macro    kitchen_on 0  on a3-4<br />
macro    kitchen_off 0  off a3-4</p>
<p>The above will run a timer every day of the week, from 5:20 AM to 7:30AM.  The kitchen_on command will be run at 5:20AM (when my fiance is getting up.  The kitchen_off command will be run at 7:30AM when the sun has come up and she is normally gone to work.  The macro section tells the system what you want the kitchen_on/kitchen_off to actually do.  As you can see the first macro will turn devices A3 &amp; A4 on, being my kitchen overhead light and the laundry room.  The second macro will turn the same devices off.  Pretty basic, but effective, the 0 in between the macro name and the command seems to be a default and is needed.  Now onwards to triggers!</p>
<p>trigger a9          off              a9off<br />
macro    a9off 0  off a1-2,6</p>
<p>The above will trigger the macro a9off when device A9 is turned off.  It&#8217;s useful for tying whole living rooms together, and works vice versa for turning things on assuming you change the off commands to on.  The macro a9off is set to control devices A1, A2, and A6.</p>
<p>Below is what I use for my outside lights, I want them to come on right about the time it gets dark outside and turn off about the time I usually go to bed.  Who really likes walking up to your house, hands full and have to fumble for your key in the dark?   As you can tell, it runs 7 days a week, the whole year.  Now these look a little bit different than the previous, we have two macros running at the same time?  The first macro on the first timer will turn the light on, the second macro will make sure it&#8217;s set to 100% power before we start to dim it, yes we&#8217;re going to dim these lights every day, I don&#8217;t see much point in using full bright lights, I want enough to see, but I can save a few bucks a months by toning down the power usage.  So the second timer will run the macro that will dim the lights, as you can see the second time in the second time is 00:00 and the macro for that time is null, meaning it will do nothing.  The third timer is the one that will turn off the light at 12:30am and again I use a null for the second macro since I don&#8217;t need it.</p>
<p>timer smtwtfs 01/01-12/31 17:45 17:45 outside_on outside_bright<br />
timer smtwtfs 01/01-12/31 17:45 00:00 outside_dim null<br />
timer smtwtfs 01/01-12/31 00:30 00:00 outside_off null<br />
macro     outside_on 0  on a5<br />
macro     outside_bright 0  bright a5 22<br />
macro     outside_dim 0  dim a5 9<br />
macro    outside_off 0  off a5</p>
<p>This timer below is kinda like a failsafe if I don&#8217;t turn out my lights, I run it every day except Friday and Saturday since I&#8217;m normally up later, and sometimes into the early and light AM.</p>
<p>timer smtwt.. 01/01-12/31 01:30 00:00 lightsout null<br />
macro      lightsout 0 off a2-4,6</p>
<p>This should give you a basic understanding on writing your own schedule, and using triggers to perhaps even &#8216;set the mood&#8217; with the push of ONE button, or even a timer :-p</p>
<p>Now how do we make the CM11A use it?  Well that&#8217;s easy, once you&#8217;ve typed it all up, save it to either /etc/heyu/x10.sched or /home/YOURHOME/.heyu/x10.sched.  Then just open up a terminal on your box that has the CM11A and heyu and type heyu upload this should tell you it got uploaded successfully and your good to go.</p>
<p>On a side note, in the last entry there was a comment by Dan, visiting his page I saw some people showed interest in having an alarm clock that would slowly turn lights on.  Well here it is, set a timer for the same time your alarm clock is set for, and you can even have it increase the brightness every few minutes.  And there you have a homebrew way to make it seem like your alarm clock and lights are in cahoots together.</p>
<p>We&#8217;re still only scratching the surface of what linux can do when it&#8217;s tied to the rest of your world.<br />
<a href="http://www.hackyourworld.com/files/x10.sched">Click here</a> to download a copy of my x10.sched</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2007%2F12%2Fx10-scheduling&amp;title=X10%20Scheduling" id="wpa2a_32"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2007/12/x10-scheduling/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>$50 Home Automation</title>
		<link>http://hackyourworld.com/2007/11/50-home-automation</link>
		<comments>http://hackyourworld.com/2007/11/50-home-automation#comments</comments>
		<pubDate>Tue, 27 Nov 2007 06:27:42 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[X10]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=9</guid>
		<description><![CDATA[So who wouldn&#8217;t love to pull up to your house, get out of your car, walk in your house and all the lights and devices you love are already on? Or maybe your just want to save on your electric bill, either way with about 50 bucks you&#8217;ll be on your way to home automation [...]]]></description>
			<content:encoded><![CDATA[<p>So who wouldn&#8217;t love to pull up to your house, get out of your car, walk in your house and all the lights and devices you love are already on?  Or maybe your just want to save on your electric bill, either way with about 50 bucks you&#8217;ll be on your way to home automation paradise.  This guide is not exactly intended from someone not at least kinda familiar with linux, and you should have at least used a screwdriver once or twice.</p>
<p>This requires:</p>
<ol>
<li>Linux computer (I&#8217;m using Ubuntu 7.10, also works with CentOS5)</li>
<li> <a href="http://search.ebay.com/search/search.dll?query=WS467&amp;MfcISAPICommand=GetResult&amp;ht=1&amp;ebaytag1=ebayreg&amp;srchdesc=n&amp;maxRecordsReturned=300&amp;maxRecordsPerPage=50&amp;SortProperty=MetaEndSort" title="WS467" target="_blank">WS467</a> Modules &#8211; Their either 7 bucks a piece off eBay or 3 for 15 &#8211; Replacement wall switches</li>
<li><a href="http://search.ebay.com/search/search.dll?query=CM11A&amp;MfcISAPICommand=GetResult&amp;ht=1&amp;ebaytag1=ebayreg&amp;srchdesc=n&amp;maxRecordsReturned=300&amp;maxRecordsPerPage=50&amp;SortProperty=MetaEndSort" title="CM11A" target="_blank">CM11a</a> &#8211; About 10 bucks, runs the computer interface for the x10 control, stores macros. Uses a serial port, make sure you got one still!</li>
<li>Optional &#8211; Remotes -
<ol>
<li><a href="http://search.ebay.com/search/search.dll?query=WS467&amp;MfcISAPICommand=GetResult&amp;ht=1&amp;ebaytag1=ebayreg&amp;srchdesc=n&amp;maxRecordsReturned=300&amp;maxRecordsPerPage=50&amp;SortProperty=MetaEndSort" title="KR19A" target="_blank">KR19A </a>- This keychain remote control two devices, On/Off/Dim &#8211; Simple &amp; small</li>
<li><a href="http://search.ebay.com/search/search.dll?from=R40&amp;_trksid=m37&amp;satitle=UR73A" title="UR73A" target="_blank">UR73A</a> &#8211; This remote will do it all, don&#8217;t get up from your lazy boy just to turn off lights!</li>
</ol>
</li>
<li>Very little experience with wiring.</li>
<li>1 Flat-head &amp; 1 Phillips screwdriver</li>
<li>A volt-meter is a GREAT investment, not necessary, but can eliminate questions and problems very quickly.</li>
</ol>
<p><span id="more-10"></span>Let&#8217;s start with the CM11A.  This little module will be the heartbeat to the whole system.  You&#8217;ll want to plug in directly to the wall, try to avoid power strips and such.  Plug it in to your linux box.  Now we need the software to run it, I use heyu, very effective command line tool.  You can download from <a href="http://heyu.tanj.com/download/heyu-2.1.2.tgz" title="http://heyu.tanj.com/download/heyu-2.1.2.tgz" target="_blank">http://heyu.tanj.com/download/heyu-2.1.2.tgz</a><br />
You can use the below to setup the program.</p>
<p>cd ~<br />
wget http://heyu.tanj.com/download/heyu-2.1.2.tgz<br />
tar -zxvf heyu-2.1.2.tgz<br />
./Configure<br />
make<br />
make install (make sure your root or using sudo)</p>
<p>It should ask you where you would like to store the config file, I tend to use /etc/heyu.<br />
The default housecode is set to A, so assuming you use A, the only thing you may need to change is the serial port which is set to /dev/ttyS0 by default, but normally it&#8217;s good to go.  Let&#8217;s install a module and see what happens.</p>
<p>So, your got your WS467 out of the box and you can&#8217;t wait to see this in action, let&#8217;s just make this clear early, if you shock yourself, that&#8217;s your problem.  That being said, let&#8217;s find the circuit in your breaker that your going to be working on.  Clearly if your breaker is labeled this should be easy, if not, leave the light on, and turn off the circuit, if the light goes out, your ready to go, otherwise keep going until you got the right one.  Once you&#8217;ve found it, unscrew the two screws holding in the plate, pull the plate off and you should see two more screws, remove those as well, and pull the switch out enough to see how the wires are attached, generally it&#8217;s just wrapped around a screw and tightened.  You may also have a copper wire run with other two, that would be a ground wire, the X10 module has a connection for it on the side.  You&#8217;ll want to take the two wires off the original switch and twist one wire of the X10 module to each one, and I can&#8217;t stress enough it&#8217;s important to have a GOOD connection, make sure the wire nut is twisted on very tight.  Make sure to set the housecode (A,B,C&#8230;) and the unit number (1-16) and write this down somewhere.  Now before you push it all back in the wall you may want to turn on the circuit, test the light and test the automation.  Back to the computer!  Pull up a terminal and type:</p>
<p>heyu on A#  (change # to your module number)<br />
&#8212;-Watch light&#8212;-<br />
heyu off A#<br />
&#8212;-Watch light&#8212;-</p>
<p>Hopefully you just saw the lights go on and off.  If it did not, some common problems:</p>
<ol>
<li>Check the serial port</li>
<li>Check to make sure you have the right unit number</li>
<li>The signal will degrade over distance, large houses may require boosters or repeaters to get from end to end.</li>
</ol>
<p>So ahead and replace those other two switches to wanted to automate, carry the keychain with your keys, turn on your lights when you walk up.   In time I&#8217;ll go into scheduling lights on and off at certain times, tying some of your modules to your bluetooth proximity, very cheap motion sensors, and more than just a couple light switches.  Maybe even setup a special IVR on your Asterisk server to control your home while your away from home!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2007%2F11%2F50-home-automation&amp;title=%2450%20Home%20Automation" id="wpa2a_36"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2007/11/50-home-automation/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Trixbox &#8211; Asterisk 1.4 &amp; FreePBX 2.3.0 &#8211; w00t</title>
		<link>http://hackyourworld.com/2007/09/trixbox-asterisk-14-freepbx-230-w00t</link>
		<comments>http://hackyourworld.com/2007/09/trixbox-asterisk-14-freepbx-230-w00t#comments</comments>
		<pubDate>Mon, 24 Sep 2007 10:13:40 +0000</pubDate>
		<dc:creator>Tim P.</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Trixbox]]></category>

		<guid isPermaLink="false">http://hackyourworld.com/?p=8</guid>
		<description><![CDATA[We&#8217;re going to cover a lot of ground, this &#8216;guide&#8217; assumes you at least know what linux is and hopefully at least used it once or twice. The intention here is a complete walk thru to get a Trixbox system (2.2 or higher) up an running for a home setup. Some hardware/software you might want: [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re going to cover a lot of ground, this &#8216;guide&#8217; assumes you at least know what linux is and hopefully at least used it once or twice.<br />
The intention here is a complete walk thru to get a Trixbox system (2.2 or higher) up an running for a home setup. Some hardware/software you might want:</p>
<p>Sipura 2000 (you can still find them some places, if you can&#8217;t the Linksys PAP2-NA should work just fine assuming you get an unlocked one)</p>
<p>You will want an old clunker PC that has a CDROM and a hard drive you can format. The only thing it should require in the end is something a little faster than 500mhz, one power cord, and one network cord.<br />
You will also want a cheap headset or microphone to test with your computer.</p>
<p>Your going to want some sort of SSH client. I use SSH Secure Shell from www.ssh.com (direct link). Putty will work fine as well.</p>
<p><span id="more-9"></span>What provider will you use?<br />
Broadvoice &#8211; Steep activation fee, lots of complaints in the past, but nothing but good, reliable service for me the past 6 months. $20 a month for     unlimited World (including something like 30 countries). Instant setup!<br />
Axvoice &#8211; Good solid service for the price, occasionally get all circuits busy when dialing international or local. Good unlimited plan for $18.99 for US/CAN<br />
Telasip &#8211; Solid slightly more cutting edge service, $14.95 for 1500 outbound US/CAN unlimited incoming, and can pass your own callerID (useful later)</p>
<p>Of course you don&#8217;t have to use any of these, there are tons of other providers, but I run all these everyday and can recommend them all. This guide<br />
will also use these three for sample setups.</p>
<p>Now that you got all that, download the ISO from www.trixbox.org (direct link). Burn it off, and pop it in your clunker, turn it on and hope that power<br />
supply still fires up ;-p. You&#8217;ll be presented very few options to go wrong with, it should just breeze through, ask a couple basics like the password,<br />
then it should spit out the CD and reboot. At this point you should login as root and run &#8216;netconfig&#8217;. You want to give the box a static IP since you<br />
will have to forward some ports to it later. Give it an IP that is out of the range of your DHCP on your router and set the nameserver and gateway to<br />
your router&#8217;s IP. Type &#8216;ifdown eth0 &amp;&amp; ifup eth0&#8242; this should restart the network and connect you to the internet. You should not need a<br />
keyboard anymore for your trixbox install.</p>
<p>Fire up Firefox (or IE if you swing that way) and point it to http://yourtrixbox<br />
This should give you:</p>
<p><img src="http://www.geekreviewed.com/trixbox/welcome.JPG" height="350" width="400" /></p>
<p>Go ahead and fire up SSH and connect as root to your asterisk server. Now the first thing you want to do is change your passwords. We have a couple to change. Run the following as root:</p>
<p>passwd-maint<br />
passwd-amp<br />
passwd-meetme</p>
<p>When you change the FreePBX password you&#8217;ll have to update two files as well.</p>
<p>nano -w /etc/asterisk/manager.conf</p>
<p>Find &#8216;secret = amp11&#8242; under the [admin] section. Change &#8216;amp11&#8242; to your new desired password. CTRL+X followed by Y to save and exit.</p>
<p>Now, we need to edit the /etc/amportal.conf to use our new password.</p>
<p>nano -w /etc/amportal.conf</p>
<p>Find the line that says &#8216;AMPMGRPASS=amp11&#8242; and change the &#8216;amp11&#8242; to the new password you just set. CTRL+X followed by Y to save and exit.</p>
<p>amportal restart</p>
<p>Chaning mySQL passwords</p>
<p>In the same terminal:</p>
<p>mysqladmin -u asteriskuser -p password newpass</p>
<p>The default pass should be amp109, replace newpass with your new password</p>
<p>Update /etc/amportal.conf to use our new password.</p>
<p>nano -w /etc/amportal.conf</p>
<p>Find the line that says &#8216;AMPDBPASS=amp109&#8242; and change amp109 to your new password, CTRL+X followed by Y to save and exit.</p>
<p>Still more, /etc/asterisk/cdr_mysql.conf</p>
<p>nano -w /etc/asterisk/cdr_mysql.conf</p>
<p>Find the line that says &#8216;password=amp109&#8242; and change the &#8216;amp109&#8242; to the new password you just set. CTRL+X followed by &#8216;Y&#8217; to save and exit.</p>
<p>service mysqld restart<br />
amportal restart</p>
<p>To change the default mysql root password, do the following:</p>
<p>mysqladmin -u root -p password newpass</p>
<p>The default should be passw0rd (notice the zero), change newpass to your password you just set.</p>
<p>Phew! Just for security eh?</p>
<p>Now you should be able to login by press &#8216;switch&#8217; at the top right of the Trixbox page, enter &#8216;maint&#8217; for the username and your maint password you just set. Once in you should hover over the Asterisk tab and click FreePBX, find the Module Admin and Check for updates online, upgrade all you can, click process, then come back around and install all the modules you want, I generally leave out the game ;-p. Click process and then click the Apply Changes near the top of the screen, the window will grey out and the server should re-write it&#8217;s config files and restart (not the whole computer).</p>
<p>Setting Up Extensions!</p>
<p>Click the Extensions link in FreePBX, your going to be adding a Generic SIP Device. You only need to fill out the Display Name (House), Extension 2000, and make sure you set a secret for the device (a simple password). You can turn on voicemail if you&#8217;d like.  Do the same for extension 2010 but make the display name Desktop (or Laptop).<br />
Now you should have two extensions, 2000 (House) and 2010 (Desktop)</p>
<p>Let&#8217;s move on to Ring Groups, there is order to the chaos I&#8217;m doing these in.<br />
We&#8217;re going to use Ring Groups to give our cellphone pseudo extension numbers.  It&#8217;s going to allow us to forward calls directly to your cellphone.<br />
Click on the Ring Groups and follow the below picture to add your first.<br />
Make sure you change the 123456789 to your cell phone<br />
<img src="http://www.geekreviewed.com/trixbox/ringgroup.jpg" /></p>
<p>Then do the same thing again, but use your wife/girlfriend&#8217;s cell phone number and make the Ring Group Number 3001<br />
You should have then both terminate on no answer since your cellphone has voicemail.<br />
Apply the settings and let&#8217;s move on.</p>
<p>Why don&#8217;t we connect your softphone so we can do some system recordings.<br />
Download Xlite (<a href="http://storage.counterpath.com/downloads/X-Lite_Win32_1011s_41150.exe">Windows</a>) (<a href="http://storage.counterpath.com/downloads/X-Lite_Install.tar.gz">Linux</a>)<br />
Install and bring up the Sip Account Settings.<br />
You need:<br />
Display Name: Desktop<br />
Username:      2010<br />
Password:      YOURSECRET<br />
Auth. User:   2010<br />
Domain:          192.168.x.x &lt;&#8212; YOUR TRIXBOX IP</p>
<p>If everything goes well it will register and say your username in the display.<br />
Now we&#8217;re going to head over to the system recordings page, enter your extension number 2010, dial *77, recording a message for your default<br />
greeting, I find it helps to write it out before. IE: &#8220;Hi, you&#8217;ve reach Bob &amp; Sally at 1800BOBSALLY.  Press 1 for House, Press 2 for Bob Cell, Press 3 for Sally cell&#8230;.&#8221;<br />
If dialing *77 doesn&#8217;t perform as advertised just dial *99 and you get the same options.<br />
Save the recording with your own name.<br />
Now that&#8217;s all done we can build the IVR! Oh! One more thing, click the DISA link, enter Default for the name, enter a pin and save the settings.<br />
Now Apply the settings and we&#8217;ll move on.</p>
<p>Building the IVR</p>
<p>For a small system like this, this is pretty simple and straight forward.  Going to the IVR link in FreePBX you can fill out a name for IVR<br />
I use something like House.  You can leave the default settings until you get to the bottom, you should have 3 blank areas with some options to the right of them. Enter 1 in the first blank box, and select your extension for the House in your options to the right. Enter 2 in the next box, and select Bob Cell from the Ring Group option. Enter 3 in the next box, you guessed it, Sally cell.<br />
Save the settings at the bottom, then click Increase options once. In the new box, enter 4 and select the DISA/Default option (&#8230;but I didn&#8217;t record an option for number 4&#8230;&#8230;)<br />
Save and Apply the settings.</p>
<p>Let&#8217;s pull you back to the ol&#8217; SSH client as root:<br />
ping all these servers and find the one that has the lowest ping time (1ms would be good)<br />
proxy.lax.broadvoice.com<br />
proxy.dca.broadvoice.com<br />
proxy.mia.broadvoice.com<br />
proxy.atl.broadvoice.com<br />
proxy.chi.broadvoice.com<br />
proxy.bos.broadvoice.com<br />
proxy.nyc.broadvoice.com</p>
<p>Then, nano -w /etc/hosts and make a line like the following substitute the ip for your fastest:<br />
12.34.56.78           sip.broadvoice.com</p>
<p>CTRL + O to save CTRL + X to exit</p>
<p>On to the trunks!</p>
<p>Trunks are kinda like the equivelent to a &#8220;line&#8221; in a Ma Bell world.  It&#8217;s really going to be our connection to our SIP provider.  For now let&#8217;s<br />
assume you went with BroadVoice.</p>
<p>Set Outbound CallerID: NAME HERE &lt;NUMBERHERE&gt;<br />
Max Channels: 2 (two calls total on the line at once)</p>
<p>Dial Rules (this will catch all 10 digit dialing and some):<br />
1+NXXXXXXXXX<br />
NXXNXXNXXX<br />
1NXXNXXNXXX</p>
<p>Give the trunk a name like broadvoice</p>
<p>Peer Details:<br />
authname=1234567890<br />
canreinvite=no ;if your behind NAT<br />
context=from-trunk<br />
dtmf=inband<br />
dtmfmode=inband<br />
fromdomain=sip.broadvoice.com<br />
fromuser=1234567890<br />
host=sip.broadvoice.com<br />
insecure=very<br />
secret=YOURSECRET<br />
type=peer<br />
user=phone<br />
username=1234567890</p>
<p>Blank the incoming fields and move down to the registration.  It will be something like the following:<br />
1234567890:PASSWORD@sip.broadvoice.com/1234567890</p>
<p>Save the settings &amp; Apply.</p>
<p>Let&#8217;s setup the Outbound Routes<br />
There is a default blank that we can just edit.  In the dial rules this is what I have:<br />
911<br />
011.<br />
1+NXXNXXXXXX<br />
1800NXXXXXX<br />
1866NXXXXXX<br />
1877NXXXXXX<br />
1888NXXXXXX<br />
1NXXNXXXXXX<br />
NXXNXXXXXX<br />
NXX+NXXXXXX</p>
<p>This catches pretty much everything and throws it to my trunks.  If you don&#8217;t have 911 or International in your plan remove 911 and 011.<br />
At the bottom you can select your Broadvoice trunk, save &amp; apply.</p>
<p>Now just go back to your Inbound Routes and change the default destination to the IVR and calls should end up there.<br />
Pick up your cellphone and run a test.<br />
Don&#8217;t forget with the SSH client you can type &#8216;asterisk -r&#8217; as root and connect to the server to watch calls in real time.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhackyourworld.com%2F2007%2F09%2Ftrixbox-asterisk-14-freepbx-230-w00t&amp;title=Trixbox%20%26%238211%3B%20Asterisk%201.4%20%26%23038%3B%20FreePBX%202.3.0%20%26%238211%3B%20w00t" id="wpa2a_40"><img src="http://hackyourworld.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://hackyourworld.com/2007/09/trixbox-asterisk-14-freepbx-230-w00t/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

