<?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>Andy's Blog &#187; Web Dev</title>
	<atom:link href="http://blog.miloco.com/category/web-dev/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.miloco.com</link>
	<description>Why do I have a Blog?  When I find out, I'll tell you.</description>
	<lastBuildDate>Mon, 26 Jul 2010 18:58:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dreamweaver CS4 Copy/Paste Bug Workaround</title>
		<link>http://blog.miloco.com/2010/03/dreamweaver-cs4-copypaste-bug-workaround.html</link>
		<comments>http://blog.miloco.com/2010/03/dreamweaver-cs4-copypaste-bug-workaround.html#comments</comments>
		<pubDate>Sun, 21 Mar 2010 07:08:11 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[copy paste problems]]></category>
		<category><![CDATA[Dreamweaver CS4]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=1064</guid>
		<description><![CDATA[If you are working with Dreamweaver CS4 and find that you have weird select &#8211; copy &#8211; paste problems, then read on.
Ever been working in code view and find that trying to highlight and copy any text (either ctrl-c or right click&#62;copy) suddenly results in the entire page or code block you are working in [...]]]></description>
			<content:encoded><![CDATA[<p>If you are working with Dreamweaver CS4 and find that you have weird select &#8211; copy &#8211; paste problems, then read on.</p>
<p>Ever been working in code view and find that trying to highlight and copy any text (either ctrl-c or right click&gt;copy) suddenly results in the entire page or code block you are working in being selected?   Yeah, me to &#8211; and it has made me FURIOUS, going on 3 or 4 months now.</p>
<p>The only way I was able to get it to STOP doing that was to click somewhere in the code editor and make a change in the doc &#8211; like clicking Enter to make a new blank line and then deleting it again.  Once the file was &#8220;touched&#8221; like that, copy again worked correctly.   While this worked, it was EXTREMELY annoying, because it happened every single time I opened a bit of code that I wanted to grab a snippet from.  Constantly clicking and making changes in files that I really didn&#8217;t want to change, only to start forgetting which ones I really wanted to save&#8230;  Oh, how I loathed the day I upgraded from CS3!</p>
<p>Well, I&#8217;m glad to announce that I found a way to fix the stupid problem &#8211; not permanently &#8211; but at least I don&#8217;t have to use the stupid file change method anymore.</p>
<p>It appears that the problem is due to &#8220;workspace&#8221; issues.  A CS4 Workspace is essentially a screen layout configuration that you can customize and save and return to at any point.  For example, you may want certain windows open when you are writing your code, and other windows open when you are debugging the code, etc.  CS4 ships with several neat Workspaces out of the box &#8211; I&#8217;ve primarily used the &#8220;Dual Screen&#8221; workspace for most of my time in the app.  Well apparently something in the Workspace config gets borked and causes this problem.</p>
<p><strong>To Fix the Problem:</strong></p>
<ul>
<li>First, select the &#8220;Classic&#8221; Workspace and let the windows reconfigure themselves.  The easiest way to do this is to select a new Workspace from the upper right hand side of the top of your Dreamweaver window, as seen below.</li>
</ul>
<p><div id="attachment_1066" class="wp-caption alignnone" style="width: 385px"><a href="http://blog.miloco.com/wp-content/uploads/2010/03/3-21-2010-12-01-08-AM.png" rel="lightbox[1064]"><img class="size-full wp-image-1066 " title="3-21-2010 12-01-08 AM" src="http://blog.miloco.com/wp-content/uploads/2010/03/3-21-2010-12-01-08-AM.png" alt="Dreamweaver Workspaces" width="375" height="230" /></a><p class="wp-caption-text">Its Easy to Change your Workspace</p></div><br />
<br/></p>
<ul>
<li>Second, change back to your preferred workspace (like &#8220;Dual Screen&#8221; in my case) and the problem will be gone!</li>
</ul>
<p>Now, be advised that it may show up again in a few weeks or a few days, or never &#8211; I don&#8217;t know.  It doesn&#8217;t seem to be consistent &#8211; but it will at least give you some peace while you try to bang out that next web masterpiece.</p>
<p>A final thought &#8211; it may even work to select the Reset option &#8211; seen above as &#8220;Reset &#8216;Dual Screen&#8217;&#8221;, but I haven&#8217;t tested that myself personally.  Drop a note if it you try that and works for you!</p>
<p>Happy coding! <img src='http://blog.miloco.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2010/03/dreamweaver-cs4-copypaste-bug-workaround.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Safari is the Browser Speed King</title>
		<link>http://blog.miloco.com/2009/12/safari-is-the-browser-speed-king.html</link>
		<comments>http://blog.miloco.com/2009/12/safari-is-the-browser-speed-king.html#comments</comments>
		<pubDate>Tue, 08 Dec 2009 21:34:25 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Browser Speed]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=1033</guid>
		<description><![CDATA[Wait, what!?
You heard it right.  Apparently the boys in Cupertino weren&#8217;t just spewing marketease.  Safari clocks in at 3.5 times faster that Firefox, 6 times faster than IE 8 and an amazing 42 times faster than IE 7.

Take a look at the full results on CNET.
Download Safari for the PC here.
]]></description>
			<content:encoded><![CDATA[<p>Wait, what!?</p>
<p>You heard it right.  Apparently the boys in Cupertino weren&#8217;t just spewing marketease.  Safari clocks in at 3.5 times faster that Firefox, 6 times faster than IE 8 and an amazing 42 times faster than IE 7.</p>
<p><a href="http://blog.miloco.com/wp-content/uploads/2009/12/pc_benchmarks1.jpg" rel="lightbox[1033]"><img class="alignnone size-full wp-image-1034" title="pc_benchmarks1" src="http://blog.miloco.com/wp-content/uploads/2009/12/pc_benchmarks1.jpg" alt="pc_benchmarks1" width="410" height="249" /></a></p>
<p>Take a look at the full results on <a title="CNET" href="http://crave.cnet.co.uk/software/0,39029471,49301219,00.htm" target="_blank">CNET</a>.</p>
<p>Download Safari for the PC <a title="Safari for the PC" href="http://www.apple.com/safari/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2009/12/safari-is-the-browser-speed-king.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change System-Wide Default Java Version on Mac OS X</title>
		<link>http://blog.miloco.com/2009/10/change-system-wide-default-java-version-on-mac-os-x.html</link>
		<comments>http://blog.miloco.com/2009/10/change-system-wide-default-java-version-on-mac-os-x.html#comments</comments>
		<pubDate>Mon, 05 Oct 2009 19:45:07 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[How To:]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=975</guid>
		<description><![CDATA[Changing the Java version on OS X is extremely easy.
Simply navigate to /Applications/Utilities/Java/Java Preferences.App and launch the app.  There you can set the version of Java to use for both Applets and Applications.
Keep in mind that running a java -version command from a terminal will only reflect the Java Preferences.App settings if you haven&#8217;t specified [...]]]></description>
			<content:encoded><![CDATA[<p>Changing the Java version on OS X is extremely easy.</p>
<p>Simply navigate to /Applications/Utilities/Java/Java Preferences.App and launch the app.  There you can set the version of Java to use for both Applets and Applications.</p>
<div id="attachment_978" class="wp-caption alignnone" style="width: 416px"><a href="http://blog.miloco.com/wp-content/uploads/2009/10/JavaPrefApp.png" rel="lightbox[975]"><img class="size-full wp-image-978    " title="JavaPrefApp" src="http://blog.miloco.com/wp-content/uploads/2009/10/JavaPrefApp.png" alt="Easy Java Version Selection in OS X" width="406" height="276" /></a><p class="wp-caption-text">Easy Java Version Selection in OS X</p></div>
<p>Keep in mind that running a <code>java -version</code> command from a terminal will only reflect the Java Preferences.App settings if you haven&#8217;t specified a <code>JAVA_HOME</code> in your <code>.bashrc</code> or <code>.profile</code>, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2009/10/change-system-wide-default-java-version-on-mac-os-x.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Login Page Plugin for WordPress</title>
		<link>http://blog.miloco.com/2009/05/custom-login-page-plugin-for-wordpress.html</link>
		<comments>http://blog.miloco.com/2009/05/custom-login-page-plugin-for-wordpress.html#comments</comments>
		<pubDate>Fri, 08 May 2009 08:18:26 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugin]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=929</guid>
		<description><![CDATA[Here&#8217;s an easy way to make your own custom login page for WordPress!  Takes 10 min tops, if you know the look you want.
Its a simple idea that makes this administrative task so much easier for an active site. This little WordPress plugin is great!
About the plugin from the Binary Moon page:
BM Custom Login is [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an easy way to make your own custom login page for WordPress!  Takes 10 min tops, if you know the look you want.</p>
<p>Its a simple idea that makes this administrative task so much easier for an active site. This little <a title="WordPress Page for Custom Login Plugin" href="http://wordpress.org/extend/plugins/bm-custom-login/" target="_blank">WordPress plugin</a> is great!</p>
<p>About the plugin from the <a title="Binary Moon Custom Login Plugin" href="http://www.binarymoon.co.uk/projects/bm-custom-login/" target="_blank">Binary Moon page</a>:</p>
<blockquote><p>BM Custom Login is a plugin I developed to give people an easy way to add a custom WordPress login screen to their WordPress powered blogs. The idea of the plugin is to ease WP upgrading since you will not need to repeatedly make the same changes; this is particularly useful when working with clients. The download contains the plugin and a handy little login screen Photoshop kit to speed up development of your own screens.</p></blockquote>
<div id="attachment_934" class="wp-caption alignleft" style="width: 242px"><a href="http://blog.miloco.com/wp-content/uploads/2009/05/mwmedialogin.png" rel="lightbox[929]"><img class="size-full wp-image-934" title="mwmedialogin" src="http://blog.miloco.com/wp-content/uploads/2009/05/mwmedialogin.png" alt="Custom login that I made in about 10 minutes..." width="232" height="221" /></a><p class="wp-caption-text">Custom login screen that I made in about 10 minutes...</p></div>
<p>All you have to do is use the Photoshop template to create your custom image.  Then you upload the new image to the appropriate plugin sub-directory.  That&#8217;s it!  Presto-change-o, your new login page is now active and upgrade proof.  Simple, elegant, easy.  What more can you ask for?</p>
<p>While I don&#8217;t use the plugin for this blog (I&#8217;m the only one that logs in here!), I do use it for other WordPress installs that are interactive with clients.  Its a very nice, easy to use addition to make your WP site look that much more refined.</p>
<p>Fantastic job Ben!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2009/05/custom-login-page-plugin-for-wordpress.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wordpress 2.7 Nested Comments</title>
		<link>http://blog.miloco.com/2009/03/wordpress-27-nested-comments.html</link>
		<comments>http://blog.miloco.com/2009/03/wordpress-27-nested-comments.html#comments</comments>
		<pubDate>Fri, 06 Mar 2009 20:35:51 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Wordpress 2.7]]></category>
		<category><![CDATA[WordPress Theme]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=843</guid>
		<description><![CDATA[Wordpress 2.7 features new threaded comments functionality out of the box.]]></description>
			<content:encoded><![CDATA[<p>You may have noticed the &#8220;enhanced&#8221; comments section that is now featured on my blog.</p>
<p>It allows for the threading of comments &#8211; meaning that you can reply to a SPECIFIC comment, so it keeps the any discussion more organized.  This is using a new standard feature of WordPress 2.7 that utilizes embedded Javascript handling of comment handling.  It does require certain <a title="Wordpress Codex" href="http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display" target="_blank">changes to your theme though</a>.  Once you&#8217;ve followed the theme change directions, you need to add style handlers to your CSS file to get the most out of the new enhanced display.  It can be overwhelming at first, but it is pretty simple over all.</p>
<p>Check out these two great places to start for examples of the comment styling: <a title="Performancing" href="http://performancing.com/7-great-examples-wordpress-threaded-comments" target="_blank">Performancing</a> and <a title="CDHarrison" href="http://cdharrison.com/2008/12/threaded-comments/" target="_blank">CDHarrison</a>.   Props to CDHarrison for my wholesale rip of his stylesheet for the comments section here.  I&#8217;ll undoubtably play with it to make it my own, but his example is so good it may be a while.  <img src='http://blog.miloco.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Leave a comment below to see it in action!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2009/03/wordpress-27-nested-comments.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Must Have Tool For RegEx Work</title>
		<link>http://blog.miloco.com/2009/02/must-have-tool-for-regex-work.html</link>
		<comments>http://blog.miloco.com/2009/02/must-have-tool-for-regex-work.html#comments</comments>
		<pubDate>Sun, 01 Feb 2009 11:32:34 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[online tools]]></category>
		<category><![CDATA[RegEx]]></category>
		<category><![CDATA[RegExr]]></category>
		<category><![CDATA[Regular Expressions]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=771</guid>
		<description><![CDATA[Like/Need Regular Expressions, but hate their complexity?  Never fear, RegExr is here!]]></description>
			<content:encoded><![CDATA[<p>Like RegEx, but dislike its complexity?</p>
<p>Never fear!  <a title="RegExr Web Tool" href="http://gskinner.com/RegExr/" target="_blank">RegExr </a>is here!  This is a great, must-have tool that allows you to remove the typical iterative guess-work loop that happens when writting Regular Expressions.  I don&#8217;t know about you, but normally, this is my RegEx process:</p>
<ol>
<li>Write what I <em>think</em> will work for a RegEx match.</li>
<li>Upload and test.</li>
<li>Crap, I&#8217;m wrong.</li>
<li>Write it again.</li>
<li>If you haven&#8217;t done this 5-7 times yet, Go To Step 2, otherwise Exit.</li>
</ol>
<p>Know what I mean?  RegEx is one of those things that I&#8217;ve used quite a bit over the years, but not enough to actually remember the syntax off-hand, like some can.  In fact, each time I use RegEx, I kinda have to relearn it a bit.  Thus, the iterative process above.</p>
<p>Well, RegExr ends all that, as it allows you to see what your expressions are matching in real time!  To quote <a title="Mr. Frank in Flavio" href="http://www.milowerx.com/animation/personal-films/flavio" target="_blank">Mr. Frank</a>: &#8220;Genius!!&#8221;</p>
<div id="attachment_773" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.miloco.com/wp-content/uploads/2009/02/regexrweb.png" rel="lightbox[771]"><img class="size-medium wp-image-773" title="RegExr Web Tool" src="http://blog.miloco.com/wp-content/uploads/2009/02/regexrweb-300x231.png" alt="RegExr" width="300" height="231" /></a><p class="wp-caption-text">A great tool to debug Regular Expressions</p></div>
<p>Its simple to use too.  All you have to do is enter some sample text that you&#8217;d like to match in the big text box provided, and then use the top entry area to start writing an expression.  Bits of the sample text that are matched by your expression will be highlighted, as you can see in the pic below.</p>
<div id="attachment_783" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.miloco.com/wp-content/uploads/2009/02/regexrwebdirections.png" rel="lightbox[771]"><img class="size-medium wp-image-783" title="Easy To Use Directions" src="http://blog.miloco.com/wp-content/uploads/2009/02/regexrwebdirections-300x260.png" alt="First, type in text that you want to match.  Second, start writing your expression and watch for highlights below." width="300" height="260" /></a><p class="wp-caption-text">First, type in text that you want to match.  Second, start writing your expression and watch for highlights below.</p></div>
<p>RegExr also has a Replace mode, that allows you to watch the replacements happen in real time.  This is particularly helpful when writing <a title="preg_replace PHP" href="http://us.php.net/preg-replace" target="_blank">preg_replace</a> PHP statements, or when you are using something like <a title="RedirectMatch for 301 Redirects" href="http://blog.miloco.com/2009/02/301-redirect-and-redirectmatch.html" target="_blank">RedirectMatch</a> for 301 URL redirects.</p>
<div id="attachment_778" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.miloco.com/wp-content/uploads/2009/02/regexrwebreplacemode.png" rel="lightbox[771]"><img class="size-medium wp-image-778" title="RegExr Replace Mode" src="http://blog.miloco.com/wp-content/uploads/2009/02/regexrwebreplacemode-300x257.png" alt="Replace mode is particularly helpful." width="300" height="257" /></a><p class="wp-caption-text">Replace mode is particularly helpful.</p></div>
<p>RegExr also has helpful light weight RegEx documentation and examples available right in the tool.  Even better, this great tool has a desktop version for download as well.  Just look in the lower right hand corner, under the docs section, for the current desktop download URL.  As of this writing, you can find the desktop tool <a title="RegExr Desktop Tool" href="http://www.gskinner.com/RegExr/desktop/" target="_blank">here</a>.</p>
<div id="attachment_779" class="wp-caption alignnone" style="width: 195px"><a href="http://blog.miloco.com/wp-content/uploads/2009/02/regexrwebdocdesktoplink.png" rel="lightbox[771]"><img class="size-medium wp-image-779" title="The Doc and Desktop Link" src="http://blog.miloco.com/wp-content/uploads/2009/02/regexrwebdocdesktoplink-185x300.png" alt="Using the built in RegEx documentation.  You can also see the Desktop Version link." width="185" height="300" /></a><p class="wp-caption-text">Using the built in RegEx documentation.  You can also see the Desktop Version link.</p></div>
<p>Best of all, this awesome tool is FREE!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2009/02/must-have-tool-for-regex-work.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>301 Redirect and RedirectMatch</title>
		<link>http://blog.miloco.com/2009/02/301-redirect-and-redirectmatch.html</link>
		<comments>http://blog.miloco.com/2009/02/301-redirect-and-redirectmatch.html#comments</comments>
		<pubDate>Sun, 01 Feb 2009 10:06:02 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[301 redirect]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[migrate from ASP]]></category>
		<category><![CDATA[modrewrite]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=753</guid>
		<description><![CDATA[Here's a simple way to migrate an ASP based web site to WordPress without a bunch of ugly 404 errors:  Use your .htaccess file and a simple 301 RedirectMatch!]]></description>
			<content:encoded><![CDATA[<p>There is a lot of information available on the net for how to use a 301 redirect in a .htaccess file.</p>
<p>But, largely it all tells you how to do the same 4 or 5 things.  What if I needed something different?  SOL, baby.</p>
<p>Recently I worked on migrating an old ASP based website to a new WordPress installation.  Everything went pretty well, except that the old site was pretty darn popular and there are literally thousands of links to it all over the net.  We didn&#8217;t want to lose those links and dump them all into an ugly 404 not-found error page, but yet given the fairly sweeping changes that were made, there was no real way to do a one-to-one mapping from the old pages to the new.</p>
<p>As a result, we wanted to take <em>any</em> ASP page call and simply redirect it to the root of the site.  There is an added challenge in that the site actually has multiple domains pointing to it, which added a bit of complexity.  I had tried modrewrite changes, but they didn&#8217;t seem to be working very well.  It also seemed a bit heavy handed, when what I really wanted to do was a &#8220;simple&#8221; redirect.</p>
<p>As you may know, there is a mechanism to do that, and it is simply called <code>Redirect</code>, and it works as follows:</p>
<p><code>Redirect 301 oldfile newfile<br />
</code></p>
<p>Unfortunately, the syntax only works for explicit matches, meaning that you have to specify EVERY .asp page and explicitly point it to another location. UGH.  Not good for a site with well over a hundred pages of content.  Even if I was willing to type them all in, since we wanted to redirect everything to the root anyway, adding all of these redirects would be <em>huge</em> waste of processing overhead.</p>
<p>What to do?  After reading way too much information online and slogging through the Apache docs for a few hours, I stumbled across <code>RedirectMatch</code>, a great way to add a little regular expression logic to your redirect calls.</p>
<p>Using this simple tool, I was easily able to redirect ANY .asp file to the root.</p>
<p><code>RedirectMatch 301 (.*).asp /</code></p>
<p>Simple. Elegant.  No modrewrite.</p>
<p>Of course, now that I know what I&#8217;m looking for, finding it again would be pretty easy.  <img src='http://blog.miloco.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Googling <code>301 redirect regex match</code> gives me the right answer on the second hit.  Go figure!</p>
<p>Unfortunately, that&#8217;s actually NOT where I found the info.  That was a much more convoluted process.  A shout out to <a title="Web Weaver" href="http://www.webweaver.nu/html-tips/web-redirection.shtml" target="_blank">WebWeaver</a> for introducing me to RedirectMatch!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2009/02/301-redirect-and-redirectmatch.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Goes Kaboom</title>
		<link>http://blog.miloco.com/2009/01/facebook-goes-kaboom.html</link>
		<comments>http://blog.miloco.com/2009/01/facebook-goes-kaboom.html#comments</comments>
		<pubDate>Sun, 11 Jan 2009 20:10:23 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[Blunders]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=704</guid>
		<description><![CDATA[Facebook is looking a bit pale today.]]></description>
			<content:encoded><![CDATA[<p>This is probably not what someone had in mind for whatever change they were making at Facebook.   Unless of course it was malicious, in which case it probably WAS what they had in mind.</p>
<p>Either way&#8230;  OUCH.</p>
<div id="attachment_705" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.miloco.com/wp-content/uploads/2009/01/facebookbooboo.png" rel="lightbox[704]"><img class="size-medium wp-image-705" title="facebook kaboom" src="http://blog.miloco.com/wp-content/uploads/2009/01/facebookbooboo-300x195.png" alt="facebook kaboom" width="300" height="195" /></a><p class="wp-caption-text">Facebook is looking a bit pale today.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2009/01/facebook-goes-kaboom.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To: Replace a Partial String in MySQL</title>
		<link>http://blog.miloco.com/2009/01/how-to-replace-a-partial-string-in-mysql.html</link>
		<comments>http://blog.miloco.com/2009/01/how-to-replace-a-partial-string-in-mysql.html#comments</comments>
		<pubDate>Fri, 02 Jan 2009 03:59:28 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[How To:]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=667</guid>
		<description><![CDATA[How to replace a partial string in a MySQL database with nothing but SQL, and a real world example of why you might just need to do so one day.]]></description>
			<content:encoded><![CDATA[<p>When developing web sites, sometimes things change from how they were in development to how they need to be in production, especially when it comes to machine names and IP addresses, etc.  If these values are stored in a database, chances are you&#8217;ll need some quick SQL magic to help finalize the migration.</p>
<p>For those of you that just want the info, here you go.  This is a quick and easy way to directly replace one string with another for all rows in a column/field.  <strong>DISCLAIMER: </strong>If you don&#8217;t know what you are doing, you can really screw up your database.  Please take care to do a backup and by all means, if you can&#8217;t fix what you break, don&#8217;t attempt this.</p>
<p><code>UPDATE MyDB.MyTable<br />
SET </code><code>MyDB.MyTable</code><br />
<code> = REPLACE(</code><code>MyDB.MyTable</code><code>.MyField,'OldString','NewString')<br />
WHERE </code><code>MyDB.MyTable.MyField </code><code>like '%OldString%';<br />
</code></p>
<p><span id="more-667"></span></p>
<p><em><strong>Real World Usage:</strong></em></p>
<p>I just ran into this issue when implementing our new <a title="Milowerx Media" href="http://www.milowerx.com" target="_blank">Milowerx Media website</a>.  My brother and I have been setting up the site on a development server that was hosted as a sub domain of the <em>milowerx.com </em>root.  Doing so allowed us to keep up the old site as <em>www.milowerx.com</em> while we created the new site.  When we were finished with the new site, all I needed to do was change the DNS value for the <em>www </em>entry and tell the new server that it was <em>www </em>and not the development subdomain <em>wpdev</em>.</p>
<p>As I&#8217;ve probably mentioned before, I use WordPress to do just about any web related task these days, and the new Milowerx site is no exception.  There are several nice things about using WordPress as a Content Management System.  It is extremely flexible, has a great user community that contributes tons of useful plugins and finally it is extremely stable.</p>
<p>But, this post is about SQL, not WordPress.  I bring up WordPress however because it is a completely dynamic Web Content Publishing platform that is driven entirely by PHP files reading values in a database.  One of the plugins that we used was <a title="WordTube" href="http://wordpress.org/extend/plugins/wordtube/" target="_blank">WordTube</a>, which we chose to help manage the oodles and oodles of media that we have generated over the years.  Its a great plugin, but unfortunately it uses explicit URLs that are stored in the database to generate it playlist values.  When migrating the server from the dev environment to production, all of the references were calling the wrong URL.</p>
<p>Essentially, I needed to find every instance of the development server name <em>wpdev</em> and replace it with <em>www</em> for all of the WordTube tables.  To do so, I ran two MySQL queries that did the trick.</p>
<p><code>UPDATE MyWPDB.wp_wordtube<br />
SET </code><code>MyWPDB</code><code>.wp_wordtube.image<br />
= REPLACE(</code><code>MyWPDB.</code><code>wp_wordtube.image,'http://wpdev.','http://www.')<br />
WHERE </code><code>MyWPDB.</code><code>wp_wordtube.image like '%http://wpdev.%';<br />
</code></p>
<p>and</p>
<p><code>UPDATE MyWPDB.wp_wordtube<br />
SET </code><code>MyWPDB</code><code>.wp_wordtube.file<br />
= REPLACE(</code><code>MyWPDB.</code><code>wp_wordtube.file,'http://wpdev.','http://www.')<br />
WHERE </code><code>MyWPDB.</code><code>wp_wordtube.file like '%http://wpdev.%';<br />
</code></p>
<p>The first query updates the thumbnail images; the second updates the actual movie files.  Presto, change-o, it all works.  <img src='http://blog.miloco.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Now, for those of you who know DNS and Wordpress, you may be thinking &#8220;Why didn&#8217;t you just mirror <em>wpdev</em> to <em>www</em> so that any call to <em>wpdev </em>would end up pointing in the new, right location?&#8221;  Well, good question.  The answer is that WordTube seems to handle local files one way and remote files another.  Leaving the <em>wpdev</em> reference changed the way thumbnails and movie files were handled in the playlist.  So, technically it would have worked, but the outcome wasn&#8217;t optimal.  And, two easy SQL statements was much easier than slogging through the code of WordTube.  <img src='http://blog.miloco.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2009/01/how-to-replace-a-partial-string-in-mysql.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Support Wikipedia</title>
		<link>http://blog.miloco.com/2008/12/support-wikipedia.html</link>
		<comments>http://blog.miloco.com/2008/12/support-wikipedia.html#comments</comments>
		<pubDate>Wed, 31 Dec 2008 21:59:50 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[Wikipedia]]></category>
		<category><![CDATA[Worthwhile Causes]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=657</guid>
		<description><![CDATA[Please thoughtfully consider a small donation to the Wikipedia Foundation.  Do your part to help keep the worlds largest source of information free of ads or fees of any kind.  A few dollars can go a long way...]]></description>
			<content:encoded><![CDATA[<p>Have you ever used Wikipedia?  I do &#8211; all the time.</p>
<p>If you don&#8217;t contribute articles, information or services to them in direct proportion to your usage, please consider giving a small donation to help them stay afloat and <strong><em>advertisement free</em>.</strong></p>
<p>Wikipedia has changed the face of collective global information.  While it certainly has some flaws, the overall benefit to humanity is quite considerable.  Do your part and pitch in where you can!</p>
<p><a href="http://wikimediafoundation.org/wiki/Donate/en"><img src="http://upload.wikimedia.org/wikipedia/foundation/1/1a/2008_fundraiser_banner_button-en.png" border="0" alt="Wikipedia Affiliate Button" width="90%" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2008/12/support-wikipedia.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drive-By Virus</title>
		<link>http://blog.miloco.com/2008/12/drive-by-virus.html</link>
		<comments>http://blog.miloco.com/2008/12/drive-by-virus.html#comments</comments>
		<pubDate>Wed, 31 Dec 2008 10:03:27 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[Spyware]]></category>
		<category><![CDATA[Virus]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=652</guid>
		<description><![CDATA[Drive-By viruses are a reality.  I'm a highly trained technical professional, yet my precious system and all its fancy protection was forcibly raped and pillaged in under 30 seconds with nothing more than a simple one-click web page visit picked directly from a Google search result.  OUCH.]]></description>
			<content:encoded><![CDATA[<p>Well, it was bound to happen one day &#8211; I got a drive-by virus.</p>
<p>A friend of mine was moving an older program from one PC to another and didn&#8217;t have the disk any longer and asked me if I still had a copy.  No luck there &#8211; so, I figured I&#8217;d search the net to see if you could buy old copies of the program on the cheap.  A few Google searches later had me browsing a couple of link-trawler sites that didn&#8217;t provide much useful information.</p>
<p>One site &#8211; I believe it was oldapps.com, I really can&#8217;t be certain &#8211; left me with a little present that I won&#8217;t soon forget: a brand spanking new copy of Virtumonde (aka Trojan.Vundo.H).</p>
<p>Unfortunately, that present was left with nary a blip on my screen.  Minding my own business, I suddenly got an authentic Windows message stating that my Windows Firewall was no longer active.  You know that sinking feeling you get in your gut when something horrible has just happened and you start to slowly comprehend the far reaching ramifications of what you have just witnessed?  Yeah&#8230;  I wish I could say that I felt that way and immediately disconnected my PC from the net, but no luck.  I was a real Noob, and actually thought, &#8220;Dang Microsoft, when are you going to straighten out your crapware once and for all?&#8221;.</p>
<p>Seriously, I thought Windows Update had pooped the bed or something&#8230;  I simply re-enabled the firewall, and everything was fine.  No harm done, right?  Ahem&#8230;</p>
<p>I kept browsing around, and then got another Windows Security Center message saying that my Virus protection was no longer active&#8230;</p>
<p>WTF?</p>
<p>NOW you can queue the sinking feeling&#8230;</p>
<p><span id="more-652"></span>I dashed under my desk and pulled my Ethernet cord and sat back with a stunned look on my face.  I had just been infected.</p>
<p>No email&#8217;s with attachments that I executed in noobish haste; no foolishly downloaded software that I simply had to test out;  not even a pop-up stupidly clicked by a mouse-o.</p>
<p>Nada.</p>
<p>All I did was visit the web page for a bit, saw that there was no good information there and then I closed the tab.</p>
<p>30 seconds tops.</p>
<p>INFECTED.</p>
<p>What is the world coming to?  I&#8217;m a highly trained technical professional, yet my precious system and all its fancy protection was forcibly raped and pillaged in under 30 seconds with a simple web page visit &#8211; a page that was visited DIRECTLY from a Google search result&#8230;</p>
<p>How is Joe Public&#8217;s Grandmother supposed to deal with these bastards?  Good question!</p>
<p>The cleanup wasn&#8217;t pretty, but fortunately there IS a happy ending (as far as I can tell&#8230;)</p>
<p>First off, AVG Free didn&#8217;t mind the ass pounding my machine was being forcibly subjected to &#8211; it seemed to just pour itself a neat single-malt and pull up a chair to watch the fun.  Normally AVG is a very good virus scanner.  I trusted it.</p>
<p>Secondly, Lavasoft&#8217;s Ad-Aware did find the problem, but &#8220;Fixing&#8221; the issue was a different matter.  Reboot, rescan &#8211; same results.  The bugger was still there.  At least it put a name to my foe &#8211; Virtumonde.</p>
<p>Supposedly the removal tool for Virtumonde has been built in to Ad-Aware, but it did nothing at all to resolve the issue.  Rather, it erroneously reported that the threat was safely removed, when in fact it really wasn&#8217;t.  Very helpful.</p>
<p>Thirdly, my hardware firewall and the Windows firewall both did absolutely nothing to stop the attack.</p>
<p>Fourthly, Hijack-This reported nothing out of the ordinary, as Virtumonde apparently uses Explorer hooks &#8211; meaning Explorer itself is the bad guy.  You just sit there watching Explorer crap all over itself, helpless&#8230;</p>
<p>Nothing in the Registry Run section, nothing in Services, no batch files. Nada to grab on to&#8230;  This bugger even randomly crashes things like Ad-Aware and AVG when you try to scan your machine with them in an attempt to fix the problem.  It even pops up a DCOM error message and then gives you 30 seconds before it reboots the machine.  Apparently, it really likes its new home.  Nice touch.</p>
<p>Oh, did I mention the 4 or 5 &#8220;Virus Scanners&#8221; that Virtumonde tries to install over and over again?  Yeah, I don&#8217;t think I mentioned those yet&#8230;</p>
<p>So, exactly how are you supposed to fix something like this?  Virtumonde actually blocks access to sites like Trend-Micro and Symantec, so your options are fairly limited.  Even booting into Safe Mode didn&#8217;t stop the system from getting screwed with.  In fact, it was in safe mode that all of the Gay Fetish Porn links started showing up on my desktop.  GREAT &#8211; that was clearly a step in the right direction.</p>
<p>The ultimate cure?  I used a separate PC and a USB Key to download Malwarebytes Anti-Malware installer from <a title="malwarebytes.org" href="http://www.malwarebytes.org/" target="_blank">Malwarebytes.org</a>.  This program really IS like bringing an <a title="Heckler and Koch UMP" href="http://en.wikipedia.org/wiki/Heckler_&amp;_Koch_UMP" target="_blank">HK-UMP</a> to a stick fight.</p>
<p>Yet, even this awesome tool took several tries to remove Virtumonde  completely.  Malwarebytes <em>did </em>keep reporting different infection issues  after each reboot.  Oddly enough this was strangely comforting, for at least I knew that I was getting <em>somewhere</em>.  Hopefully the light at the end of the tunnel wasn&#8217;t an oncoming train.  <img src='http://blog.miloco.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Four scans with Malwarebytes later, everything was being reported as clean by several different malware scanners.</p>
<p>Oh, speaking of oddly enough &#8211; AVG finally DID decide to register a threat and throw up a flag.  What did it catch?  The Malwarebytes executable!!  No, I&#8217;m not kidding.  Very helpful AVG.  After at least 5 separate Trojans were maliciously installed on my machine one after another with nary a peep from you, suddenly you decide to flag the tool that is actually doing the job that you should have been doing all along!  WTF?</p>
<p>Wow, time to look for a new Virus Scanner&#8230;  Hey, don&#8217;t get me wrong: AVG Free has been great.  Powerful stuff, and the price is right.  But this last escapade sure has left a bad taste in my mouth.  Maybe the Pay-For version would have detected the original infection, but I&#8217;m guessing probably not.</p>
<p>The moral of the story?  Apparently, drive-by digital system rape is a &#8220;GO&#8221;.  Be careful out there, OK?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2008/12/drive-by-virus.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Banned on Technorati!</title>
		<link>http://blog.miloco.com/2008/12/banned-on-technorati.html</link>
		<comments>http://blog.miloco.com/2008/12/banned-on-technorati.html#comments</comments>
		<pubDate>Tue, 16 Dec 2008 02:44:57 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=620</guid>
		<description><![CDATA[Technorati has banned me, and worse yet, won't respond to my inquiries as to why...]]></description>
			<content:encoded><![CDATA[<p>Apparently my blogging is an evil that shan&#8217;t be unleashed upon the world, or so say the folks at Technorati.</p>
<p>Why have my insane ramblings been banned?  I know not why.</p>
<p>I first noticed something was up when I logged in to Technorati to update a few items in my profile.  For some reason my blog claim was gone!?  I looked around to see if I could spot a reason why, but there was nothing there indicating the reason why my little patch of cyberspace had disappeared.</p>
<p>Oh well, no problem, I figured I&#8217;d just reclaim my blog, as I&#8217;m not one of those evil &#8220;Authority&#8221; wranglers who does things to specifically increase their ranking, and frankly didn&#8217;t care if I had to start afresh with my ranking.  Truly, I don&#8217;t care much about my ranking on Technorati, but I do like being listed.</p>
<p><img class="alignnone size-full wp-image-621" title="technoratiban" src="http://blog.miloco.com/wp-content/uploads/2008/12/technoratiban.png" alt="technoratiban" width="454" height="137" /></p>
<p>You can imagine my surprise when I was greeted by the above message!   <strong>I&#8217;VE </strong>been flagged!?  Good heavens, why?</p>
<p>Surfing on over the the <a title="Blog Quality Guidelines at Technorati" href="http://support.technorati.com/guidelines/" target="_blank">Blog Quality Guidelines</a> yields a fairly benign list of DO&#8217;s and DON&#8217;Ts that I believe I am absolutely in compliance with.  My use of WordPress covers most of the technical requirements, so the easily drawn conclusion is that they somehow dislike my content, style or topics?</p>
<p>I don&#8217;t over-tag, post spam or over-link.   I don&#8217;t post with commercial intent.  I don&#8217;t belong to even a single affiliate system.  In short, I don&#8217;t do ANYTHING to try to game their damn system.   Yet, I&#8217;m banned.</p>
<p>So, I figured it was a simple case of misunderstanding.  As their &#8220;Troubleshooting&#8221; section advises, I filled out their support contact form and have waited for a response.  A month has gone by and I haven&#8217;t heard a thing.  Google can respond within a day to issues, despite being used by 10 bazillion times the number of people.  In fact, they sometimes respond within minutes.  Technorati?  Not within a month.</p>
<p>Well Technorati, you can take your haughty attitude and stick it up your ass, right next to your head.</p>
<p>Consider yourselves BANNED TOO!  Never will a Technorati tag be used on this site again.  <strong>HA!  Take that you arrogant bastards!</strong></p>
<p>And, if YOU have a complaint, you can use MY complaint form below.</p>
<p><a href="http://www.allposters.com/gallery.asp?aid=1245209920&amp;apnum=1651551&amp;TID1=9&amp;LinkTypeID=2&amp;PosterTypeID=1&amp;DestType=7&amp;Referrer%20=http://www.squidoo.com/Tin-Wall-Signs"><img class="alignnone size-full wp-image-622" title="handgrenade" src="http://blog.miloco.com/wp-content/uploads/2008/12/handgrenade.jpg" alt="handgrenade" width="358" height="450" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2008/12/banned-on-technorati.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin Generator</title>
		<link>http://blog.miloco.com/2008/12/wordpress-plugin-generator.html</link>
		<comments>http://blog.miloco.com/2008/12/wordpress-plugin-generator.html#comments</comments>
		<pubDate>Tue, 16 Dec 2008 01:52:23 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[WordPress plugin]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=612</guid>
		<description><![CDATA[This is a neat tool if you like to mess around with WordPress Plugins.

Its a Plugin Generator that will generate a customized code skeleton for your newest plugin idea &#8211; pretty neat!
The little web app asks you a bunch of questions, like what the plug in should be named, does it require saved settings, etc. [...]]]></description>
			<content:encoded><![CDATA[<p>This is a neat tool if you like to mess around with WordPress Plugins.</p>
<p><a href="http://www.wp-fun.co.uk/wizzards/fun-with-plugins/"><img class="size-full wp-image-613 alignleft" style="margin-left: 5px; margin-right: 5px;" title="plugingenerator" src="http://blog.miloco.com/wp-content/uploads/2008/12/plugingenerator.png" alt="plugingenerator" width="160" height="53" /></a></p>
<p>Its a <a title="Plugin Generator" href="http://www.wp-fun.co.uk/wizzards/fun-with-plugins/" target="_blank">Plugin Generator</a> that will generate a customized code skeleton for your newest plugin idea &#8211; pretty neat!</p>
<p>The little web app asks you a bunch of questions, like what the plug in should be named, does it require saved settings, etc. and then it spits out a tidy zip file that contains a new plugin.php file along with any other files that are required based upon your answers.   It supports a number of neat options, like making a new DB table, Shortcodes, Filters, Admin Menu Integration, etc.</p>
<p>Of course, the resulting code doesn&#8217;t DO very much &#8211; its just the structure that you need to make a plugin.  You have to add the actual functionality with your coding wizardry.  Still, this is a nice way to make sure that you&#8217;ve covered all your bases when writing a new plugin.  It simply shortcuts the process of Idea -&gt; Reality, which is always welcome in my book.</p>
<p>Check it out!</p>
<p><strong>UPDATE</strong>:  Check out the new URL:  <a title="New URL" href="http://www.funwithwizards.com/" target="_blank">http://www.funwithwizards.com/</a> for the latest version and some other cool tools!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2008/12/wordpress-plugin-generator.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A New Way to Put Picasa Slideshows in Wordpress</title>
		<link>http://blog.miloco.com/2008/11/a-new-way-to-put-picasa-slideshows-in-wordpress.html</link>
		<comments>http://blog.miloco.com/2008/11/a-new-way-to-put-picasa-slideshows-in-wordpress.html#comments</comments>
		<pubDate>Thu, 27 Nov 2008 07:32:11 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Picasa]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=549</guid>
		<description><![CDATA[My original post on this topic got a lot of traffic, so it seems that people are interested in this topic.
As a result, I&#8217;ve written a new Wordpress plugin called Postcasa to help people add a simple Picasa Slideshows inline to their posts.
It is extremely simple to use.  All you have to do is [...]]]></description>
			<content:encoded><![CDATA[<p>My <a title="Original Post" href="http://blog.miloco.com/2007/10/how-to-put-picasa-slideshows-in-wordpress.html" target="_blank">original post</a> on this topic got a lot of traffic, so it seems that people are interested in this topic.</p>
<p>As a result, I&#8217;ve written a new Wordpress plugin called <a href="http://blog.miloco.com/postcasa">Postcasa</a> to help people add a simple Picasa Slideshows inline to their posts.</p>
<p>It is extremely simple to use.  All you have to do is put the Picasa RSS link between this simple shortcode, and the plugin does the rest.</p>
<p><em>Example:</em></p>
<p><code>&#91;postcasa]http://MyRSSurl&#91;/postcasa&#93;</code><br/><br/>easily becomes:</p>
<p class="postcasa" align="left"><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="288" height="192" flashvars="host=picasaweb.google.com&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmiloandrew%2Falbumid%2F5273127970894080577%3Falt%3Drss%26kind%3Dphoto%26authkey%3DVWY2bThuIvM%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
<p>Head on over to the <a href="http://blog.miloco.com/postcasa">Postcasa homepage</a> to get the code and peruse the options!  Adding Picasa slideshows to your posts has never been easier!</p>
<p>Examples of what&#8217;s possible:</p>
<p><code>&#91;postcasa size=small]http://MyRSSurl&#91;/postcasa&#93;</code><br />
<p class="postcasa" align="left"><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="144" height="96" flashvars="host=picasaweb.google.com&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmiloandrew%2Falbumid%2F5273127970894080577%3Falt%3Drss%26kind%3Dphoto%26authkey%3DVWY2bThuIvM%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p></p>
<p><code>&#91;postcasa width=100 height=100 align=center]http://MyRSSurl&#91;/postcasa&#93;</code><br />
<p class="postcasa" align="center"><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="100" height="100" flashvars="host=picasaweb.google.com&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmiloandrew%2Falbumid%2F5273127970894080577%3Falt%3Drss%26kind%3Dphoto%26authkey%3DVWY2bThuIvM%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p></p>
<p><code>&#91;postcasa size=small align=right bgcolor=0fb2c3 showcaptions=yes]http://MyRSSurl&#91;/postcasa&#93;</code><br />
<p class="postcasa" align="right"><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="144" height="96" flashvars="host=picasaweb.google.com&RGB=0x0fb2c3&captions=1&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmiloandrew%2Falbumid%2F5273127970894080577%3Falt%3Drss%26kind%3Dphoto%26authkey%3DVWY2bThuIvM%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2008/11/a-new-way-to-put-picasa-slideshows-in-wordpress.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPTouch: A Custom Wordpress Theme for the iPhone Browser</title>
		<link>http://blog.miloco.com/2008/11/wptouch-a-custom-wordpress-theme-for-the-iphone-browser.html</link>
		<comments>http://blog.miloco.com/2008/11/wptouch-a-custom-wordpress-theme-for-the-iphone-browser.html#comments</comments>
		<pubDate>Tue, 25 Nov 2008 06:43:15 +0000</pubDate>
		<dc:creator>Andrew Milo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Web Dev]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[WordPress plugin]]></category>

		<guid isPermaLink="false">http://blog.miloco.com/?p=509</guid>
		<description><![CDATA[With the use of the iPhone and iPod Touch growing every day, maybe it makes sense to have a special view of your blog optimized for their included browser.
The iPhone and iPod Touch web browsing feature is pretty neat (from what I&#8217;ve seen), yet a full sized blog site is still a bit hard to [...]]]></description>
			<content:encoded><![CDATA[<p>With the use of the iPhone and iPod Touch growing every day, maybe it makes sense to have a special view of your blog optimized for their included browser.</p>
<div id="attachment_510" class="wp-caption alignright" style="width: 249px"><a href="http://blog.miloco.com/wp-content/uploads/2008/11/picture-1.png" rel="lightbox[509]"><img class="size-full wp-image-510" title="WPtouch Theme" src="http://blog.miloco.com/wp-content/uploads/2008/11/picture-1.png" alt="My blog as seen through WPtouch" width="239" height="441" /></a><p class="wp-caption-text">My blog as seen through WPtouch</p></div>
<p>The iPhone and iPod Touch web browsing feature is pretty neat (from what I&#8217;ve seen), yet a full sized blog site is still a bit hard to see even in horizontal mode.</p>
<p>Enter <a title="WPTouch" href="http://wordpress.org/extend/plugins/wptouch/" target="_blank">WPtouch</a>.</p>
<p>WPtouch formats your Wordpress blog with an iPhone specific (and reminiscent) theme, complete with Ajax loading articles and effects. The theme only appears to users who are viewing your online masterpiece from an iPhone or iPod touch.</p>
<p>Of course, it can only go so far &#8211; Flash, etc still won&#8217;t work on the iPhone.  Shame on you two, Adobe and Apple.  Can&#8217;t you work your crap out and stop screwing up the world this way?</p>
<p>Anyway, I digress.  Installation of WPtouch is a snap: simply upload the plugin folder to your webhost and enable it from Admin&#8217;s plugin screen.  After it is enabled, you can cruise on over to the Admin Settings -&gt; WPtouch screen to set the various options that the theme supports.  Settings include the icons you want the theme to use verification of certain compatibility issues with the plugin&#8217;s capabilities.  Once you are satisfied, simply save your options to fully enable the new theme.</p>
<p>Easy-peasy.</p>
<p>Taking your new look and feel for a spin however is a different matter completely.  While there are some iPhone emulators out there, only one that I know of semi-accurately mimics the actual web browser by making an iPhone User Agent setting available.  This is essential to actually see the changes that WPtouch makes to your blog.</p>
<p>The problem is that to use the accurate emulator requires using a Mac.  If you happen to be one of the enlightened few (haha, cool your jets, I&#8217;m writing this on a PC!) cruise on over and download <a title="iPhoney Link" href="http://www.marketcircle.com/iphoney" target="_blank">iPhoney</a>, a nifty little Mac app that allows you to emulate the iPhone right from your desktop.  You can even &#8220;rotate&#8221; the phone to see what landscape view looks like.  Pretty neat!</p>
<p>Sorry &#8211; PC users need not apply.   If you have nary a measly hunk of Cupertino Lovin&#8217; readily available for use, try <a title="iPhoneTester" href="http://www.iphonetester.com" target="_blank">iPhoneTester</a> instead.  Not as cool (no user agent switching, etc.), but it gives you an idea of what your regular theme will look like on the iPhone.  Even with this, for the full experience, you&#8217;ll need <a title="Safari for the PC" href="http://www.apple.com/safari/download/" target="_blank">Safari on your PC</a>.  Yes, I did just say that.</p>
<p>Of course, if you are an Apple Fanboy who ISN&#8217;T locked into a long term relationship for RIM Blackberry devices and therefore addicted to free-basing their direct push MS-Exchange crack, you can just fork over yer cash and get a darn iPhone.  Lucky buggers.  Last option is to bug one of your cooler friends to let you borrow their iPhone.  Who knows, you may even get a subscriber out of the deal! <img src='http://blog.miloco.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Either way, remember that your normal theme will still be the go-to look for all other browsers, so if you surf back to your blog from your normal Firefox, IE or Chrome, it should all look as it did sans-WPtouch.  Only the iPhone and iPod Touch users will see the new theme.  WPtouch even gives them the option to switch back to your normal theme if for some reason that is preferable.</p>
<p>Overall, this is a great idea for a Wordpress plugin and I&#8217;m fairly impressed with the apparent quality of the software.  It seems very professional, is easy to use and did what it was supposed to do on the first try.  In my book, that goes a long way, and always will!</p>
<p>I&#8217;ll post again with any other info as it become apparent.</p>
<p>In the meantime &#8211; a big shout out to <a title="Bravenewcode Website" href="http://www.bravenewcode.com/wptouch/" target="_blank">Dale and Duane</a> for their great work!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.miloco.com/2008/11/wptouch-a-custom-wordpress-theme-for-the-iphone-browser.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
