<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

    <channel>
    
    <title>Green Egg Media Blog</title>

    <link>http://ee2.greeneggmedia.com/blog/rss</link>
    <description>Official blog for Green Egg Media.</description>
    <dc:language>en</dc:language>
    <dc:creator>info@greeneggmedia.com</dc:creator>

    <dc:rights>Copyright {date format="%Y"}</dc:rights>
    <admin:generatorAgent rdf:resource="http://www.expressionengine.com/" />

	
	
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/green-egg-media" /><feedburner:info uri="green-egg-media" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>

          <title>Undocumented CodeIgniter</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/7_50UhLrgLw/undocumented-codeigniter</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/undocumented-codeigniter</guid>

          <description>&lt;p&gt;Recently, I had need to write a small web app that would process hundreds of thousands of lines from a tab-delimited file into a database and run some logic against the data once a day. I immediately turned to CodeIgniter, knowing that I could rely on its speed, power, and flexibility. During the earliest tests, I was only processing the first thousand lines of the file and things were going swimmingly. The time came, though, when I was ready to run a test against the entire file, a file which contained over 335,000 lines. I had written some logic utilizing CodeIgniter&amp;#8217;s Database Forge class to dynamically create the database tables and table structure based on information passed in the first few lines of the file, so I dropped my tables, reset my testing limits, and called up my controller.&lt;/p&gt;

&lt;p&gt;Things seemed to be working well for the first 5 minutes. I watched as the database grew by a thousand records every few seconds. At the current rate, I calculated, it should take anywhere from 12-18 minutes to parse the entire file and return my results. But at about 9 minutes everything just stopped. The database had grown to around 150MB, and about 190,000 records, but that was all. None of my calculations had been run, no errors had been thrown by CI, and none of my debug logs had been displayed. It was clear that, for some reason, my application had just decided to stop. This was odd, as usually CI tells me why it stopped, but not this time. I checked my PHP error logs, and found what appeared to be a timeout error. Ah - an easy fix, thought I. I dropped in an ini_set() line at the top of my controller, cleared out the database, and let it fly again.&lt;/p&gt;

&lt;p&gt;Things proceeded as before. As the database got closer and closer to 190,000 records, I held my breath. And&amp;#8230; success? 191, 192, 193,000. It looked like things were working until suddenly everything stopped again around 195,000. There is no way I had hit the PHP timeout limit. The fact that the application had processed a few thousand more records suggested that the problem wasn&amp;#8217;t with a particular line in the file. The PHP error log this time also didn&amp;#8217;t have a timeout error, but there did appear to be a memory error. I was surprised at this. While the file I was processing was about 180MB, I was using fopen() and fgets() in order to avoid loading the entire file into memory. I was developing locally and already allocating 32MB of memory to PHP, so why was I running up against a memory limit? I decided to try setting a higher memory limit temporarily. I ramped up my allocated memory to 256MB. I wasn&amp;#8217;t thrilled about this. A file parser that needs 256MB of RAM just to run? That&amp;#8217;s not very efficient. And, it turns out, not only would it not be efficient, but it also didn&amp;#8217;t work. I got to abut 240,000 records this time, but then I hit the memory limit again. What was going on?&lt;/p&gt;

&lt;p&gt;Finally, I discovered what the problem was - CodeIgniter. Generally speaking, the documentation for CodeIgniter is excellent, but in this case, there was something going on that I wasn&amp;#8217;t aware of, and that the documentation never mentions - Query Saving. This is not to be confused with &lt;a href="http://codeigniter.com/user_guide/database/caching.html" target="_blank"&gt;query caching&lt;/a&gt;. That is a documented feature of CI, and one that I checked during my debugging. Query Saving is a feature of CI&amp;#8217;s database class that stores the results of every query in memory until the controller is finished executing. As it turns out, in version 1.6.0, the ability to turn this off was added. The addition of the save_queries variable is listed in the &lt;a href="http://codeigniter.com/user_guide/changelog.html" target="_blank"&gt;Change Log&lt;/a&gt;, but as of the latest release of 2.0.0 last week, it still hasn&amp;#8217;t made the documentation.&lt;/p&gt;

&lt;p&gt;$this-&gt;db-&gt;save_queries = FALSE;&lt;/p&gt;

&lt;p&gt;This single line of code in my controller allowed me to process my file, run my calculations, and generate the results I needed using only the base level of memory. For the most part, people probably don&amp;#8217;t need to worry about whether or not CI is saving the queries, but in cases where you need to process huge amounts of data at the same time, it definitely becomes an issue. This can&amp;#8217;t really be qualified as a memory &amp;#8220;leak,&amp;#8221; since CI is doing exactly what it was written to do. The question could be raised whether or not this is a required feature, though. I didn&amp;#8217;t even know that CI was doing this, let alone that I could turn it off. It doesn&amp;#8217;t make sense that the only reference to this variable should be in the Change Log for version 1.6.0. This is definitely something that should make the documentation for the &lt;a href="http://codeigniter.com/user_guide/database/index.html" target="_blank"&gt;Database Class&lt;/a&gt;. But until then, hopefully anyone who might be experiencing a PHP memory issue with CodeIgniter and MySQL will find this post and a solution to their problem.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/7_50UhLrgLw" height="1" width="1"/&gt;</description>
      	  <pubDate>Tue, 01 Feb 2011 12:09:38 -0500</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/undocumented-codeigniter</feedburner:origLink></item>	
	
	
	
        <item>

          <title>Macworld Expo 2011</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/6iggC0zrnxk/macworld-expo-2011</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/macworld-expo-2011</guid>

          <description>&lt;p&gt;Having our office in downtown San Francisco has many advantages. One of these has always been our proximity to the Moscone Center, home to the venerable Macworld Expo. The Macworld Expo has been a highlight of my year since I moved to San Francisco six years ago. Sadly, I missed last year&amp;#8217;s expo while I was on a safari in Kenya (tough life, I know), so I was doubly excited about attending this year&amp;#8217;s event. What a miserable disappointment, then, when I arrived to discover that the 2011 Macworld Expo is nothing but a shadow of what it once was.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/macworld.jpg"  alt="Macworld Expo 2011" width="400" height="300" style="border: 0; float: left; margin-right: 10px; margin-bottom: 10px;" alt="image" /&gt;&lt;/p&gt;&lt;p&gt;I knew that Apple bowed out of the Expo a couple years ago, but I didn&amp;#8217;t realize what a significant impact this would have on the overall quality of the event. The vast majority of exhibitors were for iPhone, iPod, and iPad cases and accessories. How boring! I can see all manner of such accessories by walking across the street to the Apple Store or visiting a few websites. There really is nothing special about seeing these things in person. An iPhone case is an iPhone case and an iPad stand is an iPad stand. I guess I shouldn&amp;#8217;t be too surprised by the lack of original exhibitors. At the first Macworld Expo after the iPhone hit the market, there was a huge influx of exhibitors with their iPhone paraphernalia, but I had really hoped that as time went by, we would start to see more innovative products at the expo. Apparently, not so.&lt;/p&gt;

