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

<channel>
	<title>John Morris</title>
	<atom:link href="http://www.johnmorrisonline.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johnmorrisonline.com</link>
	<description>WordPress and WishList Member Developer</description>
	<lastBuildDate>Mon, 20 May 2013 13:10:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<!-- podcast_generator="Blubrry PowerPress/4.0.8" -->
	<itunes:summary>This Is Your Life on Code is a podcast dedicated to coders helping you become a more well-rounded coder and a better person. My goal is provide you with all the knowledge &quot;around&quot; your technical skill. How to work with clients, how to market yourself, how to manage your time, how to stay sane, and more.</itunes:summary>
	<itunes:author>John Morris</itunes:author>
	<itunes:explicit>clean</itunes:explicit>
	<itunes:image href="http://www.johnmorrisonline.com/wp-content/uploads/powerpress/tiyloc-1400.png" />
	<itunes:owner>
		<itunes:name>John Morris</itunes:name>
		<itunes:email>johnmorrislive@gmail.com</itunes:email>
	</itunes:owner>
	<managingEditor>johnmorrislive@gmail.com (John Morris)</managingEditor>
	<copyright>&#xA9; John Morris 2013</copyright>
	<itunes:subtitle>This Is Your Life on Code is a podcast dedicated to coders helping you become a more well-rounded coder and a better person.</itunes:subtitle>
	<itunes:keywords>php, html, css, mysql, coder, technology</itunes:keywords>
	<image>
		<title>John Morris</title>
		<url>http://www.johnmorrisonline.com/wp-content/uploads/powerpress/tiyloc-1400.png</url>
		<link>http://www.johnmorrisonline.com</link>
	</image>
	<itunes:category text="Technology" />
		<rawvoice:rating>TV-PG</rawvoice:rating>
		<rawvoice:location>Des Moines, Iowa</rawvoice:location>
		<item>
		<title>How to Make More Money in Web Design</title>
		<link>http://www.johnmorrisonline.com/how-to-make-more-money-in-web-design/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-make-more-money-in-web-design</link>
		<comments>http://www.johnmorrisonline.com/how-to-make-more-money-in-web-design/#comments</comments>
		<pubDate>Sun, 19 May 2013 13:33:08 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Coder Marketing 101]]></category>
		<category><![CDATA[John Morris TV]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[how to make money from web design]]></category>
		<category><![CDATA[how to make money in web design]]></category>
		<category><![CDATA[how to make money with web design]]></category>
		<category><![CDATA[make money with web design]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=2033</guid>
		<description><![CDATA[<p>Listen to the Full 30-Minute Podcast Version Are You Losing Money Trying to Be Everything to Everybody? I have 100% been guilty of this. When I first started marketing my services, I had a shotgun blast of an offer hoping potential clients would pick up on something and get in touch with me. The problem? [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-make-more-money-in-web-design/">How to Make More Money in Web Design</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/05/jmotv001-e1368930356888.png" width="240" />
		</p><p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='600' height='368' src='http://www.youtube.com/embed/VRuXjFnbfeA?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<h3>Listen to the Full 30-Minute Podcast Version</h3>

<p><a href="https://itunes.apple.com/us/podcast/this-is-your-life-on-code/id650552708"><img class="alignnone size-full wp-image-2050" alt="Click to Subscribe to the Podcast via iTunes" src="http://www.johnmorrisonline.com/wp-content/uploads/2013/05/subscribe-itunes.png" width="660" height="150" /></a></p>
<h3>Are You Losing Money Trying to Be Everything to Everybody?</h3>
<p>I have 100% been guilty of this. When I first started marketing my services, I had a shotgun blast of an offer hoping potential clients would pick up on something and get in touch with me.</p>
<p>The problem?</p>
<p>It reeks of desperation. And, <a title="How Wealthy Developers REALLY Succeed" href="http://www.johnmorrisonline.com/how-wealthy-developers-really-succeed/">clients don&#8217;t want a desperate developer</a>.</p>
<p>The more you try to be everything to everybody, the more you&#8217;ll be nothing to nobody. Potential clients won&#8217;t really know what your strengths are and what your core offer is.</p>
<p>And, they&#8217;ll know you&#8217;re not a master of everything.</p>
<p>So, instead of trying to be good at everything&#8230;</p>
<h3>Pick One Thing and Be Great At It</h3>
<p>I&#8217;m a WordPress developer. More specifically, I&#8217;m really good and working with WishList Member and building membership sites.</p>
<p>I could talk for days on what a successful membership design looks like. I have oodles of testimonials and portfolio items to show a client if need be.</p>
<p>I have a mega-ton of credibility as a developer of membership sites.</p>
<p>So, why market myself as anything else?</p>
<p>You should do the same.</p>
<p>You&#8217;ll be happier. Your clients will be happier. And, <a href="http://youtu.be/VRuXjFnbfeA">you&#8217;ll make more money in web design</a>!</p>
<h3>How to Figure Out What to Be Great At?</h3>
<p>Of course, you may not know what your core offer is, yet. That&#8217;s okay&#8230; it&#8217;s easy to figure out. Your core offer is at the nexus of vision, passion, and talent. That is, it&#8217;s the one or two things you have perspective on (vision), you&#8217;re super passionate about, and you&#8217;re really good at doing.</p>
<p>If that&#8217;s not immediately clear to you&#8230;  then start taking on any project you can. You&#8217;ll figure out really quick what you HATE doing&#8230; and that&#8217;ll give you the clarity to see what you LOVE doing.</p>
<h3>Did This Suck?</h3>
<p>What did you think of this episode of John Morris TV? Did it suck? Want more? Let me know so I know what kind of content you want more. <strong>Leave a comment or like the video to let me know you liked it!</strong></p>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-make-more-money-in-web-design/">How to Make More Money in Web Design</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-make-more-money-in-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://traffic.libsyn.com/learnphp/tiyloc-001-final.mp3" length="43844630" type="audio/mpeg" />
			<itunes:keywords>how to make money from web design,how to make money in web design,how to make money with web design,make money with web design</itunes:keywords>
	<itunes:subtitle>http://youtu.be/VRuXjFnbfeA Listen to the Full 30-Minute Podcast Version - Are You Losing Money Trying to Be Everything to Everybody? I have 100% been guilty of this. When I first started marketing my services,</itunes:subtitle>
		<itunes:summary>Are you losing money trying to be everything to everybody? I have 100% been guilty of this. When I first started marketing my services, I had a shotgun blast of an offer hoping potential clients would pick up on something and get in touch with me.  The problem?  It reeks of desperation. And, clients don&#039;t want a desperate developer.  The more you try to be everything to everybody, the more you&#039;ll be nothing to nobody. Potential clients won&#039;t really know what your strengths are and what your core offer is.  And, they&#039;ll know you&#039;re not a master of everything.  So, instead of trying to be good at everything...</itunes:summary>
		<itunes:author>John Morris</itunes:author>
		<itunes:explicit>clean</itunes:explicit>
	</item>
		<item>
		<title>How Wealthy Developers REALLY Succeed</title>
		<link>http://www.johnmorrisonline.com/how-wealthy-developers-really-succeed/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-wealthy-developers-really-succeed</link>
		<comments>http://www.johnmorrisonline.com/how-wealthy-developers-really-succeed/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 20:08:21 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[career advice]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[successful coder]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1835</guid>
		<description><![CDATA[<p>You know, I&#8217;ve spent a lot of time teaching coders technical skills. How to upload files using PHP, how to create website templates, how to hack, twist and mold WordPress to your will, and so on. In fact, the entire site over at LearnPHP.co is about exactly this when it comes to PHP. I have [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-wealthy-developers-really-succeed/">How Wealthy Developers REALLY Succeed</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/04/zuck-e1365106179375.jpg" width="240" />
		</p><p>You know, I&#8217;ve spent a lot of time teaching coders technical skills. How to upload files using PHP, how to create website templates, how to hack, twist and mold WordPress to your will, and so on.</p>
<p>In fact, the <a href="http://learnphp.co">entire site over at LearnPHP.co</a> is about exactly this when it comes to PHP. I have an entire category on this site called <a href="http://www.johnmorrisonline.com/category/code-snippets/">Code Snippets</a> where I do exactly that. All of my YouTube videos do the exact same thing.</p>
<p>But, to be honest, I&#8217;ve never really talked much about what it REALLY takes to be successful as a developer. Because, while all that technical mumbo-jumbo is cool&#8230; none of it REALLY matters.</p>
<p>Yes, you need to know how to do those things&#8230; but those things aren&#8217;t what MATTER most when it comes to determining the successful from the unsuccessful. Any monkey can learn to code.</p>
<p>And, there&#8217;s 1000s of coders out there who can do all those &#8220;cool&#8221; things who struggle to get by day after day. People &#8220;who can code&#8221; are a dime a dozen.</p>
<p>What&#8217;s rare is a &#8220;Coder&#8221;. An artist. Someone who has a point of view about what/how/why they code. Someone who&#8217;s so passionate about what they do they&#8217;ll not just tell you no but &#8220;hell no&#8221; when you ask them to do something that they feel violates their art.</p>
<p>So&#8230;</p>
<p>You WANT to be one of these coders. Because you&#8217;ll make more money. Because you&#8217;ll be more appreciated. Because you&#8217;ll be happier.</p>
<p>What do you need to do to get there? Here&#8217;s some things I&#8217;ve picked up from the successful coders (and artists in general) I&#8217;ve been around&#8230; things I try to integrate into my work:</p>
<h3>Be a Picky Bitch</h3>
<p>This is my slang way of saying &#8220;have a point of view&#8221;. I see so many coders who don&#8217;t really care about the code they write. Their standard for their code is &#8220;it works&#8221;. They&#8217;ll bend to the will of any client no matter how asinine the request is.</p>
<p>The successful coders I know don&#8217;t do this. Meeting them&#8230; you might even think, &#8220;Man, that guy/girl is a whiny picky bitch&#8221;.</p>
<p>Yep. They have a point of view and own it. But, most good artists do.</p>
<p>My guess is if you happen to be around when Michelangelo was painting the Sistine Chapel and told him to use red instead of blue&#8230; you&#8217;d have been thrown out in a fiery rage.</p>
<p>Why? Because he, and only he, knew what his art was. He knew what his perspective was and he was going to express it his way regardless of what you might think of it.</p>
<p>All the successful coders I know are this way. Hell, all the successful anybodys I know are this way.</p>
<p>My boss, <a href="http://stu.me">Stu McLaren</a>, is this way. I don&#8217;t know how many times I&#8217;ve been working on a project with him and at some point told my wife, &#8220;Man, he&#8217;s a picky bitch&#8221;. <img src='http://www.johnmorrisonline.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>But, you know what&#8230; he&#8217;s almost always right. And, the stuff he does works. Because, he has a point of view based on years of practical experience and he&#8217;s willing to stand up for it.</p>
<p>And, in the long run&#8230; I appreciate it. I wouldn&#8217;t want to work with anyone else.</p>
<p>So, don&#8217;t be afraid of being a picky bitch. Be proud of it. Own it. Because, it&#8217;s based on your point of view&#8230; your art. And, in the long run, people will appreciate you for it.</p>
<h3>Be a Megamind</h3>
<p>For coders specifically, I believe the single most important skill you can ever develop is the ability to mentally abstract. I believe that how well you can mentally abstract is inextricably linked to how good your applications will be.</p>
<p>For your applications to get better, you have to get better at abstraction.</p>
<p>If you think about, ultimately that&#8217;s what coding is. You&#8217;re taking a specific instance of something and abstracting it out into functional code that will work across instances. The bigger your application becomes (i.e. the more it &#8220;does&#8221;) the more abstraction is required.</p>
<p>All the successful coders I know are wizards at this. They have this uncanny ability to simultaneously hold the full scope of their applications in their mind and focus on the fine details of any individual part.</p>
<p>The best example I have of what it&#8217;s like is a mind-map. If you&#8217;ve ever done any mind-mapping, you&#8217;ll know the power of it is in the ability to get a large-scope view of an entire idea while simultaneously having the fine details of any particular part available at a moment&#8217;s notice.</p>
<p>This is what good coders can do.</p>
<p>Of course, the big question is &#8220;how do you get better at it&#8221;. The answer is you code. You try building bigger and bigger applications and have the ability to keep going when you look back on old code and want to puke.</p>
<p>You&#8217;ll never really be completely happy with your code&#8230; ever. Especially old code. But, to others, it will seem elegant. It&#8217;s kind of like an artist who&#8217;s never fully satisfied with a particular painting (that&#8217;s why he/she keeps painting)&#8230; but to others, the painting is gorgeous.</p>
<p>You just have to keep coding and pushing yourself&#8230; and you&#8217;ll necessarily get better at abstracting.</p>
<h3>Be Like a Dog on a Bone</h3>
<p>That is, be tenacious. As a coder, you have to have a dogged persistence with details. You have to care about every last minute detail. For you, &#8220;good enough&#8221; can never be good enough.</p>
<p>All the successful coders I know are bloodhounds when it comes to details. They iterate over and over and over their code. They labor to make sure every character is where they think it should be at that time.</p>
<p>That&#8217;s not to say that they&#8217;re perfectionists that never ship. On the contrary. Good coders ship early and often&#8230; before they&#8217;re ready. But, they&#8217;re never done. You&#8217;ll find them up late at night working through a 10-line block of code to make sure it&#8217;s perfect.</p>
<p>And, once it is&#8230; they&#8217;ll move onto the next 10 lines.</p>
<p>Of course, a lot of that passion comes from having a point of view. When you have a point of view, you know exactly how you want something to look and function&#8230; and you won&#8217;t rest until it looks and functions how you want.</p>
<p>And, once it does&#8230;  you&#8217;ll find ways to make it better.</p>
<p>This is the kind of tenacious attitude all good coders I know have.</p>
<p>You just can&#8217;t be afraid to be a little OCD. Don&#8217;t worry. You&#8217;re not weird. We&#8217;re all that way. If you can&#8217;t sleep in the middle of the night, because a certain piece of code you want to fix is driving you nuts&#8230; you&#8217;re on the right track.</p>
<p>At the end of the day, this is the kind of tenacity and passion your clients will appreciate.</p>
<h3>What Else?</h3>
<p>These are a few of the biggest pieces of the puzzle I&#8217;ve identified&#8230; but by no means is this list exhaustive. I plan to add to it as I see fit. But, what characteristics have you seen in successful coders? How are they different from the coders you see struggle? How have you tried to implement those skills in your coding?</p>
<p>Share your thoughts in the comments below.</p>
<p>(photo by <a href="http://www.flickr.com/photos/prospere/">Ludovic Toinel</a>)</p>
<p>The post <a href="http://www.johnmorrisonline.com/how-wealthy-developers-really-succeed/">How Wealthy Developers REALLY Succeed</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-wealthy-developers-really-succeed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How NOT to Hire a Freelance Developer</title>
		<link>http://www.johnmorrisonline.com/how-not-to-hire-a-freelance-developer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-not-to-hire-a-freelance-developer</link>
		<comments>http://www.johnmorrisonline.com/how-not-to-hire-a-freelance-developer/#comments</comments>
		<pubDate>Tue, 02 Apr 2013 17:50:35 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[developer job postings]]></category>
		<category><![CDATA[submit job posting]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1822</guid>
		<description><![CDATA[<p>I&#8217;ve seen a rash of really bad job postings on Elance lately and I thought I&#8217;d step in to offer a little (ahem) constructive criticism. Here&#8217;s the thing. Bad job postings are bad for everybody, because they lead to unclear expectations. Developers hate it because we have no idea how to bid these kinds of [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-not-to-hire-a-freelance-developer/">How NOT to Hire a Freelance Developer</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/04/hire-me-graphic.jpg" width="240" />
		</p><p>I&#8217;ve seen a rash of really bad job postings on Elance lately and I thought I&#8217;d step in to offer a little (ahem) constructive criticism.</p>
<p>Here&#8217;s the thing. Bad job postings are bad for everybody, because they lead to unclear expectations. Developers hate it because we have no idea how to bid these kinds of jobs&#8230; and the job posters hate it because they always end up paying more and getting less.</p>
<p>Now, certainly there&#8217;s something to be said for how a developer should submit their proposal back; however, 1) I can&#8217;t see how other developers do it, so I have no case studies and 2) it&#8217;s hard to critique the proposal if the job posting itself is jacked.</p>
<p>So, here&#8217;s a list of things NOT to do:</p>
<h3>1. DON&#8217;T Be Ultra-Concise</h3>
<p>I&#8217;ve literally seen listings like this:</p>
<blockquote><p>I need a custom WordPress theme.</p></blockquote>
<p>Then, the job will be listed as a fixed price job and the budget will be &#8220;not sure&#8221;.</p>
<p>As the developer, there&#8217;s almost nothing I can do with this. Yes, I can submit a proposal without a price and ask all those questions, but here&#8217;s the rub for you the business owner:</p>
<p><a href="http://johnmorrisonline.com">A good developer</a> won&#8217;t.</p>
<p>Good developers (the kind you want) aren&#8217;t desperate. They have plenty of work and generally only look through job postings every couple weeks or so when other projects are finishing up.</p>
<p>And, they&#8217;re picky. They won&#8217;t take just any client. And, they&#8217;ve been around the block enough to have developed a sort of &#8220;radar&#8221; about what projects to avoid.</p>
<p>And, this is the kind of project they&#8217;ll pass right over.</p>
<p>What this kind of job posting does is attract more desperate developers&#8230; developers who will take just about any job. Developers who haven&#8217;t worked on enough projects to know when to walk away.</p>
<p>In a nutshell, NOT the kind of developer you want.</p>
<p>Instead, take a few minutes (or hours) and really think through your project. Flesh out the details. Know what you want. If you can, develop mock-ups of exactly how you want it to look and function.</p>
<p>You&#8217;ll attract better developers and you&#8217;ll get better proposals and you&#8217;ll know right away which developers paid attention and which ones didn&#8217;t. And, your chances of landing a quality developer are much better.</p>
<h3>2. DON&#8217;T Be Incomplete</h3>
<p>Here&#8217;s a perfect example of how to be incomplete:</p>
<blockquote><p>This is a high level description and does note reflect the final description. Some more features will be added. Your bid should reflect the total price for the entire project considering these requirements represent 70% of the total requirements.</p></blockquote>
<p>The big problem with this is it was posted as fixed price job. If it was a posting for an hourly job, it&#8217;d make more sense, because the details could be fleshed out and they&#8217;d be billed at the hourly rate.</p>
<p>But, for a fixed price job?</p>
<p>I&#8217;m not sure how you can expect someone to bid your job accurately when you&#8217;ve only given them a vague description&#8230; and it&#8217;s not even the WHOLE description. Details matter when bidding a job like this.</p>
<p>It&#8217;s hard enough for a developer to estimate how long a job will take them&#8230; even with a full, detailed description. A proposal like this will typically get two types of proposals:</p>
<ol>
<li><strong>Overbids</strong>. Developers who at least recognize that the scope of this project will most likely increase pretty dramatically and they will bid accordingly so as to not be accused of &#8220;jacking up their prices&#8221; later.</li>
<li><strong>Underbids</strong>. Desperate developers who just want the job and who will bid it low to win. But, once it comes time to actually build out the project and they see how much they have to do and how little they&#8217;re getting&#8230; are very likely to abandon the project.</li>
</ol>
<p>Neither is accurate and both will lead to turmoil down the road.</p>
<p>Instead do one of two things:</p>
<ol>
<li>Either, flesh out the details of the project before-hand and post a full description including mock-ups, if possible.</li>
<li>Or, post it as a hourly rate job and be willing to pay the developer for non-development time&#8230; that is, time helping you flesh out the details.</li>
</ol>
<p>Personally, I specifically avoid fixed price jobs with incomplete descriptions because it&#8217;s the perfect breeding ground for massive scope creep&#8230; and generally it&#8217;s the developer that takes the heat when timelines and budgets get blown.</p>
<p>So, to attract good developers&#8230; be complete.</p>
<h3>3. DON&#8217;T Be a Douche</h3>
<p>I see postings all the time with some sort of harsh language in them like:</p>
<blockquote><p>Note: Don&#8217;t be lazy and actually read this posting before submitting a proposal.</p></blockquote>
<p>Or something along those lines.</p>
<p>Here&#8217;s a hint for you&#8230;</p>
<p>The people who don&#8217;t read the postings&#8230; don&#8217;t read the postings. Whether because they&#8217;re using some sort of software to auto-submit or they&#8217;re copying and pasting their proposals&#8230; whatever the method&#8230; they&#8217;re NOT reading them.</p>
<p>Which means they&#8217;re NOT reading your note about not reading the posting.</p>
<p>On the other hand, the developers who DO actually read the job descriptions see that note and are immediately turned off. Again, good developers have developed a kind of &#8220;radar&#8221; about these things and they&#8217;re constantly looking for cues as to what type of person they&#8217;d be working with.</p>
<p>And, this is a major red flag. It screams snarky and good developers will move on.</p>
<p>Again, you&#8217;ll end up with desperate developers who need the money&#8230; and who are more likely to abandon you later.</p>
<p>Instead, just do what you&#8217;re doing anyway without actually feeling the need to state it. That is, immediately ignore the proposals that obviously did not read your job posting. It&#8217;ll be pretty easy to spot. Just ignore them and move on.</p>
<p>Because, you&#8217;re GOING to get them whether you put that note there or not. Sad but true.</p>
<p>And, that way you don&#8217;t send any red flags to the really good developers&#8230; the ones you want.</p>
<h3>Who&#8217;s Advice Should You Take?</h3>
<p>Finally, I want to talk a little bit about this whole business of giving advice on how to submit job postings. I see a lot of marketers offering advice on how to submit your postings on sites like Elance and oDesk.</p>
<p>That&#8217;s cool. I&#8217;m sure it&#8217;s valuable to see how they do it.</p>
<p>But, BE careful. A lot of the advice I see&#8230; from the developer&#8217;s perspective&#8230; is&#8230; well let&#8217;s just say &#8220;not quite accurate&#8221;.</p>
<p>Here&#8217;s my favorite I see a lot of marketers teaching:</p>
<blockquote><p>This job should be easy for someone who knows what they&#8217;re doing.</p></blockquote>
<p>I see marketers teaching that you should put this at the bottom of every job posting.</p>
<p>Look, I get what you&#8217;re trying to do&#8230; but we&#8217;re not dumb. A good developer sees right through this. Insulting my talent to try and get a lower price won&#8217;t work. I&#8217;m going to bid the job what I think it deserves regardless of how easy you happen to think it is.</p>
<p>Because, frankly, I know you don&#8217;t actually have a clue how easy something is or is not. If you did, you&#8217;d just write it up yourself.</p>
<p>More probably, a good developer will just move on&#8230; because we&#8217;re picky. And, you can choose from all the leftover, desperate and  unseasoned developers who are probably going to make your life miserable.</p>
<p>Have fun with that.</p>
<p>But, at the end of the day&#8230; we really do want to help you. We love watching your project come to life, seeing how excited you get, and watching as you launch and start bringing in those first dollars, and so on.</p>
<p>It&#8217;s a great experience that we get to re-live project after project.</p>
<p>It&#8217;s just those first few encounters. They set the tone for the entire relationship&#8230; and, if you heed the advice above when crafting your job postings, you&#8217;re much more likely to attract quality developers who will actually bring your project to fruition.</p>
<p>And, that&#8217;s good for everybody.</p>
<p>The post <a href="http://www.johnmorrisonline.com/how-not-to-hire-a-freelance-developer/">How NOT to Hire a Freelance Developer</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-not-to-hire-a-freelance-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Monetize Your Content in 2014</title>
		<link>http://www.johnmorrisonline.com/how-to-monetize-your-content-in-2014/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-monetize-your-content-in-2014</link>
		<comments>http://www.johnmorrisonline.com/how-to-monetize-your-content-in-2014/#comments</comments>
		<pubDate>Wed, 27 Mar 2013 16:43:24 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[content monetization]]></category>
		<category><![CDATA[wishlist member]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1636</guid>
		<description><![CDATA[<p>What will the future of content monetization look like? Are we forever stuck with an ad-based, privacy-encroaching business model (ala Facebook)? Does the failure of NewsCorp&#8217;s &#8220;The Daily&#8221; mean fee-based content is dead? What is the trend and how can you profit? These are the questions I want to answer in this article. I&#8217;ve been [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-monetize-your-content-in-2014/">How to Monetize Your Content in 2014</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/03/money-book-e1364402564536.jpg" width="240" />
		</p><p><strong>What will the future of content monetization look like?</strong> Are we forever stuck with an ad-based, privacy-encroaching business model (ala Facebook)? Does the failure of NewsCorp&#8217;s &#8220;The Daily&#8221; mean fee-based content is dead? What is the trend and how can you profit? These are the questions I want to answer in this article.</p>
<p>I&#8217;ve been thinking about content monetization a LOT lately. Not because I&#8217;m weird, but because that&#8217;s what the company I work for (<a href="http://wishlistproducts.com">WishList Products</a>) does&#8230; at least in my eyes.</p>
<p>Right now, we call ourselves a membership site plugin, but let&#8217;s be real&#8230; our software does a lot more than pure membership site functionality.</p>
<p>To me, a &#8220;pure&#8221; membership site is one with a recurring fee that publishes ongoing content. <a href="http://insider.wishlistproducts.com">WishList Insider</a> is a membership site.</p>
<p>And, this is what <a href="http://member.wishlistproducts.com">WishList Member</a> was originally built around&#8230; and something it does VERY well. But, it&#8217;s not all it does.</p>
<p>For example, WishList Member lets you set up products that can be purchased with a one-time fee&#8230; e.g. I charge a one-time fee of $19.99 for lifetime access to my <a href="http://learnphp.co">PHP5 Decoded Program at LearnPHP.co</a>.</p>
<p>Nothing about that says &#8220;membership site&#8221;&#8230; not in &#8220;pure&#8221; terms.</p>
<p>Or, how about the Pay-Per-Post functionality in WishList Member? Paying a one-time fee for access to a single post. Again, nothing about that says &#8220;membership site&#8221; to me.</p>
<p>What it DOES say (read: scream) to me is: &#8220;Content Monetization&#8221;.</p>
<p>All of these things, including a pure membership site, are ways of monetizing content.</p>
<h3>But, who cares? It&#8217;s just semantics, right?</h3>
<p>I don&#8217;t think so. You see, the web is in a state of trying to figure out content monetization right now. The traditional media models that worked in print, radio, TV, etc&#8230; don&#8217;t work as well online. And, frankly, I think the current model is broken.</p>
<p>Think I&#8217;m kidding? Consider that News Corp spent <a href="http://en.wikipedia.org/wiki/The_Daily_(News_Corporation)">10s of millions of dollars testing a new method of Content Monetization</a> (news, in this case).</p>
<p>They created the first iPad only subscription-based news service called &#8220;The Daily&#8221;.</p>
<p>And, after a couple years of losing 30M annually, they finally shut it down.</p>
<p>Now, why would such a large news and content company spend that much money testing a new model if the current ones were working great?</p>
<p>Remember, NewsCorp is the company that owns massive news and entertainment companies like HarperCollins, the New York Post, the Wall Street Journal, GQ, Vogue, all the FOX variations, and more. And, they are the world&#8217;s second largest &#8220;media&#8221; group in terms of revenue.</p>
<p>So, again, why would they risk millions of dollars testing a new content monetization model?</p>
<p>I think it&#8217;s because they see the writing on the wall. As I said before, I think the most popular content monetization model is broken and unsustainable over the long-term.</p>
<h3>What is that model and why is it broken?</h3>
<p>It&#8217;s the advertising model. You get a bunch of people to visit the pages on your website and advertisers pay you to run their ads on those pages.</p>
<p>Most big websites charge per impression (pageview) not per click&#8230; so, the more people you get to visitor your site the more money you make.</p>
<p>Seems perfect in theory.</p>
<p>You can focus on writing high quality content on a regular basis which your readers love&#8230; and you continually build your traffic over time and allow advertisers to gain exposure with your audience which they love&#8230; and you make a steady income without having to &#8220;sell&#8221; anything&#8230; which you love.</p>
<p>Win-win-win. Everybody&#8217;s happy.</p>
<p>Except it never works that way in reality. Instead what happens is you become beholden to your &#8220;sponsors&#8221; (people paying you to advertise on your site)&#8230; and all they care about is exposure. They want pageviews.</p>
<p>You want to keep your sponsors happy and keep the money coming in so you start to focus more on how to generate pageviews&#8230; and you quickly realize it doesn&#8217;t matter if people actually read your content&#8230; only that they VIEW it.</p>
<p>You get paid for the impression whether someone actually reads your article (views your video) or not. And, this has dire consequences.</p>
<p>You end up spending more time writing the headline for your article than you do the article itself.</p>
<p>You could care less about the accuracy of your article as long as it is something that will generate controversy&#8230; and thus pageviews.</p>
<p>In the end&#8230; instead of peddling wholesome fruits and veggies to your readers&#8230; you sell them crack&#8230; and could care less how the rest of the world is affected as long as you get yours.</p>
<p>You don&#8217;t need to look far to see this actually happening. Look at any of the major news sources out there and you&#8217;ll see it&#8217;s all about drama.</p>
<p>You&#8217;ll see cleverly crafted headlines designed to generate the most dramatic response&#8230; coupled with articles that have little to no substance or, in many cases, completely refute the article&#8217;s headline.</p>
<p>It&#8217;s a &#8220;click-culture&#8221; designed to get clicks&#8230; not inform readers. And, it&#8217;s driven by the business model that&#8217;s used to monetize that content.</p>
<h3>But again, who cares?</h3>
<p>There&#8217;s a moral argument to be made here, but that&#8217;s not MY argument. Mine isn&#8217;t that you should care because it&#8217;s wrong and we need to do something about it (although, we DO)&#8230; my argument is that it&#8217;s NOT sustainable. It&#8217;s going to fall apart.</p>
<p>Why?</p>
<p>To use our analogy&#8230; if you feed an addict enough crack, they&#8217;ll eventually die or clean themselves up.</p>
<p>People will (and already have) figure out what&#8217;s going on and there will be backlash. Need proof?</p>
<p>Easy. Just ask the next 10 people you meet what their opinion of the news media in the U.S. is. Unless you&#8217;re at some sort of conference for journalists, you&#8217;re going to get negative reviews from the majority of those 10. In many cases, &#8220;passionately&#8221; negative.</p>
<p>As it stands now, most people don&#8217;t read the news from a particular news site (CNN, HuffPo, Washington Post, Wall Street Journal, FOX, etc) because they LOVE that news source and believe it&#8217;s honest, informative journalism&#8230; they do it because the headline is so enticing they can&#8217;t resist clicking through.</p>
<p>This is going to change.</p>
<p>We&#8217;ve already seen the rise of alternative media on the web&#8230; media that focuses more on real journalism and honest reporting.</p>
<p>This is part of the backlash that&#8217;s happening. And, it&#8217;s going to continue. And, it&#8217;s going to mean big trouble for the big media conglomerates that don&#8217;t adapt.</p>
<p>And, THAT is why NewsCorp spent so much time and money testing a new business model. Because, they see the writing on the wall.</p>
<p>Now, you might say&#8230; &#8220;But, The Daily failed. Doesn&#8217;t that give credence to the idea that the current model is the only workable one?&#8221;</p>
<p>In a word&#8230; NO!</p>
<p>Just because someone executes poorly on an idea doesn&#8217;t make the idea bad. It means the way it was implemented is bad.</p>
<p>While The Daily was losing millions of dollars/month&#8230; there were thousands (probably hundreds of thousands) of smaller publishers making tens of thousands (in some cases hundreds of thousands) of dollars per month&#8230; those same months.</p>
<h3>And, for me, this is where things start to get more difficult.</h3>
<p>Because, I see WishList Member and technology like it as a potential solution to a much broader problem.</p>
<p>The web, as a whole, is trying to figure out content monetization&#8230; meanwhile, we have tens of thousands of customers who already have it figured out and are making money hand over fist SERVING their members.</p>
<p>And, they&#8217;re doing it with more than just the traditional &#8220;membership site&#8221; model of content monetization.</p>
<p>Yet, I agree with people like Gary Vaynerchuk who believe content is more and more becoming a commodity&#8230; meaning the days of selling $2,000 online courses are coming to an end.</p>
<p>So, on one hand, we have big media corporations &#8220;selling&#8221; garbage content for pennies/click&#8230; and, on the other, we have smaller, well-known individuals and companies selling higher quality content for 1000s of dollars.</p>
<p>I think we end up somewhere in the middle.</p>
<p>And, it&#8217;s where I think software like WishList Member has a tremendous opportunity for growth. I think, right now, we see ourselves as &#8220;membership site&#8221; software and our feature-set reflects that. The way we make decisions reflects that.</p>
<p><em>We&#8217;re doing what we&#8217;ve been taught to do.</em> Focusing on a specific niche and serving THAT niche. Not trying to be everything to everybody.</p>
<p>Yet, our customers tend to push us outside of that specific role (which is why we even have one-time fee and pay-per-post capabilities)&#8230; because our customers aren&#8217;t just building membership sites&#8230; they&#8217;re monetizing content&#8230; and they need the tools to do it.</p>
<p>So, what does a company like ours do?</p>
<p>There&#8217;s a Grand Canyon-size difference between seeing yourself as a &#8220;Membership Site Plugin&#8221; and a &#8220;Content Monetization&#8221; platform&#8230; a lot of which I talked about in <a title="Plugins, Platforms, and My Plan for World Domination" href="http://www.johnmorrisonline.com/plugins-platforms-and-my-plan-for-world-domination/">an earlier post about platforms vs plugins</a>.</p>
<p>And, the thing is&#8230; we&#8217;ve seen this before.</p>
<p>This is exactly the kind of disruption we saw in the music industry when Napster hit the scene.</p>
<p>And, it completely revolutionized how consumers saw themselves consuming music. Apple with iTunes was the first to really capitalize on this change and we saw how well that worked for them.</p>
<p>Who will be the first to really capitalize on the change happening with informational content? I don&#8217;t know, but I hope it&#8217;s us.</p>
<p>(photo by <a href="http://www.flickr.com/photos/bookgrl/">bookgrl</a>)</p>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-monetize-your-content-in-2014/">How to Monetize Your Content in 2014</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-monetize-your-content-in-2014/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Add a Login/Logout Link to WordPress Menus</title>
		<link>http://www.johnmorrisonline.com/how-to-add-a-loginlogout-link-to-wordpress-menus/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-add-a-loginlogout-link-to-wordpress-menus</link>
		<comments>http://www.johnmorrisonline.com/how-to-add-a-loginlogout-link-to-wordpress-menus/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 15:12:05 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[wp_nav_menu_objects]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1798</guid>
		<description><![CDATA[<p>In my last post, I talked about how to add a custom meta box with a custom link to WordPress navigation menus. Several times, I mentioned how I needed to add a specific class to that link for WishList Login 2.0, so that I could find that link later and do stuff with it. This [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-add-a-loginlogout-link-to-wordpress-menus/">How to Add a Login/Logout Link to WordPress Menus</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/03/snippet-hijack-menu.png" width="240" />
		</p><p>In my last post, I talked about <a title="How to Add a Fully Functional Custom Meta Box to WordPress Navigation Menus" href="http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/">how to add a custom meta box with a custom link to WordPress navigation menus</a>. Several times, I mentioned how I needed to add a specific class to that link for WishList Login 2.0, so that I could find that link later and do stuff with it.</p>
<p>This is the part where we &#8220;do stuff&#8221; with that link. Specifically, we&#8217;re going to hook into the navigation menu before it displays, find our link and change its display based on the current user&#8217;s login status. Here&#8217;s what it looks like:</p>
<p><a href="http://www.johnmorrisonline.com/wp-content/uploads/2013/03/snippet-hijack-menu.png"><img class="alignnone size-full wp-image-1801" alt="Adding a Login/Logout Link" src="http://www.johnmorrisonline.com/wp-content/uploads/2013/03/snippet-hijack-menu.png" width="1027" height="537" /></a></p>
<p>So, if they&#8217;re logged in, we&#8217;re going to change it to a logout link. If they&#8217;re not logged, then we&#8217;ll leave it alone. Here&#8217;s the code to do that:</p>
<script src="https://gist.github.com/5245822.js"></script><noscript><pre><code class="language- ">if ( !class_exists( 'HijackMe' ) ) {
    class HijackMe {
        public function hijack_menu($objects) {
    		/**
		 * If user isn't logged in, we return the link as normal
		 */
		if ( !is_user_logged_in() ) {
			return $objects;
		}
		/**
		 * If they are logged in, we search through the objects for items with the 
		 * class wl-login-pop and we change the text and url into a logout link
		 */
		foreach ( $objects as $k=&gt;$object ) {
			if ( in_array( 'wl-login-pop', $object-&gt;classes ) ) {
				$objects[$k]-&gt;title = 'Logout';
				$objects[$k]-&gt;url = wp_logout_url();
				$remove_key = array_search( 'wl-login-pop', $object-&gt;classes );
				unset($objects[$k]-&gt;classes[$remove_key]);
			}
		}

		return $objects;
	}
    }
}

$hijackme = new HijackMe;

add_filter('wp_nav_menu_objects', array($hijackme, 'hijack_menu'), 10, 2);</code></pre></noscript>
<p>Here&#8217;s a run-down of what&#8217;s happening:</p>
<ol>
<li>We&#8217;re hooking in using the <a href="http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/nav-menu-template.php#L206">wp_nav_menu_objects</a> filter.</li>
<li>If the user is logged out, we just return the link as it is since by default it&#8217;s a login link.</li>
<li>If the user is logged in, we then loop through the items and search the &#8220;classes&#8221; array element for our class.</li>
<li>If the class exists in an item object, then we alter the &#8220;title&#8221; and &#8220;url&#8221; of that link and we unset our target class from the object.</li>
<li>Then, we simply return the new objects array.</li>
</ol>
<p>There&#8217;s definitely some customization and abstraction you could do with this:</p>
<p><strong>1. Edit only the menu for a certain theme location.</strong> You&#8217;ll notice in the hook, I have 2 arguments being sent to the callback function, but I&#8217;m only actually using the first one. That&#8217;s to show you that there are actually 2 arguments available. The second one is the $args array which will contain information about that menu&#8230; including the theme location.</p>
<p>You would simply run a check on that array to see if the current theme location is the one you want to edit. This is especially important if you don&#8217;t want to touch widget menus at all&#8230; since, the Custom Menu widget uses the same back-end functionality as regular menus.</p>
<p>In our case, we wanted to hijack every instance of a link that contained our special class&#8230; even in a widget&#8230; so, we didn&#8217;t run any such check.</p>
<p><strong>2. Abstract the target class.</strong> In our function, the target class we search for is hard-coded. In this instance, it&#8217;s fine because there&#8217;s no reason to have an option to change that class. You may have a scenario where it does make sense to allow users to change that class. In this case, you&#8217;d want to abstract that out by creating an admin option. You could then use <a href="http://codex.wordpress.org/Function_Reference/get_option">get_option()</a> to retrieve the target class and alter your menu accordingly.</p>
<p>So, that&#8217;s it. It&#8217;s a pretty straight-forward way to hook in and alter navigation menus how you&#8217;d like. And, IMHO, a hell of a lot easier than dealing with <a href="http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/nav-menu-template.php#L228">wp_nav_menu_items()</a> and futzing with parsing HTML, and so on.</p>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-add-a-loginlogout-link-to-wordpress-menus/">How to Add a Login/Logout Link to WordPress Menus</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-add-a-loginlogout-link-to-wordpress-menus/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How to Add a Fully Functional Custom Meta Box to WordPress Navigation Menus</title>
		<link>http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus</link>
		<comments>http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 15:44:11 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1781</guid>
		<description><![CDATA[<p>When I created WishList Login 2.0, I wanted to an easy way for users to add a dynamic login/logout link to their navigation menus. As simple as it sounds, it&#8217;s not something you can do natively in WordPress and we can requests for this kind of thing all the time. In WishList Login 1.0, I [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/">How to Add a Fully Functional Custom Meta Box to WordPress Navigation Menus</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/03/snippet-add-meta-box-featured.png" width="240" />
		</p><p>When I created <a href="http://insider.wishlistproducts.com/wl-login-2-0/">WishList Login 2.0</a>, I wanted to an easy way for users to add a dynamic login/logout link to their navigation menus. As simple as it sounds, it&#8217;s not something you can do natively in WordPress and we can requests for this kind of thing all the time.</p>
<p>In WishList Login 1.0, I had added an entire admin interface in the plugin settings that had all the necessary options for creating the link, editing its text, setting its position, and so on.</p>
<p>Of course, this was <a href="http://codex.wordpress.org/Navigation_Menus">before WordPress added menus</a>, so I didn&#8217;t have much choice&#8230; but, now WITH WordPress&#8217; menus, it seemed silly to create a redundant interface&#8230; especially when the WordPress menus handled all the things need to added a menu link in a much clear way than my original interface did.</p>
<p>All that led me to figure out how to add my own meta box to the WordPress navigation menu interface with (important) the ability to add a custom link that contained certain parameters I needed in order to hijack the link&#8217;s display on the front-end.</p>
<p>Here&#8217;s what it looks like in the admin:</p>
<p><a class="fancybox" href="http://www.johnmorrisonline.com/wp-content/uploads/2013/03/snippet-add-meta-box.png"><img class="alignnone  wp-image-1782" alt="WordPress Custom Meta Box" src="http://www.johnmorrisonline.com/wp-content/uploads/2013/03/snippet-add-meta-box.png" width="711" height="342" /></a></p>
<p>Notice the CSS class. This was really the most important part because it&#8217;s what allows me to identify this link later and change it to a login link if the user is logged out and a logout link if the user is logged in.</p>
<p>Here&#8217;s a look at the code to make this happen:</p>
<script src="https://gist.github.com/5221875.js"></script><noscript><pre><code class="language-php php">if ( !class_exists('JMO_Custom_Nav')) {
    class JMO_Custom_Nav {
        public function add_nav_menu_meta_boxes() {
        	add_meta_box(
        		'wl_login_nav_link',
        		__('WishList Login'),
        		array( $this, 'nav_menu_link'),
        		'nav-menus',
        		'side',
        		'low'
        	);
        }
        
        public function nav_menu_link() {?&gt;
        	&lt;div id=&quot;posttype-wl-login&quot; class=&quot;posttypediv&quot;&gt;
        		&lt;div id=&quot;tabs-panel-wishlist-login&quot; class=&quot;tabs-panel tabs-panel-active&quot;&gt;
        			&lt;ul id =&quot;wishlist-login-checklist&quot; class=&quot;categorychecklist form-no-clear&quot;&gt;
        				&lt;li&gt;
        					&lt;label class=&quot;menu-item-title&quot;&gt;
        						&lt;input type=&quot;checkbox&quot; class=&quot;menu-item-checkbox&quot; name=&quot;menu-item[-1][menu-item-object-id]&quot; value=&quot;-1&quot;&gt; Login/Logout Link
        					&lt;/label&gt;
        					&lt;input type=&quot;hidden&quot; class=&quot;menu-item-type&quot; name=&quot;menu-item[-1][menu-item-type]&quot; value=&quot;custom&quot;&gt;
        					&lt;input type=&quot;hidden&quot; class=&quot;menu-item-title&quot; name=&quot;menu-item[-1][menu-item-title]&quot; value=&quot;Login&quot;&gt;
        					&lt;input type=&quot;hidden&quot; class=&quot;menu-item-url&quot; name=&quot;menu-item[-1][menu-item-url]&quot; value=&quot;&lt;?php bloginfo('wpurl'); ?&gt;/wp-login.php&quot;&gt;
        					&lt;input type=&quot;hidden&quot; class=&quot;menu-item-classes&quot; name=&quot;menu-item[-1][menu-item-classes]&quot; value=&quot;wl-login-pop&quot;&gt;
        				&lt;/li&gt;
        			&lt;/ul&gt;
        		&lt;/div&gt;
        		&lt;p class=&quot;button-controls&quot;&gt;
        			&lt;span class=&quot;list-controls&quot;&gt;
        				&lt;a href=&quot;/wordpress/wp-admin/nav-menus.php?page-tab=all&amp;amp;selectall=1#posttype-page&quot; class=&quot;select-all&quot;&gt;Select All&lt;/a&gt;
        			&lt;/span&gt;
        			&lt;span class=&quot;add-to-menu&quot;&gt;
        				&lt;input type=&quot;submit&quot; class=&quot;button-secondary submit-add-to-menu right&quot; value=&quot;Add to Menu&quot; name=&quot;add-post-type-menu-item&quot; id=&quot;submit-posttype-wl-login&quot;&gt;
        				&lt;span class=&quot;spinner&quot;&gt;&lt;/span&gt;
        			&lt;/span&gt;
        		&lt;/p&gt;
        	&lt;/div&gt;
        &lt;?php }
    }
}

$custom_nav = new JMO_Custom_Nav;

add_action('admin_init', array($custom_nav, 'add_nav_menu_meta_boxes'));</code></pre></noscript>
<p>Most of this is pretty straight-forward.</p>
<ol>
<li>You hook into WordPress using the &#8220;add_nav_menu_meta_boxes&#8221; hook.</li>
<li>You call <a href="http://codex.wordpress.org/Function_Reference/add_meta_box">add_meta_box()</a> in your callback function setting &#8220;nav-menus&#8221; as the $post_type parameter.</li>
<li>Finally, in your callback function for add_meta_box() you lay out your meta box HTML.</li>
</ol>
<p>It&#8217;s that last part that can get tricky in order to make the adding of your custom link item to the nav menu&#8230; so, we&#8217;ll look at this more in-depth.</p>
<p><strong>1. First, you need to make sure your HTML is set up correctly.</strong> The JavaScript that actually processes the adding of the link to the menu selects your link item in a specific way&#8230; so altering the HTML can break it. The above works. I&#8217;d recommend copying it and then just altering the small bits you need to.</p>
<p>Or, you can do what I did which is to copy the Category meta box native in WordPress and change what I needed.</p>
<p><strong>2. Next, you need to adjust th</strong><strong>e main container div ID and the submit button ID so they match.</strong> This is part of how the jQuery works. You need to change these so they are unique and you need to make them match.</p>
<p>In the example code, you&#8217;ll notice the name of the container div ID is &#8220;posttype-wl-login&#8221; and the name of the submit button ID is &#8220;submit-posttype-wl-login&#8221;. This is the kind of relationship these two items need to have.</p>
<p><strong>3. Finally, you&#8217;ll edit the inputs in the un-ordered list.</strong> These are the bare minimum I needed for everything to work. You can alter the values of these to what you&#8217;d like to display be default. You can also check other native meta boxes to see what inputs are available. The important one in our case was the &#8220;menu-item-classes&#8221;. This sets the CSS classes the link item will have by default and is what I used to hijack the menu later on.</p>
<p>And, that&#8217;s it. Once you have that all set up. Your users will be able to add your custom link item from your custom meta box to any of their menus and it&#8217;ll have the information pre-loaded in it that you may need later on when displaying menus.</p>
<p>Later, I&#8217;ll write up a tutorial on how to hijack menu items when you display the menus, so you can alter your custom link as you need.</p>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/">How to Add a Fully Functional Custom Meta Box to WordPress Navigation Menus</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Think Small</title>
		<link>http://www.johnmorrisonline.com/think-small/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=think-small</link>
		<comments>http://www.johnmorrisonline.com/think-small/#comments</comments>
		<pubDate>Fri, 01 Mar 2013 16:05:53 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[career advice]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1622</guid>
		<description><![CDATA[<p>What if I could tell you the secret making a major breakthrough in your work&#8230; in 2 words? How to stop spinning your wheels 1,000 miles an hour but getting nowhere? How to stop being overwhelmed with &#8220;everything you&#8217;ve gotta do&#8221; and start working on only the things that matter? You&#8217;re Thinking TOO Big! This [...]</p><p>The post <a href="http://www.johnmorrisonline.com/think-small/">Think Small</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/03/think-small.jpg" width="240" />
		</p><p>What if I could tell you the secret making a major breakthrough in your work&#8230; in 2 words? How to stop spinning your wheels 1,000 miles an hour but getting nowhere? How to stop being overwhelmed with &#8220;everything you&#8217;ve gotta do&#8221; and start working on only the things that matter?</p>
<p><span id="more-1622"></span></p>
<h3>You&#8217;re Thinking TOO Big!</h3>
<p>This is what causes you to over-commit to too many projects at once. This is what causes you to never be fully satisfied with what you happen to be doing at this moment. This is what causes you to always being focusing on the future instead of what&#8217;s in front of you right now.</p>
<p>You, my friend are a dreamer&#8230; and you&#8217;ve got to STOP thinking big.</p>
<h3>You Need to Focus</h3>
<p>As a dreamer, your biggest hurdle is focus. Your inability to focus on one thing at a time&#8230; on the minute (probably mundane) details of what&#8217;s right in front of you&#8230; is killing you and your progress.</p>
<p><em><strong>Let me describe the typical scenario&#8230;</strong></em></p>
<p>You&#8217;re working on some sort of problem or project. As you do, you start to see a better way of doing things. You see that this could be so much easier. Then, you start to imagine how solving this problem would affect others. How happy they&#8217;d be.</p>
<p>You start to look into the future and see the profound effect your solution could have. How many lives it could change. You see your solution growing and evolving&#8230; getting better and better. Helping more people. Solving more problems.</p>
<p>You&#8217;re pumped! You feel like you could take on the world!</p>
<p>And, before you know it, you&#8217;re staring at this mountain of &#8220;what could be&#8221;.</p>
<p>Then, the fear sets in.</p>
<p>What if I can&#8217;t pull this off? What if all these people start to rely on me? What if I can&#8217;t satisfy them? What will they say about me? My reputation will be ruined. I&#8217;ll disappoint so many people. I&#8217;ll be a failure.</p>
<p>And, before you know it, the small problem you were solving in the moment becomes this mountain of pain you can&#8217;t bear to face. And, instead of just doing the one small thing in front of you&#8230; you run from the mountain.</p>
<p>STOP IT!</p>
<h3>But &#8220;They&#8221; Always Say to Think Big?</h3>
<p><em>For you</em>, &#8220;they&#8221; are wrong. They being those always professing the standard &#8220;think big&#8221; advice. You are different. It&#8217;s not that they&#8217;re actually wrong&#8230; it&#8217;s that their advice doesn&#8217;t apply to you, because you ALREADY think big.</p>
<p>Huge. Humongous. Gargantuan.</p>
<p>There are two types of people in this world, in this regard&#8230; dreamers and doers. Their advice applies to doers (who think TOO small). You are a dreamer. It doesn&#8217;t apply. So stop listening to it.</p>
<h3>You Have to Discipline Yourself</h3>
<p>To a dreamer, the word &#8220;discipline&#8221; is the plague. But, it&#8217;s what you need to do, because the mess I just described can only be overcome through mental discipline. By training yourself to focus on what&#8217;s right in front of you.</p>
<p>It&#8217;s okay to dream big&#8230; it&#8217;s not like you could stop it if you wanted to.</p>
<p><strong>But, you have to realize that if you&#8217;re EVER going to actually realize one of your big dreams, you have to start focusing on the small, mundane tasks that need done right now!</strong></p>
<blockquote class="twitter-tweet" width="500"><p>If you’re EVER going to realize one of your dreams, you have to focus on the mundane tasks that need done right now! <a href="http://t.co/7HWSPkKbZi" title="http://wp.me/p1MVYs-qa">wp.me/p1MVYs-qa</a></p>
<p>&mdash; John Morris (@jpmorris) <a href="https://twitter.com/jpmorris/status/307523014524813312">March 1, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>As you can probably guess, I&#8217;m a dreamer myself and I&#8217;ve spent years battling this. I still battle it today. In fact, I&#8217;m battling it right now as I write this. But, through coding, I&#8217;ve also learned directly the death-trap that thinking too big can be.</p>
<p>I&#8217;ve watched grand visions that were like children to me fall flat and die&#8230; not because they weren&#8217;t great ideas&#8230; but 100% because I couldn&#8217;t focus in the moment and get shit done!</p>
<p>It&#8217;s painful, but it&#8217;s taught me that, as a dreamer, your biggest challenge isn&#8217;t thinking big enough&#8230; it&#8217;s getting too wrapped up and carried away in your vision and forgetting that you actually have to do stuff right now to make everything work.</p>
<p>You will feel like your short-changing yourself, at first. It will feel awkward and you&#8217;ll tell yourself that this can&#8217;t be right&#8230; that you&#8217;re limiting yourself. Ignore all that nonsense.</p>
<p>Because, one day, you&#8217;ll generate enough discipline and focus on one project that you actually get it done. And, suddenly, the original vision you had that you thought you had killed with discipline and focus&#8230; will spring to life.</p>
<p>But, this time not as an imaginary thought in your head&#8230; but as a real living thing right in front of you! And, you&#8217;ll realize that all the awkwardness and pain of being disciplined and focused was worth it in order to have this moment.</p>
<p>It&#8217;s entirely possible, but you can&#8217;t get around the need to focus&#8230;</p>
<p>So, stop thinking big and get to work!</p>
<h3>Are You a Dreamer?</h3>
<p>If so, share your experience with me. What challenges have you faced? What solutions have you developed? I&#8217;d love to chat about it. I don&#8217;t take comments here anymore (that&#8217;s part of my discipline process) but by all means hit me up on your favorite social media and let&#8217;s chat!</p>
<p>The post <a href="http://www.johnmorrisonline.com/think-small/">Think Small</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/think-small/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Create a Custom Loop in WordPress Using WP_Query</title>
		<link>http://www.johnmorrisonline.com/how-to-create-a-custom-loop-in-wordpress-using-wp_query/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-create-a-custom-loop-in-wordpress-using-wp_query</link>
		<comments>http://www.johnmorrisonline.com/how-to-create-a-custom-loop-in-wordpress-using-wp_query/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 14:07:57 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress custom loop]]></category>
		<category><![CDATA[wp_query]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1994</guid>
		<description><![CDATA[<p>In this tutorial, I&#8217;ll show you how to create a custom loop in WordPress using WP_Query. Plus, I&#8217;ll explain why you want to use this instead of query_posts when creating custom loops like these.</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-create-a-custom-loop-in-wordpress-using-wp_query/">How to Create a Custom Loop in WordPress Using WP_Query</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/04/how-to-custom-loop-wp-query.png" width="240" />
		</p><p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='600' height='368' src='http://www.youtube.com/embed/dGd0Ag_ylcU?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>In this tutorial, I&#8217;ll show you how to create a custom loop in WordPress using WP_Query. Plus, I&#8217;ll explain why you want to use this instead of query_posts when creating custom loops like these.</p>
<script src="https://gist.github.com/5481789.js"></script><noscript><pre><code class="language-php php">&lt;?php
/*** Custom Loop ***/
function demo_loop() {
  $args = array(
		'cat' =&gt; 3,
		'posts_per_page' =&gt; 1
	);

	$demo_posts = new WP_Query($args);

	if ( $demo_posts-&gt;have_posts() ) { 
		while( $demo_posts-&gt;have_posts() ) { 
			$demo_posts-&gt;the_post();
			
			$output .= '&lt;li&gt;&lt;a href=&quot;' . get_permalink() . '&quot;&gt;' . get_the_title() . '&lt;/a&gt;&lt;/li&gt;';
		}
	}
	
	return $output;
}

add_shortcode( 'demo_custom_loop', 'demo_loop' );</code></pre></noscript>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-create-a-custom-loop-in-wordpress-using-wp_query/">How to Create a Custom Loop in WordPress Using WP_Query</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-create-a-custom-loop-in-wordpress-using-wp_query/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Create an ics Import File Using PHP</title>
		<link>http://www.johnmorrisonline.com/how-to-create-an-ics-import-file-using-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-create-an-ics-import-file-using-php</link>
		<comments>http://www.johnmorrisonline.com/how-to-create-an-ics-import-file-using-php/#comments</comments>
		<pubDate>Mon, 22 Oct 2012 14:14:49 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ical]]></category>
		<category><![CDATA[ics]]></category>
		<category><![CDATA[ics import file]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=2002</guid>
		<description><![CDATA[<p>In this video, you&#8217;ll learn how to create an .ics import file using PHP. This allows you to dynamically generate the .ics file based on stored event data. Users can then download the file and import the event information in their calendar of choice&#8230; Outlook, Thunderbird(Lightning), Apple Calendar, etc.</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-create-an-ics-import-file-using-php/">How to Create an ics Import File Using PHP</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/04/ics-import-file.png" width="240" />
		</p><p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='600' height='368' src='http://www.youtube.com/embed/Mg8EFkZllQU?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>In this video, you&#8217;ll learn how to create an .ics import file <a href="http://learnphp.co">using PHP</a>. This allows you to dynamically generate the .ics file based on stored event data. Users can then download the file and import the event information in their calendar of choice&#8230; Outlook, Thunderbird(Lightning), Apple Calendar, etc.</p>
<script src="https://gist.github.com/5481857.js"></script><noscript><pre><code class="language-php php">&lt;?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
/**
 * Get the event ID 
 */
$event_id = @$_GET['event_id'];
/**
 * If no event ID or event_id is not an integer, do nothing 
 */
if ( !$event_id || !is_numeric( $event_id ) ) {
    die();
}
/**
 * Event information 
 */
//$event = get_event($event_id);
$event = array(
    'event_name' =&gt; 'Test Event',
    'event_description' =&gt; 'This is a test event. This is the description.',
    'event_start' =&gt; time(),
    'event_end' =&gt; time() + 60*60*2,
    'event_venue' =&gt; array(
        'venue_name' =&gt; 'Test Venue',
        'venue_address' =&gt; '123 Test Drive',
        'venue_address_two' =&gt; 'Suite 555',
        'venue_city' =&gt; 'Some City',
        'venue_state' =&gt; 'Iowa',
        'venue_postal_code' =&gt; '12345'
    )
);
$name = $event['event_name'];
$venue = $event['event_venue'];
$location = $venue['venue_name'] . ', ' . $venue['venue_address'] . ', ' . $venue['venue_address_two'] . ', ' . $venue['venue_city'] . ', ' . $venue['venue_state'] . ' ' . $venue['venue_postal_code']; 
$start = date('Ymd', $event['event_start']+18000) . 'T' . date('His', $event['event_start']+18000) . 'Z';
$end = date('Ymd', $event['event_end']+18000) . 'T' . date('His', $event['event_end']+18000) . 'Z';
$description = $event['event_description'];
$slug = strtolower(str_replace(array(' ', &quot;'&quot;, '.'), array('_', '', ''), $name));
header(&quot;Content-Type: text/Calendar; charset=utf-8&quot;);
header(&quot;Content-Disposition: inline; filename={$slug}.ics&quot;);
echo &quot;BEGIN:VCALENDAR\n&quot;;
echo &quot;VERSION:2.0\n&quot;;
echo &quot;PRODID:-//LearnPHP.co//NONSGML {$name}//EN\n&quot;;
echo &quot;METHOD:REQUEST\n&quot;; // requied by Outlook
echo &quot;BEGIN:VEVENT\n&quot;;
echo &quot;UID:&quot;.date('Ymd').'T'.date('His').&quot;-&quot;.rand().&quot;-learnphp.co\n&quot;; // required by Outlok
echo &quot;DTSTAMP:&quot;.date('Ymd').'T'.date('His').&quot;\n&quot;; // required by Outlook
echo &quot;DTSTART:{$start}\n&quot;; 
echo &quot;DTEND:{$end}\n&quot;;
echo &quot;LOCATION:{$location}\n&quot;;
echo &quot;SUMMARY:{$name}\n&quot;;
echo &quot;DESCRIPTION: {$description}\n&quot;;
echo &quot;END:VEVENT\n&quot;;
echo &quot;END:VCALENDAR\n&quot;;</code></pre></noscript>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-create-an-ics-import-file-using-php/">How to Create an ics Import File Using PHP</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-create-an-ics-import-file-using-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugins, Platforms, and My Plan for World Domination</title>
		<link>http://www.johnmorrisonline.com/plugins-platforms-and-my-plan-for-world-domination/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=plugins-platforms-and-my-plan-for-world-domination</link>
		<comments>http://www.johnmorrisonline.com/plugins-platforms-and-my-plan-for-world-domination/#comments</comments>
		<pubDate>Thu, 09 Aug 2012 18:23:55 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1496</guid>
		<description><![CDATA[<p>I&#8217;ve been thinking a lot lately about WishList Member and its future. Specifically, how the web as a whole is evolving and what role WLM will play in that web. Looking into my magic &#8220;crystal ball&#8221;, I&#8217;m seeing some exciting things ahead if we take the right approach and develop the right mindset for the [...]</p><p>The post <a href="http://www.johnmorrisonline.com/plugins-platforms-and-my-plan-for-world-domination/">Plugins, Platforms, and My Plan for World Domination</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2012/08/plugins-platforms-and-my-plan-for-world-domination.jpg" width="240" />
		</p><p>I&#8217;ve been thinking <strong>a lot</strong> lately about <a href="http://member.wishlistproducts.com">WishList Member</a> and its future. Specifically, how the web as a whole is evolving and what role WLM will play in that web. Looking into my <em>magic</em> &#8220;crystal ball&#8221;, I&#8217;m seeing some exciting things ahead if we take the right approach and develop the right mindset for the changes that are occurring with the greater internet.</p>
<p>Of course, none of this makes sense unless you know my <strong>Secret Plan for World Domination </strong>(add in ominous tone). I don&#8217;t mind sharing it, because while it&#8217;s simple to understand&#8230; it&#8217;s pretty damn difficult to implement. So, knowing it is like 1/100 of the battle.</p>
<p>However, I&#8217;ve personally never seen this put together in one grand strategy before&#8230; and, if you&#8217;ve never seen it, it can be quite enlightening (if I do say so myself). So, here it is&#8230;</p>
<p><span id="more-1496"></span></p>
<h3>My Not-So-Secret (Anymore) Plan for World Domination</h3>
<p>This is derived from looking at big companies and watching what they&#8217;re doing. This isn&#8217;t something I&#8217;ve actually ever used before (although, I am trying like hell to convince <a href="http://stu.me">Stu</a> and <a href="http://tracychilders.com">Tracy</a> to) so there&#8217;s no guarantees you&#8217;ll actually dominate the world (in fact, your computer may explode just attempting this&#8230; you&#8217;ve been warned).</p>
<p>However, if you watch what companies like Apple, Facebook, and Google are doing&#8230; you start to see a pattern. I&#8217;m not sure they even know explicitly that this is what they&#8217;re doing, but it seems pretty clear to me. So, what is it?</p>
<div>
<ol>
<li>Build a platform
<ol>
<li>solves a major want/need of market</li>
</ol>
</li>
<li>Help developers develop on platform
<ol>
<li>provide an API</li>
<li>developer training</li>
<li>developer certification</li>
</ol>
</li>
<li>Build a marketplace
<ol>
<li>sell products built by developers using API</li>
</ol>
</li>
<li>Build a central server
<ol>
<li>access and store data about all users of all products</li>
<li>analytics to learn more about market</li>
<li>use to build interest graph based on activity (ala Amazon)</li>
</ol>
</li>
<li>Build a community/social network
<ol>
<li>use to build social graph (ala Facebook)</li>
</ol>
</li>
</ol>
</div>
<p>Now, let me explain this in more detail.</p>
<h3>Build Your iPhone</h3>
<p>You start by building some sort of application/device/etc that <em>in and of itself</em> solves a major market need. The iOS devices (iPhone, iPod, iPad) are a good example. Each one revolutionized its industry when it came out and solved major needs and wants in the market.</p>
<p>BUT&#8230;</p>
<p>This &#8220;thing&#8221; you build has to be <strong>more</strong> than just a product. At least, it has to be set up so it CAN be more than just a product. I have no idea if the first iPhones came with apps and an App Store&#8230; or, if it was always Apple&#8217;s <em>intent</em> to create those things.</p>
<p>But, they figured out very quickly that their devices would win long-term by having apps and an App Store, they adjusted, and they turned their device into a platform that other developers could build on top of.</p>
<p>Likewise, the first version of WordPress didn&#8217;t have interchangeable themes and plugins. But, its developers figured out very quickly that having these things was necessary and they re-wrote WordPress&#8230; changing it from an application into a platform.</p>
<p>You have to build something people want in and of itself&#8230; but build it in a way that it can be developed on top of and made better.</p>
<h3>Make It Extensible</h3>
<p>I know I&#8217;m biased, because I am one&#8230; but, I firmly believe that &#8220;other developers&#8221; are the key to the success of any kind of application/device/etc. You can have the greatest team in the world&#8230; and you&#8217;ll still <span style="text-decoration: underline;">never</span> be able to replicate what can be created by a thriving community of developers building applications on top of your platform.</p>
<p>So, you need some sort of API for developers to work with. With Apple and Android, you can create apps that access &#8220;platform&#8221; services using different sets of APIs. WordPress has APIs for hooking into its platform, etc.</p>
<p>And, that&#8217;s a big part of the battle. A robust API that give developers easy access to as much of your platform as you reasonably can. But, you also have to get developers to <em>want</em> to develop on YOUR platform.</p>
<p>For example, mobile developers can choose from iOS, Android, Blackberry, Windows, and Palm (there for a little while). But, many choose iOS. Why?</p>
<p>Well, the App Store is a big part of it and we&#8217;ll talk about that in a minute. But, the platform API also has to be easy to use, well documented, supported, and constantly developed.</p>
<p>When Apple launched its app store, Blackberry also had apps available at roughly the same time. Not to mention, Blackberry&#8217;s target market was mainly business professionals who presumably had the extra money to spend on apps.</p>
<p>Why didn&#8217;t developers flock to Blackberry like they did Apple? Well, Blackberry was closed source, not very well documented, and had little support. Trying to build a Blackberry app was like trying to climb Mt. Everest&#8230; so nobody did it.</p>
<p>So, it&#8217;s not just about building an API and forgetting about it. It&#8217;s about building it, constantly upgrading it, documenting it, providing training, and generally treating your API like your first-born child.</p>
<p>Because, when you do and you&#8217;re able to get developers to WANT to develop on your platform, <strong>you&#8217;ve essentially just hired 1000s of skilled developers to build out your platform for free</strong> (in fact, they&#8217;ll even pay you for the privilege of using your platform).</p>
<p>More on that now&#8230;</p>
<h3>Build Your App Store</h3>
<p>The bottom line is that developers are usually good at developing and not very good at marketing and sales. We can build killer apps, but typically have no clue how to sell them.</p>
<p>So, <strong>you</strong> do it for them.</p>
<p>We talked about making an API that&#8217;s developer-friendly in order to attract developers&#8230; but, there&#8217;s another major piece and that is money. As a general rule, developers will go where they can make the most money&#8230; as long as they don&#8217;t have crawl over hot coals laced with shards of glass to get there.</p>
<p>Take Apple and Android, for example. I think it&#8217;s safe to say at this point that purely looking at the platform itself&#8230; Android is a better platform. It&#8217;s more powerful, more open, easier to use, more device-flexible, etc.</p>
<p>But, Apple still dominates the market. Why? Because their marketplace is better. Why is their marketplace better? Because more developers develop on iOS&#8230; AND, developers who develop on <em>both</em> still typically care more about iOS. Why? Because they make more money on iOS. Why? Because more people use iOS and are more willing to pay money for the apps on iOS. Why? Because the apps are better. Why are the apps better? Because more developers develop on iOS and&#8230;</p>
<p>You get the point.</p>
<p>It&#8217;s a self-feeding loop that when done right will make your platform THE platform for both users and developers.</p>
<p>Getting these first three steps right can put you on the level of Apple and Google. In fact, doing just these three things can put you head and shoulders above your competition in virtually any technology market outside of mobile devices.</p>
<p>BUT&#8230; it&#8217;s also where a lot of companies stop, which I think is a mistake. And, it&#8217;s also what, IMHO, Google is doing right that will enable them to beat out both Apple and Facebook&#8230; because you need to do more.</p>
<h3>Integrating It All</h3>
<p>At this point, if you&#8217;ve done everything right&#8230; you&#8217;ll have a kick-ass platform with a robust API, used by 1000s of developers to build add-on applications that they sell in your lucrative marketplace. And, your competition will be treading water.</p>
<p>BUT&#8230; they&#8217;ll eventually figure it out and start to compete again&#8230; or be replaced by someone who will.</p>
<p>Apple essentially destroyed every mobile device maker there for a few years&#8230; and still probably is to a point. BUT, its competitors adapted. Google built Android, phone manufacturers switched almost wholesale to Android, and now it&#8217;s become a viable competitor. Plus, Microsoft as slow and stubborn as they are will probably figure it out at some point, too, and become a viable competitor.</p>
<p>In order to continue to win, you need to develop something that is difficult for your competitors to replicate. And, something where having a 2 or 3-year advantage means a whole hell of a lot.</p>
<p>To me, that &#8220;thing&#8221; is consumer intelligence. Using your platform to gather massive amounts of intelligence on your customers, developing systems to analyze that intelligence, and develop strategies for better serving your market while increasing profits.</p>
<p>And, this is where the idea of &#8220;Central Server&#8221; comes in. The CS is kinda like the &#8220;SkyNet&#8221; of your business. It&#8217;s a place that all your devices, websites&#8230; really any point at which you make customer contact&#8230; those places can connect to the CS and pass it critical customer data. That data is analyzed (programmatically) and used in some way by the rest of your systems.</p>
<p>Amazon is good at this.</p>
<p>One of the first things you do when you visit Amazon.com is create an account. This uniquely identifies you with Amazon and from that point forward, any time you visit the site while logged in, they track virtually everything.</p>
<p>It&#8217;s not just purchase history, although that is a big part. The pages you visit, what you click on, how long you stay, etc. And, all that data is stored, analyzed, and used to create the &#8220;context&#8221; of your shopping experience.</p>
<p>It&#8217;s not just about the &#8220;Your Amazon&#8221; or &#8220;Recommendations&#8221; page. Your entire experience is based on what they know about you and your interests. Products are recommended to you based on past purchases and visits combined with product intelligence&#8230; i.e. what products usually sell together&#8230; and so on.</p>
<p>The result? You rarely buy one thing on Amazon. The recommendations are so tailored and so specific that once you decide to buy one product, you typically end up buying 2 or 3&#8230; or more. And, of course, Amazon profits.</p>
<p>So, the simple things to do here are:</p>
<ol>
<li>Start collecting data from all locations in one central spot</li>
<li>Analyze that data to build an interest profile for each user</li>
<li>Tie the analyses to business objectives and create functionality to make it happen</li>
</ol>
<p>Of course, an interest profile only answers one part of the question of influence&#8230; that is, WHAT influences an individual&#8217;s buying decisions. Another major piece of the puzzle is WHO influences those decisions&#8230; and that&#8217;s where Facebook gets it right&#8230;</p>
<h3>Your Social Graph</h3>
<p>The final piece of the puzzle is to build some sort of community for your customers. It&#8217;s interesting, because to most people it&#8217;s such a foreign idea that it&#8217;s easy to brush off. But, make no mistake, you can build a community around virtually any product (platform) and the companies who do gain a serious advantage over their competitors&#8230; not only in consumer intelligence, but also in customer loyalty and satisfaction.</p>
<p><a href="http://training.wishlistproducts.com">Companies like Threadless and Mini have build used communities to generate real bottom-line profit increases.</a></p>
<p>For example, Threadless uses its community to develop its t-shirt designs. Artists can submit new designs, community members vote on their favorite ones, and the winners become new Threadless t-shirts. Not only does it help build comraderie and a sense of belonging, but it&#8217;s also a great way to identify hot products and sell them to eager customers.</p>
<p>Of course, HOW you run your community and what you use it for is more of an art than a science&#8230; but, one of the key components is understanding member relationships. That is, understanding how they&#8217;re connected to one another and who influence who, in what areas, and how.</p>
<p>Facebook is the leader in this area. It analyzes metrics like stated interests, likes, shares, comments, etc. of both a user and his/her friends to unravel the mystery of &#8220;what is this user interested in and who influences them the most&#8221;.</p>
<p>It can be tricky to figure out exactly how to weave this into your community, but some common features include:</p>
<ol>
<li>The ability to explicitly state what interests you</li>
<li>The ability to casually &#8220;like&#8221; brands, products, companies, people, objects, etc</li>
<li>The ability to form a connection with other members</li>
<li>The ability to like, comment, and share other people&#8217;s content</li>
</ol>
<p>These kinds of things help you narrow down a user&#8217;s interests and the people who influence him/her the most. Of course, there&#8217;s probably a ton of others, but the idea is to reach a point where you&#8217;re not only recommending additional products to your customers, ala Amazon, but you&#8217;re also providing input from friends (ideally, the ones who influence them the most) who&#8217;ve also bought/used that product and their experience with it.</p>
<p>Doing so, creates a literal vortex of influence that becomes very difficult for your customer to say no to.</p>
<p>And, that&#8230; in a really big nutshell&#8230; is my plan for world dominance. Which, of course, leads me back to WishList Member and where I think this company should be headed.</p>
<h3>Platforms Not Plugins</h3>
<p>Now having read all of that, you&#8217;ll get what I mean when I say that I believe WordPress developers should take on the mindset of developing platforms NOT plugins.</p>
<p>A plugin is an application that adds functionality to WordPress. A platform is an application that opens up a whole new world of benefits to the end user&#8230; an application that becomes the basis for entire new subsets of functionality.</p>
<p>Platforms are ultimately what wins.</p>
<p>And, things start to change when you take on a platform mindset. Speaking specifically of WishList Member, I see a number of things that would change with this new mindset:</p>
<p><strong>1. Membership Site vs Content Protection</strong>. WLM was originally created and still largely is a &#8220;plugin that turns your WordPress blog into a membership site&#8221;.</p>
<p>And, in the beginning (I know, I was one of its first customers)&#8230; that&#8217;s largely all it did. It let you protect content and register new members using a recurring payment system. Simple.</p>
<p>And, in some ways, it was the simplicity that allowed it to flourish. It wasn&#8217;t trying to be everything to everybody. It did what it did and it did it well. That&#8217;s the reason I chose it.</p>
<p>But, with time and an increased user base, the scope of what WLM is being asked to do has expanded. For example, consider these features:</p>
<ol>
<li>One-time payments</li>
<li>Sequential upgrade</li>
<li>Pay-Per-Post</li>
</ol>
<p>The features are clearly designed for something outside of the traditional membership, recurring revenue model. They were added because customers wanted the ability to offer modular courses and a pay-per-post model. There&#8217;s little about either of these that is the pure form of &#8220;membership site&#8221;.</p>
<p>Thus, what we&#8217;ve slowly been moving closer and closer to is &#8220;Content Protection&#8221;. And, this is a much larger idea&#8230; one the web is still figuring out.</p>
<p>Content protection is simply a &#8220;paywall&#8221; between your content and your customer that allows you to monetize &#8220;access&#8221;. Traditional content monetization models are being challenged and replaced and people and companies are finding new ways to monetize content. Content protection is really the technical side of content monetization.</p>
<p>So, the first shift I think we need to make to become more of a platform is away from &#8220;membership site&#8221; toward &#8220;monetizing content&#8221;&#8230; of which memberships sites are one subset.</p>
<p>This shift would bring with an increased set of features and possibly a change in the way payments are handled (although, not necessarily). I also think it would change the way we handle our interface.</p>
<p>Currently, WLM is largely self-contained&#8230; meaning, there&#8217;s a sidebar menu in the back-end of WordPress&#8230; you click on that and that&#8217;s where you find the majority of the interface for WLM.</p>
<p>To me, becoming more of a platform would involve embedding more of WLM into WordPress. Some possibilities might include:</p>
<ol>
<li>Creating a sub-tab called &#8220;Content Protection&#8221; in the existing Settings menu in WordPress where many of the existing WLM settings are housed.</li>
<li>Integrating WLM&#8217;s &#8220;Manage Members&#8221; tab in WordPress&#8217; existing Users menu.</li>
<li>Integrating more of the &#8220;Manage Content&#8221; tab into the existing interfaces for Post, Pages, Custom Post Types, Categories, etc.</li>
</ol>
<p>Of course, there&#8217;s probably a lot more, but that&#8217;s a few examples. What this does, though, is make the interface more user-friendly. Instead of taking you off to a separate part of the admin, you get access to &#8220;Content Protection&#8221; features right where you&#8217;re already working.</p>
<p>There will probably always be some need for a separate admin screen for some things, but IMHO much of the interface in WLM could be integrated into existing WordPress functionality.</p>
<p><strong>2. Admin Hooks</strong></p>
<p>WLM has a pretty robust API for managing its core functionality. But, it has little in terms of ways to hook into the admin interface and alter it. When you talk about extensibility, extending the core functionality is one thing, but you also need to be able to extend the admin interface.</p>
<p>Making the shift to &#8220;platform&#8221; would pretty much require that WLM add in hooks for altering the admin interface&#8230; allowing developers to add in and save new fields, alter layout, and so on.</p>
<p>In fact, if WLM were to follow WordPress&#8217; example, it would use its own hooking system for most of its admin interface&#8230; meaning very little of the default interface would &#8220;hard-coded&#8221; and instead would be hooked in. This would provide maximum flexibility while ensuring the reliability of the hooking system.</p>
<p><strong>3. Developer Training</strong></p>
<p>This is one area that I see would undergo a complete overhaul. As I mentioned, developers are the key to this kind of strategy and ensuring they&#8217;re properly trained is paramount.</p>
<p>Currently, we offer a Certification course, but in a lot of ways it&#8217;s just a product. Don&#8217;t get me wrong, it&#8217;s a damn good one&#8230; but it&#8217;s not deeply tied to the overall strategy&#8230; at least, not as much as it could be.</p>
<p>This is more of a mindset shift really&#8230; away from &#8220;creating a product&#8221; toward &#8220;investing the future of the company&#8221;&#8230; because the better trained developers are, the more the entire self-feeding loop&#8230; feeds itself.</p>
<p>This is one of particular interest to me since I am a developer. As a company, we need to make it as absolutely simple as possible to use our API, document it doggedly, and provide in-depth training on how to use it.</p>
<p>Of course, there&#8217;s probably a lot more ways in which WLM would change, but those are a few examples.</p>
<h3>Going Forward</h3>
<p>Frankly, I have no idea if WLM will follow this path. I don&#8217;t even know if it for sure is the right path&#8230; but I have a hunch. Facebook makes the claim that it is &#8220;creating the piping&#8221; for the internet&#8230; the walled garden so to speak. In a lot of ways, I see WordPress doing something similar&#8230; albeit in a less &#8220;managed&#8221; fashion.</p>
<p>And, WordPress serves as good example of this kind of shift&#8230; what was once just &#8220;blogging software&#8221; that has now become one of the primary &#8220;website builder&#8221; applications on the web. I think that shift for WLM is embracing the idea of becoming a true platform and providing &#8220;content protection&#8221; in its myriad forms&#8230; and not just a &#8220;membership site&#8221;.</p>
<p>Doing so, I believe will enable it to intelligently move out of the smaller niche of membership sites into the broader internet as a platform for all types of websites looking to monetize content. And, the current question of &#8220;how to monetize content on the web&#8221; is one WLM could provide a powerful solution for.</p>
<p><strong>What About You?</strong></p>
<p>Are you ready to implement the &#8220;secret plan&#8221;? Thinks it&#8217;s crazy? How would your company/product change? Hit me up on your social site of choice and let me know what you think!</p>
<p>&nbsp;</p>
<p>The post <a href="http://www.johnmorrisonline.com/plugins-platforms-and-my-plan-for-world-domination/">Plugins, Platforms, and My Plan for World Domination</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/plugins-platforms-and-my-plan-for-world-domination/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to Destroy Your Business Legacy&#8230; And Why You Shouldn&#8217;t</title>
		<link>http://www.johnmorrisonline.com/how-to-destroy-your-business-legacy-and-why-you-shouldnt/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-destroy-your-business-legacy-and-why-you-shouldnt</link>
		<comments>http://www.johnmorrisonline.com/how-to-destroy-your-business-legacy-and-why-you-shouldnt/#comments</comments>
		<pubDate>Thu, 28 Jun 2012 11:12:46 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[business ethics]]></category>
		<category><![CDATA[ethical entrepreneurship]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1464</guid>
		<description><![CDATA[<p>Ethics in business today suck. Entrepreneurs are too focused on profit as the ultimate goal. Profit is NOT the ultimate goal. Business Is a Game In baseball, a power hitter is often measured by how many homeruns he hits. As fans, we idolize and adore good hitters. But, hitting homeruns isn&#8217;t his ultimate goal. It&#8217;s [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-destroy-your-business-legacy-and-why-you-shouldnt/">How to Destroy Your Business Legacy&#8230; And Why You Shouldn&#8217;t</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/how-to-destroy-your-business-legacy-and-why-you-shouldnt.jpg" width="240" />
		</p><p>Ethics in business today suck. Entrepreneurs are too focused on profit as the ultimate goal.</p>
<p><a href="http://www.virgin.com/richard-branson/blog/business-makes-a-profit-to-exist">Profit is NOT the ultimate goal</a>.</p>
<h3>Business Is a Game</h3>
<p>In baseball, a power hitter is often measured by how many homeruns he hits. As fans, we idolize and adore good hitters.</p>
<p>But, hitting homeruns isn&#8217;t his ultimate goal.</p>
<p>It&#8217;s a means to an end. The end is winning games&#8230; and winning enough games to be called a champion.</p>
<p>Often times, his legacy depends on whether or not he won a championship&#8230; <em>regardless of how many homeruns he hits.</em></p>
<p>And, if he cheats to win, <a href="http://bleacherreport.com/articles/1017856-mlb-hall-of-fame-voters-will-soon-have-to-face-barry-bonds-and-roger-clemens">his legacy will be forever tainted</a>&#8230; <em>regardless of how many homeruns he hits.</em></p>
<p><span id="more-1464"></span></p>
<h3>If You Cheat, You Lose</h3>
<p>Business is the same. It is a game&#8230; one with explicit rules and an implicit code among its players. The ultimate goal is to create value.</p>
<p>Your legacy depends on winning the game&#8230; <em>regardless of how much money you make.</em></p>
<p>If you break the rules or the code, <a href="http://dealbook.nytimes.com/2012/06/25/the-litigation-that-haunts-goldman-sachs/">your legacy will be forever tainted</a>&#8230; <em>regardless of how much money you make.</em></p>
<p>Profit is simply ONE measuring stick used to determine how successful you&#8217;ve been at creating value.</p>
<p>It&#8217;s based on the assumption that the more value you create, more people will pay you, and people will pay you more&#8230; for the things you create.</p>
<p>But, if you shortcut the process to garner the profit without creating the value&#8230; you lose. And, your legacy will forever be tainted. No mulligans.</p>
<h3>Who Cares</h3>
<p>What? You don&#8217;t care, you say. Your big house, fancy car, and expensive toys will get you through.</p>
<p>You&#8217;re lying.</p>
<p>Go ahead. Try it. But, when you do be sure to look yourself in the mirror every morning. <a href="http://blogs.wsj.com/wealth/2011/03/09/dont-envy-the-super-rich-they-are-miserable/">Tell me what you see when you do</a>.</p>
<p>I cheated once. I chose profit over value. And, while I broke no laws, I broke the code. And, I couldn&#8217;t look at myself in the mirror and be proud. Never again.</p>
<h3>Honor the Code</h3>
<p>You should play by the rules and honor the code. Compete aggressively, but fairly. Focus on creating value.</p>
<ol>
<li>Because the rewards are real and permanent</li>
<li>Because your legacy will be untainted</li>
<li>Because you will be proud of yourself</li>
<li>Because you usually make more money anyway</li>
<li>Because others will rightfully adore you for it</li>
</ol>
<p>Ethics in business today suck. And, it&#8217;s time for those of us who believe in ethical entrepreneurship to step up and enforce the code. Consider this a warning shot.</p>
<p>photo by <a href="http://www.flickr.com/photos/kapkap/">PaulSteinJC</a></p>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-destroy-your-business-legacy-and-why-you-shouldnt/">How to Destroy Your Business Legacy&#8230; And Why You Shouldn&#8217;t</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-destroy-your-business-legacy-and-why-you-shouldnt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>7 Reasons Why You Should Start Using the Official Facebook for WordPress Plugin (and 3 Reasons Why You Shouldn&#8217;t)</title>
		<link>http://www.johnmorrisonline.com/7-reasons-why-you-should-start-using-the-official-facebook-for-wordpress-plugin-and-3-reasons-why-you-shouldnt/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=7-reasons-why-you-should-start-using-the-official-facebook-for-wordpress-plugin-and-3-reasons-why-you-shouldnt</link>
		<comments>http://www.johnmorrisonline.com/7-reasons-why-you-should-start-using-the-official-facebook-for-wordpress-plugin-and-3-reasons-why-you-shouldnt/#comments</comments>
		<pubDate>Wed, 13 Jun 2012 16:33:13 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[wordpress plugins]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook for wordpress plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1443</guid>
		<description><![CDATA[<p>Facebook just launched its official WordPress plugin which allows you to &#8220;easily&#8221; integrate Facebook features into your WordPress website. I&#8217;ve spent the last day or so playing around with it and here&#8217;s my initial thoughts. Why You Should Install Facebook for WordPress 1. Easy connection to your Facebook account. If you&#8217;ve ever setup one of [...]</p><p>The post <a href="http://www.johnmorrisonline.com/7-reasons-why-you-should-start-using-the-official-facebook-for-wordpress-plugin-and-3-reasons-why-you-shouldnt/">7 Reasons Why You Should Start Using the Official Facebook for WordPress Plugin (and 3 Reasons Why You Shouldn&#8217;t)</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/7-reasons-why-you-should-start-using-the-official-facebook-for-wordpress-plugin-and-3-reasons-why-you-shouldnt.png" width="240" />
		</p><p>Facebook just launched its <a href="http://wordpress.org/extend/plugins/facebook/">official WordPress plugin</a> which allows you to &#8220;easily&#8221; integrate Facebook features into your WordPress website.</p>
<p>I&#8217;ve spent the last day or so playing around with it and here&#8217;s my initial thoughts.</p>
<h3><strong>Why You Should Install Facebook for WordPress</strong></h3>
<p><strong>1. Easy connection to your Facebook account</strong>. If you&#8217;ve ever setup one of the many Facebook plugins for WordPress, you&#8217;ll know that you typically have to create a <a href="https://developers.facebook.com/apps">new application in Facebook</a>, grab the API Key and API Secret from your app, and paste them into your plugin.</p>
<p>This plugin is no different, except you only need to do it once and it gives you access to several of Facebook&#8217;s social plugins. Having an integrated Facebook plugin like this keeps you from having to create multiple Facebook applications for a bunch of different plugins or a bunch of <a href="http://www.learnphp.co">PHP coding</a>&#8230; which is very handy.</p>
<p><span id="more-1443"></span></p>
<p><a href="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/1-easy-integration.png"><img class="alignnone  wp-image-1451" title="Easy Integration With Facebook" alt="" src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/1-easy-integration.png" width="540" height="228" /></a></p>
<p><strong>2. Facebook Pages integration</strong>. Out of the box, the Facebook for WordPress plugin integrates with your <a href="https://www.facebook.com/pages/">Facebook pages</a>. This is huge, because, chances are, you use a Facebook page, not your personal profile, in connection with your blog.</p>
<p>Having pages integration out of the box lets you automatically post new posts to your Facebook page, integrate a <a href="https://developers.facebook.com/docs/reference/plugins/like-box/">Facebook Page Like Box</a>, and more. And, it&#8217;s all built into the plugin without the need to install a bunch of plugins or create a bunch of apps (see #1).</p>
<p><a href="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/2-page-integration.png"><img class="alignnone size-full wp-image-1454" title="2-page-integration" alt="" src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/2-page-integration.png" width="540" height="211" /></a></p>
<p><strong>3. Easy Like, Send, and Subscribe buttons</strong>. Once you&#8217;ve integrated the plugin with a Facebook application, you can easily add <a href="https://developers.facebook.com/docs/reference/plugins/like/">Like</a>, <a href="https://developers.facebook.com/docs/reference/plugins/send">Send</a>, and <a href="https://developers.facebook.com/docs/reference/plugins/subscribe">Subscribe</a> buttons to your blog posts. Simply check a few boxes, select where you&#8217;d like them to show up, and you&#8217;re all set.</p>
<p>The plugin also includes sidebar widgets for adding Like, Send, and Subscribe buttons making adding these items to your sidebar a snap.</p>
<p><img class="alignnone size-full wp-image-1455" title="3-like-send-subscribe" alt="" src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/3-like-send-subscribe.png" width="540" height="306" /></p>
<p><strong>4. Simple Facebook Comments</strong>. If you&#8217;d prefer to have <a href="https://developers.facebook.com/docs/reference/plugins/comments">Facebook-only comments</a> on your website (a good anti-spam strategy), this plugins makes it a breeze. Much like the Like, Send, and Subscribe buttons, adding Facebook comments to your posts is just a few clicks and you&#8217;re all set.</p>
<p><a href="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/4-comments.png"><img class="alignnone  wp-image-1456" title="4-comments" alt="" src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/4-comments.png" width="540" height="178" /></a></p>
<p><strong>5. Powerful content recommendations</strong>. The Facebook for WordPress plugin also includes a <a href="https://developers.facebook.com/docs/reference/plugins/recommendations">Recommendations</a> Bar feature you can easily add to your website. The plugin will recommend content across your site to your readers.</p>
<p>The powerful part is the fact that these recommendations are based on all the social and interest related data Facebook knows about each individual reader and the content of your site&#8230; making these recommendations highly targeted for each visitor to your site.</p>
<p><img class="alignnone size-full wp-image-1457" title="5-recommendations" alt="" src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/5-recommendations.png" width="540" height="196" /></p>
<p><strong>6. User and Page tagging in posts</strong>. Probably, one of the coolest parts of this plugin is the ability to tag your Facebook friends and Pages when you posts new posts. Tagged users get the post in their timeline, as well as, their name added to the post on Facebook.</p>
<p>This is a powerful way to draw specific people into your posts and jump-start the comments, likes, shares, etc.</p>
<p><a href="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/6-tag-stuff.png"><img class="alignnone size-full wp-image-1458" title="6-tag-stuff" alt="" src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/6-tag-stuff.png" width="540" height="486" /></a></p>
<p><strong>7. Official</strong>. As I mentioned, this is the &#8220;Official&#8221; WordPress plugin from Facebook. That means it&#8217;s reasonable to expect that, as the plugin is developed, it will contain all the latest features and options available from the Facebook API.</p>
<p>Probably even more important is the fact that if Facebook changes something&#8230; they&#8217;ll now have to change the plugin to match&#8230; instead of you having to wait for a third-party developer to make the changes. So, the upgrade/change process should now be much smoother.</p>
<h3><strong>Why You Should NOT Install Facebook for WordPress</strong></h3>
<p><strong>1. Deep integration is a bit confusing</strong>. In order to access some of the more advanced features of the plugin, you have to walk-through a deeper Open Graph integration. Unfortunately, that process is a bit cumbersome.</p>
<p>You have to go into the Open Graph, create a new action type, create a new object type, create a new WordPress post for that action and object type, request and approval from Facebook, etc.</p>
<p>Yeah, it&#8217;s long and if you&#8217;ve never messed with the Facebook Open Graph, it can be confusing. Hopefully, in the future that gets easier, but for now it&#8217;s a bit messy.</p>
<p><strong>2. Facebook takeover</strong>. Depending on how much of the functionality you use from the Facebook for WordPress plugin, it becomes real easy for Facebook to take over your site. If you&#8217;re social strategy is primarily Facebook-focused, that could be a good thing; however, if you want to integrate with  other social platforms (Google+, Twitter, LinkedIn), it will probably be difficult to get a smooth integration while using this plugin.</p>
<p><strong>3. Facebook is the root of all evil</strong>. Insert your favorite &#8220;Facebook is evil and attempting to hijack the web&#8221; <a href="http://www.5min.com/Video/Facebook-What-They-Really-Have-On-You-6650212">conspiracy theory</a> here. :)</p>
<h3><strong>Have You Tried the Facebook for WordPress plugin?</strong></h3>
<p>Have you tried the plugin? What&#8217;d you think of it? What tips or suggestions do you have?</p>
<p>The post <a href="http://www.johnmorrisonline.com/7-reasons-why-you-should-start-using-the-official-facebook-for-wordpress-plugin-and-3-reasons-why-you-shouldnt/">7 Reasons Why You Should Start Using the Official Facebook for WordPress Plugin (and 3 Reasons Why You Shouldn&#8217;t)</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/7-reasons-why-you-should-start-using-the-official-facebook-for-wordpress-plugin-and-3-reasons-why-you-shouldnt/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>This Is MY Blog!</title>
		<link>http://www.johnmorrisonline.com/this-is-my-blog/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=this-is-my-blog</link>
		<comments>http://www.johnmorrisonline.com/this-is-my-blog/#comments</comments>
		<pubDate>Wed, 13 Jun 2012 02:04:08 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1367</guid>
		<description><![CDATA[<p>If you&#8217;ve been following this site for a bit, you&#8217;ll know it&#8217;s been primarily about coding and contained all my various coding tutorials and such. Well, that&#8217;s changed. I&#8217;ve officially moved all my coding tutorials over to http://www.learnphp.co and I&#8217;m taking this blog back as my personal blog. If you want the coding tutorials, head [...]</p><p>The post <a href="http://www.johnmorrisonline.com/this-is-my-blog/">This Is MY Blog!</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2012/06/this-is-my-blog1.jpg" width="240" />
		</p><p>If you&#8217;ve been following this site for a bit, you&#8217;ll know it&#8217;s been primarily about coding and contained all my various coding tutorials and such. Well, that&#8217;s changed.</p>
<p>I&#8217;ve officially moved all my <a href="http://www.learnphp.co">coding tutorials</a> over to http://www.learnphp.co and I&#8217;m taking this blog back as my personal blog. If you want the coding tutorials, head over there.</p>
<p>Here, I&#8217;ll be posting about pretty much whatever I want. You can follow me here if you&#8217;d like to keep in touch with me personally.</p>
<p>(photo by <a href="http://www.flickr.com/photos/a2gemma/">a2gemma</a>)</p>
<p>The post <a href="http://www.johnmorrisonline.com/this-is-my-blog/">This Is MY Blog!</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/this-is-my-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Sort Multidimensional Arrays Using PHP</title>
		<link>http://www.johnmorrisonline.com/how-to-sort-multidimensional-arrays-using-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-sort-multidimensional-arrays-using-php</link>
		<comments>http://www.johnmorrisonline.com/how-to-sort-multidimensional-arrays-using-php/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 14:35:02 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=2006</guid>
		<description><![CDATA[<p>In this video, you&#8217;ll learn how to sort multidimensional arrays in PHP. You&#8217;ll not only learn basic sorting using array_multisort(), but you&#8217;ll also see a more advanced custom function for sorting multidimensional arrays by a specific key. Multidimensional arrays can be one of the more confusing parts about learning PHP, but this video will help [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-sort-multidimensional-arrays-using-php/">How to Sort Multidimensional Arrays Using PHP</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2013/04/title-sort-multi-array.png" width="240" />
		</p><p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='600' height='368' src='http://www.youtube.com/embed/zBaHBmZLDxY?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>In this video, you&#8217;ll<strong> learn how to sort multidimensional arrays in PHP</strong>. You&#8217;ll not only learn basic sorting using array_multisort(), but you&#8217;ll also see a more advanced custom function for sorting multidimensional arrays by a specific key.</p>
<p>Multidimensional arrays can be one of the more confusing parts about <a title="Learn PHP" href="http://www.johnmorrisonline.com/category/php">learning PHP</a>, but this video will help you get your head around it and give you some tools for sorting your multidimensional arrays that are simple and straight-forward.</p>
<script src="https://gist.github.com/5481972.js"></script><noscript><pre><code class="language-php php">&lt;?php
$arr = 	array(
		array('name' =&gt; 'John', 'age' =&gt; 30, 'website' =&gt; 'http://learnphp.co'),
		array('name' =&gt; 'Joe', 'age' =&gt; 28, 'website' =&gt; 'http://johnmorrisonline.com'),
		array('name' =&gt; 'Amy', 'age' =&gt; 32, 'website' =&gt; 'http://amy.com'),
		array('name' =&gt; 'Alex', 'age' =&gt; 22, 'website' =&gt; 'http://thealex.com'),
		array('name' =&gt; 'Pat', 'age' =&gt; 40, 'website' =&gt; 'http://patsjourney.com'),
);
	
?&gt;

&lt;pre&gt;&lt;?php print_r($arr); ?&gt;&lt;/pre&gt;

&lt;?php
	array_multisort($arr);
?&gt;

&lt;pre&gt;&lt;?php print_r($arr); ?&gt;&lt;/pre&gt;

&lt;?php
	function val_sort($array,$key) {
	
	//Loop through and get the values of our specified key
	foreach($array as $k=&gt;$v) {
		$b[] = strtolower($v[$key]);
	}
	
	print_r($b);
	
	asort($b);
	
	echo '&lt;br /&gt;';
	print_r($b);
	
	foreach($b as $k=&gt;$v) {
		$c[] = $array[$k];
	}
	
	return $c;
}

$sorted = val_sort($arr, 'website');
?&gt;

&lt;pre&gt;&lt;?php print_r($sorted); ?&gt;&lt;/pre&gt;</code></pre></noscript>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-sort-multidimensional-arrays-using-php/">How to Sort Multidimensional Arrays Using PHP</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-sort-multidimensional-arrays-using-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Create an HTML Select Box From a MySQL Results Array Using PHP</title>
		<link>http://www.johnmorrisonline.com/how-to-create-an-html-select-box-from-a-mysql-results-array-using-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-create-an-html-select-box-from-a-mysql-results-array-using-php</link>
		<comments>http://www.johnmorrisonline.com/how-to-create-an-html-select-box-from-a-mysql-results-array-using-php/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 16:01:42 +0000</pubDate>
		<dc:creator>John Morris</dc:creator>
				<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.johnmorrisonline.com/?p=1888</guid>
		<description><![CDATA[<p>This is a question I get quite a bit, so I figured I&#8217;d write a post on it: How do I create an HTML select box with options from data in my database? Here&#8217;s how: The Query First, let&#8217;s look at our query. Yours might look something like this: That will select everything in our [...]</p><p>The post <a href="http://www.johnmorrisonline.com/how-to-create-an-html-select-box-from-a-mysql-results-array-using-php/">How to Create an HTML Select Box From a MySQL Results Array Using PHP</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.johnmorrisonline.com/wp-content/uploads/2011/08/default.png" width="240" />
		</p><p>This is a question I get quite a bit, so I figured I&#8217;d write a post on it:</p>
<p><em><strong>How do I create an HTML select box with options from data in my database?</strong></em></p>
<p>Here&#8217;s how:</p>
<h3>The Query</h3>
<p>First, let&#8217;s look at our query. Yours might look something like this:</p>
<script src="https://gist.github.com/5477371.js"></script><noscript><pre><code class="language- ">&lt;?php
     $sql = &quot;SELECT * FROM queried_table&quot;;
     $query = mysql_query($sql);
     while ( $results[] = mysql_fetch_object ( $query ) );
     array_pop ( $results );
?&gt;</code></pre></noscript>
<p>That will select everything in our table and loop it into an array of objects containing the results. Now, we can take that array and create a HTML select box with it.</p>
<h3>The HTML Select Box</h3>
<p>Now, that we have our array of objects from our database we can use it to populate an HTML select box dynamically with PHP. Here&#8217;s how that might look:</p>
<script src="https://gist.github.com/5477376.js"></script><noscript><pre><code class="language- ">&lt;select name=&quot;the_name&quot;&gt;
     &lt;?php foreach ( $results as $option ) : ?&gt;
          &lt;option value=&quot;&lt;?php echo $option-&gt;desired_value; ?&gt;&quot;&gt;&lt;?php echo $option-&gt;desired_label; ?&gt;&lt;/option&gt;
     &lt;?php endforeach; ?&gt;
&lt;/select&gt;</code></pre></noscript>
<p>That&#8217;s it. The code above will loop through the array creating a new option for each element in the array&#8230; and populating each option with the desired values from your database. Of course, this is just sample code, you&#8217;ll need to work with your database structure and code to make it work for you&#8230; but, that should give you the framework for getting this kind of thing done.</p>
<p>Here&#8217;s a video walk-through of this, as well:</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='600' height='368' src='http://www.youtube.com/embed/rSncrXP0HeU?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>The post <a href="http://www.johnmorrisonline.com/how-to-create-an-html-select-box-from-a-mysql-results-array-using-php/">How to Create an HTML Select Box From a MySQL Results Array Using PHP</a> appeared first on <a href="http://www.johnmorrisonline.com">John Morris</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.johnmorrisonline.com/how-to-create-an-html-select-box-from-a-mysql-results-array-using-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
