<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Svetoslav Marinov's Blog</title>
	
	<link>http://slavi.biz/blog</link>
	<description>A Blog about Web Programming, Books, Business, Marketing, and Life</description>
	<pubDate>Wed, 07 Jul 2010 23:55:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/slavi" /><feedburner:info uri="slavi" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>svn log parser - Parses SVN log files and groups log messages per date</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/LzQUYGcIN5Y/svn-log-parser-parses-svn-log-files-and-groups-log-messages-per-date-2010-07-07.html</link>
		<comments>http://slavi.biz/blog/svn-log-parser-parses-svn-log-files-and-groups-log-messages-per-date-2010-07-07.html#comments</comments>
		<pubDate>Wed, 07 Jul 2010 23:40:57 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Perl]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[perl]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[svn log]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=457</guid>
		<description><![CDATA[I've been looking for a nice svn log parser but I couldn't find one for the purpose I needed it.
You know that story, right ?  
I needed an svn log parser that would give me log messages accumulated per day.
Here is what I came up with. Feel free to send me improvements.
Download svn-log-parser
Related

 http://www.vectorns.com/blog/3-svn-log-parser-from-xml-to-csv-using-perl

]]></description>
			<content:encoded><![CDATA[<p>I've been looking for a nice svn log parser but I couldn't find one for the purpose I needed it.<br />
You know that story, right ? <img src='http://slavi.biz/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I needed an svn log parser that would give me log messages accumulated per day.<br />
Here is what I came up with. Feel free to send me improvements.</p>
<p><a href="http://slavi.biz/blog/wp-content/uploads/2010/07/svn-log-parser.pl">Download svn-log-parser</a></p>
<p><strong>Related</strong></p>
<ul>
<li><a href="http://www.vectorns.com/blog/3-svn-log-parser-from-xml-to-csv-using-perl" target="_blank"> http://www.vectorns.com/blog/3-svn-log-parser-from-xml-to-csv-using-perl</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/svn-log-parser-parses-svn-log-files-and-groups-log-messages-per-date-2010-07-07.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/svn-log-parser-parses-svn-log-files-and-groups-log-messages-per-date-2010-07-07.html</feedburner:origLink></item>
		<item>
		<title>How to create a text-based carousel using jQuery and cycle plugin</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/GHG-GcjyWNc/how-to-create-a-text-based-carousel-using-jquery-and-cycle-plugin-2010-05-08.html</link>
		<comments>http://slavi.biz/blog/how-to-create-a-text-based-carousel-using-jquery-and-cycle-plugin-2010-05-08.html#comments</comments>
		<pubDate>Sat, 08 May 2010 18:19:41 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=443</guid>
		<description><![CDATA[I was working on my classified ads site and realized that I will need a text-based carousel with prev/next buttons. I've seen in it Gmail and it's interesting because they add a quote among those adds and I can't wait to reach the quote.
Style 1

Style 2

Style 3

Downloads
text-carousel.zip

]]></description>
			<content:encoded><![CDATA[<p>I was working on my <a href="http://miniads.ca" target="_blank">classified ads site</a> and realized that I will need a text-based carousel with prev/next buttons. I've seen in it Gmail and it's interesting because they add a quote among those adds and I can't wait to reach the quote.</p>
<p style="text-align: left;">Style 1</p>
<p style="text-align: left;"><a href="http://slavi.biz/blog/wp-content/uploads/2010/05/carousel11.jpg"><img class="aligncenter size-full wp-image-449" title="carousel11" src="http://slavi.biz/blog/wp-content/uploads/2010/05/carousel11.jpg" alt="carousel11" width="858" height="42" /></a></p>
<p style="text-align: left;">Style 2</p>
<p style="text-align: left;"><a href="http://slavi.biz/blog/wp-content/uploads/2010/05/carousel2.jpg"><img class="aligncenter size-full wp-image-448" title="carousel2" src="http://slavi.biz/blog/wp-content/uploads/2010/05/carousel2.jpg" alt="carousel2" width="843" height="38" /></a></p>
<p style="text-align: left;">Style 3</p>
<p style="text-align: left;"><a href="http://slavi.biz/blog/wp-content/uploads/2010/05/carousel3.jpg"><img class="aligncenter size-full wp-image-450" title="carousel3" src="http://slavi.biz/blog/wp-content/uploads/2010/05/carousel3.jpg" alt="carousel3" width="838" height="36" /></a></p>
<p style="text-align: left;"><strong>Downloads</strong></p>
<p style="text-align: left;"><strong><a href="http://slavi.biz/blog/wp-content/uploads/2010/05/text-carousel.zip" target="_blank">text-carousel.zip</a></strong></p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/how-to-create-a-text-based-carousel-using-jquery-and-cycle-plugin-2010-05-08.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/how-to-create-a-text-based-carousel-using-jquery-and-cycle-plugin-2010-05-08.html</feedburner:origLink></item>
		<item>
		<title>Slavi’s Free Tools</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/SLppRvsBMfE/slavis-free-tools-2010-05-07.html</link>
		<comments>http://slavi.biz/blog/slavis-free-tools-2010-05-07.html#comments</comments>
		<pubDate>Fri, 07 May 2010 22:12:16 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=434</guid>
		<description><![CDATA[Hi All,
I just released a Slavi's Free Tools section at http://slavi.biz/tools/
I will  be creating some interesting and hopefully useful tools there.
Slavi
]]></description>
			<content:encoded><![CDATA[<p>Hi All,</p>
<p>I just released a Slavi's Free Tools section at <a href="../../tools/">http://slavi.biz/tools/</a></p>
<p>I will  be creating some interesting and hopefully useful tools there.</p>
<p>Slavi</p>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/slavis-free-tools-2010-05-07.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/slavis-free-tools-2010-05-07.html</feedburner:origLink></item>
		<item>
		<title>A simple permanent (301) redirect using RedirectMatch in .htaccess</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/2gjWWPOV9Bk/a-simple-permanent-301-redirect-using-redirectmatch-in-htaccess-2009-10-07.html</link>
		<comments>http://slavi.biz/blog/a-simple-permanent-301-redirect-using-redirectmatch-in-htaccess-2009-10-07.html#comments</comments>
		<pubDate>Wed, 07 Oct 2009 16:37:47 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Apache]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[System Administration]]></category>

		<category><![CDATA[Web Servers]]></category>

		<category><![CDATA[301]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[htaccess]]></category>

		<category><![CDATA[redirect]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=425</guid>
		<description><![CDATA[
RedirectMatch permanent /old-location/.* http://sub.domain.com

Related

http://johnbokma.com/mexit/2006/08/18/
http://httpd.apache.org/docs/2.0/mod/mod_alias.html

]]></description>
			<content:encoded><![CDATA[<pre class="brush: bash">
RedirectMatch permanent /old-location/.* http://sub.domain.com
</pre>
<p><strong>Related</strong></p>
<ul>
<li><a href="http://johnbokma.com/mexit/2006/08/18/" target="_blank">http://johnbokma.com/mexit/2006/08/18/</a></li>
<li><a href="http://httpd.apache.org/docs/2.0/mod/mod_alias.html" target="_blank">http://httpd.apache.org/docs/2.0/mod/mod_alias.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/a-simple-permanent-301-redirect-using-redirectmatch-in-htaccess-2009-10-07.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/a-simple-permanent-301-redirect-using-redirectmatch-in-htaccess-2009-10-07.html</feedburner:origLink></item>
		<item>
		<title>Using Uploadify with Zend Framework</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/0S-BhsxVR9Q/using-uploadify-with-zend-framework-2009-08-30.html</link>
		<comments>http://slavi.biz/blog/using-uploadify-with-zend-framework-2009-08-30.html#comments</comments>
		<pubDate>Sun, 30 Aug 2009 21:32:05 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Flash]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[action script]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[as]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[flv]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[swf]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=417</guid>
		<description><![CDATA[update (2010-05-07): changed the regex to match 25-32 chars. Thanks Krzysztof from the comments.
A quote from http://www.uploadify.com site.
Uploadify is a jQuery plugin that allows the easy integration of a multiple (or single) file uploads on your website.  It requires Flash and any backend development language.  An array of options allow for full customization for advanced [...]]]></description>
			<content:encoded><![CDATA[<p>update (2010-05-07): changed the regex to match 25-32 chars. Thanks Krzysztof from the comments.</p>
<p>A quote from http://www.uploadify.com site.</p>
<blockquote><p>Uploadify is a jQuery plugin that allows the easy integration of a multiple (or single) file uploads on your website.  It requires Flash and any backend development language.  An array of options allow for full customization for advanced users, but basic implementation is so easy that even coding novices can do it.</p></blockquote>
<p>This article assumes that you've already read the <a href="http://www.uploadify.com/documentation/" target="_blank">Uploadify docs</a> and tried to integrate it.</p>
<p>Everything is pretty simple however you need to overcome one obstacle with flash and cookies.<br />
More on the flash and cookies topic go to <a href="http://swfupload.org/forum/generaldiscussion/383" target="_blank">http://swfupload.org/forum/generaldiscussion/383</a></p>
<p><strong>My Solution:</strong></p>
<p>This article can be <a rel="attachment wp-att-420" href="http://slavi.biz/blog/using-uploadify-with-zend-framework-2009-08-30.html/using-uploadify-with-zend-framework">downloaded (TXT format)</a></p>
<p>Here is how to use the uploadify<br />
I use a variable called "<strong>__tkn</strong>" in the url to pass the session variable.<br />
Some of you may try to use 'scriptData' which didn't work for me.</p>
<pre class="brush: javascript">
&lt;script type=&quot;text/javascript&quot;&gt;
jQuery(document).ready(function() {
if (jQuery(&quot;#upl_feed_file_progress&quot;)) {
jQuery(&quot;#upl_feed_file_progress&quot;).uploadify({
&#039;uploader&#039;: &#039;/site/share/jquery/plugins/jquery.uploadify-v2.1.0/uploadify.swf&#039;,
//                &#039;cancelImg&#039;: &#039;/site/share/jquery/plugins/jquery.uploadify-v2.1.0/images/cancel.png&#039;,
&#039;script&#039;: &#039;/mymodule/mycontroller/myaction/__tkn/&lt;?php echo Zend_Session::getId(); ?&gt;&#039;,
&#039;multi&#039;: false,
&#039;simUploadLimit&#039;: 1,
&#039;fileExt&#039;: &#039;*.csv;*.txt&#039;,
&#039;fileDesc&#039;: &#039;Feed Files (*.csv;*.txt)&#039;,
/                &#039;fileDataName&#039; : &#039;upl_feed_file&#039;, // in $_FILES
//                &#039;scriptData&#039;: {&#039;PHPSESSID&#039; : &#039;&lt;?php echo Zend_Session::getId(); ?&gt;&#039;}, // This didn&#039;t work for me.
&#039;height&#039;: 24,
&#039;auto&#039;: true,
&#039;onCancel&#039; : function (event, queueID, fileObj, data) {
alert(&#039;Error: You have cancelled the file upload.&#039;);
},
&#039;onError&#039; : function (event, queueID, fileObj, errorObj) {
alert(&#039;Error during file upload. Maybe the file is too big ? Size: &#039; +  fileObj.size + &#039; Error:&#039; +  errorObj.info());
},
&#039;onComplete&#039; : function (event, queueID, fileObj, response, data) {
if (response == &#039;&#039; || response == 0 || response == &quot;0&quot;) {
alert(&#039;Error during with the upload&#039;);
} else {
perf_error(&#039;Success!&#039;);
}
}
});
}
});

&lt;/script&gt;
</pre>
<p>This one goes in the template ..</p>
<pre class="brush: html">
....
&lt;div id=&quot;upl_feed_file_progress&quot;&gt;You have a problem with your javascript&lt;/div&gt;
....
</pre>
<p>Insert this in the boostrap (usually index.php) file<br />
It should be inserted before "Zend_Session::start();"</p>
<pre class="brush: php">
// ------------------------------------------ START -------------------------------------------

$sessName = &quot;PHPSESSID&quot;;
$sessOptions = array(&#039;name&#039; =&gt; $sessName);

// Flash has problems with cookies so we pass the PHPSESSID variable via get
// it&#039;ll be injected if it doesn&#039;t exist in _SERVER[&quot;HTTP_COOKIE&quot;] e.g. &#039;; PHPSESSID=hdi5u83hfnu7ltlvp5q3bb53k4&#039;
if ((stripos($_SERVER[&#039;REQUEST_URI&#039;], &#039;__tkn&#039;) !== false)
//    &amp;amp;&amp;amp; preg_match(&#039;#^[a-z\d]{25,32}$#si&#039;, $_GET[$sessName])
&amp;amp;&amp;amp; preg_match(&#039;#__tkn/([a-z\d]{25,32})#si&#039;, $_SERVER[&#039;REQUEST_URI&#039;], $matches)
&amp;amp;&amp;amp; (stripos($_SERVER[&quot;HTTP_COOKIE&quot;], $matches[1]) === false)) {
$sid = $matches[1];

$prefix = &#039;&#039;;
if (!empty($_SERVER[&quot;HTTP_COOKIE&quot;])) {
$prefix = &#039;; &#039;;
}

$_SERVER[&quot;HTTP_COOKIE&quot;] .= $prefix . $sessName . &#039;=&#039; . $sid;
$_COOKIE[$sessName] = $sid;

Zend_Session::setId($sid);
}

Zend_Session::setOptions($sessOptions);
// ------------------------------------------ END -------------------------------------------
</pre>
<p>Your 'myaction' (/mymodule/mycontroller/myaction) should return 0 or 1.</p>
<p>The following code should be useful.</p>
<pre class="brush: php">
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(&#039;viewRenderer&#039;);
$viewRenderer-&gt;setNoRender();

// Skipping the templates
Zend_Layout::getMvcInstance()-&gt;disableLayout();
</pre>
<p>Please share your thoughts.<br />
Are there any security holes in this approach ?</p>
<p><strong><br />
Related Resources</strong></p>
<ul>
<li><a href="http://uploadify.com" target="_blank">http://uploadify.com</a></li>
<li><a href="http://uploadify.com/forum/viewtopic.php?f=5&amp;t=43&amp;p=3754#p3754" target="_blank">http://uploadify.com/forum/viewtopic.php?f=5&amp;t=43&amp;p=3754#p3754</a></li>
<li><a href="http://www.uploadify.com/forum/viewtopic.php?f=5&amp;t=43&amp;p=3754&amp;hilit=zend+framework#p3754" target="_blank">http://www.uploadify.com/forum/viewtopic.php?f=5&amp;t=43&amp;p=3754&amp;hilit=zend+framework#p3754</a></li>
<li><a href="https://bugs.adobe.com/jira/browse/FP-1044" target="_blank">https://bugs.adobe.com/jira/browse/FP-1044</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/using-uploadify-with-zend-framework-2009-08-30.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/using-uploadify-with-zend-framework-2009-08-30.html</feedburner:origLink></item>
		<item>
		<title>Quick ‘n’ Dirty Way to Debug without showing debug info to your visits.</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/Zbpj0PaUStE/quick-n-dirty-way-to-debug-without-showing-debug-info-to-your-visits-2009-08-27.html</link>
		<comments>http://slavi.biz/blog/quick-n-dirty-way-to-debug-without-showing-debug-info-to-your-visits-2009-08-27.html#comments</comments>
		<pubDate>Thu, 27 Aug 2009 15:04:18 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=413</guid>
		<description><![CDATA[Sometimes we are required to do some troubleshooting on a production site.
In order to do that *safely* we'll show debug information only for us.
This could be put into a safe_debug function for later use by the way.
On development/staging servers I recommend installing debuggers such as Zend Debugger, xdebug etc and enabling errors (E_ALL).

if ($_SERVER[&#039;REMOTE_ADDR&#039;] == [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes we are required to do some troubleshooting on a production site.<br />
In order to do that *safely* we'll show debug information only for us.<br />
This could be put into a safe_debug function for later use by the way.<br />
On development/staging servers I recommend installing debuggers such as Zend Debugger, xdebug etc and enabling errors (E_ALL).</p>
<pre class="brush: php">
if ($_SERVER[&#039;REMOTE_ADDR&#039;] == &#039;1.2.3.4&#039; || preg_match(&#039;#^192\.#&#039;, $_SERVER[&#039;REMOTE_ADDR&#039;])) {
echo &quot;Dev dump&quot;;
echo &quot;&lt;pre&gt;&quot;;
var_dump($params);
echo &quot;&lt;/pre&gt;&quot;;
echo __FILE__ . &#039;:&#039; . __LINE__;
}
</pre>
<p>Of course one should be extra careful for opening and closing php tags otherwise this will product fatal errors.</p>
<p>Happy debugging!</p>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/quick-n-dirty-way-to-debug-without-showing-debug-info-to-your-visits-2009-08-27.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/quick-n-dirty-way-to-debug-without-showing-debug-info-to-your-visits-2009-08-27.html</feedburner:origLink></item>
		<item>
		<title>How to (always) get your server’s IP address</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/OCln2XRg5bY/how-to-always-get-your-servers-ip-address-2009-08-25.html</link>
		<comments>http://slavi.biz/blog/how-to-always-get-your-servers-ip-address-2009-08-25.html#comments</comments>
		<pubDate>Tue, 25 Aug 2009 13:17:57 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Linux/Unix]]></category>

		<category><![CDATA[Operating Systems]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[address]]></category>

		<category><![CDATA[host]]></category>

		<category><![CDATA[hostname]]></category>

		<category><![CDATA[ip]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=408</guid>
		<description><![CDATA[Here is how to (always) get your server's a IP address. Works on Unix/Linux.

&#60;?php
if (empty($_SERVER[&#039;SERVER_ADDR&#039;])) {
$server_host = `hostname -f`;
$server_ip = `host $server_host`;

if (preg_match(&#039;#(\d+\.\d+\.\d+\.\d+)#&#039;, $server_ip, $matches)) {
$server_ip = $matches[1];
} else {
$server_ip = &#039;127.0.0.1&#039;;
}
} else {
$server_ip = $_SERVER[&#039;SERVER_ADDR&#039;];
}

echo $server_ip;
?&#62;

]]></description>
			<content:encoded><![CDATA[<p>Here is how to (always) get your server's a IP address. Works on Unix/Linux.</p>
<pre class="brush: php">
&lt;?php
if (empty($_SERVER[&#039;SERVER_ADDR&#039;])) {
$server_host = `hostname -f`;
$server_ip = `host $server_host`;

if (preg_match(&#039;#(\d+\.\d+\.\d+\.\d+)#&#039;, $server_ip, $matches)) {
$server_ip = $matches[1];
} else {
$server_ip = &#039;127.0.0.1&#039;;
}
} else {
$server_ip = $_SERVER[&#039;SERVER_ADDR&#039;];
}

echo $server_ip;
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/how-to-always-get-your-servers-ip-address-2009-08-25.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/how-to-always-get-your-servers-ip-address-2009-08-25.html</feedburner:origLink></item>
		<item>
		<title>How to delete .SVN files/directories</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/TGy5UqqnC8U/how-to-delete-svn-filesdirectories-2009-08-13.html</link>
		<comments>http://slavi.biz/blog/how-to-delete-svn-filesdirectories-2009-08-13.html#comments</comments>
		<pubDate>Thu, 13 Aug 2009 13:45:57 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[cvs]]></category>

		<category><![CDATA[rcs]]></category>

		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=406</guid>
		<description><![CDATA[This is so common situation when somebody decides to copy a directory that contains SVN files which also has locally modified files.
Therefore a clean export won't do the job.
Here is what I do to clean up the new folder from the SVN files.
This command will display all the .SVN folders starting from the current folder.
Be [...]]]></description>
			<content:encoded><![CDATA[<p>This is so common situation when somebody decides to copy a directory that contains SVN files which also has locally modified files.<br />
Therefore a clean export won't do the job.<br />
Here is what I do to clean up the new folder from the SVN files.</p>
<p>This command will display all the .SVN folders starting from the current folder.</p>
<p>Be yourself i.e. not root <img src='http://slavi.biz/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> just in case.</p>
<pre class="brush: bash">
find . -type d -name &#039;*.svn&#039; -print
</pre>
<p>Example Output:</p>
<p>./js/.svn<br />
./templates/.svn<br />
./.svn<br />
./css/.svn<br />
./images/.svn</p>
<p>What I do is check the folders visually and then use my editor to search &amp; replace:<br />
"./" and replace it with "rm -rf ./"</p>
<p>Result:</p>
<p>rm -rf ./js/.svn<br />
rm -rf ./templates/.svn<br />
rm -rf ./.svn<br />
rm -rf ./css/.svn<br />
rm -rf ./images/.svn</p>
<p>Then I paste this in the console window.</p>
<p>rm is a dangerous command so be careful!<br />
Your precious work could be gone in a fraction of a second!</p>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/how-to-delete-svn-filesdirectories-2009-08-13.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/how-to-delete-svn-filesdirectories-2009-08-13.html</feedburner:origLink></item>
		<item>
		<title>How to find which flash player version you have ?</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/Ht-RD2FUt4E/how-to-find-which-flash-player-version-you-have-2009-07-17.html</link>
		<comments>http://slavi.biz/blog/how-to-find-which-flash-player-version-you-have-2009-07-17.html#comments</comments>
		<pubDate>Fri, 17 Jul 2009 07:06:08 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[acrobat]]></category>

		<category><![CDATA[acrobat reader]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[flash player]]></category>

		<category><![CDATA[flashplayer]]></category>

		<category><![CDATA[flv]]></category>

		<category><![CDATA[player]]></category>

		<category><![CDATA[reader]]></category>

		<category><![CDATA[swf]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=403</guid>
		<description><![CDATA[In order to find the currently installed flash player version go to http://kb2.adobe.com/cps/155/tn_15507.html
]]></description>
			<content:encoded><![CDATA[<p>In order to find the currently installed flash player version go to <a href="http://kb2.adobe.com/cps/155/tn_15507.html" target="_blank">http://kb2.adobe.com/cps/155/tn_15507.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/how-to-find-which-flash-player-version-you-have-2009-07-17.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/how-to-find-which-flash-player-version-you-have-2009-07-17.html</feedburner:origLink></item>
		<item>
		<title>Is your blog protected against brute force attack ?</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/ehWl-Afvisw/is-your-blog-protected-against-brute-force-attack-2009-07-17.html</link>
		<comments>http://slavi.biz/blog/is-your-blog-protected-against-brute-force-attack-2009-07-17.html#comments</comments>
		<pubDate>Fri, 17 Jul 2009 06:36:51 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=393</guid>
		<description><![CDATA[Here is an explanation about brute force attack from Wikipedia
In computer science, brute-force search or exhaustive search, also known as generate and test, is a trivial but very general problem-solving technique that consists of systematically enumerating all possible candidates for the solution and checking whether each candidate satisfies the problem's statement.
Donncha O Caoimh's posting has [...]]]></description>
			<content:encoded><![CDATA[<p>Here is an explanation about brute force attack from <a href="http://en.wikipedia.org/wiki/Brute-force_search" target="_blank">Wikipedia</a></p>
<blockquote><p>In computer science, brute-force search or exhaustive search, also known as generate and test, is a trivial but very general problem-solving technique that consists of systematically enumerating all possible candidates for the solution and checking whether each candidate satisfies the problem's statement.</p></blockquote>
<p><a href="http://ocaoimh.ie/why-you-should-limit-login-attempts/" target="_blank">Donncha O Caoimh's posting </a>has 2 really good ideas.</p>
<p><strong>1) Use a small script to log some *unusual* POST requests</strong><br />
By using the script Donncha was notified when somebody was trying to get into his wordpress blogs.</p>
<p>Credits: Donncha O Caoimh</p>
<pre class="brush: php">
if ( ( isset( $HTTP_RAW_POST_DATA ) || !empty( $_POST ) ) &amp;&amp; $_SERVER[ &#039;REQUEST_URI&#039; ] != &#039;/wp-cron.php?doing_wp_cron&#039; &amp;&amp; $_SERVER[ &#039;SCRIPT_NAME&#039; ] != &#039;/wp-comments-post.php&#039; &amp;&amp; substr( $_SERVER[ &#039;REQUEST_URI&#039; ], -10 ) != &#039;/trackback&#039; &amp;&amp; substr( $_SERVER[ &#039;REQUEST_URI&#039; ], -11 ) != &#039;/trackback/&#039; ) {
mail( &quot;MYEMAIL@gmail.com&quot;, $_SERVER[ &#039;HTTP_HOST&#039; ] . &quot; POST request: &quot; . $_SERVER[ &#039;REMOTE_ADDR&#039; ], &quot;URL: {$_SERVER[ &#039;REQUEST_URI&#039; ]}\nPOST: &quot; . print_r( $_POST, 1 ) . &quot;\nCOOKIES: &quot; . print_r( $_COOKIE, 1 ) . &quot;\nHTTP_RAW_POST_DATA: $HTTP_RAW_POST_DATA&quot; );
}
</pre>
<p><strong>2) Use the <a href="http://wordpress.org/extend/plugins/limit-login-attempts/" target="_blank">limit login attempts</a> Wordpress plugin</strong></p>
<blockquote><p>Here is some info about the plugin<br />
Limit Login Attempts blocks an Internet address from making further attempts after a specified limit on retries is reached, making a brute-force attack difficult or impossible.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/is-your-blog-protected-against-brute-force-attack-2009-07-17.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/is-your-blog-protected-against-brute-force-attack-2009-07-17.html</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.340 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-07-13 18:53:17 --><!-- Compression = gzip -->
