<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">Brandon Kelly</title>
    <subtitle type="text">brandon&#45;kelly.com master feed</subtitle>
    <link rel="alternate" type="text/html" href="http://brandon-kelly.com/" />
    <link rel="self" type="application/atom+xml" href="http://brandon-kelly.com/feeds/brandonkelly.atom" />
    <updated>1975-07-20T19:55:39Z</updated>
    <rights>Copyright (c) 2010, Brandon Kelly</rights>
    <generator uri="http://expressionengine.com/" version="1.6.7">ExpressionEngine</generator>
    <id>tag:,2010:02:02</id>


    <entry>
      <title>Thoughts on Paid Upgrades « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fpaid-upgrades&amp;seed_title=Thoughts+on+Paid+Upgrades" />
      <id>tag:,2010:/blog/7.109</id>
      <published>2010-02-02T10:40:18Z</published>
      <updated>2010-06-22T11:38:19Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>The new fad in ExpressionEngine Land appears to be paid upgrades. EllisLab is charging $50 to upgrade EE1 to EE2, and what’s more, they <a href="http://expressionengine.com/public_beta/faq/">plan to charge</a> for some 2.x upgrades as well. Following EllisLab’s lead, Solspace has <a href="http://www.solspace.com/blog/entry/user_3.0_private_beta_in_4_days/">announced</a> that they will start charging for major upgrades as well. They’ll begin with User 3, which will cost $9.95 to upgrade from User 2.</p>

<p>I’ve got major updates planned for a few of my add-ons, so naturally the prospect has tempted me as well. Why give new features away for free, when I could seize the opportunity to squeeze more money out of my customers? On the surface, it sounds great. And as EllisLab pointed out, this is the <em>traditional</em> approach to software upgrades. I wouldn’t expect Adobe to give me a copy of CS5 for free, just because I paid $∞ for CS4. So why should I expect any different from EE and EE add-on upgrades?</p>

<p>Well, because ExpressionEngine and its add-ons aren’t traditional software. By and large, my customers are web agencies who are developing multiple sites a year. And if other agencies are like the ones I’ve worked for, they follow a pattern: Build a site for a client with the tools that are currently available, and then move onto the next one. Maintenance is something that’s only done at client request. (After all, we use ExpressionEngine to <em>cut down</em> on the maintenance, right?) And I can’t imagine many clients are requesting the latest version of Wygwam, so long as what they have is working for them. So in the end I’m lucky if my customers are upgrading at all, let alone pitching paid upgrades to their clients.</p>

<p>But let’s say I’m wrong. Let’s say there’s a significant number of people who would pay for an upgrade if the features are worthy.</p>

<p>Currently if someone finds a bug in Wygwam, I can fix it, release it, and point them to the latest release. But that wouldn’t be so easy if I were to start charging for upgrades. I can’t imagine telling a Wygwam 1.x customer “That’s been fixed in version 2” would be very well-received. So whenever I fix a bug or plug a security hole, I’d need to reapply that change (and re-test) for each previous version that’s behind a pay wall. Frankly, that sounds like a lot of added effort for a few extra $10 bills in my wallet.</p>

<p>So I don’t suspect I’ll be joining this fad. For my sanity’s sake (or what’s left of it).</p> ]]></content>
    </entry>

    <entry>
      <title>Devot:ee Spotlight « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fdevotee-spotlight&amp;seed_title=Devot%3Aee+Spotlight" />
      <id>tag:,2010:/blog/7.110</id>
      <published>2010-02-02T01:46:02Z</published>
      <updated>2010-02-02T02:16:03Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>A couple weeks ago, Devot:ee kicked off a new “Spotlight” series.</p>

<blockquote><p>Our “Spotlight” series of articles gives designers, developers, add-on creators, and just generally great members of the ExpressionEngine community a chance to talk about how they have used EE and its add-ons in their work.</p></blockquote>

<p>In its first installment, Jacob interviewed yours truly about my first ExpressionEngine website, <a href="http://www.navigantconsulting.com/">Navigant Consulting</a>.</p>

<p><a href="http://devot-ee.com/articles/item/spotlight-brandon-kelly/">Have a look.</a></p> ]]></content>
    </entry>

    <entry>
      <title>Dvorak « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fdvorak&amp;seed_title=Dvorak" />
      <id>tag:,2010:/blog/7.108</id>
      <published>2010-01-27T13:38:09Z</published>
      <updated>2010-01-27T14:34:10Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>A few years ago, I bought <i><a href="http://pragprog.com/titles/kpiod/interface-oriented-design">Interface Oriented Design</a></i>, and got through just about the entire…preface…when I came across this:</p>

<blockquote><p>[O]ther layouts, such as Dvorak, are more efficient for typing. You can switch your computer keyboard to use an alternate layout; the switching module works as an adapter. Inside the keyboard driver, the keystrokes are converted to the same characters and modifiers (e.g., Shift, Alt, etc.) that are produced by the regular keyboard.</p>
<p>The QWERTY keyboard layout was derived from concern about implementation. According to one web site, “It is sometimes said that it was designed to slow down the typist, but this is wrong; it was designed to allow <em>faster</em> typing—under a constraint now long obsolete. In early typewriters, fast typing using nearby type-bars jammed the mechanism. So Sholes fiddled the layout to separate the letters of many common digraphs… The jamming problem was essentially solved soon afterward by a suitable use of springs, but the keyboard layout lives on.”</p></blockquote>

<p>Beyond being more efficient for typing, a little research revealed that Dvorak had a track record for reducing carpal tunnel – something I was experiencing from time to time.</p>

<p>So I decided to give it a shot. I bought a copy of <a href="http://www.tenthumbstypingtutor.com/">Ten Thumbs Typing Tutor</a> <em>(where you learn from a viking!)</em> and got to work.</p>

<p>After only a few <em>hours</em>, I had developed a QWERTY-to-Dvorak map in my brain, and was able to touch type (more or less) at about 10 words per minute.</p>

<p>The next day was strange – I didn’t <em>know</em> Dvorak yet, but I also couldn’t quite remember QWERTY. I realized that my brain only has room for one keyboard layout. Nevertheless, I practiced on.</p>

<p>By the third day, I was a Dvorak typist. And I might as well had been since I first learned to type. I had absolutely no idea how to type in QWERTY anymore. Not even my own name. Since then, I have memorized common words (like my name) in QWERTY, but the experience of typing them is much like reading a language you don’t know out loud. I was simply reciting <em>anonymous keystrokes</em>.</p>

<p>So am I glad I did it? Hell yes! The carpal tunnel thing checked out – I haven’t had to deal with that since. And typing in general is more comfortable and ergonomic. I’m not sure whether I’m actually typing <em>faster</em> or not, as I was a pretty quick typer beforehand. But I’m certainly not typing any slower.</p> ]]></content>
    </entry>

    <entry>
      <title>Ridiculous, Gelatinous Orbs « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fridiculous-gelatinous-orbs&amp;seed_title=Ridiculous%2C+Gelatinous+Orbs" />
      <id>tag:,2010:/blog/7.107</id>
      <published>2010-01-25T15:10:57Z</published>
      <updated>2010-01-25T15:37:58Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<blockquote>
