<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>majordojo</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.majordojo.com/atom.xml" />
    <id>tag:www.majordojo.com,2008-10-04://3</id>
    <updated>2009-06-27T21:23:25Z</updated>
    <subtitle>A blog about Movable Type, technology, geek-dom, science-fiction and yes, sometimes my personal life.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.261</generator>

<entry>
    <title>Say &quot;Hello&quot; to Daisy Amelia Hailey Reese</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/06/omg-daisy.php" />
    <id>tag:www.majordojo.com,2009://3.14304</id>

    <published>2009-06-27T19:32:30Z</published>
    <updated>2009-06-27T21:23:25Z</updated>

    <summary> In a way I am never to forget, our newest addition, Daisy Amelia Hailey Reese, was brought into the world at 5:16am on June 26, 2009. She was 7lbs, 10oz and 20.5 inches long. Labor was a mere 45...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Announcements" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Family" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ambulance" label="ambulance" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="amelia" label="amelia" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="arin" label="arin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="birth" label="birth" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="daisy" label="daisy" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="firehouse" label="firehouse" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="hailey" label="hailey" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="hospital" label="hospital" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="midwife" label="mid-wife" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="reese" label="reese" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/06/DSC_6874-thumb-640xauto-3187.jpg" title="Daisy Amelia Hailey Reese"><img alt="Daisy Amelia Hailey Reese" src="http://www.majordojo.com/assets_c/2009/06/DSC_6874-thumb-525x349-3187.jpg" width="525" height="349" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></div></span></p>

<p>In a way I am never to forget, our newest addition, Daisy Amelia Hailey Reese, was brought into the world at 5:16am on June 26, 2009. She was 7lbs, 10oz and 20.5 inches long. Labor was a mere 45 minutes long from start to finish. </p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a href="http://twitter.com/byrnereese/status/2343876583" title="Twitter - something is coming out"><img alt="Twitter - something is coming out" src="http://www.majordojo.com/assets_c/2009/06/Picture 2-thumb-525x205-3191.png" width="525" height="205" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></div></span></p>

<p>For the full story of her, keep reading.</p>
]]>
        <![CDATA[<p>My story begins at 4:40am when Arin woke me up saying calmly, "Honey, I think we may have to go to the hospital this morning." If I was at all tired at that moment, I wasn't any longer. I popped out of bed and immediately began gettings things ready to go. Arin actually had to stop me at some point and say, "slow down, you are stressing me out. We don't need to go <em>right this moment</em>, ok?"</p>

<p>Ok. I took a breath. I ran through my checklist:</p>

<ul>
<li>Get car seat out of car? <em>Check.</em></li>
<li>Put pillows in backseat for Arin to rest on? <em>Check.</em></li>
<li>Lay down some <a href="http://www.amazon.com/High-Performance-Underpads-Chucks-pack/dp/B000100IMO">chucks</a> in the backseat? (conveniently left over from when <a href="http://www.majordojo.com/2006/04/omg-harper.php">Harper was born</a>) <em>Check.</em></li>
<li>Put Arin's bag in the car? <em>Check.</em></li>
<li>Put camera in the car? <em>Check.</em></li>
</ul>

<p>Arin called our mid-wife who told her, "ok, no need to rush. Just call me when you know you are ready to go to the hospital and I will meet you there."</p>

<p>At this point Arin made it abundantly clear that I should brush my teeth. Her sense of smell was acute and she didn't want to have to deal with the bad breath of the person tasked with helping her to breath. Ok:</p>

<ul>
<li>Brush teeth? <em>Check.</em></li>
<li>Shave? <em>Check.</em></li>
</ul>

<p>I admit, the shaving thing was over the top, but I knew that pictures were going to be taken and I wanted to look my best. But let's move past this shall we?</p>

<ul>
<li>Grab a change of clothes? <em>Check.</em></li>
</ul>

<p>At this point Arin's water broke under a very large contraction. There was no gush, just a clear sign of progression. Arin emerged from the bathroom with an extremely urgent tone to her voice, "we need to go to the hospital, <strong>now</strong>."</p>

<p>Moments later we were off. In the car Arin was telling me to run the red lights, but all I could think of is the hospital staff from 3+ years ago telling expectant parents to be safe on the road. I told Arin I would wait for the light to turn green.</p>

<ul>
<li>Wait for green light? <em>Check.</em></li>
</ul>

<p>Punch it.  It is now about 5:00am. </p>

<p>We are on the freeway. Arin screams, "oh my god, something just came out. Oh my god Byrne, <em>something just came out!</em> Pull over! Oh my god!"</p>

<p>I pull over and reach behind Arin, and tell her what I feel: the amniotic sac hanging from her like a small water balloon. I honestly don't know what do to do and am glad Arin told me, "just get me to the hospital." </p>

<ul>
<li>Get Arin to the hospital? <img src="http://www.majordojo.com/cgi-bin/mt/mt-static/images/indicator.white.gif" /></li>
</ul>

<p>We are off again. I call the mid-wife on speaker phone. She can hear Arin and tells me, "Byrne, you are not going to make it to the hospital. I need you to find a safe place to pull over. I will call paramedics. Where are you?"</p>

<p>"I am not far from the 51st Street exit off the 24. There is a firehouse a block away from there, should I go there?"</p>

<p>"Yes," she told me. "They deliver babies all the time." We are then disconnected.</p>

<p>At this point Arin is on full-on labor. She is moaning and telling me about every 10 seconds to hurry up. I zip through the stop light at Telegraph and pull into the driveway of Oakland Fire Station #8 honking my horn. I turn off the engine, open the car door and run around to Arin. I reach to the front seat again and honk again. </p>

<p>"Where are they!?" Arin yells.</p>

<p>"I don't know honey. Hang in there. We are at a firehouse. Help is coming."</p>

<p>Arin is confused. She doesn't know what to do. The only other time she has done this there was a cadre of people telling her what and when she needed to do something. She asks me, "Should I push?! Byrne, what should I do?"</p>

<p>I tell her truthfully that I don't know. I continue to honk. I run to the front door and bang on the door.</p>

<p>No one. I run back to Arin and begin yelling for help.</p>

<p>Arin is screaming, "it's coming. Oh my God, what do I do?"</p>

<p>I offer what words of encouragement and reassurance I can. "You are doing great baby," is about all I can come up with. "I need to try one more time to find a doorbell, I will be right back," I tell her.</p>

<p>I sprint to the front door. I lift a large intimidating cover plate that reads, "In case of emergency" or something. Who knows. There is a single button. I push it. </p>

<p>"Oakland Fire Department, how can I help you?"</p>

<p>"I am at the fire station at 463 51st Street. My wife is having a baby. I need assistance."</p>

<p>"Where are you?" </p>

<p>I look at the address in huge letters above the door in front of me, and impatiently say, "463 51st Street." Duh.</p>

<p>"The one by the Walgreens?"</p>

<p>Is she really asking me this? "Yes! The <em>one by the Walgreens</em>! Please hurry." </p>

<p>"Help is on..."</p>

<p>That is done, I can hear Arin yelling. I sprint back to the car. I check in on Arin. She is doing <em>great</em> all things considered. She is centered, collected and focused. "They are coming sweetie, hang in there." I call the mid-wife again. </p>

<p>"Shit, voice mail" I think to myself. I dial again, and again, and again. I finally get her. </p>

<p>"Byrne I need you to reach inside Arin and tell me if you feel the baby's head. You will know if you do right away."</p>

<p><em>Oh really?! Will I?</em></p>

<p>I reach inside Arin. Bonk. Yep, that's the baby's head.</p>

<p>"Ok, Byrne, I need you to get ready."</p>

<p>Arin is trying not to push, but she has no control. There is a large contraction, a yell, and a baby's head in my hands. </p>

<p>At this point I have no recollection of sound. The world is suddenly a very quiet place. Arin is yelling, but I don't remember hearing her. I do however all of a sudden remember what it was like to hold Harper's head as he emerged from Arin. I remember being afraid to hold or squeeze too hard and asking the doctor to take over. I remember the Doctor telling me after the fact that I really didn't need to worry about that, that the baby would be fine.</p>

<p>I place both palms firmly on each of the baby's ears. Arin pushes, I instinctually pull, but only slightly. Then the baby feels as if it just slipped out as I pull her right into my arms. </p>

<p>The amniotic sac is still around her head. I can see her face pressed up against the film as if out of a science fiction movie. I gently tear the sac away from her face. Her face emerges for the first time. She is perfect. I see her and feel her take a deep breath as my entire world freezes with the anticipation, fear and joy of hearing her cry for the first time.</p>

<p>She cries. Arin asks, "is she ok?"</p>

<p>"She is fine, baby, fine. She is beautiful," I tell her through the tears and sobs welling up inside me. </p>

<p>Arin hands me a towel I had put in the backseat weeks ago. She tells me, "wrap her up."</p>

<p>Oh yeah! Good idea.</p>

<p>"Can I see her?" </p>

<p>Of course!</p>

<p>The firemen arrive. I can hear them all around us. I hear echos of congratulations, but mostly I hear a firewoman coaching a fireman through the process of cutting the umbilical chord. It is his first time. She is explaining how the chord is a lot tougher than you might think...</p>

<p>"Jesus, shut up and gimme that. What is this, amateur-hour?" is all I can think.</p>

<p>Our mid-wife arrives. Finally, someone is paying attention to Arin. I relax for the first time.</p>

<p>The ambulance arrives. Arin and baby are swarmed. I step away from the vehicle. People are congratulating me, but my documentarian instincts have already kicked in: all I can think about is the camera. Thankfully, our mid-wife says, "let me do that." She takes a hand-full of snap shots.</p>

<p>The paramedics hand me my baby girl and take me to the back of the ambulance where it is warm. Arin will joining me soon, they say.</p>

<p>Arin is on a stretcher now and is soon being pushed into the ambulance with me. I hand Arin the baby. We kiss. I tell her how much I love her and she tells me how amazing I was. </p>

<p>"Are you kidding me? You did all the work..."</p>

<p>I tell Arin I will meet her at the hospital. It is about 5:25am. I think. But whatever time it <em>was</em>, by 5:33am (according to my phone) I am back in my car, having cleaned it out briefly, and on the road calling my mom to tell her the news. </p>

<p>To help put things into perspective about the morning's events, in the time it took me to write this this story to share with you, Arin would have already have given birth. <em>Twice.</em></p>

<p>Next time, if there is a next time that is, I vote for a home birth. Oh yeah, and skip the doctor, mid-wife and doula. They are for chumps.</p>
]]>
    </content>
