Results tagged “open source”

License vs. Copyright

In a follow up post to my attempt at explaining the GPL, it has become clear that there is one more very important thing that can still trip users up in trying to understand the GPL; and that is the difference between the software's license, and its copyright. These two concepts are often conflated, because in some respects they are related, but they have very different meanings, and convey very different rights to the people that hold them.

Copyrights and licenses are similar in that they both convey, or give specific rights to the people that hold them. Copyrights can only to be held by the people who create something, or to quote Wikipedia:

Copyright is the set of exclusive rights granted to the author or creator of an original work, including the right to copy, distribute and adapt the work.

A license on the other hand, encapsulates the rights and privileges that a copyright holder grants to someone else vis a vis something they have created. In the world of software the license defines the terms and conditions of someone else's usage of that software, and their rights with regards to their ability to copy and redistribute that software.

Let's look at some simple examples:

  • Let's say I create a piece of software. If I chose to make that software available to others, than I should construct a license that defines for the people I give the software to what it is they can and cannot do with that software. While silly, granted, I could for example tell all the people I give the software to that they cannot use the software on Tuesdays and Thursdays. This is completely arbitrary obviously, but as the copyright holder of the software, that is my right.

  • Let's say I create another piece of software, but instead of writing my own license, I turn to the Internet to help furnish a license for me. Why would I do this? Probably because I don't have the expertise to necessarily think of all the loop holes one of my customers might exploit to give away my software to others, or to potentially harm my business by suing me. So I find the template of a pretty standard software license, fill in the blanks, and use that. Done and done.

Alternatively, I could search the Internet and stumble across another license I am free to use with my software. This license is called the "GPL." It conveys a very different set of rights and privileges to the folks who download my software, but hey, the terms of the license suit me, so let's use that.

The Importance of Copyright in Open Source Software

Copyrights in open source software can add a new dimension of confusion, because in open source software where lots of different, unrelated people are collaborating to build something, it is quite possible that a single piece of open source software will have multiple copyright holders. Why is this significant?

Well, let's suppose that piece of software I wrote up above, you know the one that I licensed under the GPL? Well let's suppose it over the years two folks contributed heavily to the software: Jane and Susan. For the pieces they have written and contributed back to the software, they own the copyright. So now, the software that I created originally, is now in effect, jointly owned by me, Jane and Susan.

Then one day, out of the blue, I get a call from someone and they say: "Listen, I love your software and want to use it for my business. I am willing to pay you $1,000,000 for you to support my usage of the software, but I my company does not like GPL. Can you grant me a different license than the GPL?"

Holy moly that is a lot of money. Of course I want to say, "yes, yes, yes!" But I cannot change the terms under which I distribute the software unless I get the permission of every copyright holder. Jane and Susan may not mind changing the terms under which their contributions are redistributed, but they might also want to share in that $1,000,000. Heck, I would too if I were them. And that is just something I would have to work out with my fellow copyright holders if I wanted to see any of that $1,000,000.

Now in this example, relicensing the software is a very tractable possibility because the number of copyright holders is so finite. But for a piece of software like WordPress, this would be a virtually impossible proposition, because in order to change the license of WordPress, one would have to obtain the consent of virtually every single contributor WordPress has known. And if one person says, "no," then you are S.O.L.

This is why software organizations (like the Free Software Foundation) and companies (like Six Apart) who manage open source software require every contributor to assign the copyright of their creation back to them. That way there remains a single copyright holder thereby making future licensing decisions very easy to make and execute.

Copyright vs. Ownership

One final note. While writing this I found myself using the term "ownership" as a direct synonym to copyright. But I stopped myself because I realized that doing so might further confuse people as the term "ownership" will often imply a different set of rights. Consider this:

When I go to Best Buy and purchase a copy of Avatar on DVD, what do I actually own as a result? What I own is a physical disc and the right (or license) to watch its contents for my personal entertainment. All other uses are strictly prohibited.

In a certain number of years however, the copyright for Avatar will expire, and my rights vis-a-vis the DVD's contents will greatly expand. Once copyrighted material passes into the public domain, one is immediately free to copy, mix, re-mix, perform, and do what ever they want with it.

The DVD itself, the physical medium on which the movie is transmitted, would still be mine, exclusively; and the movie itself would still be owned by Twentieth Century Fox, but they would no longer exclusively possess the right to dictate to me (and others) how, when and under what circumstances that movie could be copied, performed and distributed. In this way ownership is perpetual, and copyright is not.

Summary

Hopefully, for the people who have stumbled across this blog post, this has helped you better understand some of the nuances between copyright and and software licenses. Please keep in mind though, that while I consider myself to be reasonably informed on these subjects, I am not a lawyer.

This blog post is owned by Byrne Reese and licensed under the Create Commons.

A friend of mine recently expressed their confusion over the GPL and how it all relates to the recent bruhaha happening in WordPress land. A quick search on Google will reveal a number of people attempting to answer the same question. Here is my own attempt to answer this question, paying special attention to how this may relate to WordPress themes and plugins.


In an effort to further everyone's understanding of the GPL, let me see if I can shed some light on what the GPL is and how it works.

  1. The GPL governs ones rights to redistribute software using the GPL as a license.

  2. The GPL gives me the right to take GPL code and redistribute it as is (provided that I also respect any related trademarks). For example, I can't take Firefox and redistribute it under the name "Firefox" since the name is a trademark owned by Mozilla and only they have the right to convey its name on software.

  3. Believe it or not, the GPL also allows people to sell copies of GPL software. Most people don't understand this for one simple reason, "why buy the cow when I can get the milk for free." Selling GPL software just doesn't make sense in that regard. But it has been done very successfully. People used to sell Linux on CD - but the value of doing so was clear: at the time to download Linux could take days, so for many shelling out $29.95 for the 5 of so CDs was a huge convenience.

  4. The GPL also says that you can take GPL software, and modify it and redistribute it as well. For example, Microsoft could take the OpenOffice suite, make tons of changes (under auspices of making it better) and then turn right around and sell it. --- There is a catch though, any change you make to GPL software AND also redistribute you must also make available under the same license. In other words, Microsoft would need to make any changes they made to Open Office freely available to others.

    Note: the key here is "redistribution." Because the GPL governs distribution only, it means that I could, as an individual, take OpenOffice, make changes of my own that are TOTALLY AWESOME (naturally) and, provided that I never give a copy of that software to a friend or anyone else, I would never have to share my modifications.

    Another Note: the above note is important because this is why it is reasonable and acceptable for someone to download a copy of WordPress, modify it, pay a consultant to modify it, add features to it, redesign it, etc, etc, etc. and never be compelled to share the mods they have made, or be compelled to open source anything else in their organization.

  5. The GPL also says I can take a portion of code from a GPL program and include it in my own. For example, say I want to write a blogging platform in Perl. I have written most of the code myself, but I deem Movable Type's commenting system to be perfect. So I cut and paste large portions of it into my software. Under the GPL, this is equivalent to forming a derived work, and my new blogging platform is compelled to be GPL as well.

Now let's look at what makes the WordPress theme debate special:

  • The GPL defines something called a "derivative work." When I take Firefox, edit the source, recompile and redistribute it, that forms an obvious derivative work. All derivative works are bound by the terms of the GPL.

  • The GPL also defines a derivative work as a piece of software that runs in the same shared memory space as a GPL program. In layman's terms this means that if a piece of software, say a theme or plugin (even it is distributed separately from the another piece of GPL software), is designed to run in conjunction with GPL software, then the two of them, by virtue of sharing the same memory/process when they run form a derivative work, and thus, the theme/plugin is bound by the GPL.

Ok, why the debate?

Well, their is some ambiguity over what forms a derivative work. I believe this stems from the fact that most people don't understand technically the concept of "shared memory space." But I believe this FAQ answer from the FSF makes clear the intent of the licensor:

If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed. (emphasis mine)

So, although the Free Software foundation states their belief that this forms a derivative work, their own language admits that it does not conclusively do so.

But Byrne, I still don't understand all this techno-mumbo-jumbo. Just tell me, why is there a debate?

Let's clarify one more thing that I have seen many people get confused about. The GPL is NOT law. It is just a contract between two parties. If those two parties have a dispute over the terms, or their interpretation of the contract, then it is up to a judge to resolve the dispute and assess damages.

What makes the GPL special with regards to contracts is that is a standardized one. Meaning tons of people have accepted and/or conveyed the license to others. So if a judge rendered a judgement that helped to resolve the ambiguity of what constitutes a derivative work, then just like that, we would have legal precedence to reinforce anyone else's claims contingent upon this definition.

Finally, let's suppose Matt does sue Chris Pearson, what could he actually get from Chris?

