<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>DesignDivine Project Blog &#187; Web Development</title>
	<atom:link href="http://blog.designdivine.com/category/web_development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.designdivine.com</link>
	<description>Current Projects, News, Thoughts on Design &#38; Development</description>
	<lastBuildDate>Thu, 12 Jan 2012 17:22:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>A bit of evil code now removed</title>
		<link>http://blog.designdivine.com/2011/11/a-bit-of-evil-code-now-removed/</link>
		<comments>http://blog.designdivine.com/2011/11/a-bit-of-evil-code-now-removed/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 23:33:00 +0000</pubDate>
		<dc:creator>todditron</dc:creator>
				<category><![CDATA[Coding, Configuration and Testing]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Design Screenshots]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[screenshots]]></category>

		<guid isPermaLink="false">http://blog.designdivine.com/?p=3284</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-3285" href="http://blog.designdivine.com/2011/11/21/a-bit-of-evil-code-now-removed/image001816/"><img class="size-medium wp-image-3285" title="image001816" alt="" src="http://blog.designdivine.com/wp-content/uploads/image001816-500x348.png" /> </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.designdivine.com/2011/11/a-bit-of-evil-code-now-removed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://blog.designdivine.com/wp-content/uploads/image001816-150x150.png" type="image/png" />

		<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/image001816-150x150.png" />
		<media:content url="http://blog.designdivine.com/wp-content/uploads/image001816.png" medium="image">
			<media:title type="html">image001816</media:title>
			<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/image001816-150x150.png" />
		</media:content>
	</item>
		<item>
		<title>Crap.</title>
		<link>http://blog.designdivine.com/2011/11/crap/</link>
		<comments>http://blog.designdivine.com/2011/11/crap/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 20:35:10 +0000</pubDate>
		<dc:creator>todditron</dc:creator>
				<category><![CDATA[Coding, Configuration and Testing]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Design Screenshots]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[screenshots]]></category>

		<guid isPermaLink="false">http://blog.designdivine.com/?p=3273</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-3274" href="http://blog.designdivine.com/2011/11/18/crap/image001813/"><img class="size-medium wp-image-3274" title="image001813" alt="" src="http://blog.designdivine.com/wp-content/uploads/image001813-500x459.png" /> </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.designdivine.com/2011/11/crap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://blog.designdivine.com/wp-content/uploads/image001813-150x150.png" type="image/png" />

		<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/image001813-150x150.png" />
		<media:content url="http://blog.designdivine.com/wp-content/uploads/image001813.png" medium="image">
			<media:title type="html">image001813</media:title>
			<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/image001813-150x150.png" />
		</media:content>
	</item>
		<item>
		<title>WP Hacking to Investigate</title>
		<link>http://blog.designdivine.com/2011/11/wp-hacking-to-investigate/</link>
		<comments>http://blog.designdivine.com/2011/11/wp-hacking-to-investigate/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 23:58:11 +0000</pubDate>
		<dc:creator>todditron</dc:creator>
				<category><![CDATA[Coding, Configuration and Testing]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Design Screenshots]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[screenshots]]></category>

		<guid isPermaLink="false">http://blog.designdivine.com/?p=3261</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-3262" href="http://blog.designdivine.com/2011/11/14/wp-hacking-to-investigate/image001811/"><img class="size-medium wp-image-3262" title="image001811" alt="" src="http://blog.designdivine.com/wp-content/uploads/image001811-500x373.png" /> </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.designdivine.com/2011/11/wp-hacking-to-investigate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://blog.designdivine.com/wp-content/uploads/image001811-e1321371942270-150x150.png" type="image/png" />

		<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/image001811-e1321371942270-150x150.png" />
		<media:content url="http://blog.designdivine.com/wp-content/uploads/image001811.png" medium="image">
			<media:title type="html">image001811</media:title>
			<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/image001811-e1321371942270-150x150.png" />
		</media:content>
	</item>
		<item>
		<title>Attaching .docx files via PHP</title>
		<link>http://blog.designdivine.com/2011/06/attaching-docx-files-via-php/</link>
		<comments>http://blog.designdivine.com/2011/06/attaching-docx-files-via-php/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 22:00:03 +0000</pubDate>
		<dc:creator>taavo</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.designdivine.com/?p=2539</guid>
		<description><![CDATA[Interesting bug today: A client&#8217;s web form takes file uploads and forwards them as email attachments. Script works great for .doc files, but .docx files end up as mysterious attachments with filenames like ATT00010.txt, whose content starts with this: application/vnd.openxmlformats-officedocument.wordprocessingml.document; name="filename.docx" Content-Disposition: attachment; filename="filename.docx" Content-Transfer-Encoding: base64 This &#8220;header&#8221; is followed by a bunch of base64 [...]]]></description>
			<content:encoded><![CDATA[<p>Interesting bug today: A client&#8217;s web form takes file uploads and forwards them as email attachments. Script works great for .doc files, but .docx files end up as mysterious attachments with filenames like ATT00010.txt, whose content starts with this:</p>
<pre>application/vnd.openxmlformats-officedocument.wordprocessingml.document;
name="filename.docx"
Content-Disposition: attachment;
filename="filename.docx"
Content-Transfer-Encoding: base64</pre>
<p>This &#8220;header&#8221; is followed by a bunch of base64 gobbledygook. In short, my original attachment appeared to be getting itself wrapped in an attachment, prefixed with its headers minus the string &#8220;Content-Type: &#8220;.</p>
<p>Turns out the problem was line-wrapping. I was hardwrapping the entire message to ensure a maximum line length of 70 characters (as recommended by <a href="http://php.net/manual/en/function.mail.php">the docs</a>), and this was causing the obscenely long (&gt; 70 character) mime type used by .docx to wrap onto a separate line from the string &#8220;Content-Type:&#8221;. Subsequently, Outlook was seeing a blank content type, freaking out, and putting the rest of the message into an attachment.</p>
<p>Moral of the story: Don&#8217;t hardwrap your email headers. Or use <a href="http://swiftmailer.org/">a library</a> which keeps you from worrying about absurd implementational details.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.designdivine.com/2011/06/attaching-docx-files-via-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="" type="image/jpeg" />

	</item>
		<item>
		<title>BookIt &#8211; Web Application Launch</title>
		<link>http://blog.designdivine.com/2011/06/bookit-web-application-launch/</link>
		<comments>http://blog.designdivine.com/2011/06/bookit-web-application-launch/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 01:42:33 +0000</pubDate>
		<dc:creator>todditron</dc:creator>
				<category><![CDATA[Current Projects]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Website Launches]]></category>
		<category><![CDATA[integrated scheduling calendar]]></category>
		<category><![CDATA[Kohana]]></category>
		<category><![CDATA[LAMP development]]></category>
		<category><![CDATA[NetSuite Integration]]></category>
		<category><![CDATA[scheduling applicaiton]]></category>
		<category><![CDATA[web application]]></category>

		<guid isPermaLink="false">http://blog.designdivine.com/?p=2475</guid>
		<description><![CDATA[After many months of development, integration battles, use-case beta testing, and top-to-bottom system debugging, we finally deployed BookIt; a custom, web-based, NetSuite-integrated, conference room managing and scheduling application for OfficeEvolution. The core BookIt system allows OE clients to login and reserve conference rooms from any of the dozen OE business centers located across the Colorado.  [...]]]></description>
			<content:encoded><![CDATA[<p>After many months of development, integration battles, use-case beta testing, and top-to-bottom system debugging, we finally deployed <a title="BookIt" href="http://officeevolution.com/reservations/" target="_blank">BookIt</a>; a custom, web-based, NetSuite-integrated, conference room managing and scheduling application for <a title="Office Evolution" href="http://officeevolution.com/" target="_blank">OfficeEvolution</a>.</p>
<div id="attachment_2476" class="wp-caption aligncenter" style="width: 510px"><img class="size-medium wp-image-2476" title="BookIt Web Application System Architecture" src="http://blog.designdivine.com/wp-content/uploads/website_development_BookIt-500x358.jpg" alt="" width="500" height="358" /><p class="wp-caption-text">BookIt Web Application System Architecture</p></div>
<p>The core BookIt system allows OE clients to login and reserve conference rooms from any of the dozen OE business centers located across the Colorado.  OE staff can create new reservations as well as manage those created by the clients.</p>
<div id="attachment_2477" class="wp-caption aligncenter" style="width: 510px"><img class="size-medium wp-image-2477" title="BookIt Admin Role View" src="http://blog.designdivine.com/wp-content/uploads/webap_bookit_admin_view-500x358.jpg" alt="" width="500" height="358" /><p class="wp-caption-text">BookIt Admin Role View</p></div>
<p>We extended the system to fully integrate with OE&#8217;s CRM and billing system NetSuite.   BookIt validates users account from OE&#8217;s NetSuite client set, allowing clients to use their existing account credentials.</p>
<p>From the other perspective, BookIt reports conference room usage back to NetSuite for fully automated billing via their existing billing routines.</p>
<div id="attachment_2478" class="wp-caption aligncenter" style="width: 510px"><img class="size-medium wp-image-2478" title="BookIt Create Reservation" src="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_book_view-500x358.jpg" alt="" width="500" height="358" /><p class="wp-caption-text">BookIt Create Reservation</p></div>
<p>The systems are fully synched and now manage, dozens of unique rooms, thousands of users and hundreds of weekly reservations.</p>
<div id="attachment_2479" class="wp-caption aligncenter" style="width: 510px"><img class="size-medium wp-image-2479" title="BookIt Reservation History" src="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_findit_view-500x358.jpg" alt="" width="500" height="358" /><p class="wp-caption-text">BookIt Reservation History</p></div>
<p>We built BookIt on the Kohana platform using PHP/MySQL.</p>
<div id="attachment_2480" class="wp-caption aligncenter" style="width: 510px"><img class="size-medium wp-image-2480" title="BookIt Public View of Availability" src="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_public_view-500x358.jpg" alt="" width="500" height="358" /><p class="wp-caption-text">BookIt Public View of Availability</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.designdivine.com/2011/06/bookit-web-application-launch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_rezedit_view-150x150.jpg" type="image/jpeg" />

		<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/website_development_BookIt-150x150.jpg" />
		<media:content url="http://blog.designdivine.com/wp-content/uploads/website_development_BookIt.jpg" medium="image">
			<media:title type="html">BookIt Web Application System Architecture</media:title>
			<media:description type="html">BookIt Web Application System Architecture</media:description>
			<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/website_development_BookIt-150x150.jpg" />
		</media:content>
		<media:content url="http://blog.designdivine.com/wp-content/uploads/webap_bookit_admin_view.jpg" medium="image">
			<media:title type="html">BookIt Admin Role View</media:title>
			<media:description type="html">BookIt Admin Role View</media:description>
			<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/webap_bookit_admin_view-150x150.jpg" />
		</media:content>
		<media:content url="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_book_view.jpg" medium="image">
			<media:title type="html">BookIt Create Reservation</media:title>
			<media:description type="html">BookIt Create Reservation</media:description>
			<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_book_view-150x150.jpg" />
		</media:content>
		<media:content url="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_findit_view.jpg" medium="image">
			<media:title type="html">BookIt Reservation History</media:title>
			<media:description type="html">BookIt Reservation History</media:description>
			<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_findit_view-150x150.jpg" />
		</media:content>
		<media:content url="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_public_view.jpg" medium="image">
			<media:title type="html">BookIt Public View of Availability</media:title>
			<media:description type="html">BookIt Public View of Availability</media:description>
			<media:thumbnail url="http://blog.designdivine.com/wp-content/uploads/webapp_bookit_public_view-150x150.jpg" />
		</media:content>
	</item>
		<item>
		<title>IE9 Disappearing Content Bug</title>
		<link>http://blog.designdivine.com/2011/05/ie9-disappearing-content-bug/</link>
		<comments>http://blog.designdivine.com/2011/05/ie9-disappearing-content-bug/#comments</comments>
		<pubDate>Sun, 22 May 2011 20:13:46 +0000</pubDate>
		<dc:creator>todditron</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.designdivine.com/?p=2400</guid>
		<description><![CDATA[After installing Internet Explorer 9, I began cross-browser testing the DesignDivine sites.  IE9 destroyed the layouts of at least a half of our websites with no discernible or obvious patterns.  Large content areas were missing from new and old sites alike.  Each of these sites was compatible with IE6, IE7, IE8, FF, Chrome and Safari [...]]]></description>
			<content:encoded><![CDATA[<p>After installing <strong>Internet Explorer 9</strong>, I began cross-browser testing the DesignDivine sites.  <strong>IE9 destroyed the layouts </strong>of at least a half of our websites with no discernible or obvious patterns.  Large content areas were missing from new and old sites alike.  Each of these sites was compatible with IE6, IE7, IE8, FF, Chrome and Safari &#8212; so the IE9 bomb was really annoying.</p>
<p>First, I began a fruitless investigation into forcing various compatibility modes with little or no effect on the broken display.  The various doctype declaration settings didn&#8217;t do much either.</p>
<p>Finally, I stumbled on the following fixes:</p>
<ul>
<li><strong>Update Cufon-yui.js scripts</strong> &#8211; this fixed a good percentage of the problems<br />
<a href="http://cufon.shoqolate.com/generate/" target="_blank">http://cufon.shoqolate.com/generate/</a></li>
<li><strong>Re-order CSS font stacks containing Helvetica </strong><br />
from Helvetica, Arial, sans-serif <strong>to </strong>Arial, Helvetica, sans-serif<br />
<a href="http://simunix.com/wordpress/index.php/2011/03/18/ie9-helvetica-bug/" target="_blank">http://simunix.com/wordpress/index.php/2011/03/18/ie9-helvetica-bug/</a></li>
</ul>
<p>That took care of most of the critical IE9 bugs, but I still needed to update the following scripts:</p>
<ul>
<li><strong>Update to jQuery 1.6.1</strong> &#8211; slightly older versions break in IE9<br />
<a href="http://jquery.com/" target="_blank">http://jquery.com/</a></li>
<li><strong>Update typface.js</strong> &#8211; this will break just like Cufon<br />
<a href="http://typeface.neocracy.org/" target="_blank">http://typeface.neocracy.org/</a></li>
<li><strong>Update Lightbox</strong> &#8211; old version thows IE9 warnings<br />
<a href="http://www.huddletogether.com/projects/lightbox2/" target="_blank">http://www.huddletogether.com/projects/lightbox2/</a></li>
</ul>
<p>Microsoft is really doing a great job holding back web design and the internet, as per usual.  I don&#8217;t know enough javascipt to explicitly fault Microsoft for the IE9 script errors, but the number of new errors points heavily in their direction.  Furthermore, I do know that the <strong>IE9 Helvetica bug</strong> is a major flaw which should never have made it past QA  testing.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.designdivine.com/2011/05/ie9-disappearing-content-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="" type="image/jpeg" />

	</item>
		<item>
		<title>One WordPress Install, Multiple Sites</title>
		<link>http://blog.designdivine.com/2010/12/one-wordpress-install-multiple-sites/</link>
		<comments>http://blog.designdivine.com/2010/12/one-wordpress-install-multiple-sites/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 17:05:13 +0000</pubDate>
		<dc:creator>taavo</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.designdivine.com/?p=1602</guid>
		<description><![CDATA[One of our clients wanted two sites—two URLs, two designs, two sets of content—on a single WordPress install. They wanted to be able to log into a single admin area to manage both sites, and to be able to make posts of certain categories show up on both sites, while other posts would be limited [...]]]></description>
			<content:encoded><![CDATA[<p>One of our clients wanted two sites—two URLs, two designs, two sets of content—on a single WordPress install. They wanted to be able to log into a single admin area to manage both sites, and to be able to make posts of certain categories show up on both sites, while other posts would be limited to just one or the other.</p>
<p>I found my solution in rewrites. Users visit a url such as &#8220;example1.com/about&#8221; or &#8220;example2.com/about&#8221;, and I rewrite it so WordPress treats it as &#8220;example1.com/example1/about&#8221; or &#8220;example1.com/example2/about&#8221; without the user knowing the difference. I tried three different options before stumbling on one that worked well.</p>
<p>1) .htaccess</p>
<p>Didn&#8217;t work. Why? Because WordPress is expecting queries to be directed to index.php, and then it looks at REQUEST_URI to figure out how to dispatch the request. I couldn&#8217;t find a way to change REQUEST_URI with an apache rewrite without directing the request away from WordPress.</p>
<p>2) WordPress rewrite_rules</p>
<p>I got this working, but it was punishingly slow. On every page load, I had WordPress regenerate its rewrite_rules, depending on which HTTP_HOST is being accessed. </p>
<p>3) Change REQUEST_URI inside WordPress</p>
<p>Sounds scarier than it is. As soon as the request is inside WordPress—I chose wp-config.php, because it&#8217;s designed to be user editable—check which HTTP_HOST is being accessed, and then change the REQUEST_URI appropriately. </p>
<p>From there it&#8217;s just a matter of implementing a zillion WordPress hooks to change URLs whenever you output them, to remove the site prefixes. And to filter certain categories from blog listings, blog archives, et cetera. But I&#8217;ll save that for another post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.designdivine.com/2010/12/one-wordpress-install-multiple-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="" type="image/jpeg" />

	</item>
		<item>
		<title>PHP-MSSQL on Linux: Easier Than You&#8217;ve Heard</title>
		<link>http://blog.designdivine.com/2010/10/php-mssql-on-linux-easier-than-youve-heard/</link>
		<comments>http://blog.designdivine.com/2010/10/php-mssql-on-linux-easier-than-youve-heard/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 19:23:44 +0000</pubDate>
		<dc:creator>taavo</dc:creator>
				<category><![CDATA[Server Configuration]]></category>

		<guid isPermaLink="false">http://blog.designdivine.com/?p=1328</guid>
		<description><![CDATA[We&#8217;ve integrated in-house Microsoft SQL Server databases with public PHP web sites a number of times, now. Until today, this meant dealing with Windows VPSes for even modest sites, simply because we were unable to find a Windows shared hosting plan which permitted access to remote databases, and all the research I could find suggested [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve integrated in-house Microsoft SQL Server databases with public PHP web sites a number of times, now. Until today, this meant dealing with Windows VPSes for even modest sites, simply because we were unable to find a Windows shared hosting plan which permitted access to remote databases, and all the research I could find suggested connecting to MS SQL from PHP on Linux was an absolute mess.</p>
<p>Those days appear to be over.</p>
<p><code>yum install php-mssql</code></p>
<p>That, my friends, is all we had to do, thanks to the <a href="http://blog.designdivine.com/2010/06/28/install-php5-on-an-uncooperative-vps/">atomic rocket turtle repository and our earlier efforts to modernize our server</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.designdivine.com/2010/10/php-mssql-on-linux-easier-than-youve-heard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="" type="image/jpeg" />

	</item>
	</channel>
</rss>