</entry>

<entry>
    <title>Meet Melody</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/06/meet-melody-and-the-people-behind-melody.php" />
    <id>tag:www.majordojo.com,2009://3.14291</id>

    <published>2009-06-23T12:30:00Z</published>
    <updated>2009-06-24T20:35:58Z</updated>

    <summary>People who know me, know that I love Movable Type. In fact I have devoted much of the last five years to the product and its community. Therefore it gives me great pride and much relief to be a part...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Announcements" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Blogging" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Open Source" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Personal Projects" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="community" label="community" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="danwolfgang" label="dan wolfgang" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="freedom" label="freedom" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jayallen" label="jay allen" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jessegardner" label="jesse gardner" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="markstosberg" label="mark stosberg" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="melody" label="melody" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movable type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opensource" label="open source" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sixapart" label="six apart" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="su" label="su" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>People who know me, know that I love <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?blog_id=3&amp;tag=movable%20type&amp;limit=20">Movable Type</a>. In fact I have devoted much of the last five years to the product and its community. Therefore it gives me great pride and much relief to be a part of the launch of <a href="http://openmelody.org/">Melody</a>, a new community-driven content management and blogging platform based upon Movable Type. </p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/06/melody-logo-on-white-thumb-640xauto-3170.jpg" title="melody-logo-on-white.jpg"><img alt="melody-logo-on-white.jpg" src="http://www.majordojo.com/assets_c/2009/06/melody-logo-on-white-thumb-525x200-3170.jpg" width="525" height="200" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></div></span></p>

<p>I have written extensively about <a href="http://openmelody.org/blog/2009/06/introducing-melody">what motivated me and others to create this project</a> so I won't bother recapitulating that here. </p>

<p>What is likely to get lost today in whatever attention this humble project is likely to attract is any mention of the people who have helped take this project this far. Without the dedication of these people over the past six years Movable Type would be a fundamentally different product than it is today, and Melody might never have happened. So I would like to carve out a little space to say thank you to the following contributors to Melody and my friends:</p>

<ul>
<li><p><strong>Jay Allen</strong> - While I have been remiss in mentioning it here, Jay and I are now <a href="http://endevver.com/about/">partners</a> in what is becoming a very successful <a href="http://endevver.com/">Movable Type (and now Melody) consulting business</a>. For Melody Jay has been playing the role of lead developer by helping manage code merges with Movable Type, organizing our source code and writing all of our developer contribution guidelines.</p></li>
<li><p><strong>Jesse Gardner</strong> - I have worked with Jesse for years. It was a pleasure to work with him on the design of <a href="http://www.movabletype.org/">Movable Type [dot org]</a> and an even greater privilege to work with him on what I think is a damn fine looking web site and the home for our new community: <a href="http://openmelody.org/">OpenMelody.org</a>.</p></li>
<li><p><strong>Tim Appnel</strong> - Tim has been a dutiful project manager as well as our system administrator taking on the unglamorous and thankless task of setting up servers, managing ACLs, and all the other stuff that makes the bits and bytes flow as God intended.</p></li>
<li><p><strong>Dan Wolfgang</strong> - Dan built out our web site, and has been first in line to take stuff off of people's plates when they become too full. Never under-estimate the value of load balancing people. Seriously.</p></li>
<li><p><strong>Mark Stosberg</strong> - Mark's invaluable experience in serving on the boards of several non-profits has helped us greatly in our process of writing our own by-laws for the <a href="http://openmelody.org/omsg">Open Melody Software Group</a>. He is also our unofficial ambassador to the greater Perl community in CPAN, where he helps to maintain a number of modules.</p></li>
<li><p><strong>Su</strong> - I have never known Su to be one who likes the lime light, so I will simply say this: he has been a consistent and reliable voice of reason within our group, which is essential when dealing with so many people who are as passionate as we are. </p></li>
<li><p><strong>Arvind Satyanarayn</strong> - The famous Movable Type prodigy-kid and author of Custom Fields took a break from college girls and parties to help contribute much needed code and infrastructure that will undoubtedly become essential to the project. He also surprised us all by merging all of Movable Type 4.261 into the latest development branch of Melody - hoooo-aaaah!</p></li>
</ul>