&lt;p&gt;Some of the classic exhibitors that I always look forward to seeing, though, were missing. Apparently, with Apple&amp;#8217;s departure, the biggest exhibitors decided it was time to uproot, as well. Conspicuously absent this year were Adobe, Canon, &lt;a href="http://www.peachpit.com/"&gt;Peachpit Press&lt;/a&gt;, Macally, FileMaker Pro, Microsoft (sponsored/no booth), and Ambrosia. Needless to say, it didn&amp;#8217;t take me long to get through the entire expo when the highest quality booth was for the &lt;a href="http://www.igrillinc.com/"&gt;iGrill&lt;/a&gt;, a grilling thermometer for your iProduct. And even that booth wasn&amp;#8217;t terribly exciting. I mean, you can&amp;#8217;t operate a real grill in the middle of an expo, so the fake food on the inoperable grill served as more of a humorous sight than a reliable illustration of the product&amp;#8217;s capabilities.&lt;/p&gt;

&lt;p&gt;The highlight of the show for me had nothing to do with the exhibitors or the products; rather, it was when I spotted &lt;a href="http://leoville.com/"&gt;Leo Laporte&lt;/a&gt; and &lt;a href="http://www.sarahlane.com/"&gt;Sarah Lane&lt;/a&gt; from &lt;a href="http://www.twit.tv"&gt;This Week in Tech&lt;/a&gt; doing some coverage. I ran into them twice, once at the &lt;a href="http://www.tuneupmedia.com/"&gt;TuneUp Media&lt;/a&gt; van, and again as they were walking through one of the aisles, and both times there was a swarm of people following them and taking photos. I suspect that the reactions they were getting from people at the Macworld Expo were slightly different from those they might get at, say, a &lt;a href="http://www.cinemawasteland.com/"&gt;Horror Movie Expo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The lack of the major exhibitors, and the smaller number of exhibitors overall, also meant that this year&amp;#8217;s Expo took place in only the Moscone Center West, which, I believe, has the smallest exhibition hall. In fact, the entire Macworld Expo was taking place in that single building. I remember the glory days of the expo when they occupied all three of the Moscone Center&amp;#8217;s main buildings. At the end of the day, I suppose it was good that I went, but I&amp;#8217;m certainly glad I got my Expo Only pass free! This year&amp;#8217;s exhibit hall was certainly not worth a $45 price of admission. Granted, I didn&amp;#8217;t attend any of the other functions this year, and they may have been excellent, but the exhibit hall was a complete miss in my book.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/6iggC0zrnxk" height="1" width="1"/&gt;</description>
      	  <pubDate>Thu, 27 Jan 2011 15:29:01 -0500</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/macworld-expo-2011</feedburner:origLink></item>	
	
	
	
        <item>

          <title>Fun with Symbolic Links, Addons, and ExpressionEngine</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/Vktmd8ZrJNY/fun-with-symbolic-links-addons-and-expressionengine</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/fun-with-symbolic-links-addons-and-expressionengine</guid>

          <description>&lt;p&gt;Symbolic links are one of those things that you probably don&amp;#8217;t come across unless you are trying to solve a problem that they are the solution to. We like to use symbolic links to keep a handle of a number of things in a local development environment - mainly, addons.&lt;/p&gt;

&lt;p&gt;So I guess let&amp;#8217;s learn about symbolic links and how they can be utilized for maximum maximumication*.&lt;/p&gt;

&lt;h2&gt;What Are Symbolic Links?&lt;/h2&gt;

&lt;p&gt;We don&amp;#8217;t really need to get too technical, but basically symbolic linking is a way to put a file or folder in multiple places. What makes symbolic links awesome is the fact that the folder or file link will act just like it is the real thing.&lt;/p&gt;

&lt;p&gt;For instance, here is a path to an actual file inside an actual folder:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/computer/system/folder/file.php&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now let&amp;#8217;s say we have a symbolic link of &lt;strong&gt;folder&lt;/strong&gt;, and we put that into &lt;strong&gt;/computer/another_system/&lt;/strong&gt;. And then our PHP code uses this file path:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/computer/another_system/folder/file.php&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bazam! That will work. So will any other files within folder. The computer thinks they are there, but they are really someone else. Magic.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Symbolic links are not the same thing as file aliases. They share some features but will not work for this application.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Making a Symbolic Link&lt;/h2&gt;

&lt;p&gt;If you are on OS X, I recommend a handy little symbolic link maker tool called &lt;a href="http://seiryu.home.comcast.net/~seiryu/symboliclinker.html"&gt;Symbolic Linker&lt;/a&gt; which gives you a contextual menu option to make a symbolic link. You can also use the terminal, but I find this way much easier.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Lance would use the terminal because he likes it. He also drives a stick shift in San Francisco.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;To create a link, simply open the contextual menu, and find &amp;#8220;Make Symbolic Link&amp;#8221;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/Screen_shot_2010-11-22_at_1.06.01_PM.png"  alt="Make a symbolic link" width="510" height="164" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;You&amp;#8217;ll get a folder called the original name of the folder plus &amp;#8220;symlink&amp;#8221;. You can rename this file to whatever you&amp;#8217;d like.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/Screen_shot_2010-11-22_at_1.07.36_PM.png"  alt="Symbolic Link Folder" width="233" height="45" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s it! You now have a symbolic link.&lt;/p&gt;

&lt;h2&gt;Example: Master Addon Folder&lt;/h2&gt;

&lt;p&gt;We all have our addons that we use over and over again, and when beginning a new ExpressionEngine site, time is wasted installing new addons as you need them.&lt;/p&gt;

&lt;p&gt;What we like to use is a master addon folder separated out into the addon themes and the actual addon files.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/Screen_shot_2010-11-22_at_1.10.27_PM.png"  alt="Addons Setup" width="241" height="107" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;For every new local ExpressionEngine install, instead of copy/pasting all of the addons we use over and over, we simply make a symbolic link to those folders and put them in the correct places in the system.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/Screen_shot_2010-11-22_at_1.12.04_PM.png"  alt="" width="247" height="154" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/Screen_shot_2010-11-22_at_1.12.12_PM.png"  alt="" width="268" height="173" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;When we open up ExpressionEngine for the first time for a project, we simply go in and active the addons we need to start with, and then the ones we require as we go on. The addon installation is recorded in that ExpressionEngine install&amp;#8217;s database, as well as any addon data. The files just do their thing.&lt;/p&gt;