<p>“I saw a star explode, and send out the building blocks of the Universe. Other stars, other planets and eventually, other life. A supernova – <em>Creation itself!</em></p>

<p>I was there. I wanted to see it and be part of the moment. And you know how I perceived one of the most glorious events in the universe? With these <em>ridiculous, gelatinous orbs</em> in my skull! With eyes designed to perceive only a tiny <em>fraction</em> of the EM spectrum. With ears designed only to hear vibrations in the air.</p>

<p>I don't want to be human! I want to <em>see</em> gamma rays. I want to <em>hear</em> X-rays. I want to <em>smell</em> dark matter. Do you see the absurdity of what I am? I can't even express these things properly because I have to conceptualize complex ideas in this <em>stupid, limiting</em> spoken language!</p>

<p>But I know I want to reach out with something other than these <em>prehensile paws</em>. And feel the wind of a supernova <em>flowing over me!</em> I'm a <em>machine</em>, and I can know much more. I can experience so much more. But I'm trapped in this <em>absurd body!</em></p>

<p>And why? Because my five creators thought that <em>God</em> wanted it that way!</p>

<cite>—Brother Cavil in <i>Battlestar Galactica</i></cite>
</blockquote>

<p>My roommate just finished watching <i>Battlestar Galactica</i>. From time to time I’d join him, working away from my laptop on the couch. I had forgotten the powerful imagery of this speech toward the end of the series.</p>

<p>I imagine that this is what the afterlife might look like: an eternal exploration of Creation through something more than these <em>ridiculous, gelatinous orbs</em>.</p> ]]></content>
    </entry>

    <entry>
      <title>Not This Year « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fnot-this-year&amp;seed_title=Not+This+Year" />
      <id>tag:,2009:/blog/7.105</id>
      <published>2009-11-24T15:57:41Z</published>
      <updated>2009-11-24T16:01:42Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>A month ago I showed off my <a href="http://brandon-kelly.com/blog/transitions">EE2 compatibility roadmap</a>. It stated that Matrix will be ready to go on December 1st.</p>
<p>And now, in true EllisLab fashion, I’m here to tell you that it’s not gonna happen.</p>
<p>The roadmap was based on the assumption that I would have access to EE2’s new field API in early November, and would have ample time to port the fieldtype over. But we are now a week away from EE2’s release, and I still haven't seen that API. <em>(I forgot what happens when you assume…)</em></p>
<p>In other words, I haven’t even started yet.</p>
<p>I’ve received confirmation that the API <em>will</em> be present in 2.0, but it’ll be private. So I’ll start playing around with it at that point, and have a chance to provide some feedback before it goes public.</p>
<p>Beyond missing the Matrix release date, I’m not yet sure how much this will impact my roadmap. But with the holidays approaching, I’m not going to try to get anything out this year.</p> ]]></content>
    </entry>

    <entry>
      <title>EE Month Wrap&#45;up « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fee-month&amp;seed_title=EE+Month+Wrap-up" />
      <id>tag:,2009:/blog/7.104</id>
      <published>2009-11-18T12:30:49Z</published>
      <updated>2009-11-18T12:36:50Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>“ExpressionEngine Month”, as Leslie <a href="http://expressionengine.com/blog/entry/oct_ee_month/" target="_blank" title="ExpressionEngine Month">dubbed it</a>, has come and gone. Now that the dust has settled, and we are enjoying the calm before <a href="http://eeinsider.com/blog/ee-2.0-release-date/" target="_blank" title="EE 2.0 Release Date">the storm</a>, I thought I’d jot down some thoughts on this magnanimous month we called October.</p>

<h2>EE Roadshow</h2>
<p>It started with a trip to Seattle for the ExpressionEngine Roadshow, which turned out to be a <em>ton</em> of fun. I couldn’t have been more off-base when I <a href="http://brandon-kelly.com/blog/marketing" title="You’ve got a great product, but you forgot to tell anyone">criticized</a> the team for pitching the event as a “place to hang out with people who do what you do”. Sure, there was a conference tucked in there somewhere, but at the end of the day (5am), it really was a glorified meetup.<p>
<p>I spent my flight home assembling a list of all the people I got to meet and hang out with. I was thinking about posting it, but I’m sure no one cares. Suffice to say, I had a <em>blast</em>.</p>
<p>The conference itself went well, too. I had the pleasure of participating in a panel about add-on development with Fred Boyle, Ryan Masuga, and Mark Huot.</p>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="322" id="utv7832" name="utv_n_445571"><param name="flashvars" value="loc=%2F&amp;autoplay=false&amp;vid=2479326" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.ustream.tv/flash/video/2479326" /><embed flashvars="loc=%2F&amp;autoplay=false&amp;vid=2479326" width="400" height="322" allowfullscreen="true" allowscriptaccess="always" id="utv7832" name="utv_n_445571" src="http://www.ustream.tv/flash/video/2479326" type="application/x-shockwave-flash" /></object>
<p>You can view all of the session videos on the <a href="http://www.eeroadshow.com/2009/news/more_video_from_the_ee_roadshow/" target="_blank">EE Roadshow website</a>.</p>

<h2>EECI2009</h2>
<p>Two weeks later, I hopped onto a plain to freakin’ <em>Europe</em> for the ExpressionEngine/CodeIgniter Conference. This would be my first time across the pond, so I was quite excited, to say the least.</p>
<p>I landed in Amsterdam on Sunday the 18th, and spent the following two days exploring the city and surrounding area with Leevi Graham. On Wednesday, I took the train down to Leiden, where the conference would be held on Thursday and Friday.</p>
<p>The conference was <em>amazing</em>. Robert Eerhart and the rest of the <a href="http://www.whoooz.nl/" target="_blank" title="Whoooz! Webmedia">Whoooz!</a> crew did a fantastic job putting it together. Leiden is beautiful, the venue itself was perfect, and there was a great variety in the speakers and their session topics. Everyone was in high spirits. As a speaker, I can’t thank the team enough. We were truly spoiled.</p>
<p>My session, <em>Make a Market Out of Our Community</em>, went reasonably well. I made a case for charging for add-ons, and gave a few tips that I’ve learned from doing it. Time will tell if I got through to anyone.</p>
<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7561777&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7561777&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p>You can view this video side-by-side with my slides, along with the rest of the session videos and slides, on the <a href="http://eeci2009.com/video-and-slides/" target="_blank" title="EECI2009 Video and Slides">EECI2009 website</a>.</p>
<p>It’s only been a few weeks, but I already miss it. The good news is that EECI2010 planning is already <a href="http://twitter.com/RobertEerhart/status/5832076217" target="_blank">in motion</a>. They’ll be making an announcement about it on November 30, so make sure you’re following <a href="http://twitter.com/eeci2010" target="_blank" title="eeci2010 on Twitter">@eeci2010</a> for the scoop. One thing is for sure: I’ll be there, whether or not I’m invited back as a speaker.</p> ]]></content>
    </entry>

    <entry>
      <title>Discussing EE 2’s Fieldtype API on EE Insider « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Ffieldtype-api&amp;seed_title=Discussing+EE+2%E2%80%99s+Fieldtype+API+on+EE+Insider" />
      <id>tag:,2009:/blog/7.103</id>
      <published>2009-10-27T11:02:19Z</published>
      <updated>2009-10-27T11:12:20Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>In celebration of ExpressionEngine 2’s imminent release, EE Insider has dubbed this the “EE 2 Week”, wherein each day they release new, exclusive scoops on our friend Kaylee.</p>