<p>Finally, I would like to thank <a href="http://www.sixapart.com/">Six Apart</a>. There is no doubt that many people will want to spin this initiative by the community in a way that impugns the company and the many people who work there and whom I call a friend. There is no way around the simple and basic truth: without them, this project would not exist and without their support of the project, I doubt it could reach its fullest potential.</p>

<p>And after all is said and done, this is what Melody is all about: these people, our community, and the many people who will follow. Thank you!</p>
]]>
        

    </content>
</entry>

<entry>
    <title>MOONSHOT</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/06/moonshot.php" />
    <id>tag:www.majordojo.com,2009://3.14290</id>

    <published>2009-06-14T22:11:23Z</published>
    <updated>2009-06-15T06:21:16Z</updated>

    <summary>On a recent trip to Chicago I stopped by a non-local mega-bookstore to look for a last minute gift for Harper as is required on any business trip that takes me away from Harper for more than 48 hours. And...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Ain&apos;t it Cool" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Books" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Family" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apollo11" label="apollo 11" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="books" label="books" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="brianfloca" label="brian floca" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="buzzaldrin" label="buzz aldrin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="children" label="children" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="michaelcollins" label="michael collins" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="neilarmstrong" label="neil armstrong" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="trailers" label="trailers" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: left; width: 200px;"><a rel="lightbox" href="http://www.majordojo.com/2009/06/14/MoonshotCover.jpg" title="Moonshot Cover"><img alt="Moonshot Cover" src="http://www.majordojo.com/assets_c/2009/06/MoonshotCover-thumb-200x223-3168.jpg" width="200" height="223" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></div></span>On a recent trip to Chicago I stopped by a non-local mega-bookstore to look for a last minute gift for Harper as is required on any business trip that takes me away from Harper for more than 48 hours. And boy, did I hit pay-dirt with the book I selected for him: MOONSHOT. The book, which we have read at least once a day since I have returned has fueled a newly discovered fascination with all things rockets, spaceships and astronauts. Harper and I now take daily trips to "Baaaaaaath Tuuuuuuub Plaaaaaaaaanet" (said in the same tone of voice as <a href="http://www.youtube.com/watch?v=cFvZtROeJrE">Pigs in Space</a>, if you remember that) and he now likes to countdown, speaking into a closed fist as to simulate a muffled microphone, to spontaneous liftoffs several times a day.</p>

<p>His interest has sparked an interest inside of me as well, which is honestly what is so wonderful about this latest obsession of his. We have been watching the <a href="http://www.youtube.com/watch?v=Vid7QBgYb-Q">liftoff sequence from Ron Howard's Apollo 13</a>, as well as tons of <a href="http://www.youtube.com/watch?v=RMINSD7MmT4&amp;eurl=http%3A%2F%2Fbrianflocablog.blogspot.com%2Fsearch%2Flabel%2FMoonshot&amp;feature=player_embedded">old archival footage</a> of the original moon landing, and some <a href="http://www.youtube.com/watch?v=5c1T2oKEffQ&amp;fmt=22">more recent HD footage</a> taken from a <a href="http://en.wikipedia.org/wiki/SELENE">Japanese satellite</a> (via <a href="http://kottke.org/09/06/the-moon-in-hd">kottke</a>). It has been wonderful. </p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/06/FlocaMoonshotLiftoff-thumb-640xauto-3166.jpg" title="Moonshot Liftoff"><img alt="Moonshot Liftoff" src="http://www.majordojo.com/assets_c/2009/06/FlocaMoonshotLiftoff-thumb-525x293-3166.jpg" width="525" height="293" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></div></span></p>

<p>The <a href="http://brianfloca.com/Moonshot.html">book is wonderful</a> and I recommend it to all parents with children who dream of space and of being an astronaut. The illustrations are the reason I selected the book. They are saturated with detail and give me something new to look at with each subsequent read. </p>

<p>The author has put together <a href="http://brianfloca.com/Moonshot.html">a great web site for the book as well</a>, complete with <a href="http://www.brianfloca.com/Downloads.html">coloring activities</a>, a collection of great video resources for kids and even its very own trailers.</p>

<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/Z9p_LC3OGS8&amp;hl=en&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Z9p_LC3OGS8&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Understanding Movable Type Template Sets</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/06/understanding-movable-type-template-sets.php" />
    <id>tag:www.majordojo.com,2009://3.14275</id>

    <published>2009-06-08T02:56:27Z</published>
    <updated>2009-06-08T03:12:18Z</updated>

    <summary>Since releasing the Hybrid News Theme I have been contacted by a number of people on the ProNet mailing list asking me to shed some light on the process of creating template sets, or themes as most other products call...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Design" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="howto" label="howto" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jessegardner" label="jesse gardner" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movable type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plasticmind" label="plasticmind" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tutorial" label="tutorial" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="video" label="video" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>Since releasing the <a href="http://www.majordojo.com/2009/05/teaser-hybrid-news-theme-for-movable-type.php">Hybrid News Theme</a> I have been contacted by a number of people on the <a href="http://www.sixapart.com/mailman/listinfo/pronet/">ProNet mailing list</a> asking me to shed some light on the process of creating template sets, or themes as most other products call them, for Movable Type. As I embark on creating this documentation I stumbled across a video made by a friend of mine on the same subject (mental note: subscribe to <a href="http://plasticmind.tv/">plasticmind.tv</a>).</p>

<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="316" id="viddler"><param name="movie" value="http://www.viddler.com/player/22f59195/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/22f59195/" width="437" height="316" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler" ></embed></object></p>

<p>Jesse does a good job I think I showing that template sets are sincerely not that difficult and that anyone who can cobble together a WordPress theme, can easily create one for Movable Type. I would like to mention another tool at your disposal which will make this process even easier: it is called <code>exportts</code>. The program is <a href="https://github.com/byrnereese/mt-tool-exportts">a simple perl script</a> that you can drop into your Movable Type <code>tools</code> directory to easily <strong>export the templates in a blog and then package them up as an installable template set or theme</strong>. All in one simple step.</p>

<p>The <code>exportts</code> tool is something I find indispensable in my work as it saves me literally hours of monotonous and menial labor. Its <a href="http://github.com/byrnereese/mt-tool-exportts/blob/b9c561b70bd5bc2fcb4c6724d1a7d1f0428b5bf0/README.txt">readme</a> should explain exactly how it works if you want to learn more. </p>

<p>I hope this video helps though, while I document the process more thoroughly. </p>
]]>
        

    </content>
</entry>

