<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://debugger.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://debugger.ru/feed.php">
        <title>Debugger.ru blog</title>
        <description></description>
        <link>http://debugger.ru/</link>
        <image rdf:resource="http://debugger.ru/lib/images/favicon.ico" />
       <dc:date>2012-03-01T11:51:05+04:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://debugger.ru/blog/100_jazykov_v_vk"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/32841_kljuch_xehsha_gecko1.8.1.16"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/50000_iteracij"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/avtorskoe_svidetelstvo_na_vk"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/biznes-ledi"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/bookmarkme_v0.5"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/bookmarkme_v0.6"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/bystraja_sortirovka_tablic"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/chudesnaja_razmetka"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/dobavlenie_skripta_v_html"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/eventsource_i_multiviews"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/gadzhet_virtualnoj_klaviatury"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/genialnyj_variant_redirekta"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/gorjachie_slova"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/gramotnyj_kod"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/izmenenie_ramki_selekta"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/kitajskij_kod"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/kod_studii_vsem_izvestnogo_ee_sozdatelja"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/konvertacija_fajla_v_associativnyj_massiv"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/koordinaty_vydelenija_v_textarea"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/krehsh-test_dlja_brauzera"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/nastrojka_avtorizacii_v_webdav_svn"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/ogranichenie_na_2_soedinenija_k_serveru"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/opera_event.keycode"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/opera_mail"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/osobennosti_obekta_new_option"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/parsing_js_v_ie7"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/patch_302_dlja_apt-proxy"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/perltimediff"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/pjatnashki_na_vba"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/plavnaja_podstvetka_teksta"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/pobeda_nad_svn_klientom"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/pop_smtp_cherez_ssh_tunnel"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/popytka_vzloma_servera_metodom_http-injection"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/prevju_teksta_s_html_tegami"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/remix_08"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/request_time"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/richedit_vk"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/script_v_opere"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/skript_podbora_cveta"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/smysl_interfejsov"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/spin_button"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/svn_websvn_https"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/varvarskoe_reshenie_problemy_apache_close_wait"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/virtualnaja_klaviatura_3.3.0b2"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/vychislenie_direktivy_alias"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/vychislenie_pikselnyx_koordinat_kursora"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/web_2.0"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/windatetime"/>
                <rdf:li rdf:resource="http://debugger.ru/blog/zheleznaja_logika_raschjotov"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://debugger.ru/lib/images/favicon.ico">
        <title>Debugger.ru</title>
        <link>http://debugger.ru/</link>
        <url>http://debugger.ru/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://debugger.ru/blog/100_jazykov_v_vk">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-11T20:10:02+04:00</dc:date>
        <title>100 языков в ВК</title>
        <link>http://debugger.ru/blog/100_jazykov_v_vk</link>
        <description>Прошлая неделя стала «юбилейной» в истории  Виртуальной Клавиатуры - преодолён рубеж в 100 языков (сейчас порядка 125) и 200 раскладок.

УРА!

virtualkeyboard</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/32841_kljuch_xehsha_gecko1.8.1.16">
        <dc:format>text/html</dc:format>
        <dc:date>2008-09-23T14:56:04+04:00</dc:date>
        <title>32841 ключ хэша Gecko1.8.1.16</title>
        <link>http://debugger.ru/blog/32841_kljuch_xehsha_gecko1.8.1.16</link>
        <description>Cтолкнулся с проблемой в Gecko: требуется подгрузить словарь большого размера, примерно 80000 полей, но все ключи начиная с 32841го меняются местами со значениями...</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/50000_iteracij">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-17T12:52:54+04:00</dc:date>
        <title>50000 итераций</title>
        <link>http://debugger.ru/blog/50000_iteracij</link>
        <description>На этот раз безвестный разработчик порадовал кодом поиска нужного окна.