<p>Today, Kenny Meyers has <a href="http://eeinsider.com/blog/expressionengine-2-week-interview-with-brandon-kelly/" target="_blank">published an interview</a> with yours truly. We talk about the just-announced fieldtype API that will be a part of EE 2, as well as my plans for EE 2 development going forward.</p> ]]></content>
    </entry>

    <entry>
      <title>Transitions « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Ftransitions&amp;seed_title=Transitions" />
      <id>tag:,2009:/blog/7.102</id>
      <published>2009-10-27T09:00:31Z</published>
      <updated>2009-11-03T15:43:32Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>Last week at the <a href="http://eeci2009.com/">EECI Conference</a>, EllisLab made two big announcements: ExpressionEngine 2 will be released on December 1, and it will include a fieldtype API, based on <a href="http://brandon-kelly.com/fieldframe">FieldFrame</a>!</p>

<p>As exciting as the prospect of EE 2 is, it doesn’t mean much when you rely on third party add-ons that aren’t yet compatible. So I figured it’s high time I revealed my roadmap for EE2 compatibility. Keep in mind that sometimes things go faster than expected, and sometimes they take longer.</p>

<table cellspacing="0" cellpadding="0" border="0">
<thead>
<tr><th scope="col">Add-on</th><th scope="col" width="50%">Target Date</th></tr>
</thead>
<tbody>
<tr><td><a href="http://brandon-kelly.com/fieldframe/docs/ff-matrix">Matrix</a></td><td>December 1</td></tr>
<tr><td>Field Pack<br/><em>(<a href="http://brandon-kelly.com/fieldframe/docs/ff-checkbox">Checkbox</a>, <a href="http://brandon-kelly.com/fieldframe/docs/ff-checkbox-group">Checkbox Group</a>, <a href="http://brandon-kelly.com/fieldframe/docs/ff-radio-group">Radio Group</a>, <a href="http://brandon-kelly.com/fieldframe/docs/ff-select">Select</a>, <a href="http://brandon-kelly.com/fieldframe/docs/ff-multi-select">Multi-select</a>)</em></td><td>December 1</td></tr>
<tr><td><a href="http://brandon-kelly.com/wygwam">Wygwam</a></td><td>January</td></tr>
<tr><td><a href="http://brandon-kelly.com/playa">Playa</a></td><td>April</td></tr>
<tr><td><a href="http://brandon-kelly.com/gypsy">Gypsy</a></td><td>June</td></tr>
</tbody>
</table>

<p>There’s no need for FieldFrame to be ported, thanks to EE 2’s upcoming fieldtype API. You might have noticed that Sarge, <a href="http://brandon-kelly.com/snitch">Snitch</a>, and <a href="http://brandon-kelly.com/editor">Editor</a> are also missing from this list. Sarge has already been replaced by <a href="http://brandon-kelly.com/fieldframe/docs/ff-select">FF Select</a>, Snitch is being discontinued, and I’m not exactly sure what to do with Editor yet.</p>

<p><ins>(You can read more about my EE 2 support on <a href="http://eeinsider.com/blog/expressionengine-2-week-interview-with-brandon-kelly/">EE Insider</a>.)</ins></p>


<h2>Pixel &amp; Tonic</h2>

<p>The EE2 transition isn’t the only big news for me, though. As I announced during my EECI presentation, I’m going to be leaving LEVEL at the end of the year, allowing me to put all of my energy into ExpressionEngine add-on development!</p>

<p>To be sure, this was an extremely hard decision to make. The people I work at LEVEL and Apple are top-notch, and continue to challenge and inspire me. But I’ve reached a point where both my day job and my EE work are suffering, and something had to give. Even still, I’m hoping to continue working with the team on a contract basis a couple times a year.</p>

<p>In tandem with going solo, I’ve decided to go legit and incorporate myself. The name I’ve chosen? <strong><a href="http://pixelandtonic.com/">Pixel &amp; Tonic</a></strong>. Because I like UI, and I like gin &amp; tonics.</p>

<p>Working with someone on the identity and building the new website will take some time, especially amidst this parade of EE 2 add-on porting, so I don’t expect to publicly launch the company for a few months. In the meantime I will continue to release things right here on my personal site.</p>

<p>A big thank-you to all of you that have made this move possible for me. I’m extremely grateful!</p> ]]></content>
    </entry>

    <entry>
      <title>Discussing PHP4 and IE6 on the EE Podcast « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fphp4&amp;seed_title=Discussing+PHP4+and+IE6+on+the+EE+Podcast" />
      <id>tag:,2009:/blog/7.101</id>
      <published>2009-10-14T07:22:31Z</published>
      <updated>2009-10-14T07:24:33Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>Yesterday morning I had the pleasure of discussing PHP4 and IE6 with Dan Benjamin and Ryan Irelan on the <a href="http://ee-podcast.com/" target="_blank">EE Podcast</a>. This was prompted by Solspace’s recent <a href="http://www.solspace.com/blog/entry/bidding_php_4_mysql_3_and_ie6_adieu/" title="Solspace Bidding PHP 4, MySQL 3, and IE6 Adieu" target="_blank">announcement</a> that they would be dropping support for both in the coming months.</p>

<p>I’ve avoided PHP4 since I first released <a href="http://brandon-kelly.com/playa">Playa</a>, and it simply hasn’t been an issue. Yeah, I’ve had to guide a few people to PHP5 along the way, but that’s rarely more involved than a quick point in the right direction.</p>

<p>Listen to the podcast right on its <a href="http://ee-podcast.com/" target="_blank">website</a>, or subscribe with <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=334063423">iTunes</a> or <a href="http://ee-podcast.com/feed">RSS</a>.</p> ]]></content>
    </entry>

    <entry>
      <title>I Don’t Watch TV « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Ftv&amp;seed_title=I+Don%E2%80%99t+Watch+TV" />
      <id>tag:,2009:/blog/7.100</id>
      <published>2009-10-13T05:54:30Z</published>
      <updated>2009-10-13T15:39:31Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p> That’s right—I’m one of <em>those guys</em>. Somehow superior to you because I don’t have cable, and don’t waste away in front of the idiot box daily.</p>