<entry>
    <title>Obama&apos;s Speech to the Muslim World</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/06/obamas-speech-to-the-muslim-world.php" />
    <id>tag:www.majordojo.com,2009://3.14274</id>

    <published>2009-06-05T08:25:03Z</published>
    <updated>2009-06-05T15:23:37Z</updated>

    <summary> I implore everyone to watch Obama&apos;s speech. His entire speech is profound. It is moving in how it acknowledges and embraces our past, but does not use it as anchor, but rather as a fulcrum to propel us forward....</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Current Events" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="america" label="america" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="arab" label="arab" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cairo" label="cairo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="holyquran" label="holy quran" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="islam" label="islam" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="muslim" label="muslim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="obama" label="obama" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="potus" label="potus" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="president" label="president" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="speech" label="speech" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="television" label="television" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="video" label="video" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<div><iframe height="339" width="425" src="http://www.msnbc.msn.com/id/22425001/vp/31100549#31100549" frameborder="0" scrolling="no"></iframe></div>

<p>I implore everyone to watch Obama's speech. His entire speech is profound. It is moving in how it acknowledges and embraces our past, but does not use it as anchor, but rather as a fulcrum to propel us forward.</p>

<p>Here are my favorite quotes:</p>

<blockquote> So long as our relationship is defined by our differences, we will empower those who sow hatred rather than peace. </blockquote>  

<blockquote>I am convinced that in order to move forward, we must say openly to each other the things we hold in our hearts and that too often are said only behind closed doors. There must be a sustained effort to listen to each other, to learn from each other, to respect one another, and to seek common ground.</blockquote>

<blockquote>When violent extremists operate in one stretch of mountains, people are endangered across an ocean. When innocents in Bosnia and Darfur are slaughtered, that is a stain on our collective conscience. That is what it means to share this world in the 21st Century. That is the responsibility we have to one another as human beings. This is a difficult responsibility to embrace, for human history has often been a record of nations and tribes, and, yes, religions subjugating one another in pursuit of their own interests.</blockquote> 

<blockquote>Despite the costs involved, America's commitment [in/to Afghanistan and Pakistan] will not weaken. Indeed, none of us should tolerate these extremists. They have killed in many countries. They have killed people of different faiths but, more than any other, they have killed Muslims. Their actions are irreconcilable with the rights of human beings, the progress of nations, and with Islam.</blockquote> 

<blockquote>So America will defend itself, respectful of the sovereignty of nations and the rule of law. And we will do so in partnership with Muslim communities, which are also threatened. The sooner the extremists are isolated and unwelcome in Muslim communities, the sooner we will all be safer.</blockquote> 

<blockquote>If we see [the conflict between Palestinians and Israelis] only from one side or the other, then we will be blind to the truth. The only resolution is for the aspirations of both sides to be met through two states, where Israelis and Palestinians each live in peace and security.</blockquote>

<blockquote>Palestinians must abandon violence. Resistance through violence and killing is wrong and it does not succeed. For centuries, black people in America suffered the lash of the whip as slaves and the humiliation of segregation. But it was not violence that won full and equal rights. It was a peaceful and determined insistence upon the ideals at the center of America's founding. This same story can be told by people from South Africa to South Asia, to Eastern Europe to Indonesia. It's a story with a simple truth: violence is a dead end. It is a sign neither of courage nor power to shoot rockets at sleeping children or to blow up old women on a bus. That's not how moral authority is claimed, that's how it is surrendered.</blockquote>

<blockquote>America does not presume to know what is best for everyone, just as we would not presume to pick the outcome of a peaceful election. But I do have an unyielding belief that all people yearn for certain things: the ability to speak your mind and have a say in how you are governed, confidence in the rule of law and the equal administration of justice, government that is transparent and doesn't steal from the people, the freedom to live as you choose. These are not just American ideas. They are human rights. And that is why we will support them everywhere.</blockquote>

<blockquote>We can't disguise hostility towards any religion behind the pretense of liberalism. In fact, faith should bring us together.</blockquote>

<blockquote>There is so much fear, so much mistrust that has built up over the years. But if we choose to be bound by the past, we will never move forward. All of us share this world for but a brief moment in time. The question is whether we spend that time focused on what pushes us apart or whether we commit ourselves to an effort, a sustained effort to find common ground, to focus on the future we seek for our children and to respect the dignity of all human beings.</blockquote>

<h1>Quotes he took from the Holy Quran:</h1>

<p>The Quran was a touchstone in his speech which he wisely referenced and quoted frequently:</p>

<blockquote>As the Holy Quran tells us, "Be conscious of God and speak always the truth."</blockquote>

<blockquote>"The Holy Quran teaches that whoever kills an innocent is as -- it is as it if has killed all mankind."</blockquote>

<blockquote>"And the Holy Quran also says whoever saves a person, it is as if he has saved all mankind."</blockquote>

<blockquote>We have the power to make the world we seek, but only if we have the courage to make a new beginning, keeping in mind what has been written. The holy Quran tells us: "Mankind, we have created you male and a female. And we have made you into nations and tribes so that you may know one another."</blockquote>

<h1>Quotes from and Ties to our Founding Fathers:</h1>

<blockquote>I also know that Islam has always been a part of America's story. The first nation to recognize my country was Morocco. In signing the Treaty of Tripoli in 1796, our second president, John Adams, wrote, "The United States has in itself no character of enmity against the laws, religion or tranquility of Muslims."</blockquote>

<blockquote>When the first Muslim American was recently elected to Congress, he took the oath to defend our Constitution using the same holy Quran that one of our founding fathers, Thomas Jefferson, kept in his personal library.</blockquote>

<blockquote>We can recall the words of Thomas Jefferson, who said, "I hope that our wisdom will grow with our power and teach us that the less we use our power, the greater it will be."</blockquote>

<p><a href="http://www.google.com/hostednews/ap/article/ALeqM5gkyWk2MK7xeDw2b1jPhFS6KsvPegD98K2EOG0">Read the entire speech</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Han Solo P.I.</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/06/han-solo-pi.php" />
    <id>tag:www.majordojo.com,2009://3.14273</id>

    <published>2009-06-05T05:08:02Z</published>
    <updated>2009-06-05T05:43:54Z</updated>

    <summary>As required by section 39 paragraph b of the Star Wars blogger fan code, I am obliged to reblog the following which made its rounds today: Thank you @calden and @markthink....</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="It&apos;s Funny, Laugh" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Science Fiction" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Television" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="funny" label="funny" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="hansolo" label="han solo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="magnumpi" label="magnum pi" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="starwars" label="star wars" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="television" label="television" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>As required by section 39 paragraph b of the Star Wars blogger fan code, I am obliged to reblog the following which made its rounds today:</p>

<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/ZEigvdbzia8&amp;hl=en&amp;fs=1&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ZEigvdbzia8&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>

