<?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 Oct 2009 16:37:47 +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>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[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 users, but basic implementation is so easy that even coding novices can do [...]]]></description>
			<content:encoded><![CDATA[<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,30}$#si&#039;, $_GET[$sessName])
&amp;amp;&amp;amp; preg_match(&#039;#__tkn/([a-z\d]{25,30})#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>
		<item>
		<title>Google Voice Inviation</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/vazXMQiUCjc/google-voice-inviation-2009-07-16.html</link>
		<comments>http://slavi.biz/blog/google-voice-inviation-2009-07-16.html#comments</comments>
		<pubDate>Thu, 16 Jul 2009 22:27:58 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Anti Best Practices]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[google voice]]></category>

		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=378</guid>
		<description><![CDATA[I've just received an invitation to check Google Voice BUT it's not available outside the US .....
I should have been notified when Google Voice is available in my country.

]]></description>
			<content:encoded><![CDATA[<p>I've just received an invitation to check Google Voice <strong>BUT</strong> it's not available outside the US .....</p>
<p>I should have been notified when Google Voice is available in my country.</p>
<p><a rel="attachment" href="http://slavi.biz/blog/wp-content/uploads/2009/07/picture-3.png" target="_blank"><img class="alignnone size-full wp-image-379" title="Google Voice - N/A" src="http://slavi.biz/blog/wp-content/uploads/2009/07/picture-3.png" alt="Google Voice - N/A" width="701" height="229" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/google-voice-inviation-2009-07-16.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/google-voice-inviation-2009-07-16.html</feedburner:origLink></item>
		<item>
		<title>Another (free) way to advertise your services and products</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/_5QqtU7sj3w/another-free-way-to-advertise-your-services-and-products-2009-07-13.html</link>
		<comments>http://slavi.biz/blog/another-free-way-to-advertise-your-services-and-products-2009-07-13.html#comments</comments>
		<pubDate>Tue, 14 Jul 2009 02:51:19 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Best Pratices]]></category>

		<category><![CDATA[Business]]></category>

		<category><![CDATA[Marketing]]></category>

		<category><![CDATA[ad]]></category>

		<category><![CDATA[ads]]></category>

		<category><![CDATA[domain]]></category>

		<category><![CDATA[domains]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[innovative]]></category>

		<category><![CDATA[who]]></category>

		<category><![CDATA[whois]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=361</guid>
		<description><![CDATA[I just visted an interesting site and I decided to check its WHOIS info.
Here is what I've found.
The registrar or the owner have entered information about their services in the domain's WHOIS info.
Click the image below.

To read more about domain WHOIS information go to http://en.wikipedia.org/wiki/WHOIS

]]></description>
			<content:encoded><![CDATA[<p>I just visted an interesting site and I decided to check its WHOIS info.</p>
<p>Here is what I've found.</p>
<p>The registrar or the owner have entered information about their services in the <strong>domain's WHOIS info</strong>.</p>
<p>Click the image below.</p>
<p><a href="http://slavi.biz/blog/wp-content/uploads/2009/07/innovative_place_to_advertise.jpg" target="_blank"><img class="alignnone size-medium wp-image-362" title="innovative_place_to_advertise_whois" src="http://slavi.biz/blog/wp-content/uploads/2009/07/innovative_place_to_advertise-300x204.jpg" alt="innovative_place_to_advertise_whois" width="300" height="204" /></a></p>
<p>To read more about domain WHOIS information go to <strong><a href="http://en.wikipedia.org/wiki/WHOIS" target="_blank">http://en.wikipedia.org/wiki/WHOIS</a><a href="http://en.wikipedia.org/wiki/WHOIS" target="_blank"><br />
</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/another-free-way-to-advertise-your-services-and-products-2009-07-13.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/another-free-way-to-advertise-your-services-and-products-2009-07-13.html</feedburner:origLink></item>
		<item>
		<title>A Good Downtime Notification by OpenSRS</title>
		<link>http://feedproxy.google.com/~r/slavi/~3/a7koXIjR2Sw/a-good-downtime-notification-by-opensrs-2009-07-13.html</link>
		<comments>http://slavi.biz/blog/a-good-downtime-notification-by-opensrs-2009-07-13.html#comments</comments>
		<pubDate>Tue, 14 Jul 2009 02:04:19 +0000</pubDate>
		<dc:creator>Svetoslav Marinov</dc:creator>
		
		<category><![CDATA[Best Pratices]]></category>

		<category><![CDATA[domain]]></category>

		<category><![CDATA[domains]]></category>

		<category><![CDATA[email]]></category>

		<category><![CDATA[notification]]></category>

		<category><![CDATA[notifications]]></category>

		<category><![CDATA[opensrs]]></category>

		<category><![CDATA[registrar]]></category>

		<category><![CDATA[registry]]></category>

		<category><![CDATA[TuCows]]></category>

		<guid isPermaLink="false">http://slavi.biz/blog/?p=357</guid>
		<description><![CDATA[Today I will be commenting on OpenSRS downtime notifications.
I like the message structure very much.
Please note that we will be conducting the following network maintenance at our data center:
Date: Sunday, July 19, 2009
Time: 03:00 - 07:00 UTC
Duration: 4 hours
Your local time:
http://opensrs.info/July19start to http://opensrs.info/July19end
Service Impact:
We will use this time to upgrade our core routers to accommodate [...]]]></description>
			<content:encoded><![CDATA[<p>Today I will be commenting on OpenSRS downtime notifications.</p>
<p>I like the message structure very much.</p>
<blockquote><p>Please note that we will be conducting the following network maintenance at our data center:</p>
<p><strong>Date</strong>: Sunday, July 19, 2009<br />
<strong>Time</strong>: 03:00 - 07:00 UTC<br />
<strong>Duration</strong>: 4 hours<br />
<strong>Your local time</strong>:<br />
http://opensrs.info/July19start to http://opensrs.info/July19end</p>
<p><strong>Service Impact:</strong></p>
<p>We will use this time to upgrade our core routers to accommodate 10 Gigabit cards. To minimize the impact on your services, traffic will be routed through secondary routers. This action should limit<br />
the actual down time to approximately 15 minutes within the 4 hour window.</p>
<p>The following OpenSRS Services will be briefly affected:</p>
<p>* OpenSRS Provisioning and Management (includes the RWI: ordering, renewals, transfers, deletion and management of domain names.)<br />
* Storefront (includes ordering, renewals, deletion and management of domain names.)<br />
* Provisioning of Digital Certificates (SSL) and Managed DNS<br />
* Blogware<br />
* Website Builder</p>
<p>All domains will continue to resolve.</p>
<p>As always, we will keep you informed of any changes through System Status (http://status.opensrs.com/).</p>
<p>Thank you for your continued support of OpenSRS.</p></blockquote>
<p><strong>Rasons</strong><br />
<strong>#1 The first thing it answers different questions</strong><br />
what will change and what it will affect,<br />
When will it happen, the duration etc.<br />
<strong><br />
#2 Local time links</strong><br />
the links http://opensrs.info/July point to http://www.timeanddate.com/worldclock/fixedtime.html?month=7&amp;day=19&amp;year=2009&amp;hour=3&amp;min=0&amp;sec=0&amp;p1=0<br />
which gives you a table and you can find your time</p>
<p><strong>#3 Status page</strong> where users can see which services are running at the moment.<br />
http://status.opensrs.com/</p>
<p>Good job.</p>
<p><strong>P.S.</strong></p>
<p>I have decided to post this article because several months ago I criticised OpenSRS about the look of the reseller control panel.<br />
It looks so 90s by the way.<br />
They promised that they would skip web 2.0 and would go straight to 3.0 by the end of the year (2009)<br />
That was quite funny actually. <img src='http://slavi.biz/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
With this article I want to show that I can see the good things as well <img src='http://slavi.biz/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://slavi.biz/blog/a-good-downtime-notification-by-opensrs-2009-07-13.html/feed</wfw:commentRss>
		<feedburner:origLink>http://slavi.biz/blog/a-good-downtime-notification-by-opensrs-2009-07-13.html</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.808 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-26 12:20:11 --><!-- Compression = gzip -->