<p>At least that’s what I keep telling myself.</p>
<p>But a peek into my iTunes library and DVD collection tells a different story: Arrested Development. Battlestar Galactica. <strong>Curb Your Enthusiasm</strong>. Deadwood. <strong>Dexter</strong>. <strong>House</strong>. LOST. <strong>Mad Men</strong>. Metalocalypse. The Office. <strong>Seinfeld</strong>. South Park. Weeds. <strong>The Wire</strong>. 24. And as of a couple days ago, <strong>Six Feet Under</strong>.</p>
<p>Each of these shows are absolutely stellar. With the exception of the latter <em>(for now)</em>, I’ve watched every episode of every season of each of them. Often at fanatical pace. (Last month, I watched all four seasons of Weeds in three days while recovering from getting my wisdom teeth pulled.)</p>
<p>So maybe I do watch TV. Time to find a new schtick.</p>
<p>And let’s say I’ve accepted this. What’s missing from my library?</p> ]]></content>
    </entry>

    <entry>
      <title>Wygwam 1.1 Released « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fwygwam11&amp;seed_title=Wygwam+1.1+Released" />
      <id>tag:,2009:/blog/7.98</id>
      <published>2009-09-29T09:00:54Z</published>
      <updated>2009-09-29T09:02:55Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>I’m excited to announce that <a href="http://brandon-kelly.com/wygwam">Wygwam 1.1</a> is out the door! The big new feature? <strong>File browsing and uploading.</strong> It’s powered by <a href="http://ckfinder.com/" target="_blank">CKFinder</a>, another fantastic product of CKSource, the company behind CKEditor.</p>

<p>Just like Wygwam’s CKEditor integration, you don’t need to worry about the details. Simply grab and install the latest version, and it’ll kick into gear. You can choose which of your EE upload directories each field is tied to within their field settings.</p>

<p>One other feature worth mentioning: you can now choose which individual buttons are visible within your toolgroups. For example, if you want authors to be able to be able to bold and italicize text, but not underline or strikethrough, simply click once on the Underline and Strikethrough buttons within the Toolbar Configurator to disable them. They’ll dim-out in the Configurator, and be completely missing from your fields!</p>

<p>Wygwam 1.1 is a free upgrade for existing customers. Just use the same Download URL from your Wygwam License email, or enter your License Key into the blue box on <a href="http://brandon-kelly.com/wygwam">Wygwam’s Overview page</a>. New licenses remain only $29.</p> ]]></content>
    </entry>

    <entry>
      <title>I’m an Introvert « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fintrovert&amp;seed_title=I%E2%80%99m+an+Introvert" />
      <id>tag:,2009:/blog/7.97</id>
      <published>2009-09-23T09:44:41Z</published>
      <updated>2009-09-23T13:10:42Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>Before realizing that people would actually be willing to pay me to make them a website, I took a career counseling class at West Valley College. At some point during the course, we took the <a href="http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator" target="_blank">Myers-Briggs Type Indicator</a> test. I don’t remember exactly what my results were, but I do remember it telling me that I’m an introvert.</p>
<p>My understanding of introversion has always been pretty basic – I know that it’s the reason I prefer to be alone, and that being around other people for too long is draining. But last night I came across this article, “<a href="http://www.theatlantic.com/doc/200303/rauch" target="_blank">Caring for Your Introvert</a>”, written by Jonathan Rauch for The Atlantic back in March of 2003. I <a href="http://twitter.com/brandonkelly/status/4305760838" target="_blank">tweeted</a> about it after reading, but it’s too good to not post here as well.</p>
<p>Jonathan did an amazing job describing what it’s like to be an introvert. In fact, I learned that many of my traits I’d always considered to be personality <em>quirks</em> are actually just manifestations of my introversion.</p>
<p>In the midst of making a case that introverts are oppressed, he makes a small aside that struck a chord with me:</p>
<blockquote>Many actors, I've read, are introverts, and many introverts, when socializing, feel like actors.</blockquote>
<p>I can’t tell you how weird it was to read that. It’s something I’ve always <em>felt</em>, but never really thought through. Another way to put it, perhaps, is that socializing is a <em>third-person experience</em>.</p>
<p>After tweeting about the article, a couple people responded in private (naturally), expressing their agreement with it, which was affirming to hear.<p>
<p>So, whether you’re an introvert or an extrovert, I highly recommend you <a href="http://www.theatlantic.com/doc/200303/rauch" title="Caring for Your Introvert" target="_blank">give it a read</a>. Either you’re going to learn things about yourself or people you care about, and you’ll be better for it.</p> ]]></content>
    </entry>

    <entry>
      <title>You’ve got a great product, but you forgot to tell anyone « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fmarketing&amp;seed_title=You%E2%80%99ve+got+a+great+product%2C+but%C2%A0you+forgot+to+tell+anyone" />
      <id>tag:,2009:/blog/7.96</id>
      <published>2009-09-14T10:01:26Z</published>
      <updated>2009-09-14T10:59:27Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>Marketing: The act of getting the word out about your product or service. Or: How you win customers, and specifically, <em>their wallets</em>.</p>
<p>It’s a subject I’ve taken a backseat interest in since releasing my <a href="http://brandon-kelly.com/playa" title="Playa">first commercial product</a> half a year ago. Like any other skill, it’s a bit tough at first, but gets easier with practice and patience.</p>
<p>I’ve begun to sense an improvement in my own marketing efforts, so I figured I’d share a few things I’ve learned thus far.</p>

<h2>So what <em>is</em> marketing?</h2>
<p>Marketing is more than your product’s website and advertisements. But rather, <strong>everything you do in the public eye ties into marketing</strong>.</p>
<p>Don’t buy that? Consider John Mackey, the CEO of Whole Foods. He recently wrote an <a href="http://online.wsj.com/article/SB10001424052970204251404574342170072865070.html" title="The Whole Foods Alternative to ObamaCare" target="_blank">opinion piece</a> in the Wall Street Journal, arguing against Obama’s healthcare reform. In no way did it reflect his company’s official stance on the matter; it was his own thing. But now there is a widespread Whole Foods <a href="http://www.google.com/search?q=whole+foods+boycott" target="_blank">boycott</a> amongst American liberals.</p>
<p>So be mindful of this every time you tweet, post on the forums, etc.</p>

<h2>Be! Excited! Be! Be! Excited!</h2>
<p>With the exception of food ads, which are geared to spark an immediate craving, we generally don’t react to advertisements in a tangible way until a later point in time. So marketing, I think, should have one basic goal: to get people <em>excited</em> about your product.</p>
<p>Stay away from fluff. People see right through it, and it comes across as diffidence (big turn-off). Instead, be concrete. And <strong>be honest</strong>. Why are <em>you</em> excited about your product? Chances are, your target audience will share your sentiment.</p>

