<?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>Odd, even, odd, even... &#187; Craftsmanship</title>
	<atom:link href="http://blog.hno3.org/category/%d0%ba%d0%b8%d0%bd%d0%be/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hno3.org</link>
	<description>&#34;Real efficiency comes from elegant solutions, not optimized programs.&#34;</description>
	<lastBuildDate>Thu, 22 Apr 2010 16:47:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>rsync: cannot delete non-empty directory</title>
		<link>http://blog.hno3.org/2009/10/19/rsync-perishable-rules/</link>
		<comments>http://blog.hno3.org/2009/10/19/rsync-perishable-rules/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 16:56:31 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[exclude]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[tips and tricks]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=131</guid>
		<description><![CDATA[A p (modifier) indicates that an (include/exclude/...) rule is perishable, meaning that it is ignored in directories that are being deleted. (из man rsync)

Има няколко причини, поради които rsync може да ви върне следната грешка:
cannot delete non-empty directory: some_dir_name

Ако сте използвали -b или --backup. Тогава rsync не трие нищо от destination. За да модифицирате това [...]]]></description>
			<content:encoded><![CDATA[<p><code class=\'prettyprint\' >A <strong>p</strong> (modifier) indicates that an (include/exclude/...) rule is <em>perishable</em>, meaning that it is ignored in directories that are being deleted.</code> <em>(из <code class=\'prettyprint\' >man rsync</code>)</em><br />
</p>
<p>Има няколко причини, поради които <code class=\'prettyprint\' >rsync</code> може да ви върне следната грешка:</p>
<pre>cannot delete non-empty directory: some_dir_name</pre>
<ol class="spacy">
<li><strong>Ако сте използвали <code class=\'prettyprint\' >-b</code> или <code class=\'prettyprint\' >--backup</code>.</strong> Тогава <code class=\'prettyprint\' >rsync</code> не трие нищо от <code class=\'prettyprint\' >destination</code>. За да модифицирате това поведение, вижте описанието на <code class=\'prettyprint\' >--backup</code> в <code class=\'prettyprint\' >man rsync</code>.</li>
<li><strong>Ако ползвате <code class=\'prettyprint\' >--exclude</code> правила.</strong> Тези правила &#8220;предпазват&#8221; файлове в <code class=\'prettyprint\' >destination</code> от изтриване, от което следва, че папка, изтрита в <code class=\'prettyprint\' >source</code> няма да може да бъде изтрита в <code class=\'prettyprint\' >destination</code>, ако съдържа &#8220;предпазени&#8221; от правилата файлове, дори да сте задали <code class=\'prettyprint\' >--delete --force</code>. Решението е да дефинирате <code class=\'prettyprint\' >exclude</code>-правилото като <em>perishable</em>.
<p>Например, ако синхронизирате директориите <code class=\'prettyprint\' >source</code> и <code class=\'prettyprint\' >destination</code>, които са под <code class=\'prettyprint\' >subversion</code>-контрол с <code class=\'prettyprint\' >rsync</code>, можете да ползвате следната команда:</p>
<pre>rsync -rv --delete --force --filter 'exclude,p .svn' 'source' 'destination'</pre>
<p>В случя избягваме синхронизирането на системните за <code class=\'prettyprint\' >subversion</code> директории <code class=\'prettyprint\' >.svn</code>, като въпреки това твърдим, че правилото, &#8220;защитаващо&#8221; <code class=\'prettyprint\' >.svn</code>-директориите от прехвърляне, не важи в директории, които подлежат на изтриване (т.е. правилото е <em>perishable</em>).
	</li>
</ol>
<p>За повече информация, вижте секцията <code class=\'prettyprint\' >FILTER RULES</code> и потърсете вътре за &#8220;perishable&#8221; в <code class=\'prettyprint\' >man rsync</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2009/10/19/rsync-perishable-rules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-функции any() и all()</title>
		<link>http://blog.hno3.org/2009/08/13/php-any-all/</link>
		<comments>http://blog.hno3.org/2009/08/13/php-any-all/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 22:05:49 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tips and tricks]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=123</guid>
		<description><![CDATA[Потрябва ми удобството на тези две хубави функции, all() и any(), каквито например ги има в Пайтън. Въпреки богатата база от функции в PHP, бързото ми търсене не показа нищо подобно, което да е вградено, затова:

function all() {
	$args = func_get_args();

	if (count($args) == 1 &#038;&#038; is_array($args[0])) {
		return call_user_func_array(__FUNCTION__, $args[0]);
	}

	foreach ($args as $value) {
		if (!$value) {
			return false;
		}
	}
	return [...]]]></description>
			<content:encoded><![CDATA[<p>Потрябва ми удобството на тези две хубави функции, <code class=\'prettyprint\' >all()</code> и <code class=\'prettyprint\' >any()</code>, каквито например ги има в Пайтън. Въпреки богатата база от функции в PHP, бързото ми търсене не показа нищо подобно, което да е вградено, затова:</p>
<pre class="prettyprint">
function all() {
	$args = func_get_args();

	if (count($args) == 1 &#038;&#038; is_array($args[0])) {
		return call_user_func_array(__FUNCTION__, $args[0]);
	}

	foreach ($args as $value) {
		if (!$value) {
			return false;
		}
	}
	return count($args) > 0;
}
</pre>
<p>Функцията <code class=\'prettyprint\' >any()</code> е почти аналогична. Ако ви интересува и нейната пълна реализация, както и нещо като unit-тест, вижте пълния текст на този пост.</p>
<p><span id="more-123"></span></p>
<p>Ето го и нещото, приличащо на unit-тест:</p>
<pre class="prettyprint">
function any() {
	$args = func_get_args();

	if (count($args) == 1 &#038;&#038; is_array($args[0])) {
		return call_user_func_array(__FUNCTION__, $args[0]);
	}

	foreach ($args as $value) {
		if ($value) {
			return true;
		}
	}
	return false;
}

function all() {
	$args = func_get_args();

	if (count($args) == 1 &#038;&#038; is_array($args[0])) {
		return call_user_func_array(__FUNCTION__, $args[0]);
	}

	foreach ($args as $value) {
		if (!$value) {
			return false;
		}
	}
	return count($args) > 0;
}

$tests = array(
	array(
		'any',
		false,
		array(false, false, false),
	),
	array(
		'any',
		false,
		array(),
	),
	array(
		'any',
		true,
		array(false, 1, false),
	),
	array(
		'any',
		true,
		array(false, false, false, "string"),
	),
	array(
		'any',
		false,
		array(false, null, false, "", false),
	),
	array(
		'all',
		false,
		array(false, false, false),
	),
	array(
		'all',
		false,
		array(),
	),
	array(
		'all',
		false,
		array(false, 1, false),
	),
	array(
		'all',
		false,
		array(false, false, false, "string"),
	),
	array(
		'all',
		false,
		array(false, null, false, "", false),
	),
	array(
		'all',
		true,
		array(true, "sth", 123, true, true, 1, -7),
	),
);

$total = $ok = $failed = 0;
$summary = '';

function test($func, $expected, $args) {
	global $total, $ok, $failed, $summary;
	$total ++;
	$signature = $func . '(' . implode(',', array_map(create_function('$arg', 'return var_export($arg, true);'), $args)) . '), expected: ' . var_export($expected, true);

	try {
		$result = call_user_func_array($func, $args);
	} catch (Exception $e) {
		echo 'E';
		$failed ++;
		$summary .= $signature . "\n";
		$summary .= $e->getMessage() . "\n";
		return false;
	}

	if ($result === $expected) {
		echo '.';
		$ok ++;
		return true;
	} else {
		echo 'F';
		$failed++;
		$summary .= $signature . ", but got: " . var_export($result, true) . "\n";
		return false;
	}
}

foreach ($tests as $test_case) {
	list($func, $expected, $args) = $test_case;
	test($func, $expected, $args);
	test($func, $expected, array($args));
}

if ($failed == 0) {
	echo "\n\nALL TESTS PASSED.";
}

echo "\n\n";
echo "Tests: $total\n";
echo "OK:    $ok\n";
if ($failed > 0) {
	echo "FAIL:  $failed\n";
}

echo "\n$summary\n";
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2009/08/13/php-any-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Чакалене на IP/host за наличие на пинг</title>
		<link>http://blog.hno3.org/2009/08/12/monitoring-ip-for-ping/</link>
		<comments>http://blog.hno3.org/2009/08/12/monitoring-ip-for-ping/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 14:10:08 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[shell scripting]]></category>
		<category><![CDATA[tips and tricks]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=118</guid>
		<description><![CDATA[Съвсем скоро (да кажем, преди 10 минути) ми се наложи да чакам да се появи пинг към дадено IP. За целта си написах shell-скриптчето, показано по-долу, което да ми &#8220;каже&#8221; нещо, в момента, в който се появи ping към съответното IP. Някой може да го намери за полезно:

dimitardimitrov@Midori:~$ cat monitor-host.sh
#!/bin/bash

if [ "$#" -lt 1 ]
then
	echo [...]]]></description>
			<content:encoded><![CDATA[<p>Съвсем скоро (да кажем, преди 10 минути) ми се наложи да чакам да се появи пинг към дадено IP. За целта си написах shell-скриптчето, показано по-долу, което да ми &#8220;каже&#8221; нещо, в момента, в който се появи ping към съответното IP. Някой може да го намери за полезно:</p>
<pre class="prettyprint">
dimitardimitrov@Midori:~$ cat monitor-host.sh
#!/bin/bash

if [ "$#" -lt 1 ]
then
	echo "Usage: $0 host.to.monitor"
	exit 1
fi 

host="$1"

while true
do
	ping -c 1 $host
	if [ "$?" -eq "0" ]
	then
		say The host is now online! I repeat: "The host is now online!".
		exit
	fi
	sleep 1
done
</pre>
<p>За да работи, е необходимо да имате команда <code class=\'prettyprint\' >say</code>, която да прави каквото се очаква :) Може да бъде заменена и с нещо друго, разбира се. Чувствайте се свободни да ползвате това парче &#8220;код&#8221; както искате.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2009/08/12/monitoring-ip-for-ping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pygments</title>
		<link>http://blog.hno3.org/2008/03/03/python-pygments/</link>
		<comments>http://blog.hno3.org/2008/03/03/python-pygments/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 12:47:31 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=85</guid>
		<description><![CDATA[Pygments е Python-пакет, който ви дава удобен интерфейс (под формата на библиотека или на command-line инструмент) да оцветявате парчета код (всъщност не само код), като изходът може да бъде в HTML, RTF, LaTeX и други формати. Вижте страничката с примери. Дори Brainf*ck не успява да избяга.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://pygments.org/">Pygments</a> е Python-пакет, който ви дава удобен интерфейс (под формата на библиотека или на command-line инструмент) да оцветявате парчета код (всъщност не само код), като изходът може да бъде в HTML, RTF, LaTeX и други формати. Вижте <a href="http://pygments.org/demo/">страничката с примери</a>. Дори <a href="http://pygments.org/demo/533/">Brainf*ck</a> не успява да избяга.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2008/03/03/python-pygments/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FreeBSD 7.0-RELEASE</title>
		<link>http://blog.hno3.org/2008/03/01/freebsd-7-released/</link>
		<comments>http://blog.hno3.org/2008/03/01/freebsd-7-released/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 14:38:55 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=84</guid>
		<description><![CDATA[Обявена е вече стабилната версия 7.0 на FreeBSD, подходяща за production use. Някои от новостите:

Много голям процент подобрение на производителността при многоядрените/многопроцесорни системи
Експериментална поддръжка на файловата система ZFS
Нов метод за заделяне на памет в User-space &#8211; jemalloc
freebsd-update и много, много други.

]]></description>
			<content:encoded><![CDATA[<p>Обявена е вече <a href="http://www.freebsd.org/releases/7.0R/announce.html">стабилната версия 7.0 на FreeBSD</a>, подходяща за production use. Някои от новостите:</p>
<ul>
<li>Много голям процент подобрение на производителността при многоядрените/многопроцесорни системи</li>
<li>Експериментална поддръжка на файловата система ZFS</li>
<li>Нов метод за заделяне на памет в User-space &#8211; jemalloc</li>
<li>freebsd-update и <a href="http://www.freebsd.org/releases/7.0R/announce.html">много, много други</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2008/03/01/freebsd-7-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Citations</title>
		<link>http://blog.hno3.org/2008/02/04/citations/</link>
		<comments>http://blog.hno3.org/2008/02/04/citations/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 16:52:04 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=82</guid>
		<description><![CDATA[&#8220;A language that doesn&#8217;t affect the way you think about programming, is not worth knowing.&#8221; [1]
&#8220;Real efficiency comes from elegant solutions, not optimized programs.&#8221; [2]
&#8220;Синтактична сол&#8221; [3] (текстът е интересен)
Референции:
[1] http://www.cs.yale.edu/quotes.html
[2] http://www.cs.indiana.edu/~jsobel/c455-c511.updated.txt
[3] http://en.wikipedia.org/wiki/Syntactic_sugar
]]></description>
			<content:encoded><![CDATA[<p>&#8220;A language that doesn&#8217;t affect the way you think about programming, is not worth knowing.&#8221; [1]</p>
<p>&#8220;Real efficiency comes from elegant solutions, not optimized programs.&#8221; [2]</p>
<p>&#8220;Синтактична сол&#8221; [3] (<a href="http://en.wikipedia.org/wiki/Syntactic_sugar">текстът е интересен</a>)</p>
<p><small>Референции:<br />
[1] <a href="http://www.cs.yale.edu/quotes.html">http://www.cs.yale.edu/quotes.html</a><br />
[2] <a href="http://www.cs.indiana.edu/~jsobel/c455-c511.updated.txt">http://www.cs.indiana.edu/~jsobel/c455-c511.updated.txt</a><br />
[3] <a href="http://en.wikipedia.org/wiki/Syntactic_sugar">http://en.wikipedia.org/wiki/Syntactic_sugar</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2008/02/04/citations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scheme Versus C</title>
		<link>http://blog.hno3.org/2008/02/04/scheme-versus-c/</link>
		<comments>http://blog.hno3.org/2008/02/04/scheme-versus-c/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 23:09:48 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[algorithmic thinking]]></category>
		<category><![CDATA[assembler]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=80</guid>
		<description><![CDATA[Интересна идея има в ето този текст &#8212; описан е един интересен подход към силно алгоритмичен и оптимизационен проблем &#8212; реализацията на алгоритъма за бързо умножение. Главният герой описва как колегите му са подходили към този проблем, нахвърляйки се върху C и дори направо Assembler, докато той решил да подходи по-различно и започнал на Scheme. [...]]]></description>
			<content:encoded><![CDATA[<p>Интересна идея има в <a href="http://www.cs.indiana.edu/~jsobel/c455-c511.updated.txt">ето този текст</a> &mdash; описан е един интересен подход към силно алгоритмичен и оптимизационен проблем &mdash; реализацията на <a href="http://en.wikipedia.org/wiki/Multiplication_algorithm">алгоритъма за бързо умножение</a>. Главният герой описва как колегите му са подходили към този проблем, нахвърляйки се върху C и дори направо Assembler, докато той решил да подходи по-различно и започнал на Scheme. <strong>Ползата, която е получил от високото алгоритмично ниво на писане на Scheme, е била в начина на мислене и идеите, до които го е довело това.</strong> В крайна сметка, алгоритъмът, който той е реализирал много по-бързо и лесно на Scheme и впоследствие превел на C, му е донесъл желаният резултат на едно от най-бързите решения, постигнат за много по-малко време. По неговите собствени думи, <em>&#8220;That was the amazing part: I had PRODUCED a program that I could not have WRITTEN, and would not have wanted to write directly&#8221;.</em></p>
<p><small>Референция: <a href="http://www.cs.indiana.edu/~jsobel/c455-c511.updated.txt">http://www.cs.indiana.edu/~jsobel/c455-c511.updated.txt</a>.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2008/02/04/scheme-versus-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internet Explorer &#8230; Operation Aborted</title>
		<link>http://blog.hno3.org/2008/01/16/ie-javascript-error-2/</link>
		<comments>http://blog.hno3.org/2008/01/16/ie-javascript-error-2/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 01:57:03 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[errors]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=79</guid>
		<description><![CDATA[Поредната култова грешка от страна на Microsoft Internet Explorer (версия 7):
Internet Explorer cannot open the Internet site URL
Operation aborted
Оказва се, че за тази грешка причината е някое парче JavaScript код, което се опитва да &#8220;залепи&#8221; елемент към BODY обекта, без самият скрипт да е пряк наследник на този BODY обект. Най-бързото решение е да издирите [...]]]></description>
			<content:encoded><![CDATA[<p>Поредната <em>култова</em> грешка от страна на Microsoft Internet Explorer (версия 7):</p>
<blockquote><p>Internet Explorer cannot open the Internet site <em>URL</em><br />
Operation aborted</p></blockquote>
<p>Оказва се, че за тази грешка причината е някое парче JavaScript код, което се опитва да &#8220;залепи&#8221; елемент към BODY обекта, без самият скрипт да е пряк наследник на този BODY обект. Най-бързото решение е да издирите този скрипт и да му добавите атрибута: <code class=\'prettyprint\' >defer="defer"</code>, например така:</p>
<blockquote><p>
&lt;script type=&#8221;text/javascript&#8221; <strong>defer=&#8221;defer&#8221;</strong>&gt;<br />
&#8230;<br />
&lt;/script&gt;
</p></blockquote>
<p>Има и други решения, които можете да намерите лесно из Google.<br />
Успех на всички с debug-ването в IE.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2008/01/16/ie-javascript-error-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mv, както и rm и cp</title>
		<link>http://blog.hno3.org/2007/12/14/mv-rm-cp-safety/</link>
		<comments>http://blog.hno3.org/2007/12/14/mv-rm-cp-safety/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 18:24:48 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=77</guid>
		<description><![CDATA[Никога не ползвайте mv * ../* на UNIX/Linux система, ако не искате да преместите всички файлове от текущия каталог, както и тези от родителския каталог, в директория от родителския каталог! Shell-ът, който използвате (/bin/sh, /bin/bash, &#8230;) ще замести * с всички файлове и каталози от текущия каталог, а ../* с всички файлове и каталози от [...]]]></description>
			<content:encoded><![CDATA[<p>Никога не ползвайте <code class=\'prettyprint\' >mv * ../*</code> на UNIX/Linux система, ако не искате да преместите всички файлове от текущия каталог, <strong>както и тези от родителския каталог</strong>, в директория от родителския каталог! Shell-ът, който използвате (/bin/sh, /bin/bash, &#8230;) ще замести <code class=\'prettyprint\' >*</code> с всички файлове и каталози от текущия каталог, а <code class=\'prettyprint\' >../*</code> с всички файлове и каталози от родителския каталог, като при това положение <code class=\'prettyprint\' >mv</code> ще премести <strong>целия този списък</strong> в последния си аргумент, който трябва да бъде съществуващ каталог (вероятността това да е изпълнено не е малка.)</p>
<p>За повече информация: <code class=\'prettyprint\' >man mv</code> и <code class=\'prettyprint\' >man sh</code>&#8230;</p>
<p><em>Послеслов</em>: Забравих да спомена, винаги, ама <b>ВИНАГИ</b> се пазете от сянката си, че няма да усетите как сами ще си навредите тъй, както никой друг не би могъл да ви навреди &#8211; слагайте синоними от този род в стартовия си, профилиращ shell-а, скрипт (<code class=\'prettyprint\' >~/.bash_profile</code> за bash, <code class=\'prettyprint\' >~/.cshrc</code> за csh и т.н.):</p>
<pre>alias rm    rm -i
alias cp    cp -i
alias mv    mv -i</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2007/12/14/mv-rm-cp-safety/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>system error: -1072896658</title>
		<link>http://blog.hno3.org/2007/11/19/system-error-1072896658/</link>
		<comments>http://blog.hno3.org/2007/11/19/system-error-1072896658/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 15:02:09 +0000</pubDate>
		<dc:creator>wireman</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[errors]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.hno3.org/?p=75</guid>
		<description><![CDATA[Един от примерите за много добре именована JavaScript грешка, която този чудесен браузър на Microsoft &#8211; Internet Explorer &#8211; продуцира: &#8220;System error: -1072896658&#8243;.
Оказва се, че при работа с XMLHttpRequest, когато responce-ът е с непознат encoding, при опит за достъп до responce-текста бива продуцирана въпросната грешка. Интересното е, че encoding &#8220;utf8&#8243; не върши работа &#8211; трябва [...]]]></description>
			<content:encoded><![CDATA[<p>Един от примерите за <em>много добре именована</em> JavaScript грешка, която този чудесен браузър на Microsoft &#8211; Internet Explorer &#8211; продуцира: &#8220;System error: -1072896658&#8243;.</p>
<p>Оказва се, че при работа с <code class=\'prettyprint\' >XMLHttpRequest</code>, когато responce-ът е с непознат encoding, при опит за достъп до responce-текста бива продуцирана въпросната грешка. Интересното е, че encoding &#8220;utf8&#8243; не върши работа &#8211; трябва да бъде &#8220;<strong>UTF-8</strong>&#8220;.</p>
<p>Изключително благодаря на автора на <a href="http://www.panoramio.com/blog/explorer-system-error-1072896658/">този пост</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hno3.org/2007/11/19/system-error-1072896658/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