x=0;
while(thewindow.toolbar == null)
{
//it's strange but sometimes this happens and we need to
for(i=0;i&lt;5;i++)
{
if(thewindow.name==&quot;view&quot;)
break;
thewindow=thewindow.parent;
}
x++;
if(x&gt;10000)
break;
}</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/avtorskoe_svidetelstvo_na_vk">
        <dc:format>text/html</dc:format>
        <dc:date>2009-02-25T16:57:26+04:00</dc:date>
        <title>Авторское свидетельство на ВК</title>
        <link>http://debugger.ru/blog/avtorskoe_svidetelstvo_na_vk</link>
        <description>Итак, это свершилось.
20.02.2009 была завершена регистрация Виртуальной клавиатуры в Роспатенте (ФСИС ).



	*  Илья Лебедев
	*  Konstantin Wiolowan

.

Прошу любить и жаловать ;-)</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/biznes-ledi">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-30T23:32:12+04:00</dc:date>
        <title>Бизнес-леди</title>
        <link>http://debugger.ru/blog/biznes-ledi</link>
        <description>Многочисленные за последние дни встречи с деловыми женщинами и размышления о прискорбной потере ими женственности оформились в виде:


	&quot; Женщине не свойственно иметь стальные яйца.&quot;</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/bookmarkme_v0.5">
        <dc:format>text/html</dc:format>
        <dc:date>2007-11-12T03:47:41+04:00</dc:date>
        <title>BookmarkMe v0.5</title>
        <link>http://debugger.ru/blog/bookmarkme_v0.5</link>
        <description>Плагин BookmarkMe для WokuWiki цепляет к статьям в вики тулбар с кнопками для сохранения ссылок на них на различных сайтах. Каждую кнопку можно показать/спрятать, выбрать страницы, где тулбар будет скрыт и т.д.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/bookmarkme_v0.6">
        <dc:format>text/html</dc:format>
        <dc:date>2007-11-16T06:59:09+04:00</dc:date>
        <title>BookmarkMe v0.6</title>
        <link>http://debugger.ru/blog/bookmarkme_v0.6</link>
        <description>Тулбар обновлён до версии 0.6, которая теперь поддерживает 46 различных способов сохранить закладку на страницу:

	*  del.icio.us
	*  Digg
	*  Furl
	*  Reddit
	*  Ask
	*  BlinkList
	*  blogmarks
	*  Blogg-Buzz
	*  Google
	*  Ma.gnolia
	*  Netscape
	*  ppnow
	*  Rojo
	*  Shadows
	*  Simpy
	*  Socializer
	*  Spurl
	*  StumbleUpon
	*  Tailrank
	*  Technorati
	*  Windows Live
	*  Wists
	*  Yahoo!
	*  BobrDobr
	*  Memori
	*  Faves (BlueDot)
	*  Add to Favorites (IE, FireFox, Opera compatible)
	*  Fac…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/bystraja_sortirovka_tablic">
        <dc:format>text/html</dc:format>
        <dc:date>2007-07-18T20:43:56+04:00</dc:date>
        <title>Быстрая сортировка таблиц</title>
        <link>http://debugger.ru/blog/bystraja_sortirovka_tablic</link>
        <description>История сего кода тянется уже некоторое время, начиная с момента когда меня нагрузили «общественной работой» по удовлетворению заказчика. Очень уж ему хотелось (да и сейчас он об этом просто мечтает) ускорить сортировку больших таблиц, более точно -- порядка 2000 строк и 2..10 столбцов.
Данные там лежат самого различного свойства, что не может не сказываться самым печальным образом на скорости.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/chudesnaja_razmetka">
        <dc:format>text/html</dc:format>
        <dc:date>2008-08-12T20:09:53+04:00</dc:date>
        <title>Чудесная разметка</title>
        <link>http://debugger.ru/blog/chudesnaja_razmetka</link>
        <description>Валерка поделился шикарным примером разметки:

[ несколько криво свёрстанная страница]