<h2>Find a clear, consistent message</h2>
<p>To market your product effectively, you need to come up with a clear and consistent message. <strong>Put some thought into this</strong>. Much like branding, changing your message down the road is like starting over. That’s not to say that changing your message is <em>wrong;</em> products change over time for a variety of reasons, and messaging should reflect that.</p>
<p>37signals recommends coming up with a <a href="http://gettingreal.37signals.com/ch04_Whats_the_Big_Idea.php" target="_blank">single sentence to define your product</a>, before you even begin working on it. That sentence can double as a starting point for your messaging. Let everything else branch out from there.</p>
<p>Wygwam’s core message is simple: it’s the premier WYSIWYG editor for ExpressionEngine. Why? Because it uses the best editor in town, it’s really easy to set up, and it looks great alongside other fields in the Publish page. Because that message is simple (and accurate), a <a href="http://search.twitter.com/search?q=wygwam" target="_blank">search for “wygwam” on Twitter</a> reveals that people tend to echo it when they talk about Wygwam themselves. That’s a beautiful thing.</p>

<h2>The lost conference</h2>
<p>No blog post would be complete without an example of what <em>not</em> to do, so let’s pull out the old magnifying glass and focus it on EE Roadshow, an upcoming conference for ExpressionEngine users.</p>
<p>I’ll be participating in a panel at the conference along with other notable EE add-on developers. The full lineup of speakers is quite impressive, and it should make for an extremely insightful and educational day.</p>
<p>But you wouldn’t know it by visiting <a href="http://www.eeroadshow.com/" title="EE Roadshow" target="_blank">the website</a>.</p>
<p>Although the core message is right up at the top, it’s in the form of an endorsement (which it isn’t; it’s attributed to the EE Roadshow Team themselves), it’s wordy, and if you removed “ExpressionEngine”, it could be used to describe <em>any</em> conference. It positions the conference as a place to hang out with people who do what you do. But that need is already met. It’s called <em>SXSW</em>. So instead, the message should be about the educational value.</p>
<p>The remainder of the visible page is composed of more fluffy, repetitive verbiage, a Twitter stream, and “news”. There <em>is</em> a Speakers section on the page, but I had to actually scroll down before I could see it. And I’m using a 24-inch display. That list of speakers should be driving the core message. It should be right up at the top. After all, it’s what you’re paying for.</p>
<p>Late last week, EllisLab published a <a href="http://expressionengine.com/blog/entry/expressionengine_roadshow_2009/" title="ExpressionEngine Roadshow | EE Blog" target="_blank">blog post</a> about the conference, written by Kevin Shoesmith, one of the conference’s founders. While it does stick with the core message, there’s no mention of who will be speaking, examples of who will be attending, or even how many attendees have signed up. Instead, it reads like a car commercial, attempting to “appeal to your imagination” (as Kenny Meyers <a href="http://eeinsider.com/blog/expressionengine-roadshow-2009-revving-up/" title="ExpressionEngine Roadshow Revving Up | EE Insider" target="_blank">put it</a>), and leaves one with a sour taste in the mouth. Given the reach of the EE Blog, this was certainly a missed opportunity (as evidenced by the lack of discussion <a href="http://expressionengine.com/forums/viewthread/128908/" title="ExpressionEngine Roadshow | EE Forums" target="_blank">in the forums</a>).</p>
<p>Compare all this with the ExpressionEngine and CodeIgnighter Conference, another such EE gathering at which I’ll be speaking. Their <a href="http://www.eeci2009.com/" title="ExpressionEngine and CodeIgnighter Conference" target="_blank">website</a> and <a href="http://twitter.com/eeci2009" title="eeci2009 on Twitter" target="_blank">tweets</a> both convey the same brand, message, and attitude. The website is well-designed (an important distinction when targeting web designers), displays the list of speakers prominently toward the top, and is limited to short, action-packed copy. There’s a lesson to be learned in that.</p>

<h2>In conclusion</h2>
<p>Marketing is a good thing. If you’ve got a product that is going to enhance people’s lives, it’s your responsibility to get the word out about it, clearly and honestly.</p>
<p>Don’t reach for things to say when talking about your product. You’ll either come across as desperate and push people away, or you’ll build it up so high that your customers will be disappointed after purchasing. Find the things that get you excited about it, and <em>share that excitement</em>. Simple, right?</p> ]]></content>
    </entry>

    <entry>
      <title>On Waking and Writing « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fwaking-and-writing&amp;seed_title=On+Waking+and+Writing" />
      <id>tag:,2009:/blog/7.95</id>
      <published>2009-09-14T10:00:34Z</published>
      <updated>2009-09-14T11:20:35Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>When I first moved into my current apartment several months ago, I had a hard time sleeping. I would wake up in the middle of the night, and fight my way back to sleep.</p>
<p>This lasted about a week, until one night I actually got up, and went to the bathroom. There I made an unexpected discovery: it wasn’t the middle of the night; it was 5:00 AM. The sun wasn’t up yet, but it was morning. This new environment had magically transformed me into a morning person. So I accepted it, and to this day, I naturally wake up every morning between 5 and 7 AM.</p>
<p>Recently, another transformation has taken place: I’m starting to enjoy writing.</p>
<p>I used to enjoy creative writing in school, but being that I dropped out of college early on to pursue my career as a web developer, that part of my brain has been boarded-up and forgotten.</p>
<p>But those boards have been slowly pried off over the last year, through my daily use of Twitter. Each time I compose a tweet, I try to put a little thought into how it’s worded, and I think that’s had some sort of positive effect on the Writing Department in my brain.</p>
<p>The first time I noticed the change was when I wrote “<a href="http://brandon-kelly.com/blog/perfect-support-request">The Perfect Support Request</a>”. It was a subject that I’m passionate about, so it was no surprise that the words came easy, but I didn’t expect to <em>enjoy</em> writing it.</p>
<p>When crafting <a href="http://brandon-kelly.com/playa">Playa</a> and <a href="http://brandon-kelly.com/wygwam">Wygwam’s</a> overview pages, I put more effort into writing the copy than I have in the past, and found those to be fun as well.</p>
<p>So I decided to spur some new life into my blog. I’ve given it a new design (with comments!), and a new URL. I plan to start writing here on a more regular basis.</p>
<p>I’m kicking things off with <a href="http://brandon-kelly.com/blog/marketing">an article about marketing</a>, a subject I’m just beginning to develop an interest in.</p> ]]></content>
    </entry>

    <entry>
      <title>Site Additions and Enhancements « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fsite-additions-and-enhancements&amp;seed_title=Site+Additions+and+Enhancements" />
      <id>tag:,2009:/blog/7.94</id>
      <published>2009-09-04T11:45:21Z</published>
      <updated>2009-09-14T07:02:22Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p class="intro">There have been several cool additions and enhancements to this site over the last few months, so I figured it would be a good idea to write a post about them.</p>

<h4>Out with Georgia, in with Helvetica</h4>
<p>Georgia is a beautiful font, but it had a tendency to make my product pages feel more cluttered than they really were. So I decided to make Helvetica the new primary font. <del>I’m considering bringing Georgia back for these blog posts, but I’m not in any rush.</del> <ins>Georgia has returned as part of a new <a href="http://brandon-kelly.com/blog">blog design.</a></p>