&lt;p&gt;When a new version of an update comes out, just replace it in your master addon folders, and it will update for all of your local installs. When you want to deploy, just grab the addon folder your need and upload &amp;#8216;em.&lt;/p&gt;

&lt;h2&gt;Grow Your Own&lt;/h2&gt;

&lt;p&gt;Everyone&amp;#8217;s setup is different, so your use of symbolic links will differ depending on your workflow. However, there is no denying that they are an awesome little tool for certain situations.&lt;/p&gt;

&lt;p&gt;Just try to deny it. You can&amp;#8217;t.&lt;/p&gt;

&lt;p&gt;Point - made. &lt;/p&gt;

&lt;p&gt;*Not a word.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/Vktmd8ZrJNY" height="1" width="1"/&gt;</description>
      	  <pubDate>Mon, 22 Nov 2010 10:53:14 -0500</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/fun-with-symbolic-links-addons-and-expressionengine</feedburner:origLink></item>	
	
	
	
        <item>

          <title>ExpressionEngine Deployment</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/ZBWG8P0mA1U/expressionengine-deployment</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/expressionengine-deployment</guid>

          <description>&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/deployment.jpg"  alt="ExpressionEngine Deployment" width="589" height="222" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;Last night I had the pleasure of hanging out with some of the &lt;a href="http://www.meetup.com/BostonEErs/"&gt;BostonEErs&lt;/a&gt; crew and talking about ExpressionEngine deployment for versions 1 and 2. Since Lance wrote the &lt;a href="http://expressionengine.com/wiki/Move_from_Development_to_Production_on_EE_2/"&gt;wiki post&lt;/a&gt; on the topic, I started off of that and expanded to some more time-saving and organizational stuff with config overrides and deployment with Git.&lt;/p&gt;

&lt;p&gt; We&amp;#8217;ve created a little page with &lt;a href="http://www.greeneggmedia.com/deployment"&gt;links to different resources and tools mentioned&lt;/a&gt;. If you know of anything that is not mentioned, please let us know.&lt;/p&gt;

&lt;p&gt;Always, there was a great discussion of addons and general ExpressionEngine methods and tricks. Once the new BostonEEr&amp;#8217;s website is up after the &lt;a href="http://www.meetup.com/BostonEErs/calendar/15243734/"&gt;December 4th site building Meetup&lt;/a&gt;, I have a feeling it is going to turn into a great vetted EE resource source soon!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/ZBWG8P0mA1U" height="1" width="1"/&gt;</description>
      	  <pubDate>Wed, 17 Nov 2010 11:59:02 -0500</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/expressionengine-deployment</feedburner:origLink></item>	
	
	
	
        <item>

          <title>7 Features It Would Be Nice If MojoMotor Had</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/c52xYpxMmHs/7-features-it-would-be-nice-if-mojomotor-had</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/7-features-it-would-be-nice-if-mojomotor-had</guid>

          <description>&lt;p&gt;In the past few weeks, there has been a lot of talk about ExpressionEngine and CodeIgniter - two Ellislab products. Although starting a fire like those probably isn&amp;#8217;t possible with MojoMotor - still a young product - we went ahead and titled this post to be as non-confrontational possible. Now, let&amp;#8217;s get on with it.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.mojomotor.com"&gt;MojoMotor&lt;/a&gt;, for those who don&amp;#8217;t know, is a niftily little edit-in-place CMS from &lt;a href="http://ellislab.com/"&gt;Ellislab&lt;/a&gt;. It was released 6 months ago, and since then has gone from 1.0 to 1.0.7 with some bug fixes and enhancements here and there.&lt;/p&gt;

&lt;p&gt;But what about the &lt;em&gt;future&lt;/em&gt;? Is MojoMotor fine the way it is, or does it need to innovate? Here&amp;#8217;s our take.&lt;/p&gt;

&lt;p&gt;Let&amp;#8217;s think about MojoMotor&amp;#8217;s main customer base. I&amp;#8217;d venture to say that they are, like, ExpressionEngine&amp;#8217;s customer base, smaller design companies. However, the emphasis is on design. They are companies that make small sites for smaller clients with limited functionality. These companies maybe didn&amp;#8217;t start with web stuff - they maybe started with print design and moved into web. The sites MM should power are frequently described as &amp;#8220;brochure sites&amp;#8221;, and the companies that make these types of sites are the ones that should be the perfect fit for MojoMotor.&lt;/p&gt;

&lt;p&gt;In short, they aren&amp;#8217;t developers and developing isn&amp;#8217;t high on their priority list. They need a CMS that is simple for clients and also simple to implement simple functionality. The simple part is key.&lt;/p&gt;

&lt;p&gt;These smaller shops have a lot of choice when it comes to a CMS. Large ones like ExpressioneEngine or ModX have too much complexity for their needs, but ones like Wordpress and Concrete5 are geared more towards them.&lt;/p&gt;

&lt;p&gt;Why? &lt;a href="http://wordpress.org"&gt;Wordpress&lt;/a&gt; has a litany of functionality and even though it requires some PHP know how, it is a plugin /cut and paste CMS at its core. &lt;a href="http://www.concrete5.org/"&gt;Concrete5&lt;/a&gt; is on the list because it&amp;#8217;s the closest cousin to MojoMotor due to its in-page editing interface, similar to MojoMotor&amp;#8217;s. It may be geared more towards developers in its promotion, but for designers who want in-page editing, it is a viable option.&lt;/p&gt;

&lt;p&gt;MojoMotor&amp;#8217;s strength lies in the fact you never have to touch PHP to make things work. Concrete5 and Wordpress means slogging through PHP - with MojoMotor you use Ellislab&amp;#8217;s ever-present tag system. Add in the in-place editing and the lack of a full page control panel, and you have the basics of a very tempting system.&lt;/p&gt;

&lt;p&gt;So why would anyone go with Wordpress or Concrete5 instead of MojoMotor if given the choice? Because, in our view, MojoMotor lacks some functionality that would otherwise sway a design firm towards paying the $50 price tag. For a small project, a designer may be willing to slog through PHP to save the cash.&lt;/p&gt;

&lt;p&gt;We think the key to MojoMotor taking off is understanding the needs of the small site and attacking it with some key features (some unique, some not). Here&amp;#8217;s our list of what we see as the top ones.&lt;/p&gt;

&lt;h3&gt;1. Embeddable Layouts&lt;/h3&gt;

&lt;p&gt;This is one that has been discussed since day one, and for good reason: even the least savvy designer gets DRY on some level. There are currently several resources available to be able to do this, but this one definitely should come with MojoMotor.&lt;/p&gt;

&lt;h3&gt;2. Simple Social Media Functionality&lt;/h3&gt;

&lt;p&gt;Even the smallest of the small clients now has a Twitter account, and they inevitably will want to put the last tweet on the page. To be able to do this out of the box would be a nice selling point.&lt;/p&gt;