Такой прелести я давно не видел. Плюсиками отмечено то, что уже не открывается...</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/dobavlenie_skripta_v_html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-09-04T18:12:34+04:00</dc:date>
        <title>Добавление скрипта в HTML</title>
        <link>http://debugger.ru/blog/dobavlenie_skripta_v_html</link>
        <description>Как оказалось, явная вставка скрипта в HTML может понадобиться и в жизни. Хотя я и предпочитаю eval... Данное решение не претендует на полноту и правильность, поскольку ни один использованный дебаггер не увидел команду debugger в скрипте и не позволил поставить там точку останова.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/eventsource_i_multiviews">
        <dc:format>text/html</dc:format>
        <dc:date>2011-01-31T18:46:57+04:00</dc:date>
        <title>EventSource + MultiViews == 406 Not Accepted</title>
        <link>http://debugger.ru/blog/eventsource_i_multiviews</link>
        <description>В процессе разработки иногда приходится писать эмуляторы партнёрских систем, если доступа к ним нет. Сейчас мне пришлось работать над эмулятором, который должен был предоставлять API вида http://emulator/connectionPoint. Первой мыслью было использовать для этой цели фичу MultiViews, но выбор оказался неверен.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/gadzhet_virtualnoj_klaviatury">
        <dc:format>text/html</dc:format>
        <dc:date>2007-09-25T21:10:58+04:00</dc:date>
        <title>Гаджет виртуальной клавиатуры</title>
        <link>http://debugger.ru/blog/gadzhet_virtualnoj_klaviatury</link>
        <description>Дошли руки разобраться с Google Gadget API, нарисовать клавиатуру уменьшенного размера и собрать гаджет. Работает на персональной странице гугля, в Google Syndication.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/genialnyj_variant_redirekta">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-04T18:25:37+04:00</dc:date>
        <title>Гениальный вариант редиректа</title>
        <link>http://debugger.ru/blog/genialnyj_variant_redirekta</link>
        <description>В продукте одной широко известной в узких кругах компании я нарыл сей шедевр... По-моему - гениально. Орфография и стиль сохранены.


function onLoad()
{
var strUrl = new Object;
var strUrlString = 'target_url';
strUrl.src = strUrlString;
var targetWindow = null;
if (g_clientInfo.isBrowser(ClientInfo.MOZILLA))
{
var depth = 1;
if (depth&gt;3)
{
targetWindow=window;
}
else
{
targetWindow=window.parent;
}
}
else
{
targetWindow=window.parent;
}
navigateToURL(strUrl.src, &quot;returnForm&quot;, targetWindow);
}…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/gorjachie_slova">
        <dc:format>text/html</dc:format>
        <dc:date>2007-12-20T13:49:27+04:00</dc:date>
        <title>&quot;Горячие&quot; слова</title>
        <link>http://debugger.ru/blog/gorjachie_slova</link>
        <description>Иногда требуется повесить действие в документе не на кнопку, а на ввод последовательности символов. Эта задача решается достаточно просто:</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/gramotnyj_kod">
        <dc:format>text/html</dc:format>
        <dc:date>2007-02-09T17:16:48+04:00</dc:date>
        <title>Грамотный код</title>
        <link>http://debugger.ru/blog/gramotnyj_kod</link>
        <description>Грамотный код --- залог успеха. Этому принципу следуют разработчики большой американской компании.
Встречайте:



if (tc.isSortedCell())
    attr += &quot; class=sortedCell&quot;;
else if (tc.isSortedCellLeft())
    attr += &quot; class=sortedCell&quot;;