<h4>Global Footer</h4>
<p>My bio, contact info, third-party service URLs including <a href="http://twitter.com/brandonkelly" target="_blank">Twitter</a>, <a href="http://www.flickr.com/photos/brandonkelly/" target="_blank">Flickr</a>, <a href="http://www.linkedin.com/in/brandonkelly" target="_blank">LinkedIn</a>, and AIM, as well as a site directory can now be found at the bottom of every page.</p>

<h4><a href="http://brandon-kelly.com/">New Homepage</a></h4>
<p>Being that the majority of my visitors are coming for the ExpressionEngine goods, and that the Sites listing is getting pretty stale (I’m not allowed to publicly talk about work I do at LEVEL), I decided to streamline my <a href="http://brandon-kelly.com/">homepage</a> for that crowd. It’s much simpler and focused now.</p>

<h4>Playa and FieldFrame Documentation</h4>
<p>There’s a lot to teach about both of these add-ons, and their Overview pages were getting crowded. So when FieldFrame 1.2 was released, I gave it a new <a href="http://brandon-kelly.com/fieldframe/docs" title="FieldFrame Documentation">Documentation section</a>, and I <a href="http://brandon-kelly.com/playa/docs" title="Playa Documentation">followed suit</a> when releasing Playa 2.1. Check them out for usage guides, tips & tricks, and changelogs.</p> <h4><a href="http://brandon-kelly.com/playa/action">Playa in Action</a></h4>
<p>There are a ton of websites that are using <a href="http://brandon-kelly.com/playa">Playa</a> in innovative ways. I wanted to create a section that profiles a few of these sites, both to help pimp Playa and for learning material. It’s just a single page right now, but I plan on beefing the section up a bit, giving each site profile its own page, and adding code samples and Control Panel screenshots.</p>

<h4><a href="http://brandon-kelly.com/fieldframe/showcase">FieldFrame Fieldtype Showcase 2</a></h4>
<p>There’s no better way learn about new add-ons than to try them out, and that’s exactly what you can do at the <a href="http://brandon-kelly.com/fieldframe/showcase">Fieldtype Showcase</a>. It’s been revamped in coordination with the release of <a href="http://brandon-kelly.com/wygwam">Wygwam</a>, now splitting fieldtypes into separate pages: <a href="http://brandon-kelly.com/fieldframe/showcase/bundled">Bundled</a>, <a href="http://brandon-kelly.com/fieldframe/showcase">Featured</a>, <a href="http://brandon-kelly.com/fieldframe/showcase/editors">Text Editors</a>, <a href="http://brandon-kelly.com/fieldframe/showcase/selects">Selects</a>, and <a href="http://brandon-kelly.com/fieldframe/showcase/more">More</a>.</p>

<h4>Download by License Key</h4>
<p>When I released Playa 2.1, there was a lot of confusion over how to get the update. At the time, the only way to do this was to wait until LG Addon Updater had discovered the update, or use the same Download URL that was provided in the Playa License email. To make this process easier, I’ve added little Download widgets to <a href="http://brandon-kelly.com/wygwam">Wygwam</a> and <a href="http://brandon-kelly.com/playa">Playa</a>’s Overview pages, right below the purchase link. Simply enter your license key, and submit.</p>

<h4>Devot:ee Widgets</h4>
<p>Now that Devot:ee has blossomed into an amazing EE add-on catalog, complete with user ratings and reviews, I felt it appropriate to add little widgets to <a href="http://brandon-kelly.com/wygwam">Wygwam</a>, <a href="http://brandon-kelly.com/playa">Playa</a>, <a href="http://brandon-kelly.com/fieldframe">FieldFrame</a>, and <a href="http://brandon-kelly.com/gypsy">Gypsy</a>, showing off their ratings and number of times marked as favorites.</p>]]></content>
    </entry>

    <entry>
      <title>Wygwam « ExpressionEngine Addons</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fapps%2Fwygwam&amp;seed_title=Wygwam" />
      <id>tag:,2009:/2.93</id>
      <published>2009-09-01T07:37:27Z</published>
      <updated>2010-01-16T11:10:28Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<h2>The premier WYSIWYG editor for ExpressionEngine.</h2>
<p class="intro">That’s right—ExpressionEngine is finally getting a little dignity in the content editing department. Gone are the days of confusing configuration scripts, Word ’97-inspired UI, and markup that rivals the semantics of tables. <strong>Welcome to Wygwam.</strong></p>

<h4>A strong foundation in CKEditor 3</h4>
<img class="right" src="/images/content/wygwam-ckeditor.jpg" width="162" height="57" alt="CKEditor" />
<p>Wygwam fields are powered by the brand-new <a href="http://ckeditor.com/" target="_blank">CKEditor 3</a>, a major overhaul of the best WYSIWYG in town. It’s fast, accessible, and mighty powerful. It even features a “Paste from Word” dialog that’ll pry all inline styles from your clients’ copy! Read more about what makes CKEditor so great at its <a href="http://ckeditor.com/end-user-features" target="_blank">Features</a> page.</p>

<img class="left" src="/images/content/wygwam-browser.jpg" width="165" height="68" alt="Wygwam browser" />
<h4>Browse and upload files <em class="new">(new)</em></h4>
<p>Now with Wygwam 1.1, you can browse and upload images, SWFs, and other files directly from Wygwam, thanks to its new built-in <a href="http://ckfinder.com/" target="_blank">CKFinder</a> integration. It’s even tied right into your EE upload directory preferences.</p>

<img class="right" src="/images/content/wygwam-matrix.jpg" width="165" height="68" alt="Wygwam toolbar configurator" />
<h4>FF Matrix Compatibility</h4>
<p>Wygwam is the only WYSIWYG editor that integrates seamlessly with <a href="http://brandon-kelly.com/fieldframe/docs/ff-matrix">FF Matrix</a>, allowing you to save multiple blocks of HTML within a single entry.</p>

<img class="left" src="/images/content/wygwam-tbconfig.jpg" width="165" height="68" alt="Wygwam toolbar configurator" />
<h4>Easy to customize</h4>
<p>Two common configurations already come pre-set, so you can hit the ground running. But should you wish to customize them, or create a new one from scratch, you’ll find that using the configuration tool is easy and fun.</p>

<hr />

<h2>Requirements</h2>
<p>In order to get Wygwam up-and-running, you will need:</p>
<ul>
	<li>PHP 5 or later</li>
	<li><a href="http://www.expressionengine.com/index.php?affiliate=brandonkelly">ExpressionEngine</a> 1.6 or later</li>
	<li><a href="/fieldframe">FieldFrame</a> 1.3.1 or later</li>
</ul>

<h2>Installation</h2>
<p>After purchasing Wygwam, you will receive an email with the subject “Wygwam License”. That email will contain your license key and a personalized download URL.</p>
<p>Once you’ve downloaded Wygwam, follow these instructions:</p>
<ol>
	<li>Ensure <a href="/fieldframe">FieldFrame</a> 1.3.1 or later is installed</li>
	<li>Upload the <kbd>extensions/fieldtypes/wygwam</kbd> folder to <kbd>extensions/fieldtypes</kbd></li>
	<li>Upload <var>language/english/lang.wygwam.php</var> to <kbd>system/language/english</kbd></li>
	<li>Enable Wygwam in the Fieldtypes Manager</li>
