<?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>Blog - PonticStar.com</title>
	<atom:link href="http://www.ponticstar.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ponticstar.com/blog</link>
	<description>Blog about various aspects of programming and web design</description>
	<lastBuildDate>Sun, 14 Aug 2011 23:52:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Yahoo Media Player beta version is available</title>
		<link>http://www.ponticstar.com/blog/2011/02/24/yahoo-media-player-beta/</link>
		<comments>http://www.ponticstar.com/blog/2011/02/24/yahoo-media-player-beta/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 15:17:18 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Yahoo! Media Player]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=138</guid>
		<description><![CDATA[It turns out that Yahoo Media Player is not abandoned project after all. Last week it was announced that beta version is available for testing at mediaplayer.yahoo.com/beta. Here is a note from developers: We&#8217;ve added some new stuff like video support. The player can now play YouTube videos and movie trailers – just add a [...]]]></description>
			<content:encoded><![CDATA[<p>It turns out that Yahoo Media Player is not abandoned project after all. Last week it was announced that beta version is available for testing at <a href="http://mediaplayer.yahoo.com/beta/">mediaplayer.yahoo.com/beta</a>. Here is a note from developers:</p>
<blockquote><p>
We&#8217;ve added some new stuff like video support. The player can now play YouTube videos and movie trailers – just add a YouTube link or Yahoo! Movie page link to your page. And, at long last, we&#8217;ve added a seek slider to control the position of the audio or video! That bug where songs were stopping instead of pausing when clicking pause has been fixed, as well as a bunch of other small bug fixes.
</p></blockquote>
<p>Here is the new code you will need to embed on your site to test this out (remove the other player JavaScript first):</p>
<pre>
&lt;script type="text/javascript" src="http://webplayer.yahooapis.com/player.js"&gt;&lt;/script&gt;
</pre>
<p><script type="text/javascript"> var YMPParams = { displaystate:-1 };</script><script type="text/javascript" src="http://webplayer.yahooapis.com/player.js"></script></p>
<p>Example:<br />
<a href="http://www.lakeoftears.net/sounds/LOT-FA08.mp3" title="Lake of Tears: Demon you / Lily Anne">Lake of Tears: Demon you / Lily Anne</a><br />
<a href="http://www.youtube.com/watch?v=ARDBGPVOcWk">Anime &#8220;Red thread&#8221;</a><br />
<a href="http://www.youtube.com/watch?v=YXMY2yvu4vk">Top 50 Songs of the 90s in under 9 Minutes</a> </p>
<p>This announcement was posted in Yahoo! discussion group at <a href="http://tech.groups.yahoo.com/group/yhoomediaplayer/">tech.groups.yahoo.com/group/yhoomediaplayer/</a>. Feel free to post examples of how you are using the player on your site to this group.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2011/02/24/yahoo-media-player-beta/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://www.lakeoftears.net/sounds/LOT-FA08.mp3" length="1599740" type="audio/mpeg" />
		</item>
		<item>
		<title>Strip comments and blank lines from file in Unix</title>
		<link>http://www.ponticstar.com/blog/2010/05/13/strip-comments-and-blank-lines-in-unix/</link>
		<comments>http://www.ponticstar.com/blog/2010/05/13/strip-comments-and-blank-lines-in-unix/#comments</comments>
		<pubDate>Thu, 13 May 2010 13:27:42 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=106</guid>
		<description><![CDATA[This command displays configuration file stripping commented and blank lines on Unix-like operating system. grep -E -v '^\s*#&#124;^\s*$&#124;^\s*;' file or egrep -v '^\s*#&#124;^\s*$&#124;^\s*;' file]]></description>
			<content:encoded><![CDATA[<p>This command displays configuration file stripping commented and blank lines on Unix-like operating system. </p>
<pre class="brush:shell">
grep -E -v '^\s*#|^\s*$|^\s*;' file
</pre>
<p>or</p>
<pre class="brush:shell">
egrep -v '^\s*#|^\s*$|^\s*;' file
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2010/05/13/strip-comments-and-blank-lines-in-unix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fire effect using HTML5 canvas element</title>
		<link>http://www.ponticstar.com/blog/2010/04/17/fire-effect-using-html5-canvas-element/</link>
		<comments>http://www.ponticstar.com/blog/2010/04/17/fire-effect-using-html5-canvas-element/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 21:13:53 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=128</guid>
		<description><![CDATA[I have released JavaScript library to create an effect of burning text. There are number of options that you can customize &#8211; colors, font and burning speed. You can see the demo and play with all the options at ponticstar.com/projects/burning-words. The script uses canvas element that is a part of HTML5 specification. The element is [...]]]></description>
			<content:encoded><![CDATA[<p>I have released JavaScript library to create an effect of burning text. There are number of options that you can customize &#8211; colors, font and burning speed. You can see the demo and play with all the options at <a href="http://www.ponticstar.com/projects/burning-words/">ponticstar.com/projects/burning-words</a>.</p>
<p><img src="http://www.ponticstar.com/blog/wp-content/uploads/2010/04/burning-words.png" alt="" title="Burning words" width="210" height="45" class="aligncenter size-full wp-image-129" /></p>
<p>The script uses <a class="target-blank" href="http://en.wikipedia.org/wiki/Canvas_element">canvas element</a> that is a part of HTML5 specification. The element is currently supported by the latest versions of Mozilla Firefox, Google Chrome, Safari, and Opera. It is not natively implemented by Internet Explorer as of version 8.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2010/04/17/fire-effect-using-html5-canvas-element/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strange LetsTalk customer care icon metaphor</title>
		<link>http://www.ponticstar.com/blog/2010/03/11/letstalk-icon-metaphor/</link>
		<comments>http://www.ponticstar.com/blog/2010/03/11/letstalk-icon-metaphor/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 15:18:12 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[Seen Elsewhere]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=125</guid>
		<description><![CDATA[While looking to upgrade my phone on LetsTalk.com I was puzzled by their customer care icon. Have no idea what was designer thinking creating it. Maybe you can help? Another question I am asking myself is there a connection between this and their low rating at ResellerRatings.com.]]></description>
			<content:encoded><![CDATA[<p>While looking to upgrade my phone on <a class="target-blank" href="http://www.letstalk.com">LetsTalk.com</a> I was puzzled by their customer care icon. Have no idea what was designer thinking creating it. Maybe you can help?</p>
<div id="attachment_126" class="wp-caption aligncenter" style="width: 335px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2010/03/letstalk_customer_care.gif" alt="" title="LetsTalk customer care icon" width="325" height="67" class="size-full wp-image-126" /><p class="wp-caption-text">LetsTalk customer care icon</p></div>
<p>Another question I am asking myself is there a connection between this and their low rating at <a class="target-blank" href="http://www.resellerratings.com/store/Let_s_Talk">ResellerRatings.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2010/03/11/letstalk-icon-metaphor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free music for your multimedia project</title>
		<link>http://www.ponticstar.com/blog/2010/02/22/free-music-for-your-project/</link>
		<comments>http://www.ponticstar.com/blog/2010/02/22/free-music-for-your-project/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 20:20:34 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=123</guid>
		<description><![CDATA[On Valentine&#8217;s day David Orr launched the Dev Center that offers free audio samples for developers on a tight budget. Any project will qualify (even commercial ones!) You can use any of the music available in the Dev Center. There is no limit to how many pieces you want to use! No subscription fee is [...]]]></description>
			<content:encoded><![CDATA[<p>On Valentine&#8217;s day <a class="target-blank" href="http://www.davidorr.net/">David Orr</a> launched <a class="target-blank" href="http://www.davidorr.net/Blog/?page_id=563">the Dev Center</a> that offers free audio samples for developers on a tight budget.</p>
<ul>
<li>Any project will qualify (even commercial ones!)</li>
<li>You can use any of the music available in the Dev Center.</li>
<li>There is no limit to how many pieces you want to use!</li>
<li>No subscription fee is required &#8211; you just need to register (for free)</li>
</ul>
<p>The only requirement is that you must insert the Dev Center splash screen at the start of your game.</p>
<p><span id="more-123"></span><br />
Below is my favorite piece of David&#8217;s work:</p>
<p>David wrote music for games like <a class="target-blank" href="http://www.candystand.com/play/copy-cat-a-painters-puzzle">Copy Cat: A Painter&#8217;s Puzzle</a> and <a class="target-blank" href="https://armorgames.com/play/4264/colony">Colony</a>. In these games the music alone can keep you playing for hours. Great work, David!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2010/02/22/free-music-for-your-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.davidorr.net/Mp3/Nocturne%20Csharp%20Minor.mp3" length="4033016" type="audio/mpeg" />
		</item>
		<item>
		<title>Best place to buy a computer online</title>
		<link>http://www.ponticstar.com/blog/2010/01/11/best-place-to-buy-a-computer-online/</link>
		<comments>http://www.ponticstar.com/blog/2010/01/11/best-place-to-buy-a-computer-online/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 12:00:59 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=116</guid>
		<description><![CDATA[It was a long time since I built my computer so I chose to go with professional PC builder to avoid messing things up. Most importantly I wanted to build a custom desktop computer according to my specification. Other things that matter the most to me were:

<ul>
	<li>Ability to customize every aspect of the configuration</li>
	<li>Professionalism and reliability of the builder that will treat the computer as their own</li>
	<li>Warranty</li>
</ul>

After doing a research online for I found <a href="http://www.avadirect.com/">AVADirect</a> (<a href="http://www.avadirect.com/">www.avadirect.com</a>).]]></description>
			<content:encoded><![CDATA[<p>My laptop screen started showing signs of age several months ago, a replacement would cost me around $200. It did not make sense to invest $200 in 5-year old computer, so I decided to get a new one. </p>
<p>It was a long time since I built my computer so I chose to go with professional PC builder to avoid messing things up. Most importantly I wanted to build a custom desktop computer according to my specification. Other things that matter the most to me were:</p>
<ul>
<li>Ability to customize every aspect of the configuration</li>
<li>Professionalism and reliability of the builder that will treat the computer as their own</li>
<li>Warranty</li>
</ul>
<p>After doing a research online for I found <a href="http://www.avadirect.com/">AVADirect</a> (<a href="http://www.avadirect.com/">www.avadirect.com</a>). This is a quote from their web site:</p>
<blockquote><p>AVADirect Custom Computers is a custom computer manufacturing company located on the outskirts of Cleveland, Ohio. Our company specializes in building all kinds of custom computer systems including: Windows or Linux manageable and highly-reliable servers, high-end workstations and gaming systems, business PCs, and notebooks.</p></blockquote>
<p>Their web site amazed me. First of all, clear navigation that easily gets you through the building and ordering process. Secondly, there is so called &#8220;<a href="http://www.avadirect.com/forum/forum_topics.asp?FID=55" class="target-blank">Featured Systems Gallery</a>&#8221; where they showcase most common configurations that you can review. They have easy to use online tool that offers extensive choice of components. Did I mention 3 Year limited warranty on parts, 3 year warranty on labor and lifetime toll-free technical support?</p>
<h3>Prices</h3>
<p>It would cost you more (10% in my case) to order a computer from AVADirect in comparison to prices for individual components on NewEgg.com. But you will get excellent service and 3 year warranty in return. I think it worth every penny.</p>
<h3>Ordering</h3>
<p>If you are not sure what you want, you would better call them by phone <strong>1-866-766-4629</strong> or <a href="http://www.avadirect.com/contact_online.asp" class="target-blank">send them an e-mail</a> to help you with exact configuration. Otherwise you can proceed to ordering page using navigation menu. For example:</p>
<ul>
<li> Desktop Computers
<ul>
<li>Custom Desktop Computers
<ul>
<li>Socket 1366 Core i7 Desktop PC
<ul>
<li>Core™ i7 2-way CrossFire™ 24GB Performance Series System</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>There you can customize anything (Figure 1) starting from computer case and including operating system, software, games and warranty.<br />
<div id="attachment_117" class="wp-caption aligncenter" style="width: 550px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2010/01/avadirect_fig1.gif" alt="Figure 1. Customizing your configuration" title="Figure 1. Customizing your configuration" width="540" height="327" class="size-full wp-image-117" /><p class="wp-caption-text">Figure 1. Customizing your configuration</p></div></p>
<p>It is so easy to get frustrated with so many choices of components. But if you made a mistake or unsure about certain component, don&#8217;t worry. Each order will be reviewed by a professional to make sure that all components match. </p>
<p>If you are uncertain about some components, I would recommend to get an account, build your computer using their online configurator, add it to cart and then instead of checking out send yourself a quote (Figure 2).</p>
<div id="attachment_119" class="wp-caption aligncenter" style="width: 311px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2010/01/avadirect_fig2.gif" alt="Figure 2. Getting a quote number" title="Figure 2. Getting a quote number" width="301" height="77" class="size-full wp-image-119" /><p class="wp-caption-text">Figure 2. Getting a quote number</p></div>
<p>After you send a quote, you will receive a quote number in the details of your quote. You can reference this number either by phone or via e-mail to avoid explaining your configuration from the scratch. In my case I was recommended to use power supply with higher output and other things that I didn&#8217;t consider as important at first.</p>
<p>Being cautious about using my credit card online I also asked whether they support PayPal. Sure, they do that as well.</p>
<h3>When unexpected happens</h3>
<p>It was a surprise for me when a few days later I got a call from AVADirect. Due to high demand graphics card that I wanted was not available so they offered me to upgrade to the same card of different manufacturer <em>for free</em> even though it was priced $30 higher. Same thing happened with motherboard, it was out of stock so I got another upgrade to more expensive motherboard <em>for free</em> which cost them another $50.</p>
<p>It took AVADirect 10 business days to assemble and test the computer. According to their policy <quote>every assembled computer system needs to be tested under stress loads to make sure that there are no defects in system components and they all can work together in this particular system setup for a long period of time</quote>.</p>
<p>You can track your order status online by logging into your account (Figure 3).<br />
<div id="attachment_120" class="wp-caption aligncenter" style="width: 550px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2010/01/avadirect_fig3.gif" alt="Figure 3. Order status" title="Figure 3. Order status" width="540" height="99" class="size-full wp-image-120" /><p class="wp-caption-text">Figure 3. Order status</p></div></p>
<h3>Unboxing</h3>
<p>Since being placed, my order was delivered in 11 business days. It has arrived in a huge box filled to the top with packing peanuts. Inside there were computer case box and box for motherboard filled with all the supporting documents, drivers, manuals, etc. </p>
<p>The first thing I did is opened the case. The way cables were organized inside shows high level of professionalism and care (Figure 4). </p>
<div id="attachment_121" class="wp-caption aligncenter" style="width: 264px"><a rel="lightbox" title="Figure 4. Cable management"  href="http://www.ponticstar.com/blog/wp-content/uploads/2010/01/avadirect_cables.jpg"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2010/01/avadirect_cables-254x300.jpg" alt="Figure 4. Cable management" title="Figure 4. Cable management" width="254" height="300" class="size-medium wp-image-121" /></a><p class="wp-caption-text">Figure 4. Cable management</p></div>
<h3>Conclusion</h3>
<p>Overall I would recommend AVADirect to anyone who wants to buy a computer online. Their professionalism, prices and warranty are hard to beat. Although you are expected to have some knowledge about computers and their components, you can always contact AVADirect with any questions or recommendations. I am pretty sure they will patiently answer all of your questions and help you out building computer of your dream within your budget.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2010/01/11/best-place-to-buy-a-computer-online/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hacking the Yahoo! Media Player</title>
		<link>http://www.ponticstar.com/blog/2009/12/12/hacking-yahoo-media-player/</link>
		<comments>http://www.ponticstar.com/blog/2009/12/12/hacking-yahoo-media-player/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 06:00:00 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Yahoo! Media Player]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=109</guid>
		<description><![CDATA[The Yahoo! Media Player enhances your web site or blog by creating an embedded player for each audio link. All the links can be played with one click, turning the page into a playlist. This is done by adding just one line of code to your page. This article explains how to customize Yahoo! Media Player to match your web site design.]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE</strong>: On August 4, 2011 Yahoo! has released a new version of the player available at <a class="target-blank" href="http://webplayer.yahoo.com">webplayer.yahoo.com</a>. Please note that tricks mentioned here might not work with it. I will try to review the new player and update this article.</p>
<ul class="toc">
<li><a href="#about">About the player</a></li>
<li><a href="#updates">Updates</a></li>
<li><a href="#usage">How to use</a>
<ul>
<li><a href="#playlist">How to use a playlist</a></li>
</ul>
</li>
<li>Appearance
<ul>
<li><a href="#skin">How to change skin</a></li>
<li><a href="#bgcolor">How to adjust background color</a></li>
<li><a href="#color">How to adjust text color</a></li>
<li><a href="#relevant-info-update">How to update block with relevant information</a></li>
<li><a href="#relevant-info-hide">How to remove block with relevant information</a></li>
<li><a href="#buttons-hide">How to hide player buttons</a></li>
<li><a href="#playlist-color">How to change playlist colors</a></li>
<li><a href="#album-art">How to display album art</a></li>
<li><a href="#album-art-default">How to change default album art image</a></li>
<li><a href="#album-art-hide">How to hide album art</a></li>
<li><a href="#meta-album-title-change">How to change meta (album title/website URL) information</a></li>
<li><a href="#meta-album-title-hide">How to hide meta (album title/website URL) information</a></li>
<li><a href="#hide-player">How to hide the player</a></li>
<li><a href="#hide-links">How to hide MP3 links</a></li>
<li><a href="#hide-play-pause-buttons">How to hide link play/pause buttons</a></li>
</ul>
</li>
<li>Functionality
<ul>
<li><a href="#pop">How to start player in a new window</a></li>
<li><a href="#title-search-disable">How to disable Yahoo! search links</a></li>
<li><a href="#settings">How to change default settings</a></li>
</ul>
<li><a href="#links">Links</a></li>
</ul>
<p><a name="about"></a></p>
<h3>About the player</h3>
<p>The Yahoo! Media Player enhances your web site or blog by creating an embedded player for each audio link. All the links can be played with one click, turning the page into a playlist. This is done by adding just one line of code to your page.</p>
<p><a name="updates"></a></p>
<h3>Updates</h3>
<h4>2/15/2011 &#8211; Yahoo! Media Player beta version is released</h4>
<p>There is beta version available with YouTube/Yahoo! Movie pages support, please see <a href="http://mediaplayer.yahoo.com/beta/">Yahoo! Media Player beta page</a> or <a href="/blog/2011/02/24/yahoo-media-player-beta">this post</a> for more information. Please note that some hacks mentioned here might not work with beta version.</p>
<p><a name="usage"></a></p>
<h3>How to use</h3>
<p>Please visit the Yahoo! Media Player web site (<a class="target-blank" href="http://mediaplayer.yahoo.com/">http://mediaplayer.yahoo.com/</a>) for more information.</p>
<p><a name="playlist"></a></p>
<h3>How to use a playlist</h3>
<p>Please visit the Yahoo! Media Player public wiki (<a class="target-blank" href="http://yahoomediaplayer.wikia.com/wiki/How_to_link">http://yahoomediaplayer.wikia.com/wiki/How_to_link</a>) for more information.</p>
<p>Note that you will not be able to test the functionality on your local computer because Yahoo! Media Player uses external service to retrieve and process XSPF files. It was done to avoid cross-domain access limitation for Flash objects and JavaScript code.</p>
<p><a href="/projects/hacking-yahoo-media-player/playlist.html">View example</a></p>
<p><a name="skin"></a></p>
<h3>How to change skin</h3>
<p>
If you want to dramatically change appearance of the player you would need to modify its skin. There are three images that player mostly uses however you will need to download just the skin image to change player&#8217;s appearance:
</p>
<ol>
<li>
Skin image, links: <a class="target-blank" href="http://l.yimg.com/us.yimg.com/i/us/mus/ymwp/mediaplayer-2.0.31.png">Yahoo.com</a>, <a href="http://www.ponticstar.com/projects/hacking-yahoo-media-player/mediaplayer-2.0.31.png">PonticStar.com</a></li>
<li>
Animated image used when player is minimized and playing a song, links: <a  class="target-blank" href="http://l.yimg.com/us.yimg.com/i/us/mus/ymwp/mediaplayer-animarrow-2.0.31.gif">Yahoo.com</a>, <a href="http://www.ponticstar.com/projects/hacking-yahoo-media-player/mediaplayer-animarrow-2.0.31.gif">PonticStar.com</a>
</li>
<li>
Animated image used to locate audio link on the page, links: <a  class="target-blank" href="http://l.yimg.com/us.yimg.com/i/us/mus/ymwp/mediaplayer-findlink-2.0.31.gif">Yahoo.com</a>, <a href="http://www.ponticstar.com/projects/hacking-yahoo-media-player/mediaplayer-animarrow-2.0.31.gif">PonticStar.com</a>
</li>
</ol>
<p>Once you have downloaded the skin image, use your favorite image editing program to customize it. In order to apply the skin you would have to use the code below.</p>
<p>Instructions: Update path to your image file. Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Change default skin */
#ymp-player .ymp-color-main {
  background-color:transparent !important;
}

.ymp-skin {
  background-image:url(/path/to/your/mediaplayer-skin.png) !important;
}

/* Use original animated images */
#ymp-body #ymp-btn-max span.ymp-animarrow {
  background-image:url(http://l.yimg.com/us.yimg.com/i/us/mus/ymwp/mediaplayer-animarrow-2.0.31.gif) !important;
}
a.ymp-btn-page-target em.ymp-skin,
a:hover.ymp-btn-page-target em.ymp-skin,
a:active.ymp-btn-page-target em.ymp-skin {
  background-image:url(http://l.yimg.com/us.yimg.com/i/us/mus/ymwp/mediaplayer-findlink-2.0.31.gif)  !important;
}
</pre>
<p>If you want to use reduce loading time and avoid using two additional images, use the following code instead:</p>
<pre class="brush:css">
/* Yahoo! Media Player: Change default skin */
#ymp-player .ymp-color-main {
  background-color:transparent !important;
}

.ymp-skin {
  background-image:url(/path/to/your/mediaplayer-skin.png) !important;
}

/* Avoid using animated images (and reduce loading time) */
#ymp-body #ymp-btn-max span.ymp-animarrow {
  background-position:-119px -80px !important;
}
a.ymp-btn-page-target em.ymp-skin,
a:hover.ymp-btn-page-target em.ymp-skin,
a:active.ymp-btn-page-target em.ymp-skin {
  background-position:-624px -17px !important;
}
</pre>
<p><a href="/projects/hacking-yahoo-media-player/skin.html">View example</a></p>
<p><a name="bgcolor"></a></p>
<h3>How to adjust background color</h3>
<div id="attachment_110" class="wp-caption aligncenter" style="width: 540px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2009/12/hacking_ymp_fig01.gif" alt="Figure 1: Background color" title="Yahoo! Media Player" width="530" height="93" class="size-full wp-image-110" /><p class="wp-caption-text">Figure 1: Background color</p></div>
<p>Instructions: Update color values. Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Set background color */
#ymp-player .ymp-color-main,
#ymp-tray .ymp-color-tray {
  background-color:#2F437C !important;
}
</pre>
<p><a href="/projects/hacking-yahoo-media-player/bgcolor.html">View example</a></p>
<p><a name="color"></a></p>
<h3>How to adjust text color</h3>
<p>Instructions: Update color values. Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Set text color */
#ymp-player .ymp-color-text-main {
  color:#000000 !important;
}
</pre>
<p><a name="relevant-info-update"></a></p>
<h3>How to update block with relevant information</h3>
<p>You may want to display your own message in the relevant information block instead of the default &#8220;learn more about this player&#8221; link. To do so you will need link to your media like this:</p>
<pre class="brush:html">
<a href="music.mp3">a song <span class="relevant-info">relevant info for this song</a></a>
</pre>
<p>Instructions: Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: */
/* Modify contents of the block with relevant information */
#ymp-relevant-info {
  display:block;
  position:absolute;
  left:2px;
  top:10px;
  width:116px;
  font-size:12px;
  font-weight:bold;
  line-height:13px;
  text-align:center;
  z-index:2;
} 

#ymp-relevant-info a {
  color:#3D9AD0;
}

.relevant-info {
  display:none;
}
</pre>
<p>Instructions: Insert the code below <i>right after</i> the line that embeds the player into your page.</p>
<pre class="brush:javascript">
&lt;script type="text/javascript"&gt;
   function apiReadyHandler(){
      YAHOO.ympyui.util.Event.onDOMReady(UpdateRelevantInfo);
      YAHOO.MediaPlayer.onTrackStart.subscribe(UpdateRelevantInfo);
   }

   /*
      Written by Jonathan Snook, http://www.snook.ca/jonathan
      Add-ons by Robert Nyman, http://www.robertnyman.com

http://robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/

   */
   function getElementsByClassName(className, tag, elm){
      var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
      var tag = tag || "*";
      var elm = elm || document;
      var elements = (tag == "*" &#038;&#038; elm.all)
                        ? elm.all
                        : elm.getElementsByTagName(tag);
      var returnElements = [];
      var current;
      var length = elements.length;
      for(var i=0; i&lt;length; i++){
         current = elements[i];
         if(testClass.test(current.className)){
            returnElements.push(current);
         }
      }
      return returnElements;
   }

   function UpdateRelevantInfo() {
      // Default text
      var info = '<a href="http://www.ponticstar.com">Visit ponticstar.com for more information</a>';

      // Retrieve information about the track
      var meta = YAHOO.MediaPlayer.getMetaData();

      // If element with class "relevant-info" is available
      // inside the anchor, use its content instead
      if(meta &#038;&#038; meta.anchor){
         var el = meta.anchor;
         var a = (el.getElementsByClassName)
                    ? el.getElementsByClassName("relevant-info")
                    : getElementsByClassName("relevant-info", null, el);
         if(a.length > 0){ info = a[0].innerHTML; }
      }

      document.getElementById('ymp-relevance').innerHTML = '
<div id="ymp-relevant-info">' + info + '</div>

';
   }

   YAHOO.MediaPlayer.onAPIReady.subscribe(apiReadyHandler);
&lt;/script&gt;
</pre>
<p><a href="/projects/hacking-yahoo-media-player/relevant-info-update.html">View example</a></p>
<p><a name="relevant-info-hide"></a></p>
<h3>How to remove block with relevant information</h3>
<div id="attachment_111" class="wp-caption aligncenter" style="width: 540px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2009/12/hacking_ymp_fig02.gif" alt="Figure 2: Relevant information block is removed" title="Yahoo! Media Player" width="530" height="93" class="size-full wp-image-111" /><p class="wp-caption-text">Figure 2: Relevant information block is removed</p></div>
<p>Player displays &#8220;Learn more about this player&#8221; link along with lyrics or related videos. If you are trying to minimize size of the player, use the code below.</p>
<p>Instructions: Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: */
/* Remove block with relevant information */
#ymp-relevance { display:none !important; }
.ymp-player-max #ymp-body { width:570px !important; }
.ymp-player-max #ymp-body #ymp-body-strip { width:557px !important; }
.ymp-player-max #ymp-body #ymp-body-base  { width:560px !important; }
</pre>
<p><a href="/projects/hacking-yahoo-media-player/relevant-info-hide.html">View example</a></p>
<p><a name="buttons-hide"></a></p>
<h3>How to hide various buttons</h3>
<p>Instructions: Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Hide 'close window' button */
#ymp-btn-close { display:none !important; }

/* Yahoo! Media Player: Hide 'pop-up window' button */
#ymp-btn-pop { display:none !important; }
</pre>
<p><a href="/projects/hacking-yahoo-media-player/buttons-hide.html">View example</a></p>
<p><a name="playlist-color"></a></p>
<h3>How to change playlist colors</h3>
<div id="attachment_112" class="wp-caption aligncenter" style="width: 540px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2009/12/hacking_ymp_fig03.gif" alt="Figure 3: Playlist colors" title="Yahoo! Media Player" width="530" height="277" class="size-full wp-image-112" /><p class="wp-caption-text">Figure 3: Playlist colors</p></div>
<p>Instructions: Update color values. Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Playlist colors */
/* Default color for playlist entries */
#ymp-tray .ymp-tray-track {
  color:#FFCE0C !important;
}

/* Highlighted track */
#ymp-tray .ymp-tray-track:hover {
  color:#FFFFFF !important;
  background-color:transparent !important;
}

/* Currently playing track */
#ymp-tray .ymp-tray-track.playing,
#ymp-tray .ymp-tray-track.playing:hover {
  color:#FFFFFF !important;
  background-color:#777777 !important;
}
</pre>
<p><a name="album-art"></a></p>
<h3>How to display album art</h3>
<div id="attachment_113" class="wp-caption aligncenter" style="width: 540px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2009/12/hacking_ymp_fig04.gif" alt="Figure 4: Album art" title="Yahoo! Media Player" width="530" height="93" class="size-full wp-image-113" /><p class="wp-caption-text">Figure 4: Album art</p></div>
<p>You can set the image which is displayed in the player during a song. To do this, put an <code>img</code> element within the playable link.</p>
<p>For example:</p>
<pre class="brush:html">
&lt;a href="example.mp3"&gt;&lt;img src="example.png" alt="" /&gt;my song&lt;/a&gt;
</pre>
<p>The dimensions of the image should be square, not rectangular. If you don&#8217;t want the image to show up directly in the main web page, add <code>style="display:none"</code> to your <code>img</code> tag:</p>
<pre class="brush:html">
&lt;a href="example.mp3"&gt;&lt;img src="example.png" alt="" style="display:none" /&gt;my song&lt;/a&gt;
</pre>
<p>Source: <a class="target-blank" href="http://yahoomediaplayer.wikia.com/wiki/How_to_link#Album_Art">http://yahoomediaplayer.wikia.com/wiki/How_to_link#Album_Art</a></p>
<p><a href="/projects/hacking-yahoo-media-player/album-art.html">View example</a></p>
<p><a name="album-art-default"></a></p>
<h3>How to change default album art image</h3>
<p>Insert the code below just <i>before the line</i> that embeds the player into your page.</p>
<pre class="brush:javascript">
<!-- Yahoo! Media Player configuration -->
&lt;script type="text/javascript"&gt;
var YMPParams =
{
   defaultalbumart:'http://somedomain.com/path/someimage.gif'
};
&lt;/script&gt;
</pre>
<p>Source: <a class="target-blank" href="http://mediaplayer.yahoo.com/api/#param_defaultalbumart">http://mediaplayer.yahoo.com/api/#param_defaultalbumart</a></p>
<p><a name="album-art-hide"></a></p>
<h3>How to hide album art</h3>
<div id="attachment_114" class="wp-caption aligncenter" style="width: 540px"><img src="http://www.ponticstar.com/blog/wp-content/uploads/2009/12/hacking_ymp_fig05.gif" alt="Figure 5: Hidden album art" title="Yahoo! Media Player" width="530" height="93" class="size-full wp-image-114" /><p class="wp-caption-text">Figure 5: Hidden album art</p></div>
<pre class="brush:css">
/* Yahoo! Media Player: Hide album art */
#ymp-meta-image { display:none !important; }
#ymp-body #ymp-meta-top,
#ymp-body #ymp-meta-bottom {
  left:8px !important;
  width:330px !important;
}
</pre>
<p><a href="/projects/hacking-yahoo-media-player/album-art-hide.html">View example</a></p>
<p><a name="meta-album-title-change"></a></p>
<h3>How to change meta (album title/web site URL) information</h3>
<p>Instructions: Insert the code below <i>right after</i> the line that embeds the player into your page.</p>
<pre class="brush:javascript">
&lt;script type="text/javascript"&gt;
   function apiReadyHandler(){
      YAHOO.ympyui.util.Event.onDOMReady(UpdateAlbumTitle);
      YAHOO.MediaPlayer.onTrackStart.subscribe(UpdateAlbumTitle);
   }

   /*
      Written by Jonathan Snook, http://www.snook.ca/jonathan
      Add-ons by Robert Nyman, http://www.robertnyman.com

http://robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/

   */
   function getElementsByClassName(className, tag, elm){
      var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
      var tag = tag || "*";
      var elm = elm || document;
      var elements = (tag == "*" &#038;&#038; elm.all)
                        ? elm.all
                        : elm.getElementsByTagName(tag);
      var returnElements = [];
      var current;
      var length = elements.length;
      for(var i=0; i&lt;length; i++){
         current = elements[i];
         if(testClass.test(current.className)){
            returnElements.push(current);
         }
      }
      return returnElements;
   }

   function UpdateAlbumTitle() {
      var meta_bottom = document.getElementById('ymp-meta-bottom');
      var el = getElementsByClassName('ymp-meta-box', 'div', meta_bottom);
      if(el.length &gt; 0){
         el[0].innerHTML = 'Visit <a href="http://www.lakeoftears.net" target="_blank" class="ymp-color-text-main">www.lakeoftears.net</a> for more info';
      }
   }

   YAHOO.MediaPlayer.onAPIReady.subscribe(apiReadyHandler);
&lt;/script&gt;
</pre>
<p><a href="/projects/hacking-yahoo-media-player/meta-album-title-change.html">View example</a></p>
<p><a name="meta-album-title-hide"></a></p>
<h3>How to hide meta (album title/web site URL) information</h3>
<p>Instructions: Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Hide album title / web site URL */
#ymp-meta-album-title { display:none !important; }
</pre>
<p><a href="/projects/hacking-yahoo-media-player/meta-album-title-hide.html">View example</a></p>
<p><a name="hide-player"></a></p>
<h3>How to hide the player</h3>
<p>Sometimes you may want to display only small play button next to MP3 links. To hide the player use the code below.</p>
<p>Instructions: Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Hide player */
#ymp-player,
#ymp-tray,
#ymp-error-bubble,
#ymp-secret-bubble {
  display:none !important;
}
</pre>
<p>There is another way to do it using parameter <code>displaystate</code> which is described at <a class="target-blank" href="http://mediaplayer.yahoo.com/api/#param_displaystate">http://mediaplayer.yahoo.com/api/#param_displaystate</a></p>
<p><a href="/projects/hacking-yahoo-media-player/hide-player.html">View example</a></p>
<p><a name="hide-links"></a></p>
<h3>How to hide MP3 links</h3>
<p>Instructions: Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Hide MP3 links */
.ymp-btn-page-play,
.ymp-btn-page-pause {
  display:none;
}
</pre>
<p><a name="hide-play-pause-buttons"></a></p>
<h3>How to hide link play/pause buttons</h3>
<p>Instructions: Append the following lines to CSS file or include them into HTML page somewhere in between <code>&lt;head&gt;</code> and <code>&lt;/head&gt;</code> tags enclosing the block with tags <code>&lt;style type="text/css"&gt;</code> and <code>&lt;/style&gt;</code>.</p>
<pre class="brush:css">
/* Yahoo! Media Player: Hide play/pause button */
a.ymp-btn-page-play,
a.ymp-btn-page-pause {
  margin-left:-20px !important;
}

a.ymp-btn-page-play em.ymp-skin,
a.ymp-btn-page-pause em.ymp-skin {
  display: none !important;
}
</pre>
<p><a href="/projects/hacking-yahoo-media-player/play-pause-buttons-hide.html">View example</a></p>
<p><a name="pop"></a></p>
<h3>How to start player in a new window</h3>
<p>The code below tries to launch player in a new window automatically which allows user to navigate your site without interrupting the player. However my code for displaying pop-under window doesn&#8217;t work as expected for all browsers which results in pop-up window instead.</p>
<p>Instructions: Insert the code below right <i>after the line</i> that embeds the player into your page.</p>
<pre class="brush:javascript">
&lt;script type="text/javascript"&gt;
    var ymp_pop_num_tries = 0;
    var ymp_pop_max_num_tries = 20;
    function ympPopPlayer(){
       var ymp = YAHOO.mediaplayer;
       if(ymp_pop_num_tries > ymp_pop_max_num_tries){ return; }
       if(ymp.Controller &#038;&#038; ymp.Controller.view){
          // Create a pop-under window
          // works in IE, doesn't work in Firefox 3.5.x
          var ymp_pop = window.open("", "ymediaplayer");
          if(ymp_pop){ ymp_pop.blur(); }
          window.focus();

          ymp.Controller.view.popPlayer({});
       } else {
         ymp_pop_num_tries++;
         setTimeout(ympPopPlayer, 1000);
       }
    }

    function apiReadyHandler(){
       ympPopPlayer();
    }

    YAHOO.MediaPlayer.onAPIReady.subscribe(apiReadyHandler);
&lt;/script&gt;
</pre>
<p><a href="/projects/hacking-yahoo-media-player/pop.html">View example</a></p>
<p><a name="title-search-disable"></a></p>
<h3>How to disable Yahoo! search links</h3>
<p>Instructions: Insert the code below right <i>after the line</i> that embeds the player into your page.</p>
<pre class="brush:javascript">
&lt;script type="text/javascript"&gt;
   // Disable Yahoo! Media Player search links
   function apiReadyHandler(){
      YAHOO.MediaPlayer.onMediaUpdate.subscribe(DisableYahooLinks);
      YAHOO.MediaPlayer.onTrackStart.subscribe(DisableYahooLinks);
      setTimeout(DisableYahooLinks, 2000);
   }

   function DisableYahooLinks(){
      DisableLink(document.getElementById('ymp-meta-track-title'));
      DisableLink(document.getElementById('ymp-meta-artist-title'));
      DisableLink(document.getElementById('ymp-meta-image'));
      DisableLink(document.getElementById('ymp-meta-album-title'));
   }

   function DisableLink(el){
      if(el){
         el.href = 'javascript:void(0)';
         el.onclick = function(){ return false; };
      }
   }

   YAHOO.MediaPlayer.onAPIReady.subscribe(apiReadyHandler);
&lt;/script&gt;
</pre>
<p><a href="/projects/hacking-yahoo-media-player/title-search-disable.html">View example</a></p>
<p><a name="settings"></a></p>
<h3>How to change default settings</h3>
<p>See <a class="target-blank" href="http://mediaplayer.yahoo.com/api">http://mediaplayer.yahoo.com/api</a> for more information.</p>
<p><a name="links"></a></p>
<h3>Links</h3>
<ul>
<li><a class="target-blank" href="http://mediaplayer.yahoo.com/">Yahoo! Media Player official page</a></li>
<li><a class="target-blank" href="http://tech.groups.yahoo.com/group/yhoomediaplayer/">Discussion group at Yahoo! Groups</a></li>
<li><a class="target-blank" href="http://mediaplayer.yahoo.com/api/">Yahoo! Media Player API</a></li>
<li><a class="target-blank" href="http://yahoomediaplayer.wikia.com/">Yahoo! Media Player public Wiki</a></li>
<li><a class="target-blank" href="http://ymusicblog.com/blog/category/player/">Yahoo! Music Blog</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2009/12/12/hacking-yahoo-media-player/feed/</wfw:commentRss>
		<slash:comments>135</slash:comments>
		</item>
		<item>
		<title>Force SSL using .htaccess and mod_rewrite</title>
		<link>http://www.ponticstar.com/blog/2009/11/21/force-ssl-using-htaccess/</link>
		<comments>http://www.ponticstar.com/blog/2009/11/21/force-ssl-using-htaccess/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 23:42:46 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=107</guid>
		<description><![CDATA[Sometimes you need to force your visitors to use secure connection if they forgot to type https:// in the browser. It can be accomplished by adding the following lines to .htaccess file located in the root folder of your web site. It will force secure connection for all pages on your web site. .htaccess RewriteEngine [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you need to force your visitors to use secure connection if they forgot to type <code>https://</code> in the browser. It can be accomplished by adding the following lines to <code>.htaccess</code> file located in the root folder of your web site. It will force secure connection for all pages on your web site.</p>
<p><span id="more-107"></span>
<div class="filename">.htaccess</div>
<pre>RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}</pre>
<p>If you want to force secure connection only in certain directory (for example <code>/secure</code>), use this code instead.</p>
<div class="filename">.htaccess</div>
<pre>RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^secure
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2009/11/21/force-ssl-using-htaccess/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PostgreSQL crashes when using pgcrypto functions</title>
		<link>http://www.ponticstar.com/blog/2009/10/22/postgresql-crashes-when-using-pgcrypto/</link>
		<comments>http://www.ponticstar.com/blog/2009/10/22/postgresql-crashes-when-using-pgcrypto/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 02:44:18 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[System Administration]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=103</guid>
		<description><![CDATA[After upgrading PostgreSQL from 7.4 to 8.2 it started crashing sporadically with the following entries in the log file:

<pre>LOG:  server process (pid 21460) was terminated by signal 11
LOG:  terminating any other active server processes
LOG:  all server processes terminated; reinitializing shared memory and semaphores</pre>]]></description>
			<content:encoded><![CDATA[<h3>PROBLEM:</h3>
<p>After upgrading PostgreSQL from 7.4 to 8.2 it started crashing sporadically with the following entries in the log file:</p>
<pre>LOG:  server process (pid 21460) was terminated by signal 11
LOG:  terminating any other active server processes
LOG:  all server processes terminated; reinitializing shared memory and semaphores</pre>
<h3>CAUSE:</h3>
<p>There were changes between PostgreSQL releases in functions definition used by pgcrypto module.</p>
<p>According to <a class="target-blank" href="http://marc.info/?l=postgresql-general&#038;m=118794006505296&#038;w=2">[1]</a> and <a class="target-blank" href="http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pgcrypto/pgcrypto.sql.in">[3]</a> in PostgreSQL 8.0 the pgcrypto functions were non-strict and checked for <code>NULL</code>s, in PostgreSQL 8.1 they were made <code>STRICT</code>, in PostgreSQL 8.2 the <code>NULL</code> checks were removed from code.</p>
<h3>SOLUTION:</h3>
<p>In order to correct the problem these functions are needed to be recreated. Required SQL commands are defined in pgcrypto.sql which is usually located in<br />
<code>/usr/local/pgsql/share/contrib</code> when pgcrypto is installed.</p>
<pre>psql -d DBNAME -f /usr/local/pgsql/share/contrib/pgcrypto.sql</pre>
<p>Also it is a good idea to add functions to <code>template1</code> database if you use pgcrypto often. <code>template1</code> is the default source database name when using <code>CREATE DATABASE</code> command.</p>
<h3>REFERENCES:</h3>
<ol>
<li><a class="target-blank" href="http://marc.info/?l=postgresql-general&#038;m=118794006505296&#038;w=2">http://marc.info/?l=postgresql-general&#038;m=118794006505296&#038;w=2</a></li>
<li><a class="target-blank" href="http://www.mail-archive.com/pgsql-hackers@postgresql.org/msg109917.html">http://www.mail-archive.com/pgsql-hackers@postgresql.org/msg109917.html</a></li>
<li><a class="target-blank" href="http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pgcrypto/pgcrypto.sql.in">http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/pgcrypto/pgcrypto.sql.in</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2009/10/22/postgresql-crashes-when-using-pgcrypto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to install Microsoft Visual Studio 6.0 on Windows 2000/XP</title>
		<link>http://www.ponticstar.com/blog/2009/07/13/how-to-install-msvs-on-windows/</link>
		<comments>http://www.ponticstar.com/blog/2009/07/13/how-to-install-msvs-on-windows/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 15:20:40 +0000</pubDate>
		<dc:creator>Michael Ryvkin</dc:creator>
				<category><![CDATA[Windows Programming]]></category>
		<category><![CDATA[Microsoft Visual Studio]]></category>

		<guid isPermaLink="false">http://www.ponticstar.com/blog/?p=93</guid>
		<description><![CDATA[If you ever tried to install Microsoft Visual Studio 6.0 or a standalone Visual Studio product on Windows 2000 or XP, you already know that setup fails. But luckily there is a workaround. At the command prompt, type the following command: E:\SETUP\acmsetup.exe /T E:\SETUP\PRODUCT.STF /s E:\ /n "NAME" /o "ORGANIZATION" /k 1234567890 where: E: &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever tried to install Microsoft Visual Studio 6.0 or a standalone Visual Studio product on Windows 2000 or XP, you already know that setup fails. But luckily there is a workaround. At the command prompt, type the following command:</p>
<pre class="brush:shell;light:true">E:\SETUP\acmsetup.exe /T E:\SETUP\PRODUCT.STF /s E:\ /n "NAME" /o "ORGANIZATION" /k 1234567890</pre>
<p><span id="more-93"></span>where:</p>
<ul>
<li><code>E:</code> &#8211; your CD-ROM or DVD-ROM drive letter. Also you can replace <code>E:\</code> with path to the folder where you have your installation files.</li>
<li><code>PRODUCT</code> &#8211; File name of the product you are installing with <code>.stf</code> extension. The specific <code>.stf</code> file that is required for the manual command line will vary depending on the specific product you are installing. Search the <code>\SETUP</code> folder on the CD-ROM of the product you are installing for the <code>.stf</code> to use. For example, for Visual Basic 6.0 Professional, use <code>vb98pro.stf</code>; for Visual C++ 6.0 Professional, use <code>vc98pro.stf</code>.</li>
<li><code>NAME</code> &#8211; your name</li>
<li><code>ORGANIZATION</code> &#8211; your organization</li>
<li><code>1234567890</code> &#8211; your CD key</li>
</ul>
<p>If you get the message &#8220;You must first run the Installation Wizard before running this setup&#8221;, run the following command and repeat.</p>
<pre class="brush:shell;light:true">regedit /s E:\key.dat</pre>
<p>In the same way you should install service packs.</p>
<p>Service Pack 5:</p>
<pre class="brush:shell;light:true">C:\SP5\acmsetup.exe /T C:\SP5\sp598ent.stf /s C:\SP5 /n "NAME" /o "ORGANIZATION"</pre>
<p>Service Pack 6:</p>
<pre class="brush:shell;light:true">C:\SP6\acmsetup.exe /T C:\SP6\sp698ent.stf /s C:\SP6 /n "NAME" /o "ORGANIZATION"</pre>
<p>where:</p>
<ul>
<li><code>C:\SP5</code> and <code>C:\SP6</code> &#8211; folders where you have extracted service pack files.</li>
</ul>
<p>Microsoft published an article regarding this problem at <a class="target-blank" href="http://support.microsoft.com/kb/250343">http://support.microsoft.com/kb/250343</a>. However they suggest to use <code>/B1</code> (or <code>/B 1</code>) command line argument, which in my case resulted in product options dialog being skipped. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ponticstar.com/blog/2009/07/13/how-to-install-msvs-on-windows/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