&lt;h3&gt;3. No &amp;#8220;pages&amp;#8221; in the URL&lt;/h3&gt;

&lt;p&gt;Some clients don&amp;#8217;t care, but some will wonder why &amp;#8220;pages&amp;#8221; is in there. It can be fixed, but there are several places in MM where &amp;#8220;pages&amp;#8221; is expected to be there. Removing this isn&amp;#8217;t a selling point, but should be done for aesthetic reasons.&lt;/p&gt;

&lt;h3&gt;4. Very Basic Channel Functionality&lt;/h3&gt;

&lt;p&gt;Right now, MojoMotor is best suited to creating repeating content types for things like news sections. This makes sense. Instead of adding a new News item to a back end panel somewhere, the client can just create a new page and add the news item as it would be displayed anyways.&lt;/p&gt;

&lt;p&gt;However, even in basic sites there are items that would be better put into simple lists that can be organized and edited by clients. If these can be worked into the page list, that would be ideal, since clients could see where those items went.&lt;/p&gt;

&lt;p&gt;For example: you&amp;#8217;ve got a board page with a list of people. You don&amp;#8217;t want a different page for each person - just a blurb for each one. A nice solution would be to set up a channel with a title and a text box and give site admins a tag to display those the way they want.&lt;/p&gt;

&lt;h3&gt;5. External CSS Option&lt;/h3&gt;

&lt;p&gt;Right now MojoMotor puts the CSS right there on the page. This may be more of a personal preference, but it would be nice to be able to have that CSS be external as a choice.&lt;/p&gt;

&lt;h3&gt;6. More System Hooks for Developers&lt;/h3&gt;

&lt;p&gt;While building &lt;a href="http://www.greeneggmedia.com/mojoblocks"&gt;MojoBlocks&lt;/a&gt;, it became apparent that piggybacking on different systems within MojoMotor on both the PHP side and the jQuery side was simple and effective. However, there is certain functionality that is closed off to developers, like being able to make their add-on portable to EE2 through the export feature. A few system hooks would give developers the chance to plug into some important MM processes.&lt;/p&gt;

&lt;h3&gt;7. More Robust Native Contact Form&lt;/h3&gt;

&lt;p&gt;A large amount of the feature requests on the &lt;a href="http://mojomotor.com/forums"&gt;MojoMotor forums&lt;/a&gt; are about contact forms. The current one is pretty limited, so a few little tweaks here and there (including Captcha) would go a long way.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s it - some large, some small, but this is what we&amp;#8217;d like to see in MojoMotor&amp;#8217;s future.&lt;/p&gt;

&lt;p&gt;In the mean time, buy our &lt;a href="http://www.greeneggmedia.com/mojoblocks"&gt;addon&lt;/a&gt;! Do it! You know you want to.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/c52xYpxMmHs" height="1" width="1"/&gt;</description>
      	  <pubDate>Fri, 29 Oct 2010 10:11:51 -0400</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/7-features-it-would-be-nice-if-mojomotor-had</feedburner:origLink></item>	
	
	
	
        <item>

          <title>Introducing MojoBlocks</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/yeIr6VSoZLU/introducing-mojoblocks</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/introducing-mojoblocks</guid>

          <description>&lt;p&gt;We here at Green Egg Media love &lt;a href="http://www.mojomotor.com" target="_blank"&gt;MojoMotor&lt;/a&gt;. It has an interface that clients just click with, and when a complicated back end isn&amp;#8217;t something you need, MojoMotor provides a paradigm shift into something more comfortable.&lt;/p&gt;

&lt;p&gt;As great as MojoMotor is, it can be frustrating that its signature in-page editing feature only works for blocks of text. If you need your client to be able to update an H1 header, for instance, you are out of luck if you want to keep clients out of the layouts.&lt;/p&gt;

&lt;p&gt;Today, we&amp;#8217;re proud to be releasing Green Egg Media&amp;#8217;s first foray into the paid addon community with MojoBlocks - a widget-like addon for MojoMotor that allows you to create and control editable blocks of different content - Twitter streams, RSS feeds, H tags, and more. It comes with 13 blocks and supports third party ones as well. Check out a full list of blocks &lt;a href="http://www.greeneggmedia.com/mojoblocks/blocks"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/mb_blocks.jpg"  alt="MojoBlocks" width="639" height="236" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;We&amp;#8217;ve worked hard on making it something that is an essential to any MojoMotor install. You can find it at &lt;a href="http://www.greeneggmedia.com/mojoblocks"&gt;http://www.greeneggmedia.com/mojoblocks&lt;/a&gt;. It&amp;#8217;s $15, and &lt;a href="http://www.greeneggmedia.com/mojoblocks/buy"&gt;available for purchase&lt;/a&gt; today. &lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/mb_screen.jpg"  alt="MojoBlocks with MojoMotor" width="630" height="361" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;MojoBlocks integrates into the MojoMotor experience seamlessly - using a combination region/tag code, you create a local or global block that you then enter information into using the custom edit interface that comes up for each block:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/mojoblocks/header_block.jpg"  alt="Header Block" width="580" height="164"  /&gt;&lt;/p&gt;

&lt;p&gt;Blocks can be very, very simple, or more complicated. For example, the H tag simple allows you create an editable H header. The Flickr block, in contrast, allows you to show photos from a Flickr set or user.&lt;/p&gt;

&lt;p&gt;Blocks can also use MojoMotor layouts so you can control more complicated data. For instance, the &lt;a href="http://www.greeneggmedia.com/mojoblocks/documentation/block/rss"&gt;RSS block&lt;/a&gt; returns variables that you can arrange in any way you&amp;#8217;d like. Same with the Twitter blocks and the Flickr block.&lt;/p&gt;

&lt;p&gt;We&amp;#8217;ve built MojoBlocks with clients in mind. Any piece of data you don&amp;#8217;t want your clients to be able to edit on the edit panel can be set in the tag and hidden from any meddling. You can use blocks as standalone addons too by removing the editable region div around them.&lt;/p&gt;

&lt;p&gt;We&amp;#8217;ve also built it with the people who build the sites in mind. We have &lt;a href="http://www.greeneggmedia.com/mojoblocks/documentation"&gt;documentation for MojoBlocks&lt;/a&gt;, as well as documentation for each block, and for &lt;a href="http://www.greeneggmedia.com/mojoblocks/documentation/block-basics"&gt;our block syntax&lt;/a&gt; so you create your own.&lt;/p&gt;