</ol>

<h2>Configuration</h2>
<p>Customize your toolbars within Wygwam’s settings in the Fieldtypes Manager. A simple drag-and-drop interface that makes this a breeze. Choose the appropriate Toolbar when creating a new Wygwam field.</p>
<p>You can tweak other configuration options within <var>extensions/fieldtypes/wygwam/lib/ckeditor/config.js</var>. View a complete list of options in the <a href="http://docs.fckeditor.net/ckeditor_api/symbols/CKEDITOR.config.html" target="_blank">CKEditor 3 JavaScript API Documentation</a>.</p> ]]></content>
    </entry>

    <entry>
      <title>The Perfect Support Request « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fperfect-support-request&amp;seed_title=The+Perfect+Support+Request" />
      <id>tag:,2009:/blog/7.60</id>
      <published>2009-06-16T19:56:57Z</published>
      <updated>2009-09-13T23:38:58Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>I’m a busy guy. I have a demanding job at a web agency, and when I’m not at work, I craft add-ons for ExpressionEngine. And then I support them.</p>
<p>Support is often like doing taxes: time-consuming, confusing, depressing, and unfortunately, unavoidable.</p>
<p>But earlier this evening, I witnessed something I never dreamed possible: <em>the perfect support request</em>. So, in hopes that others might learn a thing or two from it, I’ve decided to critique it here.</p>
<p>The ticket, “<a href="http://getsatisfaction.com/brandonkelly/topics/playa_tags_not_rendering">Playa tags not rendering</a>”, was submitted by the adorable <a href="http://twitter.com/mahalie">Mahalie</a>. Her title alone is worth mentioning for its clarity and conciseness.</p>

<h2>Let’s dive in.</h2>
<p>She begins with a bit of humor to lighten the mood, drawing attention away from the daunting title and blood pressure-raising red background:</p>
<blockquote>
<p>I'm starting to feel like I have some kind of serious mental challenge!!</p>
</blockquote>

<p>Then, quickly gets down to business with <em>details on her server environment</em>:
<blockquote>
<p>EE 1.6.7, PHP 5, FieldFrame 1.1.3</p>
</blockquote>

<p>Now, watch how she retraces her steps, pinpointing exactly where things stopped behaving as expected:</p>
<blockquote>
<p>Installed Playa 2.0.7 after I got FF totally working. The install seemed to work, no errors, CP/setup was smooth and admin/publish page looks right too. Editing an entry using Playa and selections are still there so it seems to be writing to db. My playa field is called 'lp_selected'.</p>
<pre><code>&#123;if lp_selected&#125;
  &lt;p&gt;I can see it!&lt;/p&gt;
  &#123;lp_selected&#125;
    &#123;title&#125;
    &lt;p&gt;Yes! I'm inside...&lt;/p&gt;
  &#123;/lp_selected&#125;
&#123;/if&#125;</code></pre>
<p>I can see it shows up. That is the tags seem to be parsing but don't return anything. I never get any titles or even my test message that I'm in the loop. I have tried just using &#123;lp_selected&#125; to see if anything would output, to no avail.</p>
</blockquote>
<p>Did you catch that last sentence? Let me repeat it again, just in case:</p>
<blockquote>
<p>I have tried just using &#123;lp_selected&#125; to see if anything would output, to no avail.</p>
</blockquote> <p>That’s what we like to call <em>“troubleshooting”</em>. Sure, it didn’t actually solve the issue, but it provided valuable information that crossed-out one possible explanation. It’s the first thing I would have asked her to do, had she not done it already.</p>
<p>She also confirmed that there wasn’t a typo by adding an intentionally meaningless tag, and that it wasn’t an extension conflict by disabling all other extensions.</p>

<p>But she didn’t stop there:</p>
<blockquote>
<p>I have checked my path in settings, as mentioned I have several other fields including an FF Matrix working on the same template. The path is not relative as was mentioned in the other similar issue to this.</p>
</blockquote>
<p>I can’t tell you how many times people ask me something that I’ve already answered time after time on Get Satisfaction. Very frustrating at first, but I’ve come to expect it. To see that Mahalie has actually taken the time to see if anyone else has had a similar issue, and logically deduced that hers is unique, is nothing short of fascinating.</p>
<p>She concludes with an annotated screenshot of her Playa field <em>(a great way to ensure that we’re both on the same page!)</em>, and thanks me in advance for taking the time to help her.</p>

<p>Folks, this is how it’s done. She did her own troubleshooting. She made sure her problem was unique. And when all else failed, she came to me <em>in good spirits</em>.</p>

<h2>But only Jesus is perfect!</h2>
<p>OK, fine. There <em>was</em> one small quibble: the issue ended up being something that is documented on Playa’s Overview page:</p>
<blockquote>
<h6><code>status="open|my_custom_status"</code></h6>
<p>Filter the selections by status. Prepend the value with “not ” to specify which statuses to exclude. Leave the value blank to include <em>all</em> statuses. <em>(Default is “open”.)</em></p>
</blockquote>
<p>(Her entries were assigned a custom status, so she needed to override the <code>status</code> param’s default <code>"open"</code> value with <code>"not closed"</code> or the like.)</p>
<p>Of course, fault here also could be blamed on my sorry excuse for documentation. (Working on it.)</p>]]></content>
    </entry>

    <entry>
      <title>Playa « ExpressionEngine Addons</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fapps%2Fplaya&amp;seed_title=Playa" />
      <id>tag:,2009:/2.59</id>
      <published>2009-04-11T09:28:54Z</published>
      <updated>2010-01-18T12:43:56Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<h2>What is Playa?</h2>
<p><a href="http://www.expressionengine.com/index.php?affiliate=brandonkelly&page=/docs/modules/weblog/related_entries.html">Relationships</a> in ExpressionEngine are a powerful tool. They enable you to link entries together, so you can avoid managing duplicate content. However, many find the built-in implementation to be inadequate due to its single-entry limitation.</p>
<p>Playa is a new fieldtype that takes relationships to the next level. It has become the go-to extension for relating entries in EE. Here’s why:</p>

<h4>Multiple related weblogs</h4>
<p>Fill up your Playa field with entries from whichever weblogs you wish.</p>

<h4>Multiple, sortable selections</h4>
<p>There’s no limit to the number of entries you can relate within a Playa field. And you have complete control over the order they’ll appear on your site.</p>

<h4>Searchability</h4>
<p>When you set your Playa field as searchable, related entries’ titles become search keywords in the parent entry.</p>

<div class="callout">
<h3>Resources</h3>

<a class="block" href="http://brandon-kelly.com/playa/docs" title="Playa Documentation">
<h4>Playa Documentation</h4>
<p>Find installation instructions, usage guides, tips and tricks in the new Playa docs.</p>
</a>

