<?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>Red Leopard &#187; blog</title>
	<atom:link href="http://www.redleopard.com/tag/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.redleopard.com</link>
	<description>A Stranger in a Strange Land</description>
	<lastBuildDate>Mon, 07 Jun 2010 22:59:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Javascript DOM Listeners</title>
		<link>http://www.redleopard.com/2009/01/javascript-dom-listeners/</link>
		<comments>http://www.redleopard.com/2009/01/javascript-dom-listeners/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 00:52:34 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[photo]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=449</guid>
		<description><![CDATA[I&#8217;ve wanted to build a simple gallery viewer for some time. &#8220;But there are thousands of already built viewers,&#8221; you may be thinking. Yes there are. But I wanted a simple viewer that was at once trés snappy and minimalist.
I dislike the gallery systems that open another window or create a floating panel which must [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve wanted to build a simple gallery viewer for some time. &#8220;But there are thousands of already built viewers,&#8221; you may be thinking. Yes there are. But I wanted a simple viewer that was at once trés snappy and minimalist.</p>
<p>I dislike the gallery systems that open another window or create a floating panel which must be dismissed. I wanted a simple picture portal with simple thumbnails. I wanted something that didn&#8217;t require jacking javascript or event listeners directly into the html. It had to be easy to use with wordpress.</p>
<p>I wanted to add a title and caption to each picture. Clicking the thumbnail would change out the picture, the title and the caption.</p>
<p>Since I would add galleries to a blog, the code had to handle multiple galleries per page. Therefore, the galleries could use class attributes but not id attributes in the event listeners.</p>
<p>For this project, I wrap each gallery in a <code>&lt;div&nbsp;/&gt;</code> element and give the element a class type of <code>gallery</code>.</p>
<div class="terminal">
<pre>
&lt;div class="gallery"&gt;
  &lt;h3&gt;Photo 1 Title&lt;/h3&gt;
  &lt;p&gt;&lt;img width="592" height="330" alt="" src="/img/p1.jpg" /&gt;&lt;/p&gt;
  &lt;div class="gallery-thumbs"&gt;
    &lt;img
      width="50" height="50"
      title="Photo 1 Title"
      alt="Photo 1 Caption."
      longdesc="/img/p1.jpg"
      src="/img/t1.jpg"
    /&gt;&lt;img
      width="50" height="50"
      title="Photo 2 Title"
      alt="Photo 2 Caption."
      longdesc="/img/p2.jpg"
      src="/img/t2.jpg" /&gt;
  &lt;/div&gt;
  &lt;p&gt;Photo 1 Caption&lt;/p&gt;
&lt;/div&gt;
</pre>
</div>
<p>The main parts of the viewer are:</p>
<ul>
<li><code>&lt;h3&nbsp;/&gt;</code> element which displays the photo title</li>
<li><code>&lt;p&nbsp;/&gt; element wrapping the &lt;img&nbsp;/&gt;</code> element which is the main photo portal</li>
<li><code>&lt;div&nbsp;/&gt;</code> element with a class of <code>&lt;gallery-thumbs&nbsp;/&gt;</code> which is a container for all the thumbnail images; all thumbnail <code>&lt;img&nbsp;/&gt;</code> elements are placed inside this container</li>
<li><code>&lt;p&nbsp;/&gt;</code> element which displays the photo caption</li>
</ul>
<p>I chose to make my photo portal 592 by 330 pixels as this fits well with several of my templates. I chose this aspect ratio—which is close to &#8220;wide-screen&#8221;—as it gives me more room to display a lengthy caption without scrolling. However, any aspect ratio may be used. One limitation of this system is that all photos in a gallery set must have the same width and height dimensions.</p>
<p>The thumbnail <code>&lt;img&nbsp;/&gt;</code> elements use the <code>alt</code> and <code>title</code> attributes as they were intended. I still needed to supply the main photo URL associated with each thumbnail. Since I want my gallery code to validate, I couldn&#8217;t simply add a non-html attribute. I pragmatically chose to use the <code>longdesc</code> attribute in a unorthodox manner to declare the main image URL.</p>
<p>I like small thumbnails. Mine are 50 by 50 pixels. Some people are very, very, very adament that thumbnail images must be an exact replica of the original image. Not me. The thumbnail ratio is square regardless of the original photo ratio. I may or may not resize the image before taking a thumbnail. My thumbnails do not even have to be taken from the photo. They could be icons, for all I care. As long as they communicate effectively and are visually appealing.</p>
<p>I add a bit of CSS seasoning to help with presentation. Season your gallery to taste.</p>
<div class="terminal">
<pre>
div.gallery {
    margin:  0 0 2em 0;
    padding: 0;
    border:  0;
}

div.gallery img {
  margin:  0;
  padding: 0;
  border:  0;
}

div.gallery-thumbs {
  margin:  0;
  padding: 0;
}

div.gallery-thumbs img {
  margin:  4px 8px 0 0;
  padding: 0;
  border:  1px solid black;
}

div.gallery p {
  clear: both;
  margin:  0;
  padding: 0;
}
</pre>
</div>
<p>Before I get into the core javascript functions, let&#8217;s look at how we register the event listeners. This is the code that must be added <code>&lt;head&nbsp;/&gt;</code> element of every page that contains a gallery.</p>
<div class="terminal">
<pre>
&lt;script type="text/javascript"&gt;
/*&lt;![CDATA[*/

  function init() {
    registerGalleries();
  }
  window.onload = init;

/*]]&gt;*/
&lt;/script&gt;
</pre>
</div>
<p>I initialize the event listeners <em>after</em> the page loads using the <code>window.onload</code> event. While I could have included the <code>init</code> function in an external file, I may want to extend it in the future to register events for other systems. The <code>registerGalleries</code> function is defined in the external gallery javascript file.</p>
<div class="terminal">
<pre>
&lt;script type="text/javascript" src="js/gallery.js"&gt;&lt;/script&gt;
</pre>
</div>
<p>Once the window loads, <code>init</code> is called which in turn calls <code>registerGalleries</code> which registers event listeners for any and all galleries on the page.</p>
<div class="terminal">
<pre>
function registerGalleries() {

  // get every element in the document
  var allTags = document.getElementsByTagName("*");

  // check each element to see if it's a
  // div element and gallery class
  for (var i = 0; i &lt; allTags.length; i++) {
    if (allTags[i].tagName == "DIV") {
      if (allTags[i].className == "gallery") {

        // it is a gallery, so get all the subelements
        var galleryTags = allTags[i].childNodes;

        // check each subelement for the gallery-thumbs container
        for (var j = 0; j &lt; galleryTags.length; j++) {
          if (galleryTags[j].className == "gallery-thumbs") {

            // it is a gallery-thumbs, so get all the subelements
            var thumbTags = galleryTags[j].childNodes;

            // and register event listeners on all thumbnails
            registerThumbs(thumbTags);
          }
        }
      }
    }
  }
}
</pre>
</div>
<p>The <code>registerThumbs</code> function looks for the image tags within <code>gallery-thumbs</code> container.</p>
<div class="terminal">
<pre>
function registerThumbs(thumbs) {
  for (var i = 0; i &lt; thumbs.length; i++) {

    // the gallery-thumbs container has more than just &lt;img&nbsp;/&gt;
    // elements. The whitespace between each &lt;img&nbsp;/&gt; element
    // is also a node. So, we must check for the actual thumbnail
    // code and add the event listener to that.
    if (thumbs[i].tagName == "IMG") {
      addListener(thumbs[i], "click", updateGallery);
    }
  }
}
</pre>
</div>
<p>Attaching events using javascript and DOM differs between Microsoft and the rest of the world. {{sign}} The following code has worked well for me on numerous projects.</p>
<div class="terminal">
<pre>
function addListener(element, event, process) {
  if ( element.addEventListener ) {
    element.addEventListener(event, process, false);
  }
  else if ( element.attachEvent ) {
    element.attachEvent("on"+event, process);
  }
}
</pre>
</div>
<p>From this point on, the gallery system gets brittle. The javascript depends on a specific node order for node traversal. If the node order changes, you must modify the javascript accordingly. Perhaps one day I will make the code <i>node-order</i> independent. The gist of <code>updateGallery</code> is to get the thumbnail <code>&lt;img&nbsp;/&gt;</code> element from the event, extract the contextually relevant information from that element, traverse the nodes in the <code>gallery</code> container to find the title, picture portal and caption elements and update those elements with the new information.</p>
<div class="terminal">
<pre>
function updateGallery(e) {
  thumb = e.target ? e.target : e.srcElement;

  var thumbTtl = thumb.getAttribute("TITLE");
  var thumbAlt = thumb.getAttribute("ALT");
  var thumbLnk = thumb.getAttribute("LONGDESC");

  var thumbTxt = thumb.parentNode
                      .nextSibling
                      .nextSibling;
  var thumbPix = thumb.parentNode
                      .previousSibling
                      .previousSibling
                      .firstChild;
  var thumbCap = thumb.parentNode
                      .previousSibling
                      .previousSibling
                      .previousSibling
                      .previousSibling;

  thumbPix.src = thumbLnk;
  thumbTxt.firstChild.nodeValue = thumbAlt;
  thumbCap.firstChild.nodeValue = thumbTtl;
}
</pre>
</div>
<p>That&#8217;s it. Below is an example that I created for this project. It uses ten Scandinavian photos from a stock image/clipart DVD I got years ago.</p>
<div class="gallery">
<h3>White Barn</h3>
<p><img width="592" height="330" alt="" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-008.jpg" /></p>
<div class="gallery-thumbs"><img width="50" height="50" title="White Barn" alt="A nice white barn under a blue sky surrounded by yellow flowers." longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-008.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-008.jpg" /><img width="50" height="50" title="Boat on Shore" alt="A smart little boat on the shore." longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-013.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-013.jpg" /><img width="50" height="50" title="Boats in Water" alt="Boats tied up in a canal." longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-015.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-015.jpg" /><img width="50" height="50" title="Homes by Water" alt="Wouldn't it be nice to live here?" longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-019.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-019.jpg" /><img width="50" height="50" title="Slice of Heaven" alt="This could be Minnesota but actually is Scandinavia." longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-036.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-036.jpg" /><img width="50" height="50" title="Yellow Field" alt="Just makes me want to bust out in song." longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-049.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-049.jpg" /><img width="50" height="50" title="Red House" alt="Can you see yourself on the lawn?" longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-057.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-057.jpg" /><img width="50" height="50" title="Blue Boat" alt="A blue boat for blue water." longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-065.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-065.jpg" /><img width="50" height="50" title="Fish" alt="I like sardines." longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-070.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-070.jpg" /><img width="50" height="50" title="Little Mermaid" alt="The Little Mermaid was unveiled at Langelinje in 1913." longdesc="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/main/scandinavia-078.jpg" src="/galleries/dacbad60-d8e3-11dd-ad8b-0800200c9a66/thumb/scandinavia-078.jpg" /></div>
<p>A nice white barn under a blue sky surrounded by yellow flowers.</p>
</div>
<p>I found that when I entered the gallery code into wordpress, wordpress added &lt;br&nbsp;/&gt; elements where I didn&#8217;t want them. This would break the layout (duh!). Originally, I didn&#8217;t have a paragraph element wrapping the main image. Wordpress insisted on adding the tag. Likewise, I originally had each thumbnail begin on a new line. Wordpress insisted on adding a break element so I ended up butting the end of one thumbnail image element against the next (no white space).</p>
<p>Just for grins, I added another gallery from the same clipart collection. This time from India.</p>
<div class="gallery">
<h3>Train Station</h3>
<p><img width="592" height="330" alt="" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-005.jpg" /></p>
<div class="gallery-thumbs"><img width="50" height="50" title="Train Station" alt="Some people in the doorway of the train. Looks as if they are hanging out over a ledge." longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-005.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-005.jpg" /><img width="50" height="50" title="Veggie Vendor" alt="Fresh vegetables are abundant. Street vendors are always ready to help you fulfill your veggie habit." longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-011.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-011.jpg" /><img width="50" height="50" title="Taj" alt="I like the view of the Taj from the lawn. Most snaps are from the reflecting pool which is also nice. There's something magical about green grass in India." longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-019.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-019.jpg" /><img width="50" height="50" title="El Pero" alt="Dogs will be dogs and they pretty much do the same thing all over the world. If you ever wondered what domestic dogs would do if the reverted back to the wilds, here it is. Dogs can be agressive which is why you should carry a rock. Indian dogs know what a rock is even if they haven't had a rabies vaccination." longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-022.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-022.jpg" /><img width="50" height="50" title="Bustling Market" alt="India's markets and shops are hypnotic if initially intimidating. Children learn a trade early here. That in contrast to children elsewhere who finish graduate school with no marketable skills." longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-029.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-029.jpg" /><img width="50" height="50" title="Cows" alt="It's true. India has cows. Lots of cows. After the initial novelty wears off, the cows (and buffaloes) grow on you. Like giant pets they hang out and eat. You eventually recognize which cow lives where. They don't wander far." longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-040.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-040.jpg" /><img width="50" height="50" title="Entertainment" alt="Now, that's just good TV!" longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-055.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-055.jpg" /><img width="50" height="50" title="Rest of World" alt="Most of the world is not in jeapordy of losing their home due to the recent (circa 2008) economic crisis. They have other issue far more pressing in their context. Spend a little time with them. You cannot help but experience humanity." longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-056.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-056.jpg" /><img width="50" height="50" title="Brick Mogul" alt="It may look like a pile of bricks but for some enterprising vendor, that is 'inventory'." longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-057.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-057.jpg" /><img width="50" height="50" title="Elephant" alt="India still has elephants but not so many. Did you know that elephants have bristly hair?" longdesc="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/main/india-281.jpg" src="/galleries/47d271e0-dab6-11dd-ad8b-0800200c9a66/thumb/india-281.jpg" /></div>
<p>Some people in the doorway of the train. Looks as if they are hanging out over a ledge.</p>
</div>
<p>I&#8217;m pleased with the results. On to the next project.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2009/01/javascript-dom-listeners/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wordpress plugin problem</title>
		<link>http://www.redleopard.com/2008/12/wordpress-plugin-problem/</link>
		<comments>http://www.redleopard.com/2008/12/wordpress-plugin-problem/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 21:01:05 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=319</guid>
		<description><![CDATA[When I moved to wordpress, I purposely picked a theme with paged listings. Of course, I also started with the latest v. 2.7 release. (Actually 2.7 rc2, then an upgrade).
The paged navigation at the bottom of the content section did not work. I tried to install the wp-pagenavi plugin but wordpress complained that the anjing [...]]]></description>
			<content:encoded><![CDATA[<p>When I moved to wordpress, I purposely picked a theme with paged listings. Of course, I also started with the latest v. 2.7 release. (Actually 2.7 rc2, then an upgrade).</p>
<p>The paged navigation at the bottom of the content section did not work. I tried to install the <a href="http://lesterchan.net/wordpress/readme/wp-pagenavi.html">wp-pagenavi plugin</a> but wordpress complained that the <a href="http://www.happinesz.cn/archives/767/">anjing theme</a> had already defined <code>wp_pagenavi()</code>.</p>
<p>I&#8217;m new to wordpress (and don&#8217;t know PHP well) but I do know how to comment out code.</p>
<p>{{clackity-clackity-clack}}</p>
<div class="terminal">
<pre>
vi ~/public_html/wp-content/themes/anjing/functions.php
</pre>
</div>
<p>and comment out the function</p>
<div class="terminal">
<pre>
/*
function wp_pagenavi($before = '', $after = '') {
    ⋮
}
*/
</pre>
</div>
<p>Like magic. The plugin activates and I have pages!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2008/12/wordpress-plugin-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Jump to Wordpress</title>
		<link>http://www.redleopard.com/2008/12/jump-to-wordpress/</link>
		<comments>http://www.redleopard.com/2008/12/jump-to-wordpress/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 20:18:10 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=116</guid>
		<description><![CDATA[I finally made the jump from moveable type to wordpress. The hardest step was porting the old posts. Whereas I created posts using UTF-8 encoded characters, moveable type did a dumb convert of the characters into Latin-1 when storing them MySQL. Since the path out of the database and to the page was a reverse [...]]]></description>
			<content:encoded><![CDATA[<p>I finally made the jump from moveable type to wordpress. The hardest step was porting the old posts. Whereas I created posts using UTF-8 encoded characters, moveable type did a dumb convert of the characters into Latin-1 when storing them MySQL. Since the path out of the database and to the page was a reverse process, when viewing pages the characters would reappear as UTF-8.</p>
<p>However, when exporting the data from moveable type, the round-trip was broken. The characters in MySQL were not really proper Latin-1 characters. None of the recommended processes I found through google worked for me. I&#8217;ve had to deal with this problem at work last year. The memory of that pain makes me flinch.</p>
<p>In the end, I exported the data from moveable type, ran iconv to convert to UTF-8 and manually edited the resulting file to correct the mistakes.</p>
<p>I chose not to import all my images into each and every post. I simply link to them.</p>
<p>I still don&#8217;t have my template set up properly. There&#8217;s a few bits and pieces from the moveable type templates I&#8217;d like to port. But overall, it went smoothly. Five minutes to install and configure wordpress/mysql. Twenty minutes to find a template I liked. Ten minutes tweaking the CSS to fit my old content into the new template (images were wider than the default content width). Three hours mucking with the Latin-1::UTF-8 problem.</p>
<p>Now to get pagination, rss/atom feeds, … working.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2008/12/jump-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More site tweaks</title>
		<link>http://www.redleopard.com/2003/07/more-site-tweaks/</link>
		<comments>http://www.redleopard.com/2003/07/more-site-tweaks/#comments</comments>
		<pubDate>Fri, 11 Jul 2003 21:44:44 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.redleopard.site/?p=50</guid>
		<description><![CDATA[I haven&#8217;t made many visible tweaks to the redleopard site since June. This isn&#8217;t to say that things weren&#8217;t going on &#8216;behind the scenes&#8217;. Here&#8217;s what&#8217;s happened.

1. System Upgrade
Hurricane Electric (my web host) offered all it&#8217;s long time customers the option of free upgrades to the new hosting environment. Feature-wise, it means I now have [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t made many visible tweaks to the redleopard site since June. This isn&#8217;t to say that things weren&#8217;t going on &#8216;behind the scenes&#8217;. Here&#8217;s what&#8217;s happened.</p>
<p><span id="more-50"></span><br />
<strong>1. System Upgrade</strong></p>
<p>Hurricane Electric (my web host) offered all it&#8217;s long time customers the option of free upgrades to the new hosting environment. Feature-wise, it means I now have 1GB of storage instead of 250MB. I currently use about 1MB.</p>
<p>I guess they wanted us old timers off the old machines so they could retire them. The only thing I had to do was log into MySQL and set my password.</p>
<p>For some reason, DNS was screwed up for a couple days but it &#8216;magically&#8217; worked itself out. I sent an email to support but the problem disappeared before they looked into it.</p>
<p>It just goes to prove the old adage: if you ignore a problem long enough, it will go away.</p>
<p>I can report that the new systems are <strong>much</strong> faster than before. In fact, Moveable Type running on Hurricane Electric&#8217;s machines rebuilds the site faster than my local Mac. I&#8217;m the only one on my machine. Sad.</p>
<p><strong>2. MT 2.64</strong></p>
<p>I&#8217;ve been busy on the sister site building infrastructure using MT 2.64. It&#8217;s all behind passwords so you can&#8217;t see it. I&#8217;ve not used any new features in 2.64 and it seems to be the same a 2.63. I will probably not upgrade to 2.64 right away for red leopard.</p>
<p><strong>3. Site Code Organization</strong></p>
<p>I construct sites using three major blocks:</p>
<ul>
<li>Banner</li>
<li>Links</li>
<li>Content</li>
</ul>
<p>I&#8217;ve taken to moving the banner and links code into a module template. It&#8217;s located at the bottom of the &#8216;edit templates&#8217; screen.</p>
<p>I then include the modules in my index templates. It really cleans up my templates and I only have to edit links in one place.</p>
<p>I thought about moving to PHP to create dynamic links but it&#8217;s easier to let MT it.</p>
<p><strong>4.  Links block dimension</strong></p>
<p>I&#8217;ve finally given up on using a 150px wide links block. It&#8217;s just too narrow for link names. So, I&#8217;ve standardized on 200px wide blocks.</p>
<p><strong>5. Rhymes</strong></p>
<p>Finally, I added a Rhymes link to collect Tracy&#8217;s poetry. I may add some of my own. Maybe not. I&#8217;m still toying with different Links presentations as her list of Rhymes is getting long.</p>
<p>/k</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2003/07/more-site-tweaks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Changes [check]</title>
		<link>http://www.redleopard.com/2003/06/css-changes-check/</link>
		<comments>http://www.redleopard.com/2003/06/css-changes-check/#comments</comments>
		<pubDate>Thu, 19 Jun 2003 23:18:06 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.redleopard.site/?p=18</guid>
		<description><![CDATA[I made the css change in less than a month. It consisted of two changes.

First lighten the background color of blogbody.
Second darken the paragraph text.
My lame excuse for not fixing it sooner is I&#8217;ve been busy! But it&#8217;s true. All about priorities.
Business has picked up and I&#8217;m both working under contract and putting more bids [...]]]></description>
			<content:encoded><![CDATA[<p>I made the css change in <strong>less</strong> than a month. It consisted of two changes.</p>
<p><span id="more-18"></span><br />
First lighten the background color of blogbody.</p>
<p>Second darken the paragraph text.</p>
<p>My lame excuse for not fixing it sooner is <em>I&#8217;ve been busy!</em> But it&#8217;s true. All about priorities.</p>
<p>Business has picked up and I&#8217;m both working under contract and putting more bids out for contract. Which brings me to the next point.</p>
<p>I&#8217;m working on my business site. It&#8217;s powered by MT+PHP. I&#8217;m not a programmer so the PHP side is going a bit slowly. Plus, I&#8217;m learning a lot about MT and it&#8217;s power. Between the two, I believe I have everything I need to build a good CMS for small businesses. The commercial license for MT is $150 but that&#8217;s reasonable.</p>
<p>But back to CSS.</p>
<p>I finally made the changes so I can officially check that item off the to do list.</p>
<p>If I can only find the list&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2003/06/css-changes-check/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Style Needed</title>
		<link>http://www.redleopard.com/2003/05/new-style-needed/</link>
		<comments>http://www.redleopard.com/2003/05/new-style-needed/#comments</comments>
		<pubDate>Thu, 22 May 2003 05:04:46 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.redleopard.site/?p=17</guid>
		<description><![CDATA[I&#8217;m sick of the Red Leopard style sheet. Expect to see a new CSS.

This site hurts my eyes. The new style sheet will have the same layout but you can rest assured THE TEXT WILL HAVE MORE F*****G CONTRAST WITH THE BACKGROUND.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sick of the Red Leopard style sheet. Expect to see a new CSS.</p>
<p><span id="more-17"></span><br />
This site hurts my eyes. The new style sheet will have the same layout but you can rest assured <strong>THE TEXT WILL HAVE MORE F*****G CONTRAST WITH THE BACKGROUND</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2003/05/new-style-needed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moveable Type Rules</title>
		<link>http://www.redleopard.com/2003/05/moveable-type-rules/</link>
		<comments>http://www.redleopard.com/2003/05/moveable-type-rules/#comments</comments>
		<pubDate>Thu, 22 May 2003 05:01:26 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.redleopard.site/?p=16</guid>
		<description><![CDATA[I&#8217;ve spent the past several nights getting my sister site up and running. After cursing MT, I&#8217;ve come to love it. I&#8217;m hooked.

My sister site fronts my consulting venture.

http://www.workableplan.com

It marks a couple of firsts for me.
It&#8217;s the first time I&#8217;ve used PHP on a live site. I use it to dynamically build the navigation and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent the past several nights getting my sister site up and running. After cursing MT, I&#8217;ve come to love it. I&#8217;m hooked.</p>
<p><span id="more-16"></span><br />
My sister site fronts my consulting venture.</p>
<blockquote>
<p>http://www.workableplan.com</p>
</blockquote>
<p>It marks a couple of firsts for me.</p>
<p>It&#8217;s the first time I&#8217;ve used PHP on a live site. I use it to dynamically build the navigation and links. Never again will I have to crawl a site fixing broken links. It&#8217;s automagical.</p>
<p>It&#8217;s the first time I&#8217;ve built a site completely on Moveable Type. Well, this site uses MT but most of the site is yet to be online. 95% of Red Leopard content is in a tar file.</p>
<p>It&#8217;s the first time I&#8217;ve used multiple blogs in a site (or multiple blogs, for that matter).</p>
<p>I didn&#8217;t set out to use MT. I really wanted a PHP tool that would split a white paper into multiple sections, all linked with prev/next links. After futzing around with examples on the www.php.net documentation site, I was ready to give up. I&#8217;m a really slow coder. It may be from the fact that I <strong>hate</strong> writing code.</p>
<p>Last weekend, I had an epiphany. MT could handle everything I wanted.</p>
<p>It turn&#8217;s out that I only need create a new blog for every white paper I write. Each chapter become a blog entry and MT handles the rest. Sweet.</p>
<p>No more coding.</p>
<p>I can get back to writing content which brings me far more joy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2003/05/moveable-type-rules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online (sort of)</title>
		<link>http://www.redleopard.com/2003/04/online-sort-of/</link>
		<comments>http://www.redleopard.com/2003/04/online-sort-of/#comments</comments>
		<pubDate>Tue, 29 Apr 2003 22:05:08 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.redleopard.site/?p=11</guid>
		<description><![CDATA[About the time I decided to convert the redleopard site to a blog, I switched back to the Mac. That&#8217;s when my problems began &#8211; but not for the reasons you may be thinking.

When I started the migration Spring of 2002, I did all my coding with notepad on a PC. I believe if I [...]]]></description>
			<content:encoded><![CDATA[<p>About the time I decided to convert the redleopard site to a blog, I switched back to the Mac. That&#8217;s when my problems began &#8211; but not for the reasons you may be thinking.</p>
<p><span id="more-11"></span><br />
When I started the migration Spring of 2002, I did all my coding with notepad on a PC. I believe if I had stayed with notepad, my blog would have been up MUCH sooner.</p>
<p>It started with the arrival of a super-sweet titanium powerbook. I thought &#8220;cool, I&#8217;ll set Moveable Type up on my powerbook.&#8221; That way, I could <em>justify </em> installing mySQL. There were other projects in the corners of my mind, you see.</p>
<p>Well, it couldn&#8217;t just be mySQL. I&#8217;d install Apache 2. Not that the default, Apple installed 1.3 wasn&#8217;t good enough. It was. But I wanted Apache 2 <em>just because</em>.</p>
<p>Shoot. While I was at it, I said half believing it, I&#8217;ll install PHP.</p>
<p>I bought the book &#8220;Mac OS X Unleashed&#8221;. That lead me to a dead end. I tried to compile and install packages. Anyone else out there burn endless nights on that exercise? Well, it didn&#8217;t work. Badly. It didn&#8217;t work, badly.</p>
<p>Salvation &#8212; Aaron Faby (Server Logistics). www.aaronfaby.com</p>
<p>You see, I suck at coding. I can do it, but I&#8217;m slow. I&#8217;d rather be powerpointing. <img src='http://www.redleopard.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Yet, I was determined to get it all to work. Some days I was less determined than others.</p>
<p>I&#8217;d like to say I got my DAMP (Darwin-Apache-mySQL-PHP/Perl) system running but it really was Aaron Faby. His packages simply work.</p>
<p>Anyway, my laptop became my website. I&#8217;ve had three redleopard generations that have never been connected to the net.</p>
<p>When Moveable Type released 2.63, I resolved to mirror my DAMP site on my LAMP site (hosted by the folks at Hurricane Electric, www.he.net ). I can&#8217;t say enough good things about Hurricane Electric. Their customer support is without equal.</p>
<p>Anyway, it&#8217;s been a year since I first started to migrate. I&#8217;m finally here. The irony is, if I were using Notepad during that period, the site would have been online a year ago. But it&#8217;s online. Sort of. I&#8217;m now in the bogs of CSS and MT tags, chasing down all the various templates that must be changed just so. Yet, I claim victory. The cat is out. Live. On the net.</p>
<p>It&#8217;s been a long march. I&#8217;ve learned a lot along the way. That counts for something.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2003/04/online-sort-of/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