&lt;p&gt;To find out more, see a video of MojoBlocks in action, and check it out for yourself, visit &lt;a href="http://www.greeneggmedia.com/mojoblocks"&gt;http://www.greeneggmedia.com/mojoblocks&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We hope you enjoy MojoBlocks!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/yeIr6VSoZLU" height="1" width="1"/&gt;</description>
      	  <pubDate>Thu, 21 Oct 2010 10:00:22 -0400</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/introducing-mojoblocks</feedburner:origLink></item>	
	
	
	
        <item>

          <title>MojoMotor in Motion</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/3n22NU3qVl4/mojomotor-in-motion</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/mojomotor-in-motion</guid>

          <description>&lt;p&gt;&lt;a href="http://www.greeneggmedia.com/mojoblocks"&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/mb_ad.jpg"  alt="MojoBlocks" width="640" height="171" style="border: 0;" alt="image" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The day before EECI2010, Lance asked me if I had any predictions what would happen at the conference. I had been thinking about this, so I said I thought Ellislab was going to announce a smaller and cheaper version of ExpressionEngine. Lance told me I was stupid and made me sleep outside with the Safeway gangs across the street from his apartment.&lt;/p&gt;

&lt;p&gt;So I was naturally very excited the next day when Mr. Allard announced &lt;a href="http://mojomotor.com/" target="_blank"&gt;MojoMotor&lt;/a&gt; in a flurry of techno music and applause. Plus, I had totally called it! That&amp;#8217;s right. I did, Lance. Deal with it.&lt;/p&gt;

&lt;p&gt;I love EE, but for smaller projects I will use Wordpress, because EE would be overkill. In theory, that makes me target market #1 for MojoMotor, so I was eager to try it out and kick the tires. After some quality time with MojoMotor and me with some wine by the fire, here are some thoughts.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/mm.jpg"  alt="MojoMotor" width="629" height="86" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;h2&gt;Too Many Waiters?&lt;/h2&gt;

&lt;p&gt;As Brandon Kelly &lt;a href="http://twitter.com/brandonkelly/status/22651921029" target="_blank"&gt;mentioned on Twitter&lt;/a&gt;, it seems like there are a lot more add-on developers for MojoMotor than actual users.&lt;/p&gt;

&lt;p&gt;That impression may come out of the fact that developers ride with developers, but objectively, the deluge of MM devs actually seems pretty normal at this point. Ellislab loves to play the coat rack with products - they make great core systems, and leave it to the market to flesh it out. Very libertarian of them. People can complain, but take away the coat rack, and you just have a pile of soggy coats. So now, several months after MM&amp;#8217;s introduction into the world, it seems only natural that the activity around it is focused on figuring out what the market is going to hold, and how people are actually going to use MojoMotor. Can it sustain a $10 Twitter timeline plugin? Maybe, but only time will tell.&lt;/p&gt;

&lt;h2&gt;Changing Your Perspective&lt;/h2&gt;

&lt;p&gt;When I first opened up MojoMotor, two things struck me: the UI is very geared towards clients, and &amp;#8220;The Publishing Engine That Does Less&amp;#8221; is very appropriate as a tagline. As a developer of sites using EE as a tool of choice though, you can&amp;#8217;t get into the trap of thinking &amp;#8220;oh well, EE would do it this way, why doesn&amp;#8217;t MM do it like this?&amp;#8221;, because we&amp;#8217;re working in a whole new system here.&lt;/p&gt;

&lt;p&gt;With MM, you are in the head of the client (with a simple site) at all times, and it requires a new way of thinking - including new ways of thinking about how content is managed and updated.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/menu.jpg"  alt="MM Menu" width="544" height="72" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;That being said, remember that MM is a very, very young product. The news that Ellislab recently &lt;a href="http://mojomotor.com/blog/entry/dan_horrigan_joins_the_mojomotor_family/"&gt;snatched up Dan Horrigan&lt;/a&gt; after he took a few victory laps of MM add-on brilliance says volumes about where MM is going in the future. Until we get there though, I think a truly useful MM install needs a booster chair.&lt;/p&gt;

&lt;h2&gt;MojoMotor Install Must Haves&lt;/h2&gt;

&lt;p&gt;So you have your $49 MojoMotor installation and you need to build a site. I would recommend getting these before you dive in:&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://mojomotor.com/forums/viewthread/164017/" target="_blank"&gt;ShowMe (Free)&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;One feature I was actually quite surprised wasn&amp;#8217;t built native into MojoMotor was the ability to nest layouts. &lt;a href="http://mojomotor.com/forums/viewthread/164017/" target="_blank"&gt;ShowMe&lt;/a&gt;, by Loic Sharma, solves this problem handily. I just couldn&amp;#8217;t bring myself to pay $7 for the commercial version, Pieces, for such a basic CMS must-have.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://github.com/zackkitzmiller/cartographer" target="_blank"&gt;Cartographer (Free)&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Chances are if you are working on a site that needs MM, your client will be asking about SEO at some point. While you are hooking them up to Webmaster tools, you can use &lt;a href="http://github.com/zackkitzmiller/cartographer"&gt;Cartographer&lt;/a&gt; to easily generate an XML sitemap. By Zack Kitzmiller.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://motori.st/add-ons/details/mojoblog" target="_blank"&gt;MojoBlog ($15)&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;We all know what a complete disaster having clients edit a list of items is in just a WYSYWIG text area. As such, you gotta have your content streams. Mr. Jamie Rumbelow comes to the rescue with &lt;a href="http://motori.st/add-ons/details/mojoblog" target="_blank"&gt;MojoBlog&lt;/a&gt;, an essential to any MM install.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://motori.st/add-ons/details/analyze" target="_blank"&gt;Analyze (Free)&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;You know what? Why not.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://github.com/dhorrigan/mojo-php" target="_blank"&gt;MojoPHP (Free)&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;We all need a little PHP once in a while. Dan Horrigan to the rescue with this one.&lt;/p&gt;

&lt;p&gt;Other fun add-ons are &lt;a href="http://motori.st/add-ons/details/msync" target="_blank"&gt;M&amp;#8217;Sync&lt;/a&gt; and Tom Myer&amp;#8217;s awesomely paranoid &lt;a href="http://motori.st/add-ons/details/backdoor" target="_blank"&gt;Backdoor&lt;/a&gt; add-on.&lt;/p&gt;

&lt;h2&gt;The Future&lt;/h2&gt;

&lt;p&gt;Like I mentioned earlier, the addition of Dan Horrigan to the MM team says a lot about the fact that Ellislab isn&amp;#8217;t going to let this product sit on its initial version laurels. In the future it would be nice to see some features like embedded layouts built in so we don&amp;#8217;t have to install an add-on for that.&lt;/p&gt;

&lt;p&gt;It would also be great to have a native MojoMotor Add-on admin panel, so we can use features like Phil Sturgeon&amp;#8217;s &lt;a href="http://github.com/philsturgeon/mojo-variables" target="_blank"&gt;MojoVariables&lt;/a&gt; in a more useful way (it should be a very simple implementation, of course). Yes, there is an add-on admin panel but we need a native one if it is going to be implemented consistently.&lt;/p&gt;