else if (tc.isSortedCellRight())
    attr += &quot; class=sortedCell&quot;;</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/izmenenie_ramki_selekta">
        <dc:format>text/html</dc:format>
        <dc:date>2008-02-02T11:51:44+04:00</dc:date>
        <title>Изменение рамки селекта</title>
        <link>http://debugger.ru/blog/izmenenie_ramki_selekta</link>
        <description>У IE всех версий (включая IE7) есть одна неприятная особенность: &lt;select&gt; имеет неизменяемую рамку. В принципе. Из-за этого приходится реализовывать задумки дизайнера используя эмуляторы селекта на JS, флеше и т.п.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/kitajskij_kod">
        <dc:format>text/html</dc:format>
        <dc:date>2007-01-29T19:05:07+04:00</dc:date>
        <title>(Ки)тайский код</title>
        <link>http://debugger.ru/blog/kitajskij_kod</link>
        <description>Копаясь на просторах инета в поисках раскладок и идей для проекта Виртуальная клавиатура я просматриваю довольно много кода. Иногда попадаются просто великолепные перлы</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/kod_studii_vsem_izvestnogo_ee_sozdatelja">
        <dc:format>text/html</dc:format>
        <dc:date>2007-02-16T21:00:39+04:00</dc:date>
        <title>Код студии всем известного ее создателя</title>
        <link>http://debugger.ru/blog/kod_studii_vsem_izvestnogo_ee_sozdatelja</link>
        <description>Спасибо Ильдару за ещё один перл в коллекцию










function ltrim(str)
{
   var whitespace = new String(&quot; \t\n\r&quot;);

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j &lt; i &amp;&amp; whitespace.indexOf(s.charAt(j)) != -1)
         j++;

      s = s.substring(j, i);
   }
   return s;
}

function rtrim(str)

{
   var whitespace = new String(&quot; \t\n\r&quot;);

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != …</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/konvertacija_fajla_v_associativnyj_massiv">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-05T18:33:03+04:00</dc:date>
        <title>Конвертация файла в ассоциативный массив</title>
        <link>http://debugger.ru/blog/konvertacija_fajla_v_associativnyj_massiv</link>
        <description>Небольшой сниппет, позволяющий достаточно просто разобрать файл в массив 'ключ' =&gt; 'значение'



  $src = (preg_split(&quot;/(\s|[\r\n])+/&quot;,file_get_contents(&quot;filename.ext&quot;)));
  $sk = $sv = array();
  while (list($sk[],$sv[]) = array_splice($src,0,2)){}
  $res = array_filter(array_combine($sk,$sv));</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/koordinaty_vydelenija_v_textarea">
        <dc:format>text/html</dc:format>
        <dc:date>2007-07-14T19:11:22+04:00</dc:date>
        <title>Координаты выделения в textarea</title>
        <link>http://debugger.ru/blog/koordinaty_vydelenija_v_textarea</link>
        <description>В InternetExplorer изначально заложена в работу с выделением возможность получить его пиксельные координаты. В Мозилле же это невозможно сделать в принципе, по причине несколько странной реализации. Было невозможно.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/krehsh-test_dlja_brauzera">
        <dc:format>text/html</dc:format>
        <dc:date>2007-12-16T18:11:14+04:00</dc:date>
        <title>Крэш-тест для браузера</title>
        <link>http://debugger.ru/blog/krehsh-test_dlja_brauzera</link>
        <description>Предлагаю всем желающим потестировать свои браузеры =) 

Скрипт рисует HSV карту цветов 360×200 пикселей (72000 узлов).

В моём случае:

	*  Safari3.0.3/Win32 отрабатывает полностью.
	*  IE7 справляется только частично, рисует 65535 узлов.
	*  Огнелис 2.0.11 уходит в астрал.
	*  Опера 9.23 работает секунд 10 и показывает пустую страницу.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/nastrojka_avtorizacii_v_webdav_svn">
        <dc:format>text/html</dc:format>
        <dc:date>2009-05-14T17:19:57+04:00</dc:date>
        <title>Настройка авторизации в WebDAV SVN</title>
        <link>http://debugger.ru/blog/nastrojka_avtorizacii_v_webdav_svn</link>
        <description>Процесс достаточно простой, для начала нужно добавить модули апача mod_dav и mod_dav_svn (установку которых оставим за рамками этой заметки). Настроить их загрузку при запуске Апача, примерно так:</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/ogranichenie_na_2_soedinenija_k_serveru">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-09T00:22:48+04:00</dc:date>
        <title>Ограничение на 2 соединения к серверу</title>
        <link>http://debugger.ru/blog/ogranichenie_na_2_soedinenija_k_serveru</link>
        <description>Про существование такого ограничения многие слышали, но на веру не принимали. На самом же деле оно существует.