<p><em>Thank you <a href="http://twitter.com/calden">@calden</a> and <a href="http://twitter.com/markthink">@markthink</a>.</em></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Increasing your site&apos;s page views with photo galleries</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/06/increasing-your-sites-page-views-with-photo-galleries.php" />
    <id>tag:www.majordojo.com,2009://3.14270</id>

    <published>2009-06-02T08:11:42Z</published>
    <updated>2009-06-02T08:30:20Z</updated>

    <summary>In my on-going blitz of plugins and enhancements for Movable Type I am adding one more to the list: upgrades and enhancements to the Photo Gallery plugin, which you can already see on my personal photo galleries. A screenshot of...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Design" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="design" label="design" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="features" label="features" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="layouts" label="layouts" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="midcentury" label="mid-century" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movable type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="photogallery" label="photo gallery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="photos" label="photos" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plugins" label="plugins" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>In my on-going blitz of plugins and enhancements for Movable Type I am adding one more to the list: upgrades and enhancements to the <a href="http://www.majordojo.com/projects/movable-type/photo-gallery/">Photo Gallery plugin</a>, which you can already see on <a href="http://www.majordojo.com/photos/">my personal photo galleries</a>.</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/06/Picture 5-thumb-640xauto-3143.jpg" title="Grid Layout"><img alt="Grid Layout" src="http://www.majordojo.com/assets_c/2009/06/Picture 5-thumb-525x298-3143.jpg" width="525" height="298" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a><br /><p class="caption">A screenshot of the new grid layout for the Movable Type Photo Gallery plugin.</p></div></span></p>

<p>These features come compliments of one my favorite clients, <a href="http://www.urbanmoms.ca/">Urban Moms</a>, who sponsored the development of this latest addition to the open source plugin. They are using my Photo Gallery plugin across a number of their blogs, including the <a href="http://www.urbanmoms.ca/family_travel/">Urban Traveler</a>, the <a href="http://www.urbanmoms.ca/urban_closet/">Urban Closet</a>, and the <a href="http://www.urbanmoms.ca/urban_crafter/">Urban Crafter</a>. They came to me because they know that nothing helps increase page views to a site more than photos and images, and wow were they right. <em>Within days of deploying their new albums, their traffic increased by over 10%.</em> Now that's results. Of course it doesn't hurt to have great bloggers and photographers working for you either.</p>
]]>
        <![CDATA[<p>The features I added in this release are:</p>

<ul>
<li>The option to chose between a grid and blog layout for your front door.</li>
<li>The option to display a "featured" photo on your front door.</li>
<li><a href="http://www.majordojo.com/projects/movable-type/photo-gallery/usage.php">Documentation</a>.</li>
</ul>

<p>Yes, documentation is a feature, ask anyone. </p>
]]>
    </content>
</entry>

<entry>
    <title>Teaser: Hybrid News Theme for Movable Type</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/05/teaser-hybrid-news-theme-for-movable-type.php" />
    <id>tag:www.majordojo.com,2009://3.14250</id>

    <published>2009-05-30T21:40:04Z</published>
    <updated>2009-06-05T18:24:41Z</updated>

    <summary>The most common request from people contacting me is for a redesign for their web site. While I am happy to work with them to completely redesign their website and engineering one exclusively for them, but rarely do people have...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Design" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Open Source" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Personal Projects" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="design" label="design" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="free" label="free" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movable type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="opensource" label="open source" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="templateset" label="template set" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="templates" label="templates" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="themes" label="themes" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wordpress" label="wordpress" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>The most common request from people contacting me is for a redesign for their web site. While I am happy to work with them to completely redesign their website and engineering one exclusively for them, but rarely do people have a budget for a high-touch engagement like that. Most people just need a quick, easy and <em>cheap</em> way to get started. </p>

<p>Movable Type has a number of options out of the box, but lets be honest: they are dated and boring. Their is <a href="http://www.movabletype.org/documentation/themes/mid-century.html">Mid-Century</a>, one of my favorites, and <a href="http://www.sixapart.com/blog/2008/12/the-laws-of-motion.html">Motion</a> from Six Apart (available for free in MT Pro), but that is hardly much of a selection as great as they are.</p>

<p>So the mission I am taking on is to help change this. To help bring a greater variety of freely available themes to Movable Type. In pursuit of this, now when customers come to me with a small budget needing a redesign I encourage them to check out what open source themes are available on other platforms - and if they can find one they like, I will port it to Movable Type at a discount. </p>

<p>Most recently a client came to me asking for a "news theme." It didn't take long for us to find <a href="http://themehybrid.com/">Hybrid News for WordPress</a>. The theme is free and open source, which permits me to implement in Movable without worries about licensing. </p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/05/Picture 1-thumb-640xauto-3123.png" title="Hybrid News Theme for Movable Type"><img alt="Hybrid News Theme for Movable Type" src="http://www.majordojo.com/assets_c/2009/05/Picture 1-thumb-525x328-3123.png" width="525" height="328" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></div></span></p>

<p>I am not quite ready to release it, but I will soon. In the meantime you can check out a <a href="http://www.majordojo.com/hybrid-news/">live demo</a>. </p>

<p>The great news is that while developing the theme I added a number of features to the theme that are not available in WordPress - primarily because Movable Type allows me to add features easily without requiring a plugin. More on those when I am able to do all the documentation.</p>

<p>Stay tuned to this blog for the announcement when it is ready...</p>

<p><em>Update: <a href="http://www.majordojo.com/projects/movable-type/hybrid-news/index.php">official project homepage</a> has been made available.</em></p>
]]>
        

    </content>
</entry>