&lt;h2&gt;The Value Is There&lt;/h2&gt;

&lt;p&gt;Bottom line: if you take our list of MM essentials and tally them up with your MojoMotor install, you get a grand total of $65. That is $235 less than if you bought a commercial ExpressionEngine license, without any EE add-ons. $65 and you have a lot of power to create a small and effective site using some of the most essential tools you use on ExpressionEngine.&lt;/p&gt;

&lt;p&gt;That to me, depending on the project, is a no-brainer.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/3n22NU3qVl4" height="1" width="1"/&gt;</description>
      	  <pubDate>Thu, 02 Sep 2010 10:35:27 -0400</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/mojomotor-in-motion</feedburner:origLink></item>	
	
	
	
        <item>

          <title>Moving from Development to Production on EE 2</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/8Md0ZE57uWA/moving-from-development-to-production-on-ee-2</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/moving-from-development-to-production-on-ee-2</guid>

          <description>&lt;p&gt;There are several guides for server migration under ExpressionEngine 1.x, but so far nothing on migrating ExpressionEngine 2.1. This guide is based our our own experience of moving a site from a development environment to a production environment. We have tried to capture as many aspects of the move as possible, but every EE site is different. You may find that we include steps which you can omit, or you may discover that there are additional steps you need to take.&lt;/p&gt;

&lt;p&gt;This tutorial assumes that your development environment is on a different server than your production environment. If this is not the case, you can still use much of this tutorial, but note that some steps may not apply, or may only partially apply.&lt;/p&gt;

&lt;p&gt;It can&amp;#8217;t be said enough - before you start making any significant changes to your database or file system, &lt;b&gt;backup your data&lt;/b&gt;!&lt;/p&gt;

&lt;h3&gt;STEP 1: Backup your data&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;Creating a backup of your data is always a good idea before undertaking any major changes. Moving a site from a development environment to a production environment is considered a major change, so make sure you have a backup of your data in case something goes terribly wrong.&lt;/p&gt;

&lt;h3&gt;STEP 2: Synchronize Templates (if needed)&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;If you are not saving your templates as flat files (i.e., in the file system), skip to Step 3.&lt;/p&gt;

&lt;p&gt;If you are saving your templates as flat files, make certain that your templates are all synchronized before beginning. If your templates are not synchronized, you &lt;em&gt;might&lt;/em&gt; encounter some trouble in the production environment, particularly if the last changes you made to the templates were made to the flat files and not in the Template Manager.&lt;/p&gt;

&lt;p&gt;To synchronize your templates, in the Control Panel, go to Design &amp;gt; Templates &amp;gt; Synchronize Templates.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/01_synctemplates.png"  alt="Syncronize Templates" width="265" height="182" style="border: 0;" /&gt;&lt;/p&gt;

&lt;p&gt;If the Sync column has all green check marks, you&amp;#8217;re good to go, otherwise, sync those templates that are out of sync until they are all checked green.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/02_syncchecks.png"  alt="Synchronized Templates Checked" width="334" height="233" style="border: 0;" /&gt;&lt;/p&gt;

&lt;h3&gt;STEP 3: Export your Database (MySQL dump)&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;If you have access to phpMyAdmin in your development environment, login. If not, you will need to export your database using a different tool. Some hosts provide different methods of exporting your data through a hosting control panel, or you might need to use the command line if you are using a local development environment without phpMyAdmin. This step will detail how you go about using phpMyAdmin.&lt;/p&gt;

&lt;p&gt;After logging in to phpMyAdmin, select the correct database from the left-hand column. Depending on your environment, you may have only one database listed. Once selected, you should see something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/03_phpmyadmin1.png"  alt="phpMyAdmin" width="623" height="258" style="border: 0;" /&gt;&lt;/p&gt;

&lt;p&gt;Make a note of the Collation method listed. It will usually be utf8_general_ci, but if there is another collation used, like latin1, make a note of this. When we reimport the data, you will need to use the same collation, or things might break entirely.&lt;/p&gt;

&lt;p&gt;Click on the Export tab. You will be presented with a number of options.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/04_sqldump.png"  alt="SQL Dump Settings" width="640" height="393" style="border: 0;" /&gt;&lt;/p&gt;

&lt;p&gt;Verify that all of the tables are selected, that you have selected to export as SQL, that you are exporting the Structure of the database, and that you are exporting the data, itself. Verify that the &amp;#8220;Save as File&amp;#8221; box is ticked, name your export, and click Go. This will generate an SQL file that you must save somewhere. We will need this SQL file to import it into the production environment.&lt;/p&gt;

&lt;h3&gt;STEP 4: Create a Database on the production server&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;Now you need to create a new database on your production server. This is generally done through a Database Manager in the hosting control panel. When you create the database, you will either create a MySQL username and password at the same time, or you will assign an existing MySQL username and password to the new database. For security reasons it is a good idea to have a separate username and password for each production database. When creating the database, make a note of the following items, as you will need them later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MySQL hostname or IP address (provided by your host)&lt;/li&gt;
&lt;li&gt;Database name (generally you select this, but sometimes it is assigned)&lt;/li&gt;
&lt;li&gt;MySQL username&lt;/li&gt;
&lt;li&gt;MySQL password&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, login to phpMyAdmin on the production server. You should see your newly created database in the left-hand column, but it will have no tables assigned to it. Select the database and then select the &amp;#8220;import&amp;#8221; option on the screen that appears:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/05_sqlscreen.png"  alt="SQL Import Option" width="248" height="199" style="border: 0;" alt="image" /&gt;&lt;/p&gt;

&lt;p&gt;You will now be presented with the import options:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/06_sqlscreen2.png"  alt="MySQL Import Settings" width="514" height="296" style="border: 0;" /&gt;&lt;/p&gt;

&lt;p&gt;Select the SQL file that was created in Step 3. &lt;b&gt;Verify that the same collation is being used.&lt;/b&gt; For most database imports, you should uncheck to box under Partial Import. If your SQL file is very large, it might exceed limits set on your server. In the example image above, the limit is 7,168 KiB. Your server may vary. If your SQL file is smaller than the size limit, you should always uncheck the Partial Import box. If your file is larger than the limit, you can allow partial imports. Partial imports are beyond the scope of this tutorial and will not be covered further.&lt;/p&gt;

&lt;p&gt;Once set, click the &amp;#8220;Go&amp;#8221; button to upload and import your data. If successful, the left-hand column should populate with all of your tables.&lt;/p&gt;

&lt;h3&gt;STEP 5: Migrate The File System and Set Permissions&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;First, if you are deploying an ExpressionEngine site to a production environment where a non-ExpressionEngine website currently exists, &lt;b&gt;backup the data on the existing production server.&lt;/b&gt; Do not simply delete the existing file system or overwrite it. If something goes wrong, you will &lt;b&gt;not&lt;/b&gt; be able to recover the old production system.&lt;/p&gt;