RFC2616, раздел 8.1.4 говорит буквально следующее:</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/opera_event.keycode">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-06T15:53:11+04:00</dc:date>
        <title>Опера + event.keyCode</title>
        <link>http://debugger.ru/blog/opera_event.keycode</link>
        <description>Данное сочетание представляет собой один большой и неприятный глюк.
В соответствии со спецификацией, браузер обязан возвращать коды виртуальных кнопок. Они перечислены, например, в таблице Справочник Веб-разработчика. Приложение 18.
Даже Microsoft, любящий сделать всё по-своему, в IE придерживается этого стандарта.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/opera_mail">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-30T23:49:56+04:00</dc:date>
        <title>Opera mail</title>
        <link>http://debugger.ru/blog/opera_mail</link>
        <description>При миграции одной машины под Висту столкнулся с, как позже оказалось, достаточно известной проблемой - Опера начала писать

Store Init failed
Engine Init() failed
и отключать доступ к почте и чатам.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/osobennosti_obekta_new_option">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-06T15:52:59+04:00</dc:date>
        <title>Особенности объекта new Option</title>
        <link>http://debugger.ru/blog/osobennosti_obekta_new_option</link>
        <description>В ходе работы над Selectbox я обнаружил следующие интересные особенности:












	*  необычно работает splice на массиве из опций: 

var a = [new Option(1,2), new Option(2,3), new Option(3,4)]
alert(a.splice(1,1).text)</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/parsing_js_v_ie7">
        <dc:format>text/html</dc:format>
        <dc:date>2007-12-16T18:20:53+04:00</dc:date>
        <title>Парсинг JS в IE7</title>
        <link>http://debugger.ru/blog/parsing_js_v_ie7</link>
        <description>В IE7 есть бага с парсингом более чем ~720Кб скрипта: в консоли показывает «Syntax error».

Наткнулся на неё при использовании нескольких Ajax/JSON библиотек.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/patch_302_dlja_apt-proxy">
        <dc:format>text/html</dc:format>
        <dc:date>2008-11-12T17:28:10+04:00</dc:date>
        <title>Патч &quot;302&quot; для apt-proxy</title>
        <link>http://debugger.ru/blog/patch_302_dlja_apt-proxy</link>
        <description>Apt-proxy - кеширующее зеркало для различных серверов обновлений. Изначально он разрабатывался для зеркалирования Дебиановских обновлений, но может использоваться и в гораздо более широких пределах. В частности, сейчас у нас через него бегает касперский, эклипс, аптана и разные другие приложения, желающие обновляться через интернет.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/perltimediff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-04T12:56:41+04:00</dc:date>
        <title>Функция вывода разницы во времени</title>
        <link>http://debugger.ru/blog/perltimediff</link>
        <description>Часто на форумах встречается вопрос о реализации вывода разницы во времени в формате «количество дней, часов, минут и секунд». 

При анализе логов возникает необходимость вычислить разность времени между двумя событиями. Данная функция существенно сокращает получение требуемого результата. Функция реализована на Perl (однако весьма просто расширить ее функциональность и портировать на другие языки программирования) и имеет следующие возможности:…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/pjatnashki_na_vba">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-12T21:45:18+04:00</dc:date>
        <title>&quot;Пятнашки&quot; на VBA</title>
        <link>http://debugger.ru/blog/pjatnashki_na_vba</link>
        <description>Недавно пришлось за 2 часа освоить программирование на VBA - помогал племяннице сделать курсовик. Получилось такое вот безобразие, игра «Пятнадцать».

