<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MindBy &#187; Tips and Tricks</title>
	<atom:link href="http://mindby.com/category/tips-and-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://mindby.com</link>
	<description>A Community Guy</description>
	<lastBuildDate>Wed, 03 Aug 2011 17:32:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Celery and Twisted</title>
		<link>http://mindby.com/2011/02/celery-and-twisted/</link>
		<comments>http://mindby.com/2011/02/celery-and-twisted/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 12:25:37 +0000</pubDate>
		<dc:creator>mindby</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://mindby.com/?p=573</guid>
		<description><![CDATA[I&#8217;ve been working with Celery, Twisted and Cyclone recently on a side project I have going on, however the integration between Celery and Twisted is not ideal for asynchronous programming which prompted me to jot down some notes for what I&#8217;ve worked out.  Hopefully this will be useful to someone, also if anyone wants to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with <a href="http://celeryproject.org/">Celery</a>, <a href="http://twistedmatrix.com/trac/">Twisted</a> and <a href="https://github.com/fiorix/cyclone">Cyclone</a> recently on a side project I have going on, however the integration between Celery and Twisted is not ideal for asynchronous programming which prompted me to jot down some notes for what I&#8217;ve worked out.  Hopefully this will be useful to someone, also if anyone wants to offer a better way I&#8217;m all ears <img src='http://mindby.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Celery has some built in methods to allow you to check the completeness of a remote job by calling the successful() method on a returned AsyncResult object.  For example you can do something like this&#8230;</p>
<p><span id="more-573"></span>From Python interpreter&#8230;  (BTW, the add task as a sleep in it for testing purposes)</p>
<pre style="background-color:#efefef;border:1px solid #999;margin-bottom:10px;padding:5px;font-size:12px">&gt;&gt;&gt; from celery.execute import send_task
&gt;&gt;&gt; result=send_task('tasks.add', [4,5])
&gt;&gt;&gt; result.successful()
False
&gt;&gt;&gt; result.successful()
False
&gt;&gt; result.successful()
True
&gt;&gt;&gt; result.get()
9</pre>
<p>So the question was how to wrap this Celery mechanism in something I could use from Twisted and Cyclone.  Here is what I came up&#8230;</p>
<pre style="background-color:#efefef;border:1px solid #999;margin-bottom:10px;padding:5px;font-size:12px">from twisted.internet import task
def monitor_task(self, celery_jobResult, reactor):
  if celery_jobResult.successful():
     self.result = celery_jobResult.get()
     print self.result
       return self.result
   else:
       self.result = None
  return task.deferLater(reactor, 0.5, self.monitor_task, celery_jobResult, reactor)</pre>
<p>This allowed me to call Celery jobs and poll periodically to see if the task had finished before returning the result.</p>
<pre style="background-color:#efefef;border:1px solid #999;margin-bottom:10px;padding:5px;font-size:12px">def printResult(result):
   print result

from twisted.internet.threads import deferToThread
from celery.execute import send_task as send_celery_task
deferred = deferToThread(send_celery_task, 'tasks.add', [4,5]).\
addCallback(monitor_task, reactor).\
addCallback(printResult)</pre>
<p>This is a bit simplified and doesn&#8217;t take into account any error handling but this is the jist of it.  If you&#8217;ve found a better more elegant way please leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://mindby.com/2011/02/celery-and-twisted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell Bios Update from Linux</title>
		<link>http://mindby.com/2011/01/dell-bios-update-from-linux/</link>
		<comments>http://mindby.com/2011/01/dell-bios-update-from-linux/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 14:28:48 +0000</pubDate>
		<dc:creator>mindby</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://mindby.com/?p=567</guid>
		<description><![CDATA[As many of you know that follow my blog I&#8217;m an avid user of Linux and Mac.  I haven&#8217;t had a full-time Windows PC since around 2001, so when I need a BIOS update it can sometimes be painful since most of the tools for updating a PC&#8217;s BIOS are written for Windows.  [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you know that follow my blog I&#8217;m an avid user of Linux and Mac.  I haven&#8217;t had a full-time Windows PC since around 2001, so when I need a BIOS update it can sometimes be painful since most of the tools for updating a PC&#8217;s BIOS are written for Windows.  Recently I needed to update my Dell D830&#8217;s BIOS to A15 from A08 and had to do some serious Googling to figure it out so I thought I would jot it down for others.</p>
<p>Before we begin you&#8217;ll need two things installed on your Linux machine&#8230;</p>
<ol>
<li>The first thing you&#8217;ll need is the dellBiosUpdate program.  Depending on your distro you&#8217;ll need to Google around and find the appropriate package for your distro that contains this program and it&#8217;s associated libraries.</li>
<li>Second you&#8217;ll need either Wine installed or an old Windows PC lying around.  My wife has an old Dell Windows machine so I chose to use it rather than bloat my Linux distro with Wine.</li>
</ol>
<p>That&#8217;s it for prerequisites, the rest is easy.<span id="more-567"></span></p>
<ol>
<li>Download the appropriate BIOS update program from the Dell website.  It will be a Windows program but that&#8217;s not a problem for us now.  In my case the file was called D830_A15.exe.</li>
<li>Use Wine or the second Windows machine to create a .hdr file which you&#8217;ll use later to update the BIOS.  You do this by running the BIOS update .exe from the command line and using the -writehdrfile switch like so&#8230;  <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">D830_A15.exe -writehdrfile. </span></li>
<li>This should have created a second file for you in the same directory that you ran the program from.  This will be the file you use to update the BIOS with so copy it (the .hdr file)  to the Linux machine if you ran this from a Windows machine.</li>
<li>Run the dellBiosUpdate program with -u  and -f switches and ensure that the laptop is running on AC before you begin or the update will fail.  <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">dellBiosUpdate -u -f D830_A15.hdr</span></li>
<li>Reboot and you should see your Dell getting updated.</li>
</ol>
<p><strong>Word of caution:</strong> U<em>pdating the BIOS can be a dangerous undertaking.  I do not under any circumstances guarantee the procedure above to work.  It worked for me but may not work for you.  You&#8217;ve been warned.  I take no responsibility for what may happen during your attempt.<br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mindby.com/2011/01/dell-bios-update-from-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Changing domain names for WPMU and lighttpd</title>
		<link>http://mindby.com/2010/09/changing-domain-names-for-wpmu-and-lighttpd/</link>
		<comments>http://mindby.com/2010/09/changing-domain-names-for-wpmu-and-lighttpd/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 14:41:30 +0000</pubDate>
		<dc:creator>mindby</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://mindby.com/?p=483</guid>
		<description><![CDATA[Ouch!  I let one of my domain names expire on Tuesday and BAM someone pounced on it.  Not normally a big deal unless it&#8217;s worth something, this one was.  It wasn&#8217;t that it was valuable monetarily, however it was the primary domain I used for my Wordpress MU site.  I suddenly [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-486 alignright" src="../files/2010/09/crying-baby-257x300.jpg" alt="crying-baby-257x300" width="257" height="300" />Ouch!  I let one of my domain names expire on Tuesday and BAM someone pounced on it.  Not normally a big deal unless it&#8217;s worth something, this one was.  It wasn&#8217;t that it was valuable monetarily, however it was the primary domain I used for my Wordpress MU site.  I suddenly found myself with a half working website, not good.  Took me an hour or so to piece everything back together so I thought I&#8217;d share it.</p>
<ol>
<li>Stop lighttpd</li>
<li>I had to change my DNS records at my provider and update with a new domain to take over for the lost one <img src='http://mindby.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</li>
<li>Modified /var/www/wp-config.php variable DOMAIN_CURRENT_SITE with the new domain</li>
<li>Modified /etc/lighttpd/lighttpd.conf and replaced the old $HTTP["host"] entry</li>
<li>Unfortunately WP sticks the domain name of your primary site EVERYWHERE in the database which was a real bummer.  After I had found it in more than a few places I decided I&#8217;d better dump the database, replace using vi and then import the database back.</li>
<li>mysqldump -u username -p wp_databasename &gt; databasename.sql</li>
<li>I then used vi to do a global replace of the old domain with the new</li>
<li>I then dropped the old database and recreated it with the same name.</li>
<li>Importing the database is easy with mysql -u username -p wp_databasename &lt; databasename.sql</li>
<li>Restart lighttpd</li>
</ol>
<p>I think that&#8217;s it.  It seems to be working again and hopefully this will help someone out of a jam in the future.</p>
<p>Word of caution:  I&#8217;d do a backup of everything before I starting and I also can&#8217;t promise that this will work if some WP plugin is doing anything strange with the domain name.  Good Luck.</p>
]]></content:encoded>
			<wfw:commentRss>http://mindby.com/2010/09/changing-domain-names-for-wpmu-and-lighttpd/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Community Building 101</title>
		<link>http://mindby.com/2010/01/community-building-101/</link>
		<comments>http://mindby.com/2010/01/community-building-101/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 12:49:48 +0000</pubDate>
		<dc:creator>mindby</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Reputation and Trust]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://mindby.com/?p=219</guid>
		<description><![CDATA[
Originally published in Open Source Business Resource January 2010
&#8220;&#8230;success comes entirely from people and the system within which they work. Results are not the point. Developing the people and the system so that together they are capable of achieving successful results is the point.&#8221; 
Leading Lean Software Development
Recently, that quote stirred some controversy among my [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-223" src="http://mindby.com/files/2010/01/professor-287x300.jpg" alt="professor" width="287" height="300" />
<p>Originally published in <a href="http://www.osbr.ca/ojs/index.php/osbr/article/view/1023/983">Open Source Business Resource January 2010</a></p>
<p><em>&#8220;&#8230;success comes entirely from people and the system within which they work. Results are not the point. Developing the people and the system so that together they are capable of achieving successful results is the point.&#8221; </em></p>
<p align="RIGHT"><a href="http://www.poppendieck.com/llsd.htm">Leading Lean Software Development</a></p>
<p align="JUSTIFY">Recently, that quote stirred some controversy among my peers. The part about &#8220;results are not the point&#8221; was hard for some people to understand and come to grips with. Aren&#8217;t results always the point? Well, as with most things, &#8220;It depends&#8221;. The people and community that evolve around an open source software project will ultimately determine its success. Even if the core team launches the project with spectacular productivity and results, this phase of evolution will be fleeting if the necessary processes and community to make the project a long lasting success are not put into place.</p>
<p align="JUSTIFY">This article presents some of the actions open source community leaders can take to ensure not only results, but a system that encourages productivity and longevity.</p>
<p><span id="more-219"></span></p>
<h2>The Law of Attraction</h2>
<p align="JUSTIFY">One of the fundamental principles of nature is that objects tend to attract other like objects. The term homophily refers to the tendency of individuals to associate and bond with others of a similar bent. This same principle of attraction is what pulls communities together and keeps them together. People are attracted to others that have similar interests or problems to overcome. It is that commonality that creates the link, the attraction, that holds communities together.</p>
<p align="JUSTIFY">Unfortunately, many projects and businesses forget this basic principle. They instead believe that communities form around products, brands or buzzwords. They forget that people want to belong to groups that they share some interest with. Providing a shared interest doesn&#8217;t necessarily translate into building a vibrant, action oriented community. In order for a community organizer to stimulate results in a community, the following ingredients are needed:</p>
<ul>
<li>
<p align="JUSTIFY">a mission that will attract others that are 	passionate because &#8230;</p>
</li>
</ul>
<ul>
<li>
<p align="JUSTIFY">passionate users create excitement for a cause 	and &#8230;</p>
</li>
</ul>
<ul>
<li>
<p align="JUSTIFY">excitement elicits action and results from the 	community</p>
</li>
</ul>
<p align="JUSTIFY">The goal is not simply to build software but to attract users that share a passion for a particular subject. It is this belief in the cause that will ultimately determine whether or not a community is successful.</p>
<h2>Leadership</h2>
<p align="JUSTIFY">Leaders are people who see the world from a different and new perspective. Leaders dream of a future that is different from today. A leader&#8217;s vision of tomorrow is inspiring and solves real problems for real people. But leadership goes beyond this by introducing others to a future that they can embrace as their own. The ability to make the vision their own is what draws people to an open source project and moves them to action.</p>
<p align="JUSTIFY">How does a leader craft a message that resonates with the community? Listening is the key that unlocks not only the problems of the users but also their perspective. Leaders must understand where the pain points are and what motivates users. A leader&#8217;s goal is to provide just enough of a blueprint for tomorrow so that users are able to finish crafting the story for themselves. This gives them ownership and enthusiasm to solve the problem.</p>
<p align="JUSTIFY">This quote from the French writer and aviator, Antoine de Saint-Exupery, is especially important for community managers as it relates to creating a vision of the future that people believe in and want to become a part of: &#8220;If you want to build a ship, don’t drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea.&#8221;</p>
<p align="JUSTIFY">The other aspect of leadership that is often overlooked is the art of coalition building. As the message begins to resonate within a community and adapts to each user’s needs, leaders need to manage the alternate messages that form within the community. Leaders have to continually revise the vision to include any new or divisive stories that develop. New leaders will emerge within the community that could have agendas that differ significantly from the original vision. These leaders may eventually harm the community if their ideas are not embraced early on and elements of their story are incorporated. Embracing and incorporating input builds a stronger community and additional leaders to help within the project. The community will be stronger with them than without them.</p>
<h2>In Community We Trust</h2>
<p align="JUSTIFY">Trust influences nearly every interaction we have during any given day. Every communication, every action, every conversation is shaped in some way by the trust and reputation inferred on the interacting party. Trust is the currency that communities, both online and offline, trade in. Without trust, lasting relationships can not be built or maintained. Part of a community leader&#8217;s job is to build reputation and trust for the people associated with a community.</p>
<p align="JUSTIFY">Trust is not something you can ask for as it is earned through actions and competence. It defines relationships between people, governments, communities, and businesses. The text book definition of trust is “…reliance on the integrity, ability, or character of a person or entity”. You can rely on someone or something when you have a history of past experiences by which you can infer future experiences. Without these past experiences, people have no way to place you within their trust metric. They resort to lumping you in with “the rest” or basing their trust on any reputation you may have.</p>
<p align="JUSTIFY">As a community leader, you must build trust in you and your project. People trust people who get things done. If you say you’re going to do something and never quite get around to it, your reputation will suffer and hence the community’s trust in you. Remember, actions always speak louder than words.</p>
<h2>Any Fool Can Criticize</h2>
<p align="JUSTIFY">Benjamin Franklin once said that &#8220;Any fool can criticize, condemn, and complain, and most fools do&#8221;. One of the things that keeps people from getting involved in open communities is a fear of criticism. Criticism that they&#8217;ll ask the wrong questions and criticism that they&#8217;ll do something wrong. There are probably dozens of reasons people are afraid to participate and they almost always relate to being afraid of something. It is a leader&#8217;s job to see that the community is a hospitable place for new people to participate.</p>
<p align="JUSTIFY">Many project veterans may not have the patience to allow foolish questions to pepper the project&#8217;s mailing lists or forums. They think that everyone should put in the same due diligence they did to understand the project and its code. But, if you want the community to grow, you will need to set the example of always having a cool temperament, even with newcomers who may not have done their homework before asking a question. This is not to suggest that you coddle newcomers, but that you need to ensure that responses to questions are civil.</p>
<h2>Recognition</h2>
<p align="JUSTIFY">Mary Kay noted that &#8220;There are two things that people want more than money and sex&#8230;recognition and praise&#8221;. Especially early on, you&#8217;ll need to work hard to ensure that every little contribution to the project is warmly welcomed. This may mean that you have to work with contributors to rewrite a patch or help them fill out a bug report. The name of the game is getting people to open up and get involved. This typically involves coaxing and lots of encouragement.</p>
<p align="JUSTIFY">Don&#8217;t be afraid to recognize new participants and draw attention to their accomplishments. If you are constantly praising your community users and helping them feel good about the work they are doing, you will find that members have a greater sense of responsibility towards your community efforts. Greater responsibility equals more action which results in a productive community. Communities run on recognition. This doesn’t mean that you need a user rating system or a User of the Month classification. You simply need to express honest gratitude publicly for what community members are doing. Try it and you’ll notice a remarkable difference in how the community starts behaving.</p>
<h2>Simplify, Simplify</h2>
<p align="JUSTIFY">Henry David Thoreau once said, &#8220;Our life is frittered away by detail. Simplify, simplify&#8221;. He was expressing a concern with the complexity of life while encouraging people to strip away the unnecessary and to focus on the important. Communities sometimes forget that they have to present themselves in pure and simple terms in order to grow. The message must be simple. The ability to communicate should be simple. The tools must be simple. This is not because people can’t understand complexity, it is because they don’t have the time to. In order to grow a community, concentrate on the most important elements that have an impact. Simplify as many things as possible to get to what truly makes your community unique and beneficial.</p>
<p align="JUSTIFY">An example of where projects sometimes fail in this area is by creating too many options for member communication. Don’t implement every communication technology you can find as that will only make it harder for your members to find and participate in conversations. Communication tools should help your members to communicate, not distract them with choices. You should ask a single question when analyzing your community’s tool choices: &#8220;Will this technology facilitate human interactions?&#8221;. Always remember that communities are about people, not technology, and that simpler communication strategies are usually better.</p>
<h2>Blog, Baby, Blog</h2>
<p align="JUSTIFY">With the move to social networking sites like Facebook.com and Twitter.com, the buzz around maintaining a blog has diminished. However, blogging is still one of the easiest and best ways to reach an audience with a message. Twitter and Facebook are important tools to help connect your project with a larger audience, but blogging is still the best way to create thought leadership around a project&#8217;s mission and vision of the future. When blogging, show your passion for your subject.</p>
<p align="JUSTIFY">Blogging about what you are doing is only the first step as you still have to attract people to the blog. Fortunately, blogs rank high in Google&#8217;s <a href="http://en.wikipedia.org/wiki/PageRank">PageRank algorithm</a>. The key with Google is not to go after the first page of results for a generic term like &#8220;collaboration&#8221; or even &#8220;collaboration software&#8221;, but to find a search term that still gets a decent amount of traction. In the case of collaboration software, it is far easier to reach the first page of Google results for &#8220;collaboration community of practice&#8221; or &#8220;collaboration success&#8221; than for just &#8220;collaboration&#8221;. When you title your blog, use the search terms you want to be found under, such as &#8220;Creating Communities of Practice Through Collaboration&#8221;.</p>
<p align="JUSTIFY">Don&#8217;t just focus your outbound marketing on Google. Start investing in Twitter and Facebook to grow an audience for your message. These tools may not be the best for articulating your project&#8217;s value proposition and mission, but they are great for helping you find pockets of users who share your passion. Make sure that you are <a href="http://help.twitter.com/forums/10711/entries/14019">following</a> and joining groups that have users who are attracted to the same problems and passions as your project and make sure you let these groups know when you&#8217;ve posted something on your blog. The key to using social networks is that you have to add value to your network by helping them solve their problems without becoming a marketing drone for your project.</p>
<h2>Work With Other Projects</h2>
<p align="JUSTIFY">Being an active and productive citizen of other projects is a great way to introduce users to your project or solution. If you have a reputation for helping others and contributing to projects, people will be happy to lend a hand when you need it. You may even already have some followers if you are actively participating in other communities. I recently heard the founders of <a href="http://github.com/">GitHub.com</a> talk about their startup experiences at the <a href="http://opensourcebridge.org/">Open Source Bridge</a> conference. They specifically mentioned their involvement with the Ruby on Rails community as one of the reasons GitHub had a successful beginning. If that’s not a testament to playing well in the sandbox, nothing is.</p>
<h2>Wrap Up</h2>
<p align="JUSTIFY">Building a community of passionate users is no small task. If you manage to do it, you will have worked harder than you ever have in your life because community building is a process that never stops. That is why it is so important to tap into a passion&#8211;not only the passion of a large set of users, but also your passion. The work is long and hard and often doesn&#8217;t seem fruitful, but if you stick with it and let your passion for the project and the problem you are solving shine through, you&#8217;ll do just fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://mindby.com/2010/01/community-building-101/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Wordpress Mu with Lighttpd and Multiple Domains</title>
		<link>http://mindby.com/2009/11/wordpress-mu-with-lighttpd-with-multiple-domains/</link>
		<comments>http://mindby.com/2009/11/wordpress-mu-with-lighttpd-with-multiple-domains/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 16:19:42 +0000</pubDate>
		<dc:creator>mindby</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://mindby.org/?p=119</guid>
		<description><![CDATA[I&#8217;ve been using the Bloog blogging software that runs on Google App Engine now for about a year at mindby.com.  One thing I&#8217;ve noticed is the performance of Google App Engine + Bloog is unpredictable.  This is apparently due to the loading and unloading of the application in the Google infrastructure + probably some inefficiencies [...]]]></description>
			<content:encoded><![CDATA[<div><img class="alignleft size-medium wp-image-120" src="http://mindby.org/files/2009/11/wordpress-300x300.jpg" alt="wordpress" width="300" height="300" />I&#8217;ve been using the Bloog blogging software that runs on Google App Engine now for about a year at <a id="ixic" title="mindby.com" href="http://www.mindby.com/">mindby.com</a>.  One thing I&#8217;ve noticed is the performance of Google App Engine + Bloog is unpredictable.  This is apparently due to the loading and unloading of the application in the Google infrastructure + probably some inefficiencies in the Bloog platform as it relates to AppEngine.  Don&#8217;t get me wrong I love the simplicity and elegance of the Bloog platform and its REST based architecture, but at this point I&#8217;ve grown frustrated with performance and am moving on.</p>
<p>After a brief look at a few open source platforms and hosting providers I&#8217;ve settled on Slicehost and Wordpress MU.  I decided to host the Wordpress installation at Slicehost because I&#8217;m a bit of a techie and will undoubtedly find myself wanting to do more than allowed at Wordpress.com.  I also used MU instead on the regular Wordpress install because I wanted a little more flexibility in the future to host multiple blogs if necessary.<span id="more-119"></span></p>
<p>SliceHost doesn&#8217;t offer my preferred Linux distro of openSUSE so I had my choice between Ubuntu, Fedora and Debian Lenny.  I&#8217;ve always been a fan of the stability of the Debian platform so I opted to use Lenny as my platform.  I went with the smallest slice I could rent which is 256MB 10G and 100G of bandwidth which should be plenty if I&#8217;m careful.  I also checked with Slicehost on upgrading if necessary and they assured me upgrades where only a click away.</p>
<p>Anyhoo, due to the smallish nature of my slice I wanted to run lighttpd instead of Apache and because I will probably host multiple blogs over time I went ahead and decided to configure Wordpress MU for multiple domains from the very get-go.  What I found was that even with Google and the awesome Wordpress installation tutorial there was still some &#8220;head scratching&#8221; I had to do to get things up and going.  Thus this tutorial was born to help others who may be doing a similar thing.</p>
<p>After getting my brand new Slicehost VM and configuring it for ssh key access only I went about configuring Wordpress Mu and lighttpd.</p>
<ul>
<li>Install the following using apt-get</li>
</ul>
<ol>
<li>Install mysql-server</li>
<li>Install lighttpd</li>
<li>Install php5, php5-cgi, php5-mysql, php5-gd (this installed apache2 which I promptly removed)</li>
</ol>
<ul>
<li>Download <a id="h1ek" title="Wordpress" href="http://mu.wordpress.org/download/">Wordpress</a> Mu</li>
<li>Install wordpress-mu into /var/www/ and copy the contents of the unarchived directory to /var/www.  You could also rename the directory to something like wpmu if you want but these directions assume you&#8217;ve copied everything into the webserver&#8217;s root</li>
<li>Create /etc/lighthttpd/wpmu-rewrite.conf with</li>
</ul>
<blockquote><p>server.error-handler-404 = &#8220;/index.php&#8221;<br />
url.rewrite-once = (<br />
&#8220;^/(.*/)?files/$&#8221; =&gt; &#8220;/index.php&#8221;,<br />
&#8220;^/(.*/)?files/(.*)&#8221; =&gt; &#8220;/wp-content/blogs.php?file=$2&#8243;,<br />
&#8220;^(/wp-admin/.*)&#8221; =&gt; &#8220;$1&#8243;,<br />
&#8220;^/([_0-9a-zA-Z-]+/)?(wp-.*)&#8221; =&gt; &#8220;/$2&#8243;,<br />
&#8220;^/([_0-9a-zA-Z-]+/)?(.*\.php)$&#8221; =&gt; &#8220;/$2&#8243;,<br />
)</p></blockquote>
<ul>
<li>Modify /etc/lighttpd/lighttpd.conf and add the following making sure to change domain.com to your domain&#8230;</li>
</ul>
<blockquote><p>$HTTP["host"] =~ &#8220;domain\.com&#8221; {<br />
simple-vhost.default-host = &#8220;domain.com&#8221;<br />
include &#8220;wpmu-rewrite.conf&#8221;<br />
}</p></blockquote>
<ul>
<li>Copy /etc/lighttpd/conf-available/10-fastcgi.conf to /etc/lighttpd/conf-enabled and restart lighttpd</li>
<li>Create MySQL database called &#8216;wpmu&#8217;</li>
<li>Change the permissions of a couple of directories before the next step withchmod 777 /var/www and /var/www/wp-content</li>
<li>Open a browser at http://yourdomain.com/wp-admin/install.php and configure the database.  Alternatively you could copy /var/www/wp-config-sample.php to /var/www/wp-config.php and make the necessary changes manually using the <a id="efin" title="Famous 5 minute Install" href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install">Famous 5 Minute Install</a> Guide</li>
<li>You&#8217;ll need to change permissions on a couple of directories if you run install.php (but remember to change them back to 755)</li>
</ul>
<blockquote><p>chmod 777 /var/www and /var/www/wp-content</p></blockquote>
<ul>
<li>You&#8217;ll also have to use subdomains in your configuration if you want to host multiple domains via the installation</li>
<li>Restart lighttpd and login at http://domain.com/</li>
</ul>
<p>At this point you should have main Wordpress Mu running and accessible, however the next thing on my list was getting the multi domain stuff working.   For this do the following&#8230;</p>
<ul>
<li>Install the multi-site plugin</li>
</ul>
<ol style="margin-left: 40px">
<li>Download from <a id="iipk" title="http://wordpress.org/extend/plugins/wordpress-mu-domain-mapping/" href="http://wordpress.org/extend/plugins/wordpress-mu-domain-mapping/">http://wordpress.org/extend/plugins/wordpress-mu-domain-mapping/</a></li>
<li>Extract the archive</li>
<li>Copy sunrise.php into wp-content/. If there is a sunrise.php there already, you&#8217;ll just have to merge them as best you can.</li>
<li>Copy domain_mapping.php into wp-content/mu-plugins/.</li>
<li>Edit wp-config.php and uncomment the SUNRISE definition line:   define( &#8216;SUNRISE&#8217;, &#8216;on&#8217; );</li>
<li>As a &#8220;site admin&#8221;, visit Manage-&gt;Domain Mapping to create the domain mapping database table and set the server IP address.</li>
<li>Ensure the plugin is activated from Domain Mapping plugin under &#8220;Plugins&#8221; in the Site Admin site</li>
<li>Make sure the default Apache virtual host points at your WordPress MU site so it will handle unknown domains correctly. Do this by ensuring that you have a &#8220;*&#8221; record pointing to your installation&#8217;s IP address at your domain registrar.</li>
</ol>
</div>
<div>
<ul>
<li>Once installed you will have the Domain Mapping option under tools as a Site Admin</li>
<li>TRICK:  Do NOT configure any new domains from the Main Site Administration console (ie. the one you configured during installation)</li>
<li>Go the Main site admin console</li>
<li>Create a new blog and make sure you use subdomains (you will need to configure a wildcard at your DNS service provider for this)</li>
<li>Browse to the newly created page and Login as the administrator for the subdomain</li>
<li>In the sub-site&#8217;s admin console go to Tools -&gt; Domain Mapping and map your new domain</li>
<li>For each new domain you add you should modify the lighttpd.conf file as shown above for each new domain.  You do not need to add additional wpmu_rewrite.conf files, only $HTTP["host"] section of lighttpd.conf</li>
</ul>
<p>So that&#8217;s it.  It really doesn&#8217;t take very long but like I mentioned some of these instructions were on various websites and needed to be condensed into one tutorial.  Hope it works and look for my transition to the Wordpress platform soon <img src='http://mindby.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .  If this doesn&#8217;t work for you or you discover other tips and tricks please leave a comment so everyone will know.</div>
]]></content:encoded>
			<wfw:commentRss>http://mindby.com/2009/11/wordpress-mu-with-lighttpd-with-multiple-domains/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