&lt;p&gt;Now, make sure that the development file system is backed up. (You already did that in step 1, right?)&lt;/p&gt;

&lt;p&gt;You have two options for migrating the development file system. The fastest is generally to archive the contents of the development server (zip or tar, for example) and upload the archive to the production server where you will extract the contents. However, if your hosting control panel does not give you access to create an archive (on the development server) or extract an archive (on the production server) this option may not be available.&lt;/p&gt;

&lt;p&gt;If you can&amp;#8217;t create an archive on the development server, but you &lt;em&gt;can&lt;/em&gt; extract one on the production server, you can download the file system to your local machine and create the archive locally.&lt;/p&gt;

&lt;p&gt;If you can&amp;#8217;t extract the archive on the production server, you will need to upload the file system as folders and files, which will take longer.&lt;/p&gt;

&lt;p&gt;Once you have all of the files in place on the production server, whether you used the archive method or the individual files method, you must verify permissions as follows. If you are using a Unix server (or Unix variant, like Linux, OS X, FreeBSD, etc.) you must set the following files to 666 (or equivalent write permissions on your server):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;/system/expressionengine/config/config.php&lt;/li&gt;
&lt;li&gt;/system/expressionengine/config/database.php&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the follow directories to 777 (or equivalent write permissions on your server):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;/system/expressionengine/cache/&lt;/li&gt;
&lt;li&gt;/images/avatars/uploads/&lt;/li&gt;
&lt;li&gt;/images/captchas/&lt;/li&gt;
&lt;li&gt;/images/member_photos/&lt;/li&gt;
&lt;li&gt;/images/pm_attachments/&lt;/li&gt;
&lt;li&gt;/images/signature_attachments/&lt;/li&gt;
&lt;li&gt;/images/uploads/
&lt;/ul&gt;

&lt;p&gt;If you are saving templates as flat files, you must set the relevant directory (and all its subdirectories) (usually located &lt;b&gt;inside&lt;/b&gt; /system/expressionengine/templates/) to 755.&lt;/p&gt;

&lt;p&gt;If you have any other special directories or files that require permissions, set those now. For example, several add-ons that manipulate files, such as ED Image Resizer, require that the directory for sized images be set to 777.&lt;/p&gt;

&lt;h3&gt;STEP 6: Update database.php &amp;amp; config.php&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;Now, grab those notes about the database, and use them to update the contents of /system/expressionengine/config/database.php.&lt;/p&gt;

