<?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>techrageo.us &#187; Tips</title>
	<atom:link href="http://techrageo.us/taxonomy/categories/tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://techrageo.us</link>
	<description>insight on technology</description>
	<lastBuildDate>Sat, 22 Oct 2011 12:18:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Gmail Chat Smileys</title>
		<link>http://techrageo.us/2008/11/06/gmail-chat-smileys/</link>
		<comments>http://techrageo.us/2008/11/06/gmail-chat-smileys/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 00:37:32 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[emoticons]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[smileys]]></category>

		<guid isPermaLink="false">http://techrageo.us/2008/11/06/gmail-chat-smileys/</guid>
		<description><![CDATA[Gmail Chat emoticons are the most popular search terms here at techrageo.us. And now there&#8217;s a new robot smiley. In the past we&#8217;ve covered Gmail Chat—and its emoticons in particular. Of course everyone who uses Gmail knows it now supports smileys in email, but there have been a couple minor changes for the chat smileys [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Gmail Chat emoticons are the most popular search terms here at techrageo.us. And now there&#8217;s a new robot smiley.</strong></p>
<p>In the past we&#8217;ve covered <a href="http://techrageo.us/2006/07/06/gmail-chat-fun">Gmail Chat</a>—and its <a href="http://techrageo.us/2007/12/08/new-gmail-chat-smilies">emoticons</a> in particular. Of course everyone who uses Gmail knows it now supports smileys in email, but there have been a couple minor changes for the chat smileys too.</p>
<div style="float: right; padding: 0 0 1em 1em;"><img src="/images/gmailchatcat4.gif" alt="New Gmail Chat Smiley Category" /></div>
<p>First, there is a new category in the smiley chat popup that has alternate renderings of the graphics.</p>
<p>Also, there is a new robot smiley, [:|], that was left here today in a <a href="http://techrageo.us/2007/12/08/new-gmail-chat-smilies/#comment-82268">comment by &#8220;Pat.&#8221;</a> Thanks, Pat. Are there any more new ones?</p>
<p>Okay, kids. The &#8220;poo&#8221; is now included, thanks to an anonymous comment posted on the article, <a title="Poo comment on New Gmail Chat Smilies" href="http://techrageo.us/2007/12/08/new-gmail-chat-smilies/#comment-2873">New Gmail Chat Smilies</a>. Or, maybe it&#8217;s a beehive. Whatever.</p>
<h3>List of All Gmail Chat Emoticons</h3>
<p>So, given the robot and that there is now a new category, and especially since the partial lists in prior articles, here is the complete list of Gmail Chat Smileys.</p>
<p><img src="/images/gmailchatsmileys.gif" alt="Gmail Chat Smileys" /></p>
<p>(This image seems to have been lifted and <a rel="nofollow" href="http://knowyourmeme.com/photos/26813">posted elsewhere</a>. If you use post this elsewhere, please provide a link back to this article.)</p>
<p>If any are missing, be sure to leave them in a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2008/11/06/gmail-chat-smileys/feed/</wfw:commentRss>
		<slash:comments>320</slash:comments>
		</item>
		<item>
		<title>Conditionally-Colored Flex Charts</title>
		<link>http://techrageo.us/2008/02/20/conditionally-colored-flex-charts/</link>
		<comments>http://techrageo.us/2008/02/20/conditionally-colored-flex-charts/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 00:55:06 +0000</pubDate>
		<dc:creator>grant</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[chart coloring]]></category>
		<category><![CDATA[conditional coloring]]></category>
		<category><![CDATA[flash graph]]></category>
		<category><![CDATA[Flex Charting]]></category>
		<category><![CDATA[Graphing]]></category>
		<category><![CDATA[Graphs]]></category>

		<guid isPermaLink="false">http://techrageo.us/2008/02/20/conditionally-colored-flex-charts/</guid>
		<description><![CDATA[The charting in Flex is a pretty good tool, but there are a few small features that it would be really nice if it had. One of these would be the ability to have a chart series that changed colors depending on it&#8217;s value. Conditionally colored charts are something that a lot of us (and [...]]]></description>
			<content:encoded><![CDATA[<p>The charting in Flex is a pretty good tool, but there are a few small features that it would be really nice if it had.  One of these would be the ability to have a chart series that changed colors depending on it&#8217;s value.  Conditionally colored charts are something that a lot of us (and our customers) have grown accustomed to and we shouldn&#8217;t have to give it up with Flex.  If you are like me you have probably been &#8220;googling&#8221; every variation of &#8220;flex colored charts&#8221; that you can think of.  I couldn&#8217;t find an answer anywhere, but hopefully your search will end right here.</p>
<p>I wanted the ability to color charts based on their value, giving them red/yellow/green colors based on if they were lower/equal to/higher than a given value.  The ability to use gradients instead of solid colors was also a requirement.  I basically wanted to do something like this:</p>
<div style="width: 490px">
<object width="490" height="490" codebase="http://active.macromedia.com/flash7/cabs/ swflash.cab#version=9,0,0,0"><param name="src" value="http://www.techrageo.us/code/ColorColumnChart.swf"><param name="quality" value="high"><embed src="http://www.techrageo.us/code/ColorColumnChart.swf" width="490" height="490" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>
</div>
<p>The columns below the line are red, on the line are yellow, and above the line are green.  The need might arise to do more colors than this, so the code should be flexible</p>
<p>But almost as important as the final look of the graph itself was the ability to re-use the code without having to rewrite parts of it for each implementation.  And I wanted to be able to use it in a flex application using only mxml, but still be able to use it in ActionScript if needed.</p>
<p>In the end I wanted to be able to define the threshold or goal as part of the data that the graph used and the code would color the columns based on that data (if it was greater than/less than/equal to). So the code to use the &#8220;coloring object&#8221; would look something like this (where we define High/Mid/Low colors):</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:series<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:ColumnSeries</span> <span style="color: #000066;">xField</span>=<span style="color: #ff0000;">&quot;Month&quot;</span> <span style="color: #000066;">yField</span>=<span style="color: #ff0000;">&quot;Income&quot;</span> <span style="color: #000066;">displayName</span>=<span style="color: #ff0000;">&quot;Income2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:itemRenderer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Component<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;utils:ColoredSeriesItemRenderer</span> <span style="color: #000066;">valueField</span>=<span style="color: #ff0000;">&quot;Income&quot;</span> <span style="color: #000066;">thresholdField</span>=<span style="color: #ff0000;">&quot;Goal&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;utils:thresholdGradients<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Object<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:High<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;mx:Object</span> <span style="color: #000066;">gradient</span>=<span style="color: #ff0000;">&quot;[0x55dd55,0x005500]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/mx:High<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Mid<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;mx:Object</span> <span style="color: #000066;">gradient</span>=<span style="color: #ff0000;">&quot;[0xdddd55,0x555500]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/mx:Mid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Low<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;mx:Object</span> <span style="color: #000066;">gradient</span>=<span style="color: #ff0000;">&quot;[0xdd5555,0x550000]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/mx:Low<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Object<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/utils:thresholdGradients<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/utils:ColoredSeriesItemRenderer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Component<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:itemRenderer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:ColumnSeries<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:LineSeries</span> <span style="color: #000066;">xField</span>=<span style="color: #ff0000;">&quot;Month&quot;</span> <span style="color: #000066;">yField</span>=<span style="color: #ff0000;">&quot;Goal&quot;</span> <span style="color: #000066;">displayName</span>=<span style="color: #ff0000;">&quot;Goal&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:series<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>But to be flexible I also wanted to be able to define the goal in the code, where I could give it as many ranges with associated colors as I wanted.  This code would look something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:series<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:ColumnSeries</span>  <span style="color: #000066;">xField</span>=<span style="color: #ff0000;">&quot;Month&quot;</span> <span style="color: #000066;">yField</span>=<span style="color: #ff0000;">&quot;Income&quot;</span> <span style="color: #000066;">displayName</span>=<span style="color: #ff0000;">&quot;Income1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:itemRenderer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Component<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;utils:ColoredSeriesItemRenderer</span> <span style="color: #000066;">valueField</span>=<span style="color: #ff0000;">&quot;Income&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;utils:ranges<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Object</span> <span style="color: #000066;">lowerLimit</span>=<span style="color: #ff0000;">&quot;280&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;0xFF0000&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Object</span> <span style="color: #000066;">lowerLimit</span>=<span style="color: #ff0000;">&quot;240&quot;</span> <span style="color: #000066;">upperLimit</span>=<span style="color: #ff0000;">&quot;280&quot;</span> <span style="color: #000066;">gradient</span>=<span style="color: #ff0000;">&quot;[0xFFFF00,0x55FF55]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Object</span> <span style="color: #000066;">lowerLimit</span>=<span style="color: #ff0000;">&quot;220&quot;</span> <span style="color: #000066;">upperLimit</span>=<span style="color: #ff0000;">&quot;240&quot;</span> <span style="color: #000066;">gradient</span>=<span style="color: #ff0000;">&quot;[0x5555FF,0x000099]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Object</span> <span style="color: #000066;">lowerLimit</span>=<span style="color: #ff0000;">&quot;200&quot;</span> <span style="color: #000066;">upperLimit</span>=<span style="color: #ff0000;">&quot;220&quot;</span> <span style="color: #000066;">gradient</span>=<span style="color: #ff0000;">&quot;[0x0000FF,0x00FF00,0xFF0000]&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Object</span> <span style="color: #000066;">upperLimit</span>=<span style="color: #ff0000;">&quot;200&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;0xFFFF00&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Array<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/utils:ranges<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/utils:ColoredSeriesItemRenderer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:Component<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:itemRenderer<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:ColumnSeries<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:series<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Creating a custom item renderer allowed me (and now you too) to change the colors of the columns as they were being created.  This works so much better than other solutions I saw (laying a filter on top of the columns) because it automatically changes when the column changes.</p>
<p>I created a new object out of it so you can just drop it in the directory where you keep your other library files (and change the package name if needed) and start using it.  I have included it along with some sample files in a handy zip file for you&#8230; <img src='http://techrageo.us/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I hope this saves you all the time it could have saved me (if I would have found something similar).</p>
<p>Download the <a href="http://techrageo.us/code/ColumnColorChartSource.zip">ColoredSeriesItemRenderer.as object</a> with two full examples that you can compile and try in a handy zip file.</p>
<p><em>If you are not familiar with including custom made objects into an mxml file then you&#8217;ll need to know about packages.  In the sample code I used a package name of &#8220;utils&#8221;, which means that the actionscript object is defined with an &#8220;utils&#8221; package declaration and is in an &#8220;utils&#8221; subdirectory.  Also, the example files will require you to define the xml namespace in the Application tag.  This is done by adding something like this: <strong>xmlns:utils=&#8221;utils.*&#8221;</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2008/02/20/conditionally-colored-flex-charts/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>New Gmail Chat Smilies</title>
		<link>http://techrageo.us/2007/12/08/new-gmail-chat-smilies/</link>
		<comments>http://techrageo.us/2007/12/08/new-gmail-chat-smilies/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 09:32:29 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://techrageo.us/2007/12/08/new-gmail-chat-smilies/</guid>
		<description><![CDATA[Google Adds New Smilies to Gmail Chat Update: For a complete list of Gmail chat emoticons, including the new category four smileys and the new robot and poo smileys see Gmail Chat Smileys. With the recent update to Gmail chat, Google has added (both round and squared) graphic smilies. What&#8217;s more, some new hidden smilies [...]]]></description>
			<content:encoded><![CDATA[<h3>Google Adds New Smilies to Gmail Chat</h3>
<p><strong>Update: For a complete list of Gmail chat emoticons, including the new category four smileys and the new robot and poo smileys see <a href="http://techrageo.us/2008/11/06/gmail-chat-smileys/">Gmail Chat Smileys</a>.</strong></p>
<p>With the recent update to Gmail chat, Google has added (both round and squared) graphic smilies. What&#8217;s more, some new hidden smilies are showing up.</p>
<p><strong>Old-timey smilies are still the default.</strong></p>
<p><img style="padding-left:10px;" src="/images/gmailchat00a.jpg" alt="" align="right" />The standard old-timey animated text smilies are still very popular amongst quite a few Gmail users, and are still the default set. Now you can view them in the smiley popup window (accessible from the lower right corner of the chat window).</p>
<p>Of course this window does not show the hidden smilies, which are detailed below.</p>
<p><strong>New round and square faces are now available.</strong></p>
<p>Now, however, you can switch to rounded yellow and squared yellow smiley faces by clicking the appropriate tab in the smiley popup window.</p>
<div style="padding:0 0 20px 0;">
<img src="/images/gmailchat02x.jpg" alt="" /></div>
<p>What do you think of these new smilies? Twelve standard emoticons in three flavors. Wow. Kind of underwhelming.</p>
<p><strong>What a fancy smiley interface you have.</strong></p>
<p>Popups. Tabs. Well, the new smilies do add a bit of color to chat sessions, but they feel kind of limited compared to, say, Yahoo emoticons. The tabbed popup interface seems a bit complicated just to select from the twelve standard emoticons.</p>
<p>Along those lines, the difference between the original faces and the round yellow faces is pretty stark, but between yellow round and yellow square is awfully small. Really, why bother? Has there been a serious clamoring for square smiley faces? It would be better to include Japanese <a href="http://en.wikipedia.org/wiki/Emoticon#Eastern_style">smilies</a> (<a href="http://club.pep.ne.jp/~hiroette/en/facemarks/">face marks</a>), like <tt>(-_-)</tt>.</p>
<h3>Hidden Gmail Chat Emoticons</h3>
<p>Though sporting such a limited set of standard smilies, Gmail chat redeems itself by including some hidden emoticons. A slew of them turned up in comments to our <a href="http://techrageo.us/2006/07/06/gmail-chat-fun/">Gmail Chat Fun</a> article from last year.</p>
<p><img style="padding-left:10px;" src="/images/gmailchathide.gif" alt="" align="right" />The original hidden emoticons are still there. The equalizers ( =/ =( =p ), wince ( &gt;.&lt; ), the monkey ( <img src='http://techrageo.us/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> |) ), the devil ( }:-) ), the heart (&lt;3 ), and <a href="http://techrageo.us/2006/10/14/gmail-chat-needs-more-cowbell/">the ever-popular more cowbell</a> ( +/&#8217;\ ).</p>
<p>But now some new hidden emoticons are showing up. The heart is becomes a broken heart if you put a slash through it ( &lt;/3 ). The kiss face is here ( :* ) as well as an alternate ( <img src='http://techrageo.us/wp-includes/images/smilies/icon_mad.gif' alt=':-x' class='wp-smiley' />  ). And, oddly enough, a crab has appeared ( V.v.V ).</p>
<p>Update: as ev noted in the comments, there is also a pig. <img src='http://techrageo.us/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> :)</p>
<p>Update 2: and Crystal points out a mustached man. :{</p>
<p>Update 3: added the alternate kiss face. <img src='http://techrageo.us/wp-includes/images/smilies/icon_mad.gif' alt=':-x' class='wp-smiley' /> </p>
<p>Update 4: added the robot and poo smileys. [:|] and ~@~</p>
<p>All of the hidden emoticons have their filled-in versions as well. Check out that monkey.</p>
<p>Have you found any others? If so, post them here.</p>
<h3>Suggestions For The Gmail Chat Developers</h3>
<p>First up, the hidden emoticons. You have the devil, so why not the angel or halo emoticon? O:) Really, it only seems right. Also, the chicken. ~:&gt; Why on earth is there no chicken in the menagerie? You have monkeys and crabs, but no chickens?</p>
<p>Second, there is a UI design issue here. Take a look at that smiley interface. It&#8217;s nice and gets the job done, but something about it is just out of whack. You have three tabs on a popup panel on the popup chat window, but a dearth of smilies grace each tab. However, the big problem here is the similarity between the round and square faces. It&#8217;s like you give us the option of a pogo stick or a light gray rocket or a dull silver rocket. How about original smilies, yellow round smilies, and Japanese facemarks? Now that would be cool. And it would balance the choices a bit.</p>
<p><strong>Overall, a welcome upgrade</strong></p>
<p>The new smilies are welcome, the gee-whiz interface is okay &#8212; but it makes us a bit hungry for more tweaks and enhancements.</p>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2007/12/08/new-gmail-chat-smilies/feed/</wfw:commentRss>
		<slash:comments>311</slash:comments>
		</item>
		<item>
		<title>In-Cell Spreadsheet Graphs</title>
		<link>http://techrageo.us/2007/09/23/in-cell-spreadsheet-graphs/</link>
		<comments>http://techrageo.us/2007/09/23/in-cell-spreadsheet-graphs/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 20:36:04 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://techrageo.us/2007/09/23/in-cell-spreadsheet-graphs/</guid>
		<description><![CDATA[Edward Tufte has promoted the use of inline, word-sized graphs called sparklines to communicate data more effectively, giving rise to several methods of creating inline graphs within documents, including spreadsheets. This article describes one very simple way of incorporating dynamic bar graphs in your spreadsheets. It works in Excel, IBM Lotus Symphony, OpenOffice, and Google&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/exec/obidos/tg/detail/-/0961392142/eis657-20">Edward Tufte</a> has promoted the use of <a href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&#038;topic_id=1&#038;topic=Ask+E.T.">inline, word-sized graphs called sparklines</a> to communicate data more effectively, giving rise to several methods of creating inline graphs within documents, including spreadsheets.</p>
<p>This article describes one very simple way of incorporating dynamic bar graphs in your spreadsheets. It works in <a href="http://office.microsoft.com/en-us/excel/">Excel</a>, <a href="http://symphony.lotus.com/">IBM Lotus Symphony</a>, <a href="http://www.openoffice.org/">OpenOffice</a>, and <a href="http://docs.google.com/">Google&#8217;s online spreadsheet</a> application.</p>
<h3>The Basic In-Cell Graph</h3>
<p>Find the data cell you want to graph. This will probably be the first in a vertical series. It will be the reference used within the formula.</p>
<p>Say, for example, you want to graph the value in cell B2 (or B2-B6). <strong>Enter the following formula</strong> into cell C2 (or wherever you want the graph).</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=REPT( &quot;|&quot;, B2 )</pre></div></div>

<p>For Symphony and OpenOffice, function parameters are separated by semi-colons instead of commas. The examples in this article use commas, so just change them to semi-colons and it should work okay. E.g. Instead of the above formula, use the following for Symphony and OpenOffice.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=REPT( &quot;|&quot;; B2 )</pre></div></div>

<p>The next step is a matter of taste, but you will probably want to <strong>change the font</strong> of the graph to something like Arial 8 point. Since we are using the vertical bar as our graph element, a smaller font makes for a tighter-looking graph.</p>
<p>Then, depending on your numeric range of values and the general amount of space you want the graph to use, you will probably want to <strong>divide the cell value by some constant</strong>. This is entirely up to you and your needs. If your value range is between 0 and 20,000, you might want to divide by 500 or 1000; whereas if your values run from 0 to 100, dividing by 5 would make more sense.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=REPT( &quot;|&quot;, B2 / 5 )</pre></div></div>

<p>Now, <strong>copy the formula down</strong> from C3 through C6. (After each change to the formula, you&#8217;ll want to copy the change throughout your graph.)</p>
<p><img src="/images/incell1.gif"/></p>
<p>In fact, you can use a formula to calculate the divider. Divide the maximum value of the graph by something like 40, then divide the cell value by that.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=REPT( &quot;|&quot;, B7 / ( 10000 / 40 ))</pre></div></div>

<h3>Negative Values</h3>
<p>Of course, you will probably want to be able to <strong>handle negative values</strong> as well. By simply spreading your graph across two cells and using the IF() and ABS() functions, negative values are no problem.</p>
<p>Let&#8217;s say you have a range of numbers in cells F2 to F6 and you want a graph in cells G2 and H2 down to G6 and H6. In G2, enter the following formula to handle negative numbers.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=IF( F2 &lt; 0, REPT( &quot;|&quot;, ABS( F2 / 5 )), &quot;&quot; )</pre></div></div>

<p>And in H2, the following will take care of positive values.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=IF( F2 &gt; 0, REPT( &quot;|&quot;, ABS( F2 / 5 )), &quot;&quot; )</pre></div></div>

<p>Next, <strong>format the text in G2 to be right-aligned and red</strong>.</p>
<p>Select G2 and H2, then <strong>copy them down</strong> to G3:H3 through G6:H6.</p>
<p><img src="/images/incell2.gif"/></p>
<p><strong>Just A Little Fancy</strong></p>
<p>You can experiment with various fonts, sizes, colors, etc. to get the graphs you want. One little tweak that&#8217;s useful is using the CONCATENATE() function to mark the value at the graph&#8217;s endpoint.</p>
<p>As an example, the graph below uses a vertical bar for the value and hyphens for the graph bar itself. Note, that since the hyphen takes more horizontal space than a vertical bar, we use a larger divisor (seven, in this case) to keep the graph at about the same scale.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=CONCATENATE( REPT( &quot;-&quot;, B2 / 7 ), &quot;|&quot; )</pre></div></div>

<p>And the negative/positive graph uses a lower-case &#8220;o&#8221; for the value and the vertical bar for the bar.</p>
<p>Negative:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=IF( F2 &lt; 0, CONCATENATE( &quot;o&quot;, REPT( &quot;|&quot;, ABS( F2 / 5 ))), &quot;&quot; )</pre></div></div>

<p>Postive:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">=IF( F2 &gt; 0, CONCATENATE( REPT( &quot;|&quot;, ABS( F2 / 5 )), &quot;o&quot; ), &quot;&quot; )</pre></div></div>

<p>Note that the parameters to the CONCATENATE() function are reversed for negative and positive.</p>
<p><img src="/images/incell3.gif"/></p>
<p>Also, as in the above graph, green sometimes looks nice for positive values.</p>
<p><strong>What Else Can We Do With Graphs?</strong></p>
<p>While much more complex graphing is available with your spreadsheet&#8217;s built-in graphing features, this technique provides simple graphs to enhance a boring block of numbers in a spreadsheet. It provides visual cues to the relative values of the numbers and helps to put things in context.</p>
<p>There is more that can be done with graphs like this. In a future article, we&#8217;ll look at similar lightweight graphing techniques. Do you have suggestions or any graphing tips you use? If so, please post them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2007/09/23/in-cell-spreadsheet-graphs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Leaving your work proxy at work</title>
		<link>http://techrageo.us/2007/06/16/leaving-your-work-proxy-at-work/</link>
		<comments>http://techrageo.us/2007/06/16/leaving-your-work-proxy-at-work/#comments</comments>
		<pubDate>Sat, 16 Jun 2007 20:59:22 +0000</pubDate>
		<dc:creator>grant</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://techrageo.us/2007/06/16/leaving-your-work-proxy-at-work/</guid>
		<description><![CDATA[The problem If you have a company laptop and your company forces you to use a proxy server you probably know about the mild annoyance of bringing your laptop home and finding that the internet doesn&#8217;t work because your browsers are setup to use a proxy that it can no longer find. So you probably [...]]]></description>
			<content:encoded><![CDATA[<h3>The problem</h3>
<p>If you have a company laptop and your company forces you to use a proxy server you probably know about the mild annoyance of bringing your laptop home and finding that the internet doesn&#8217;t work because your browsers are setup to use a proxy that it can no longer find.  So you probably go into your preferences/options and force the browser to connect directly to the internet, then switch it back when you get back to work the next day.  Rinse, repeat, annoy.</p>
<p>Well, as it turns out most major browsers like <a href="http://www.microsoft.com/ie">Internet Explorer</a>, <a href="http://getfirefox.com">Firefox</a>, and <a href="http://www.opera.com/">Opera</a> all allow you to use a bit of javascript to automatically set the proxy server to different things under different circumstances.  You save this javascript code into a &#8220;proxy.pac&#8221; file and then you just let your browser know where it is.</p>
<h3>Creating a simple proxy.pac</h3>
<p>So open up your favorite text editor and lets create a proxy.pac.  The javascript in this file should just be one function, called <b>FindProxyForURL</b>.  It always will give you two parameters to work with and it should always return a string with a proxy (or several) to use.  Below is a very, very simple version that will always try to use the proxy server unless it cannot connect, the it will try a direct connection:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> FindProxyForURL<span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> host<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;PROXY proxy.myworplace.com:1080; DIRECT&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Using day and time features</h3>
<p>If you generally work the same hours every day and have a pretty set schedule then your proxy.pac will be fairly simple.  We want to use a direct connection whenever we are hitting the local machine, on weekends, and during certain hours on the weekdays.  Otherwise it will try to use the named proxy as a starting point.  Regardless of which method is picked, if no connection can be made the browser should try the other method, since we just ordered them differently in the if-else statment.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> FindProxyForURL<span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> host<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> host <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;localhost&quot;</span> <span style="color: #339933;">||</span>
  	host <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;127.0.0.1&quot;</span> <span style="color: #339933;">||</span>  <span style="color: #006600; font-style: italic;">//bypass for local hosts</span>
    weekdayRange<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SAT&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;SUN&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>   <span style="color: #006600; font-style: italic;">//bypass on saturday or sunday</span>
    timeRange<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">18</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">7</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>  <span style="color: #006600; font-style: italic;">//bypass after 6pm and before 7am</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;DIRECT; PROXY proxy.mycompany.com:1080&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">/*with both the DIRECT and the PROXY listed it will try the
    	first and then fall back on the second*/</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;PROXY proxy.mycompany.com:1080; DIRECT&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Proxy by IP address</h3>
<p>If you have a different IP address at work than you do at home then you can use that to filter off of instead of the time.  We&#8217;ll just split the IP and if the first number isn&#8217;t equal to the first number of your IP at work then you must be elsewhere.  We&#8217;ll also make it a bit more elegant and define our proxy server at the top of the file.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> FindProxyForURL<span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> host<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> myProxy <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;proxy.mycompany.com:1080&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #003366; font-weight: bold;">var</span> ipSubs <span style="color: #339933;">=</span> myIpAddress<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> host <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;localhost&quot;</span> <span style="color: #339933;">||</span>
  	host <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;127.0.0.1&quot;</span> <span style="color: #339933;">||</span>
  	ipSubs<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;172&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;DIRECT; PROXY &quot;</span> <span style="color: #339933;">+</span> myProxy<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;PROXY &quot;</span> <span style="color: #339933;">+</span> myProxy <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;; DIRECT&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Setting up the browser</h3>
<p>So you&#8217;ve got your file, but now what?  You need to find a place to put it (it doesn&#8217;t matter where, as long as you know where it is located at).  For our example we&#8217;ll say that it is located at &#8220;C:\stuff\proxy.pac&#8221;.</p>
<p>To setup Internet Explorer:</p>
<ol>
<li>Go to Tools->Internet Options</li>
<li>Go to the Connections Tab</li>
<li>Click the LAN Settings button</li>
<li>Check the box labeled &#8220;Use automatic configuration script&#8221;</li>
<li>Type in the address using this format: <b>file://c:/stuff/proxy.pac</b></li>
<li>Keep clicking &#8220;OK&#8221; until you get back to the main screen</li>
</ol>
<p>To setup Firefox (v2):</p>
<ol>
<li>Go to Tools->Options (Edit->Preferences on Linux)</li>
<li>Go to the Network tab</li>
<li>Click on the Settings button</li>
<li>Click the radio button labeled &#8220;Automatic proxy configuration URL&#8221;</li>
<li>Type in the address using this format: <b>file:///c:/stuff/proxy.pac</b></li>
<li>Keep clicking &#8220;OK&#8221; until you get back to the main screen</li>
</ol>
<p>To setup Opera:<br />
Just setup IE and Opera is smart enough to grab that file and use it.</p>
<h3>Conclusion and Resources</h3>
<p>You&#8217;ll probably have a little trial and error period, but you should be able to get something that works for you and will keep you from having to go into your preferences/options.</p>
<div class="readlink">
Read <a href="http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html">a great proxy.pac resource</a> at Netscape.<br />
Read <a href="http://en.wikipedia.org/wiki/Proxy_auto-config">the entry for proxy.pac</a> at Wikipedia.
</div>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2007/06/16/leaving-your-work-proxy-at-work/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Speed Up Acrobat Reader, A Lot</title>
		<link>http://techrageo.us/2007/05/29/speed-up-acrobat-reader-a-lot/</link>
		<comments>http://techrageo.us/2007/05/29/speed-up-acrobat-reader-a-lot/#comments</comments>
		<pubDate>Wed, 30 May 2007 02:40:32 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://techrageo.us/2007/05/29/speed-up-acrobat-reader-a-lot/</guid>
		<description><![CDATA[For the last several years, Acrobat Reader has drifted between sluggish and mind-bogglingly slow, particularly when starting up. Acrobat is a great tool and PDF files widespread enough to make the reader software a requirement on any system. So why is it so dang slow? There are tools to speed up Reader and articles describing [...]]]></description>
			<content:encoded><![CDATA[<p>For the last several years, Acrobat Reader has drifted between sluggish and mind-bogglingly slow, particularly when starting up. Acrobat is a great tool and PDF files widespread enough to make the reader software a requirement on any system. So why is it so dang slow?</p>
<p>There are tools to speed up Reader and articles describing methods to do this by hand.</p>
<div class="readlink">
Read <a href="http://www.ecogito.net/anil/2005/04/howto-speed-up-acrobat-reader.html">HOWTO: Speed up Acrobat Reader</a> at eCognito.<br />
Read <a href="http://fileforum.betanews.com/detail/1069854583/1">Adobe Reader SpeedUp</a> at betanews.
</div>
<p>The tip that worked for me was described at ArsGeek: remove or rename accessibility.api from %Program Files%\Adobe\Reader 8.0\reader\plug_ins.</p>
<div class="readlink">
Read <a href="http://www.arsgeek.com/?p=1192">Adobe Acrobat Reader got you down?</a> at ArsGeek.
</div>
<p>Now Adobe Reader opens nice and fast. This is no slouch of an improvement, either; the gain is from about 10 or 20 seconds down to 1 or 2 seconds.</p>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2007/05/29/speed-up-acrobat-reader-a-lot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gmail Chat Needs More Cowbell</title>
		<link>http://techrageo.us/2006/10/14/gmail-chat-needs-more-cowbell/</link>
		<comments>http://techrageo.us/2006/10/14/gmail-chat-needs-more-cowbell/#comments</comments>
		<pubDate>Sat, 14 Oct 2006 16:48:24 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://techrageo.us/2006/10/14/gmail-chat-needs-more-cowbell/</guid>
		<description><![CDATA[Update: Gmail chat has been updated with a tabbed smiley interface and new emoticons. In addition to the standard Gmail Chat emoticons listed in a previous article here, some hidden smilies have turned up. Whatchamuhcallit They&#8217;ve added a cool equal, slantmouthy face =/. Yeeesh, That Had To Hurt If you wince, you need this one. [...]]]></description>
			<content:encoded><![CDATA[<p><em>Update: Gmail chat has been updated with <a href="http://techrageo.us/2007/12/08/new-gmail-chat-smilies/">a tabbed smiley interface and new emoticons</a>.</em></p>
<p><img src="/images/gtalkhiddenemoticons.gif" alt="" /></p>
<p>In addition to the standard Gmail Chat emoticons listed in <a href="http://techrageo.us/2006/07/06/gmail-chat-fun/">a previous article here</a>, some hidden smilies have turned up.</p>
<p><img style="vertical-align:middle;" src="/images/hgte-slant.gif" alt="" /><em>Whatchamuhcallit</em></p>
<p>They&#8217;ve added a cool equal, slantmouthy face <strong>=/</strong>.</p>
<p><img style="vertical-align:middle;" src="/images/hgte-wince.gif" alt="" /><em>Yeeesh, That Had To Hurt</em></p>
<p>If you wince, you need this one. &gt;.&lt;</p>
<p><img style="vertical-align:middle;" src="/images/hgte-devil.gif" alt="" /><em>Is Google Evil?</em></p>
<p>The Devil made them do it. }:-)</p>
<p>Pretty snazzy, and I wonder if similar ones exist. With a devil emoticon in the mix, an angel or halo would be cool. At least I hope there&#8217;s more reason for good over bad.</p>
<p><img style="vertical-align:middle;" src="/images/hgte-cowbell.gif" alt="" /><em>I got a fever and the only prescription is more cowbell.</em></p>
<p><a href="http://en.wikipedia.org/wiki/More_Cowbell">More</a> <a href="http://www.washingtonpost.com/wp-dyn/articles/A46074-2005Jan28.html">Cowbell!</a> +/&#8217;\ is a great addition. See the video <a href="http://www.funnyhub.com/videos/pages/snl-more-cowbell.html">here</a>.</p>
<p><em>Update: The cowbell +/&#8217;\ has been fixed. Tae Yang points out in a comment (not posted as it was left without a correct email address) that the cowbell emoticon was incorrect. WordPress converted the apostrophe to a right single quote. The correct cowbell is (plus) (slash) (apostrophe) (backslash). Thanks Tae. Leave your email next time.</em></p>
<p>First saw =/ and &gt;.&lt; in a comment <a href="http://techrageo.us/2006/07/06/gmail-chat-fun/">here</a>, then dug up more <a href="http://bbthunder.wordpress.com/2006/04/26/emoticons-of-genius/">here</a>.</p>
<p><em>Update: There are several new smileys, including the robot [:|] and the &#8220;poo&#8221; ~@~ thing. Check out the <a title="Full List of Gmail Chat Emoticons" href="http://techrageo.us/2008/11/06/gmail-chat-smileys/">full list of Gmail chat emoticons</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2006/10/14/gmail-chat-needs-more-cowbell/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Gmail Chat Fun</title>
		<link>http://techrageo.us/2006/07/06/gmail-chat-fun/</link>
		<comments>http://techrageo.us/2006/07/06/gmail-chat-fun/#comments</comments>
		<pubDate>Fri, 07 Jul 2006 00:48:40 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://techrageo.us/2006/07/06/gmail-chat-fun/</guid>
		<description><![CDATA[Update: For the full list of Gmail chat emoticons, including the new category-four smileys and the new robot smiley, see Gmail Chat Smileys. Currently Gmail Chat does not support formatting like Yahoo or others do. But there are some things you can do to spice up the experience, such as it is. Some of this [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update: For the full list of Gmail chat emoticons, including the new category-four smileys and the new robot smiley, see <a href="http://techrageo.us/2008/11/06/gmail-chat-smileys/">Gmail Chat Smileys</a>.</strong></p>
<p>Currently Gmail Chat does not support formatting like Yahoo or others do. But there are some things you can do to spice up the experience, such as it is. Some of this applies to Gtalk, some doesn&#8217;t.<br />
Previously, we&#8217;ve covered <a href="http://techrageo.us/2006/05/11/format-gmail-gtalk-status/"><strong>bold</strong>, <em>italics</em>, and special characters</a> (like ♫♥☼). We also <a href="http://techrageo.us/2006/05/11/new-gmail-and-gtalk-features/">noted that Google added</a> an incoming-chat sound and the ability to add a picture to a Gmail contact.</p>
<p>However, here are some more Gmail Chat features.</p>
<p><strong>To recap the text formatting&#8230;</strong></p>
<p>Italics &#8211; you can surround text with an underscore (&#8220;_&#8221;) to italicize it. For example &#8220;_this_ is important&#8221; displays as <em>&#8220;this</em> is important&#8221;</p>
<p>Bold &#8211; if you surround text with astericks (&#8220;*&#8221;) it will display as bold. &#8220;*This* is important&#8221; displays as &#8220;<strong>this</strong> is important&#8221;</p>
<p><strong>Update (6/6/2009):</strong> Strike through &#8211; surround text with hypens (&#8220;-&#8221;) to cross it out. &#8220;-This- is crossed out&#8221; will display as &#8220;<del>This</del> is crossed out&#8221;.</p>
<p><strong>Special Characters</strong></p>
<p>You can copy-paste special characters from charmap (in Windows) or another character map application or website into your messages. Try copy-pasting any of the following characters into a Gmail chat window (or status, see below):<br />
<em>Whoops! A WordPress upgrade somehow munged these characters. I&#8217;ll work on recreating.</em></p>
<p><strong>Status</strong></p>
<p>If any of your Gmail contacts are online, they can be displayed to the left of the browser window, with an icon and chat status message displayed as well. Contact status icons can be either grey, red, orange, or green indicating that the contact is offline, busy, idle, or online and available (respectively).</p>
<p>However, if the contact has set a status message, it will be displayed below the contact name. This status message can also be formatted (bold and/or italic) and can include special characters. For example, you might use ♫♪ to indicate the obvious.</p>
<p>Further, you can include a domain in your status and it will hyperlink automatically. Type techrageo.us as your status and it becomes <a href="http://techrageo.us">techrageo.us</a> all by itself.</p>
<p><img title="Gmail chat emoticons" src="/wp-content/gmailchat-emoticons.jpg" alt="Gmail chat emoticons" align="right" /> <strong>Emoticons</strong></p>
<p>Gmail&#8217;s Chat has <a href="http://mail.google.com/support/bin/answer.py?answer=34056">slick little animated emoticons</a>. No, not the ubiquitous yellow smiley faces, but a clever modern take on the original text emoticons.</p>
<p>And no, unfortunately the emoticons don&#8217;t work in the status messages. Come on, Google. I can <strong>\m/</strong> rock out in chat, but I have to ♫♪ in my status message. Oh, well, I guess that&#8217;s okay.</p>
<div style="color:red;padding-bottom:1em;"><em>Update: Google has updated Gmail, and it includes <a style="color:red;" href="http://techrageo.us/2007/12/08/new-gmail-chat-smilies/">a new popup smiley interface and <strong>new emoticons</strong></a>.</em></div>
<div style="color:red;padding-bottom:1em;"><em>Update: There are even more (well, a few more) smileys, including the robot [:|] and the &#8220;poo&#8221; thing ~@~. See the <a title="Full List of Emoticons in Gmail Chat" href="http://techrageo.us/2008/11/06/gmail-chat-smileys/">full list of emoticons in Gmail chat</a>.</em></div>
<div style="color:red;padding-bottom:1em;"><em>Update: Strikeout text is now supported. See above.</a>.</em></div>
<p><strong>Gmail Integration</strong></p>
<p>Say you receive an email and want to send a quick reply. If the person to whom you&#8217;re replying is online, you can also reply to their email message via chat.</p>
<p>Also, your chat history is saved. On the left side of the Gmail browser window, a couple items below Inbox is Chats. Click that to get a history of your chats. If you &#8220;Go Offline with&#8230;&#8221; a contact, that chat is not saved. Also, you can turn off the feature that saves chats.</p>
<p><strong>Other Resources</strong></p>
<p><a href="http://www.google.com/mail/help/chat.html">Gmail Chat Help</a> is a good overview of the features</p>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2006/07/06/gmail-chat-fun/feed/</wfw:commentRss>
		<slash:comments>187</slash:comments>
		</item>
		<item>
		<title>Tutorial: The Gimp</title>
		<link>http://techrageo.us/2006/07/05/tutorial-the-gimp/</link>
		<comments>http://techrageo.us/2006/07/05/tutorial-the-gimp/#comments</comments>
		<pubDate>Thu, 06 Jul 2006 02:24:52 +0000</pubDate>
		<dc:creator>grant</dc:creator>
				<category><![CDATA[Modify]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://techrageo.us/2006/07/05/tutorial-the-gimp/</guid>
		<description><![CDATA[For this tutorial you will need a copy of The Gimp. You can download it here for Windows, Linux and OS X. For any project you need a goal, so for this tutorial our goal will be to create a fantasy image of a far away galaxy. Cheesy? Yes, but also very easy if you [...]]]></description>
			<content:encoded><![CDATA[<p>For this tutorial you will need a copy of The Gimp.  You can download it <a href="http://gimp.org/downloads/">here</a> for Windows, Linux and OS X.</p>
<p>For any project you need a goal, so for this tutorial our goal will be to create a fantasy image of a far away galaxy.  Cheesy? Yes, but also very easy if you know the right tricks.  Soon you&#8217;ll be creating stars and planets and you&#8217;ll get a warm feeling all over.  That is nature&#8217;s way of telling you that you&#8217;ve been sitting at the computer too long and you need to change your pants.  Hopefully this won&#8217;t take <em>that</em> long.</p>
<p><a href="http://techrageo.us/wp-content/tech_gimp_1_large.jpg"><img align="right" alt="New Gimp Image - Large" src="http://techrageo.us/wp-content/tech_gimp_1.jpg" /></a><br />
First, start up The Gimp and select <strong>New</strong> from the <strong>File</strong> menu.  You will get a window that will popup and look similar to what you see on the right.  Let&#8217;s create a 1600&#215;1200 image (any size will do though) and fill it with the <strong>Foreground color</strong> (this will be black unless you have changed something).  You can change the other stuff when you know what you are doing, but for this example we will just leave them at the defaults.</p>
<p>After you click <strong>OK</strong> the program will replace that window with a large window that is completely black in the middle.  There you have it&#8230;Space.</p>
<p>Mission accomplished.</p>
<p>Okay, maybe that was a little too easy.  We&#8217;d better add some more stuff or people will think that space is a really boring, empty place.  Which it is, but we don&#8217;t want <em>them</em> to think that.  So lets start with some stars.</p>
<p><a href="http://techrageo.us/wp-content/tech_gimp_2_large.jpg"><img align="left" alt="New Gimp Layer" src="http://techrageo.us/wp-content/tech_gimp_2.jpg" /></a><br />
In order to create some stars we first need to create a new layer in our image.  Now The Gimp should have started up a <strong>Layers</strong> panel when it started, but if it didn&#8217;t or if you closed it you can re-open it by going to the <strong>File menu</strong>, then to <strong>Dialogs</strong> and then to <strong>Layers</strong>.  Now you should be seeing something similar to the image on the left (except without my ugly arrow).  Don&#8217;t worry if yours has some extra stuff at the bottom, that is normal, but we won&#8217;t be using it right now so it is safe to ignore temporarily.</p>
<p>Click on the <strong>New</strong> button (at the bottom of the arrow in the image to the left) and click <strong>OK</strong> to the dialog box it pops up.  This will create a new layer on your image.  The layer is currently blank, so you can&#8217;t see anything in your image but you can see the new layer entry added in the Layers dialog.</p>
<p>The &#8220;New Layer&#8221; entry should be highlighted blue, but if it isn&#8217;t you can click on it to turn it blue.  The layer that is highlighted is the current layer and any changes we make to the image will only happen to this layer.  This will make more sense in a minute.  For now though, just select the &#8220;New Layer&#8221; and go back to your image screen (the window that is all black in the middle).  From here you can click on <strong>Filters</strong>, then <strong>Noise</strong>, then <strong>Hurl</strong>.  This will allow us to &#8220;hurl&#8221; some stars onto our Space.  When the dialog box pops up asking you for the specifics you should click the <strong>Randomize</strong> checkbox and move the <strong>Randomization %</strong> down to 5%.  Then hit <strong>OK</strong>.</p>
<p>Then you will notice that you have a bunch of multicolored dots on your nice Space image.  I know what you are thinking (or should be): &#8220;Wait a minute&#8230;.there&#8217;s too many and their colors are all too bright to be stars.&#8221;  And you are right, but that is why we put the stars onto a new layer.  Now go back to your layer dialog box and notice the nice <strong>Opacity</strong> slider right above your &#8220;New Layer&#8221;.  If you move that down to about 50% you will get something that looks more like the fake space you wanted to create.</p>
<p>Okay let&#8217;s put some funky Space Colors &#8482; into this image like you see in all the NASA photos.  Go ahead and create a new layer and select it.  Then go back to your image and go to <strong>Filters</strong> then <strong>Render </strong>then <strong>Clouds</strong> then <strong>Plasma</strong>.  A dialog box will pop up that has a funky &#8220;hippy&#8221; image in it.  Keep clicking <strong>New Seed</strong> until you get a hippy image with a lot of colors in it (this really doesn&#8217;t matter much if you want to accept the hippy image that originally popped up).  The <strong>turbulence</strong> should be left at about 1.0.  Click <strong>OK</strong> when you have everything how you like it.</p>
<p>This probably turned your nice space image into a giant hippy image.  This is what space looks like on acid.  Or so I&#8217;ve heard.  Now go back to your layer dialog and change the <strong>Opacity</strong> on this layer down to about 20% or so.  Now you have some nice Space Colors &#8482;.  But wouldn&#8217;t it be nice if our stars were just a little brighter?  Go back to your layers dialog and select your hippy layer and click the arrow pointing down (near the button you click to create a new layer).  Now your hippy layer is below the stars and thus the stars are brighter.  If that didn&#8217;t make much of a difference then you can always lower the <strong>Opacity</strong> on your hippy layer some more.</p>
<p>Now lets create a supernova right in the middle somewhere.  This is really easy.   Create a new layer, select it, go to your image and on the menu go to <strong>Filters</strong> then to <strong>Light Effects</strong> then to <strong>SuperNova</strong>.  The defaults will probably be okay but you can safely mess around with them without screwing anything up if you want.</p>
<p>Now would be a good time to save, if you are satisfied with your image so far.  Just save it as  myspace.jpg and take all the defaults.</p>
<p><a href="http://techrageo.us/wp-content/tech_gimp_3_large.jpg"><img align="right" alt="Gimp Selection Tool" src="http://techrageo.us/wp-content/tech_gimp_3.jpg" /></a><br />
Now we have a star, how about some planets?  Okay, you know the drill&#8230;new layer.  Now on your main Gimp screen you should select the <strong>Round Select</strong> tool (see the image to the right for help).  On your space image you can now click and drag and create little circles and elipses.  If you hold down the <strong>SHIFT</strong> key (on your keyboard) while dragging it will always create a perfect circle.  Make a circle somewhere you would like to put a planet.</p>
<p>Now on the main Gimp screen select the <strong>Gradient Fill</strong> tool (the green and white box three spaces below the circle select tool in my image to the right).  Just below this box there are two boxes with colors in them (probably black and white, unless you have changed them).  Click on the black color to change it.  Just click somewhere in the rainbow of colors then make it lighter or darker in the large box next to the rainbow.  Pick red for your first planet.  Now click <strong>OK</strong> and go back to the main Gimp window.  There is a little double sided arrow pointing at both of the colors, red and white.  If you click on this it will switch the main color to white and make the color you picked (red) the secondary color.  Do this now.</p>
<p>Now below the colors on the main Gimp screen there is a box that is labeled <strong>Shape</strong> and has the word <strong>Linear</strong> in it.  Click this box and change it to <strong>Radial</strong>.  Now on your Space image click inside your selected circle and drag the mouse toward your supernova.  You won&#8217;t have to drag very far, probably about the width of your planet will be fine.  I find it also helps to start near the edge on which the supernova shines.  Don&#8217;t worry if it doesn&#8217;t turn out very good, you can keep doing it over and over again and it will not mess anything up.  Just leave the planet selected when you are done.</p>
<p>I know what you are thinking&#8230;<em>that doesn&#8217;t look like a planet.  It looks like a pool ball in space.  Now you are really on acid, man</em>.  That may be true, but we aren&#8217;t finished yet.  Create YAL (yet another layer) and on your image menu go to <strong>Filters</strong> then <strong>Render</strong> then <strong>Clouds</strong> then <strong>Solid Noise</strong>.  When the box pops up, click &#8220;New Seed&#8221; and then OK.  If you left your planet selected as instructed then you should have a very gray and ugly planet now, but I think you know what to do.  Go to the Layers dialog and reduce the <strong>Opacity</strong>!  Reducing it to about 35% works well for me and gives the planet a little atmosphere.  Pun intended.</p>
<p>Now do the same thing a couple of times, add some moons around the planets (done exactly like the planets) and you&#8217;ve created your own solar system.  Wouldn&#8217;t your mother be proud of you now?</p>
<div style="text-align: center"><a class="imagelink" title="My Space Picture" href="http://techrageo.us/wp-content/uploads/2006/07/tech_gimp_4.jpg"><img id="image63" alt="My Space Picture" src="http://techrageo.us/wp-content/uploads/2006/07/tech_gimp_4_thumb.jpg" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2006/07/05/tutorial-the-gimp/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Egoless Programming</title>
		<link>http://techrageo.us/2006/05/12/egoless-programming/</link>
		<comments>http://techrageo.us/2006/05/12/egoless-programming/#comments</comments>
		<pubDate>Fri, 12 May 2006 20:40:35 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://techrageo.us/?p=57</guid>
		<description><![CDATA[Programmers, get out of your cube and play nice, share your knowledge, be open to learning from others&#8230; just a bit of great advice based on the concept of peer code reviews in Jerry Weinberg&#8217;s book The Psychology of Computer Programming. It is often tough for developers to detach themselves from their code. Code reviews [...]]]></description>
			<content:encoded><![CDATA[<p>Programmers, get out of your cube and play nice, share your knowledge, be open to learning from others&#8230; just a bit of great advice based on the concept of peer code reviews in Jerry Weinberg&#8217;s book <a href="http://www.amazon.com/exec/obidos/ASIN/0932633420/mumeishi-20">The Psychology of Computer Programming</a>.</p>
<p>It is often tough for developers to detach themselves from their code. Code reviews are feared because they essentially invite criticism, but if such criticism is given in a cooperative manner, it is good for all involved. Participants in a code review should go into it hoping to learn and maybe teach at the same time.</p>
<p>However, it is important to keep in mind that you can only get a handle on your ego and learn to respect others&#8217; egos. Pride in one&#8217;s craft is a great motivating factor for quality in any trade and should be fostered. Sharing be used to improve each individual&#8217;s work, not to strip them of their technical &#8220;ownership&#8221; of a component.</p>
<p>Builder.com has condensed some rules for accepting Weinberg&#8217;s concepts of egoless programming in <a href="http://builder.com.com/5100-6404-1045782.html">The Ten Commandments of Egoless Programming</a>. (Via <a href="http://www.codinghorror.com/blog/archives/000584.html">Coding Horror</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://techrageo.us/2006/05/12/egoless-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

