<?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>LiveAverage &#187; Features</title>
	<atom:link href="http://liveaverage.com/category/features/feed/" rel="self" type="application/rss+xml" />
	<link>http://liveaverage.com</link>
	<description>I can&#039;t afford to live any other way.</description>
	<lastBuildDate>Tue, 08 May 2012 21:26:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How-to: GSX650F &amp; Vortex 41mm Clip-ons</title>
		<link>http://liveaverage.com/features/living/how-to-gsx650f-vortex-41mm-clip-ons/</link>
		<comments>http://liveaverage.com/features/living/how-to-gsx650f-vortex-41mm-clip-ons/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 21:00:46 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Living]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=84</guid>
		<description><![CDATA[Author Note: I wrote this article when I still owned my GSX650F. I&#8217;ve since traded-up for a 2007 GSXR600 (and I couldn&#8217;t be happier). I might have some images to post with this tutorial, but I&#8217;ll post them when/if I can find them. Hopefully the write-up is enough to help&#8230; Good luck, modders. Prior to [...]]]></description>
			<content:encoded><![CDATA[<p><em>Author Note: I wrote this article when I still </em><em>owned my GSX650F. I&#8217;ve since traded-up for a 2007 GSXR600 (and I couldn&#8217;t be happier). I might have some images to post with this tutorial, but I&#8217;ll post them when/if I can find them. Hopefully the write-up is enough to help&#8230; Good luck, modders.</em></p>
<p><a href="http://liveaverage.com/wp-content/themes/mimbo2.2/images/08VortexClipOnsLG1.jpg"><img class="alignleft size-thumbnail wp-image-317" title="Vortex 41MM Clip-ons" src="http://liveaverage.com/wp-content/themes/mimbo2.2/images/08VortexClipOnsLG1-150x150.jpg" alt="Vortex 41MM Clip-ons" width="150" height="150" /></a>Prior to my experiences with the Suzuki GSX650F, I was the semi-proud owner of a Hyosung GT250R. I loved the body styling, aggressive riding position, cheap price ($3300 OTD) and gas mileage, but I realized something more powerful was necessary for longer trips (and riding 2-up with the Mrs.).  This brought me to my evolving 2008 GSX650F, which has the power, speed, and styling qualities that I was looking for, but still lacked the aggressive riding position I had with the Hyosung.</p>
<p>Vortex Racing had the answer to my commuter bar problem: 41mm clip-ons. They&#8217;re available in three different colors: silver (aluminum), black, and gold. Additionally, Vortex manufactures after-market bar ends (weighted or unweighted) for their clip-ons &#8212; which are certainly necessary after losing the dampers. The install took less than 45 minutes, but I&#8217;ll admit I made the mistake of loosening one of the fork bolts <em>too</em> much while lowering the front-end (required for installation on the GSX650F). This inevitably resulted in a lopsided front after the left fork pushed right through the triple-tree clamp. An extra 10 minutes of jacking the bike up and re-adjustment was required. Here&#8217;s a concise set of steps used to complete the project:</p>
<p><span id="more-84"></span></p>
<blockquote><p>Materials:</p>
<ul>
<li>(1) Pair of Vortex 41mm Clip-on handle bars (clamps and bars)</li>
<li>(1) Pair of new grips (optional)</li>
<li>(1) Pair of bar-end sliders, preferably weighted (optional)</li>
<li>Set of allen keys/wrenches</li>
<li>Philips-head screwdriver</li>
<li>Rubber mallet or lightweight hammer wrapped in cloth</li>
<li>Patience, maybe some coffee</li>
</ul>
</blockquote>
<li>Remove the control housings, levers, and grips from the handlebars. If one or both of your grips happen to be glued/adhered to the handlebars, you may want to remove all the control housings &amp; levers first, then cut the grip(s) off with shears after the bars are away from the bike. To access the (2) phillips-head screws holding the switch housings on the bars, it may be necessary to first loosen the handlebar clamps and rotate the bar toward the front of the bike.  The levers should have two-piece clamps holding them to the bars.** Be careful when separating the throttle control housing. It may be best to loosen the housing and slide the throttle control assembly off the bar since the plastic throttle sleeve and throttle control housing are connected with cabling.</li>
<li>When all the controls and levers are safely away from the bars (and bike body), loosen and remove the handlebar clamps using the appropriate allen wrench. Set the bars aside and re-tighten the clamps back to the triple-tree, or you may want to completely remove the clamp assembly. Your choice.</li>
<li>Next you need to very carefully (and I can&#8217;t stress this enough &#8212; <em>very carefully</em>) loosen the (3) fork bolts [ (1) on the triple-tree clamp, (2) above the front fender] on <em>one </em>side of the bike. It is strongly recommended to only perform this procedure on one side of the bike at a time to prevent your entire front-end from sliding down the forks (like mine!). You&#8217;ll want to leave the three bolts fairly snug, then use the rubber mallet to hammer on the triple-tree clamp until the fork begins to push through the top of the triple-tree. Keep your clip-ons nearby to measure how much of the fork you&#8217;ll require above the triple-tree.</li>
<li>Once the clip-on clamp gap is filled from top-to-bottom with the fork, re-tighten the (3) fork bolts to prevent the front-end from sliding. Leave the clip-on clamp loose for later adjustments (trust me, you&#8217;ll be making plenty of them).</li>
<li>Repeat these same steps for the other side of the bike, making certain you don&#8217;t loosen the (3) fork bolts <em>too</em> much. Again, don&#8217;t over-tighten the clip-on hardware until all controls are remounted and all adjustments are made. Go ahead and tighten the the bar clamps, making sure the bars are positioned the furthest distance from the bike/tank (the black bar end near the dash should almost be under the bar clamp) .</li>
<li>Next, begin remounting your control housings and levers onto the new clip-on bars. Don&#8217;t tighten hardware completely. Instead, tighten just enough to wiggle or move the housings/levers across the bars for adjustments.</li>
<li> Now here comes the tedious step: adjustment. If you have a motorcycle jack or center stand (I don&#8217;t), put the bike on it if you haven&#8217;t already. You need to find the sweet-spot for clip-on positioning&#8230; You should be able to cut hard-left or hard-right without pinching your hands between the bars and the tank <em>and</em> without hitting the control housings or levers on the bike&#8217;s dash. Yes, it can be done. I was more worried about my hands getting pinched between the bars and tank, so my controls are <em>very</em> close  (millimeters) to the dash, but they <em>do </em>clear them without rubbing or scraping.
<ol>
<li>If you don&#8217;t have a jack, you&#8217;ll be doing a lot of tightening/loosening and turning to test for clearance. The only constant is the <em>bar</em> positioning on the clip-on clamps. The black, plastic bar end near the center of the dash should be as close as possible to the clamp (without actually clamping down on it).</li>
<li>Adjust the angle of the clip-ons by rotating them around the forks.</li>
<li>Adjust the x-axis positioning of the controls by sliding them back and forth across the clip-on bars. Any scratches on the bars can generally be polished out with Mother&#8217;s Aluminum polish.<em>NOTE: you may need to mount the plastic throttle assembly a bit more inside if you&#8217;re installing bar-ends (weighted or unweighted). Otherwise, the grips (once installed) may rub on the inside of the bar-end, causing the throttle to stick (uh&#8230; not good). </em><em> </em></li>
<li>Adjust the y-axis positioning of the controls by rotating them up and down on the bars.</li>
<li>Keep turning the bars left and right to test for clearance, repeat as needed.<em>** NOTE: It is extremely helpful to sit on the bike while making some of these adjustments.  It may also help to temporarily remove your cables and tubing from the cable management arm(s) to permit a more free range of movement while adjusting. Once the positioning is correct, be sure to test for adequate cable/tubing slack and safe movement when turning hard-left or hard-right.<br />
</em></li>
</ol>
</li>
<li>Whenever your adjustment are complete, it&#8217;s time to tighten the control housings and clip-on clamps. You may need a socket wrench with a bit adapter to tighten some of the control housing(s) due to their awkward position.</li>
<li>Lastly, install your grips (pre-existing or new) according to their instruction guide (i.e. using adhesive, soapy water, etc.). Depending on the type and style of grips, and whether or not you purchased bar-ends, you may need to cut the end-cap on the grips. I used fairly generic Pro-Grip grips that required me to cut the ends off so I could mount my Vortex bar-ends.</li>
<p>As mentioned elsewhere, make sure to take it slow and easy on your first ride. Turning is <em>much </em>easier (and quicker) with the new bars. Also be sure to carry a set of allen keys for any adjustments (or clamp tightening) while out on your first ride.</p>
<p>Sources:</p>
<p>http://www.gsx650f.biz/lowering-t915.html?highlight=triple</p>
<p>http://www.squidbusters.com/sb/showthread.php?threadid=682</p>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/living/how-to-gsx650f-vortex-41mm-clip-ons/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Add &#8216;Submitted Tickets&#8217; Listing Page for Joomla! RSTickets</title>
		<link>http://liveaverage.com/features/coding/add-submitted-tickets-listing-page-for-joomla-rstickets/</link>
		<comments>http://liveaverage.com/features/coding/add-submitted-tickets-listing-page-for-joomla-rstickets/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 17:15:21 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=202</guid>
		<description><![CDATA[If you haven&#8217;t heard, RSTickets! is an advanced Joomla! Help Desk ticketing system that allows you (or a team of yous) to manage and keep track of your clients&#8217; issues. It&#8217;s actually one of the few effective, useful Help Desk systems available for the Joomla! 1.5+ framework that I would personally recommend. Unfortunately, it&#8217;s still [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Joomla!" src="http://cdn.joomla.org/images/logo.png" alt="" width="235" height="46" /></p>
<p>If you haven&#8217;t heard, <a title="Check out the RSTickets! extension from RSJoomla!" href="http://www.rsjoomla.com/joomla-components/rstickets.html" target="_blank">RSTickets!</a> is an advanced Joomla! Help Desk ticketing system that allows you (or a team of yous) to manage and keep track of your clients&#8217; issues. It&#8217;s actually one of the few effective, useful Help Desk systems available for the Joomla! 1.5+ framework that I would personally recommend. Unfortunately, it&#8217;s still under development and lacks certain features that one may desire, such as a read-only listing page that displays tickets already submitted to you or your department.</p>
<p><span id="more-202"></span><strong>My Problem:</strong></p>
<p>I noticed internal network clients were submitting several duplicate tickets related to a shared problem (i.e. printer trouble, network outages, etc.). I couldn&#8217;t blame them since they couldn&#8217;t view previously submitted tickets, so I decided to create a quick + dirty page that pulls <em>&#8220;open,&#8221; </em>or <em>&#8220;on-hold,&#8221;</em> tickets from a specific department&#8217;s table of submitted [active] tickets and displays them on a Joomla! article page (using the Sourcerer plug-in to execute custom PHP with {source} tags). Pasting this code into an article without the Sourcerer plug-in [or some sort of plug-in for executing PHP] <em>will do nothing. </em>Also note the <em>include</em> file for making a raw connection to your MySQL database. This is required (and should be stored in a directory with the appropriate permissions to prevent outside read access).</p>
<p>If you&#8217;d like to simply list the number (amount) of tickets (open, closed, on-hold) for <em>all</em> departments, you might want to <a title="Try RSJoomla!'s RSTicket Module for a quick count of all tickets." href="http://www.rsjoomla.com/customer-support/forum/38-rstickets/7805-joomla-module-for-rstickets.html" target="_blank">check the unreleased version of RSJoomla!&#8217;s RSTicket Module.</a></p>
<pre class="brush: php;">
{source}
&lt;?php

include (&quot;includes/connect_custom.php&quot;);

$result2 = mysql_query(&quot;SELECT * FROM jos_rstickets_tickets WHERE DepartmentId=3 AND (TicketStatus='open' OR TicketStatus='on-hold') ORDER BY TicketTime ASC&quot;) or die(mysql_error());

echo '&lt;br /&gt;';

echo '&lt;tr&gt;&lt;td style=&quot;padding-bottom: 10px;&quot; colspan=&quot;6&quot;&gt;Please check the open, pending, or on-hold tickets listed below before submitting a support ticket. The list below can be utilized as an informal gauge for IT response times. If a duplicate support ticket is submitted, you may cancel it yourself or it will be deleted by the IT Department upon review. Thank you for your cooperation.&lt;/td&gt;&lt;/tr&gt;';

echo '&lt;tr&gt;&lt;td style=&quot;font-size: 16px;font-weight: bold;padding-bottom: 10px;&quot; colspan=&quot;6&quot;&gt;SUBMITTED SUPPORT TICKETS:&lt;/td&gt;&lt;/tr&gt;';

echo '&lt;tr&gt;&lt;td style=&quot;text-align:left; padding-bottom:7px;&quot;&gt;&lt;strong&gt;Submitted:&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;padding-bottom:7px;&quot;&gt;&lt;strong&gt;Username:&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;padding-bottom:7px;&quot;&gt;&lt;strong&gt;Ticket Code:&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;padding-bottom:7px;&quot;&gt;&lt;strong&gt;Subject:&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;padding-bottom:7px;&quot;&gt;&lt;strong&gt;Status:&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;padding-bottom:7px;&quot;&gt;&lt;strong&gt;Priority:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;';

while($row = mysql_fetch_array($result2))

{

$custid =  $row['CustomerId'];
$userquery= mysql_query(&quot;SELECT name FROM jos_users WHERE id=$custid&quot;) or die(mysql_error());

$username = mysql_fetch_array($userquery);

echo '&lt;tr style=&quot;font-size: 10px;vertical-align:top;&quot;&gt;&lt;td style=&quot;width: 102px; overflow: hidden;padding: 3px -10px 3px 3px;&quot;&gt;' . date(&quot;Y-m-d H:m&quot;, $row['TicketTime']) .  '&lt;/td&gt;&lt;td&gt;' . $username['name'] . '&lt;/td&gt;&lt;td&gt;' . $row['TicketCode'] . '&lt;/td&gt;&lt;td style=&quot;width: 235px; overflow: hidden;&quot;&gt;' . $row['TicketSubject'] . '&lt;/td&gt;&lt;td&gt;' . strtoupper($row['TicketStatus']) . '&lt;/td&gt;';

if ($row['TicketPriority']=='high'){

echo '&lt;td style=&quot;background-color: red; color: white; font-weight: bold;padding-left: 5px;&quot;&gt;';

} else if ($row['TicketPriority']=='normal'){

echo '&lt;td style=&quot;background-color: blue; color: white; font-weight: bold;padding-left: 5px;&quot;&gt;';

} else if ($row['TicketPriority']=='low'){

echo '&lt;td style=&quot;background-color: yellow; font-color: black; font-weight: bold;padding-left: 5px;&quot;&gt;';}

echo strtoupper($row['TicketPriority']) . '&lt;/td&gt;&lt;/tr&gt;';

}

echo '&lt;tr&gt;&lt;td style=&quot;font-size:16px; padding-top: 20px; padding-bottom: 20px&quot; colspan=&quot;6&quot;&gt;&lt;strong&gt;&lt;a href=&quot;index.php?option=com_rstickets&amp;Itemid=59&quot;&gt;&lt;img src=&quot;images/M_images/onsite_support1.jpg&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;index.php?option=com_rstickets&amp;Itemid=59&quot;&gt;SUBMIT A NEW SUPPORT TICKET&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;';

echo '&lt;br /&gt;';

?&gt;
{/source}
</pre>
<p><strong>connect_custom.php :</strong></p>
<pre class="brush: php;">
&lt;?php

// Script:	connect_custom.php
// Author:	JR
// Date:	20080218
// Use:	    Utilized for custom DB connections to our current database for Fabrik Forms + Joomla 1.5

$hostname=&quot;localhost&quot;;
$mysql_login=&quot;thedude&quot;;
$mysql_password=&quot;sumpasswordhere&quot;;
$database=&quot;datablah&quot;;

if (!($db = mysql_pconnect($hostname, $mysql_login , $mysql_password))){
die(&quot;Can't connect to database server.&quot;);
}else{
if (!(mysql_select_db(&quot;$database&quot;,$db))){
die(&quot;Can't connect to database.&quot;);
}
}
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/coding/add-submitted-tickets-listing-page-for-joomla-rstickets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New fun with old toys: Adtran Atlas 550 + Free 411</title>
		<link>http://liveaverage.com/features/infrastructure-management/new-fun-with-old-toys-adtran-atlas-550-free-411/</link>
		<comments>http://liveaverage.com/features/infrastructure-management/new-fun-with-old-toys-adtran-atlas-550-free-411/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 21:10:26 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Infrastructure Management]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=174</guid>
		<description><![CDATA[As a result of my frugality, I got my hands on an Adtran Atlas 550 to be used for partitioning a single PRI into two PRIs at my workplace. In addition to the partitioning, this system provides the added bonus of dynamic number substitution. What&#8217;s this mean for me? Substituting costly 411 directory service for [...]]]></description>
			<content:encoded><![CDATA[<p><img src="file:///C:/DOCUME~1/ADMIN~1.IT0/LOCALS~1/Temp/moz-screenshot-11.jpg" alt="" /><img class="alignleft" style="margin: 10px;" title="Goog-411" src="http://www.google.com/images/logos/goog-411_logo.png" alt="Goog-411 is a spectacular, free alternative to traditional directory svc." width="209" height="40" /></p>
<p>As a result of my frugality, I got my hands on an Adtran Atlas 550 to be used for partitioning a single PRI into two PRIs at my workplace. In addition to the partitioning, this system provides the added bonus of dynamic number substitution. What&#8217;s this mean for me? Substituting costly 411 directory service for free Goog-411 service (which I prefer over traditional 411). I&#8217;m also able to create a number rejection list to block those NSFW 900* calls [or variation thereof], but the number substitution templates seem much more interesting&#8230;</p>
<p>How to do it:</p>
<blockquote>
<ul>
<li>Telnet to <strong>yohost.yodomain </strong>and log-in</li>
<li><em>Dial Plan</em> &gt; <em>Network Term</em> &gt; <em>Interface # </em>(1 in my case) &gt; Enter</li>
<li>Select <em>Substitution Template</em></li>
<li>Enter the Original DNIS number (the phone number originally dialed)</li>
<li>Enter the Substitution DNIS number (the phone number you&#8217;d like to dial)</li>
<li>Go back to the main menu and log-out</li>
</ul>
</blockquote>
<p>Remember, this change is transparent (and instant &#8212; no need to write/commit the config to startup), so the next time callers decide to hit up the 411 directory service, their call should be automagically routed to 1-800-goog411 (1-800-4664411). Since we&#8217;re a fairly small office I don&#8217;t think this number substituion presents a problem with Googles Terms of Service, but if you&#8217;re considering this change on a massive scale  I&#8217;d consider reading over <a title="Review Google's Terms of Service" href="http://www.google.com/accounts/TOS" target="_blank">Google&#8217;s TOS agreement</a> (particularly section 5.3).</p>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/infrastructure-management/new-fun-with-old-toys-adtran-atlas-550-free-411/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Altermime, Postfix/Zimbra, and Headaches</title>
		<link>http://liveaverage.com/features/coding/altermime-postfixzimbra-and-headaches/</link>
		<comments>http://liveaverage.com/features/coding/altermime-postfixzimbra-and-headaches/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 19:43:11 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=109</guid>
		<description><![CDATA[EDIT: I have since removed altermime after installing a MailScanner spam relay for our Zimbra server to use. Because, by default, MailScanner appends a default signature to all outbound email, it was very simple to modify the signature rules to accomodate our mandatory disclaimers for different domains. I had the pleasure of applying mandatory disclaimers [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><em>EDIT: I have since removed altermime after installing a MailScanner spam relay for our Zimbra server to use. Because, by default, MailScanner appends a default signature to all outbound email, it was very simple to modify the signature rules to accomodate our mandatory disclaimers for different domains.</em></p></blockquote>
<p>I had the pleasure of applying mandatory disclaimers to all [outbound] emails at my workplace today&#8230; ~Joy~ &#8230; I had the assumption it&#8217;d be rather easy, but Altermime and Postfix were a bit finicky to work with. After editing the <strong>master.cf</strong> I ended up customizing my own &#8216;disclaimer&#8217; shell script.</p>
<p><span id="more-109"></span></p>
<pre class="brush: bash;">
#!/bin/sh
INSPECT_DIR=/var/spool/filter
SENDMAIL=/opt/zimbra/postfix/sbin/sendmail

# Exit codes from
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# Clean up when done or when aborting.
trap &quot;rm -f in.$$&quot; 0 1 2 3 15

# Start processing.
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }

cat &gt; in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }

# Verify this mail is not incoming or internal-only
# We don't need disclaimers for either one of these cases.

# Debug:
#echo &quot;output: $from_address&quot; &gt;&gt; /tmp/tempoutput.txt

#Grab the from address:

from_address=`grep -m 1 &quot;From:&quot; in.$$ | cut -d &quot;&lt;&quot; -f 2 | cut -d &quot;&gt;&quot; -f 1`

#Verify whether your domain is in the from address.
#If it is, proceed to distinguish WHICH domain is sending outgoing mail and tag it appropriately:
#If not, then that would be incoming mail, so leave it alone:

#Additional (else if) conditional checks will be added to determine if the email is inner-office comm:
# to_address= `grep -m 1 &quot;To:&quot; in.$$ | cut -d &quot;&lt;&quot; -f 2 | cut -d &quot;&gt;&quot; -f 1`
# if [[ $from_address == *domain* &amp;&amp; to_address == *domain* ]]; then ....
#
# This additional condition requires more debugging...

if [[ $from_address == *domain* ]]; then

# Debug:
#echo
#echo &quot;FROM: $from_address&quot; &gt;&gt; /tmp/tempoutput.txt
#echo &quot;THIS GETS ALTERMIMED&quot; &gt;&gt; /tmp/tempoutput.txt
#echo

#Check to see which domain is sending outgoing email,
#then tag it with the appropriate disclaimer:

if [[ $from_address == *subdomain.domain* ]]; then

# Debug		echo &quot;THIS GETS APDD&quot; &gt;&gt; /tmp/tempoutput.txt
/usr/bin/altermime --input=in.$$ \
--disclaimer=/opt/zimbra/postfix/conf/disclaimers/apd-disclaimer.txt \
--disclaimer-html=/opt/zimbra/postfix/conf/disclaimers/apd-disclaimer.txt \
--xheader=&quot;X-Public-Record:&quot; || { echo Message content rejected; exit $EX_UNAVAILABLE; }
else
# Debug		echo &quot;THIS GETS COAD&quot; &gt;&gt; /tmp/tempoutput.txt
/usr/bin/altermime --input=in.$$ \
--disclaimer=/opt/zimbra/postfix/conf/disclaimers/coa-disclaimer.txt \
--disclaimer-html=/opt/zimbra/postfix/conf/disclaimers/coa-disclaimer.txt \
--xheader=&quot;X-Public-Record:&quot; || { echo Message content rejected; exit $EX_UNAVAILABLE; }

fi
fi

# Might need to remove -i switch for truncation problems depending on your MTA version...

$SENDMAIL -i &quot;$@&quot; &lt; in.$$

exit $?
</pre>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/coding/altermime-postfixzimbra-and-headaches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How-to: GSX650F Chop-shop Job (Cutting down the fender)</title>
		<link>http://liveaverage.com/features/living/how-to-gsx650f-chop-shop-job-cutting-down-the-fender/</link>
		<comments>http://liveaverage.com/features/living/how-to-gsx650f-chop-shop-job-cutting-down-the-fender/#comments</comments>
		<pubDate>Tue, 12 May 2009 16:12:02 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Living]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=104</guid>
		<description><![CDATA[Per another owner&#8217;s request, here are some up-close shots of the chop-job for the 2008 GSX650F &#8230; Notice the black bolts (attached to the protruding box shapes beneath the fender) in the second image. These are holding the bracket to the bike &#8216;trunk.&#8217; There&#8217;s a lock washer and nut on the inside of the trunk [...]]]></description>
			<content:encoded><![CDATA[<p><span class="postbody">Per another owner&#8217;s request, here are some up-close shots of the chop-job for the 2008 </span><span class="postbody">GSX650F </span><span class="postbody">&#8230; Notice </span><span class="postbody">the black bolts </span><span class="postbody">(attached to the protruding box shapes beneath the fender) </span><span class="postbody">in the second image. These are holding the bracket to the bike &#8216;trunk.&#8217; There&#8217;s a lock washer and nut on the inside of the trunk securing the bracket to the bike.<br />
</span></p>
<p><span class="postbody">I did not remove the tail before cutting. I used only a razor knife (with new, clean blades) following a hand-drawn [penciled] line. I did have to change the blade out about half-way through, and I did slice the crap out of a finger, but it was still worth the end-result.</span></p>
<p>My plate is not actually at an angle, but if you purchased the same tail light w/ the integrated signals and plate light, you don&#8217;t need it at an angle. It&#8217;s clearly visible at night without bending or angled mounting. Also, you may need some additional hardware (2 X bolts, 2 X nuts, 2 X lock-washers) to re-mount the OEM plate bracket to what&#8217;s left of the tail after the chop. Depending on how small your hands are, you might have to remove the tail piece (not the rear fender, just the painted tail) to attach lock-washers and nuts on the inside of the &#8216;trunk&#8217;.<br />
<span id="more-104"></span></p>
<p><span class="postbody"> <img src="http://farm4.static.flickr.com/3603/3513737951_deb1a2d44c.jpg" border="0" alt="" /><br />
Figure 1) Profile view of the chop-shop job and license bracket</span></p>
<p><img src="http://farm4.static.flickr.com/3362/3513737605_cb52d3b6a7.jpg" border="0" alt="" /><br />
Figure 2) These black bolts secure the bracket to the bike trunk.</p>
<p><img src="http://farm4.static.flickr.com/3660/3513737675_c3473c91d2.jpg" border="0" alt="" /><br />
Figure 3) No need to bend your license plate. The LEDs from the aftermarket tail-light project perfectly.</p>
<p><img src="http://farm4.static.flickr.com/3545/3513737747_99ce71fd23.jpg" border="0" alt="" /><br />
Figure 4) Again, view the bracket mounted to the protruding trunk.<br />
<span class="postbody"> <img src="http://farm4.static.flickr.com/3385/3513737785_7332e1eb7d.jpg" border="0" alt="" /><br />
Figure 5) Using a razor knife gave a perfect, clean edge. No need to sand or grind.</span></p>
<p><img src="http://farm4.static.flickr.com/3399/3513737883_1f06285b28.jpg" border="0" alt="" /><br />
Figure 6) You can still see my pencil marks :S</p>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/living/how-to-gsx650f-chop-shop-job-cutting-down-the-fender/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shuttle PC MyKover Template</title>
		<link>http://liveaverage.com/features/infrastructure-management/shuttle-pc-mykover-template/</link>
		<comments>http://liveaverage.com/features/infrastructure-management/shuttle-pc-mykover-template/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 16:34:16 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Infrastructure Management]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=25</guid>
		<description><![CDATA[After deploying a few Shuttle KPC K45 systems for UTM (Unified Threat Management) appliances using Untangle 5.42 and 6.00 I got tired of fussing with Shuttle&#8217;s MyKover JPEG template(s) and opted to create my own to-scale Word Document template. Feel free to change the included background image and text, I just left that on there [...]]]></description>
			<content:encoded><![CDATA[<p>After deploying a few <a title="Looking for Shuttle KPC K45 Systems? Look no further than Newegg." href="http://www.newegg.com/Product/Product.aspx?Item=N82E16856101069" target="_blank">Shuttle KPC K45 systems</a> for UTM (Unified Threat Management) appliances using Untangle 5.42 and 6.00 I got tired of fussing with Shuttle&#8217;s MyKover JPEG template(s) and opted to create my own to-scale Word Document template. Feel free to change the included background image and text, I just left that on there for reference. And yes, the screw hole markings are correctly (or nearly correctly) placed.</p>
<p>I enjoyed the coffee cover included with the barebone system, but opted for something customized that would allow remote clients to phone in service-calls with all the important information (Local/WAN IP, MAC, FQDN, etc.) required for troubleshooting. Hope this helps someone out who might be looking for a better template than the one provided by Shuttle&#8217;s site.</p>
<p><a title="Click Here to start downloading the MyKover Shuttle Word Template" href="http://www.averageanalogs.com/v2/images/mykover_shuttle_template_public.doc" target="_self">DOWNLOAD MyKover Word Document Template</a> (.DOC &#8211; Created w/ Microsoft Office 2003)</p>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/infrastructure-management/shuttle-pc-mykover-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zimbra flows on the iPhone</title>
		<link>http://liveaverage.com/features/zimbra-flows-on-the-iphone/</link>
		<comments>http://liveaverage.com/features/zimbra-flows-on-the-iphone/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 18:34:46 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Features]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=15</guid>
		<description><![CDATA[Zimbra (FOSS) provides one hellaciously clean, organized web client on Apple&#8217;s iPhone Safari Browser, nearly resembling a native application.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft alignnone size-full wp-image-18" title="Zimbra Pwns the iPhone" src="http://liveaverage.com/wp-content/themes/mimbo2.2/images/zimbra_iphone.jpg" alt="Zimbra Interface on the Apple iPhone" width="255" height="88" /></p>
<p>Zimbra (FOSS) provides one hellaciously clean, organized web client on Apple&#8217;s iPhone Safari Browser, nearly resembling a native application.</p>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/zimbra-flows-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bashing MySQL Dumps</title>
		<link>http://liveaverage.com/features/coding/bashing-mysql-dumps/</link>
		<comments>http://liveaverage.com/features/coding/bashing-mysql-dumps/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 14:45:14 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[dumps]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=9</guid>
		<description><![CDATA[A quick set of scripts to dump specified databases from MySQL and mail a copy of the log to a specified e-mail address (requires Per]]></description>
			<content:encoded><![CDATA[<p>A quick set of batch scripts I wrote up (two of the three scripts, anyway) for dumping all of my (specified) MySQL databases into an archive for backup. The log mailing (<strong>emailsql.pl</strong>)requires Perl and the MIME:Lite module to correctly function. I&#8217;ve also utilized a wrapper script so the log outputs to a separate file [to be mailed]. There&#8217;s also a &#8216;dummy&#8217; log file I use in my crontab file, though this isn&#8217;t really necessary:</p>
<p><span id="more-9"></span></p>
<p><span style="color: #800000;"><strong>mysqlbackupwrapper.sh</strong></span></p>
<pre class="brush: bash;">
#!/bin/bash
#Wrapper script used to call the primary backup script and output to a specified file
sh /home/administrator/scripts/mysqlbackups &gt; /home/administrator/scripts/sql.backup.log 2&gt;&amp;1
</pre>
<p><span style="color: #800000;"><strong>mysqlbackup.sh</strong></span>:</p>
<pre class="brush: bash;">
#!/bin/sh
#Timestamp for your logs:
date

#Dump the databases - Make sure to specify your root or user password following the -p switch:
mysqldump -uroot -p --opt intraforum &gt; /home/administrator/scripts/sqldata/intra_apdforum.sql
mysqldump -uroot -p --opt joomla_intranet &gt; /home/administrator/scripts/sqldata/intra_intranet.sql
mysqldump -uroot -p --opt mysql &gt; /home/administrator/scripts/sqldata/intra_mysql.sql
tar -zcvf /home/administrator/scripts/sqldata.tgz /home/administrator/scripts/sqldata/*.sql
echo
echo &quot;Backup completed successfully for: &quot;
echo
echo &quot;MySQL - PHPbb3 Forum&quot;
echo &quot;MySQL - Joomla 1.0.X Intranet&quot;
echo &quot;MySQL - Intranet MySQL Tables&quot;
echo
echo &quot;Copying to SERVER.yourdomain.local . . . .&quot;
echo

#Use SCP to transfer to file so you can verify successful backups -- Make sure to use identity/keys for SCP instead of a password:
scp -v -i /home/administrator/identity /home/administrator/scripts/sqldata.tgz administrator@this.host:/backup/sqldata_backup.tgz

perl /home/administrator/scripts/emailsql.pl
</pre>
<p><span style="color: #800000;"><strong>emailsql.pl (I did not write this one)</strong></span>:</p>
<p>Instead of just sending the text of the log file, this script attaches the file and sends the message:</p>
<pre class="brush: bash;">

#!/usr/bin/perl -w
use MIME::Lite;

$msg = MIME::Lite-&gt;new(
From    =&gt; 'Backup Log',
To      =&gt; 'liveaverage@yourdomain.org',
Subject =&gt; 'MySQL Data Backup - Intranets',
Type    =&gt; 'text/plain',
Data    =&gt; &quot;See the attached log for details on the most recent MySQL Database Dumps.&quot;);

$msg-&gt;attach(
Type       =&gt;'text/plain',
Path       =&gt;'/home/administrator/scripts/sql.backup.log',
Filename   =&gt;'sql.backup.log',
Disposition        =&gt;'attachment');

$msg-&gt;send;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/coding/bashing-mysql-dumps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl my way to happiness</title>
		<link>http://liveaverage.com/features/coding/perl-my-way-to-happiness/</link>
		<comments>http://liveaverage.com/features/coding/perl-my-way-to-happiness/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 19:00:49 +0000</pubDate>
		<dc:creator>JR</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[perl zimbra zmprov provisioning]]></category>

		<guid isPermaLink="false">http://liveaverage.com/?p=4</guid>
		<description><![CDATA[If only everything was as easy &#38; straight-forward as account provisioning in Zimbra: !/usr/bin/perl # ZCS IMPORT SCRIPT # Provided by : ZCS Wiki # Modified by : J.R. # Last Change : 2008.04.09 # # Lookup the valid COS (Class of Service) ID in the interface or like this my $cosid = `su - [...]]]></description>
			<content:encoded><![CDATA[<p>If only everything was as easy &amp; straight-forward as account provisioning in Zimbra:</p>
<pre class="brush: bash;">!/usr/bin/perl

# ZCS IMPORT SCRIPT
#       Provided by : ZCS Wiki
#       Modified by : J.R.
#       Last Change : 2008.04.09
#
# Lookup the valid COS (Class of Service) ID in the interface or like this
my $cosid = `su - zimbra -c 'zmprov gc apd |grep zimbraId:'`;
$cosid =~ s/zimbraId:\s*|\s*$//g;

while (&lt;&gt;) {
chomp;

# CHANGE ME: To the actual fields you use in your CSV file
my ($email, $password, $first, $last) = split(/\,/, $_, 4);

my ($uid, $domain) = split(/@/, $email, 2);

print qq{ca $uid\@$domain $password\n};
print qq{ma $uid\@$domain zimbraCOSid &quot;$cosid&quot;\n};
print qq{ma $uid\@$domain givenName &quot;$first&quot;\n};
print qq{ma $uid\@$domain sn &quot;$last&quot;\n};
print qq{ma $uid\@$domain cn &quot;$uid&quot;\n};
print qq{ma $uid\@$domain displayName &quot;$first $last&quot;\n};

#Set the user's reply or canonical address
print qq{ma $uid\@$domain zimbraMailCanonicalAddress $uid\@cityof*****.org\n};

#Add e-mail account alias for multiple domains
#Verify domain is correctly working for provisioning aliases

print qq{aaa $uid\@$domain $uid\@cityof*****.com\n};

#Add all users to a general distribution list and terminate
#Add multiple distro-lists if desired
print qq{adlm dept.all\@cityof*****.org $uid\@cityof*****.org\n};
print qq{\n};

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://liveaverage.com/features/coding/perl-my-way-to-happiness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