I do not personally think Matt can claim that he has suffered any damages (e.g. lost revenue) from Chris' distribution of a proprietary theme, so I don't think a law suit would result in any money changing hands. But Matt can ask a judge to compel him to comply with the license and force him, by way of a court order, to distribute his themes according to the terms of the GPL. That's it.


And that is my take on the GPL, especially with regards to themes. I have my opinion as to whether Chris should open source his themes, but at the end of the day it doesn't matter what I think because in my mind this amounts to nothing more than a contract dispute between Chris and Matt. So, have at it guys. Wait, let me get some popcorn.

Ok, now have at it.

First of all let me personally thank iThemes who originally subsidized the development of the Contact Forms plugin for donating the plugin to the Movable Type open source community! I am proud to call everyone at iThemes a friend.

Now, onto the show. I am happy to announce the final stretch for the plugin as we gear up for a formal production ready release. The plugin was revamped so that it could act more reliably as a "Movable Type Mail Form Processor" - on steroids of course. It has been more or less completely redesigned with a lot of focus being paid to a more polished user experience.

Once the plugin is complete, I will post all of the details and documentation over at Endevver. In the meantime, I thought people might like to see a few screenshots of the work in progress.

You can download the latest version of the Contact Forms plugin over at github and get support over at Endevver's tender.

(screenshots after the jump)

Still Making Things

As my life has been slowly re-attaining equilibrium after having a second child, I have still somehow managed to find time to make things. Thank god, because making things keeps me sane when life wants to dog pile my schedule, and my personal, professional and family life. Of course I have never really stopped making things, I have only struggled to find the time to tell people about the things I have made.

So today I break the silence and begin to catch you up with some of the many things I have made recently. The first thing I want to tell you about is a new tool I am especially proud of: Image Cropper.

Image Cropper is a plugin, sponsored by Talking Points Memo (an Endevver client) and donated to the Melody and Movable Type open source community, that helps bloggers compose and craft the images used on a web site to promote their content and stories. Of course Movable Type and Melody both possess the ability to do this today natively, but the difference between an amateur and a professional blog like Talking Points Memo, is the time and care they put into the polish they put into every single blog post. TPM for example employs producers to create these images and thumbnails manually because Movable Type's default behavior is ultimately insufficient. To see what I mean, let's look at a quick example.

Suppose we are composing a story about a visit between Barack Obama and Nicolas Sarkozy and we have the following photograph to accompany the story:

Obama and Sarkozy

One thing you may notice about the photo is that the primary subjects of the photo are not centered in the photograph. This poses a problem because the thumbnail Movable Type will create for you automatically will crop out one or more of the primary subjects from the photo. Furthermore, at such a small size, the thumbnail created makes it difficult to determine who the primary subjects even are. This is why Talking Points Memo relied on a manual process to create these thumbnails so that they could produce the best possible result for their readers. Enter Image Cropper.

With Image Cropper we can override the default thumbnail and specify our own to produce an undeniably better result -- all from within Movable Type.

Image Cropper Results

Furthermore, Image Cropper allows you to fine tune the file size and image quality of the image generated as well as annotate the image with text so that you can attach a photo credit or by-line.

To show you how easy it is to create results like this, here is a quick demonstration of the plugin in action:

To learn more about the plugin and to download it, visit the plugin's homepage over at Endevver. And if you need my help with a project, send us a note.

Meet Melody

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 of the launch of Melody, a new community-driven content management and blogging platform based upon Movable Type.

melody-logo-on-white.jpg

I have written extensively about what motivated me and others to create this project so I won't bother recapitulating that here.

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:

  • Jay Allen - While I have been remiss in mentioning it here, Jay and I are now partners in what is becoming a very successful Movable Type (and now Melody) consulting business. 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.

  • Jesse Gardner - I have worked with Jesse for years. It was a pleasure to work with him on the design of Movable Type [dot org] 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: OpenMelody.org.

  • Tim Appnel - 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.

  • Dan Wolfgang - 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.

  • Mark Stosberg - 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 Open Melody Software Group. He is also our unofficial ambassador to the greater Perl community in CPAN, where he helps to maintain a number of modules.

  • Su - 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.

  • Arvind Satyanarayn - 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!

Finally, I would like to thank Six Apart. 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.

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!

Hats off the WordPress community and Matt Mullenweg's insistence to promote open source design. Thanks to his philosophy and the courage of designers from the WordPress community, I am able to bring the Hybrid News Theme to Movable Type.

The Hybrid News Theme is the first newspaper theme for the Movable Type platform and enabled users to easily create a newspaper style web site:

Hybrid News Theme for Movable Type

If you are looking for the Hybrid News theme for WordPress, please visit their website.

Live Demo

View the live demo.

Download the Beta

This theme requires Movable Type Pro at is relies on custom fields for many of its advanced features.

Bug Reports

This is beta software and is constantly being improved. Please submit bug reports at the following web site:

Installation

This plugin requires Movable Type Pro. It does not yet work with Movable Type Open Source. It is certainly my intent to support MTOS and Melody, just not at this time.

This plugin is installed just like any other Movable Type Plugin.

You will also need to install the following plugins:

