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

<channel>
	<title>Malphurs Interactive</title>
	<atom:link href="http://www.malphursinteractive.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.malphursinteractive.com</link>
	<description>Malphurs Interactive Website &#38; Portfolio</description>
	<lastBuildDate>Wed, 16 May 2012 15:34:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
	<atom:link rel='hub' href='http://www.malphursinteractive.com/?pushpress=hub'/>
		<item>
		<title>Great Membership Plugins</title>
		<link>http://www.malphursinteractive.com/great-membership-plugins/</link>
		<comments>http://www.malphursinteractive.com/great-membership-plugins/#comments</comments>
		<pubDate>Wed, 16 May 2012 15:34:39 +0000</pubDate>
		<dc:creator>AppleJay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Interactivity]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2202</guid>
		<description><![CDATA[Memberships are a great way to include extra features within a site and generate extra income at the same time....]]></description>
			<content:encoded><![CDATA[<p>Memberships are a great way to include extra features within a site and generate extra income at the same time. One advantage of the WordPress platform are all the great plugins that are readily available… For functionality such as membership and registration, the wheel doesn&#8217;t have to be reinvented for each and every project. Below are the 5 outstanding membership plugins, along with the pros and cons of each.</p>
<h3><a title="WP-Members" href="http://butlerblog.com/wp-members/" target="_blank">WP-Members</a></h3>
<p>WP-Members is a free member management system. It is based on giving site administrators the ability to block and unblock posts and pages from public viewing. For example, blocked pages are only viewable to members, while unblocked pages are viewable by the general public. Unlike many other membership plugins, WP-Members has a registration system included which does not require rerouting users through the generic WordPress log-in page. Thus, your users stay within your custom theme, resulting in a simplified experience. It is important to note, though, that since the plugin is free you will not be be provided with the support options or increased functionality that typically comes with paid, licensed plugins. An example of this is WP-Members lack of support for paid memberships.</p>
<h3><a title="s2 Membership" href="http://www.s2member.com" target="_blank">s2 Membership</a></h3>
<p>By implementing the s2 Membership plugin to your site, you add the capability of making specific post/pages available only through &#8220;Buy Now&#8221; access. Some particularly nice features of s2 include its ability to integrate with BuddyPress, protect downloadable files, provide streaming audio/video, and offer paid memberships through standard PayPal. The s2 Membership plugin is free, but there is an add-on module available called s2 Membership Pro. This module adds:<br />
• PayPal Pro<br />
• PayPal<br />
• Pro Form Generators<br />
• Authorize.net AIM/ARB integration<br />
• Pro Form coupon codes<br />
• Unlimited membership levels<br />
• Custom &#8220;Thank You&#8221; pages.</p>
<p>There are two different levels of pricing for the Pro module. A single site license is $69, while an unlimited license is $129. Note that the &#8220;unlimited&#8221; site license is NOT a developer&#8217;s license where you can re-use the plugin again and again&#8230; It is only intended as being &#8220;unlimited&#8221; for those with multiple domains.</p>
<h3><a title="MagicMembers" href="http://www.magicmembers.com/" target="_blank">MagicMembers</a></h3>
<p>MagicMembers is a robust member management system capable of:<br />
• Unlimited membership levels<br />
• Complete control of members billing<br />
• Integration with most major ecommerce gateways (view the complete list »)<br />
• Download management<br />
• Guest purchases<br />
• Auto responder integration with AWeber, GetResponse, Constant Contact, iContact, Auto Response Plus and MailChimp</p>
<p>Two particularly unique features of this plugin include the ability to &#8220;drip feed&#8221; content to users (the ability for administrators to set an amount of time when certain content is viewable) and help desk support Monday-Friday.</p>
<p>The pricing for the MagicMembers plugin is $97 for a single license and $297 for an unlimited license. However, this unlimited license IS a true developer&#8217;s license and allows for multiple installations on different sites.</p>
<h3><a title="Your Members" href="https://www.yourmembers.co.uk/" target="_blank">Your Members</a></h3>
<p>The Your Members plugin includes much of the functionality listed with the plugins above, including:</p>
<p>• Members import/export<br />
• Time limited posts<br />
• WordPress role levels<br />
• Custom login/registration pages<br />
• Member management<br />
• Coupons and discounts<br />
• Mail manager integration with AWeber integration, Campaign Monitor, and more<br />
• Amazon S3 and Cloudfront integration for protection of downloadable and streaming content<br />
• Dime sales, fire sales and other limited offers (with the addition of the Adaptive Pricing Module)</p>
<p>This plugin also has the following payment gateways integrated:<br />
• PayPal<br />
• Authorize.net<br />
• WorldPay<br />
• Click Bank<br />
• and more.</p>
<p>Your Members offers four pricing packages, each of which give additional amounts of functionality:<br />
• Starter $95<br />
• Basic $115<br />
• Pro $150<br />
• Ultimate $300</p>
<p>The Ultimate package&#8217;s high cost is due to it being a true developer&#8217;s license, providing unlimited installs. Regardless, each license gets one year of free upgrades with a &#8220;small&#8221; fee beyond the first year. This support is offered through the forums on the developer&#8217;s website. However, with the purchase of a Pro or Ultimate license you also get &#8220;premium&#8221; support for the first year. With premium support you get the following coverage:<br />
• Notification of Upgrades<br />
• Priority of Upgrades<br />
• Premium content guides and articles<br />
• Private Forums Access<br />
• Free Site Doctor Audit (essentially one of the developers of the plugin will look at your site and give you a short report on the functionality of the entire site.)</p>
<p>There is additional coverage that can be purchased. The price is based three levels of support and on how many contacts (per seat) that will be using the support. The following is the pricing for the different packages:<br />
• Basic ($30/quarter per seat)<br />
• Developer ($200/year per seat)<br />
• Enterprise ($1000/year per seat)</p>
<h3><a title="WishList Members" href="http://member.wishlistproducts.com/" target="_blank">WishList Member</a></h3>
<p>The Wishlist Member plugin also has a long list of features:<br />
• Unlimited Membership Levels<br />
• Sequential Content Delivery<br />
• Content view controls<br />
• Member management<br />
• Shopping cart integration with PayPal, Click Bank (and more)</p>
<p>However, the lack of Authorize.net integration is a bit dumbfounding though and is a serious set-back for this plugin. It can be integrated into the plugin non-natively, yet even this is quite a pain to maintain.</p>
<p>The purchase price is $97 for a single license and $297 for unlimited domains. Much like the s2 Membership, this unlimited license is NOT a developer&#8217;s license. It is only intended for those with multiple domains or servers, not separate sites.</p>
<p>As a developer you do have the option to purchase a commercial license, priced at $300 for 5 sites and $500 for 10 sites. Support is carried out through submitting a support request ticket, with 1 year of unlimited upgrades and support.</p>
<h3>WRAP UP</h3>
<p>After going through membership-related plugins, we were taken aback by the hidden costs of some of them. It further reinforces the need to always read the fine-print before purchasing a plugin.</p>
<p>When looking for the perfect membership plugin for your site, it is best to evaluate the needs of your site along with whatever future membership functionality for which it may call. There is no single answer for what the &#8220;best&#8221; membership plugin is&#8230; It is truly a matter of the &#8220;best&#8221; plugin for the job.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/great-membership-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Current State of Web Browsing</title>
		<link>http://www.malphursinteractive.com/the-current-state-of-web-browsing/</link>
		<comments>http://www.malphursinteractive.com/the-current-state-of-web-browsing/#comments</comments>
		<pubDate>Wed, 09 May 2012 12:30:20 +0000</pubDate>
		<dc:creator>Michael Malphurs</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Trends & Stats]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Information]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mobile Strategy]]></category>
		<category><![CDATA[Mobile Web Usage]]></category>
		<category><![CDATA[Responsive Web Design]]></category>
		<category><![CDATA[Smartphones]]></category>
		<category><![CDATA[Target Audience]]></category>
		<category><![CDATA[Trends and Statistics]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[Website Optimization]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2164</guid>
		<description><![CDATA[Browsers, Screen Sizes, Platforms and What this Means for Web Developers In the article below, we will review the following:...]]></description>
			<content:encoded><![CDATA[<p><strong>Browsers, Screen Sizes, Platforms and What this Means for Web Developers</strong></p>
<p>In the article below, we will review the following:</p>
<ul>
<li>What are the market share statistics for web browsers?</li>
<li>What are the most common screen and resolution sizes of those that view the web?</li>
<li>What do recent statistics say about platform/device market share?</li>
<li>What does this mean for web developers</li>
</ul>
<p>NOTE: All data is current as of May 2012. Unless indicated, all statistics were collected via <a title="w3schools.com" href="http://w3schools.com" target="_blank">w3schools.com</a>. If you are a mobile-first advocate, none of this should matter anyway.</p>
<p><strong>WEB BROWSER MARKET SHARE</strong><br />
Ahhh, web browsers. Performing cross-browser compatibility checks are always listed among web developers as a favorite past-time activity&#8230; Right along with watching Dora the Explorer and listening to the latest boy-band sensation. Yet, as many things in life &#8211; Justin Bieber excluded &#8211; testing your site within major browsers is a necessary evil.</p>
<p>So, where do we stand when it comes to browser market share? Which browsers can we finally let go of, and which do we need to pay special attention to?</p>
<div>Let&#8217;s find out what the latest statistics say:</div>
<div><a href="http://www.malphursinteractive.com/wp-content/uploads/2012/05/Browser_Overall.gif"><img class="alignnone size-full wp-image-2165" title="Overall Browser Market Share" src="http://www.malphursinteractive.com/wp-content/uploads/2012/05/Browser_Overall.gif" alt="Overall Browser Market Share" width="642" height="139" /></a></div>
<div><a href="http://www.malphursinteractive.com/wp-content/uploads/2012/05/Browser_MarketShare.pdf">View each browser versions market share »</a></div>
<p><em> What You Need To Know:</em></p>
<ul>
<li>Chrome now leads browser market share by a single percentage point over Firefox.</li>
<li>Chrome and Firefox together make up 73.6% of all web browsers in use today.</li>
<li>Of Chrome&#8217;s 37.3% market share, 31.9% can be attributed to Chrome 17 users. All other versions combine for only 5.4%.</li>
<li>Of Firefox&#8217;s 36.3% market share, 24.2% can be attributed to Firefox 10 and 11 users. All other versions combine for only 12.1%.</li>
<li>IE is down to a 18.9% market share (hooray!).</li>
<li>IE 8 and 9 account for 15.5% of IE&#8217;s 18.9% market share. IE 6 and 7 are virtually unused.</li>
</ul>
<p><strong>WEB USER SCREEN &amp; RESOLUTION SIZE<br />
</strong>Remember when web developers only had to worry about 3 screen sizes (1024&#215;768, 800&#215;600, 640&#215;480)? Well, those days are long gone.</p>
<div>To the statistics we go:</div>
<div><a href="http://www.malphursinteractive.com/wp-content/uploads/2012/05/ScreenResolution.gif"><img class="alignnone size-full wp-image-2166" title="Screen Resolution" src="http://www.malphursinteractive.com/wp-content/uploads/2012/05/ScreenResolution.gif" alt="Web Browsing Screen Resolution Statistics" width="660" height="101" /></a></div>
<p><em> What You Need To Know:</em></p>
<ul>
<li>98% of web users are viewing sites on screens with a resolution of 1024&#215;768 or above.</li>
<li>Only 1.4% of web traffic come from mobile devices.</li>
</ul>
<p><strong>PLATFORM &amp; DEVICE SPECIFIC MARKET SHARE</strong><br />
As most web developers know, testing a site only on a Mac and a PC will no longer cut it. Not only are there multiple operating systems on both platforms, but there are hundreds of mobile devices thrown into the mix. From iPhones to iPads and from Androids to Blackberries, these devices range not only in their screen size, but also in their individual capabilities.</p>
<p>Let&#8217;s return to the statistics one final time:</p>
<p><a href="http://www.malphursinteractive.com/wp-content/uploads/2012/05/MobileDevices.gif"><img class="alignnone size-full wp-image-2167" title="Mobile Device Market Share" src="http://www.malphursinteractive.com/wp-content/uploads/2012/05/MobileDevices.gif" alt="Mobile Device Market Share" width="656" height="119" /></a></p>
<p><em> What You Need To Know:</em></p>
<ul>
<li>The iPhone and iPad make up .74% of device traffic, while Android only accounts for .44%.</li>
<li>Yet, <a title="2011 mobile statistics and facts" href="http://www.digitalbuzzblog.com/2011-mobile-statistics-stats-facts-marketing-infographic/" target="_blank">major research indicates</a> that by 2014, global internet usage will be done via mobile devices, not desktop devices.</li>
</ul>
<p><strong>THE BOTTOM LINE</strong><br />
Simply put, the web landscape is a mess. Just when &#8220;desktop&#8221; computer users finally begin to eclipse the standard 1024&#215;768 screen resolution, screens size suddenly are predicted to become irrelevant. And just when we get past old version of IE and Netscape, Chrome and Firefox&#8217;s combined 31 browser versions take over the majority of web browsing.</p>
<p>Whether you are a proponent of mobile first or responsive web design, only one thing is clear: Building for only one or two screen sizes and platforms will soon (if not already) be a huge mistake. It is time for web developers, site administrators, and business owners to begin putting together a device agnostic web strategy or be left behind in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/the-current-state-of-web-browsing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress &amp; Blog Development</title>
		<link>http://www.malphursinteractive.com/wordpress-blog-development-10/</link>
		<comments>http://www.malphursinteractive.com/wordpress-blog-development-10/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 19:25:31 +0000</pubDate>
		<dc:creator>AppleJay</dc:creator>
				<category><![CDATA[WordPress & Blog Development]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2108</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/wordpress-blog-development-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress &amp; Blog Development</title>
		<link>http://www.malphursinteractive.com/wordpress-blog-development-9/</link>
		<comments>http://www.malphursinteractive.com/wordpress-blog-development-9/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 18:50:17 +0000</pubDate>
		<dc:creator>AppleJay</dc:creator>
				<category><![CDATA[WordPress & Blog Development]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2105</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/wordpress-blog-development-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress &amp; Blog Development</title>
		<link>http://www.malphursinteractive.com/wordpress-blog-development-8/</link>
		<comments>http://www.malphursinteractive.com/wordpress-blog-development-8/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 18:44:23 +0000</pubDate>
		<dc:creator>AppleJay</dc:creator>
				<category><![CDATA[WordPress & Blog Development]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2102</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/wordpress-blog-development-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Awesome Responsive WordPress Themes</title>
		<link>http://www.malphursinteractive.com/10-awesome-responsive-wordpress-themes/</link>
		<comments>http://www.malphursinteractive.com/10-awesome-responsive-wordpress-themes/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 15:40:14 +0000</pubDate>
		<dc:creator>AppleJay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Mobile Optimization]]></category>
		<category><![CDATA[Mobile Site Development]]></category>
		<category><![CDATA[Mobile Web Usage]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Responsive Web Design]]></category>
		<category><![CDATA[Smartphones]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2081</guid>
		<description><![CDATA[The number of devices accessing the web these days are numerous. Some of these are desktop computers, but an increasing...]]></description>
			<content:encoded><![CDATA[<p>The number of devices accessing the web these days are numerous. Some of these are desktop computers, but an increasing amount come in the form of tablets and mobile devices. The question all web professionals now face is whether to develop a site that is considered &#8220;responsive&#8221;. Or, in other words, a site that adapts to the environment on which the site is being accessed.</p>
<div>
<p>In the past, the only web development solution for tablet and mobile devices was to develop a separate site optimized for these devices. The problem inherent with this is that both sites have to be updated separately. However, using the new ideology of responsive web development (established by <a href="http://www.alistapart.com/articles/responsive-web-design/" target="_blank">Ethan Marcotte</a>), a single site can be built that will adjust automatically to whatever type of device is used to access a site.</p>
<p>The following is a list of 10 &#8220;Responsive&#8221; WordPress themes that we have found to be of high quality and could be used as a great starting point your next project. They are (in no particular order):</p>
<h3>1) <a href="http://goode.slicetheme.com/">Goode&#8217; Theme</a></h3>
<p><img class="alignnone size-full wp-image-2082" title="goode" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/goode.jpg" alt="" width="500" height="300" /></p>
<p>Goode&#8217; themes has 20 pre-defined skins, 25 page templates, 500+ fonts and is even SEO optimized.</p>
<h3>2) <a href="http://themes.hellominti.com/elogix/">Elogix</a></h3>
<p><img class="alignnone size-full wp-image-2083" title="elogix" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/elogix.jpg" alt="" width="500" height="300" /></p>
<p>Elogix has a long list of short codes built into the theme and it is especially responsive to many differing environments.</p>
<h3>3) <a href="http://www.kriesi.at/themes/angular/">Angular</a></h3>
<p><img class="alignnone size-full wp-image-2084" title="Angular" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/Angular.jpg" alt="Angular" width="500" height="300" /></p>
<p>Angular is a portfolio theme aimed at showcasing portfolio work. One neat feature of this template are the animated transitions when the viewport size is adjusted.</p>
<h3>4) <a href="http://epicthemes.net/pioneer/">Pioneer</a></h3>
<p><a href="http://www.malphursinteractive.com/wp-content/uploads/2012/04/Pioneer.jpg"><img class="alignnone size-full wp-image-2085" title="Pioneer" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/Pioneer.jpg" alt="Pioneer" width="500" height="300" /></a></p>
<p>Pioneer has a &#8220;drag and drop&#8221; page builder, documentation to go with it, and screencasts to guide you on how to best use the theme.</p>
<h3>5) <a href="http://themify.me/demo/#theme=phototouch">Phototouch</a></h3>
<p><img class="alignnone size-full wp-image-2086" title="phototouch" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/phototouch.jpg" alt="Phototouch" width="500" height="300" /></p>
<p>Phototouch is a theme focused on handling photos and galleries smoothly, even with mobile devices in mind. One way it does so is by offering touch navigation within the theme. Shortcodes for layout and several interior templates are also included.</p>
<h3>6) <a href="http://themes.themeton.com/squaregrid/">SquareGrid</a></h3>
<p><img class="alignnone size-full wp-image-2087" title="SquareGrid" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/SquareGrid.jpg" alt="SquareGrid" width="500" height="300" /></p>
<p>The SquareGrid theme has its navigation based on a grid that animates when resizing and using filters to wade through the content of the site. It&#8217;s functionality also includes the ability to use images, audio, and video in the layout.</p>
<h3>7) <a href="http://themes.goodlayers.com/modernize/">Modernize</a></h3>
<p><img class="alignnone size-full wp-image-2088" title="modernize" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/modernize.jpg" alt="Modernize" width="500" height="300" /></p>
<p>Modernize contains a page builder, convenient short codes, and several features that make it easy for non-web developers to work within and customize the theme.</p>
<h3> <img src='http://www.malphursinteractive.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> <a href="http://trine.imaginemthemes.com/wp/">Trine</a></h3>
<p><img class="alignnone size-full wp-image-2089" title="Trine" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/Trine.jpg" alt="Trine" width="500" height="300" /></p>
<p>Trine is notable for its many different interior page layouts options. These resize wonderfully when they adjust to multiple screen sizes and include a multitude of options for differing column layouts.</p>
<h3>9) <a href="http://themewich.com/aware/">Aware</a></h3>
<p><img class="alignnone size-full wp-image-2090" title="Aware" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/Aware.jpg" alt="Aware" width="500" height="300" /></p>
<p>The Aware theme brings a way of sorting through a body of work using a single homepage. It does so by implementing a filter that causes some of the images on the grid to &#8220;white out&#8221; in order to showcase different categories.</p>
<h3>10) <a href="http://www.themeblvd.com/demo/arcadian/">Arcadian</a></h3>
<p><img class="alignnone size-full wp-image-2091" title="Arcadian" src="http://www.malphursinteractive.com/wp-content/uploads/2012/04/Arcadian.jpg" alt="Arcadian" width="500" height="300" /></p>
<p>Acardian gives the option of differing homepage layouts as well as an easy-to-use page builder. It also offers a unique grid slider on the homepage that opens individual images in a pop-up Lightbox when selected.</p>
<h3>Wrap Up</h3>
<p>Each of the responsive WordPress themes listed above have awesome functionality that can be used for all kinds of projects. Some may or may not fit the next project you take on. However, it is useful to have a list of flexible, responsive sites that can be used as inspiration in finding new and exciting ways to build your next responsive website.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/10-awesome-responsive-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>View Full Site Mobile Redirect Script</title>
		<link>http://www.malphursinteractive.com/view-full-site-mobile-redirect-script/</link>
		<comments>http://www.malphursinteractive.com/view-full-site-mobile-redirect-script/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 16:22:06 +0000</pubDate>
		<dc:creator>Michael Malphurs</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Mobile Sites]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Mobile redirect]]></category>
		<category><![CDATA[Mobile Site Development]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[View full site]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2063</guid>
		<description><![CDATA[Redirecting Your Mobile Site Visitors to Your Full Site At Malphurs Interactive, we develop a ton of mobile sites. Without...]]></description>
			<content:encoded><![CDATA[<p><em>Redirecting Your Mobile Site Visitors to Your Full Site</em></p>
<p><em></em>At Malphurs Interactive, we develop a ton of mobile sites. Without a doubt, one of the most common requests we receive is to implement a &#8220;View Full Site&#8221; link into a client&#8217;s mobile site.</p>
<p>Redirecting mobile users from a &#8220;desktop&#8221; site to a mobile-friendly site is actually quite easy. Simply embed the following code between the opening and closing head tags of your &#8220;desktop&#8221; (non-mobile) website:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
function detectMobileAndRedirect(a,b){

if(/android|webOS|avantgo|blackberry|blazer|elaine|hiptop|ip(hone|od)|kindle|midp|mmp|mobile|o2|opera mini|palm( os)?|pda|plucker|pocket|psp|smartphone|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce; (iemobile|ppc)|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))){

if(/ipad/i.test(a)){

return false;

}

location.href=b;

}

}

var mobilesite = &quot;http://YourMobileSite.com/&quot;;

detectMobileAndRedirect(navigator.userAgent||navigator.vendor||window.opera,mobilesite);

&lt;/script&gt;
</pre>
<p>Within the script above, simply edit&#8230;</p>
<pre class="brush: plain; title: ; notranslate"> var mobilesite = &quot;http://YourMobileSite.com/&quot;; </pre>
<p>… to point to your mobile site location and you&#8217;re good to go.</p>
<p>But, what if we want to do the opposite? What if we want to redirect mobile users to a &#8220;desktop&#8221; site with a &#8220;View Full Site&#8221; link? If we create such a link and simply link it back to the &#8220;desktop&#8221; site, the mobile user will just hit the mobile redirect script again and be sent right back to the mobile site. NOT what we intended.</p>
<p>This is a tricky problem to solve. The answer lies in a mix of javascript, cookies, and good old fashioned linking fun! So, lets get going.</p>
<p><strong>Step 1 &#8211; The Javascript<br />
</strong>Start by copying the following code:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;

function setCookie(c_name, value, exdays) {

c_name = c_name.toLowerCase();

var exdate = new Date();

exdate.setDate(exdate.getDate() + exdays);

var c_value = escape(value) + ((exdays == null) ? &quot;&quot; : &quot;; expires=&quot; + exdate.toUTCString());

document.cookie = c_name + &quot;=&quot; + c_value;

}

function getCookie(c_name) {

c_name = c_name.toLowerCase();

var i, x, y, ARRcookies = document.cookie.split(&quot;;&quot;);

for (i = 0; i &lt; ARRcookies.length; i++) {

x = ARRcookies[i].substr(0, ARRcookies[i].indexOf(&quot;=&quot;));

y = ARRcookies[i].substr(ARRcookies[i].indexOf(&quot;=&quot;) + 1);

x = x.replace(/^\s+|\s+$/g, &quot;&quot;);

if (x == c_name) {

//alert(&quot;x = &quot; + x);

return unescape(y);

}

}

}

function getQuerystring(key, default_) {

key = key.toLowerCase();

//alert(&quot;key : &quot; + key);

//alert(&quot;default_ : &quot; + default_);

if (default_ == null) default_ = &quot;&quot;;

key = key.replace(/[\[]/, &quot;\\\[&quot;).replace(/[\]]/, &quot;\\\]&quot;);

var regex = new RegExp(&quot;[\\?&amp;]&quot; + key + &quot;=([^&amp;#]*)&quot;);

var qs = regex.exec(window.location.href.toLowerCase());

if (qs == null) {

//alert(&quot;default_ : &quot; + default_);

return default_;

}

else {

//alert(&quot;qs[1] : &quot; + qs[1]);

return qs[1];

}

}

function detectMobileAndRedirect(a,b){

// alert(location.href);

if(/android|webOS|avantgo|blackberry|blazer|elaine|hiptop|ip(hone|od)|kindle|midp|mmp|mobile|o2|opera mini|palm( os)?|pda|plucker|pocket|psp|smartphone|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce; (iemobile|ppc)|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))){

if(/ipad/i.test(a)){

return false;

}

location.href=b;

}

}

function removeQueryString(url) {

return url.split(&quot;?&quot;)[0];

}

var FullSiteCookie = getCookie(&quot;viewFullSite&quot;);

var viewFullSite = getQuerystring(&quot;viewFullSite&quot;);

var renderFullSite = new Boolean();

renderFullSite = false;

if (FullSiteCookie != null &amp;&amp; FullSiteCookie != &quot;&quot;) {

if (FullSiteCookie.toLowerCase() == &quot;true&quot;) {

if (viewFullSite.toLowerCase() == &quot;false&quot;) {

setCookie(&quot;viewFullSite&quot;, false, 1);

}

else {

renderFullSite = true;

//alert(&quot;Set 11&quot;);

}

}

else {

if (viewFullSite != null &amp;&amp; viewFullSite != &quot;&quot;) {

if (viewFullSite.toLowerCase() == &quot;true&quot;) {

renderFullSite = true;

//alert(&quot;Set 2&quot;);

setCookie(&quot;viewFullSite&quot;, true, 1);

}

else {

if (viewFullSite.toLowerCase() == &quot;false&quot;) {

setCookie(&quot;viewFullSite&quot;, false, 1);

}

renderFullSite = false;

//alert(&quot;Set 3&quot;);

}

}

else {

renderFullSite = false;

//alert(&quot;Set 4&quot;);

}

}

}

else {

viewFullSite = getQuerystring(&quot;viewFullSite&quot;);

//alert(&quot;viewFullSite 1 : &quot; + viewFullSite);

if (viewFullSite != null &amp;&amp; viewFullSite != &quot;&quot;) {

if (viewFullSite.toLowerCase() == &quot;true&quot;) {

renderFullSite = true;

//alert(&quot;Set 5&quot;);

setCookie(&quot;viewFullSite&quot;, true, 1);

}

else {

renderFullSite = false;

//alert(&quot;Set 6&quot;);

}

}

else {

renderFullSite = false;

//alert(&quot;Set 7&quot;);

}

}

//alert(&quot;renderFullSite : &quot; + renderFullSite);

if (!renderFullSite) {

//alert(&quot;location href before: &quot; + location.href);

var mobilesite = &quot;http://YourMobileSite.com&quot;;

var locationhref = removeQueryString(location.href);

//alert(&quot;location href after: &quot; + locationhref);

if (locationhref == &quot;http://YourSite.com&quot;) {

mobilesite = &quot;http://YourMobileSite.com/index.php&quot;;

}

detectMobileAndRedirect(navigator.userAgent || navigator.vendor || window.opera, mobilesite);

}

function BookMark() {

$('#BookmarkImg').animate({ &quot;top&quot;: &quot;-81px&quot; }, 1000);

baseCookieName = &quot;rwbookmark&quot;;

var exdate = new Date();

var expiredays = &quot;1&quot;;

exdate.setDate(exdate.getDate() + expiredays);

//use of arbritary stop point so no endless loop occurs

for (var i = 0; i &lt; 10000; i++) {

var curName = baseCookieName + i;

if (document.cookie.indexOf(curName) &lt; 0) {

document.cookie = curName + &quot;=&quot; + escape(window.location.href) + &quot;[#]contentid=&quot; + document.getElementById(&quot;inputContentID&quot;).value + &quot;[#]title=&quot; + GetPageTitle() + &quot;;expires=&quot; + exdate.toGMTString() + &quot;;path=/;domain=YourSite.com;&quot;;

break;

}

}

var link = document.getElementById('BookmarkLink');

link.onclick = null;

link.style.cursor = &quot;default&quot;;

}

function GetPageTitle() {

var titlefromdom = &quot;&quot;;

var titlefromdomarray = &quot;&quot;;

$(document).ready(function() {

titlefromdom = document.title;

});

titlefromdomarray = titlefromdom.split(&quot;|&quot;);

if (titlefromdomarray.length &gt; 0) {

titlefromdom = titlefromdomarray[titlefromdomarray.length - 1];

}

return titlefromdom;

}

&lt;/script&gt;
</pre>
<p>Now, place this in your favorite text editor so we can edit it as needed.</p>
<p><strong>Step 2 &#8211; Customizing the Javascript<br />
</strong>Now that we have the script, we need to customize it in several different areas by setting the:</p>
<ol>
<li>Mobile site location</li>
<li>Non-mobile, &#8220;desktop&#8221; site location</li>
<li>Cookie duration</li>
<li>Desktop domain name</li>
</ol>
<p>Begin by looking for line 215:</p>
<pre class="brush: plain; title: ; notranslate">
var mobilesite = &quot;http://YourMobileSite.com&quot;;
</pre>
<p>Set this variable to your mobile site location.</p>
<p>Next, further down the page find line 221:</p>
<pre class="brush: plain; title: ; notranslate">
if (locationhref == &quot;http://YourSite.com&quot;)
</pre>
<p>Set this to be the location of your &#8220;desktop&#8221; site. (This is the site where you want your mobile visitors to go when they click &#8220;View Full Site&#8221;.)</p>
<p>The next line (223) contains the following code:</p>
<pre class="brush: plain; title: ; notranslate">
mobilesite = &quot;http://YourMobileSite.com/index.php&quot;;
</pre>
<p>Again, change this to be the location of your mobile site.</p>
<p>Third, look on line 239 for:</p>
<pre class="brush: plain; title: ; notranslate">
var expiredays = &quot;1&quot;;
</pre>
<p>This is the length of time the cookie we set with the script will last. In other words, this is the number of days the mobile visitor will see the &#8220;desktop&#8221; site instead of the mobile site when viewing it on their mobile device. You can set this to any amount of time, though we typically stick with 1 day.</p>
<p>Finally, look on line 251 for our last domain name change:</p>
<pre class="brush: plain; title: ; notranslate">
document.cookie = curName + &quot;=&quot; + escape(window.location.href) + &quot;[#]contentid=&quot; + document.getElementById(&quot;inputContentID&quot;).value + &quot;[#]title=&quot; + GetPageTitle() + &quot;;expires=&quot; + exdate.toGMTString() + &quot;;path=/;domain=YourSite.com;&quot;;
</pre>
<p>Simply change &#8220;domain=YourSite.com&#8221; to your desktop site&#8217;s domain.</pre>
<p><strong>Step 3 - Putting it all together<br />
</strong>Everything is easy from here on out… Simply take the javascript we created and place it between the head tags of your entire "desktop" site.</p>
<p>Then, to complete the process, add the "View Full Site" link to your mobile site page(s):</p>
<pre class="brush: plain; title: ; notranslate">
&lt;a href=&quot;http://www.YourSite.com/?ViewFullSite=true&quot;&gt;View Full Site&lt;/a&gt;&lt;/p&gt;
</pre>
<p>The important thing to note here is the <strong>?ViewFullSite=true</strong> piece of code. This is necessary to add to your link because it is what the javascript will look for to ensure your mobile visitors get sent to the "desktop" site instead of the mobile one.</p>
<p>Volia! You're done.</p>
<p><strong>Bonus Tip<br />
</strong>Want to link to specific pages on your "desktop" site? Simply add <strong>?ViewFullSite=true</strong> after the link to the page. For example:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;a href=&quot;http://www.YourSite.com/AboutUs.php?ViewFullSite=true&quot;&gt;View Full About Us Page&lt;/a&gt;&lt;/p&gt;
</pre>
<p>Now, you can have any mobile page on your site link to its corresponding "desktop" version.</p>
<p><strong>Conclusion</strong><br />
We hope that the mobile redirect script detailed above helps you on your next mobile project. Considering the number of times we have used this handy piece of code, you should have no problem making use of it when your client asks for "View Full Site" functionality!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/view-full-site-mobile-redirect-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Security</title>
		<link>http://www.malphursinteractive.com/wordpress-security/</link>
		<comments>http://www.malphursinteractive.com/wordpress-security/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 19:43:51 +0000</pubDate>
		<dc:creator>AppleJay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[Website Optimization]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2052</guid>
		<description><![CDATA[When it comes to securing any website, it is important to consider all available security methods… Especially when it comes to WordPress. The...]]></description>
			<content:encoded><![CDATA[<p>When it comes to securing any website, it is important to consider all available security methods… Especially when it comes to WordPress. The software&#8217;s security issues are widely known, mainly due its wide use for website development and the breadth of knowledge available on how the platform works. This also makes it more susceptible to attack than other website CMS systems. This can turn into a nightmare when you have a highly customized site that gets compromised and brought down. In this article, we will discuss some preventative measures that can be in place in order to make your WordPress installation more secure&#8230; And avoid the time and cost that a hacked site can create.</p>
<h3>1) Install WP Security Scan</h3>
<p><a href="http://wordpress.org/extend/plugins/wp-security-scan/">WP Security Scan</a> is a great plug-in that scans and verifies the vulnerabilities of your WordPress install. As the name implies, it will scan your installation and give you suggestions of security measures to take in order to secure your site. Some examples of suggestions that the plug-in makes include:</p>
<p><strong> a) Name your database using a prefix other than &#8220;wp_&#8221;</strong></p>
<p>With this being the default prefix it makes it easier for a hacker to plan a massive attack on the database. This suggestion can actually be done right with the plugin. But, note that it can also be done from the beginning of development. For example, when you first install WordPress and are setting up the wp-config file, the installer gives you an option of what prefix you would like to use for the database files. Doing so then will keep you from having to worry about doing it later!</p>
<p><strong> b) Do not use &#8220;admin&#8221; for the administrator username</strong></p>
<p>When a hacker is attempting to access your site, the first username they will go after is the oft-used &#8221;admin&#8221;. So, using a different username for the administrator only makes it harder for the person that is trying to compromise your site. Simple, but effective.</p>
<p><strong>c) Create additional .htaccess files</strong></div>
<p>Another level of protection can be added through implementation of a .htaccess file within your wp-admin and wp-content directory (within the WordPress installation). This provides another level of security to the files that are often used to gain the information that provides additional access to other areas of your site.</p>
<p>For further reading, here is a <a href="http://httpd.apache.org/docs/2.0/howto/htaccess.html">great resource</a> for creating strong .htaccess files for an Apache server.</p>
<h3>2) Backup, Backup, Backup</h3>
<p>WordPress security arsenal is the ability to backup your site files and database(s). If your site gets taken down, this will act as your life preserver and allow you to bring the majority of the site files back to life. The plug-in we prefer to use is <a href="http://hmn.md/backupwordpress/">BackUpWordPress</a>. This nifty tool creates a backup of a site&#8217;s files, code and database. And, it even allows you to schedule the frequency of the backups within the plug-in&#8217;s settings panel.</p>
<h3>3) Limiting Log-in Attempts</h3>
<p>When a hacker is trying to access your site one of the ways to gain access is by guessing your password. Possibly using a script to guess your password. Through limiting the login attempts this will lock out whoever enters the wrong password a specified amount of times and will also be locked out for a specified time. This can be done by installing the </span><a href="http://wordpress.org/extend/plugins/limit-login-attempts/">Limit Login Attempts</a> plugin. You can access the Settings in the WordPress admin and fill out how many attempts you want to allow and how long the lock out should be. These is just a few of the settings available with this plugin.</p>
<h3>Wrap Up</h3>
<p>These are just a few techniques that can be used to defend a WordPress site from an attack. Malphurs Interactive is continuously looking for ways to better secure sites that we develop, and subsequently apply these techniques to the sites we have already developed. As the WordPress community continues to grow, there will be more opportunities for attack. Yet, there will also be even better security measures to implement. We hope that the tips presented help you develop more secure custom WordPress sites and avoid the headaches a hacked site can bring.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/wordpress-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing for the New iPad Retina Display</title>
		<link>http://www.malphursinteractive.com/designing-for-the-new-ipad-retina-display/</link>
		<comments>http://www.malphursinteractive.com/designing-for-the-new-ipad-retina-display/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 16:01:21 +0000</pubDate>
		<dc:creator>Michael Malphurs</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Trends & Stats]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Information]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Retina Display]]></category>
		<category><![CDATA[Smartphones]]></category>
		<category><![CDATA[Target Audience]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2040</guid>
		<description><![CDATA[Apple&#8217;s new iPad has been called an &#8220;evolutionary&#8221; upgrade by most of the media. But, once you get your hands...]]></description>
			<content:encoded><![CDATA[<p>Apple&#8217;s new iPad has been called an &#8220;evolutionary&#8221; upgrade by most of the media. But, once you get your hands on one, its hard to deny that its dazzling display will make you think it is an actual game-changer. Wherever your opinion may lie, one thing is for sure… The new retina display does change the landscape for those of us that develop for iPad devices.</p>
<p>So, when should we start developing for this new model and what should we pay particular attention to? Lets take a deeper look.</p>
<p><strong>The Adoption Rate<br />
</strong>One of the first questions we come to is when we should begin building (or upgrading) our iPad apps to be optimized for the new version of the iPad. By looking at the latest data, the adoption rate for the latest iPad model makes up <a title="New iPad Adoption Rate" href="http://labs.chitika.com/ipad/" target="_blank">8% of the total iPad market</a>. This is a small, yet telling number. Considering that the iPad was released only in mid-March, this is actually a stunningly fast adoption rate.</p>
<p>Add to this that sales currently show no signs of slowing (just try to get one on &#8211; or at -  the Apple Store), it is safe to say that we will see at least a quarter of the iPad market consist of the newest version by summer. This data makes it clear that it is indeed time to consider building and optimizing apps for the new iPad.</p>
<p><strong>The Resolution<br />
</strong>Now that we know that we should be looking to build for the new device, what exactly does that mean? We could &#8211; of course &#8211; take advantage of the nice upgrade in processor. But, unless you are really wanting to slow things down for users of earlier iPad models, it is best to play it safe and develop with the previous generation of devices in mind.</p>
<p>Thus, the biggest area change comes in developing for the device&#8217;s new retina display. Whereas before we could safely build for 1024&#215;768 at 72 dpi, we now must move up to a staggering 2048&#215;1536 at 264 dpi. This means your projects will grow an average of 3x the size of which you are accustomed.</p>
<p>Complicating things, should you choose to work at the higher resolution of the new device, be weary of making the app universal. By doing so, you will now be generating 3 different files for the same image:</p>
<ul>
<li>1 for the newest iPad</li>
<li>1 for older iPads</li>
<li>1 for misc. smartphone devices</li>
</ul>
<p>Fear not, though… If you choose not to develop for the higher resolution yet, iOS 5,1 will scale your app up to the new resolution. The tradeoff? Your graphics will get a little washed out and a bit fuzzy.</p>
<p><strong>The Icons<br />
</strong>So, what else does this resolution change entail? For starters, you now must create higher resolution icons. The following is a run down of mandatory sizes for each icon in order for your app to be &#8220;retina display compliant&#8221;:</p>
<ul>
<li>Application icon: 144 x 144</li>
<li>App Store icon: 1024 x 1024</li>
<li>Launch Image: 1536 x 2008 (portrait) / 2048 x 1496 (landscape)</li>
<li>Spotlight Search icon: 100 x 100</li>
<li>Settings icon: 58 x 58</li>
<li>Toolbar, Navigation and Tab Bar icons: 40 x 60</li>
</ul>
<p>Note that Apple has some great tips for creating resizable images. You can read more about them on <a title="iOS Developer's Guide" href="http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html" target="_blank">the iOS developer site</a>. This great resource will help make the process of creating your app&#8217;s icons much more manageable.</p>
<p>There is no doubt that there are many other changes in store for those of us who develop for the new iPad. But, by optimizing your graphics and icons, you will also be taking a great step forward in optimizing the app experience for millions of users. And, maybe, just maybe making it into the new &#8220;Great Apps for the New iPad&#8221; category of the App Store!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/designing-for-the-new-ipad-retina-display/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash to HTML5 Fallback</title>
		<link>http://www.malphursinteractive.com/flash-to-html5-fallback/</link>
		<comments>http://www.malphursinteractive.com/flash-to-html5-fallback/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 18:17:26 +0000</pubDate>
		<dc:creator>AppleJay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://www.malphursinteractive.com/?p=2024</guid>
		<description><![CDATA[Ensure your animation plays no matter how it is viewed OVERVIEW At Malphurs Interactive, we recently we came upon an...]]></description>
			<content:encoded><![CDATA[<p><em>Ensure your animation plays no matter how it is viewed</em></p>
<h3>OVERVIEW</h3>
<p>At Malphurs Interactive, we recently we came upon an issue that required a bit of innovation. How can an animation show no matter what device is being used to view it? Flash is nice, yet is incompatible with many mobile devices and tablets. HTML5 is sweet, but only shows on the most modern of browsers. Is there a happy medium? After much discussion, we determined we needed a solution that would display our animation regardless of which browser or device is being used… New or old&#8230; Mobile or &#8220;desktop&#8221;.</p>
<h3>THE STRATEGY</h3>
<p>We decided that our strategy would be to offer Flash first. If the device being used to view the page does not support Flash, it would fall back to HTML5. If neither are supported, a simple image is displayed so at least something will appear for the user.</p>
<p>Upon our initial search we could find no such solution. We did find many examples of Flash to HTML5 video fallbacks, but nothing that involved taking an animation and allowing it to degrade gracefully from Flash to HTML5 and then to a static image. So, we created our own solution, one which involves the following steps:</p>
<ul>
<li>Create a Flash animation</li>
<li>Convert the Flash into an HTML5 animation</li>
<li>Place the HTML5 scripts and animation within an HTML document</li>
<li>Place the Flash scripts and animation within an HTML document</li>
<li>Tell the browser which to play</li>
</ul>
<p>The following details each step.</p>
<h3>1) Create the Animations</h3>
<p>Our initial animation was quite complex and &#8211; out of necessity &#8211; created in Flash. But, knowing that Flash support is waning and incompatible with many mobile devices, we converted our Flash animation into an HTML5 animation using Google swiffy. When doing such a conversion, it is important that the swiffy guidelines are strictly followed. Pay particular attention that:</p>
<ul>
<li>the file is a subset of SWF 8</li>
<li>all scripting is done using ActionScript 2.0</li>
</ul>
<p>(There are more detailed guidelines documented on the <a title="Google swiffy" href="http://www.google.com/doubleclick/studio/swiffy/" target="_blank">Google swiffy site</a>.)</p>
<p>You may use another method to get your HTML5 animation, but the steps should still be similar to those detailed here.</p>
<h3>2) Implement the HTML5 Code</h3>
<p>At this point, we have a Flash SWF and an HTML5 document containing the animation. We will be using the code from within this HTML5 document quite often, so keep it handy. So, onto our next step… implementing the HTML5 animation and its code.</p>
<p>Begin by creating a new HTML5 document. Paste the following lines of code within the &lt;head&gt; tags of this document:</p>
<pre class="brush: plain; title: ; notranslate">&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.gstatic.com/swiffy/v4.0/runtime.js&quot;&gt;&lt;/script&gt;</pre>
<p>This code is the javascript Google provides in order to run swiffy created animations. We could download this file and link to it locally, but swiffy is a beta product and is updated quite often. So, by linking to it directly, we ensure we are always using the newest version available. Be sure to take the time to save and name the document as needed. For this article, we will refer to this page as &#8220;animation.html&#8221;.</p>
<p>Next, we need to display the actual HTML5 animation itself. Looking at the animation&#8217;s code, it is quite long and complex. Instead of directly embedding the animation, lets keep our code clean by placing this long code into a separate file. We can then simply call it from within the animation.html document. Do so by going back to the HTML5 file that swiffy produced from our original Flash file. Look for the script we used in step 2. Directly below that is the script and code we need. Copy this entire script, ensuring you get everything between the opening and closing script tags. Then, create a new blank document and paste the script within. Save the file as a javascript document (such as &#8220;animation.js&#8221;) and call it from within the &lt;head&gt; of animation.html:</p>
<pre class="brush: plain; title: ; notranslate">&lt;script src=&quot;http://www.mysite.com/js/animation.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>As with all such examples in this article, be sure to replace the generic names we have placed within the script with those you have created.</p>
<p>Now that the HTML5 animation scripts are in place, we just need to place the code that will display the animation within the page. Let&#8217;s do so by once again going back to the swiffy HTML5 document. Right within the opening and closing &lt;body&gt; tags is the code we need… It should look something like this:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;div id=&quot;animation&quot; style=&quot;width: XXXpx; height: XXXpx;&quot;&gt;&lt;/div&gt;

&lt;script&gt;
var stage = new swiffy.Stage(document.getElementById('animation'), swiffyobject);
stage.start();
&lt;/script&gt;
</pre>
<p>Note that the text &#8220;animation&#8221; within the script is the name of the DIV id where the animation will play. Feel free to change this to match the name of your DIV.</p>
<p>Now, test the animation in an HTML5 compatible browser to ensure that the script was properly implemented and is working as intended.</p>
<h3>3) Implement the Flash</h3>
<p>We now have our HTML5 animation and its scripts placed and working perfectly. Lets now move on to implementing the Flash animation.</p>
<p>Let&#8217;s begin by calling the Flash javascript embed code. Add the following script to the &lt;head&gt; of the animation.html document.</p>
<pre class="brush: plain; title: ; notranslate">&lt;script src=&quot;http://www.mysite.com/js/swfobject_modified.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>Next, we need to place the Flash embed code into the body of our document so the animation can actually play. The following is an example of such code:</p>
<pre class="brush: plain; title: ; notranslate">&lt;object id=&quot;FlashID2&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; width=&quot;895&quot; height=&quot;535&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.mysite.com/animation.swf&quot; /&gt;
&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
&lt;param name=&quot;wmode&quot; value=&quot;opaque&quot; /&gt;
&lt;param name=&quot;swfversion&quot; value=&quot;6.0.65.0&quot; /&gt;
&lt;!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don’t want users to see the prompt. --&gt;
&lt;param name=&quot;expressinstall&quot; value=&quot;http://www.mysite.com/js/expressInstall.swf&quot; /&gt;
&lt;!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. --&gt;
&lt;!--[if !IE]&gt;--&gt;
&lt;object type=&quot;application/x-shockwave-flash&quot; data=&quot;http://www.mysite.com/animation.swf&quot; width=&quot;895&quot; height=&quot;535&quot;&gt;
&lt;!--&lt;![endif]--&gt;
&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
&lt;param name=&quot;wmode&quot; value=&quot;opaque&quot; /&gt;
&lt;param name=&quot;swfversion&quot; value=&quot;6.0.65.0&quot; /&gt;
&lt;param name=&quot;expressinstall&quot; value=&quot;Scripts/expressInstall.swf&quot; /&gt;
&lt;!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. --&gt;
&lt;div&gt;
&lt;h4&gt;Content on this page requires a newer version of Adobe Flash Player.&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.adobe.com/go/getflashplayer&quot;&gt;&lt;img src=&quot;http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif&quot; alt=&quot;Get Adobe Flash player&quot; width=&quot;112&quot; height=&quot;33&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;!--[if !IE]&gt;--&gt;
&lt;/object&gt;
&lt;!--&lt;![endif]--&gt;
&lt;/object&gt;</pre>
<p>Take this code and place it within the same DIV we placed the HTML5 animation code. Verify that the Flash has been properly implemented by testing the page within a Flash enabled browser.</p>
<h3>4) Implementing Conditional Statements</h3>
<p>At this point, we have a an HTML5 animation and a Flash animation playing within the page. Obviously, we only want one to play. So, lets add some conditional statements to help browsers determine which version to play. Begin by placing the following code within the &lt;head&gt; tags of the animation.html document:</p>
<pre class="brush: plain; title: ; notranslate">&lt;script src=&quot;http://www.mysite.com/js/swfobject_modified.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;!--[if !IE]&gt;--&gt;&lt;![IGNORE[--&gt;&lt;![IGNORE[]] &gt; &lt;script src=&quot;http://www.gstatic.com/swiffy/v4.0/runtime.js&quot;&gt;&lt;/script&gt; &lt;!--&lt;![endif]--&gt;
&lt;!--[if !IE]&gt;--&gt;&lt;![IGNORE[--&gt;&lt;![IGNORE[]] &gt;  &lt;script src=&quot;http://www.mysite.com/js/animation.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; &lt;!--&lt;![endif]--&gt;</pre>
<p>These conditional statements are telling Internet Explorer browsers to pass over the HTML5 animation and scripts and instead run the Flash version of the animation. Why would we do this? The reason is that as of now Internet Explorer does not support HTML5 animation well. But, it handles Flash just fine. Similarly, you can add more conditional statements to target other browsers and suit your project&#8217;s specific needs.</p>
<p>Now that we have IE ignoring the HTML5, lets tell the browsers that do not support Flash to ignore the Flash script and play the HTML5 version instead.</p>
<p>We can do so by moving a piece of code we have already placed within animation.html. Within the Flash embed code, look for the following snippet:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;div&gt;
&lt;h4&gt;Content on this page requires a newer version of Adobe Flash Player.&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.adobe.com/go/getflashplayer&quot;&gt;&lt;img src=&quot;http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif&quot; alt=&quot;Get Adobe Flash player&quot; width=&quot;112&quot; height=&quot;33&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</pre>
<p>Replace this code by moving the following script into its place:</p>
<pre class="brush: plain; title: ; notranslate">&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[
var stage = new swiffy.Stage(document.getElementById('animation'), swiffyobject);
stage.start();
// ]]&gt;&lt;/script&gt;</pre>
<p>Cool! We now have browsers running the Flash animation when they can and simply ignoring the HTML5 animation. And, vice versa… We have browsers that don&#8217;t support Flash simply ignoring it and playing the HTML5 animation instead.</p>
<p>Remember to always cross-browser test to ensure all is working as planned.</p>
<h3>5) Implementing an Image Fallback</h3>
<p>This step is the easiest of all. Simply create a piece of CSS code that renders an image within the animation&#8217;s DIV background:</p>
<pre class="brush: css; title: ; notranslate">#animation {
width: 895px;
height: 535px;
overflow: hidden;
background-image: url(images/animation.jpg);
background-repeat: no-repeat;
}</pre>
<p>This provides yet another fallback for the rare case when a device can not support either Flash or HTML5.</p>
<h3>CONCLUSION</h3>
<p>In the course of everyday programming challenges, it is always great to be able to come across a convenient solution. However, due to the multitude of variables we run into when dealing with such a wide variety of devices and browsers, there is hardly ever a &#8220;one size fits all&#8221; solution. Hopefully, this article will assist you in getting around some of the limitations and challenges faced when dealing with a site and the animations within.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malphursinteractive.com/flash-to-html5-fallback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