[Пятнашки]</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/plavnaja_podstvetka_teksta">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-19T23:48:42+04:00</dc:date>
        <title>Плавная подстветка текста</title>
        <link>http://debugger.ru/blog/plavnaja_podstvetka_teksta</link>
        <description>Небольшой скрипт написан по мотивам темы Плавное изменение цвета (значение color). на форуме dklab.ru. Захотелось доказать, что эффект подсветки легко реализуется одной функцией (в оригинале -- 14).</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/pobeda_nad_svn_klientom">
        <dc:format>text/html</dc:format>
        <dc:date>2007-01-18T16:18:03+04:00</dc:date>
        <title>Победа над SVN клиентом</title>
        <link>http://debugger.ru/blog/pobeda_nad_svn_klientom</link>
        <description>В заметке SVN, WebSVN, HTTPS я указывал на проблемы с получением архивов проектов по https.











В результате экспериментов я выяснил, что SVN просто не мог (или хотел) читать stdin и писать информацию о проблемах с self-signed сертификатами в stdout. Вместо этого, он сохранял её в /tmp.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/pop_smtp_cherez_ssh_tunnel">
        <dc:format>text/html</dc:format>
        <dc:date>2008-10-29T12:04:00+04:00</dc:date>
        <title>Доступ к pop/smtp через ssh туннель</title>
        <link>http://debugger.ru/blog/pop_smtp_cherez_ssh_tunnel</link>
        <description>Часто в корпоративных сетях любят закрывать pop/smtp. По разным причинам. Тем не менее, бывают ситуации, когда требуется доступ именно к стороннему ящику...</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/popytka_vzloma_servera_metodom_http-injection">
        <dc:format>text/html</dc:format>
        <dc:date>2008-02-29T18:02:59+04:00</dc:date>
        <title>Попытка взлома сервера методом http-injection</title>
        <link>http://debugger.ru/blog/popytka_vzloma_servera_metodom_http-injection</link>
        <description>Последнее время в логах всё больше появляется запросов вида



/task.php?task=http://www.hps-online.com/responder/templates/cmpl/%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/t.txt?






По результатам гугления и исследованиям, это попытка сломать сервер, на котором открыто чтение файлов по урлу (url_fopen).
Чаще всего, файл на удалённом сервере содержит…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/prevju_teksta_s_html_tegami">
        <dc:format>text/html</dc:format>
        <dc:date>2008-02-29T18:05:48+04:00</dc:date>
        <title>Превью текста с HTML тегами</title>
        <link>http://debugger.ru/blog/prevju_teksta_s_html_tegami</link>
        <description>При создании лент новостей, RSS, списка статей желательно показывать первые несколько предложений текста. Обычно эта задача решается путём удаления всех тегов и последующей обрезкой текста до нужной длины. Однако, при этом теряется вся стилистическая информация, часто имеющая смысл не меньший, чем сам текст.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/remix_08">
        <dc:format>text/html</dc:format>
        <dc:date>2008-06-01T16:28:16+04:00</dc:date>
        <title>ReMix'08</title>
        <link>http://debugger.ru/blog/remix_08</link>
        <description>C небольшой задержкой =) выкладываю свой отчёт о посещении ремикса.

Конференция проводилась в виде большого и красочного шоу в стиле Web2.0 с красивыми презентациями и отрепетированными ролями. Единственным отличием от телешоу было отсутствие фонограммы со смехом и аплодисментами. В целом, эта конференция проводилась скорее для повышения лояльности, нежели для обмена опытом.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/request_time">
        <dc:format>text/html</dc:format>
        <dc:date>2008-01-23T04:18:29+04:00</dc:date>
        <title>Удобная переменная $_SERVER['REQUEST_TIME']</title>
        <link>http://debugger.ru/blog/request_time</link>
        <description>В PHP существует глобальная переменная, доступная как в режиме модуля веб-сервера, так и в режиме командной строки - $_SERVER['REQUEST_TIME']. 