Features

  • SEO enhanced:
    • Alternate HTML tags</li> <li>Google Web Sitemaps</li> <li>Google News Sitemaps</li> <li>Associate content with official Google News categories</li> </ul></li> <li>Front door slideshow of new and interesting content.</li> <li>Easily feature content on the front door.</li> <li>Easily designate content to your Hybrid News blog.</li> <li>Display summaries from each of your site's categories on the front door.</li> <li>Pull-down menus for easy site navigation.</li> <li>Customizable page navigation.</li> <li>Category, Comment and Entry feeds.</li> <li>Photo Gallery Support</li> <li>Create custom cropped images for placement on the front door, within the slideshow and else. </li> <li>Much, much more. </li> </ul> <h2>About the Designer</h2> <p>See the <a href="http://themehybrid.com/about">Hybrid Theme Community About page</a>.</p> <h2>License</h2> <p>This theme is licensed under the GPLv2.</p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/projects/movable-type/hybrid-news/#comments">57 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Wednesday, June 3, 2009 at 9:13 AM</p> <p>Filed in <a href="http://www.majordojo.com/projects/movable-type/hybrid-news/" rel="tag">Hybrid News</a> </p> </div> </div></div> </div> <div id="entry-14270" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2009/06/increasing-your-sites-page-views-with-photo-galleries.php" rel="bookmark">Increasing your site's page views with photo galleries</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2009-06-02T01:11:42-08:00"><span class='day'> 2</span> Jun 2009</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <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> </div> <div class="asset-more-link"> <a href="http://www.majordojo.com/2009/06/increasing-your-sites-page-views-with-photo-galleries.php#more" rel="bookmark nofollow">Continue reading</a> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2009/06/increasing-your-sites-page-views-with-photo-galleries.php#comments">4 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Tuesday, June 2, 2009 at 1:11 AM</p> <p>Filed in <a href="http://www.majordojo.com/design/" rel="tag">Design</a>, <a href="http://www.majordojo.com/blogging/movable-type/" rel="tag">Movable Type</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=design&limit=20" rel="tag">design</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=features&limit=20" rel="tag">features</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=layouts&limit=20" rel="tag">layouts</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=mid-century&limit=20" rel="tag">mid-century</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=photo%20gallery&limit=20" rel="tag">photo gallery</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=photos&limit=20" rel="tag">photos</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=plugins&limit=20" rel="tag">plugins</a> </p> </div> </div></div> </div> <div id="entry-14250" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2009/05/teaser-hybrid-news-theme-for-movable-type.php" rel="bookmark">Teaser: Hybrid News Theme for Movable Type</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2009-05-30T14:40:04-08:00"><span class='day'>30</span> May 2009</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <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> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2009/05/teaser-hybrid-news-theme-for-movable-type.php#comments">7 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Saturday, May 30, 2009 at 2:40 PM</p> <p>Filed in <a href="http://www.majordojo.com/design/" rel="tag">Design</a>, <a href="http://www.majordojo.com/blogging/movable-type/" rel="tag">Movable Type</a>, <a href="http://www.majordojo.com/technology/open-source/" rel="tag">Open Source</a>, <a href="http://www.majordojo.com/personal-projects/" rel="tag">Personal Projects</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=design&limit=20" rel="tag">design</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=free&limit=20" rel="tag">free</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20source&limit=20" rel="tag">open source</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=template%20set&limit=20" rel="tag">template set</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=templates&limit=20" rel="tag">templates</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=themes&limit=20" rel="tag">themes</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=wordpress&limit=20" rel="tag">wordpress</a> </p> </div> </div></div> </div> <div id="entry-14204" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2009/04/about-movable-types-publish-queue.php" rel="bookmark">Everything you wanted to know about Movable Type's Publish Queue</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2009-04-23T15:59:41-08:00"><span class='day'>23</span> Apr 2009</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <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> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2009/04/about-movable-types-publish-queue.php#comments">4 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Thursday, April 23, 2009 at 3:59 PM</p> <p>Filed in <a href="http://www.majordojo.com/blogging/movable-type/" rel="tag">Movable Type</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=operations&limit=20" rel="tag">operations</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=performance&limit=20" rel="tag">performance</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=publish%20queue&limit=20" rel="tag">publish queue</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=publish%20queue%20manager&limit=20" rel="tag">publish queue manager</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=publishing&limit=20" rel="tag">publishing</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=the%20schwartz&limit=20" rel="tag">the schwartz</a> </p> </div> </div></div> </div> <div id="entry-14172" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2009/03/an-open-source-movable-type-operations-manual.php" rel="bookmark">An Open Source Movable Type Operations Manual</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2009-03-13T12:35:01-08:00"><span class='day'>13</span> Mar 2009</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <p>The <a href="http://www.jumpbox.com/app/movabletype">Movable Type Jumpbox</a> is a great solution for many people who want to get started quickly using Movable Type or who don't have time to build a system themselves. For tweakers like myself however, this is not sufficient. I need more control over how my system is setup, and I prefer to do it against a <em>documented</em> set of best practices. More importantly however, a JumpBox does not provide any instruction or guidance on how to maintain Movable Type once it has been installed.</p> <p>So I have begun stubbing out an operations manual and run book for Movable Type that I can share with my clients and the community. My hope is that collaboratively we can build a comprehensive guide to running, supporting and operating Movable Type. </p> <p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/03/opsmanual-thumb-640xauto-3041.png" title="Ops Manual"><img alt="Ops Manual" src="http://www.majordojo.com/assets_c/2009/03/opsmanual-thumb-525x176-3041.png" width="525" height="176" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></div></span></p> <p>So I am offering forth the beginnings of just such a manual. This version includes detailed instructions on installing Movable Type on a vanilla CentOS 5.2 system. In time I hope we can add more chapters on operating run-periodic-tasks, creating RPMs, troubleshooting, and disaster recovery.</p> <ul> <li><a href="/projects/downloads/MTOpsManual.pdf">Download PDF</a></li> <li><a href="/projects/downloads/MTOpsManual.zip">Download Pages Source</a></li> </ul> <p>What chapters would you like to see added?</p> <p><strong><em>Update 9/25/2009</strong>: Added a chapter about Movable Type System Architectures with recommendations about rsync vs. NFS.</em> </p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2009/03/an-open-source-movable-type-operations-manual.php#comments">4 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Friday, March 13, 2009 at 12:35 PM</p> <p>Filed in <a href="http://www.majordojo.com/blogging/movable-type/" rel="tag">Movable Type</a>, <a href="http://www.majordojo.com/technology/open-source/" rel="tag">Open Source</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=documentation&limit=20" rel="tag">documentation</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=installation&limit=20" rel="tag">installation</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=networking&limit=20" rel="tag">networking</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=system%20architecture&limit=20" rel="tag">system architecture</a> </p> </div> </div></div> </div> <div id="entry-13180" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/projects/movable-type/photo-gallery/" rel="bookmark">Photo Gallery Plugin for Movable Type</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2009-02-20T23:29:44-08:00"><span class='day'>20</span> Feb 2009</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <p>The Photo Gallery Plugin for Movable Type does more than provide a photo blogging theme for Movable Type users, it transforms the Movable Type user interface to make managing, editing and uploading photos easier. </p> <p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><div style="text-align: center"><a rel="lightbox" href="http://www.majordojo.com/assets_c/2009/02/Picture 2-thumb-640xauto-2951.png" title="Mid-Century Photo Gallery"><img alt="Mid-Century Photo Gallery" src="http://www.majordojo.com/assets_c/2009/02/Picture 2-thumb-525x241-2951.png" width="525" height="241" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></div></span></p> <h2>Prerequisites</h2> <ul> <li><p>This plugin makes use of the <a href="http://search.cpan.org/dist/Image-ExifTool/">Image::ExifTool</a> perl module. <em>The module is optional.</em> When installed it will give you the option of setting the date of the photo to the current date or the date the photo was actually taken.</p></li> <li><p>This plugin surfaces a number of theme options which require you to install the <a href="http://www.majordojo.com/projects/movable-type/config-assistant/">Movable Type Configuration Assistant plugin version 1.01 or greater</a>. </p></li> <li><p>This plugin utilizes <a href="http://markpasc.org/code/mt/order/">Mark's Order plugin</a>.</p></li> </ul> <h2>Download</h2> <ul> <li><a href="http://github.com/byrnereese/mt-plugin-photogallery/downloads">Photo Gallery</a></li> </ul> <h2>Bug Reports</h2> <p>The Photo Gallery plugin is constantly being improved. Please submit bug reports via the following approved mechanisms:</p> <ul> <li>Visit the <a href="http://majordojo.lighthouseapp.com/projects/33304-photo-gallery-plugin/overview">Lighthouse Project for Photo Gallery</a></li> <li>Submit a bug <a href="mailto:ticket+majordojo.33304-anb8fnca@lighthouseapp.com">via email</a></li> </ul> <h2>Features</h2> <ul> <li>Quickly install a professionally design photo gallery to your web site that is seamless extension of the popular "Mid-Century" blog theme for Movable Type.</li> <li>Multiple layouts for the front door, including a traditional photo blog layout, or a grid layout in which thumbnails predominate.</li> <li>Feature photos on the front door of your photo blog using the <code>@featured</code> tag.</li> <li>Utilize an enhanced photo management screen that replaces Movable Type's default Manage Entries and Manage Assets screens.</li> <li>Use a stream lined and enhanced upload wizard which replaces Movable Type's default Upload File dialog.</li> </ul> <h2>Documentation</h2> <p><strong>Installation</strong></p> <p>To install this plugin follow the instructions found here:</p> <p><a href="http://tinyurl.com/easy-plugin-install">http://tinyurl.com/easy-plugin-install</a></p> <p><strong>Usage: Uploading Photos and More</strong></p> <p>Check out: <a href="http://www.majordojo.com/projects/movable-type/photo-gallery/usage.php">Using Photo Gallery</a></p> <h2>About Mid-Century Photo Gallery</h2> <p>This theme is open source and based upon the amazing design work of <a href="http://www.jimramsey.net/">Jim Ramsey</a>. It is designed to be a seamless extension of his popular Movable Type theme called <a href="http://www.movabletype.org/2008/08/another_hallmark_design_for_movable_type.html">Mid-Century</a>. </p> <h2>Release Notes</h2> <p><strong>Stop Design/Doug Bowman's Templates</strong></p> <p>Starting with version 2.2 of this plugin, the popular Stop Design Photo Gallery Templates are no longer included in this plugin, and sadly, no longer supported. They simply were too complex and costly to support going forward. However, for users wishing to have access to those templates, they may download the <a href="/projects/downloads/StopDesignGallery-2.2.zip">Stop Design Gallery Theme</a> separately.</p> <p><strong>Upgrading from Photo Gallery 1.0</strong></p> <p>See "<a href="http://www.majordojo.com/projects/movable-type/photo-gallery/upgrading.php">Upgrading Photo Gallery</a>."</p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/projects/movable-type/photo-gallery/#comments">87 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Friday, February 20, 2009 at 11:29 PM</p> <p>Filed in <a href="http://www.majordojo.com/projects/movable-type/photo-gallery/" rel="tag">Photo Gallery</a> </p> </div> </div></div> </div> <div id="entry-10723" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/services/movable-type/" rel="bookmark">Movable Type</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2009-02-02T23:56:18-08:00"><span class='day'> 2</span> Feb 2009</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <p>As the former Product Manager of Movable Type at Six Apart, one of the chief architects of the Movable Type 4 relaunch, one of the leaders of the Movable Type Open Source project, and one of the most prolific contributors to the Movable Type user and developer communities there are few with an equal amount or depth of experience and expertise with the Movable Type platform. </p> <p>Aside from my expertise, here are some of the additional benefits in choosing to work with me to build a Movable Type powered web site:</p> <ul> <li><p><strong>Close Alliance with Six Apart</strong> - I have close working relationships with virtually <em>every</em> member of the Movable Type team, both within services and the product development teams. This allows me to get resolution to road blocks quickly and efficiently, as well as stay on top of the latest developments and plans for the product.</p></li> <li><p><strong>Minimal Overhead</strong> - As a small consultancy, I have few operating expenses that must be covered by his clients. This naturally leads to lower rates and more billable hours devoted to the <em>you</em>, the client.</p></li> <li><p><strong>Open Source Discounts</strong> - I am a strong advocate of open source and I believe that when we support open source everyone benefits - especially my clients, who receive a higher quality product, and a lower total cost of ownership when the job is done. As enticement, clients who elect to contribute components of the solution built for them to the Movable Type Open Source community receive special discounts and sponsorship opportunities within my network.</p></li> </ul> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Monday, February 2, 2009 at 11:56 PM</p> <p>Filed in <a href="http://www.majordojo.com/services/movable-type/" rel="tag">Movable Type</a> </p> </div> </div></div> </div> <div id="entry-10722" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/services/software-development.php" rel="bookmark">Software Development</a></h2> <div class="asset-meta hidden"> <div class="entry-meta-date"><abbr class="published" title="2009-02-02T23:54:13-08:00"><span class='day'> 2</span> Feb 2009</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <h3>Javascript</h3> <p>Byrne is an experienced Javascript developer and has developed large scale applications that depend entirely upon either YUI or jQuery. See also:</p> <ul> <li><p><a href="http://www.majordojo.com/javascript/tag-widget.php">Tag Control for YUI</a> - A simple widget to make the addition and removal of tags simple and intuitive.
