<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.2" -->
<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/"
	>

<channel>
	<title>CodeFucker.com</title>
	<link>http://codefucker.com</link>
	<description>Боянчеги о веб-разработке</description>
	<pubDate>Wed, 12 Mar 2008 07:07:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>Простой JS фильтр ввода в поле формы по опр. значениям.</title>
		<link>http://codefucker.com/javascript/simple-js-input-field-filter-by-value/</link>
		<comments>http://codefucker.com/javascript/simple-js-input-field-filter-by-value/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 07:07:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://codefucker.com/javascript/simple-js-input-field-filter-by-value/</guid>
		<description><![CDATA[Возникла потребность в примитивном фильтровщике ввода в текстовое поле, без учета вставки из буффера..
&#60;input type=&#8221;text&#8221; onkeypress=&#8221;valueFilter(event, [0,1,2,3,4,5,6,7,8,9])&#8221; /&#62;
function valueFilter(e, allowed) {
    var skip = true,
        e = e &#124;&#124; window.event,
        key = String.fromCharCode(e.which &#124;&#124; e.keyCode);
    [...]]]></description>
			<content:encoded><![CDATA[<p>Возникла потребность в примитивном фильтровщике ввода в текстовое поле, без учета вставки из буффера..<br />
<tt>&lt;input type=&#8221;text&#8221; onkeypress=&#8221;valueFilter(event, [0,1,2,3,4,5,6,7,8,9])&#8221; /&gt;</tt><br />
<script>function valueFilter(e, allowed) {
    var skip = true,
        e = e || window.event,
        key = String.fromCharCode(e.which || e.keyCode);
    for(var i=0; i<allowed.length; i++) {
        if(String(allowed[i]) === key.toLowerCase()) {
            skip = false;
            break;
        }
    }
    if(skip) {
        if(e.preventDefault) e.preventDefault();
        e.returnValue = false;
    }
    return true;
}</script><br />
пример в действии (допустимы только числовые сиволы):<br />
<input value="0123" style="width:200px; height:20px; border-width:1px; border-style:dashed; border-color:#000;" type="text" onkeypress="valueFilter(event, [0,1,2,3,4,5,6,7,8,9])" />
<p>Сорцы внутри.  <a href="http://codefucker.com/javascript/simple-js-input-field-filter-by-value/#more-17" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/javascript/simple-js-input-field-filter-by-value/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IE6 и DOM appendChild на лету..</title>
		<link>http://codefucker.com/javascript/ie6-dom-appendchild-closing-connection/</link>
		<comments>http://codefucker.com/javascript/ie6-dom-appendchild-closing-connection/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 09:29:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[dom]]></category>

		<guid isPermaLink="false">http://codefucker.com/javascript/ie6-dom-appendchild-closing-connection/</guid>
		<description><![CDATA[Пытался дибажить пару дней странное &#8220;Не удалось открыть узел, операция прервана&#8221; от IE во время запуска примитивного js скрипта.. Оказывается IE не переваривает добавление элементов на лету, пока DOM до конца не сформирован и тупо клозит, указывая на стену.. Причем любит клозить на SCRIPT и IFRAME тегах больше, чем в остальных случаях  В итоге [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://codefucker.com/wp-content/uploads/2008/03/ie_buga.jpg' alt='ie achtung!'  style='float:left; padding:5px;' />Пытался дибажить пару дней странное <strong>&#8220;Не удалось открыть узел, операция прервана&#8221;</strong> от IE во время запуска примитивного js скрипта.. Оказывается IE не переваривает добавление элементов на лету, пока DOM до конца не сформирован и тупо клозит, указывая на стену.. Причем любит клозить на SCRIPT и IFRAME тегах больше, чем в остальных случаях <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> В итоге меня устроил вариант с <tt>document.write(..)</tt>.</p>
<p>Из альтернатив <tt>window.onload( function() {..} )</tt>, но обламывает ждать полную загрузку страницы с картинками, либо<br />
<tt>setTimeout(function () { document.body.appendChild(el); }, 0);</tt>, тут уже вставка произойдет без дожидания загрузки всех дополнительных элементов страницы.. Также есть готовые решения проверки загруженности DOM&#8217;a в популярных фреймворках типа <a href="http://www.prototypejs.org/">Prototype</a> и <a href="http://jquery.com/">jQuery</a>..</p>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/javascript/ie6-dom-appendchild-closing-connection/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Сортировка JS хешей по значению (1D)</title>
		<link>http://codefucker.com/javascript/js-hash-sorting-by-value/</link>
		<comments>http://codefucker.com/javascript/js-hash-sorting-by-value/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 08:27:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://codefucker.com/javascript/js-hash-sorting-by-value/</guid>
		<description><![CDATA[Накидал простенькую ф-ию для сортировки хешей (associative arrays)  по значению. Все примитивно и тюнится под свои нужды  
&#60;script&#62;
    function asort(arr) {
        var numArr = new Array; // values
        var map = new Array;    // index =&#62; values array
    [...]]]></description>
			<content:encoded><![CDATA[<p>Накидал простенькую ф-ию для сортировки хешей (associative arrays)  по значению. Все примитивно и тюнится под свои нужды <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="syntax-highlight:js">&lt;script&gt;
    function asort(arr) {
        var numArr = new Array; // values
        var map = new Array;    // index =&gt; values array
        var out = new Array;

        for(k in arr) {
            numArr[numArr.length] = arr[k];
            if(map[arr[k]] == undefined) map[arr[k]] = new Array;
            map[arr[k]].push(k);
        }
        numArr.sort( function(a, b) { return (b-a); } ); //desc

        for(var i=0; i&lt;numArr.length; i++) {
            for(var j=0; j&lt;map[numArr[i]].length; j++) {
                out[map[numArr[i]][j]] = numArr[i];
            }
        }
        return out;
    }
&lt;/script&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/javascript/js-hash-sorting-by-value/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Broken pipe &#038; Connection closed by peer в SphinxClient::UpdateAttributes() [PHP]</title>
		<link>http://codefucker.com/sphinx/timeout-errors-with-sphinx-client-attribute-update/</link>
		<comments>http://codefucker.com/sphinx/timeout-errors-with-sphinx-client-attribute-update/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 08:18:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Sphinx]]></category>

		<guid isPermaLink="false">http://codefucker.com/sphinx/timeout-errors-with-sphinx-client-attribute-update/</guid>
		<description><![CDATA[Натолкнулся на данные ворнинги, после продолжительных тестов и эксперментов пришел к выводу, что на это влияет следующий за Апдейтом MySQL запрос с DELETE IN(&#8230;) .
Апдейты и делеты в цикле. Есть делет запрос - есть ворнинги :)
max_children=0 так же решает проблему при одновременно использовании MySQL..
Актуально для sphinx-0.9.8-svn-r1112 и r1173
]]></description>
			<content:encoded><![CDATA[<p>Натолкнулся на данные ворнинги, после продолжительных тестов и эксперментов пришел к выводу, что на это влияет следующий за Апдейтом MySQL запрос с DELETE IN(&#8230;) .</p>
<p>Апдейты и делеты в цикле. Есть делет запрос - есть ворнинги :)<br />
max_children=0 так же решает проблему при одновременно использовании MySQL..</p>
<p>Актуально для sphinx-0.9.8-svn-r1112 и r1173</p>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/sphinx/timeout-errors-with-sphinx-client-attribute-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sphinx UpdateAttribute 8kb limit?</title>
		<link>http://codefucker.com/sphinx/sphinx-updateattribute-8kb-limit/</link>
		<comments>http://codefucker.com/sphinx/sphinx-updateattribute-8kb-limit/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 02:50:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Sphinx]]></category>

		<guid isPermaLink="false">http://codefucker.com/sphinx/sphinx-updateattribute-8kb-limit/</guid>
		<description><![CDATA[Столкнулся с проблемой, при попытке заапдейтить большой массив айдишек. Searchd ругается на 8кб с копейками запрос и клозит соединение.. Решение - разбить массив айди на несколько частей  
Например вот так:

/*................................*/
            if(count($id) &#62; 500) {
                $id = array_chunk($id, 500, [...]]]></description>
			<content:encoded><![CDATA[<p>Столкнулся с проблемой, при попытке заапдейтить большой массив айдишек. Searchd ругается на 8кб с копейками запрос и клозит соединение.. Решение - разбить массив айди на несколько частей <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Например вот так:</p>
<pre class="syntax-highlight:php">
/*................................*/
            if(count($id) &gt; 500) {
                $id = array_chunk($id, 500, true);
                foreach($id as $v)
                    $cl-&gt;UpdateAttributes('shop', array($this-&gt;table), $v);
            } else
                $cl-&gt;UpdateAttributes('shop', array($this-&gt;table), $id);
/*................................*/
</pre>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/sphinx/sphinx-updateattribute-8kb-limit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Бугагашечка от PHP для невнимательных</title>
		<link>http://codefucker.com/php/php-bug-for-dummies/</link>
		<comments>http://codefucker.com/php/php-bug-for-dummies/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 09:14:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[php for dummies]]></category>

		<guid isPermaLink="false">http://codefucker.com/php/php-bug-for-dummies/</guid>
		<description><![CDATA[&#60;?php
$key = explode(' ', 'testword');
foreach($key as &#38;$v) $v = trim($v);

foreach(array('store', 'brand') as $v){
    /*.......*/
}
print_r($key);
?&#62;
Как может показаться в массиве $key должно быть &#8216;testword&#8217;  но это не так. Проблему решает только unset($v) после первого foreach&#8217;a.
]]></description>
			<content:encoded><![CDATA[<pre class="syntax-highlight:php">&lt;?php
$key = explode(' ', 'testword');
foreach($key as &amp;$v) $v = trim($v);

foreach(array('store', 'brand') as $v){
    /*.......*/
}
print_r($key);
?&gt;</pre>
<p>Как может показаться в массиве $key должно быть &#8216;testword&#8217; <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> но это не так. Проблему решает только unset($v) после первого foreach&#8217;a.</p>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/php/php-bug-for-dummies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Работа с 2гб+ файлами в PHP</title>
		<link>http://codefucker.com/php/php-large-file-support/</link>
		<comments>http://codefucker.com/php/php-large-file-support/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 05:16:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://codefucker.com/php/php-large-file-support/</guid>
		<description><![CDATA[Почему-то при изучении и работе с пхп в мане нираз не видел упоминаний про работу с большими файлами (2гб+), хотя оно там есть  и по ошибке, выдаваемой интерпретатором (File size limit exceeded), этот ман не гуглится  
Для работы с большими файлами требуется пересобрать PHP с флагами CFLAGS=&#8221;-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64&#8243;
CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \
./configure .....
Ахтунг, если поддержка нужна для веба, необходимо также пересобрать апач и мод_ссл с теми же флагами. Для [...]]]></description>
			<content:encoded><![CDATA[<p>Почему-то при изучении и работе с пхп в мане нираз не видел упоминаний про работу с большими файлами (2гб+), хотя оно там есть <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> и по ошибке, выдаваемой интерпретатором (<strong>File size limit exceeded</strong>), этот ман не гуглится <img src='http://codefucker.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Для работы с большими файлами требуется пересобрать PHP с флагами <strong>CFLAGS=&#8221;-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64&#8243;</strong></p>
<pre>CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \
./configure .....</pre>
<p>Ахтунг, если поддержка нужна для веба, необходимо также пересобрать апач и мод_ссл с теми же флагами. Для консоли сойдет пересобрать пхп в другое место <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Интересный факт, что после сборки PHP с такими флагами, время работы с файлами увеличилось ровно в 2 раза, по сравнению со сборкой без флагов. Добавляем -O2 или -O3 к флагам и радуемся результату <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> при -O3 работает чуть-чуть быстрей дефолтной сборки (gcc 4.1.1).</p>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/php/php-large-file-support/feed/</wfw:commentRss>
		</item>
		<item>
		<title>4 дня транса..</title>
		<link>http://codefucker.com/about-me/4-fucking-days/</link>
		<comments>http://codefucker.com/about-me/4-fucking-days/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 04:52:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[About Me]]></category>

		<category><![CDATA[jopa]]></category>

		<guid isPermaLink="false">http://codefucker.com/about-me/4-fucking-days/</guid>
		<description><![CDATA[Перенапрягся в тренажерном зале так, что не мог уснуть 3 ночи. Чугунная бошка+антибиотики сделали свое дело, неделя пролетела без работы..  
Вот к чему приводит сранная безвылазная сидячка за компом.
]]></description>
			<content:encoded><![CDATA[<p>Перенапрягся в тренажерном зале так, что не мог уснуть 3 ночи. Чугунная бошка+антибиотики сделали свое дело, неделя пролетела без работы.. <img src='http://codefucker.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Вот к чему приводит сранная безвылазная сидячка за компом.</p>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/about-me/4-fucking-days/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Тест производительности с кавычками на PHP</title>
		<link>http://codefucker.com/php/php-quote-performance-test/</link>
		<comments>http://codefucker.com/php/php-quote-performance-test/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 22:58:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://codefucker.com/uncategorized/php-quote-performance-test/</guid>
		<description><![CDATA[Прочитал тут недавно у одного адепта, что не имеет смысла оптмизировать строки и писать в ординарных кавычках, что лучше строить боинги  которые видимо развалятся не взелетев с таким подходом  ПОХАПЕ сам по себе гавноязык, который нужно оптимизровать везде насколько можно, если нужна максимальаня производительность, что особо сказывается на крупных проектах. Слово крупный тут не значит использование [...]]]></description>
			<content:encoded><![CDATA[<p>Прочитал тут недавно у одного <a HREF="http://kpumuk.info/php/crazy-php-world/">адепта</a>, что не имеет смысла оптмизировать строки и писать в ординарных кавычках, что лучше строить боинги <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> которые видимо развалятся не взелетев с таким подходом <img src='http://codefucker.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ПОХАПЕ сам по себе гавноязык, который нужно оптимизровать везде насколько можно, если нужна максимальаня производительность, что особо сказывается на крупных проектах. Слово крупный тут не значит использование всевозможных фреймворков и больших денег за работу, слово крупный тут имеет смысл большой нагрузки, где каждый выигранный % производительности на счету.</p>
<p>Не поленился написать нубоскрипт, вот <strong>результаты</strong>:</p>
<pre class="syntax-highlight:css"># vars    time with &quot;       time with '       performance
1         3.6974380016327   2.5139710903168   147.08%
2         6.0501251220703   5.0527441501617   119.74%
3         8.2543439865112   7.8380331993103   105.31%
4         10.672549962997   10.420034885406   102.42%
total     28.674457073212   25.824783325195   111.03%  </pre>
<p>Отсюда видно, что максимальный отрыв наблюдается при подстановке 1ой переменной <img src='http://codefucker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> и даже при падении скорости при подстановке 4х переменных, общая производительность выше. Поэтому не ленитесь и пишите все строки сразу с 1ой кавычкой, тем более если нужно подставить всего 1ну переменную.<br />
 <a href="http://codefucker.com/php/php-quote-performance-test/#more-8" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/php/php-quote-performance-test/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP debug() функция</title>
		<link>http://codefucker.com/php/php-debug-function/</link>
		<comments>http://codefucker.com/php/php-debug-function/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 09:53:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[debug]]></category>

		<guid isPermaLink="false">http://codefucker.com/?p=5</guid>
		<description><![CDATA[Очень полезная и чесно пизженная функция с каментов на php.net с минимальными изменениями, помогает для отлова узких мест в скрипте и настройки производительности функций/методов
&#60;?php
function debug() {
   static $start_time = NULL;
   static $start_code_line = 0;

   $call_info = array_shift( debug_backtrace() );
   $code_line = $call_info['line'];
   $file = array_pop( [...]]]></description>
			<content:encoded><![CDATA[<p>Очень полезная и чесно пизженная функция с каментов на php.net с минимальными изменениями, помогает для отлова узких мест в скрипте и настройки производительности функций/методов</p>
<pre class="syntax-highlight:php">&lt;?php
function debug() {
   static $start_time = NULL;
   static $start_code_line = 0;

   $call_info = array_shift( debug_backtrace() );
   $code_line = $call_info['line'];
   $file = array_pop( explode('/', $call_info['file']));

   if( $start_time === NULL ) {
       print 'debug '.$file.'&gt; initialize'.&quot;\n&quot;;
       $start_time = time() + microtime();
       $start_code_line = $code_line;
       return 0;
   }

   printf('debug %s&gt; code-lines: %d-%d time: %.4f mem: %d/%d KB'.&quot;\n&quot;, $file, $start_code_line, $code_line, (time() + microtime() - $start_time), ceil(memory_get_usage()/1024), ceil(memory_get_usage(1)/1024));
   $start_time = time() + microtime();
   $start_code_line = $code_line;
}
?&gt;</pre>
<p> <a href="http://codefucker.com/php/php-debug-function/#more-5" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codefucker.com/php/php-debug-function/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