Согласно странице документации эта переменная хранит время старта скрипта и ее значение уникально. 
В связи с этим ее весьма удобно использовать в некоторых случаях.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/richedit_vk">
        <dc:format>text/html</dc:format>
        <dc:date>2007-10-06T00:51:16+04:00</dc:date>
        <title>RichEdit VK</title>
        <link>http://debugger.ru/blog/richedit_vk</link>
        <description>Вышла пре-релиз версия клавиатуры для rich-edit контролов. На данный момент прикручена к tinyMCE, в будущем сделаю и для других редакторов.

Тестовая версия: hxxp:debugger.ru/temp/vk/

Комментарии и багрепорты приветствуются.

~~DISCUSSION~~</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/script_v_opere">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-06T15:51:45+04:00</dc:date>
        <title> в Опере</title>
        <link>http://debugger.ru/blog/script_v_opere</link>
        <description>Отлаживая Виртуальная клавиатура в Опере я обнаружил новую её особенность: скрипты, подключаемые через document.write грузятся в синхронном режиме, соответственно останавливая выполнение основного скрипта. Параметр «defer» Опера игнорирует, хотя и декларирует совместимость с IE.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/skript_podbora_cveta">
        <dc:format>text/html</dc:format>
        <dc:date>2007-12-13T05:15:42+04:00</dc:date>
        <title>Скрипт подбора цвета</title>
        <link>http://debugger.ru/blog/skript_podbora_cveta</link>
        <description>Пришлось на днях поиграть с различными цветовыми пространствами и возникла идея сделать свой ColorPicker, поскольку качество существующий крайне не устраивало. В результате получилось очень симпатичное приложение, которое вполне можно использовать.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/smysl_interfejsov">
        <dc:format>text/html</dc:format>
        <dc:date>2008-06-27T16:53:14+04:00</dc:date>
        <title>Смысл интерфейсов</title>
        <link>http://debugger.ru/blog/smysl_interfejsov</link>
        <description>Объясняя на днях смысл классов «на пальцах» я вспомнил  тему на форуме DKLab и придумал такую аналогию:

Есть класс Автомобиль.

Есть интерфейсы Правый_руль и Левый_руль, наследующие интерфейс Рулевое_управление.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/spin_button">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-06T15:52:41+04:00</dc:date>
        <title>Spin button</title>
        <link>http://debugger.ru/blog/spin_button</link>
        <description>Попросил меня приятель подсказать самый простой скрипт крутящегося счётчика, искать было лень...














    &lt;input name='tgt' id='tgt' size='4' type=&quot;text&quot; value=&quot;1&quot; /&gt;
    &lt;input type=&quot;button&quot; id=&quot;up&quot; value=&quot;&amp;#1640;&quot; /&gt;
    &lt;input type=&quot;button&quot; id=&quot;dn&quot; value=&quot;&amp;#1639;&quot; /&gt;
    &lt;script type=&quot;text/javascript&quot;&gt;
      var interval = null
         ,up = document.getElementById('up')
         ,dn = document.getElementById('dn')
         ,tgt = document.getElementById('tgt');
      
      up.onmo…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/svn_websvn_https">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-06T15:52:26+04:00</dc:date>
        <title>SVN, WebSVN, HTTPS</title>
        <link>http://debugger.ru/blog/svn_websvn_https</link>
        <description>Сегодня я столкнулся с неприятной проблемой при использовании SVN: оказывается, он не дружит с HTTPS, когда запущен из-под PHP.