<entry>
    <title>A quick pagination hack for Movable Type</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/05/a-quick-pagination-hack-for-movable-type.php" />
    <id>tag:www.majordojo.com,2009://3.14238</id>

    <published>2009-05-28T03:34:50Z</published>
    <updated>2009-05-28T03:51:41Z</updated>

    <summary>One of the most common feature requests for Movable Type is entry pagination. It is actually a sticky problem for a system that utilizes static publishing like Movable Type though. As an aside, I am become very unfond of the...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="chicagonow" label="chicagonow" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="demo" label="demo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="fast" label="fast" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="free" label="free" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="hacks" label="hacks" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="movable type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pagination" label="pagination" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="php" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>One of the most common feature requests for Movable Type is entry pagination. It is actually a sticky problem for a system that utilizes static publishing like Movable Type though. <em>As an aside, I am become very unfond of the term "static publishing" and am coming around to what I think is a more apt term: "pre-emptive caching."</em> Anyways, there are a number of well supported techniques for pagination, and the one I send most people to is Mark Carey's <a href="http://mt-hacks.com/pagination.html">Pagination plugin</a>. But when people feel that is overkill, I often help them implement the following hack. </p>
]]>
        <![CDATA[<p>The hack is simple when you think about it:</p>

<ul>
<li>Create a template that outputs a relatively large number of entries.</li>
<li>Segment the entries into several groups.</li>
<li>Using some simple template code, wrap each group of entries with a simple PHP statement that will only be evaluated according to the current page being viewed.</li>
</ul>

<p>It is simple and quick to implement. For example, here is the code I use on Chicago Now to achieve some simple pagination:</p>

<pre><code>&lt;mt:var name="currentp" value="0"&gt;
&lt;mt:var name="limit" value="10"&gt;
&lt;mt:var name="lastn" value="30"&gt;&lt;?php
$page = $_REQUEST['p'];
if (!isset($page)) { $page = 1; }
?&gt;
&lt;mt:Entries lastn="$lastn"&gt;
&lt;mt:setvarblock name="page"&gt;&lt;mt:getvar name="__counter__" op="mod" value="$limit"&gt;&lt;/mt:setvarblock&gt;
&lt;mt:if name="page" eq="1"&gt;
&lt;mt:setvar name="currentp" op="add" value="1"&gt;
&lt;mt:if name="currentp" gt="1"&gt;&lt;?php } ?&gt;&lt;/mt:if&gt;
&lt;?php if ($page == &lt;$mt:var name="currentp"$&gt;) { ?&gt;
&lt;/mt:if&gt;
&lt;$mt:include module="Entry Summary"$&gt;
&lt;mt:if name="__last__"&gt;&lt;?php } ?&gt;&lt;/mt:if&gt;
&lt;/mt:Entries&gt;
&lt;div id="pagination"&gt;
&lt;?php
$limit = &lt;mt:var name="limit"&gt;;
$page_count = &lt;mt:var name="currentp"&gt;;
if ($page &lt; $page_count) {
  echo '&lt;a id="next-page" href="?p='.($page + 1).'"&gt;&amp;laquo; Older Posts&lt;/a&gt;';
}
if ($page &gt; 1) {
  echo '&lt;a id="prev-page" href="?p='.($page - 1).'"&gt;Newer Posts &amp;raquo;&lt;/a&gt;';
}
?&gt;
&lt;/div&gt;
</code></pre>

<p>You see a <a href="http://www.chicagonow.com/recent/">live demo</a> on <a href="http://www.chicagonow.com/">Chicago Now</a>...</p>

<p><strong>Pros of this method</strong></p>

<ul>
<li>Its free.</li>
<li>Fast to implement</li>
<li>Fast page load times</li>
<li>More page views for your site and more ad impressions</li>
<li>Achieves desired objective</li>
</ul>

<p><strong>Cons</strong></p>

<ul>
<li>The more pages you want your users to be able to navigate back in time, the longer it will take to publish, <em>cough</em> I mean cache the page. </li>
<li>You can't really go back in time infinitely. You have to choose a reasonable number of pages to allow your users to paginate through. On the plus side, most users most navigate that far back - rarely more than 10 pages in fact.</li>
</ul>

<p>Anyways, I hope this hack helps you. If you have any questions, or need help, please let me know.</p>
]]>
    </content>
</entry>

<entry>
    <title>Welcome to Harperland</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/05/welcome-to-harperland.php" />
    <id>tag:www.majordojo.com,2009://3.14237</id>

    <published>2009-05-16T23:49:31Z</published>
    <updated>2009-05-16T23:56:09Z</updated>

    <summary>Today I stumbled upon a great little map creator for kids which is surprisingly addictive. A simple wizard guides you through the process of creating your very own Tolkein-esque map of an imaginary land. Prompting me for names of relatives...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Ain&apos;t it Cool" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cool" label="cool" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="harper" label="harper" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="kidlandia" label="kidlandia" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="maps" label="maps" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="notcot" label="notcot" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>Today I stumbled upon <a href="http://www.kidlandia.com/">a great little map creator for kids</a> which is surprisingly addictive. A simple wizard guides you through the process of creating your very own Tolkein-esque map of an imaginary land. Prompting me for names of relatives and friends I was able to create a map of <a href="http://www.kidlandia.com/Share.aspx?MAPID=10381">Harperland</a> in just a couple of minutes. </p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/05/harperland-thumb-640xauto-3109.png" title="Harperland"><img alt="Harperland" src="http://www.majordojo.com/assets_c/2009/05/harperland-thumb-525x308-3109.png" width="525" height="308" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></div></span></p>

<p>Look closely to find Ga Beach, Bay of Delia, Nunnatown, Poo Pa Island, Eliza Seamonster, Eggytown, Byrne City (yes, I get my own City) and the treacherous Garlic Bread Volcanos.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>An upgrade to the jQuery Thickbox Plugin</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/05/an-upgrade-to-the-jquery-thickbox-plugin.php" />
    <id>tag:www.majordojo.com,2009://3.14210</id>

    <published>2009-05-04T17:19:55Z</published>
    <updated>2009-05-05T16:49:45Z</updated>

    <summary>I have been doing a lot of work in jQuery as of late and stumbled across the popular jQuery plugin called &quot;Thickbox&quot; which works similarly to Lightbox, but is more fully featured. ThickBox is a webpage UI dialog widget written...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Open Source" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="fork" label="fork" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquery" label="jquery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lightbox" label="lightbox" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="thickbox" label="thickbox" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>I have been doing a lot of work in jQuery as of late and stumbled across the popular jQuery plugin called "<a href="http://jquery.com/demo/thickbox/">Thickbox</a>" which works similarly to <a href="http://leandrovieira.com/projects/jquery/lightbox/">Lightbox</a>, but is more fully featured. </p>

<blockquote>
  <p>ThickBox is a webpage UI dialog widget written in JavaScript on top of the jQuery library. Its function is to show a single image, multiple images, inline content, iframed content, or content served through AJAX in a hybrid modal.</p>
</blockquote>

<p>There were a couple of problems with the plugin though when I started using it. For one, the plugin has not been updated in a long time and was not compatible with the latest version of jQuery: 1.3.1. It also used a rather non-standard way of configuration and was completely non-extensible. In fact, it required users to edit CSS and Javascript files in order to point the library at the right images to use. That's no good at all because it makes it possible for a simple upgrade to break a site, granted in a minor way, but still.</p>

<p>No doubt the original author of the plugin has a million other things on his plate, so I thought I would chip in, upgrade the plugin, and contribute them back to the author and community, and if necessary take over maintenance of the plugin.</p>

<h2>Download</h2>

<ul>
<li><a href="/projects/downloads/jquery-thickbox-1.3-byrne.zip">Thickbox 1.3-byrne</a></li>
<li><a href="https://github.com/byrnereese/jquery-thickbox-byrne/">Source</a></li>
</ul>

<h2>Documentation</h2>

<h3>Installation Instructions</h3>

<ol>
<li><p>Upload the thickbox files to your web server.</p></li>
<li><p>In your web page using thickbox, import the javascript like so:</p>

<pre><code>&lt;script type="text/javascript" src="jquery.thickbox-byrne.js"&gt;&lt;/script&gt;
</code></pre></li>
<li><p>In your web page, import the CSS like so:</p>

<pre><code>&lt;link rel="stylesheet" href="thickbox.css" type="text/css" /&gt;
</code></pre></li>
<li><p>Read the rest of this documentation and initialize thickbox according to your needs.</p></li>
</ol>

<h3>Options/Settings</h3>

<p>The following options can be used when initializing Thickbox.</p>

<ul>
<li><p><code>macFFBgHack</code> - default: '../images/macFFBgHack.png'.
A path to the image "macFFBgHack.png" on your web server.</p></li>
<li><p><code>loadingImage</code> - default: '../images/thickbox-loading.gif'.
A path to the image "thickbox-loading.gif" on your web server.</p></li>
<li><p><code>modal</code> - boolean (true|false), default: false.
Determines whether or not the dialog that appears is modal or not. </p></li>
<li><p><code>iframe</code> - boolean (true|false), default: false.
Determines whether or not the dialog will be iframed content. </p></li>
<li><p><code>inlineId</code> - string, default: ''.
Sets the DOM id that contains the content that will be displayed in the thickbox.</p></li>
<li><p><code>width</code> - default: 600.
Sets the size (width obviously) of the thickbox.</p></li>
<li><p><code>height</code> - default: 400.
Sets the size (height obviously) of the thickbox.</p></li>
</ul>

