<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Pykyl</title>
	<atom:link href="http://pykyl.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pykyl.wordpress.com</link>
	<description>Entertainment, Information and Services.</description>
	<lastBuildDate>Tue, 22 Apr 2008 00:58:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='pykyl.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Pykyl</title>
		<link>http://pykyl.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://pykyl.wordpress.com/osd.xml" title="Pykyl" />
	<atom:link rel='hub' href='http://pykyl.wordpress.com/?pushpress=hub'/>
		<item>
		<title>End of Life</title>
		<link>http://pykyl.wordpress.com/2008/04/22/end-of-life/</link>
		<comments>http://pykyl.wordpress.com/2008/04/22/end-of-life/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 00:58:57 +0000</pubDate>
		<dc:creator>pykyladmin</dc:creator>
				<category><![CDATA[General Thoughts]]></category>

		<guid isPermaLink="false">http://pykyl.wordpress.com/?p=15</guid>
		<description><![CDATA[Hi, this blog has been end of lifed. Please go to http://demandingcouch.blogspot.com to see the further adventures of the Demanding Couch.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=15&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi, this blog has been end of lifed. Please go to <a title="Demanding Couch" href="http://demandingcouch.blogspot.com" target="_self">http://demandingcouch.blogspot.com</a> to see the further adventures of the Demanding Couch.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pykyl.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pykyl.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pykyl.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pykyl.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pykyl.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pykyl.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pykyl.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pykyl.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pykyl.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pykyl.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pykyl.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pykyl.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pykyl.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pykyl.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pykyl.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pykyl.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=15&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pykyl.wordpress.com/2008/04/22/end-of-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/959c84f761907a470a581d5ec56d7582?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pykyladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>MyPicShares</title>
		<link>http://pykyl.wordpress.com/2007/01/18/mypicshares/</link>
		<comments>http://pykyl.wordpress.com/2007/01/18/mypicshares/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 03:55:50 +0000</pubDate>
		<dc:creator>pykyladmin</dc:creator>
				<category><![CDATA[Services]]></category>

		<guid isPermaLink="false">http://pykyl.wordpress.com/2007/01/18/mypicshares/</guid>
		<description><![CDATA[MyPicShares is a little side project I&#8217;ve been working on that I hope people will find, like, and use. I don&#8217;t necessarily expect anyone else to use MyPicShares &#8211; and really, I don&#8217;t care. I created MyPicShares because I needed a mechanism for uploading and sharing pictures that other websites weren&#8217;t really offering. www.mypicshares.com What [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=13&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>MyPicShares is a little side project I&#8217;ve been working on that I hope people will find, like, and use.</p>
<blockquote><p>I don&#8217;t necessarily expect anyone else to use MyPicShares &#8211; and really, I don&#8217;t care. I created MyPicShares because I needed a mechanism for uploading and sharing pictures that other websites weren&#8217;t really offering.</p></blockquote>
<p><a href="http://www.mypicshares.com" target="_blank"><img src="http://www.mypicshares.com/picdump.php?id=%2043&amp;sid=82a029ee5e50cd77d14ab1a61fe54440" /></a></p>
<p><a href="http://www.mypicshares.com" target="_blank">www.mypicshares.com</a></p>
<p><strong>What is MyPicShares and Why was it created?</strong></p>
<p>Sometimes it is easier to show someone a picture to explain things than it is to try to explain something verbally or in writing. I first thought of creating MyPicShares as a way to capture a screen shot of something like, for example, an error message; upload the screen shot and then send someone, like a technical support person, an email with a link so they could look at the picture. In this way, the technical support person could see first-hand what you&#8217;re talking about. Although some day I hope to complete the screen capture software and have it available for download, MyPicShares&#8217; more immediate mission has morphed into something else.</p>
<p>MyPicShares has now become a mechanism for uploading pictures so that you can link to those pictures from a blog like WordPress (unfortunately, MySpace strips MyPicShares pictures out of their src attribute &#8211; so if you want to use MyPicShares from MySpace you will have to wait until MyPicShares becomes more popular). Or, MyPicShares is ideal if you need a hassle-free way to upload a picture and email someone a link to view it. I&#8217;ve also included the ability for you to suggest a Google search, in case you think someone viewing your picture might be interested in a search you suggest. In addition to that, I&#8217;m going to be creating a little utility that will enable you to right-click on a picture and send it to MyPicShares. If the picture is larger than the current 125KB limit, the utility will automatically re-size it for you before sending it to MyPicShares. Once again, though, even though that utility isn&#8217;t created yet, MyPicShares is still perfectly usable, as is.</p>
<p>There are some things that are unique about MyPicShares versus other gallery and video sharing websites. First, MyPicShares is NOT a photo gallery. Instead, it is a communication mechanism using pictures as the communication medium. If you want a photo gallery, use some other tool such as Flikr. Second, you won&#8217;t need to sign up for an account to use MyPicShares. I wanted the MyPicShares experience to be simple and anonymous, like Google. By not requiring you to sign up for anything, you can accomplish picture sharing without any undue fuss and bother. Finally, MyPicShares follows the K.I.S.S. (Keep is Simple Stupid) axiom, like the good folks at the Mozilla Foundation who created Firefox &#8211; any feature added to Firefox is thought about deeply before making the cut. MyPicShares essentially enables one task, and one task only &#8211; but it does it efficiently, and it does it well. By focusing on this one task, MyPicShares will help alleviate frustration that often accompanies complicated gallery sites. That is not to say that I won&#8217;t be adding features to MyPicShares, but its core functionality is going to remain essentially unchanged. My goal is to have MyPicShares be the little utility that could, be rock solid, and simply be there when you need it.</p>
<p>Another nice feature about MyPicShares is that once your picture is uploaded, it&#8217;s going to be hosted for as long as MyPicShares is around &#8211; we don&#8217;t delete pictures. Originally, I had the thought that they would be deleted after a little while, but what&#8217;s the use of that? You couldn&#8217;t link to your picture from a blog if it were going to be deleted. So I made the decision to let the pictures stay. Besides, I have this crazy far-off idea of building a search algorithm that actually uses the contents of pictures to come up with matches. As an example, if I were searching for pine trees, my search algorithm would bring up all pictures with pine trees in them. Having a huge database of pictures will certainly help me develop my algorithm &#8211; well, that&#8217;s definitely a ways out there yet.</p>
<p>Back in reality, I don&#8217;t necessarily expect anyone else to use MyPicShares &#8211; and really, I don&#8217;t care. I created MyPicShares because I needed a mechanism for uploading and sharing pictures that other websites weren&#8217;t really offering. Most of the &#8220;free&#8221; picture sites want you to create an account, and they want to be an everything destination for you &#8211; which was total overkill for what I needed. If other people find MyPicShares fills a certain need in their lives, then so be it. If I&#8217;m the only one ever using MyPicShares, I can swing the meager hosting fees. If other people start using it, the Google AdSense words should help fund it. We&#8217;ll see. Finally, I&#8217;d like to say that I hope people don&#8217;t abuse MyPicShares. Unfortunately, with popularity comes problems. So, in a way, if no one else ever used it except me and my friends, I wouldn&#8217;t have anything to worry about. But, if it does gain in popularity, I guess I will deal with the problems as they arise.</p>
<p>Well, now that you know what MyPicShares is, and how it works, give MyPicShares a whirl. If you like it, tell your friends about  it. Maybe, just maybe, it&#8217;ll help make your life just a tad easier.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pykyl.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pykyl.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pykyl.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pykyl.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pykyl.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pykyl.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pykyl.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pykyl.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pykyl.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pykyl.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pykyl.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pykyl.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pykyl.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pykyl.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pykyl.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pykyl.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=13&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pykyl.wordpress.com/2007/01/18/mypicshares/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/959c84f761907a470a581d5ec56d7582?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pykyladmin</media:title>
		</media:content>

		<media:content url="http://www.mypicshares.com/picdump.php?id=%2043&#38;sid=82a029ee5e50cd77d14ab1a61fe54440" medium="image" />
	</item>
		<item>
		<title>SQL Server 2005 locating a .bak file name</title>
		<link>http://pykyl.wordpress.com/2006/12/09/sql-server-2005-bak-file-name/</link>
		<comments>http://pykyl.wordpress.com/2006/12/09/sql-server-2005-bak-file-name/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 01:29:30 +0000</pubDate>
		<dc:creator>pykyladmin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://pykyl.wordpress.com/2006/12/09/sql-server-2005-bak-file-name/</guid>
		<description><![CDATA[I recently had the pleasure of upgrading a server running Microsoft SQL Server 2000 to Microsoft SQL Server 2005. Although a lot of things remain the same, there are some subtle, yet crucial differences that need to be addressed. As part of a regular maintenance program, our test database is restored nightly from the most [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=10&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently had the pleasure of upgrading a server running Microsoft SQL Server 2000 to Microsoft SQL Server 2005. Although a lot of things remain the same, there are some subtle, yet crucial differences that need to be addressed.</p>
<p>As part of a regular maintenance program, our test database is restored nightly from the most recent backup of the production server. The restore takes place over a TCP/IP network, reading the .bak file directly. Because there is no user interface way of accomplishing this task, good old T-SQL comes to the rescue.  Basically, a job on the test server runs some T-SQL to perform the restore.</p>
<p>One of the job&#8217;s first tasks is to get the name of the most recent backup file, as it is different every day. In the old days, I would locate the name of the most recent backup file in the <code>message</code> field in the following table:</p>
<p><code>sysdbmaintplan_history</code></p>
<p>But Microsoft is depreciating <code>sysdbmaintplan_history</code> and the table isn&#8217;t populated any more. Microsoft&#8217;s documentation states that <code>sysdbmaintplan_history</code> is only included in SQL Server 2005 for backwards compatibility and will no longer be included in future releases of SQL Server. Microsoft does not recommend using the table in new development, and to modify existing code to use an alternative. But what is the alternative? Well, after much head scratching and searching, I discovered this table located in the <code>msdb</code> database:</p>
<p><code>sysmaintplan_logdetail</code></p>
<p>The structure of this table is quite different from <code>sysdbmaintplan_history</code>, but the information contained therein is basically the same. Some of the interesting columns are:</p>
<p><code>error_number</code></p>
<p><code>command</code></p>
<p>The purpose of <code>error_number</code> is probably pretty clear. If an error condition were raised while creating the backup, a numerical representation of that error would appear in this column.  Not so obvious is the <code>command</code> column. Its job is to hold what looks like a dump of the various actions taken during the maintenance plan. Unfortunately, to get to your backup file name you must parse it out of this column. Although it&#8217;s not all bad news &#8211; there are clear and consistent keywords placed in the file that will help you locate your .bak file name.</p>
<p>There are other fairly obvious columns in the table that help you identify which row you want, such as a start and end date of the job, or the name and type of the maintenance plan. Peruse the table and it should all become pretty clear.</p>
<p>IMPORTANT: <code>sysmaintplan_logdetail</code> is populated only if you have a maintenance plan set up. If you create a backup job through the job manager, you won&#8217;t find any useful data in <code>sysmaintplan_logdetail</code>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pykyl.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pykyl.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pykyl.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pykyl.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pykyl.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pykyl.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pykyl.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pykyl.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pykyl.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pykyl.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pykyl.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pykyl.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pykyl.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pykyl.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pykyl.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pykyl.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=10&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pykyl.wordpress.com/2006/12/09/sql-server-2005-bak-file-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/959c84f761907a470a581d5ec56d7582?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pykyladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>The day the music lived</title>
		<link>http://pykyl.wordpress.com/2006/11/08/the-day-the-music-lived/</link>
		<comments>http://pykyl.wordpress.com/2006/11/08/the-day-the-music-lived/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 04:10:48 +0000</pubDate>
		<dc:creator>pykyladmin</dc:creator>
				<category><![CDATA[PHP Development]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[Web Design and Development]]></category>

		<guid isPermaLink="false">http://pykyl.wordpress.com/2006/11/08/the-day-the-music-lived/</guid>
		<description><![CDATA[Recently one of my tasks was to create an easy way for people to stream music from our arts and entertainment project Radio Pykyl. We wanted Radio Pykyl to be more than just music, and more than just a blog about art, music, culture, politics, etc. Instead, our goal was to combine the two so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=8&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently one of my tasks was to create an easy way for people to stream music from our arts and entertainment project <a href="http://www.radiopykyl.com" target="_blank">Radio Pykyl</a>. We wanted Radio Pykyl to be more than just music, and more than just a blog about art, music, culture, politics, etc. Instead, our goal was to combine the two so that when someone visits Radio Pykyl, they get to read and comment on interesting things, as well as listen to its soundtrack &#8211; creating a more immersive and powerful end-product. To do this involved some fun technologies I haven&#8217;t had a lot of opportunity to play with, and a chance for me to learn a little more PHP.</p>
<p>My first inclination was to use a service called <a href="http://www.live365.com" target="_blank">live365.com</a> to stream the music. Basically, you pay live365 a monthly fee and you can set up a lot like a real radio station (they help with the RIAA fees, live broadcasting, and much more). For our immediate purpose this was a bit of overkill. Perhaps one day, if events warrant it, we&#8217;ll still go with them. But for now, I settled for the idea of streaming the music through a <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&amp;promoid=BIOW" target="_blank">flash player</a>.</p>
<p>A few years ago this would have not been such a good decision because the flash plug-in wasn&#8217;t as ubiquitous as it is now. It is necessary to have the the flash plug-in installed in your web browser to &#8220;show&#8221; a flash &#8220;movie&#8221;. Today, the flash plug-in is so common it&#8217;s normally installed right out of the box with both <a href="http://www.microsoft.com/windows/ie/default.mspx?mg_ID=10006" target="_blank">Internet Explorer</a> and <a href="http://www.mozilla.org" target="_blank">Firefox</a>. In the old days to get flash to play a video or stream some music you had to embed it into the flash &#8220;movie&#8221;. Today, flash supports the loading of external files, thus making a modular player that accepts an external play list and external mp3s possible. These things made my decision to go with a flash solution a lot easier.</p>
<p>Another nice thing about flash is that it&#8217;s simple to use. With live365 the user has to get an account, and download a player before being able to listen to anything. With my flash solution, they can just go to Radio Pykyl and click play, thus increasing my chances of early user adoption.</p>
<p>I don&#8217;t own the flash &#8220;movie&#8221; authoring tools, so I needed to find a pre-built &#8220;movie&#8221; in the form of a music player. That&#8217;s where <a href="http://musicplayer.sourceforge.net/" target="_blank">these guys</a> (the XSPF Web Music Player) came in. Basically they have created a nice little music player using flash that accepts a play list in a standard format (<a href="http://www.xspf.org/" target="_blank">XSPF</a>), and links to the mp3s in the play list to stream them &#8211; precisely what I needed. I downloaded the thin version of their player and copied the files to my web host, which is also where I&#8217;m keeping the folder full of mp3s.</p>
<p>Because I am hosting Radio Pykyl on <a href="http://wordpress.com" target="_blank">WordPress.com</a> I couldn&#8217;t embed the player into a WordPress blog &#8211; for security purposes WordPress doesn&#8217;t allow you to embed flash &#8220;movies.&#8221; So I had to come up with a different solution. To solve my problem, I turned to my old friend, frames. The top frame was to be the player, and the bottom frame would host the WordPress blog. This had the added advantage of letting the user navigate through Radio Pykyl in the bottom frame and not interrupt the music in the top frame. Click <a href="http://pykyl.pastebin.com/819171" target="_blank">here</a> to see a copy of my frames page.</p>
<p>When a user goes to Radio Pykyl I want them to get a fresh new play list, built randomly, each time. Also, I didn&#8217;t want to have to maintain the list, so I needed a PHP script that would create the play list based on the mp3s stored in a given folder. This kind of stretched my PHP knowledge a bit. First, I had to figure out how to read the contents of a folder (or directory) structure. Then I had to put all those file names in an array so I could randomize the order. Finally, I had to write the xspf file into my folder.</p>
<p>Here&#8217;s the PHP code that enabled all that.</p>
<p><code>&lt;?php<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$i&nbsp;=&nbsp;0;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Create&nbsp;an&nbsp;array&nbsp;to&nbsp;hold&nbsp;the&nbsp;song&nbsp;titles.<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$songlist&nbsp;=&nbsp;array();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;List&nbsp;the&nbsp;mp3&nbsp;files&nbsp;in&nbsp;the&nbsp;folder.&nbsp;Because<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;folder&nbsp;should&nbsp;not&nbsp;contain&nbsp;any&nbsp;other<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;files&nbsp;except&nbsp;for&nbsp;mp3&nbsp;files&nbsp;you&nbsp;don't&nbsp;have<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;to&nbsp;check&nbsp;for&nbsp;that.&nbsp;So&nbsp;make&nbsp;sure&nbsp;you&nbsp;don't<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;accidently&nbsp;put&nbsp;something&nbsp;else&nbsp;in&nbsp;here!<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($handle&nbsp;=&nbsp;opendir("music"))&nbsp;{<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(false&nbsp;!==&nbsp;($file&nbsp;=&nbsp;readdir($handle)))&nbsp;{<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($file&nbsp;!=&nbsp;"."&nbsp;&amp;&amp;&nbsp;$file&nbsp;!=&nbsp;"..")&nbsp;{<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$songlist[$i]&nbsp;=&nbsp;$file;<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$i++;<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Shuffle&nbsp;the&nbsp;song&nbsp;list&nbsp;using&nbsp;PHP's&nbsp;shuffle&nbsp;function.<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shuffle($songlist);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Build&nbsp;the&nbsp;output&nbsp;file.<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;=&nbsp;"http://www.pykyl.com/radiopykyl/music/";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$count&nbsp;=&nbsp;count($songlist);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;=&nbsp;"&lt;?xml&nbsp;version=\"1.0\"&nbsp;encoding=\"UTF-8\"?&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"&lt;playlist&nbsp;version=\"1\"&nbsp;xmlns=\"http://xspf.org/ns/0/\"&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"&lt;trackList&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;($i&nbsp;=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;$count;&nbsp;$i++)&nbsp;{<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;mp3&nbsp;name&nbsp;should&nbsp;use&nbsp;the&nbsp;following&nbsp;naming<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;convention&nbsp;so&nbsp;it&nbsp;can&nbsp;easily&nbsp;be&nbsp;parsed:<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Artist_Ablum_Song&nbsp;Title_.mp3<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;I'll&nbsp;use&nbsp;PHP's&nbsp;explode&nbsp;function&nbsp;with&nbsp;"_"&nbsp;as&nbsp;the<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;delimiter&nbsp;to&nbsp;parse&nbsp;it&nbsp;quickly.<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$trackinfo&nbsp;=&nbsp;explode("_",&nbsp;$songlist[$i]);<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"\t&lt;track&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"\t\t&lt;location&gt;"&nbsp;.&nbsp;$url&nbsp;.&nbsp;$songlist[$i]&nbsp;.&nbsp;"&lt;/location&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"\t\t&lt;creator&gt;"&nbsp;.&nbsp;$trackinfo[0]&nbsp;.&nbsp;"&lt;/creator&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"\t\t&lt;album&gt;"&nbsp;.&nbsp;$trackinfo[1]&nbsp;.&nbsp;"&lt;/album&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"\t\t&lt;title&gt;"&nbsp;.&nbsp;$trackinfo[2]&nbsp;.&nbsp;"&lt;/title&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"\t&lt;/track&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"&lt;/trackList&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&nbsp;.=&nbsp;"&lt;/playlist&gt;\n";<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Open&nbsp;the&nbsp;file&nbsp;and&nbsp;erase&nbsp;the&nbsp;contents&nbsp;if&nbsp;any<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fp&nbsp;=&nbsp;fopen("playlist.xspf",&nbsp;"w");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;the&nbsp;data&nbsp;to&nbsp;the&nbsp;file<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fwrite($fp,&nbsp;$content);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Clean&nbsp;up!<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose($fp);<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Open&nbsp;the&nbsp;player&nbsp;and&nbsp;radiopykyl.<br />
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header("Location:&nbsp;radioframes.html");<br />
<br />?&gt;</code></p>
<p>One thing to notice is the use of the PHP <code>explode</code> function. I store my mp3s in an Artist_Album_Song Title_.mp3 format. This lets me explode the various values into an array using the &#8220;_&#8221; character as the delimiter &#8211; making for some nice tight parsing code. After <strong>index.php</strong> is done creating my play list, it calls my frames page using the <code>header</code> PHP function. Here&#8217;s what my frames page looks like:</p>
<p><code>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"<br />
&nbsp;"http://www.w3.org/TR/html4/frameset.dtd"&gt;<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&nbsp;&lt;TITLE&gt;Radio Pykyl&lt;/TITLE&gt;<br />
&lt;/HEAD&gt;<br />
&nbsp;&lt;FRAMESET rows="40,*" frameborder=no framespacing=0 border=0&gt;<br />
&nbsp;&nbsp;&lt;FRAME src="http://www.pykyl.com/radiopykyl/player.html" noresize&gt;<br />
&nbsp;&nbsp;&lt;FRAME src="http://radiopykyl.wordpress.com" noresize&gt;<br />
&nbsp;&nbsp;&lt;/FRAMESET&gt;<br />
&lt;/HTML&gt;</code></p>
<p>The code to embed the player is pretty straight forward. To embed a flash &#8220;movie,&#8221; I used the <code>object</code> HTML tag. Here&#8217;s that code:</p>
<p><code>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;/head&gt;<br />
&lt;body style="background-color: #A0522D;"&gt;<br />
&lt;span style="float: left; margin-right: 15px;"&gt;<br />
&lt;object type="application/x-shockwave-flash" width="400" height="15" <br />
data="http://www.pykyl.com/radiopykyl/xspf_player_slim.swf?playlist_url=<br />
http://www.pykyl.com/radiopykyl/playlist.xspf"&gt;<br />
&lt;param name="movie" value="http://www.pykyl.com/radiopykyl/xspf_player_slim.swf<br />
?playlist_url=http://www.pykyl.com/radiopykyl/playlist.xspf"/&gt;<br />
&lt;/object&gt;&lt;/span&gt;<br />
&lt;span style="color: white; font: normal bold 9pt Verdana,Tahoma,Arial,sans-serif; "<br />
&gt;Start listening, press the play button!&lt;/span&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</code></p>
<p>I added a little inline CSS to get the color of my background, and to make the words float to the right of the flash object. The player itself simply takes my randomly generated playlist as an argument in a query string.</p>
<p><em>Overall </em></p>
<p>1. Create a folder on your web server for the project to live in (as an example, mine is called <strong>radiopykyl</strong>).</p>
<p>2. Create a sub-folder in your main folder for the mp3s to live in called <strong>music</strong>. Add your mp3s to this folder with the following naming convention:</p>
<p>Artist_Album_Song Title_.mp3</p>
<p>3. Copy the XSPF player flash files to your main folder. When you download and unzip the player it has four files:</p>
<p><strong>xspf_player_slim.as</strong></p>
<p><strong>xspf_player_slim.fla</strong></p>
<p><strong>xspf_player_slim.swf</strong></p>
<p><strong>license.txt</strong></p>
<p>Make sure you copy all four of them into your folder.</p>
<p>4. Create a file called <strong>index.php</strong> that holds the contents of the script that creates the playlist and calls the frames page, and put it in the same folder as the flash player.</p>
<p>5. Create a file called <strong>player.html</strong> that contains the HTML code to load the player itself and put it in the same folder as the flash player.</p>
<p>6. Create a file called <strong>radioframes.html</strong> that contains the two frames for the project and put it in the same folder as the flash player.</p>
<p>Call <strong>index.php</strong> in your favorite web browser and it should load everything up nicely, and you&#8217;re ready to ROCK! One incidental, IE doesn&#8217;t seem to render the top frame very well.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pykyl.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pykyl.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pykyl.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pykyl.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pykyl.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pykyl.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pykyl.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pykyl.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pykyl.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pykyl.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pykyl.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pykyl.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pykyl.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pykyl.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pykyl.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pykyl.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=8&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pykyl.wordpress.com/2006/11/08/the-day-the-music-lived/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/959c84f761907a470a581d5ec56d7582?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pykyladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>A make your life easier CSS tip</title>
		<link>http://pykyl.wordpress.com/2006/11/01/a-make-your-life-easier-css-tip/</link>
		<comments>http://pykyl.wordpress.com/2006/11/01/a-make-your-life-easier-css-tip/#comments</comments>
		<pubDate>Wed, 01 Nov 2006 19:24:56 +0000</pubDate>
		<dc:creator>pykyladmin</dc:creator>
				<category><![CDATA[Web Design and Development]]></category>

		<guid isPermaLink="false">http://pykyl.wordpress.com/2006/11/01/a-make-your-life-easier-css-tip/</guid>
		<description><![CDATA[This is a little tip I picked up from a good friend of mine who walks on CSS water. At the top of your CSS file you can create a catch-all selector that applies default properties to all selectors unless a property is specifically overridden in another selector. I use this feature of CSS to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=7&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a little tip I picked up from a <a href="http://www.dottedidesign.com">good friend</a> of mine who walks on CSS water. At the top of your CSS file you can create a catch-all selector that applies default properties to all selectors unless a property is specifically overridden in another selector.</p>
<p>I use this feature of CSS to set up my default font for the entire website. This way I don&#8217;t have to repeat any of these properties within other selectors (unless I need to override a specific property).</p>
<p>Here&#8217;s a CSS example of a typical catch-all selector in one of my web projects.</p>
<p style="border:1px dotted blue;padding:10px;"> * {<br />
font-family: Tahoma, Verdana, Arial, sans-serif;<br />
font-style: normal;<br />
font-weight: normal;<br />
font-size: 9pt;<br />
color: #000000;<br />
}</p>
<p>Of course, it&#8217;s up to you to put in the default properties you want. You could also set things like default background colors, or default margins and paddings in your catch-all selector. Don&#8217;t forget to put it at the top of your CSS file.</p>
<p>On a side note, <a href="http://www.htmlhelp.com/reference/css/">this</a> website helps me out a lot when I&#8217;m doing CSS.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pykyl.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pykyl.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pykyl.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pykyl.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pykyl.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pykyl.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pykyl.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pykyl.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pykyl.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pykyl.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pykyl.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pykyl.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pykyl.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pykyl.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pykyl.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pykyl.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=7&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pykyl.wordpress.com/2006/11/01/a-make-your-life-easier-css-tip/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/959c84f761907a470a581d5ec56d7582?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pykyladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>The hosts file in Windows XP saves the day</title>
		<link>http://pykyl.wordpress.com/2006/10/31/the-hosts-file-in-windows-xp-saves-the-day/</link>
		<comments>http://pykyl.wordpress.com/2006/10/31/the-hosts-file-in-windows-xp-saves-the-day/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 20:55:57 +0000</pubDate>
		<dc:creator>pykyladmin</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://pykyl.wordpress.com/2006/10/31/the-hosts-file-in-windows-xp-saves-the-day/</guid>
		<description><![CDATA[I used to host my own qmail installation on a Gentoo Linux server in my basement. I decided to get out of that business because I don&#8217;t have time to deal with the relentless onslaught of SPAM. I used SquirrelMail, a friendly web-based email client, to check my email. Now my email is safe and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=5&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I used to host my own <a href="http://www.qmail.org/top.html">qmail</a> installation on a <a href="http://www.gentoo.org/">Gentoo</a> Linux server in my basement. I decided to get out of that business because I don&#8217;t have time to deal with the relentless onslaught of SPAM. I used <a href="http://www.squirrelmail.org/">SquirrelMail</a>, a friendly web-based email client, to check my email. Now my email is safe and secure at my new web host, and I don&#8217;t have to worry about it anymore! I also transferred my websites over there because I&#8217;m getting out of the hosting game in general.</p>
<p>But, moving my email and hosting left me with a bit of a problem. I still had email sitting on my old server that I needed to get to (mostly to transfer it). Because I jumped the gun a bit, my old server&#8217;s IP address (e.g., 206.207.110.214) was no longer mapped to a friendly domain name &#8211; in this case https://mail.pykyl.com. I could bring up my old website by typing in the old IP address, but SquirrelMail became unusable without its friendly domain name.</p>
<p>The solution was to fool Windows XP into thinking the old IP address still mapped to my old friendly domain name. That&#8217;s where the hosts file came in handy. To resolve a domain name to an IP address, Windows first checks with the hosts file to see if it&#8217;s in there. If it can&#8217;t find it in there, it then checks on down the line with various Domain Name System (DNS) servers to see if they can map it. I used this precedence to my advantage.</p>
<p>The hosts file is found in the following folder on Windows XP Pro and Home editions:</p>
<p style="border:1px dotted blue;padding:10px;"> C:\WINDOWS\system32\drivers\etc</p>
<p>It is literally called:</p>
<p style="border:1px dotted blue;padding:10px;"> hosts</p>
<p>If it hasn&#8217;t been modified it will look like this:</p>
<p style="border:1px dotted blue;padding:10px;"> # Copyright (c) 1993-1999 Microsoft Corp.<br />
#<br />
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.<br />
#<br />
# This file contains the mappings of IP addresses to host names. Each<br />
# entry should be kept on an individual line. The IP address should<br />
# be placed in the first column followed by the corresponding host name.<br />
# The IP address and the host name should be separated by at least one<br />
# space.<br />
#<br />
# Additionally, comments (such as these) may be inserted on individual<br />
# lines or following the machine name denoted by a &#8216;#&#8217; symbol.<br />
#<br />
# For example:<br />
#<br />
#      102.54.94.97     rhino.acme.com          # source server<br />
#       38.25.63.10     x.acme.com              # x client host<br />
127.0.0.1       localhost</p>
<p><strong>CAUTION</strong>: Before editing the hosts file, make a backup of it. If you screw things up, you will want to start over.</p>
<p>Basically, all I did was add a couple of entries to it, rebooted Windows XP, and Bob&#8217;s your uncle, I was able to get to my SquirrelMail interface.  So, when I was done, my hosts file looked like this:</p>
<p style="border:1px dotted blue;padding:10px;"> # Copyright (c) 1993-1999 Microsoft Corp.<br />
#<br />
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.<br />
#<br />
# This file contains the mappings of IP addresses to host names. Each<br />
# entry should be kept on an individual line. The IP address should<br />
# be placed in the first column followed by the corresponding host name.<br />
# The IP address and the host name should be separated by at least one<br />
# space.<br />
#<br />
# Additionally, comments (such as these) may be inserted on individual<br />
# lines or following the machine name denoted by a &#8216;#&#8217; symbol.<br />
#<br />
# For example:<br />
#<br />
#      102.54.94.97     rhino.acme.com          # source server<br />
#       38.25.63.10     x.acme.com              # x client host<br />
127.0.0.1       localhost<br />
206.207.110.214 www.pykyl.com<br />
206.207.110.214 mail.pykyl.com</p>
<p>After I had done what I needed to do with SquirrelMail I removed the two entries and all was good.</p>
<p>Oh yeah, I forgot to mention that your old server at the old IP address needs to be running for this to work. But you probably already knew that.</p>
<p>Hope this helps, and good luck!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pykyl.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pykyl.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pykyl.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pykyl.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pykyl.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pykyl.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pykyl.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pykyl.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pykyl.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pykyl.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pykyl.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pykyl.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pykyl.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pykyl.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pykyl.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pykyl.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=5&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pykyl.wordpress.com/2006/10/31/the-hosts-file-in-windows-xp-saves-the-day/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/959c84f761907a470a581d5ec56d7582?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pykyladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>PHP Sample: Redirecting to another website</title>
		<link>http://pykyl.wordpress.com/2006/10/30/php-sample-redirecting-to-another-website/</link>
		<comments>http://pykyl.wordpress.com/2006/10/30/php-sample-redirecting-to-another-website/#comments</comments>
		<pubDate>Mon, 30 Oct 2006 01:30:29 +0000</pubDate>
		<dc:creator>pykyladmin</dc:creator>
				<category><![CDATA[PHP Development]]></category>

		<guid isPermaLink="false">http://pykyl.wordpress.com/2006/10/30/php-sample-redirecting-to-another-website/</guid>
		<description><![CDATA[If you&#8217;re trying to redirect to another web page, or website in PHP use the following code snippet: header(&#8220;Location: http://www.yourdomain.com&#8221;); Of course, don&#8217;t forget to put your own URL in there. If you have a query string, it&#8217;s pretty easy to add it. E.g., header(&#8220;Location: http://www.yourdomain.com?id=12345&#8243;);<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=4&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re trying to redirect to another web page, or website in PHP use the following code snippet:</p>
<p style="border:1px dotted blue;padding:10px;"> header(&#8220;Location: http://www.yourdomain.com&#8221;);</p>
<p>Of course, don&#8217;t forget to put your own URL in there.</p>
<p>If you have a query string, it&#8217;s pretty easy to add it. E.g.,</p>
<p style="border:1px dotted blue;padding:10px;"> header(&#8220;Location: http://www.yourdomain.com?id=12345&#8243;);</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pykyl.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pykyl.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pykyl.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pykyl.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pykyl.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pykyl.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pykyl.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pykyl.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pykyl.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pykyl.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pykyl.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pykyl.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pykyl.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pykyl.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pykyl.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pykyl.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=4&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pykyl.wordpress.com/2006/10/30/php-sample-redirecting-to-another-website/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/959c84f761907a470a581d5ec56d7582?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pykyladmin</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://pykyl.wordpress.com/2006/10/27/hello-world/</link>
		<comments>http://pykyl.wordpress.com/2006/10/27/hello-world/#comments</comments>
		<pubDate>Fri, 27 Oct 2006 21:32:47 +0000</pubDate>
		<dc:creator>pykyladmin</dc:creator>
				<category><![CDATA[General Thoughts]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Welcome to the new Pykyl. Over time we&#8217;re going to be adding information to this site designed to entertain and educate. Look for code samples in a variety of languages, howto&#8217;s on a variety of topics, and general thoughts about aesthetics, technology, information dissemination, and design. Of course, as with all Pykyl projects, we&#8217;re going [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=1&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welcome to the new Pykyl. Over time we&#8217;re going to be adding information to this site designed to entertain and educate. Look for code samples in a variety of languages, howto&#8217;s on a variety of topics, and general thoughts about aesthetics, technology, information dissemination, and design. Of course, as with all Pykyl projects, we&#8217;re going to stick to our guns about our high standards and quality of output.</p>
<p>Pykyl will eventually be more than a portal to our various projects. It will become a destination in and of itself.</p>
<p>For now, check out the various entertainment blogs, and services we&#8217;re currently working on.</p>
<p>Thanks!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pykyl.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pykyl.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pykyl.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pykyl.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pykyl.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pykyl.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pykyl.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pykyl.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pykyl.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pykyl.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pykyl.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pykyl.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pykyl.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pykyl.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pykyl.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pykyl.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pykyl.wordpress.com&amp;blog=504778&amp;post=1&amp;subd=pykyl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pykyl.wordpress.com/2006/10/27/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/959c84f761907a470a581d5ec56d7582?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pykyladmin</media:title>
		</media:content>
	</item>
	</channel>
</rss>