</p></li> <li><p><a href="http://www.majordojo.com/javascript/filter-widget.php">Filter Control for YUI</a> - A widget, or UI control that automates the creation of a progressive filtering mechanism.</p></li> </ul> <h3>PHP</h3> <p>In addition to being an experienced Perl developer, Byrne is also incredibly versed in PHP. He has developed numerous large scale web applications build upon PHP as well as numerous open source libraries in use by sites across the Internet. See also:</p> <ul> <li><p><a href="http://www.runtestrun.com/">Test Run</a> - A large scale test case management solution written entirely in PHP serving thousands of customers.
</p></li> <li><p><a href="http://code.google.com/p/myphpgooglecheckout/">MyPHPGoogleCheckout</a> - An open source library for integrating with Google Checkout.
</p></li> <li><p><a href="http://majordojo.com/projects/php-paginator.php">PHP Paginator</a> - A simple open source library that makes generating links to pages within a result set almost too easy.
</p></li> </ul> <h3>Perl</h3> <p>Byrne is an experienced Perl programmer having served as the lead developer of the popular SOAP::Lite toolkit, and continuing to be one of the Movable Type's leading plugin developers and contributors.</p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Monday, February 2, 2009 at 11:54 PM</p> <p>Filed in <a href="http://www.majordojo.com/services/" rel="tag">Services</a> </p> </div> </div></div> </div> <div id="entry-10701" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2009/01/jquery-dialog-theme-for-movable-type.php" rel="bookmark">jQuery Dialog Theme for Movable Type</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2009-01-15T10:45:43-08:00"><span class='day'>15</span> Jan 2009</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <p>Since <a href="http://www.majordojo.com/2008/12/looking-to-the-future.php">leaving Six Apart</a> I have been having fun working on a number of projects I just never could find the time for while working there. Of course, I am even more privileged to be working with <a href="http://ithemes.com/">iThemes</a> who have been subsidizing much of the work I am doing and who also share a philosophy of giving back to the Movable Type Community in the form of numerous open source plugins.</p> <p>The most recent plugin I am working on utilizes <a href="http://jquery.com/">jQuery</a> a great deal, a javascript framework I have been using more and more frequently because of its intuitiveness, terseness and huge breadth of samples to draw from. But simply dropping it into the Movable Type application leaves many of the UI components its spawns feel bolted on as opposed to a seamlessly integrated component. </p> <p>So I took a little time to develop a simple <a href="http://docs.jquery.com/UI/Dialog/Theming">jQuery Dialog Theme</a> that makes the dialogs jQuery spawns feel more like the traditional Movable Type dialog. The result is a dialog that looks and feels no different than what users are accustomed to, but that is faster, snappier and more feature rich, allowing users to resize and move the dialog around on the screen. Take a look:</p> <p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.majordojo.com/2009/01/15/Picture%202.png"><img alt="jQuery Dialog Theme" src="http://www.majordojo.com/assets_c/2009/01/Picture 2-thumb-525x336-2115.png" width="525" height="336" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p> <p>To use the skin you need to include the skin's css (downloadable below) on your page. Then when you spawn the dialog you need to set the dialog's class to "mt" like so:</p> <pre><code>$(document).ready(function() { $("#replyDialog").dialog({ modal: true, width: 660, height: 495, dialogClass: "mt", autoOpen: false, overlay: { opacity: 0.5, background: "black" } }); }); </code></pre> <p>Download the skin from the link below, and everyone thank <a href="http://ithemes.com/">iThemes</a> for their continued support of Movable Type and their gracious contributions to the Movable Type Open Source community!</p> <ul> <li><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.majordojo.com/2009/01/15/mt.dialog.css">mt.dialog.css</a></span></li> </ul> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2009/01/jquery-dialog-theme-for-movable-type.php#comments">3 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Thursday, January 15, 2009 at 10:45 AM</p> <p>Filed in <a href="http://www.majordojo.com/blogging/movable-type/" rel="tag">Movable Type</a>, <a href="http://www.majordojo.com/technology/open-source/" rel="tag">Open Source</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=design&limit=20" rel="tag">design</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=ithemes&limit=20" rel="tag">ithemes</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=javascript&limit=20" rel="tag">javascript</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=jquery&limit=20" rel="tag">jquery</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=mtos&limit=20" rel="tag">mtos</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=themes&limit=20" rel="tag">themes</a> </p> </div> </div></div> </div> <div id="entry-10680" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2008/12/looking-to-the-future.php" rel="bookmark">A sad departure from Six Apart and looking to the future</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2008-12-05T11:45:02-08:00"><span class='day'> 5</span> Dec 2008</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <p><span class="mt-enclosure mt-enclosure-image" style="display: inline; border: 0;"><a href="http://www.majordojo.com/2008/12/05/getting-fired.jpg"><img alt="Getting Fired Cartoon" src="http://www.majordojo.com/assets_c/2008/12/getting-fired-thumb-275x305-2078.jpg" width="275" height="305" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a></span>Three weeks ago my wonderful and fruitful tenure at <a href="http://www.sixapart.com/">Six Apart</a> came to an unexpected and abrupt end when the company <a href="http://www.sixapart.com/blog/2008/11/changes-at-six-apart.html">laid me and 8% of my friends coworkers off</a>. In the wake of my dismissal I tried to understand why such a dedicated and passionate employee with so many accomplishments, with such a deep knowledge of each of their many products and who, as a former coworker told me, was "part of the DNA of the company" could be cut loose. </p> <p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.majordojo.com/2008/12/05/Picture%201.png"><img alt="Layoff Tweet" src="http://www.majordojo.com/assets_c/2008/12/Picture 1-thumb-200x158-2080.png" width="200" height="158" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span></p> <p>The more I thought about it though, the more I realized that it is just too easy to be bitter, and that the truth is that I have so much more to be proud of and thankful for having worked there: such as playing an important role in the invention of <a href="http://www.openid.net">OpenID</a>, helping to drive one of the most <a href="http://www.readwriteweb.com/archives/movable_type_40_launched.php">successful launches in Six Apart's history</a> and spear heading the effort to <a href="http://www.techcrunch.com/2007/06/05/movable-type-40-beta-launches-platform-to-be-open-sourced/">open source Movable Type</a>. In fact, it is my having worked there that may very well be what saves me in the end. Following what <a href="http://twitter.com/byrnereese/status/1005797304">few initial slightly ambiguous tweets</a> I did make regarding my change in status, I was inundated with email not only from friends, but also and more surprisingly from readers and followers of my blog that I didn't even know I had.</p> <p>The influx of inquiries, offers of freelance work, job referrals and simple words of encouragement made me conscious for the first time of the <em>extent</em> of the network I was building just by doing and sharing with people what I love and do best: creating. And I can't help but think that the knowledge, experience and connections made while at Six Apart had a little something to do with the amazing network of friends, followers and supporters I now know I have.</p> <p>So, now I begin to look forward, past the upset and disappointment of having been laid off from a company I love and admire, and towards a future I may otherwise have never been able to imagine for myself. What that future is however has not fully taken shape, as there is surprisingly a great deal of opportunity out there. </p> <p>I would be curious what friends and followers of this blog think I should do? Should I venture off on my own? Try to make something of <a href="http://www.runtestrun.com/">Test Run</a>? Become a premiere Movable Type consultant? Join a new and innovative company? Or, considering the economic climate, play it safe and join something more established? Let me know what you think:</p> <p><script type="text/javascript" language="javascript" src="http://static.polldaddy.com/p/1168871.js"></script><noscript> <a href ="http://answers.polldaddy.com/poll/1168871/" >What should I do next?</a> <br/> <span style="font-size:9px;"> (<a href ="http://www.polldaddy.com"> surveys</a>)</span></noscript></p> <p>As I am in the process of deciding what is next for me, I am also looking for contract work that will allow me to make this decision in my own time. I already have some exciting projects lined up and that I am working on, but I am looking for more. So if you, or someone you know needs help, there are few who know more about <a href="http://www.movabletype.com/">Movable Type</a>. <a href="mailto:byrne@majordojo.com?subject=[Inquiry] Can you help me?">Drop me a line</a> and let me know what you need help with, be it Movable Type, PHP, Perl, TypePad, blogging, or Product Management.</p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2008/12/looking-to-the-future.php#comments">12 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Friday, December 5, 2008 at 11:45 AM</p> <p> Tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=blogging&limit=20" rel="tag">blogging</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=economy&limit=20" rel="tag">economy</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=layoffs&limit=20" rel="tag">layoffs</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20source&limit=20" rel="tag">open source</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=openid&limit=20" rel="tag">openid</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=six%20apart&limit=20" rel="tag">six apart</a> </p> </div> </div></div> </div> <div id="entry-10645" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2008/11/making-a-better-php-library-for-google-checkout.php" rel="bookmark">Making a Better PHP Library for Google Checkout</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2008-11-03T11:40:33-08:00"><span class='day'> 3</span> Nov 2008</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Google Checkout Logo" src="http://www.majordojo.com/2008/11/03/google_checkout.gif" width="155" height="60" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></span>Long before Google had produced their own <a href="http://code.google.com/apis/checkout/samples/Google_Checkout_Sample_Code_PHP.html">PHP example code</a> for <a href="http://checkout.google.com/">Google Checkout</a>, I had the need to create my own. It was a library based upon the idea of keeping e-commerce online simple. My goal was to make it possible to implement a server and to persist transactional and order state information in a database with very little code. I would like to think I have succeeded. Take for example, the following code sample:</p> <pre><code><?php require_once("MySQLGoogleCheckoutServer.php"); require_once("Discount.php"); class ExampleGoogleCheckoutServer extends MySQLGoogleCheckoutServer { function doNewOrderNotification($request,$response) { $code = $request->shoppingCart->privateData['discountCode']; if ($code) { $discount = Discount::findByCode($code); $discount->redeem(); } parent::doNewOrderNotification($request,$response); } function doOrderStateChangeNotification($request,$response) { parent::doOrderStateChangeNotification($request,$response); if ($request->financialState() == "CHARGED") { // do something } } } ?> </code></pre> <p>Then in a separate file, we'll call it <code>server.php</code>, you would need:</p> <pre><code>require_once("lib/checkout.conf"); require_once("lib/MySQLGoogleCheckoutServer.php"); connect_to_db(); $server = new MySQLGoogleCheckoutServer(); print $server->handlePost(); </code></pre> <p>And that's all you have to do to create a simple server capable of recording a new purchase in your system and then keeping the state of that purchase up to date. The library offers a number of other capabilities as well depending upon your unique purchasing workflow and policies. From this server you can also issue commands to Google, to refund, cancel or archive an order for example.</p> <p>I am continuing my work to document the library more completely, and to provide a more robust set of examples. In the meantime, I thought others might find this library useful and might also want to help me in its testing and development. The library is available for <em>free</em> under an open source license (BSD). <a href="http://code.google.com/p/myphpgooglecheckout/downloads/list">Download</a> "My PHP Google Checkout" and learn more by visiting its <a href="http://code.google.com/p/myphpgooglecheckout/w/list">project homepage</a>.</p> <p>If you have questions or need specific <a href="http://code.google.com/p/myphpgooglecheckout/w/list">documentation</a> please let me know. I will use this feedback to help me prioritize what to work on next.</p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2008/11/making-a-better-php-library-for-google-checkout.php#comments">2 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Monday, November 3, 2008 at 11:40 AM</p> <p>Filed in <a href="http://www.majordojo.com/technology/open-source/" rel="tag">Open Source</a>, <a href="http://www.majordojo.com/personal-projects/" rel="tag">Personal Projects</a>, <a href="http://www.majordojo.com/web-services/" rel="tag">Web Services</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=bsd&limit=20" rel="tag">bsd</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=ecommerce&limit=20" rel="tag">ecommerce</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=google&limit=20" rel="tag">google</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=google%20checkout&limit=20" rel="tag">google checkout</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=myphpgooglecheckout&limit=20" rel="tag">myphpgooglecheckout</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20source&limit=20" rel="tag">open source</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=personal%20project&limit=20" rel="tag">personal project</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=php&limit=20" rel="tag">php</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=testrun&limit=20" rel="tag">testrun</a> </p> </div> </div></div> </div> <div id="entry-4118" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2008/10/introducing-publish-queue-manager-for-movable-type.php" rel="bookmark">Introducing Publish Queue Manager for Movable Type</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2008-10-20T15:01:57-08:00"><span class='day'>20</span> Oct 2008</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <p>An essential component of any large scale Movable Type installation is "Publish Queue." <a href="http://www.movabletype.org/documentation/administrator/publishing/publish-queue.html">Publish Queue</a> is a system by which files published by <a href="http://www.movabletype.com/">Movable Type</a> are published in the background at the next available moment, as opposed to slowing down the commenting system and application as MT publishes lower priority files.</p> <p>For the longest time, Publish Queue was a black box. Users had absolutely no idea what it was doing and how many files were in it awaiting publication. This made diagnostics very difficult, if not virtually impossible.</p> <p>Well, not any longer. <a href="http://www.majordojo.com/projects/publish-queue-manager.php">Publish Queue Manager</a> provides the administrative console you need to better manage your queue. </p> <p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.majordojo.com/2008/10/20/Picture%201.png"><img alt="Publish Queue Manager screenshot" src="http://www.majordojo.com/assets_c/2008/10/Picture 1-thumb-525x176.png" width="525" height="176" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p> <p>Publish Queue Manager is 100% open source, and it needs your help. I have put in place a basic UI framework for viewing and managing the queue, but there is so much more a power user would want to do than to simply view and delete jobs. You may for example want to change the priority of a job, or even filter the jobs as they appear on the screen. You may want to have some way to check if Publish Queue is running properly. You may want a publish queue dashboard widget. Who knows, I leave that up to you. By the way, if you have an idea or feature request for Publish Queue Manager, leave a comment here to let other developers know what you need.</p> <p>If you are a developer and want to help, then please let me know. Feel free to check out a copy of the plugin from <a href="http://code.sixapart.com/svn/mtplugins/trunk/PQManager/">subversion</a> and get to hacking. If you don't know how to hack Movable Type plugins, consider checking out our recently updated Movable Type Developer Guides. They can help.</p> <ul> <li><a href="http://www.movabletype.org/documentation/developer/">Hacking Movable Type</a></li> <li><a href="http://www.movabletype.org/documentation/developer/apps/">Building Movable Type Applications</a></li> </ul> <p>Enjoy.</p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2008/10/introducing-publish-queue-manager-for-movable-type.php#comments">8 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Monday, October 20, 2008 at 3:01 PM</p> <p>Filed in <a href="http://www.majordojo.com/blogging/movable-type/" rel="tag">Movable Type</a>, <a href="http://www.majordojo.com/technology/open-source/" rel="tag">Open Source</a>, <a href="http://www.majordojo.com/personal-projects/" rel="tag">Personal Projects</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20source&limit=20" rel="tag">open source</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=personal%20project&limit=20" rel="tag">personal project</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=publish%20queue&limit=20" rel="tag">publish queue</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=publish%20queue%20manager&limit=20" rel="tag">publish queue manager</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=the%20schwartz&limit=20" rel="tag">the schwartz</a> </p> </div> </div></div> </div> <div id="entry-3589" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2008/10/as-long-as-themes-are-selling-why-make-them-free.php" rel="bookmark">"As long as themes are selling, why make them free?"</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2008-10-03T13:52:37-08:00"><span class='day'> 3</span> Oct 2008</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <div style="float:right; font-size: 18px; font-family: serif; width: 250px; padding: 5px 0 5px 20px; ">The Revolution Theme will begin to transcend the blogging platform it was originally designed for, and Brian as a designer will gain greater visibility in a market he has yet to tap.</div> <p>In a <a href="http://wank.wordpress.com/2008/10/02/revolution-in-the-head/">post</a> on <a href="http://wank.wordpress.com/">wordpress wank</a>, one of the only blogs by a WordPress user who actually thinks and blogs critically about the service they love, an interesting thread has begun following the announcement that the popular <a href="http://www.briangardner.com/blog/revolution-going-open-source.htm">Revolution WordPress theme would go open source</a>. In that discussion <a href="http://www.nathanrice.net/">Nathan Rice</a> <a href="http://wank.wordpress.com/2008/10/02/revolution-in-the-head/#comment-91325">asks</a>:</p> <blockquote> <p><strong>As long as themes are selling, why make them free?</strong></p> </blockquote> <p>The answer to this question is easy in my mind: distribution. The real question people should be asking themselves is this: can selling themes be a profit center for a designer. Meaning, if all they did was sell themes, could they support a family. The answer is almost certainly: no. (But I invite anyone to tell me differently because I would sincerely like to know).</p> <p>Why is this?</p> <p>First, the blogging market is already relatively commoditized forcing most customers to be pretty price sensitive since bloggers have grown accustomed to get everything for free. That means that a designer cannot sell a theme for more than $150 or so because their customer base feels that anything higher would be too much.</p> <p>Second, if the max I could sell a theme for is $150 per theme let's say, how many do I have to sell in order to make a living doing so? Too many. So many in fact, that I have exceeded the number of people willing to pay anything at all in the first place. Designer, meet ceiling. </p> <p>So as a designer, what good is it for me to sell themes at all?</p> <p>Simple: selling themes is a relatively low cost way to establish a recurring revenue stream for your business. Even if it never becomes a profit center, at least you can count on making a couple hundred bucks or more a month.</p> <p>Ok, then, so if it makes me any money at all, then why make it free?</p> <p>Perhaps never, but by selling a product you establish some obligation with the customer to support the product you are selling, and it is quite possible based upon the popularity of your theme, that the cost to the designer to provide support begins to eat away at the revenue they are making selling it. That could have happened to Brian. </p> <p>But perhaps Brian saw his gross revenues decline. It would be reasonable for him to attribute that trend to one of two things:</p> <ol> <li><p><strong>the market is not growing</strong> - everyone who has a theme has already purchased one and the market is saturated.</p></li> <li><p><strong>increased competition</strong> - more and more people are trying to sell to the same market and you are losing customers to competition.</p></li> </ol> <p>It is safe to say that #1 is definitely not true as the number of blogs created every day is <a href="http://www.sifry.com/alerts/archives/000493.html">astounding</a>. That leaves us with option #2: increased competition.</p> <p>So how do you compete more <em>effectively</em> in an increasingly competitive market?</p> <p>You make your designs ubiquitous, and by so doing you make your brand ubiquitous. You use your design to service every designer's real revenue base: <strong>the services they provide</strong>.</p> <p>And that is precisely what Brian has done. He is going to compete better than everyone else because more people will go to him to get started with a good looking design because the design is free. Then, when the user needs to take their design to the next level, who are they most likely going to go to for help?</p> <p>Brian.</p> <p>Only time will tell if Brian's decision was a good one for his business, but I suspect that it will be. I for one am ecstatic about his GPL'ing <a href="http://www.revolutiontheme.com/">Revolution</a> and you can bet that as soon as it is released, you will find a version available for Movable Type soon after, which is what I think will be his greatest win: the Revolution Theme will begin to transcend the blogging platform it was originally designed for, and Brian as a designer will gain greater visibility in a market he has yet to tap. He may choose not to support Movable Type users, that is a distinct possibility, but his brand will be known among its users - and that is always good for business.</p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2008/10/as-long-as-themes-are-selling-why-make-them-free.php#comments">9 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Friday, October 3, 2008 at 1:52 PM</p> <p>Filed in <a href="http://www.majordojo.com/blogging/" rel="tag">Blogging</a>, <a href="http://www.majordojo.com/design/" rel="tag">Design</a>, <a href="http://www.majordojo.com/technology/open-source/" rel="tag">Open Source</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=brian%20gardner&limit=20" rel="tag">brian gardner</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=design&limit=20" rel="tag">design</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=marketing&limit=20" rel="tag">marketing</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20source&limit=20" rel="tag">open source</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=premium%20themes&limit=20" rel="tag">premium themes</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=revolution&limit=20" rel="tag">revolution</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=theme%20marketplace&limit=20" rel="tag">theme marketplace</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=themes&limit=20" rel="tag">themes</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=wordpress&limit=20" rel="tag">wordpress</a> </p> </div> </div></div> </div> <div id="entry-3587" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2008/09/the-evolution-of-open.php" rel="bookmark">The Evolution of Open</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2008-09-26T11:48:19-08:00"><span class='day'>26</span> Sep 2008</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <div style="float:right; font-size: 18px; font-family: serif; width: 250px; padding: 5px 0 5px 20px; ">I couldn't help but feel that in some respects, focusing solely upon open source would be a disservice to the audience.</div> <p>Last weekend I attended <a href="http://www.blogworldexpo.com/">Blog World Expo</a> in Las Vegas to give a talk on "Open Source." The talk belonged to the "New Media" track and before I started work on the presentation I was told to assume that attendees would have little or no background on what open source <em>is</em>, would need terms defined and possess little or no technical background. So, given these constraints I sat down trying to figure out the best way to introduce people to the basics of open source.</p> <p>During the process of writing the presentation though, I couldn't help but feel that in some respects, focusing solely upon open source would be a disservice to the audience, because increasingly, more and more of the software we interact with on a daily basis is found online and is not actually open source. Nor will it ever likely to be. So what's the point?</p> <p>In the end, what I found myself writing what a presentation to set the stage for what would make a great next chapter in Eric Raymond's <em><a href="http://www.catb.org/esr/writings/cathedral-bazaar/hacker-history/">The Cathedral and the Bazaar</a></em>, which also happens to <em>not</em> be about open source either, strictly speaking. In the way that ESR's signature essay is about hacker culture and how it contributed to the genesis of open source, so too did my presentation turn out to be about how that same hacker mindset is still at work today in building <a href="http://codinginparadise.org/weblog/2008/04/whats-open-web-and-why-is-it-important.html">The Open Web</a> - something that actually transcends open source, and is in many respects a more pressing issue in this day and age.</p> <div style="width:425px;text-align:left" id="__ss_611961"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=evolution-of-open-1222108309729891-8&stripped_title=evolution-of-open-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=evolution-of-open-1222108309729891-8&stripped_title=evolution-of-open-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View SlideShare <a style="text-decoration:underline;" href="http://www.slideshare.net/byrnereese/evolution-of-open-presentation?type=powerpoint" title="View Evolution Of Open on SlideShare">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/open">open</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/source">source</a>)</div></div> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2008/09/the-evolution-of-open.php#comments">0 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Friday, September 26, 2008 at 11:48 AM</p> <p>Filed in <a href="http://www.majordojo.com/technology/open-source/" rel="tag">Open Source</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=blog%20world&limit=20" rel="tag">blog world</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=bwe08&limit=20" rel="tag">bwe08</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=eric%20raymond&limit=20" rel="tag">eric raymond</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=essays&limit=20" rel="tag">essays</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20source&limit=20" rel="tag">open source</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20web&limit=20" rel="tag">open web</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20web%20foundation&limit=20" rel="tag">open web foundation</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=six%20apart&limit=20" rel="tag">six apart</a> </p> </div> </div></div> </div> <div id="entry-3572" class="entry-asset asset hentry"> <div class="asset-header"> <h2 class="asset-name entry-title"><a href="http://www.majordojo.com/2008/09/introducing-super-page-for-movable-type.php" rel="bookmark">Introducing Super Page for Movable Type</a></h2> <div class="asset-meta "> <div class="entry-meta-date"><abbr class="published" title="2008-09-18T06:00:22-08:00"><span class='day'>18</span> Sep 2008</abbr></div> </div> </div> <div class="asset-content entry-content pkg"> <div class="asset-body pkg"> <p>Following the <a href="http://www.movabletype.org/2008/08/movable_type_42_is_here.html">release of Movable Type 4.2</a> I wanted to take some time to focus some concerted energy upon an area of Movable Type that needed a great deal of love: documentation. In about a week I had managed to assemble what amounts to a book in two single massive documents [<a href="http://www.movabletype.org/documentation/developer/hacking-movable-type.html">1</a>] [<a href="http://www.movabletype.org/documentation/developer/apps/building-movable-type-applications.html">2</a>]. They are still a work in progress, but I did want to get them online to share with the community.</p> <p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.majordojo.com/2008/09/18/Picture%202.png"><img alt="Movable Type Developer Docs" src="http://www.majordojo.com/assets_c/2008/09/Picture 2-thumb-500x464.png" width="500" height="464" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p> <p>But here is the problem I faced: I <em>liked</em> maintaining them as a single document. It makes it much easier to distribute in other formats like PDF, MS Word, etc. However, these massive single documents don't help SEO, browsability or even findability online. For online usage, the documents really needed to paginated based upon section headers.</p> <p>Enter Super Page for Movable Type.</p> <p>Super Page allows users to partition and paginate selected pages into multiple pages on your web site. Furthermore it gives administrators access to template tags so that they can construct navigation links between the pages that eminate from a "super page." </p> <p>As you update the main document, Super Page will attempt to preserve comments on your old child pages and maintain referential integrity on your site between pages. Super Page will also warn authors when they are editing a child page and direct them to the parent page instead (as it is the super page that is the true source of record).</p> <p>Naturally Super Page is open source and available to all Movable Type users as a public beta. It is not perfect yet, but hopefully there are some people out there interested in helping me make this better.</p> </div> </div> <div class="asset-footer"><div class="asset-footer-inner"> <div class="entry-commentcount"><a href="http://www.majordojo.com/2008/09/introducing-super-page-for-movable-type.php#comments">0 <span>Comments</span></a></div> <div class="asset-footer-meta"> <p>Posted by <a href="http://www.majordojo.com/cgi-bin/mt/mt-cp.cgi?__mode=view&id=1&blog_id=3" class="fn url">Byrne</a> on Thursday, September 18, 2008 at 6:00 AM</p> <p>Filed in <a href="http://www.majordojo.com/blogging/" rel="tag">Blogging</a>, <a href="http://www.majordojo.com/blogging/movable-type/" rel="tag">Movable Type</a>, <a href="http://www.majordojo.com/technology/open-source/" rel="tag">Open Source</a>, <a href="http://www.majordojo.com/personal-projects/" rel="tag">Personal Projects</a> and tagged <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=books&limit=20" rel="tag">books</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=chapters&limit=20" rel="tag">chapters</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=documentation&limit=20" rel="tag">documentation</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20" rel="tag">movable type</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20source&limit=20" rel="tag">open source</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=pages&limit=20" rel="tag">pages</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=pagination&limit=20" rel="tag">pagination</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=plugins&limit=20" rel="tag">plugins</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=sections&limit=20" rel="tag">sections</a>, <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=super%20page&limit=20" rel="tag">super page</a> </p> </div> </div></div> </div> </div><div class="autopagerize_insert_before"></div> <div class="content-nav"> 1 <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?search=open%20source&__mode=tag&IncludeBlogs=3&limit=20&offset=20">2</a> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?search=open%20source&__mode=tag&IncludeBlogs=3&limit=20&offset=40">3</a>  <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?search=open%20source&__mode=tag&IncludeBlogs=3&limit=20&offset=20" rel="next" onclick="return swapContent();">Next ></a> </div> </div> <script type="text/javascript"> <!-- var div = document.getElementById('search-results'); var results = { '1': { 'content': div.innerHTML, 'next_url': 'http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?search=open%20source&__mode=tag&IncludeBlogs=3&limit=20&offset=20' } }; var timer = window.setTimeout("getResults(" + 1 + ")", 1*1000); //--> </script> </div> </div> <div id="beta"> <div id="beta-inner"> <div class="widget-gallery widget"> <div class="inner"> <h3 class="widget-header">Reading and Watching</h3> <div class="gallery-item-nav"> <a href="javascript:galleryPrev();" id="showcase-prev" class="inactive">Prev</a> <a href="javascript:galleryNext();" id="showcase-next" class="inactive">Next</a> </div> <div class="widget-content"><div class="widget-content-inner"> <div id="gallery-item-1" class="gallery-item" style="display: block;"> <a class="asset-image" href="http://www.amazon.com/Glee-Vol-One-Road-Sectionals/dp/B002AMVEF6%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002AMVEF6"><img src="http://images.amazon.com/images/P/B002AMVEF6.01._SCLZZZZZZZ_SX120_.jpg" class="asset-img-thumb" alt="Glee, Vol. One: Road to Sectionals" title="Glee, Vol. One: Road to Sectionals" /></a> <h3><a href="http://www.amazon.com/Glee-Vol-One-Road-Sectionals/dp/B002AMVEF6%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002AMVEF6">Glee, Vol. One: Road to Sectionals</a></h3> <div class="asset-description">Best new show on television. Period.</div> </div> <div id="gallery-item-2" class="gallery-item" > <a class="asset-image" href="http://www.amazon.com/Kings-Season-One-Ian-McShane/dp/B0024FAD88%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dmajordojo-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0024FAD88"><img src="http://images.amazon.com/images/P/B0024FAD88.01._SCLZZZZZZZ_SX120_.jpg" class="asset-img-thumb" alt="Kings - Season One" title="Kings - Season One" /></a> <h3><a href="http://www.amazon.com/Kings-Season-One-Ian-McShane/dp/B0024FAD88%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dmajordojo-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0024FAD88">Kings - Season One</a></h3> <div class="asset-description">What in the first 3-4 episodes made me think this could be the next great TV show, the last 6 episodes made me sad for how quickly it turned sour.</div> </div> <div id="gallery-item-3" class="gallery-item" > <a class="asset-image" href="http://www.amazon.com/Weeds-Season-4-Hunter-Parrish/dp/B001AQBGM4%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dmajordojo-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001AQBGM4"><img src="http://images.amazon.com/images/P/B001AQBGM4.01._SCLZZZZZZZ_SX120_.jpg" class="asset-img-thumb" alt="Weeds - Season 4" title="Weeds - Season 4" /></a> <h3><a href="http://www.amazon.com/Weeds-Season-4-Hunter-Parrish/dp/B001AQBGM4%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dmajordojo-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001AQBGM4">Weeds - Season 4</a></h3> <div class="asset-description">After another season in the 'burbs I was losing interest. Weeds was just getting too dried out and stale. But Season Four really turned the season around for me.</div> </div> <div id="gallery-item-4" class="gallery-item" > <a class="asset-image" href="http://www.amazon.com/Caprica-Eric-Stoltz/dp/B001RTCP1U%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dmajordojo-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001RTCP1U"><img src="http://images.amazon.com/images/P/B001RTCP1U.01._SCLZZZZZZZ_SX120_.jpg" class="asset-img-thumb" alt="Caprica" title="Caprica" /></a> <h3><a href="http://www.amazon.com/Caprica-Eric-Stoltz/dp/B001RTCP1U%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dmajordojo-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001RTCP1U">Caprica</a></h3> <div class="asset-description">There are things I like, things I don't. The production is excellent though - which is why I will tune in this Fal.</div> </div> <div id="gallery-item-5" class="gallery-item" > <a class="asset-image" href="http://www.amazon.com/Religulous-Bill-Maher/dp/B001MFNB5I%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dmajordojo-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001MFNB5I"><img src="http://images.amazon.com/images/P/B001MFNB5I.01._SCLZZZZZZZ_SX120_.jpg" class="asset-img-thumb" alt="Religulous" title="Religulous" /></a> <h3><a href="http://www.amazon.com/Religulous-Bill-Maher/dp/B001MFNB5I%3FSubscriptionId%3D1FNQS2WS91241WGETX82%26tag%3Dmajordojo-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001MFNB5I">Religulous</a></h3> <div class="asset-description">Yet another documentarian, like Mike Moore, whose ideas I 100% agree with, but whose delivery hurts the message. Everyone should watch this film.</div> </div> </div></div> </div> </div> <script type="text/javascript" charset="utf-8"> // set starting point and ending point -- will show max of 10 images var currentItem = 1; var lastItem = $('.widget-gallery .gallery-item').size(); </script><script type="text/javascript"><!-- google_ad_client = "pub-3972496675721577"; /* 300x250, created 10/4/08 */ google_ad_slot = "3689093583"; google_ad_width = 300; google_ad_height = 250; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <br /><br /> <div id="beta-columns-left"> <div class="widget-archive widget-archive-category widget"> <h3 class="widget-header">Categories</h3> <div class="widget-content"> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/aint-it-cool/">Ain't it Cool (65)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/announcements/">Announcements (53)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/blogging/">Blogging (108)</a> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/blogging/movable-type/">Movable Type (100)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/blogging/podcasting/">Podcasting (11)</a> </li> </ul> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/books/">Books (7)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/current-events/">Current Events (65)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/design/">Design (40)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/family/">Family (31)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/food/">Food (1)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/geeky-goodness/">Geeky Goodness (33)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/hodge-podge/" title="Just a bucket for random topics... if a topic keeps reoccuring, I will give it a category, if not, then it will go here.">Hodge Podge (48)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/its-funny-laugh/">It's Funny, Laugh (41)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/links/">Links (31)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/personal-projects/">Personal Projects (54)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/product-management/">Product Management (3)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/science-fiction/">Science Fiction (20)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/technology/">Technology (46)</a> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/technology/open-source/">Open Source (55)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/technology/programming/">Programming (29)</a> </li> </ul> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/television/">Television (23)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/travelogue/">Travelogue (19)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/vegetarian-bbq/">Vegetarian BBQ (3)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/web-services/">Web Services (14)</a> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/web-services/atom/">Atom (12)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/web-services/soapmime/">SOAP-MIME (2)</a> </li> </ul> </li> </ul> </div> </div> <div class="widget-archive-monthly widget-archive widget"> <h3 class="widget-header">Monthly <a href="http://www.majordojo.com/archives.php">Archives</a></h3> <div class="widget-content"> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/09/">September 2010 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/08/">August 2010 (1)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/07/">July 2010 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/06/">June 2010 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/05/">May 2010 (13)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/04/">April 2010 (9)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/03/">March 2010 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/02/">February 2010 (5)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2010/01/">January 2010 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/12/">December 2009 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/11/">November 2009 (1)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/10/">October 2009 (6)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/09/">September 2009 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/08/">August 2009 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/06/">June 2009 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/05/">May 2009 (4)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/04/">April 2009 (9)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/03/">March 2009 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/02/">February 2009 (8)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2009/01/">January 2009 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/12/">December 2008 (6)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/11/">November 2008 (9)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/10/">October 2008 (12)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/09/">September 2008 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/08/">August 2008 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/07/">July 2008 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/06/">June 2008 (4)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/05/">May 2008 (8)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/04/">April 2008 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/03/">March 2008 (8)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/02/">February 2008 (13)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2008/01/">January 2008 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/12/">December 2007 (8)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/11/">November 2007 (29)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/10/">October 2007 (27)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/09/">September 2007 (14)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/08/">August 2007 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/06/">June 2007 (1)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/05/">May 2007 (1)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/04/">April 2007 (1)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/03/">March 2007 (8)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/02/">February 2007 (14)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2007/01/">January 2007 (5)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/12/">December 2006 (13)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/11/">November 2006 (24)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/10/">October 2006 (4)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/08/">August 2006 (5)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/07/">July 2006 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/06/">June 2006 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/05/">May 2006 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/04/">April 2006 (13)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/03/">March 2006 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/02/">February 2006 (8)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2006/01/">January 2006 (13)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/12/">December 2005 (32)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/11/">November 2005 (5)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/10/">October 2005 (10)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/09/">September 2005 (6)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/07/">July 2005 (5)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/06/">June 2005 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/05/">May 2005 (1)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/04/">April 2005 (4)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/03/">March 2005 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/02/">February 2005 (1)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2005/01/">January 2005 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/12/">December 2004 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/11/">November 2004 (10)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/10/">October 2004 (8)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/09/">September 2004 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/08/">August 2004 (6)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/07/">July 2004 (10)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/06/">June 2004 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/05/">May 2004 (8)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/04/">April 2004 (5)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/03/">March 2004 (3)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/02/">February 2004 (4)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2004/01/">January 2004 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/12/">December 2003 (5)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/11/">November 2003 (5)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/10/">October 2003 (4)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/09/">September 2003 (4)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/08/">August 2003 (10)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/07/">July 2003 (7)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/06/">June 2003 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/05/">May 2003 (2)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2003/04/">April 2003 (4)</a></li> <li class="widget-list-item"><a href="http://www.majordojo.com/2000/01/">January 2000 (3)</a></li> </ul> </div> </div> </div><!-- end #beta-columns-left --> <div id="beta-columns-right"> </div><!-- end #beta-columns-right --> </div><!-- end #beta-inner --> </div><!-- end #beta --> </div> </div> <div id="footer"> <div id="footer-inner"> <div id="footer-content"> <div class="widget-archive widget-archive-category widget"> <h3 class="widget-header">Categories</h3> <div class="widget-content"> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/aint-it-cool/">Ain't it Cool (65)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/announcements/">Announcements (53)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/blogging/">Blogging (108)</a> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/blogging/movable-type/">Movable Type (100)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/blogging/podcasting/">Podcasting (11)</a> </li> </ul> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/books/">Books (7)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/current-events/">Current Events (65)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/design/">Design (40)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/family/">Family (31)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/food/">Food (1)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/geeky-goodness/">Geeky Goodness (33)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/hodge-podge/" title="Just a bucket for random topics... if a topic keeps reoccuring, I will give it a category, if not, then it will go here.">Hodge Podge (48)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/its-funny-laugh/">It's Funny, Laugh (41)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/links/">Links (31)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/personal-projects/">Personal Projects (54)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/product-management/">Product Management (3)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/science-fiction/">Science Fiction (20)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/technology/">Technology (46)</a> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/technology/open-source/">Open Source (55)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/technology/programming/">Programming (29)</a> </li> </ul> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/television/">Television (23)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/travelogue/">Travelogue (19)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/vegetarian-bbq/">Vegetarian BBQ (3)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/web-services/">Web Services (14)</a> <ul class="widget-list"> <li class="widget-list-item"><a href="http://www.majordojo.com/web-services/atom/">Atom (12)</a> </li> <li class="widget-list-item"><a href="http://www.majordojo.com/web-services/soapmime/">SOAP-MIME (2)</a> </li> </ul> </li> </ul> </div> </div> <div class="widget-tag-cloud widget"> <h3 class="widget-header">Tags</h3> <div class="widget-content"> <ul class="widget-list"> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=amazon&limit=20">amazon</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=arin&limit=20">arin</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=authentication&limit=20">authentication</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=awesome&limit=20">awesome</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=barak%20obama&limit=20">barak obama</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=battlestar%20galactica&limit=20">battlestar galactica</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=blogging&limit=20">blogging</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=books&limit=20">books</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=bsg&limit=20">bsg</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=byrne&limit=20">byrne</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=community&limit=20">community</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=cool&limit=20">cool</a> </li> <li class="rank-3 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=design&limit=20">design</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=doug%20bowman&limit=20">doug bowman</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=election%202008&limit=20">election 2008</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=family&limit=20">family</a> </li> <li class="rank-4 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=funny&limit=20">funny</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=google&limit=20">google</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=hackathon&limit=20">hackathon</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=hacks&limit=20">hacks</a> </li> <li class="rank-5 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=harper&limit=20">harper</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=javascript&limit=20">javascript</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=jquery&limit=20">jquery</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=livejournal&limit=20">livejournal</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=media%20manager&limit=20">media manager</a> </li> <li class="rank-1 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=movable%20type&limit=20">movable type</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=mtos&limit=20">mtos</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=music&limit=20">music</a> </li> <li class="rank-5 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=obama&limit=20">obama</a> </li> <li class="rank-3 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=open%20source&limit=20">open source</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=openid&limit=20">openid</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=performance&limit=20">performance</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=perl&limit=20">perl</a> </li> <li class="rank-5 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=personal%20project&limit=20">personal project</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=photo%20gallery&limit=20">photo gallery</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=photography&limit=20">photography</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=php&limit=20">php</a> </li> <li class="rank-3 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=plugins&limit=20">plugins</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=podcast&limit=20">podcast</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=politics&limit=20">politics</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=programming&limit=20">programming</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=protocols&limit=20">protocols</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=six%20apart&limit=20">six apart</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=star%20wars&limit=20">star wars</a> </li> <li class="rank-5 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=television&limit=20">television</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=themes&limit=20">themes</a> </li> <li class="rank-7 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=travel&limit=20">travel</a> </li> <li class="rank-3 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=video&limit=20">video</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=wordpress&limit=20">wordpress</a> </li> <li class="rank-6 widget-list-item"> <a href="http://www.majordojo.com/cgi-bin/mt/mt-search.cgi?IncludeBlogs=3&tag=youtube&limit=20">youtube</a> </li> </ul> </div> </div> <div class="widget-about widget"> <h3 class="widget-header">About Me</h3> <div class="widget-content"> Welcome to majordojo, powered by Mid-Century 2.0, a theme developed exclusively for Movable Type and Melody. </div> </div> <div class="widget-pages widget-archive widget"> <div class="widget-content"> <ul class="widget-list pkg"> <li class="widget-list-item first"><a href="http://www.majordojo.com/about.php">About</a></li> <li class="widget-list-item last"><a href="http://www.majordojo.com/projects/">Projects</a></li> </ul> </div> </div> <div class="widget-powered widget"> <div class="widget-content"> Powered by <a href="http://www.movabletype.com/" rel="generator">Movable Type Pro</a> </div> </div> <div class="widget-creative-commons widget"> <div class="widget-content"> <p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/us/88x31.png" /></a><br />This <span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" rel="dc:type">work</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/us/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License</a>.</p> </div> </div> </div> </div> </div> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-2619105-1"); pageTracker._initData(); pageTracker._trackPageview(<?php if ($_SERVER['SCRIPT_NAME'] == "/404.php") { echo "'/404.php?page=' + document.location.pathname+document.location.search"; }?>); </script> </div> </div> <div id="overlay"></div> <div id="dialog"><div id="dialog-inner"> <div id="dialog-content"></div> <a href="javascript:dialogClose();" id="dialog-close">Close</a> </div></div> </body> </html>