<h3>Usage</h3>

<pre><code>    $('a.thickbox').thickbox({
            macFFBgHack: 'images/macFFBgHack.png',
            loadingImage: 'images/thickbox-loading.gif'
    });
</code></pre>

<h3>Demo</h3>

<p><style>
@import url(http://www.majordojo.com/projects/downloads/jquery-thickbox-1.3-byrne/thickbox.css);
</style></p>

<script type="text/javascript" src="http://www.majordojo.com/projects/downloads/jquery-thickbox-1.3-byrne/jquery.thickbox-byrne.js"></script>
<script type="text/javascript">
$(document).ready( function() {
        $('a.thickbox').thickbox({
                width: 250,
                height: 125,
                inlineId: 'foo',
                macFFBgHack: '/projects/downloads/jquery-thickbox-1.3-byrne/macFFBgHack.png',
                loadingImage: '/projects/downloads/jquery-thickbox-1.3-byrne/thickbox-loading.gif'
        });
});
</script>

<div id="foo">It worked!</div>

<p><a href="#foo" class="thickbox" title="Testing 1 2 3">Click me</a></p>

<h3>Changes between 1.3 and 1.3-byrne</h3>

<p>The version described here is '1.3-byrne' which is a fork of the original Thickbox plugin versioned 1.3. Here is a list of the changes I have made in my fork:</p>

<ul>
<li>thickboxes can be instantiated on any element ID now. It is no longer hard-coded to <code>$("a.thickbox")</code>.</li>
<li>thickboxes are now configured using a more standard settings/options array.</li>
<li>The plugin itself now utilizes more a more up-to-date coding standard for jQuery plugins.</li>
<li>The plugin is now compatible with jQuery 1.3 and greater.</li>
</ul>
]]>
        

    </content>
</entry>

<entry>
    <title>An Exercise in Cognitive Dissonance</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/04/an-exercise-in-cognitive-dissonance.php" />
    <id>tag:www.majordojo.com,2009://3.14209</id>

    <published>2009-04-29T17:25:17Z</published>
    <updated>2009-04-29T17:48:54Z</updated>

    <summary>If you want to see some great television, granted not of the ilk of The Wire, but that of just raw run of the mill entertainment, then by all means watch Susan Boyle on Britain&apos;s cross between Star Search and...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Television" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>If you want to see some great television, granted not of the ilk of The Wire, but that of just raw run of the mill entertainment, then by all means watch Susan Boyle on Britain's cross between <em>Star Search</em> and <em>American Idol</em> called <a href="http://talent.itv.com/">Britain's Got Talent</a>. What makes this "great television" is that the producers could easily have staged Susan's performance  differently, but in stead they chose to exploit the <a href="http://en.wikipedia.org/wiki/Cognitive_dissonance">cognitive dissonance</a> between what you <em>see</em> and what you <em>hear</em>. The result I think is an immensely powerful, albeit somewhat cheesy (given that it is Broadway), performance. </p>

<p><a href="http://www.youtube.com/watch?v=9lp0IWv8QZY">Watch it</a> on YouTube.</p>

<p>Via Slate's <a href="http://www.slate.com/id/2215473/">Cultural Gabfest</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Three!? Are you serious?</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/04/three-are-you-serious.php" />
    <id>tag:www.majordojo.com,2009://3.14207</id>

    <published>2009-04-25T23:43:53Z</published>
    <updated>2009-04-26T00:01:49Z</updated>

    <summary>My kid turned three this week. Three. One, two, three. It blows my mind every time I say it. Harper blowing out his birthday candle on his birthday cupcake. He ate it so fast he threw up. That&apos;s love my...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Family" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>My kid turned three this week. Three. One, two, <em>three</em>. It blows my mind every time I say it.</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/04/DSC_5601-thumb-640xauto-3085.jpg" title="Harper blowing out a candle"><img alt="Harper blowing out a candle" src="http://www.majordojo.com/assets_c/2009/04/DSC_5601-thumb-525x349-3085.jpg" width="525" height="349" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a><br /><p class="caption">Harper blowing out his birthday candle on his birthday cupcake. He ate it so fast he threw up. That's love my friends, love.</p></div></span></p>

<p>Marking this wonderful day is a reminder of how much faster time goes by not just as an adult, but as an adult <em>with kids</em>. I cringe something as cliché as this, but it seems like yesterday that we brought <a href="http://www.majordojo.com/2006/04/omg-harper.php">home from the hospital</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Caption Contest: Grover, Milk and Boppy</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/04/caption-contest-grover-milk-and-bopi.php" />
    <id>tag:www.majordojo.com,2009://3.14205</id>

    <published>2009-04-25T22:02:20Z</published>
    <updated>2009-04-26T00:24:53Z</updated>

    <summary>Every night Harper asks for three things: his Grover, Boppy and some M-I-L-K. We found this in our bed the other day. Leave a caption for me in the comments....</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="It&apos;s Funny, Laugh" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="bopi" label="bopi" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="caption" label="caption" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="grover" label="grover" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="harper" label="harper" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="milk" label="milk" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="photo" label="photo" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center; width: 525px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/04/DSC_4597_2-thumb-640xauto-3083.jpg" title="Grover and Bopi - an All Nighter"><img alt="Grover and Bopi - an All Nighter" src="http://www.majordojo.com/assets_c/2009/04/DSC_4597_2-thumb-525x349-3083.jpg" width="525" height="349" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a><br /><p class="caption">Every night Harper asks for three things: his Grover, Boppy and some M-I-L-K. We found this in our bed the other day.</p></div></span></p>

<p>Leave a caption for me in the comments. </p>
]]>
        

    </content>
</entry>

