<?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>IT Blog</title>
	<atom:link href="http://www.techfromhel.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.techfromhel.com</link>
	<description>Information Technology - our Life</description>
	<lastBuildDate>Tue, 26 Jul 2011 13:21:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Software testing for WordPress</title>
		<link>http://www.techfromhel.com/2011/07/software-testing-for-wordpress/</link>
		<comments>http://www.techfromhel.com/2011/07/software-testing-for-wordpress/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 13:21:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[software testing]]></category>

		<guid isPermaLink="false">http://www.techfromhel.com/?p=31</guid>
		<description><![CDATA[<p>Software testing for WordPress is first of all aimed in attributing the and evaluating the abilities of the WordPress blog program or the system of any type. It also means the determination of its needs so that they will meet the required results perfectly. The program testers are rather critical to the programs they work [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Software testing </strong>for WordPress is first of all aimed in attributing the and evaluating the abilities of the WordPress blog program or the system of any type. It also means the determination of its needs so that they will meet the required results perfectly. The program testers are rather critical to the programs they work with, the whole process is the complicated art, as the understanding of the programs they’re dealing with is considerably limited.<br />
Another difficulty in the <a href="http://www.a1qa.com"><strong>software testing</strong></a> lays in the complexity of the WordPress software. If its plugins are too complicated, there’s no way the person will be able to test it throughout. Some of us tend to forget that testing is actually much more them just debugging process. The main purpose of the testing is actually the verification, assurance and validation, as well as the estimation of the reliability. There are types of testing that are generally used in the way of generic metrics. The main areas of testing are usually the correctness and reliability tests. The testing itself is said to be the major trade off between the time, quality and budget.<br />
The software testing enables you to check the blog program before you release it to the audience. The test reveals the true quality of the WordPress-based product and helps to correct the mistakes before they affect the image of your company and have the drastic influence on your sales.<br />
<strong>After the proper testing you will definitely know that your WordPress software:</strong><br />
-	has no defects;<br />
-	doesn’t perform any undesirable behavior;<br />
-	has the appropriate design and is nicely developed;<br />
-	performs the expected kind of work;<br />
-	all the same characteristics can be easily implemented.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techfromhel.com/2011/07/software-testing-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flv Videos in a Thickbox</title>
		<link>http://www.techfromhel.com/2011/05/flv-videos-in-a-thickbox/</link>
		<comments>http://www.techfromhel.com/2011/05/flv-videos-in-a-thickbox/#comments</comments>
		<pubDate>Tue, 10 May 2011 14:15:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[thickbox]]></category>
		<category><![CDATA[video embed]]></category>

		<guid isPermaLink="false">http://www.techfromhel.com/?p=12</guid>
		<description><![CDATA[Embedding Videos: Flv Videos in a Thickbox <p>NOTE: This is an updated version of an article I originally wrote on September 6, 2007 that was posted on <a href="http://www.supernaturalstation.org/tech-tools/flv-video-thickbox/">SupernaturalStation.org</a>.</p> Step-by-step instructions on how to display a flash video (.flv) inside a thickbox* using JW&#8217;s Flvplayer <p>For those of you wondering how to implement JW&#8217;s Flv player inside [...]]]></description>
			<content:encoded><![CDATA[<h3>Embedding Videos: Flv Videos in a Thickbox</h3>
<p>NOTE: This is an updated version of an article I originally wrote on September 6, 2007 that was posted on <a href="http://www.supernaturalstation.org/tech-tools/flv-video-thickbox/">SupernaturalStation.org</a>.</p>
<h4>Step-by-step instructions on how to display a flash video (.flv) inside a thickbox* using JW&#8217;s Flvplayer</h4>
<p>For those of you wondering how to implement JW&#8217;s Flv player inside a Thickbox, it is actually quite simple. Here&#8217;s how:</p>
<ol>
<li><strong>If you don&#8217;t already have them, download jquery and ThickBox 3 and add them to your page&#8217;s head section</strong>jquery.js is available at <a href="http://docs.jquery.com/Downloading_jQuery">docs.jquery.com/Downloading_jQuery</a>.  ThickBox 3.1 is a group of files and images (thickbox.js,  thickbox-compressed.js, thickbox.css, loadingAnimation.gif, and  macFFhack.png) located at <a href="http://jquery.com/demo/thickbox/">jquery.com/demos/thickbox</a>. Download all the Thickbox files and install them in a single common directory, “thickbox”, on your web server.In your document head, add javascript links to jquery.js and  thickbox.js,  a style link for thickbox.css, and a javascript variable  definition that points to “loadinganimation.gif”, a graphic that  displays when thickbox is slow to load.<br />
<blockquote><p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;jquery.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;thickbox/thickbox.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt; var tb_pathToImage = &#8220;thickbox/loadingAnimation.gif&#8221;;&lt;/script&gt;<br />
&lt;style type=&#8221;text/css&#8221; media=&#8221;screen&#8221;&gt;@import &#8220;thickbox/thickbox.css&#8221;;&lt;/style&gt;</p></blockquote>
<p>Note: If your web site is on a slow server or if you just want to  keep your page load speed fast, you can replace jquery.js and  thickbox.js with their faster loading, compressed versions,  jquery-packed.js and thickbox-compressed.js, respectively.</li>
<li><strong>Next, download JW&#8217;s Flv Player or Media Player and add the included swfobject.js file to your page head</strong>Flv Player (or Media Player) can be downloaded from <a href="http://www.jeroenwijering.com/?item=JW_FLV_Player">www.jeroenwijering.com</a>.  Save the files, flvplayer.swf (or mediaplayer.swf) and swfobject.js, to  your web server, then add a javascript link to swfobject.js  in your  page&#8217;s head section
<pre>&lt;script type="text/javascript" src="swfobject.js"&gt;&lt;/script&gt;</pre>
<p>Note: If page load speed is an issue, you can omit “swfobject.js”  from the document head. swfobject.js is not actually used in this demo.  It is only included because of the slight chance that Flv player has an  internal reference to it.</li>
<li><strong>Then, in the body of your page create a hidden &lt;div&gt; with a unique id and embed the video there</strong>The &lt;div&gt; should have a unique id=&#8221;onPageHiddenContent-20&#8243; and a  style attribute of style=”display:none;” to keep it hidden until the  viewer clicks on a link that you specify in step #4 below. Inside the  &lt;div&gt;, place an &lt;embed&gt; tag to embed JW&#8217;s Flv Player,  flvplayer.swf, that you downloaded in step #2. List your flv video  (myvideo_file.flv) and your video preview image (myvideo_image.jpg) as  “flashvars” arguments in the embed tag.  See JW&#8217;s <a href="http://www.jeroenwijering.com/extras/readme.html">readme</a> instructions for more details about embedding a video with flvplayer.swf.<br />
<blockquote><p>&lt;div id=&#8221;onPageHiddenContent-20&#8243; style=&#8221;display:none;&#8221;&gt;<br />
&lt;embed src=&#8221;http://www.myfileserver.com/folder/flvplayer.swf&#8221;<br />
width=&#8221;320&#8243; height=&#8221;260&#8243; type=&#8221;application/x-shockwave-flash&#8221;<br />
pluginspage=&#8221;http://www.macromedia.com/go/getflashplayer&#8221;<br />
flashvars=&#8221;file=http://www.myfileserver.com/folder/myvideo_file.flv&amp;image=http://www.myfileserver.com/folder/myvideo_image.jpg&#8221; /&gt;<br />
&lt;/div&gt;</p></blockquote>
<p>In the above code, change the url paths, rename myvideo_file.flv and  myvideo_image.jpg to match your own video and adjust the height and  width as needed. You will also want to make sure that  height=video_height+20px to make room for the controller.</li>
<li><strong>Lastly, add a thickbox link element with to display the video inside a thickbox</strong>Use the thickbox inline* anchor, &#8220;#TB_inline&#8221; for the &#8220;href&#8221; and  include the thickbox dimensions (&gt;=video size) and your hidden div id  as query parameters. The link can surrounded any text or an image. See <a href="http://jquery.com/demo/thickbox/">thickbox inline content instructions</a> for more information.<br />
<blockquote><p>&lt;a href=&#8221;#TB_inline?height=270&amp;width=320&amp;inlineId=onPageHiddenContent-20&#8243;<br />
title=&#8221;My Video&#8221;&gt;Click here to see video&lt;/a&gt;</p></blockquote>
</li>
</ol>
<p>And thats all there is to it folks! Simple, eh?</p>
<p>Here&#8217;s the entire code in a sample web page:</p>
<div>
<blockquote><p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; dir=&#8221;ltr&#8221;&gt;&lt;head&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;js/jquery.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;js/thickbox/thickbox.js&#8221;&gt;&lt;/script&gt;<br />
&lt;style type=&#8221;text/css&#8221; media=&#8221;screen&#8221;&gt;@import &#8220;js/thickbox/thickbox.css&#8221;;&lt;/style&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt; var tb_pathToImage = &#8221;thickbox/loadingAnimation.gif&#8221;;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;js/swfobject.js&#8221;&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;h2&gt;Flv Video in a Thickbox example&lt;/h2&gt;<br />
&lt;div id=&#8221;onPageHiddenContent-20&#8243; style=&#8221;display:none;&#8221;&gt;<br />
&lt;embed src=&#8221;http://www.myfileserver.com/folder/flvplayer.swf&#8221;<br />
width=&#8221;320&#8243; height=&#8221;260&#8243; type=&#8221;application/x-shockwave-flash&#8221;<br />
pluginspage=&#8221;http://www.macromedia.com/go/getflashplayer&#8221;<br />
flashvars=&#8221;file=http://www.myfileserver.com/folder/myvideo_file.flv&amp;image=http://www.myfileserver.com/folder/myvideo_image.jpg&#8221; /&gt;<br />
&lt;/div&gt;<br />
&lt;a href=&#8221;#TB_inline?height=270&amp;width=320&amp;inlineId=onPageHiddenContent-20&#8243;<br />
&lt;=&#8221;" nobr=&#8221;"&gt; title=&#8221;My Video&#8221;&gt;Click here to see video&lt;/a&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
</div>
<p>This method works in FF 1.5, FF 2, Safari 1**, Safari 3 beta, and IE  6. I have not tested it in other browsers, but it should work fine in  any modern browser.</p>
<p>As for you purists out there, yes…”embed” is not xhtml compliant, but  all modern browsers support it and that&#8217;s more important to your site  visitors.</p>
<p><strong>**Note</strong>: Please note that Thickbox no  longer works in Safari 1 when combined with any version of jquery   greater than version 1.1.2 and the combination, jquery 1.1.3+thickbox3,  actually causes Safari 1 to crash.</p>
<p><strong>*Important Note</strong>: This “inline”,  javascript-free method of embedding a flv video in a thickbox is  appropriate for simple web pages with just a few videos. If your  document has many videos or other flash content that affects z-index and  transparency settings, an “inline” thickbox will be problematic,  especially in IE. A better solution would be to embed your video in  external document/popup player that you can open in a thickbox “iframe”  instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techfromhel.com/2011/05/flv-videos-in-a-thickbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seamless WassUp Upgrading</title>
		<link>http://www.techfromhel.com/2010/12/seamless-wassup-upgrade/</link>
		<comments>http://www.techfromhel.com/2010/12/seamless-wassup-upgrade/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 14:52:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[wassup]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.techfromhel.com/?p=20</guid>
		<description><![CDATA[Precautionary Steps for a Seamless WassUp Upgrade <p>In the newest WassUp WordPress plugin update (v.1.8.1), there is a precautionary notice about upgrading. This notice says that you should not upgrade if your site is busy. That is, you should check the number of current visitors online before upgrading and, if there are more than one [...]]]></description>
			<content:encoded><![CDATA[<h3>Precautionary Steps for a Seamless WassUp Upgrade</h3>
<p>In the newest WassUp WordPress plugin update (v.1.8.1), there is a  precautionary notice about upgrading. This notice says that you should  not upgrade if your site is busy. That is, you should check the number  of current visitors online before upgrading and, if there are more than  one regular visitors or multiple spiders online, don’t upgrade!!</p>
<p>WassUp is different from most plugins because once it is enabled it  starts working and never stops until it is disabled, deactivated or your  site goes down. Every visitor click, every spider hit, every search,  and every feed request triggers WassUp to write data into it’s tables.  The more popular your site is, the more data WassUp has to write in  order to track visitors browsing your site.</p>
<p>An upgrade during a busy time for your site increases the odds that  WassUp will be interrupted in the middle of a write operation. That kind  of interruption can cause file corruption or can leave a permanent lock  on WassUp tables. If that were to happen, WassUp would stop all new  recordings until the lock is cleared or until ‘wp_wassup’ table is  repaired. Note that this only affects WassUp, not WordPress itself, so  your site would remain functioning.</p>
<p>If your site is always busy or you just can’t wait to upgrade, I  recommend that you temporarily “disable recording” in WassUp &gt;&gt;  Wassup-Options, [Statistics Recording] Tab, or put your site into  “maintenance mode” prior to doing the upgrade. If you do this, always  remember that you will have to manually re-enable recording or undo  maintenance mode page when you have done upgrading.</p>
<p>For a seamless upgrade every time, always check the plugin’s “Installation” instructions at <a href="http://wordpress.org/extend/plugins/wassup/installation/">http://wordpress.org/extend/plugins/wassup/installation/</a> for any new installation/upgrade procedures that could affect your copy of WassUp.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techfromhel.com/2010/12/seamless-wassup-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sleeping with Javascript</title>
		<link>http://www.techfromhel.com/2009/06/sleeping-with-javascript/</link>
		<comments>http://www.techfromhel.com/2009/06/sleeping-with-javascript/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 14:33:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[sleep]]></category>

		<guid isPermaLink="false">http://www.techfromhel.com/?p=18</guid>
		<description><![CDATA[<p>When I went looking for a built-in “sleep()” function in Javascript, I quickly learned that it does not exist. This is surprising considering that “sleep()” is in all other languages that I have used. To get around this javascript shortcoming, I decided to create my own sleep function. The result is a function that loops [...]]]></description>
			<content:encoded><![CDATA[<p>When I went looking for a built-in “sleep()” function in  Javascript, I quickly learned that it does not exist. This is surprising  considering that “sleep()” is in all other languages that I have used.  To get around this javascript shortcoming, I decided to create my own  sleep function. The result is a function that loops internally until the  number of seconds passed is greater than the argument value, “naptime”.</p>
<p>Initial tests of “sleep()” were successful, however, I soon  discovered that most browsers will interrupt “sleep()” and show a  “Slow/Busy script” dialog message whenever the “naptime” argument is  greater than 10 seconds (7 seconds in IE). Trying to work around this  problem was too much effort, so I left the script as is. If you use this  function, I recommend a “naptime” of less than 10 seconds so your site  visitors won’t encounter this “slow script” dialog message.</p>
<p>Below are some examples of the javascript “sleep()” function. Just  click on a link below to start sleeping for the preset amount of seconds  shown.</p>
<p>Here is the script source:</p>
<blockquote><p>//A javascript sleep function by Helene D.<br />
jQuery.fn.sleep = function (naptime) {<br />
  		var loop = false;<br />
		var maxiterations = 9000000;<br />
  		var now = new Date();<br />
  		var timestarted = now.getTime();<br />
		naptime=naptime+0;	//convert to number<br />
		if (naptime &gt;0 ) {<br />
			loop = true;<br />
			if (naptime &lt; 100) {	//convert to microseconds<br />
				naptime=(naptime*1000);<br />
				naptime=naptime-940;	//estim. script exec time<br />
			}<br />
		}<br />
		var i=0;<br />
  		while(loop) {<br />
			i++;<br />
  			now = new Date();<br />
  			timenow = now.getTime();<br />
  			if(timenow &#8211; timestarted &gt; naptime) {<br />
  				loop = false;<br />
			} else if (i &gt; maxiterations) { //no infinite loops<br />
				loop = false;<br />
			}<br />
  		}<br />
		return $(this);<br />
  }</p></blockquote>
<p>The usage is: <code>sleep(seconds);</code>. You can also chain it in jQuery like this: <code>$(this).sleep(seconds).replace(wakeUp);</code></p>
<p>If you are not a jQuery user, you can convert this function to plain javascript by replacing <code>jQuery.fn.sleep = function(naptime)</code> with <code>function sleep(naptime)</code> and remove the <code>return $(this)</code> line near the bottom of the script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techfromhel.com/2009/06/sleeping-with-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Simple Fix for &#8220;Simple Tags&#8221;</title>
		<link>http://www.techfromhel.com/2008/08/simple-fix-for-simple-tags/</link>
		<comments>http://www.techfromhel.com/2008/08/simple-fix-for-simple-tags/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 14:54:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[simple tags plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.techfromhel.com/?p=22</guid>
		<description><![CDATA[<p>I am not an official WordPress tester, but to keep up with the latest changes and to make sure my own plugins are always compatible with upcoming versions of WordPress, I run WordPress development version on this site.</p> <p>There are several plugins installed on this site that end up also getting tested for compatibility with [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>I am not an official WordPress tester, but to keep up with the  latest changes and to make sure my own plugins are always compatible  with upcoming versions of WordPress, I run WordPress development version  on this site.</p>
<p>There are several plugins installed on this site that end up also  getting tested for compatibility with upcoming versions of WordPress,  although that is not my intention. <a href="http://wordpress.org/extend/plugins/wassup/">Wassup</a>, <a href="http://wordpress.org/extend/plugins/cforms/">cFormsII</a>, <a href="http://wordpress.org/extend/plugins/bad-behavior/">Bad Behavior</a>, and <a href="http://wordpress.org/extend/plugins/akismet/">Akismet</a> all run successfully on WordPress 2.7 development version . One plugin that failed was <a href="http://wordpress.org/extend/plugins/simple-tags/">Simple Tags</a> version 1.5.7 by <a href="http://www.herewithme.fr/">Amaury Balmer</a>. This plugin produced an error because of a test in the code that rejects unrecognized versions of WordPress.</p>
<p>Fortunately the fix was simple. It only required that the version  test be replaced by one that tests for current or higher version of  WordPress. I modified the code myself and now “Simple Tags 1.5.7a” runs  on 2.7-dev.</p>
<p>If you would like to apply this patch to your own copy of Simple Tags 1.5.7, you can download it  To install, just uncompress the file “simple-tags.php”, upload it to  your web server, and overwrite the file of the same name in the  “simple-tags” folder in your WordPress plugins directory. Be sure to  deactivate “Simple Tags 1.5.7″ beforehand and reactivate it as “Simple  Tags 1.5.7a” afterwards.</p>
<p><strong>12/16/2008 Update</strong>: Simple Tags 1.5.8 was released  and is compatible with WordPress 2.7.  However, the flawed code still  exists and will continue to cause Simple Tags to become disabled with  future releases and development versions of WordPress. If you would like  to “future-proof” your version of Simple Tags 1.5.8, download the file,   simple-tags-fix.zip, unzip it, and replace “simple-tags.php” in your plugins directory.</p>
<p><strong>06/17/2009 Update</strong>: simple-tags-fix.zip is now updated for Simple Tags 1.6.6</p>
<p><strong>09/15/2010 Update</strong>: This fix  has been obsoleted since version 1.7 of Simple Tags and is no longer available here.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.techfromhel.com/2008/08/simple-fix-for-simple-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.6 Crashes Safari</title>
		<link>http://www.techfromhel.com/2008/07/wordpress-crashes-safari/</link>
		<comments>http://www.techfromhel.com/2008/07/wordpress-crashes-safari/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 15:03:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[safari browser]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.techfromhel.com/?p=29</guid>
		<description><![CDATA[<p>Soon after I upgraded to WordPress 2.6, I discovered that the WordPress&#8217; dashboard and post/page editor cause the Safari 1.3 browser to crash. Though other WordPress 2.6 admin functions continue to work fine in Safari 1.3, including the widget functions, without the Dashboard, users can’t login, and without the post/page editor, users can’t update their [...]]]></description>
			<content:encoded><![CDATA[<p>Soon after I upgraded to WordPress 2.6, I discovered that the  WordPress&#8217; dashboard and post/page editor cause the Safari 1.3 browser  to crash. Though other WordPress 2.6 admin functions continue to work  fine in Safari 1.3, including the widget functions, without the  Dashboard, users can’t login, and without the post/page editor, users  can’t update their blog. This makes WordPress 2.6 completely unusable in  Safari 1.3.</p>
<p>A quick search of the forums showed that this problem has cropped up  for other WordPress users and that it may extend to Safari 2 as well.  Here what one <a href="http://en.forums.wordpress.com/topic.php?id=29552">user</a> had to say on wordpress.com forums.</p>
<p>This development is personally upsetting to me because I like WordPress,  but I love my ancient (2003) iMac G4 running OS-X 10.3.9 Panther with  Safari 1.3, better. It is my favoriteest computer ever.  I chose not to  upgrade it beyond OS-X 10.3.9 (and Safari 1.3) because 10.4 caused this  otherwise efficient machine to run sluggishly. This was OK because OSX  Panther’s brower, Safari 1.3, worked fine on most sites that I  visit…until now, that is.</p>
<p>Although there are alternative browsers like FF and Camino for OS-X  10.3.9 that do work with WordPress 2.6, Safari 1.3 is the preferred  browser of many, including myself, because of it’s superior image  rendering on the iMac G4.  I’d like to be able to keep using it with  WordPress.</p>
<p>The source of the WordPress problem is probably a faulty javascript  library or library plugin that 2.6 loads, a library/plugin that is so  incompatible with Safari 1 that it crashes the browser immediately (like  jQuery 1.1.3 did). There may not be a large number of us Safari 1.3  users out there, but there are enough of us to make this problem an  important one that needs to be addressed. WordPress developers needs to  identify and replace the faulty javascript library/plugin ASAP!  Are you  paying attention, Matt?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techfromhel.com/2008/07/wordpress-crashes-safari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing A More Secure WordPress</title>
		<link>http://www.techfromhel.com/2008/06/installing-wordpress/</link>
		<comments>http://www.techfromhel.com/2008/06/installing-wordpress/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 14:58:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.techfromhel.com/?p=26</guid>
		<description><![CDATA[Step-by-Step Instructions to Install and Configure WordPress with Better Security <p>When I went looking for a blogging software, I checked user ratings, server requirements, amount of documentation, available CSS templates and plugins, and did a test install of a few blogs. In the end I chose to go with WordPress because it was one of [...]]]></description>
			<content:encoded><![CDATA[<h3>Step-by-Step Instructions to Install and Configure WordPress with Better Security</h3>
<p>When I went looking for a blogging software, I checked user ratings,  server requirements, amount of documentation, available CSS templates  and plugins, and did a test install of a few blogs. In the end I chose  to go with WordPress because it was one of the easiest to install (it  worked on the first try), it had built-in CMS (content management)  capability, it had the best documentation, the most plugins, and lots of  freely available CSS templates.</p>
<p>I installed and configured WordPress as CMS and blog for my existing  website. I put WordPress in a subdirectory of my site&#8217;s root directory  because this is more secure and did not overwrite my existing web  documents and applications.  The install went smoothly and afterwards, I  was delighted to find that the URLs for my other web documents and applications continued to work seamlessly, without interference from WordPress.</p>
<p>Below are instructions to install your own copy of WordPress on a new  or existing site, with improved security. These instructions assume  that WordPress will manage your host domain/subdomain, not a  subdirectory of that domain/subdomain (ie. www.mysite.com or  subdomain.mysite.com, NOT www.mysite.com/blog/).  It assumes that you  are familiar with a FTP software to upload files to your ISP, that you  can create a MySQL database on your ISP account, and that you can edit a  plain text file using a text editor like Notepad or VIM. These  instructions can also be used to “upgrade” an existing copy of WordPress  to make it more secure.</p>
<p><strong>DISCLAIMER</strong>: Following these directions does not  guarantee that your site won&#8217;t be hacked. Weak passwords, open  registration, SQL injection issues, and unscrupulous people, will  continue be a source of security problems.</p>
<p><strong>WARNING for Users on Windows Server</strong>: These instructions have never tested on a Window server, so install at your own risk.</p>
<h3>Part I: The Pre-Installation Steps</h3>
<div>
<p>Steps to prepare your ISP account and your home computer for a WordPress install:</p>
<h4>New install pre-installation steps:</h4>
<ul>
<li>
<h4>Pre-install Step #1:</h4>
<p>Add PHP and MySQL to your ISP account. Linux accounts usually come  with these, but Windows accounts do not. Minimum required versions for <a href="http://wordpress.org/about/requirements/">WordPress</a> are PHP 4.3 and MySQL 4.0.</li>
<li>
<h4>Pre-install Step #2:</h4>
<p>Install a FTP client software on your home computer.  I recommend the free software, <a href="http://cyberduck.ch/">Cyberduck</a> on Mac OSX or <a href="https://addons.mozilla.org/en-US/firefox/addon/684">FireFTP</a> add-on for FireFox 1.5+ on Windows/Linux. Configure your FTP client to  connect to your ISP account and set the default file transfer type to  “Auto” or “Ascii”. It must NOT be set to “binary”.<br />
<strong>Important Note</strong>: If your ISP allows sFTP access (secure  FTP), configure your FTP client connection to use this protocol instead  of FTP. The FTP protocol is inherently insecure because it transmits  passwords in plain text and any network packet analyzer can easily  intercept it.</li>
<li>
<h4>Pre-install Step #3:</h4>
<p>Create a MySQL database on your ISP account.  ISPs usually provide an  interface for you to do this through your web browser or a shell  account.  Take note of the hostname or IP of the database server, the  database name, username, and password for install step #2 below.</p>
<p>If your ISP does not provide a means to create a MySQL database, they  may provide an automatic install of WordPress itself. If you are  creating a new site, you can run this and note where WordPress files are  installed and the database server, name and password created. Then use  that information in the install steps below, but you will be upgrading  instead.</p>
<p>For more detail and examples on creating a MySQL database for WordPress, refer to the <a href="http://codex.wordpress.org/Installing_WordPress#Detailed_Instructions">WordPress codex detailed instructions</a>.</li>
</ul>
<h4>Upgrade pre-installation steps:</h4>
<ul>
<li>
<h4>Pre-install Step #1:</h4>
<p>Backup wordpress! Use a backup plugin, use your phpMyAdmin interface, or export your entire blog to a file. You have <a href="http://codex.wordpress.org/WordPress_Backups">multiple backup options</a> available to you, so there is no excuse not to do it. This may seem an  annoying chore right now, but believe me, the one time you need that  backup, it will all be worth it.</li>
<li>
<h4>Pre-install Step #2:</h4>
<p>Deactivate all plugins. Go to your WordPress admin menu ==&gt;Plugins  and click the [deactivate all plugins] button at the top of the plugin  list. For WordPress 2.3 or less, this option is at the bottom of the  plugins page.</li>
<li>
<h4>Pre-install Step #3:</h4>
<p>If your current WordPress install is in your website root directory,  to avoid overwriting files that you may need later (ex: wp-config.php,  uploads, themes, etc.), you should move all your wordpress files and  folders into a “backup” or “temporary” folder. If your FTP software  doesn&#8217;t come with a “move” option, you can use the “rename” option  instead: first create the directory, “temp-folder” in your website root  directory, then highlight each wordpress file or folder, select rename,  and enter “temp-folder/filename” as the new name of “filename”.</p>
<p><strong>Note</strong>: If you already have the latest version of  WordPress installed but want to change your configuration to use this  more secure setup, you should move all your wordpress files and folders  into a new directory called “wp-folder” (or other name that is not  easily guessable), then skip install steps 1-3, and 5, and follow  install steps 4, 6-8, and all the post-install steps below.</li>
</ul>
<p><strong>Important Note for Upgraders</strong>: To avoid potential  problems that could disable your blog, it is better to wait before  upgrading to a new branch of WordPress (eg. upgrade from 2.3.3 to  2.5.0). From my personal experience, non-standard WordPress  configurations such as this do not get beta tested sufficiently before a  new branch launch. I recommend that you wait for the “.1″ or higher  version of the branch (eg. WordPress 2.5.1) before upgrading.</p>
</div>
<h3>Part II: The Installation Steps</h3>
<div>
<p>Steps to download WordPress, create startup files, install on your  ISP account, and configure settings to get your WordPress site up and  running.</p>
<ul>
<li>
<h4>Install Step #1: Download WordPress</h4>
<p>From your web browser, download a current copy of WordPress and save  it on your home computer. The WordPress download package is available at  <a href="http://wordpress.org/download/">http://wordpress.org/download</a>.  Uncompress the file after download. A double-click will usually unzip it on a Windows or Mac PC.</li>
<li>
<h4>Install Step #2: Create the configuration file, wp-config.php</h4>
<p><strong>Note:</strong> This is the most important step in your  WordPress setup. “wp-config.php” contains vital MySQL connection  information for WordPress. If this file has incorrect data or is  corrupted, WordPress won’t run or will run with errors.</p>
<p>On your home computer, go to the “wordpress” folder that was created  when you unzipped the WordPress download package and make a duplicate of  the file “wp-config-sample.php”. Rename the copy “wp-config.php”. Next,  open “wp-config.php” with a text editor and substitute the contents of  the first 4 “define” lines with the information from the database you  created in pre-install step #3. For example:</p>
<blockquote><p>// ** MySQL settings ** //<br />
define(&#8216;DB_NAME&#8217;, &#8216;your_db_name&#8217;);<br />
define(&#8216;DB_USER&#8217;, &#8216;your_db_user&#8217;);<br />
define(&#8216;DB_PASSWORD&#8217;, &#8216;your_db_password&#8217;);<br />
define(&#8216;DB_HOST&#8217;, &#8216;mysqlserver.mydomain.com&#8217;);</p></blockquote>
<p>“mysqlserver.mydomain.com” can also be an IP address or “localhost”,  if your MySQL server is on the same server as your website. Be careful  not to change any other part of this file except “SECRET_KEY” which you  should replace with your own phrase.</p>
<p><strong>Warning for Windows PC users:</strong> Do NOT  edit “wp-config.php” with “Word” or “WordPad”. These word processors  insert extraneous characters and hidden “whitespaces” that can corrupt  text files. You need to be extra careful of this because “WordPad” is  often the default text editor on Windows.  You should use “Notepad” as  your text editor, instead. The first line of “wp-config.php” is exactly:  <code>&lt;?php</code> and the last line is exactly: <code>?&gt;</code> with no blank lines or spaces immediately before or after. If you see  any extra spaces or lines, then this file has been corrupted and you  should create a new copy from “wp-config-sample.php” and start over. Do  not attempt to fix it, as you probably won’t be able to find all the  hidden whitespaces.</p>
<p><strong>Note for upgraders:</strong> You should reuse  “wp-config.php” from your existing WordPress website. Download it with  your FTP software and put it in your PC’s “wordpress” folder. If you  want to keep your existing theme and plugins, you need to download them  as well. Also download the contents of your “wp-content/uploads” folder.  Put these in their equivalent folder location within “wordpress” on  your PC.</li>
<li>
<h4>Install Step #3: Rename “wordpress” folder</h4>
<p>You should now rename the “wordpress” folder on your PC to something  else. The new name should be something you will remember, but not  something that a hacker can guess easily.  Don&#8217;t rename it “blog”  because that is too obvious. This is an important security step because  makes it more difficult for hackers to find your WordPress admin folder.  For the rest of these instructions, I will assume that you have renamed  “wordpress” folder, “wp-folder”.</li>
<li>
<h4>Install Step #4: Create the startup file, index.php</h4>
<p>Copy the file, “index.php”, from your wordpress folder, “wp-folder”,  into wp-folder&#8217;s parent directory, one level up. This duplicate keeps  the name “index.php” and will be your new website startup file. Open  “index.php” in a text editor and change the “require” statement to  prepend your WordPress folder path to “wp-blog-header.php”. Here is an  example “index.php” file with some additional code for error  redirection:</p>
<blockquote><p>&lt;?php<br />
$WP_folder = &#8220;wp-folder/&#8221;; //&lt;== replace wp-folder with your WordPress folder name<br />
if (file_exists($WP_folder.&#8221;wp-blog-header.php&#8221;)) {<br />
/* Short and sweet */<br />
define(&#8216;WP_USE_THEMES&#8217;, true);<br />
require($WP_folder.&#8221;wp-blog-header.php&#8221;);<br />
} else {<br />
/* in case something goes wrong */<br />
header(&#8220;HTTP/1.1 503 Service Unavailable&#8221;);<br />
header(&#8220;Retry-After: 1800&#8243;);<br />
echo &#8220;&lt;p&gt;I&#8217;m sorry, this site is temporarily unavailable.  Please try again in a few minutes.&lt;/p&gt;&#8221;;<br />
}?&gt;</p></blockquote>
<p>Do not edit the original “index.php” inside “wp-folder” as this gives you an alternative way to start WordPress, if needed.</p>
<p><strong>Note for sites with an existing “index” or “home” page:</strong> The file, “index.php”, replaces your existing (static) website startup  page in your root directory (“home.html” or “index.html”). You must  rename or move that file, before this WordPress install. You can NOT  keep it as your startup file in this WordPress configuration.  Fortunately, if that file is an html document, you can restore it by  copying and pasting it&#8217;s content (minus navigation menus/javascript)  into the WordPress page editor and assign it as your “front page”, after  you complete the WordPress install.</li>
<li>
<h4>Install Step #5: Upload “wp-folder” to your website root directory</h4>
<p>Use your FTP software to upload the whole directory, “wp-folder”, to  your website root directory. Make sure that your ftp software is set for  “ascii” upload, not “binary” which can cause “wp-config.php” to become  corrupted.</p>
<p><strong>Important Note</strong>: Your FTP upload is “wp-folder”, a single item. Do NOT select individual files/directories from within “wp-folder” for upload.</p>
<p><strong>Important Notes for upgraders</strong>: If you want to keep  your old WordPress plugins, css theme and file/image uploads, you must  copy them into “wp-folder”. You should do this before uploading  “wp-folder”. Use your ftp software to download the directories  “wp-content/uploads”, “wp-content/themes”, and “wp-content/plugins” and  copy them into their equivalent folder locations in “wp-folder” on your  home computer.</li>
<li>
<h4>Step #6: Upload the startup file, “index.php”</h4>
<p>Use your FTP software to upload the startup file, “index.php” that  you created in step #4 to your ISP account. Upload it to your website&#8217;s  root directory, NOT “wp-folder”.</p>
<p><strong>Note</strong>: This is a very important step. If you miss it  or make an error, then step #8 below will disable your site. If this  happens, don&#8217;t worry. It is easily fixable.</p>
<p><strong>Note for (Future) Upgrades</strong>: Because this startup  file is not in the “wordpress” directory itself, it will not get  overwritten by future automatic upgrades. If you plan to do manual  upgrades in the future, you should still leave this file untouched and  only upgrade “wp-folder” contents.</li>
<li>
<h4>Step #7: Run the WordPress “Install” script</h4>
<p>In your web browser, type: <code>http://www.mysite.com/wp-folder/wp-admin/install.php</code>.  Replace “www.mysite.com” with your own website domain or subdomain and  “wp-folder” with the name you gave your WordPress folder. Follow the  directions given and note the admin password.</p>
<p><strong>Note</strong>: You can copy the admin password to your clipboard by highlighting it and entering Ctrl-C or “Copy” from the web browser menu.</p>
<p><strong>Note for Upgraders</strong>: If you are updating your WordPress to this securer configuration, run the “upgrade” script instead of “install”: <code>http://www.mysite.com/wp-folder/wp-admin/upgrade.php</code>. You will need to enter your admin username and password after the upgrade to perform the next steps.</li>
<li>
<h4>Step #8: Change WordPress URL and Blog URL in “Settings”</h4>
<p>Go to your WordPress Admin menu screen by typing <code>http://www.mysite.com/wp-folder/wp-admin/</code> in your browser. Login as “admin”, if you are prompted, then select the  “Settings” tab. Enter your blog URL and your WordPress URL. These are  your site URL and site URL/WordPress folder, respectively. For example:</p>
<blockquote><p>WordPress address (URL): www.mysite.com/wp-folder/<br />
Blog address (URL)    : www.mysite.com</p></blockquote>
<p>Save settings. To verify that the new settings are in effect and that  WordPress is installed correctly, click the “Visit site” button. New  installs should see the WordPress&#8217; blog index displayed in the Kubrick  theme and an initial “Hello World” post. Upgraders should see their blog  index page or front page, if set, displayed in their selected theme.</p>
<p><strong>Note</strong>: If you get an error message (500/404) and  don&#8217;t see your site, clear your browser cache, then reload your browser  window. If that doesn&#8217;t work, redo step #6 above and refresh your  browser cache again.  If that still doesn&#8217;t work, go back to WordPress  Admin menu, select “Settings” tab, and double-check the URLs you  entered.</p>
<p><strong>Note for Upgraders</strong>: If your site displays but the  style format is a mess, your theme css needs refreshing. Just clear your  browser cache and reload your browser window. If that doesn&#8217;t fix the  problem, go back to the WordPress admin menu, select “Design” tab, and  reselect your preferred WordPress theme.</li>
</ul>
</div>
<h3>Part III: The Post-Installation Steps</h3>
<div>
<p>Optional configuration steps and steps to strengthen WordPress security.</p>
<ul>
<li><strong>Post-install Step #1: Delete the user, “admin”</strong>To stop all attempts to hack into your blog as “admin”, create a new  user account with admin privilages then delete the user, “admin”: From  WordPress Admin menu, go to “Users” tab and scroll down to “Add a new  user”. Create a new id for yourself with the role, “Administrator”.  Click “Add User” button, and logout. Then, login in under your new user  id, go to “Users” tab, check user, “admin”, and click the “delete”  button.</li>
<li><strong>Post-Install Step #2: Enable permalinks in “settings”</strong>This step configures search engine-friendly URLs on your web site.  This is not required, but strongly advised. In WordPress&#8217; admin menu,  click the “Settings” tab, then click “Permalinks”, check a permalink  structure, and “Save Changes”.</li>
<li><strong>Post-install Step #3: Recreate your “home” page, if needed</strong>If you had a pre-existing “static” home page on your website that you  want to restore, WordPress provides the means to do this, if that page  was an html document with no dependent javascript. First you need to  create two pages in WordPress “Page” editor, one for the “front page”,  and one for the “Blog index” page: Go to WordPress admin  menu==&gt;Write==&gt;Page, enter a simple title, like “Welcome”, switch  edit mode from “Visual” to “HTML”, and paste the html-only content from  the body of your old home page into the editor, then click the “Publish”  button. For the “blog index” page, go to “Write”==&gt;”Page”, enter the  title “Blog”, leave the contents blank, then click “Publish”.Next, you need to change WordPress settings to assign “Welcome” and  “Blog” as your new “front page” and “blog index page”, respectively: Go  to WordPress admin menu==&gt;Settings==&gt;Reading. Select “Front Page  Displays: a static page” and for “Front Page”, select “Welcome”, and for  “Posts page”, select  “Blog”. For example:
<pre>Front page displays:
    * A static page (select below)
       Front page: Welcome
       Posts page: Blog</pre>
<p>“Save Changes” and click the “visit site” button to confirm that  these changes have gone into effect. You many have to clear your browser  cache and reload the page to see these changes.</p>
<p>Please note that the style of your new “home” page will be affected  by the current theme style that is in effect in WordPress. You may need  to adjust your document to better fit this style or vice versa.</li>
<li><strong>Post-install Step #4: Install an Anti-spam Plugin</strong>As your blog grows more popular, it will be inundated by the bottom  feeders of the internet, comment spammers. Unless you plan to restrict  comments to registered users only, it is vital that you have an  anti-spam plugin installed to prevent spam from getting into to your  blog. <a href="http://wordpress.org/extend/plugins/akismet/">Akismet</a> comes built into WordPress and needs to be activated, but any <a href="http://wordpress.org/extend/plugins/tags/spam/">anti-spam plugin</a> will do.I recommend you also install a “gatekeeper” plugin like <a href="http://wordpress.org/extend/plugins/bad-behavior/">Bad Behavior</a> to stop spammers, hackers, and content thieves before they get to your  site. Together with an anti-spam plugin to catch any spam that do get  through, you can keep your site&#8217;s comments almost completely spam free.<strong>NOTE</strong>: You must upgrade your anti-spam software  regularly for it to remain effective. Spammers continually develop new  tactics to workaround anti-spam code.</li>
<li><strong>Post-install Step #5: Remove “register” and “login” from your “meta” widget and sidebar.</strong>“Login” and “Register” give spammers and hackers easy access to your  blog. Unless you plan to recruit blog contributers or editors, or are  restricting comments to registered users only, you should remove these  from your blog&#8217;s sidebar and widgets. Even if you allow open  registration, I recommend putting “Register” and “Login” on your blog’s  “About” page only. That is where interested parties are likely to go to  learn more about your blog. If you have a forum, you should also put  these on a forum login page.If you decide to disallow open registration (recommended highly), you  should go to WordPress Admin menu==&gt;Settings, and under  “Membership:”, uncheck “Anyone can register”, and save.You can remove “Register” and “Login” from the meta widget by editing  the template file, “functions.php”: go to WordPress Admin  menu==&gt;Design==&gt;Theme Editor, select “functions.php” and add the  following code for meta widget replacement:<br />
<blockquote><p>&lt;?php<br />
//# Replace built-in Meta widget with a custom widget function<br />
if ( function_exists(&#8216;register_sidebar_widget&#8217;) ) {<br />
register_sidebar_widget(__(&#8216;Meta&#8217;), &#8216;widget_my_meta&#8217;);<br />
}<br />
//#Meta widget replacement<br />
function widget_my_meta() {<br />
global $post;<br />
?&gt;<br />
&lt;li id=&#8221;meta&#8221;&gt;<br />
&lt;h2&gt;Meta&lt;/h2&gt;&lt;ul&gt;<br />
&lt;?php<br />
//###Login and Register Meta Links<br />
// Only shown on &#8216;About&#8217; page or when user is already logged in.<br />
get_currentuserinfo();<br />
if (is_user_logged_in() ) { ?&gt;<br />
&lt;li&gt; &lt;?php wp_loginout(); ?&gt;&lt;/li&gt;<br />
&lt;?php wp_register(); ?&gt;<br />
&lt;?php } elseif (is_page(&#8216;about&#8217;)) { ?&gt;<br />
&lt;li&gt; &lt;?php wp_loginout(); ?&gt;&lt;/li&gt;<br />
&lt;?php wp_register(); ?&gt;<br />
&lt;?php } ?&gt;<br />
&lt;?php<br />
//###RSS Meta Links ?&gt;<br />
&lt;li&gt;&lt;span&gt;&lt;a href=&#8221;&lt;?php bloginfo(&#8216;rss2_url&#8217;); ?&gt;&#8221;&gt;Entries RSS&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;<br />
&lt;?php //comments RSS shown when viewing a single post or page<br />
if ((is_single() || is_page()) &amp;&amp; &#8216;open&#8217; == $post-&gt;comment_status) { ?&gt;<br />
&lt;li&gt;&lt;span&gt;&lt;?php comments_rss_link(&#8216;Comments RSS&#8217;); ?&gt;&lt;/span&gt;&lt;/li&gt;<br />
&lt;?php	}<br />
wp_meta(); ?&gt;<br />
&lt;/ul&gt;&lt;/li&gt;<br />
&lt;?php<br />
} //end function widget_my_meta<br />
?&gt;</p></blockquote>
<p><strong>Note</strong>: These instructions alter the meta widget for  the current theme, only. You will need to redo this, if you switch theme  templates.</p>
<p><strong>Note</strong>: “Login” and “Register” also reveal the folder  location of your WordPress install, undoing some of the security that a  separate directory install gives you. Unfortunately, even without these  in your sidebar, a determined hacker can still find your “wordpress”  install directory by parsing WordPress’ document head where style links  added by theme template and plugins, and ping-back links added by  WordPress, also reveal that location. Currently, there is no easy way to  completely get around this built-in weakness in WordPress, but that&#8217;s a  separate issue.</li>
<li><strong>And you are done. Happy blogging! </strong>You may now customize your WordPress by adding a nice theme style and  useful plugins*. But remember to update “functions.php” again to secure  “login” and “register”, whenever you activate a new theme template.</li>
</ul>
</div>
<p><a name="foot1">*</a>Note: There are some  plugins that do not work with this WordPress configuration.  However,  there are plenty of well-written plugins that do work. You should be  able to find a better alternative among these.<br />
<a name="foot2">**</a>Note: as of WP 2.2.3,  “static” files stored in root subdirectories named &#8220;images&#8221; or &#8220;tag&#8221;,  are no longer accessible within WordPress posts and pages. WordPress may  have added it&#8217;s own virtual folders with the same names, causing a  conflict.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techfromhel.com/2008/06/installing-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube in a Thickbox</title>
		<link>http://www.techfromhel.com/2008/05/youtube-video-thickbox/</link>
		<comments>http://www.techfromhel.com/2008/05/youtube-video-thickbox/#comments</comments>
		<pubDate>Fri, 30 May 2008 13:54:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[thickbox]]></category>
		<category><![CDATA[video embed]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.techfromhel.com/?p=4</guid>
		<description><![CDATA[Embedding Videos: YouTube in a Thickbox <p>Note: This is a duplicate of an article I originally wrote on April 29, 2008 on the <a href="http://www.supernaturalstation.org/tech-tools/youtube-video-thickbox/">Supernatural Station website</a>.</p> <p>“Thickbox” is a great way to showcase a youTube video on your web site. Thickbox’s light box effect gives videos a dramatic, theatre-like feel. You only need to [...]]]></description>
			<content:encoded><![CDATA[<div>
<h3>Embedding Videos: YouTube in a Thickbox</h3>
<p>Note: This is a duplicate of an article I originally wrote on April 29, 2008 on the <a href="http://www.supernaturalstation.org/tech-tools/youtube-video-thickbox/">Supernatural Station website</a>.</p>
<p>“Thickbox” is a great way to showcase a youTube video on your web  site.  Thickbox’s light box effect gives videos a dramatic, theatre-like  feel. You only need to add a few extra lines of code to the preset  embed code supplied by YouTube.com to show your video inside a  “thickbox”. This method works with embed code from youTube.com as well  as embed code from other video hosting sites.</p>
<h4>Step-by-step Instructions to embed a youTube video inside a Thickbox:</h4>
<ul>
<li>
<h4>Step #1: Download and install jQuery.js and Thickbox 3.</h4>
<p>Download “jquery.js” from <a href="http://docs.jquery.com/Downloading_jQuery">jquery.com</a> and Thickbox3 files, “thickbox.js”, “thickbox.css”, “loadingAnimation.gif”, and “macFFhack.png”, from <a href="http://jquery.com/demo/thickbox/">jquery.com/demo/thickbox/</a>. You then need to upload these files to your web server’s root directory or a subdirectory.</p>
<p>You can skip this step, if “thickbox” came preinstalled with your CMS  or blog software, or if you installed a “thickbox” plugin on your site.  Please note that if your copy of “Thickbox” came from a gallery plugin,  some “thickbox” files may have been altered for that plugin. This can  lead to unexpected problems in Internet Explorer. I recommend you  install an unaltered copy of “thickbox” on your web server, if you  experience Thickbox problems in IE6 or IE7. Just make sure your version  of “thickbox” is placed last in the document head as shown in step #3  below.</li>
<li>
<h4>Step #2: Enter a valid DTD on the first line of your html document.</h4>
<p>Thickbox requires a valid document type definition (DTD) in the xhtml  document. Most CMS and blog software will automatically put this in for  you. However, if you are writing your document from scratch, then you  must include a DTD line above your opening &lt;html&gt; tag. If you  don’t know what DTD to add, the following code will work for most  documents:</p>
<blockquote><p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</p></blockquote>
<p>For a list of other DTD&#8217;s, visit <a href="http://www.w3.org/QA/2002/04/valid-dtd-list.html">w3.org DTD recommendation</a> page.</li>
<li>
<h4>Step #3: Add “jquery.js” and “thickbox” to your document head.</h4>
<p>Enter the following lines between the &lt;head&gt; and &lt;/head&gt; tags in your xhtml document:</p>
<blockquote><p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;jquery.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;thickbox/thickbox.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt; var tb_pathToImage = &#8221;thickbox/loadingAnimation.gif&#8221;;&lt;/script&gt;<br />
&lt;style type=&#8221;text/css&#8221; media=&#8221;screen&#8221;&gt;@import “thickbox/thickbox.css&#8221;;&lt;/style&gt;</p></blockquote>
<p>In line #3, “loadingAnimation.gif” is a transition  graphic that is displayed before the thickbox appears. You can leave  this out, but it is helpful for your visitors to see it when thickbox is  slow to load.</p>
<p>You can skip this step if “Thickbox” came  preinstalled with your CMS/blog software or in a plugin and is  automatically included in the document head and you don’t want to  override those settings.</li>
<li>
<h4>Step #4: Add a unique, hidden &lt;div&gt; in your document body and paste the video embed code inside it.</h4>
<p>In the body of your web page, create a hidden div with a unique id  (id=&#8221;youtubeplayer20&#8243;) and paste the &#8220;embed&#8221; code from youtube.com  between the &lt;div&gt; and &lt;/div&gt; tags. To hide the div from the  viewer until they  click the link specified in step #5 below, add the  style attribute, “style=display:none;” to the opening &lt;div&gt; tag.</p>
<blockquote><p>&lt;div id=&#8221;youtubeplayer-20&#8243; style=&#8221;display:none;&#8221;&gt;<br />
&lt;!&#8211; start embed code copied directly from youTube.com &#8211;&gt; &lt;object width=&#8221;425&#8243; height=&#8221;355&#8243;&gt;<br />
&lt;param name=&#8221;movie&#8221; value=&#8221;http://www.youtube.com/v/YsowqYWs7vU&amp;hl=en&#8221;&gt;&lt;/param&gt;<br />
&lt;param name=&#8221;wmode&#8221; value=&#8221;transparent&#8221;&gt;&lt;/param&gt;<br />
&lt;embed src=&#8221;http://www.youtube.com/v/YsowqYWs7vU&amp;hl=en&#8221; type=&#8221;application/x-shockwave-flash&#8221; wmode=&#8221;transparent&#8221; width=&#8221;425&#8243; height=&#8221;355&#8243;&gt;&lt;/embed&gt; &lt;/object&gt;<br />
&lt;!&#8211; end embed code copied directly from youTube.com &#8211;&gt;<br />
&lt;/div&gt;</p></blockquote>
<p>Jot down the video dimensions shown in the “embed” code as you will need them in the next step.</p>
<p><strong>NOTE</strong>: Some video hosting sites already put their  embed code inside a div (ex. DailyMotion.com). I recommend manually  removing that div and any extraneous text inside it and place only the  remaining &lt;object&gt;, &lt;param&gt; and &lt;embed&gt; portion inside  your hidden &lt;div&gt;.</p>
<p><strong>6/27/2008 UPDATE</strong>:  A flash rendering problem on Mac  OSX/Firefox1.5+ and Mac OSX/Camino1.6 causes the youTube video to get  covered up by the thickbox itself. To fix, remove the  ‘wmode=”transparent”‘ argument from YouTube&#8217;s &lt;embed&gt; tag. Keep it  in the &lt;param&gt; tag only.</li>
<li>
<h4>Step #5: Lastly, in your document body, create an inline &#8220;thickbox&#8221;  link that points to the unique id of the hidden div containing the video  embed code.</h4>
<p>Create a Thickbox link for your youTube video by placing anchor tags  (&lt;a&gt;&lt;/a&gt;) around some text or an image. Use the thickbox  inline anchor, &#8220;#TB_inline&#8221; for the &#8220;href&#8221; and append the thickbox  dimensions (&gt;=video size) and the unique id of the hidden div from  step#4 as “href” parameters (see <a href="http://jquery.com/demo/thickbox/">thickbox inline content instructions</a>). The link must have a class of “thickbox” and an optional title that is displayed as the Thickbox header.</p>
<pre> &lt;a href="#TB_inline?height=380&amp;width=425&amp;inlineId=youtubeplayer20"
    title="My youTube Video"&gt;
Click here to see my youTube video&lt;/a&gt;</pre>
<p>If you don’t know your video dimensions, they are included inside the “embed” code from youTube.</li>
<li>
<h4>And that’s it!</h4>
<p>Here&#8217;s the entire code in a sample web page:</p>
<blockquote><p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; dir=&#8221;ltr&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;js/jquery.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;js/thickbox/thickbox.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt; var tb_pathToImage = &#8221;thickbox/loadingAnimation.gif&#8221;;&lt;/script&gt;<br />
&lt;style type=&#8221;text/css&#8221; media=&#8221;screen&#8221;&gt;@import &#8220;js/thickbox/thickbox.css&#8221;;&lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;h2&gt;YouTube Video in a Thickbox example&lt;/h2&gt;<br />
&lt;div id=&#8221;youtubeplayer-20&#8243; style=&#8221;display:none;&#8221;&gt;<br />
&lt;!&#8211; start embed code copied directly from youTube.com &#8211;&gt;<br />
&lt;object width=&#8221;425&#8243; height=&#8221;355&#8243;&gt;<br />
&lt;param name=&#8221;movie&#8221; value=&#8221;http://www.youtube.com/v/YsowqYWs7vU&amp;hl=en&#8221;&gt;&lt;/param&gt;<br />
&lt;param name=&#8221;wmode&#8221; value=&#8221;transparent&#8221;&gt;&lt;/param&gt;<br />
&lt;embed src=&#8221;http://www.youtube.com/v/YsowqYWs7vU&amp;hl=en&#8221; type=&#8221;application/x-shockwave-flash&#8221; width=&#8221;425&#8243; height=&#8221;355&#8243;&gt;&lt;/embed&gt;<br />
&lt;/object&gt;<br />
&lt;!&#8211; end embed code copied directly from youTube.com &#8211;&gt;<br />
&lt;/div&gt;<br />
&lt;a href=&#8221;#TB_inline?height=365&amp;width=425&amp;inlineId=youtubeplayer-20&#8243;    title=&#8221;My YouTube Video&#8221;&gt;<br />
Click here to see my youTube video&lt;/a&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<p>This method works in FF 1.5, FF 2, Safari 1.3*, Safari 3, and IE 6. I  have not tested it in other browsers, but it should work fine in any  modern browser.</p>
<p>*<small>Note for Safari 1 users: although this Thickbox “inline” demo  works in Safari 1.3, other types of Thickbox 3 functions will not work  when combined with any version of jquery  greater than version 1.1.2,  and the combination, jquery 1.1.3+thickbox3 will cause Safari 1.3 to  crash.</small></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.techfromhel.com/2008/05/youtube-video-thickbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