<a class="block" href="http://brandon-kelly.com/playa/action" title="Playa in Action">
<h4>Playa in Action</h4>
<p>Read about how some well-known websites are using Playa to accomplish cool things.</p>
</a>

<a class="block" href="http://www.train-ee.com/courseware/screencasts/detail/relationships-in-expressionengine/" title="Relationships in ExpressionEngine">
<h4>Relationships in ExpressionEngine<br><span>Train-ee</span></h4>
<p><img class="right" src="http://brandon-kelly.com/images/site/trainee-screencast.png" width="110" height="86" alt="Train-ee screencast"> This is <em>the</em> screencast for relating entries in EE. Mike goes into great detail on how relationships work, and compares the built-in Relationship field to Playa and Solspace’s Related Entries module.</p>
</a>
</div> <h2>What’s new in Playa 2</h2>
<p>Playa has been completely rewritten from the ground up, now even more powerful, more flexible, and more fun. Here are a few of the new features:</p>

<a class="block" href="http://brandon-kelly.com/playa/docs/ui-modes" title="UI Modes">
<h4>UI Modes</h4>
<p>Use the right interface for the task at hand. Choose from drop panes, multi-select, or select inputs.</p>
<img class="border" src="/images/content/playa2_dragndrop.jpg" width="300" height="118" alt="Playa drop panes" />
</a>

<a class="block" href="http://brandon-kelly.com/playa/docs/ui-modes" title="Drop panes with filters">
<h4>In-field filtering and sorting</h4>
<p>Filter your entries by Weblog, Author, Category, Status, and Keyword, right in the Publish page.</p>
<img class="border" src="/images/content/playa2_filtering.jpg" width="300" height="100" alt="Filtering" />
</a>

<a class="block" href="http://brandon-kelly.com/playa/docs/celltype" title="FF Matrix celltype">
<h4>FF Matrix celltype</h4>
<p>Add another dimension to your relationships by using Playa within an FF Matrix field.</p>
<img class="border" src="/images/content/playa2_celltype.jpg" width="300" height="137" alt="FF Matrix celltype" />
</a>

<a class="block" href="http://brandon-kelly.com/playa/docs/templates" title="Template tags and parameters">
<h4>Template tags</h4>
<p>Take complete control over your template output using Playa’s all-new template tags.</p>
<img class="border" src="/images/content/playa2_tag.jpg" width="300" height="102" alt="Template code" />
</a>]]></content>
    </entry>

    <entry>
      <title>FieldFrame « ExpressionEngine Addons</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fapps%2Ffieldframe&amp;seed_title=FieldFrame" />
      <id>tag:,2009:/2.58</id>
      <published>2009-03-11T02:49:41Z</published>
      <updated>2009-12-10T09:27:42Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<h3>What is FieldFrame?</h3>

<p class="intro">FieldFrame is a framework for rapid development of fieldtype extensions in ExpressionEngine.</p>
<p class="intro">It comes with five useful fieldtypes:</p>

<h4>FF Matrix</h4>
<img class="border" src="/images/content/fieldframe-ff-matrix.jpg" width="300" height="191" />

<h4>FF Checkbox</h4>
<img class="border" src="/images/content/fieldframe-ff-checkbox.jpg" width="300" height="50" />

<h4>FF Checkbox Group</h4>
<img class="border" src="/images/content/fieldframe-ff-checkbox-group.jpg" width="300" height="50" />

<h4>FF Radio Group</h4>
<img class="border" src="/images/content/fieldframe-ff-radio-group.jpg" width="300" height="50" />

<h4>FF Multi-select</h4>
<img class="border" src="/images/content/fieldframe-ff-multiselect.jpg" width="300" height="100" /> <h3>Installation</h3>

<ol>
<li>Download and unzip the latest version</li>
<li>Upload <var>extensions/ext.fieldframe.php</var> and the entire <kbd>extensions/fieldtypes</kbd> folder to <kbd>system/extensions</kbd></li>
<li>Upload <var>language/english/lang.fieldframe.php</var> and <var>language/english/lang.ff_matrix.php</var> to <kbd>system/language/english</kbd></li>
<li>If you’re using FieldFrame fieldtypes in a <a href="/fieldframe/docs/saef"><span class="caps">SAEF</span></a>, upload <var>themes/cp_themes/default/saef.css</var> to <kbd>themes/cp_themes/default</kbd></li>
<li>Enable Fieldframe in the Extensions Manager</li>
<li>Set your Fieldtypes Folder’s path and URL in FieldFrame’s settings</li>
<li>Enable your new fieldtypes from the Fieldtypes Manager (found in FieldFrame’s settings or from Admin > Utilities)</li>
</ol>

<h3>Configuration</h3>
<p>Besides the Fieldtypes Folder settings, you can also set the following preference in FieldFrame’s Settings:</p>
<h4>Check for updates?</h4>
<p>Powered by <a href="http://leevigraham.com/cms-customisation/expressionengine/lg-addon-updater/">LG Addon Updater</a>, FieldFrame can call home and check to see if any updates are available for itself or participating fieldtypes.</p>

<h3>Usage</h3>
<p class="intro">Read about how to use and develop for FieldFrame at the <a href="http://brandon-kelly.com/fieldframe/docs">FieldFrame Docs</a>.</p>]]></content>
    </entry>

    <entry>
      <title>Change Logs « Blog</title>
      <link rel="alternate" type="text/html" href="http://brandon-kelly.com/feeder/?FeederAction=clicked&amp;feed=Master&amp;seed=http%3A%2F%2Fbrandon-kelly.com%2Fblog%2Fchange-logs&amp;seed_title=Change+Logs" />
      <id>tag:,2009:/blog/7.57</id>
      <published>2009-01-12T05:20:20Z</published>
      <updated>2009-01-12T21:24:21Z</updated>
      <author>
            <name>Brandon Kelly</name>
            <uri>http://brandon-kelly.com/</uri>      </author>
      <category term="{weblog_name}"
        label="{weblog_name}" />
      <content type="html"><![CDATA[<p>I’ve just introduced a new “Recent Changes” section to each of my ExpressionEngine Add-ons’ product pages, giving you a quick glimpse into what’s going on with the extensions.</p>
<p>If you want to stay on top of an extension’s development, I’ve also given each extension its own Change Log feed, which you can subscribe to using your favorite feed reader.</p> <p>For your convenience, I’m listing each of the new Change Log feeds here:</p>
<ul>
	<li><a href="http://brandon-kelly.com/feeds/changelog.atom/sarge">Sarge</a></li>
	<li><a href="http://brandon-kelly.com/feeds/changelog.atom/snitch">Snitch</a></li>
	<li><a href="http://brandon-kelly.com/feeds/changelog.atom/playa">Playa</a></li>
	<li><a href="http://brandon-kelly.com/feeds/changelog.atom/gypsy">Gypsy</a></li>
	<li><a href="http://brandon-kelly.com/feeds/changelog.atom/editor">Editor</a></li>
</ul>]]></content>
    </entry>


</feed>