<entry>
    <title>Everything you wanted to know about Movable Type&apos;s Publish Queue</title>
    <link rel="alternate" type="text/html" href="http://www.majordojo.com/2009/04/about-movable-types-publish-queue.php" />
    <id>tag:www.majordojo.com,2009://3.14204</id>

    <published>2009-04-23T22:59:41Z</published>
    <updated>2009-04-23T23:12:58Z</updated>

    <summary>I recently added the following chapter to Movable Type&apos;s Open Source Operations Manual and wanted to publish here for review by the community and feedback. About Publish Queue The Movable Type Publish Queue is an essential component to any large...</summary>
    <author>
        <name>Byrne</name>
        <uri>http://www.majordojo.com/</uri>
    </author>
    
        <category term="Movable Type" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="movable type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="operations" label="operations" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="performance" label="performance" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="publishqueue" label="publish queue" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="publishqueuemanager" label="publish queue manager" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="publishing" label="publishing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="theschwartz" label="the schwartz" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.majordojo.com/">
        <![CDATA[<p>I recently added the following chapter to <a href="http://www.majordojo.com/2009/03/an-open-source-movable-type-operations-manual.php">Movable Type's Open Source Operations Manual</a> and wanted to publish here for review by the community and feedback. </p>

<h2>About Publish Queue</h2>

<p>The Movable Type Publish Queue is an essential component to any large scale Movable Type powered web site because it plays a crucial role in publishing performance optimization. There are a number of benefits to using the publish queue, they are:</p>

<ul>
<li>It <strong>eliminates redundant, duplicated and unnecessary publication</strong> of files.</li>
<li>It <strong>offloads publishing to stand alone process</strong> which can be throttled and scaled independently from the Movable Type web application itself.</li>
<li>It <strong>speeds up the commenting experience</strong> by reducing the number of files that an end user must wait to be published prior to being able to navigate the web site again.</li>
</ul>

<h2>How it Works</h2>

<p>It might be best to describe how the publish queue works by examining a scenario in which it would be utilized: republishing the necessary files in response to a comment.</p>

<h3>Adding Jobs to the Queue</h3>

<p>When a comment comes in to Movable Type multiple files are often in need of being updated, not only because the comment needs to be published to the entry's permalink page, but also because multiple other pages which display a comment count associated with the comment's entry may need to be updated. </p>

<p>Each of those pages (assuming they are configured to be published via the publish queue) will then be added to the "publish queue." When this happens, a publishing "job" is created and added to the database for each page that need to be published. There is one row in the database for each individual job in the system. </p>

<p>Now let's assume for a moment that shortly after receiving the first comment, a second one is published by a different visitor to your web site. This action also results in pages needing to be republished. However this time, before those pages are added to the queue as jobs the system checks to see if a job corresponding to each page is already on the queue. If there is, then the job is discarded because its work would be unnecessarily duplicated otherwise. If the job is not already on the queue, then it is added. This ensures that no unnecessary work is performed by the system.</p>

<p>In addition, each page that is added to the publish queue is given a priority which dictates the order in which the corresponding job will be processed. The higher the priority, the sooner the system will work on the job. Movable Type assigns priority based upon the following criteria:</p>

<table style="padding: 5px; margin: 10px 0 15px 0;">
<tr><th>Page/Template Type</th><th>Priority</th></tr>
<tr><td>Preferred Page and Entry archives</td><td>10</td></tr>
<tr><td>Index templates with a filename beginning with "index" or "default"</td><td>9</td></tr>
<tr><td>Feed index templates</td><td>9</td></tr>
<tr><td>All other index templates </td><td>8</td></tr>
<tr><td>Non-preferred Page and Entry archives</td><td>5</td></tr>
<tr><td>Daily archives</td><td>4</td></tr>
<tr><td>Weekly archives</td><td>3</td></tr>
<tr><td>Monthly archives</td><td>2</td></tr>
<tr><td>Any Category archive</td><td>1</td></tr>
<tr><td>Any Author archive</td><td>1</td></tr>
<tr><td>Yearly archives</td><td>1</td></tr>
</table>

<p>And that is how jobs are added to the queue. There is a separate process that exists that is then responsible for publishing.</p>

<h3>Creating Publish Queue Workers</h3>

<p>One or more publish queue "workers" can be created to process jobs on the queue. The number of workers needed by a system is based largely upon two variables:</p>

<ul>
<li>The capacity of any one worker to process jobs on the queue.</li>
<li>The volume of jobs being added to the queue over time.</li>
</ul>

<p>A worker is created by running the "run-periodic-tasks" script that comes with every copy of Movable Type. This script can be run in three modes:</p>

<ul>
<li><p><strong>daemon mode</strong> - in this mode the script never quits; instead it constantly monitors the job queue for work to be done and nearly the instance a job is made available for work, the script will begin work on it.</p></li>
<li><p><strong>run-once</strong> - in this mode the script is run via the command line and will quit only after there is no more work on the queue to be done.</p></li>
<li><p><strong>scheduled task</strong> - in this mode the script is executed in the "run-once" mode periodically according to a schedule defined by cron or a similar service. </p></li>
</ul>

<h3>Processing Jobs on the Queue</h3>

<p>Each worker will monitor the queue for jobs. When one becomes available it is pulled off the queue to be worked on. Once it is "off the queue" no other workers can claim it. This makes sure that no two workers are trying to work on the same job at the same time. </p>

<p>In the event that something goes wrong during the publishing process and the file is not published, then the system will notice saying something skin to, "uh-oh, look at this job that was claimed on the queue, but was never successfully finished," and then free up the job for a worker to pick up and try again on. If the task is retried more than 5 times, then the job is marked as failed and left on the queue. In this state it is possible for a similar job to be placed on the queue, and if the problem that was resulting in the published failure is not transient, then that job is likely to fail again. </p>

<p>An important thing to note is that if a job is pulled off the queue by a worker to be worked on, then it remains possible at that point in time for that same page to be added to the queue again in response to the receipt of another comment. The rational being that by the time the page is finished being rebuilt it is most likely out of date, and so needs to be published again.</p>

<h2>What Powers It?</h2>

<p>The Publish Queue is powered by a stand alone job/queue management library called "The Schwartz." The Schwartz is actually a more generic and abstract job management system capable of processing any number of tasks via a similar queuing mechanism. 
For the time being, Movable Type only utilizes the Schwartz for publishing, but in the future may use this framework for sending emails or other non-critical system tasks.</p>

<h2>Publish Queue Tools</h2>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: right; width: 200px;"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2008/10/Picture 1-thumb-640xauto-1998.png" title="Publish Queue Manager screenshot"><img alt="Publish Queue Manager screenshot" src="http://www.majordojo.com/assets_c/2008/10/Picture 1-thumb-200x109-1998.png" width="200" height="109" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a></div></span>There is one tool in particular that is recommended for most systems that utilize the Publish Queue, aptly named the Publish Queue Manager.</p>

<p>This tool provides a user interface within Movable Type that allows administrators to monitor and inspect jobs on the queue. Each job can be deleted, or have its priority changed.</p>

<p>For more information, visit the plugin's web site at the following URL:</p>

<p><a href="http://www.majordojo.com/projects/movable-type/publish-queue-manager/">http://www.majordojo.com/projects/movable-type/publish-queue-manager/ </a></p>

<h2>Additional Reading</h2>

<p>To learn more about the Publish Queue, consider reading the following resources:</p>

<ul>
<li><a href="http://www.movabletype.org/documentation/administrator/publishing/publish-queue.html">Using the Publish Queue </a></li>
<li><a href="http://www.movabletype.org/documentation/administrator/setting-up-run-periodic-taskspl.html">Setting up run-periodic-tasks </a></li>
<li><a href="http://www.movabletype.org/documentation/enterprise/publish-queue.html">Scalable Publishing Models in Movable Type </a></li>
<li><a href="http://search.cpan.org/~bradfitz/TheSchwartz-1.07/lib/TheSchwartz.pm">The Schwartz Homepage</a></li>
</ul>

<p>By the way, a new version of the Movable Type Operations Manual is now <a href="http://www.majordojo.com/projects/downloads/MTOpsManual.pdf">available</a>.</p>
]]>
        

    </content>
</entry>

</feed>