&lt;p&gt;Next, open /system/expressionengine/config/config.php and set the correct URLS for the following variables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$config[&amp;#8216;cp_url&amp;#8217;]&lt;/li&gt;
&lt;li&gt;$config[&amp;#8216;base_url&amp;#8217;]&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;STEP 7: Update paths in the Control Panel&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;If all has gone well so far, you should be able to login to your control panel at &lt;a href="http://yourdomain.tld/system/"&gt;http://yourdomain.tld/system/&lt;/a&gt; If th.e server balks, try &lt;a href="http://yourdomain.tld/system/index.php"&gt;http://yourdomain.tld/system/index.php&lt;/a&gt; If yo.u still can&amp;#8217;t get the Control Panel, something has gone wrong. I hope you backed everything up.&lt;/p&gt;

&lt;p&gt;Once you have logged into the CP, there are several places where you need to change paths. If you don&amp;#8217;t know your new server path, there are several ways to find this. The easiest is to look for the _SERVER[&amp;#8220;DOMAIN_PATH&amp;#8221;] variable in Tools &amp;gt; Utilities &amp;gt; PHP Info:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/07_phpinfoshot.png"  alt="PHP Info" width="423" height="202" style="border: 0;" /&gt;&lt;/p&gt;

&lt;p&gt;Once you have your path information, update it in the CP. Here are the most common area you&amp;#8217;ll need to update:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Admin &amp;gt; Channel Administration &amp;gt; Channels &amp;gt; Edit Preferences &amp;gt; Path Settings (URLs for each channel, and any other URLs set. Even if these are just set to the default, they will use the old server paths, and should be updated for clarity and developer hygiene.)&lt;/li&gt;
&lt;li&gt;Admin &amp;gt; General Configuration (three URLs and one path)&lt;/li&gt;
&lt;li&gt;Admin &amp;gt; Content Administration &amp;gt; File Upload Preferences (both path and URL for each upload destination set)&lt;/li&gt;
&lt;li&gt;Admin &amp;gt; System Administration &amp;gt; Image Resizing Preferences (this is only required if using ImageMagick or NetPBM - if it wasn&amp;#8217;t set before and everything was working as you expected, it doesn&amp;#8217;t need to be set now)&lt;/li&gt;
&lt;li&gt;Admin &amp;gt; System Administration &amp;gt; Emoticon Preferences&lt;/li&gt;
&lt;li&gt;Admin &amp;gt; Security and Privacy &amp;gt; CAPTCHA Preferences&lt;/li&gt;
&lt;li&gt;Design &amp;gt; Template Manager &amp;gt; Global Template Preferences (only required if you are saving templates as flat files)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;STEP 8: Update paths in templates, CSS, JS, and third-party add-ons&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;If you used any server paths or absolute URLs pointing to your development environment anywhere else, you need to update those now. Common things to look out for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&amp;lt;base href&amp;gt; tags in templates&lt;/li&gt;
&lt;li&gt;Hard-coded absolute URLs in templates (should be rare - if you&amp;#8217;re using these, try &amp;#123;site_url&amp;#125; instead)&lt;/li&gt;
&lt;li&gt;paths set in CSS or JS - especially JavaScripts that aren&amp;#8217;t being parsed by EE. EE tries not to parse JS files, so if your JS needs a path, you probably had to hard code it&lt;/li&gt;
&lt;li&gt;paths set in third-party add-ons, either in the CP, or sometimes in one of the files living in the file system (like ED Image Resizer, which required the plugin file to contain two paths)&lt;/li&gt;
&lt;li&gt;images or files included in entries if you hard-coded the links, or if your WYSIWIG editor hard-coded the links (if you have a lot of these, you might try using the SQL Manager in Tools &amp;gt; Data &amp;gt; SQL Manager or the Search and Replace in Tools &amp;gt; Data &amp;gt; Search and Replace)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/08_sqlmanager.png"  alt="SQL Manager" width="423" height="202" style="border: 0;" /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;img src="http://www.greeneggmedia.com/images/blog/09_searchreplace.png"  alt="Search and Replace" width="423" height="202" style="border: 0;" /&gt;&lt;/p&gt;

&lt;h3&gt;STEP 9: Verify Template Synchronization&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;If you aren&amp;#8217;t saving templates as files, skip to Step 10.&lt;/p&gt;

&lt;p&gt;If you are saving templates as files, verify that you can properly sync your templates using the Synchronize Templates feature. If you can&amp;#8217;t, you may need to delete the directory specified in Design &amp;gt; Template Manager &amp;gt; Global Template Preferences from the file system and recreate that directory again on the production server. This is only true on servers that have ownership issues with the your specified template directory.&lt;/p&gt;

&lt;h3&gt;STEP 10: Clear your cache&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;Clear all Caches in Tools &amp;gt; Data &amp;gt; Clear Caching&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://www.greeneggmedia.com/images/blog/10_clearcaching.png"  alt="Clear Caching Menu" width="423" height="202" style="border: 0;" /&gt;&lt;br /&gt;
&lt;img src="http://www.greeneggmedia.com/images/blog/11_allcaches.png"  alt="Clear Caching Option" width="423" height="202" style="border: 0;" /&gt;
&lt;/p&gt;

&lt;p&gt;This is to verify that there is no residual cache data from the development server.&lt;/p&gt;

&lt;h3&gt;STEP 11: Load the site&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;If all went well, you should be able to navigate to &lt;a href="http://yourdomain.tld/"&gt;http://yourdomain.tld/&lt;/a&gt; and everything will work.&lt;/p&gt;

&lt;h2&gt;Good Luck!&lt;/h2&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/8Md0ZE57uWA" height="1" width="1"/&gt;</description>
      	  <pubDate>Mon, 30 Aug 2010 09:00:26 -0400</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/moving-from-development-to-production-on-ee-2</feedburner:origLink></item>	
	
	
	
        <item>

          <title>The Egg, Rehatched</title>
          <link>http://feedproxy.google.com/~r/green-egg-media/~3/orbsuDyNKRg/the-egg-rehatched</link>
          <guid isPermaLink="false">http://www.greeneggmedia.com/blog/entry/the-egg-rehatched</guid>

          <description>&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/hatch.jpg"  alt="Ready to Hatch" width="300" height="313" style="border: 0; float: left; margin: 10px 20px 0 0;" /&gt; &amp;#8220;We&amp;#8217;re almost ready to hatch.&amp;#8221; So read the splash screen at greeneggmedia.com on March 1, 2008, the day we opened our proverbial doors for business. Indeed, the Green Egg Media website took a back seat for the first few months due to a number of client projects which had already been booked before our first official day as a California business, but finally, on June 5, 2008, our first site broke through the thick green shell and hatched. It was a thing of beauty. For any of you who have seen our business cards, the original website looked something like those. Unfortunately, I made the mistake of ordering way too many of those cards, and even two and a half years later I still haven&amp;#8217;t found the bottom of the box.&lt;/p&gt;

&lt;p&gt;After the first site launched, it didn&amp;#8217;t take long before revisions for a new site were underway. Already by July 7, 2008, a new design mock-up was done which sparked a flurry of new ideas and design concepts. Of all of the design concepts that we explored in July and August that year, I am most disappointed that we didn&amp;#8217;t launch the design that had an animated cartoon rocket that took users from one page to another. Opportunity missed. It wasn&amp;#8217;t until October, 2008, that we finally launched a new design that was completely unlike anything else we had explored, but there it was. How long could we really be content with that site? Not very long, apparently.&lt;/p&gt;

&lt;p&gt;By March, 2009, we already had new, finalized designs for the third version of the Green Egg Media website. Our third site was, without a doubt, better than the first two, and it served us quite well. But, as history has shown, nothing lasts forever. This brings us to today: August 26, 2010. It has been almost 18 months since we last redesigned the website, and almost as long since we last even thought to update it with recent, relevant content. So what better way to update content than with a complete redesign? As such, today marks the launch of the fourth edition of greeneggmedia.com.&lt;/p&gt;

&lt;p&gt;Yes, we&amp;#8217;ve rehatched, but this time it&amp;#8217;s more than a just a new face. Today we&amp;#8217;re proud to announce some very exciting new features of the Green Egg Media website. First and foremost, we&amp;#8217;ve built the new site on ExpressionEngine 2. We&amp;#8217;ve been working with ExpressionEngine for some time now, but until today, all of our previous sites were custom CodeIgniter applications. Given the power and versatility of EE2, though, we decided that it made the most sense to build our own site in EE.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.greeneggmedia.com/images/blog/adam_hides.jpg"  alt="Adam Hiding" width="285" height="224" style="border: 0; float: right; margin: 10px 0 0 20px;" /&gt;Second, we are introducing &lt;a href="blog"&gt;the blog&lt;/a&gt;, which you are reading at this very moment. Previous iterations of our website were of the &amp;#8220;set-it-and-forget-it&amp;#8221; variety, but with this new site we will bring you regular content relevant to design and development. If you follow us on Twitter, you already know that we&amp;#8217;re serious when we need to be, and amazingly fun at all other times. You should expect nothing less from this blog. For example, in the blog we&amp;#8217;ll feature exciting company news, such as the official Green Egg Media book-of-the-quarter. The last book we selected was &amp;#8220;Egg Monsters from Mars,&amp;#8221; which instilled such fear in Adam that he had to assume the fetal position under his desk. (By the way, if you don&amp;#8217;t already follow us on Twitter, &lt;a href="http://www.twitter.com/greeneggmedia"&gt;you should&lt;/a&gt;. Or I&amp;#8217;ll cry.)&lt;/p&gt;

&lt;p&gt;Next, we have unveiled our &lt;a href="code"&gt;code area&lt;/a&gt;. Here other developers will find useful code that we have written for ExpressionEngine and CodeIgniter. We&amp;#8217;re constantly working to improve the CI and EE communities, and one of the best ways we can think of to do this is by making our work available to all of you.&lt;/p&gt;

&lt;p&gt;Finally, we&amp;#8217;re also showcasing &lt;a href="projects"&gt;side projects&lt;/a&gt;. These are projects that Green Egg Media is involved in outside of our regular client design and development work. Side projects can range from trade-specific blogs, to video productions that we&amp;#8217;re producing, to virtually anything else that doesn&amp;#8217;t fit somewhere else on this site.&lt;/p&gt;

&lt;p&gt;We&amp;#8217;re really excited about our new site, and we look forward to hearing from you here on the blog, or via our &lt;a href="contact-us"&gt;Contact Form&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/green-egg-media/~4/orbsuDyNKRg" height="1" width="1"/&gt;</description>
      	  <pubDate>Thu, 26 Aug 2010 12:00:32 -0400</pubDate>
        <feedburner:origLink>http://www.greeneggmedia.com/blog/entry/the-egg-rehatched</feedburner:origLink></item>	
	
	
    
    </channel>
</rss>