Не важно, используется shell_exec, exec или что-либо ещё, но запуск svn export &lt;https://.&gt;.. заканчивается полным провалом. Ещё более странным выглядит поведение svn при попытке запустить его в бэкграунде - он просто тихо там умирает.…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/varvarskoe_reshenie_problemy_apache_close_wait">
        <dc:format>text/html</dc:format>
        <dc:date>2012-02-23T13:01:55+04:00</dc:date>
        <title>Варварское решение проблемы Apache+CLOSE_WAIT</title>
        <link>http://debugger.ru/blog/varvarskoe_reshenie_problemy_apache_close_wait</link>
        <description>На днях столкнулся с  достаточно популярной проблемой съедания Апачем всех ресурсов с дальнейшим отказом в обслуживании. Как и в аналогичных случаях, netstat -a показывал десятки CLOSE_WAIT соединений.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/virtualnaja_klaviatura_3.3.0b2">
        <dc:format>text/html</dc:format>
        <dc:date>2007-11-19T12:51:09+04:00</dc:date>
        <title>Виртуальная клавиатура 3.3.0b2</title>
        <link>http://debugger.ru/blog/virtualnaja_klaviatura_3.3.0b2</link>
        <description>Вышел новый релиз  Виртуальной клавиатуры, теперь с плагинами для TinyMCE v3 и Xinha.

В этом релизе исправлены некоторые баги, мешавшие нормально работать с клавиатурой при переключении между полями ввода и нажатии некоторых кнопок на реальной клавиатуре.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/vychislenie_direktivy_alias">
        <dc:format>text/html</dc:format>
        <dc:date>2008-05-27T00:46:59+04:00</dc:date>
        <title>Вычисление директивы Alias</title>
        <link>http://debugger.ru/blog/vychislenie_direktivy_alias</link>
        <description>Потребовалось определить, в какой каталог сайта скрипт был подключен посредством директивы Alias.








Поскольку PHP не поддерживает такой функционал, был написан такой сниппет:</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/vychislenie_pikselnyx_koordinat_kursora">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-06T15:52:05+04:00</dc:date>
        <title>Вычисление пиксельных координат курсора</title>
        <link>http://debugger.ru/blog/vychislenie_pikselnyx_koordinat_kursora</link>
        <description>При работе над проектом »Виртуальная клавиатура» понадобилась возможность вычисления положения курсора в поле ввода для позиционирования подсказки. Задача решается относительно просто, но достаточно извращённым способом.</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/web_2.0">
        <dc:format>text/html</dc:format>
        <dc:date>2008-08-14T15:39:44+04:00</dc:date>
        <title>web 2.0</title>
        <link>http://debugger.ru/blog/web_2.0</link>
        <description>Герой дня сегодняшнего - web 2.0 решение для корпоративных заказчиков. Встречайте:
[Web 2.0]

Современные фреймворки нервно курят в сторонке... 8*)</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/windatetime">
        <dc:format>text/html</dc:format>
        <dc:date>2010-01-21T18:25:33+04:00</dc:date>
        <title>Дата и время в имени файла (подстановка стандартными средствами командной строки Windows)</title>
        <link>http://debugger.ru/blog/windatetime</link>
        <description>На странице описывается, как можно ТОЛЬКО средствами командного интерпретатора включить в имя файла текущие дату или время. 
На примере создания jar-файла было показано как можно это выполнить. Были подробно рассмотрены все шаги. 
В свете текущей заметки прежнее решение можно считать длинным и громоздким:…</description>
    </item>
    <item rdf:about="http://debugger.ru/blog/zheleznaja_logika_raschjotov">
        <dc:format>text/html</dc:format>
        <dc:date>2007-03-16T15:09:27+04:00</dc:date>
        <title>Железная логика расчётов</title>
        <link>http://debugger.ru/blog/zheleznaja_logika_raschjotov</link>
        <description>Находки в коде продолжаются. Сегодня зажигает Латвия:



// Считаем на сколько сдвинуть картинку по ВЫСОТЕ
if(($hhh=($newheight-$cropheight)/2) &gt;= 0){
    $hhh = $hhh-$hhh-$hhh;
}else{
    $hhh = $hhh-($hhh*2);
}</description>
    </item>
</rdf:RDF>

