<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8221890338383304045</id><updated>2012-01-30T12:09:46.399+04:00</updated><category term='математика'/><category term='javascript'/><category term='графическая эстетика'/><category term='mysql'/><category term='jabber'/><category term='html5'/><category term='игры'/><category term='php'/><category term='ajax'/><category term='лев'/><category term='языки'/><category term='yslt'/><category term='sqlite'/><category term='превед'/><category term='теория программирования'/><category term='xslt'/><category term='социум'/><category term='yandex'/><category term='шаблоны'/><category term='ie'/><category term='mvc'/><category term='мои рисунки'/><category term='firefox'/><category term='hello world'/><category term='sql'/><category term='doctype'/><category term='video'/><category term='животные'/><category term='деревья'/><category term='xss'/><category term='^_^'/><category term='фото'/><category term='mozilla'/><category term='xhtml'/><category term='mojura'/><category term='usability'/><category term='opera'/><category term='google'/><category term='форум'/><title type='text'>БЛОГНОТ</title><subtitle type='html'>SKIS! &lt;br/&gt;
(Stupid, Keep It Simple!) &lt;br/&gt;
Проще надо быть, товарищи!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-4775408926168853340</id><published>2008-07-10T17:40:00.002+04:00</published><updated>2008-07-10T17:46:36.609+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>сладкий функциональный макрос в яваскрипт</title><content type='html'>как известно, создавать на яваскрипте короткие инлайн колбэк функции - не слишком приятное занятие - получается много кода со множеством скобочек.&lt;br /&gt;&lt;br /&gt;приведу классический пример:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Array.prototype.each= function( callback ){&lt;br /&gt;    for( var i= 0, len= this.length; i &lt; len; ++i )&lt;br /&gt;        callback.call( this, this[ i ], i );&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var summ= 0;&lt;br /&gt;[-1,1,2,3].each( function( val, key ){ summ+= val } );&lt;br /&gt;alert( summ );&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;тут в метод итерирования передаётся функция замкнутая на текущий контекст, которая должна выполнить нужные нам операции для каждого элемента массива. довольно многословно, не правда ли? было бы замечательно хотябы сделать короткий алиас для ключевого слова function, но яваскрипт ничего такого не позволяет -_-&lt;br /&gt;&lt;br /&gt;единственное возможное решение в таком случае - использовать какой-либо препроцессор. но завязываться на серверную или оффлайновую предобработку  как-то не очень хочется. а если помещать код в яваскрипт в виде строки, то мы теряем подсветку синтаксиса. тобишь необработанный код должен сохранять синтаксическую совместимость с яваскриптом.&lt;br /&gt;&lt;br /&gt;что ж, решение есть и довольно красивое... вот простая функция, динамически меняющая исходный код переданной в качестве аргумента функции:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var $func= function( func ){&lt;br /&gt;    eval(&lt;br /&gt;        'func=' + String( func )&lt;br /&gt;        .replace( /\{\$:/g, 'function($){return ' )&lt;br /&gt;    );&lt;br /&gt;    return func;&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;а вот пример использования:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$func( function( ){&lt;br /&gt;&lt;br /&gt;Array.prototype.each= function( callback ){&lt;br /&gt;    for( var i= 0, len= this.length; i &lt; len; ++i )&lt;br /&gt;        callback.call( this, { key: i, val: this[ i ] } );&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var summ= 0;&lt;br /&gt;&lt;strong&gt;[-1,1,2,3].each( {$: summ+= $.val } );&lt;/strong&gt;&lt;br /&gt;alert( summ );&lt;br /&gt;&lt;br /&gt;})();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;тут весь код приложения засовывается в функцию, пропускается через препроцессор и потом исполняется. при этом внутри можно создавать инлайн-функции используя простой и элегантный синтаксис:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;{$: /* какой-то код,&lt;br /&gt;результат выполнения которого будет возвращён функцией */ }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-4775408926168853340?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/4775408926168853340/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=4775408926168853340' title='Комментарии: 18'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4775408926168853340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4775408926168853340'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2008/07/blog-post.html' title='сладкий функциональный макрос в яваскрипт'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-4102729985712225598</id><published>2008-02-10T01:19:00.000+03:00</published><updated>2008-02-10T02:19:51.608+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='игры'/><title type='text'>Игровая индустрия не мертва!</title><content type='html'>Valve не перестаёт радовать. Если не брать в расчёт "эпизодовую жевачку", то все их игры отменного качества. Это прежде всего ремейки таких хитов как Half Life и Counter Strike. Недавно к ним довились Team Fortress 2 и Portal. О последнем и пойдёт сегодня речь...&lt;br /&gt;&lt;br /&gt;Жанр этого чуда - квест. Трёхмерный квест со совершенно новым геймплеем. Я вообще не люблю квесты, ибо они в массе своей скучны и однообразны. Но этот я прошёл аж два раза на одном дыхании (второй раз - закрепляя навыки и читая комменты разработчиков).&lt;br /&gt;&lt;br /&gt;Отлично продуманные, разнообразные уровни. Харизматичный сумасшедший искуственный интеллект. Футуристичная атмосфера, приправленная изрядной долей фарса. Ну и конечно же - многочисленные физические головоломки с использованием порталов.&lt;br /&gt;&lt;br /&gt;Отдельно хочется отметить &lt;a href="http://dark-demon.1000mb.ru/file/47/3980_01_Still_Alive.mp3"&gt;эндинг&lt;/a&gt; - пипец какая кавайная песенка. Вот бы и остальные оперные певицы забили на свою лажу и начали бы петь нормальные песни. Но нет, обладательницы красивых голосов поют какую-то фигню, а хорошие песни поют обычно кто-попало.&lt;br /&gt;&lt;br /&gt;Порталы - редкостная игра сделанная, как говорится, с душой и качественно. Вальве большущий респект за то, что не побоялись вложить бабки в столь смелый проект!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-4102729985712225598?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/4102729985712225598/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=4102729985712225598' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4102729985712225598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4102729985712225598'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2008/02/blog-post.html' title='Игровая индустрия не мертва!'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-7201359053654674248</id><published>2008-01-25T16:17:00.000+03:00</published><updated>2008-01-25T16:20:45.121+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='социум'/><title type='text'>Зомби</title><content type='html'>Сегодня речь пойдёт о "зомби" или, говоря псевдонаучным языком, "человек непроснувшийся, но двигающийся в направлении работы".&lt;br /&gt;&lt;br /&gt;Так вот, каждый рабочий день я наблюдаю следующую картину: у входа на эскалатор стоит толпа зомби, каждый из которых терпеливо ждёт своей очереди вступить на бегущие вниз ступеньки.&lt;br /&gt;&lt;br /&gt;Вы думаете пропускной способности эскалатора недостаточно, чтобы их всех разместить? Как бы не так! Все они ждут своей очереди вступить лишь на правую сторону ступеньки. Левая же сторона остаётся на многие метры пуста. Если бы зомби распределялись по обоим сторонам равномерно - не было бы этой давки перед эскалатором. При этом по громкоговорителю периодически объявляют: "вставайте на обе стороны, не создавайте пробок", - но зомби, естественно это не слышат...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-7201359053654674248?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/7201359053654674248/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=7201359053654674248' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7201359053654674248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7201359053654674248'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2008/01/blog-post_25.html' title='Зомби'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-6164866423479779816</id><published>2008-01-16T11:25:00.003+03:00</published><updated>2008-06-14T23:55:27.966+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><category scheme='http://www.blogger.com/atom/ns#' term='opera'/><category scheme='http://www.blogger.com/atom/ns#' term='xslt'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Подводные грабли XSLT</title><content type='html'>Наверняка каждый, кто пытался заюзать клиентскую шаблонизацию посредством xslt сталкивался с неадэкватным поведением некоторых браузеров. Многие просто поворачивали назад, но некоторые продолжали упорно искать лазейки для написания кроссбраузерных приложений.&lt;br /&gt;&lt;br /&gt;Тут я приведу основные грабли на которые я напоролся и способы их обхода.&lt;br /&gt;&lt;br /&gt;1. в мозилле не работает &lt;span style="font-style: italic;"&gt;xsl:disable-output-escaping&lt;/span&gt;, то есть нельзя трансформировать текст в xml, что в некоторых случаях весьма удобно. в противоположность этому xslt не поддерживает сериализацию в текст, что тоже было бы удобно. в обоих случаях приходится либо на сервере нужным образом подготавливать данные, либо писать нетривиальные шаблоны для трансформации.&lt;br /&gt;&lt;br /&gt;2. в ие нельзя указывать &lt;span style="font-style: italic;"&gt;xsl:method="xml"&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;xsl:output method="xml"&gt;&lt;/xsl:output&gt;&lt;/span&gt; ибо тогда к выходному xml-лю будет дописан xml-декларация (да, omit-xml-declaration он игнорирует ), что приводит к переводу ие в режим совместимости с древними глючными версиями. то есть метод должен быть только "html"&lt;br /&gt;&lt;br /&gt;3. однако, если указать &lt;span style="font-style: italic;"&gt;xsl:method="html"&lt;/span&gt;, то в опере перестают работать формы o_0. точнее, они работают, но не посылают ни одного поля. исследования показали, поля ввода по неизвестной причине просто не привязываются к форме. причина оказалась в &lt;a href="http://www.whatwg.org/specs/web-forms/current-work/#formAttribute"&gt;web forms 2.0&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;Setting an element's form attribute to the empty string (or to a string consisting only of IDs that do not correctly identify form elements) just disassociates the form control from its form, leaving it unassociated with any form.&lt;/blockquote&gt;и опера, как на зло, воспринимает неустановленный атрибут "form" как установленный в значение "пустая строка". вывод - нужно задать форме идентификатор, а всем полям - атрибут form с тем же значением. уже второй раз напарываюсь на этот кривой html5.0 (слоган которого - "обратная совместимость - наше всё") и его не менее кривую реализацию в опере (-_-)&lt;br /&gt;&lt;br /&gt;4. &lt;span style="font-style: italic;"&gt;xsl:fallback&lt;/span&gt; не поддерживает ни один браузер, хотя его-то нужно было бы реализовать в первую очередь! Впрочем, внутри шаблонов можно по старинке &lt;a href="http://developer.mozilla.org/en/docs/XSL_Transformations_in_Mozilla_FAQ#What_about_document.write.3F"&gt;фильтровать браузеры&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;5. бойтесь вгружать xml+xslt в элемент iframe и делать "рефрэш страницы" - мозилле от этого становится очень грустно и она делает себе сэпукку. это довольно древний баг, который до сих пор так никто и не удосужился исправить. вместо ифрейма можно использовать object, правда у него есть некоторые косяки в ие...&lt;br /&gt;&lt;br /&gt;upd: ко мне тут пришла гениально простая мысль ^_^ можно использовать method="xml", а ие переводить в режим соответствия стандартам простеньким скриптом:&lt;br /&gt;&lt;pre&gt;window.onload= function(){&lt;br /&gt;    var html= document.documentElement.outerHTML;&lt;br /&gt;    if( html &amp;&amp; ( document.compatMode == 'BackCompat' ) ) &lt;br /&gt;        document.write( '&amp;lt;!DOCTYPE html&amp;gt;\n' + html );&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-6164866423479779816?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/6164866423479779816/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=6164866423479779816' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6164866423479779816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6164866423479779816'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2008/01/blog-post.html' title='Подводные грабли XSLT'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-4828580465594280070</id><published>2007-11-26T19:05:00.000+03:00</published><updated>2007-11-26T21:11:27.019+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>что может быть хуже чем показывать и смотреть рекламу? отлавливать в ней ошибки!</title><content type='html'>повесили на один сайт google adsense. в мозилле, опере всё пучком, а ИЕ что-то кортачится - ничего не показывает кроме ошибок: "незавершённая строковая константа" и "недопустимый символ". в качестве адреса указывает нашу страницу. номер строки и символа - циркулирует между пятком вариантов.&lt;br /&gt;&lt;br /&gt;если бы эта проблема наблюдалась только в мозилле - я бы взял огнебаг, да отдебажил по самое небалуйся, но под ИЕ, к сожалению, ничего подобного нет (-_-) причём ошибка выскакивала только в шестом ИЕ. седьмой же - не возникал и спосойно отображал рекламу. правда русские буквы он отображал исключительно вопросительными знаками. сначала я не обратил на это особого внимания, но как потом оказалось - зря.&lt;br /&gt;&lt;br /&gt;страницы у нас отдаются в utf-8, но гугол свою рекламу почему-то отдаёт в windows-1251. подозреваю он определяет язык (по региону или по http-заголовку, не суть в общем) в соответствии с ним отбирает объявления (из 6 ссылок 1-2 на русском языке) и по неизвестной причине выбирает кодировку 1251. ие в заголовках её не запрашивает, исходная страница в utf-8, видимо гугол просто для русского языка по дефолту шлёт 1251 и тем самым совершенно не учитывает поведение детища мелкософта - эта мохнатая скотина плевать хотела на http-заголовки подгружаемого яваскрипта. ие при загрузке скриптов и стилей устанавливает для них ту же кодировку, что и на странице для которой они загружаются. как следствие, ие думал, что подгружаемый гуглоскрипт с рекламными данными был в кодировке utf-8 и встретив там русские буквы, которые не входят в ASCII-7, получал совершенно невообразимые коды символов.&lt;br /&gt;&lt;br /&gt;как обойти такое поведение ИЕ? да очень просто! есть два варианта:&lt;br /&gt;1. отдавать скрипты в той же кодировке, что и исходная страница.&lt;br /&gt;2. указать в тэге &amp;lt;script&amp;gt; атрибут charset содержащий код нужной кодировки.&lt;br /&gt;если меня читают товарищи из гугла, то в &lt;a href="http://www.google.com/afsonline/show_afs_ads.js"&gt;этот их скрипт&lt;/a&gt; нужно добавить:&lt;br /&gt;&lt;pre&gt;document.write('&amp;lt;script language="JavaScript1.1" &lt;br /&gt;&lt;strong&gt;charset="windows-1251"&lt;/strong&gt; src="'+c+'"&amp;gt;&amp;lt;\/script&amp;gt;')&lt;/pre&gt; естественно вместо "windows-1251" нужно подставить ту кодировку в которой собираемся грузить данные.&lt;br /&gt;&lt;br /&gt;да, и отдельное спасибо за то, что мне пришлось копаться в этой лапше (-_-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-4828580465594280070?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/4828580465594280070/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=4828580465594280070' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4828580465594280070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4828580465594280070'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/11/blog-post_26.html' title='что может быть хуже чем показывать и смотреть рекламу? отлавливать в ней ошибки!'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-504356175467512490</id><published>2007-11-08T12:18:00.001+03:00</published><updated>2007-11-08T12:30:37.871+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jabber'/><title type='text'>Ещё несколько жаббер ботов</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;b&gt;imified{нэко}imified{нэзу}com &lt;/b&gt; - этот бот много чего умеет. в частности, через него я сейчас пишу этот пост в блог. сбылась мечта идиота ^_^&lt;br /&gt;сразу после регистрации у вас появляются виджеты "заметки", "напоминания" и "планировщик", но ткните на пункт "My Account" и бот выдаст вам ссылку пройдя по которой вы сможете настроить ваш аккаунт - выбрать те виджеты, которыми вы хотите пользоваться.&lt;br /&gt;&lt;br /&gt;семейство ботов disk.jabbim.cz:&lt;br /&gt;&lt;b&gt;private{нэко}disk{нэзу}jabbim{нэзу}cz&lt;/b&gt; - приватное файлохранилище&lt;br /&gt;  &lt;/div&gt;&lt;b&gt;public{нэко}disk{нэзу}jabbim{нэзу}cz&lt;/b&gt; - публичное файлохранилище&lt;br /&gt;&lt;b&gt;album{нэко}disk{нэзу}jabbim{нэзу}cz&lt;/b&gt; - веб-альбом&lt;br /&gt;общий объём - 50мб. не густо, но например для быстрой публикации скриншотов должно хватить.&lt;br /&gt;публичные файлы доступны по адресу вида: http://disk.jabbim.cz/jabberID/&lt;br /&gt;альбом располагается по адресу вида: http://album.jabbim.cz/jabberID/&lt;br /&gt;, где вместо jabberID нужно подставить ваш jabberID ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-504356175467512490?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/504356175467512490/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=504356175467512490' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/504356175467512490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/504356175467512490'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/11/blog-post_08.html' title='Ещё несколько жаббер ботов'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-1997850391399255750</id><published>2007-11-05T00:19:00.000+03:00</published><updated>2007-11-05T00:26:24.836+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='^_^'/><title type='text'>Вы читаете машина переведена страницу</title><content type='html'>блуждая по всемирной помойке наткнулся на статью написанную корявым языком. то, что переведено автоматом это понятно, совсем убила приписка в конце:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;&lt;span style="color:red;"&gt;&lt;strong&gt;ВАЖНО:&lt;/strong&gt;&lt;/span&gt; Вы читаете машина переведена страницу, которая предоставляется "как есть" без гарантии.&lt;/span&gt;&lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt; В отличие от человеческого перевода, машинный перевод не понимает грамматика, семантика, синтаксис, идиомы на естественном языке, что часто приводят неточные и низкое качество текста, который вводит в заблуждение и непонятным.&lt;/span&gt; &lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;&lt;span class="google-src-text" style="direction: ltr; text-align: left;"&gt;&lt;/span&gt; Таким образом, обратитесь &lt;/span&gt;&lt;a href="http://www.mydigitallife.info/2007/03/16/samsung-sph-9000-new-mobile-wimax-gadget/"&gt;&lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;&lt;span class="google-src-text" style="direction: ltr; text-align: left;"&gt;&lt;/span&gt; оригинальный английский статью&lt;/span&gt;&lt;/a&gt;&lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;, когда сомнения.&lt;/span&gt;&lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;&lt;span class="google-src-text" style="direction: ltr; text-align: left;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;&lt;span class="google-src-text" style="direction: ltr; text-align: left;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span onmouseover="_tipon(this)" onmouseout="_tipoff()"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-1997850391399255750?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/1997850391399255750/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=1997850391399255750' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/1997850391399255750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/1997850391399255750'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/11/blog-post.html' title='Вы читаете машина переведена страницу'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-7800870844594846025</id><published>2007-10-30T18:57:00.000+03:00</published><updated>2007-10-30T19:05:08.241+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><title type='text'>операция прервана высшими силами</title><content type='html'>недавно столкнулся с такой проблемой в IE: при переходе на следующую страницу он выдаёт алерт "не удалось открыть узел... операция прервана" и отказывается грузить страницу. ctrl+f5 обычно спасает положение. так и не понял почему это происходит, но связано это с тем, что скрипт пытается работать с dom в то время как его уже/ещё не существует.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-7800870844594846025?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/7800870844594846025/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=7800870844594846025' title='Комментарии: 12'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7800870844594846025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7800870844594846025'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/10/blog-post_30.html' title='операция прервана высшими силами'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-432587402328195222</id><published>2007-10-27T12:44:00.000+04:00</published><updated>2007-11-04T17:03:45.934+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='теория программирования'/><title type='text'>объекты, хэш-таблицы и яваскрипт</title><content type='html'>как известно, всё в яваскрипт является объектами.&lt;br /&gt;&lt;br /&gt;"как это всё?" - спросит подкованный читатель, - "а как же примитивные типы?"&lt;br /&gt;а примитивные типы - тоже объекты, только несколько иные...&lt;br /&gt;&lt;br /&gt;разберёмся с терминологией:&lt;br /&gt;&lt;a href="http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29"&gt;объект&lt;/a&gt; - понятие довольно абстрактное, означающее "некая сущность обладающая состоянием и поведением".&lt;br /&gt;примитивные типы в яваскрипте безусловно обладают и состоянием (собственно значение) и поведением (методы, которые они наследуют от своего прототипа)&lt;br /&gt;&lt;br /&gt;пытливый читатель может тут возразить, что на самом деле в случае вызова метода примитивный тип просто конвертится в объект, который уже наследует методы. и будет прав! но это не отменяет того факта, что метод-то мы вызываем для переменной содержащей примитивное значение и от состояния этого значения может быть вызван разный метод и дать, соответственно, разный результат.&lt;br /&gt;&lt;br /&gt;каждый примитивный тип имеет своё уникальное поведение:  при попытке доступа к полям они конвертятся в свои типы объектов и наследуют соответствующий набор полей от прототипа. значит примитивные типы - тоже объекты.&lt;br /&gt;&lt;br /&gt;но что в них такого особенного?&lt;br /&gt;&lt;br /&gt;в отличие от остальных объектов примитивне объекты не являются хэш-таблицами, то есть их состояние определяется одним единственным безымянным полем. им нельзя добавить дополнительных полей (в том числе и содержащих функции), но они  могут отнаследовать их от прототипа. для доступа к полям при этом используется скрытый автоматически создаваемый объект-посредник, ибо примитивные объекты не могут иметь именованных полей.&lt;br /&gt;&lt;br /&gt;основной недостаток яваскрипта заключается в том, что переменная this внутри методов указывает на объект-посредник, а не на примитивный объект, в результате чего внутри метода мы не можем узнать является ли объект, в контексте которого происходит вызов, самостоятельным объектом или объектом-посредником. а это бывает важно в свете того, что передача полноценных объектов происходит по ссылке, а примитивных - по значению.&lt;br /&gt;&lt;br /&gt;ps: вот что действительно не является объектами, так это значения null и undefined. и это очень печально (-_-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-432587402328195222?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/432587402328195222/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=432587402328195222' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/432587402328195222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/432587402328195222'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/10/blog-post_27.html' title='объекты, хэш-таблицы и яваскрипт'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-3285972384238376447</id><published>2007-10-21T20:31:00.000+04:00</published><updated>2007-10-21T21:20:52.364+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='шаблоны'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='xslt'/><title type='text'>светлое будущее, наконец, наступило!</title><content type='html'>помните, с чего началась вся эта эпопея с xml, xsl, xhtml и прочими иксами?&lt;br /&gt;&lt;br /&gt;сначала был html, представляющий из себя кашу из данных, оформления и поведения.&lt;br /&gt;потом появились такие технологии как css и javascript, которые позволяли отделить от данных оформление и поведение, но в данных всё-равно оставалось много мусора - семантически незначимых конструкций, а представлять данные требовалось так как их может воспринять браузер - ограничиваясь весьма жёсткими рамками html.&lt;br /&gt;&lt;br /&gt;тогда появился xml - формат не накладывающий ограничений на структуру данных. в нём можно использовать свои тэги, вкладывать так как считаешь правильным и многое другое.&lt;br /&gt;естественно, браузеру всё-таки надо было объяснить как эти данные следует отображать. css был недостаточно функционален для отображения произвольных данных, поэтому был разработан xsl, который весьма прохладно был воспринят создателями браузеров. тем не менее, его младшему брату xslt повезло больше: ввиду того, что он не требует переписывать весь браузерный движок, а выступает в качестве посредника, трансформирующего исходный xml в  html уже понятный браузеру, его поддержка довольно быстро появилась в ИЕ, мозилле и сафари - основной троице браузерных движков. последней, сравнительно недавно, к ним подключилась и опера (девятая версия).&lt;br /&gt;&lt;br /&gt;что мы получили в итоге? получили мы возможность на запрос клиента отдавать только данные в удобной нам форме. если браузер не знает что эти данные означают - он качает xslt и трансформирует их в xhtml. если он не знает как они должны выглядеть - качает css и показывает. если же он не знает как они должны себя вести - качает javascript. xslt, css и javascript качаются один раз и оседают в кэше. при каждом запросе передаётся только экстакт данных в формате xml.&lt;br /&gt;&lt;br /&gt;более-менее продвинутый читатель, наверно, уже заметил, что формирование xml ничем принципиально не отличается от формирования html. отчасти это так. если мы формируем документ-ориентированный xml, то придётся вручную вставлять данные в нужные места. но, если наша цель - формирование xml ориентированного на данные, то его формирование можно возложить на автоматику, которая преобразует родные для языка программирования объекты в неродное xml дерево.&lt;br /&gt;&lt;br /&gt;чтобы не быть голословным, предлагаю реализацию на php: &lt;pre&gt;function native2xml( $var, $name='root' ){&lt;br /&gt;  $xml= '';&lt;br /&gt;  if( is_object( $var ) || is_array( $var ) ):&lt;br /&gt;      foreach( $var as $n =&gt; $v )&lt;br /&gt;          $xml.= native2xml( $v, $n );&lt;br /&gt;  else:&lt;br /&gt;      $xml= htmlspecialchars( $var, ENT_NOQUOTES, 'UTF-8' );&lt;br /&gt;  endif;&lt;br /&gt;  if( is_numeric( $name ) ) $name= 'item';&lt;br /&gt;  return '&lt;'.$name.'&gt;'.$xml.'&lt;!--'.$name.'--&gt;';&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;просто передайте этой функции дерево объектов и получите на выходе xml-строку.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tenshi.jino-net.ru/xslt-forms/"&gt;тут&lt;/a&gt; вы можете скачать рабочий пример, демонстрирующий вывод формы и локализацию основанную на xslt (приглядитесь, в xml пересылаются английские фразы, но отображаются они в браузере на русском языке).&lt;br /&gt;&lt;br /&gt;из минусов такого подхода:&lt;br /&gt;1. мы ограничиваемся исключительно языком xslt, о недостатках которого я уже писал.&lt;br /&gt;2. для поисковиков и устаревших браузеров нужно производить эти трансформации на сервере.&lt;br /&gt;&lt;br /&gt;есть ещё два варианта "объяснения" браузеру как работать с данными:&lt;br /&gt;1. javascript - трансформирование с его помощью - редкостный изврат.&lt;br /&gt;2. &lt;a href="http://www.blogger.com/a.org/wiki/Web_Ontology_Language"&gt;OWL&lt;/a&gt; - очень мощная технология, но на данный момент никем не поддерживаемая. есть подозрение, что её ждёт та же учесть, что и XSL (-_-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-3285972384238376447?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/3285972384238376447/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=3285972384238376447' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/3285972384238376447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/3285972384238376447'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/10/blog-post_1154.html' title='светлое будущее, наконец, наступило!'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-5291564605918112064</id><published>2007-10-19T20:26:00.000+04:00</published><updated>2007-10-19T21:46:40.937+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='шаблоны'/><category scheme='http://www.blogger.com/atom/ns#' term='yslt'/><title type='text'>YSLT - продолжение идей XSLT</title><content type='html'>XSLT - самый мощный язык шаблонов, но в нём есть несколько недостатков:&lt;br /&gt;1. нельзя вкладывать шаблоны друг в друга. всё равно, что при программировании пользоваться исключительно глобальными переменными. рано или поздно начинаются конфликты, при большом числе шаблонов сложно отслеживать какой где используется.&lt;br /&gt;2. нельзя использовать xpath для вывода информации в текстовые узлы. точнее можно, но довольно громоздкой конструкцией.&lt;br /&gt;&lt;br /&gt;для решения этих и других проблем я надумал сообразить свой темплейтный движок с идеологией схожей с xslt.&lt;br /&gt;наглядный пример можно найти по этой ссылке: &lt;a href="http://phpclub.ru/talk/showthread.php?postid=752263#post752263"&gt;http://phpclub.ru/talk/showthread.php?postid=752263#post752263&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-5291564605918112064?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/5291564605918112064/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=5291564605918112064' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5291564605918112064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5291564605918112064'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/10/yslt-xslt.html' title='YSLT - продолжение идей XSLT'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-5300123854162843028</id><published>2007-10-18T22:32:00.000+04:00</published><updated>2008-11-15T14:41:14.613+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='форум'/><title type='text'>интересно, почему же я не люблю древовидные обсуждения?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VBdau0sAmgY/RxenT8fAZAI/AAAAAAAAACg/BmrhfqO1JgM/s1600-h/tree.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_VBdau0sAmgY/RxenT8fAZAI/AAAAAAAAACg/BmrhfqO1JgM/s400/tree.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5122747062252758018" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-5300123854162843028?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/5300123854162843028/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=5300123854162843028' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5300123854162843028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5300123854162843028'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/10/blog-post_18.html' title='интересно, почему же я не люблю древовидные обсуждения?'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VBdau0sAmgY/RxenT8fAZAI/AAAAAAAAACg/BmrhfqO1JgM/s72-c/tree.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-9121296982410506943</id><published>2007-10-16T13:42:00.000+04:00</published><updated>2007-10-16T13:52:36.384+04:00</updated><title type='text'>ластюфм жжот</title><content type='html'>в кое то веки залез на почту и обнаружил там среди прочего спама письмо от "последней радиостанции" такого содержания:&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;Warning: Smarty error: unable to read resource: "notification_emails/digest.tpl" in /usr/local/lib/php/Smarty.class.php on line 1101 &lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;да, подумаешь, куда-то подевался темплейт в результате чего вместо обычной рассылки производится рассылка спама, но нет, это не ошибка - это всего-лишь варнинг ^_^ который естественно никто даже не думает перехватывать..&lt;br /&gt;для кого варнинг-то? для программиста или для пользователя?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-9121296982410506943?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/9121296982410506943/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=9121296982410506943' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/9121296982410506943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/9121296982410506943'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/10/blog-post_16.html' title='ластюфм жжот'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-2710021889296924559</id><published>2007-10-13T23:31:00.000+04:00</published><updated>2007-10-20T06:37:28.791+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='^_^'/><title type='text'>просто прикольное видео</title><content type='html'>&lt;object height="350" width="425"&gt; &lt;param name="movie" value="http://www.youtube.com/v/NQADJtwnfHQ"&gt;  &lt;embed src="http://www.youtube.com/v/NQADJtwnfHQ" type="application/x-shockwave-flash" height="350" width="425"&gt;&lt;/embed&gt;  &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-2710021889296924559?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/2710021889296924559/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=2710021889296924559' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2710021889296924559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2710021889296924559'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/10/blog-post.html' title='просто прикольное видео'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-377054695441002685</id><published>2007-09-29T17:12:00.000+04:00</published><updated>2007-09-29T19:08:34.571+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='языки'/><title type='text'>Почему я пишу безграмотно?</title><content type='html'>меня сильно угнетает ситуация с русским языком: после &lt;span style="font-weight: bold;"&gt;десятилетнего &lt;/span&gt;обучения человек так и не может быть уверен в правильности написания того или иного слова, правильности его склонения, расстановки знаков препинания и т.п.&lt;br /&gt;&lt;br /&gt;в чём причина?&lt;br /&gt;&lt;br /&gt;а причина в гигантском количестве расплывчатых правил с тонной исключений и центнером исключений из исключений. когда-то люди просто писали как считали правильным - каждый по своему. потом пришёл добрый дядя и на основе этого разнобоя составил свод правил (по истине - великий труд). но язык продолжает естественную эволюцию, а правила как застыли когда-то - так и стоят.&lt;br /&gt;&lt;br /&gt;для чего сущетвует язык и письмо в частности?&lt;br /&gt;&lt;br /&gt;чтобы передавать информацию от одного человека к другому. чтобы происходило как можно меньше искажений требуются простые и однозначные правила кодирования и декодирования. да, ни один человек не будет писать чётко по таким правилам - благодаря избыточности у него есть свобода проявить своё творчество, но не надо творчество одного человека или компиляции из трудов группы авторитетных людей возводить в ранг правил.&lt;br /&gt;&lt;br /&gt;ближе к делу...&lt;br /&gt;&lt;br /&gt;есть простое и эффективное правило для трансформации голосовой информации в текстовую - "как слышытся - так и пишется". если следовать этому правилу при написании текста - восстановление звуков становится тривиальной задачей. мой респект в этом плане можно смело отдавать японцам которые изобрели кану, предназначенную исключительно для записи звуков как они слышатся, а не так как положено по каким-то там правилам. искуственные языки тоже стараются придерживаться этих правил, но из-за своей искуственности они, к сожалению, никогда не смогут вытеснить естественные, а было бы неплохо ^_^&lt;br /&gt;&lt;br /&gt;почему произнося ЁЖЫК мы должны писать ЁЖИК? Ы - это какая-то недобуква, кою нельзя писать всуе?&lt;br /&gt;&lt;br /&gt;почему произнося КАРАТЭ мы должны писать КАРАТЕ? что это за тупая калька с английского? Э - это тоже недобуква не достойная быть написанной?&lt;br /&gt;&lt;br /&gt;а буквы Е, Ё, Ю, Я - зачем были введены, если они читаются не иначе как Э, О, У, А? да, отличие их в том, что после твёрдой согласной они делают её мягкой, а в остальных случаях читается, как ЙЭ, ЙО, ЙУ, ЙА. так почему бы не использовать для записи эту самую Й и мягкий знак (от которого всё-равно никуда не деться) для смягчения?&lt;br /&gt;&lt;br /&gt;меня также убивает обращение к человеку во множественном числе ("вы соизволили.."). некоторые даже пишут местоимение при этом с большой буквы, подчёркивая свою безграмотность. оправдывают они это обычно "уважением к собеседнику", не проявляя оного ни коим образом кроме упомянутой формальности. меня часто обвиняют в неуважении по причине употребления местоимение единственного числа ("ты") при общении с конкретным человеком. некоторые даже требуют обращаться к ним во множественном числе, как буд-то у них расщепление личности или ещё какая душевная болезнь. такие перцы у меня не вызывают никакого уважения, ибо они не читают текст сообщения, не пытаются понять смысл, а просто смотрят на формальный признак "употребляет 'ты' - значит не уважает" и всё. тем более гупо выглядят их фразы типа "я к Вам на Вы, б*я".&lt;br /&gt;&lt;br /&gt;подведу итог: по принцыпиальным соображениям я использую местоимение "ты", это никак не связанно со степенью уважения собеседника (что проявляется прежде всего по смыслу текста); также я пишу Э, Ы и другие "недобуквы"там где они чётко слышатся; от Е, Ё, Я и Ю я не отказываюсь, ибо это вызовет серьёзные трудости восприятия написанного мной текста обычными ("непросветлёнными" ^_^) людьми, более того, я употребляю и Ё, ибо Е ни коим образом не способна её заменить.&lt;br /&gt;&lt;br /&gt;ps: некоторые "помешанные типографы" не просто ратуют за соблюдение всех правил руского языка, но ещё и считают принципиальной разницу между тире и дефисом, а также между симметричными кавычками-лапками и ассиметричными ёлочками, не смотря на то, что текст воспринимается читателем одинаково хорошо. в вэбе свои правила типографии - пора бы уже с этим смириться.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-377054695441002685?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/377054695441002685/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=377054695441002685' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/377054695441002685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/377054695441002685'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/09/blog-post_29.html' title='Почему я пишу безграмотно?'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-2982509909705732139</id><published>2007-09-26T18:11:00.000+04:00</published><updated>2007-09-26T18:19:56.768+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>php -&gt; javascript -&gt; ...</title><content type='html'>кто сказал, что в php нет ни динамического, ни множественного наследования?&lt;br /&gt;уже есть: &lt;a href="http://php.ru/forum/viewtopic.php?t=7870"&gt;http://php.ru/forum/viewtopic.php?t=7870&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;и пусть только кто-нибудь после этого скажет, что в php слабый ООП... |_(~_~)_/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-2982509909705732139?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/2982509909705732139/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=2982509909705732139' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2982509909705732139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2982509909705732139'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/09/php-javascript.html' title='php -&gt; javascript -&gt; ...'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-8389527054638703803</id><published>2007-09-24T12:44:00.000+04:00</published><updated>2008-11-15T14:41:14.918+03:00</updated><title type='text'>а ксенофобия всё прогрессирует...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VBdau0sAmgY/Rvd5ALpQhUI/AAAAAAAAACY/WBonl3M7wv0/s1600-h/372A5C81-9597-4EB1-A583-9F44E718DC37.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_VBdau0sAmgY/Rvd5ALpQhUI/AAAAAAAAACY/WBonl3M7wv0/s400/372A5C81-9597-4EB1-A583-9F44E718DC37.gif" alt="" id="BLOGGER_PHOTO_ID_5113688945935287618" border="0" /&gt;&lt;/a&gt;проще перечислить с кем русские не успели разжопиться...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-8389527054638703803?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/8389527054638703803/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=8389527054638703803' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8389527054638703803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8389527054638703803'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/09/blog-post_24.html' title='а ксенофобия всё прогрессирует...'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VBdau0sAmgY/Rvd5ALpQhUI/AAAAAAAAACY/WBonl3M7wv0/s72-c/372A5C81-9597-4EB1-A583-9F44E718DC37.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-5652744656643724882</id><published>2007-09-21T14:03:00.000+04:00</published><updated>2007-09-23T22:22:59.925+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='^_^'/><title type='text'>\(^_^)/</title><content type='html'>&lt;br /&gt;d(^_^)b  - в наушниках&lt;br /&gt;&lt;br /&gt;o_0  - офигевший&lt;br /&gt;&lt;br /&gt;^,__,^  - вампир&lt;br /&gt;&lt;br /&gt;^_^'  - смущён&lt;br /&gt;&lt;br /&gt;\m/(^_^)\m/  - на пальцах&lt;br /&gt;&lt;br /&gt;=^.^=  - майский котик&lt;br /&gt;&lt;br /&gt;/X\(o.o)/X\  - поучок&lt;br /&gt;&lt;br /&gt;^(oo)^ - свинтус&lt;br /&gt;&lt;br /&gt;@(*о*)@ - коала&lt;br /&gt;&lt;br /&gt;(='_'=)  - покемон&lt;br /&gt;&lt;br /&gt;&gt;^,,^&lt; - летучая собака&lt;br /&gt;&lt;br /&gt;*\o/* - девушка из группы поддержки&lt;br /&gt;&lt;br /&gt;(&lt;&gt;..&lt;&gt;) - инопланетянин&lt;br /&gt;&lt;br /&gt;__\o/__ - утопающий&lt;br /&gt;&lt;br /&gt;(+_+) - трупик&lt;br /&gt;&lt;br /&gt;неплохая подборка смайлов:&lt;br /&gt;&lt;a href="http://www.itc.ua/article.phtml?ID=13123&amp;amp;IDw=53&amp;amp;pid=21"&gt;http://www.itc.ua/article.phtml?ID=13123&amp;amp;IDw=53&amp;amp;pid=21&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ещё одна:&lt;br /&gt;&lt;a href="http://smayly.net.ru/static/txt.html"&gt;http://smayly.net.ru/static/txt.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-5652744656643724882?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/5652744656643724882/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=5652744656643724882' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5652744656643724882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5652744656643724882'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/09/blog-post_21.html' title='\(^_^)/'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-7072654082824175972</id><published>2007-09-18T01:48:00.000+04:00</published><updated>2007-10-13T16:04:10.516+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>установка обработчиков событий в javascript</title><content type='html'>Я уже говорил, что люблю яваскрипт? Если нет, то: "лучше языка я ещё не встречал!". Есть, конечно и недостатки, но многие из них можно обойти...&lt;br /&gt;Но сейчас пойдёт речь не о недостатках, а наоборот, об одном элегантном решении...&lt;br /&gt;&lt;br /&gt;Самый простой способ повесить обработчик события - это просто написать:&lt;br /&gt;&lt;pre&gt;node.onclick= function( e ){&lt;br /&gt; if( !e ) e= window.event;&lt;br /&gt; alert( e );&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Метод довольно простой и наглядный, но основной его недостаток - для одного события у одного узла можно назначить только один обработчик, что очень неудобно.&lt;br /&gt;&lt;br /&gt;Более сложный способ, лишённый этого недостатка, - это воспользоваться методами addEventListener (DOM) и attachEvent (IE). Например: &lt;a href="http://php.ru/forum/viewtopic.php?t=7374"&gt;http://php.ru/forum/viewtopic.php?t=7374&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Работает, конечно, замечательно, но у него есть один существенный недостаток - мы не можем создавать свои события и вешать на них обработчики. В первом варианте у нас такая возможность есть, но обработчик мы можем повесить только один и соответственно городить огород нет особого смысла.&lt;br /&gt;&lt;br /&gt;И тут мы подходим к самому главному! В яваскрипте любая функция является объектом, а значит она может иметь дополнительные свойства. В частности, можно задать каким-нибудь свойством массив обработчиков, а функция должна просто пройтись по каждому из них и запустить. В итоге у меня получился такой код:&lt;br /&gt;&lt;pre&gt;node.observe= function( event, func ){&lt;br /&gt;if( !node[event] ){&lt;br /&gt;    node[event]= function f( e ){&lt;br /&gt;        if( !e ) e= window.event;&lt;br /&gt;        var funcs= node[event].funcs;&lt;br /&gt;        for( var i= 0; i &lt; funcs.length; ++i ){&lt;br /&gt;            if( funcs[i] ) funcs[i]( e );&lt;br /&gt;        });&lt;br /&gt;    };&lt;br /&gt;    node[event].funcs= [];&lt;br /&gt;}&lt;br /&gt;var funcs= node[event].funcs;&lt;br /&gt;for( var i in funcs )&lt;br /&gt;   if( funcs[i] == func ) return;&lt;br /&gt;funcs.push( func );&lt;br /&gt;}&lt;br /&gt;node.unobserve= function( event, func ){&lt;br /&gt;var funcs= node[event].funcs;&lt;br /&gt;for( var i in funcs )&lt;br /&gt;   if( funcs[i] == func )&lt;br /&gt;      delete funcs[i];&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;то есть, мы расширяем html-ноду ( хотя, в ИЕ наврятли удастся расширить что-то отличное от html-елемента -_- ну да не суть ) двумя функциями, одна из которых добавляет обработчик, а вторая - удаляет.&lt;br /&gt;&lt;br /&gt;Примеры использования:&lt;br /&gt;&lt;pre&gt;function ping( e ){&lt;br /&gt;alert( e );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;node.observe( 'onclick', ping );&lt;br /&gt;&lt;br /&gt;node.unobserve( 'onclick', ping );&lt;br /&gt;&lt;br /&gt;node.observe( 'onmyevent', ping );&lt;br /&gt;&lt;br /&gt;node.onmyevent( { keyCode: 1 } );&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;upd: кстати, на событие 'onbeforeunload' и возможно на ещё какие-то нельзя вешать обработчики с помощью addEventListener/attachEvent, ибо некроссбраузерно.&lt;br /&gt;&lt;br /&gt;upd2: мля... не работает в мозилле в designMode... придётся оной подпорки делать...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-7072654082824175972?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/7072654082824175972/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=7072654082824175972' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7072654082824175972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7072654082824175972'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/09/javascript.html' title='установка обработчиков событий в javascript'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-8709371208263054906</id><published>2007-09-10T14:48:00.000+04:00</published><updated>2007-09-10T15:02:47.598+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><title type='text'>одна большая дырка</title><content type='html'>правильно, речь пойдёт об ИЕ ^_^&lt;br /&gt;недавно (ну, месяца два назад) c удивлением обнаружил, что в ИЕ работает даже такая конструкция:&lt;br /&gt;&lt;br /&gt;&amp;lt;img src="javascript:alert(1)" /&amp;gt;&lt;br /&gt;&lt;br /&gt;что тут можно сказать? только сабж ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-8709371208263054906?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/8709371208263054906/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=8709371208263054906' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8709371208263054906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8709371208263054906'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/09/blog-post_10.html' title='одна большая дырка'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-5695313313753461556</id><published>2007-09-07T18:31:00.000+04:00</published><updated>2007-09-07T19:27:56.585+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>выделение, визивиг и изменение контента</title><content type='html'>при реализации визивига некоторые вещи приходится вытворять по схеме: сериализация-&gt;обработка-&gt;десериализация&lt;br /&gt;&lt;br /&gt;в качестве примера - реализация динамической подсветки кода. одними только dom-функциями это реализовывать - страшный геморрой, а ещё и очень медленно.  гораздо быстрее и проще пройтись парой регулярок по сериализованному документу.&lt;br /&gt;&lt;br /&gt;но тут нас подстерегает одна гадость - после обработки хорошо было бы восстановить выделение или хотябы позицию курсора. очевидно, пока выделение ещё существует, нужно сохранить его позиции в dom-е, обработать и по оставленным меткам восстановить выделение.&lt;br /&gt;&lt;br /&gt;очевидно, что метки начала и конца выделения должны быть неиспользуемой последовательностью символов юникода. также они должны иметь нулевую ширину, дабы при вводе текста не было скачков. я остановился на парах диактрических знаков: '\u0300\u0301' и '\u0302\u0303'. вроде как маловероятно, чтобы в тексте потребовалось их применить последовательно. ширины они точно не имеют. единственный недостаток: они имеют визуализацию, но с учётом того, что обработка должна быть "мгновенной" (ибо рилтаймовая подсветка) - кратковременное появление маленьких значков не должно быть заметно на глаз.&lt;br /&gt;&lt;br /&gt;пришлось несколько погеморроиться с реализацией этого дела, но всё получилось. отдельный пример не выкладываю ибо его сложно выдрать из фреймворка - выпущу фреймворк - можно будет посмотреть в действии.&lt;br /&gt;&lt;br /&gt;в ИЕ всё оказалось весьма шоколадно...&lt;br /&gt;&lt;br /&gt;сохранение меток выглядит так:&lt;br /&gt;&lt;br /&gt;           var range= document.selection.createRange();&lt;br /&gt;           range.pasteHTML( '\u0300\u0301' + range.htmlText + '\u0300\u0301' );&lt;br /&gt;&lt;br /&gt;восстановление несколько менее тривиально:&lt;br /&gt;&lt;br /&gt;           var ran= document.body.createRange();&lt;br /&gt;           var tr= document.body.createRange();&lt;br /&gt;           tr.findText( '\u0300\u0301' );&lt;br /&gt;           tr.text= '';&lt;br /&gt;           ran.setEndPoint( 'StartToStart', tr );&lt;br /&gt;           tr.findText( '\u0302\u0303' );&lt;br /&gt;           tr.text= '';&lt;br /&gt;           ran.setEndPoint( 'EndToEnd', tr );&lt;br /&gt;           ran.select( );&lt;br /&gt;&lt;br /&gt;а вот реализуя то же самое для остальных браузеров пришлось несколько попотеть...&lt;br /&gt;&lt;br /&gt;сохранение меток:&lt;br /&gt;&lt;br /&gt;           var ran= window.getSelection().getRangeAt(0);&lt;br /&gt;           var rane= ran.cloneRange( );&lt;br /&gt;           rane.collapse( false );&lt;br /&gt;           var node= document.createTextNode( '\u0302\u0303' );&lt;br /&gt;           rane.insertNode( node );&lt;br /&gt;           var node= document.createTextNode( '\u0300\u0301' );&lt;br /&gt;           ran.insertNode( node );&lt;br /&gt;&lt;br /&gt;а для восстановления соответственно приходится бежать по всему дому в поисках открывающей и закрывающей пар node+offset, после чего наведение выделения с помощью функций setStart и setEnd. почему w3c не соизволила узаконить findText остаётся загадкой 8(o_0)8&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-5695313313753461556?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/5695313313753461556/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=5695313313753461556' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5695313313753461556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5695313313753461556'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/09/blog-post_07.html' title='выделение, визивиг и изменение контента'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-4912622725188379922</id><published>2007-09-02T11:29:00.000+04:00</published><updated>2007-10-05T17:00:58.795+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='математика'/><title type='text'>Теория множеств свернула не туда</title><content type='html'>Читая различную литературу каждый раз подмечаю интересную особенность: если автор  описывая что-то начинает вдруг использовать эпитеты типа "гениальное", "эпохальное" и тп, то это значит, что читателю пытаются скормить очередную чушь и упомянутые эпитеты призваны усилить аргументацию...&lt;br /&gt;&lt;br /&gt;Приведу пример из "Что такое математика?" от Куранта, Роббинса под редакцией Колмогорова:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Тому же Кантору принадлежит открытие исключительной важности: множество всех действительных (рациональных и иррациональных) чисел несчетно.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;О других участниках там же идёт повествование в более сухом тоне, местами даже с элементами разоблачения:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Евклид, громкая слава которого объясняется той частью его «Начал», которая посвящена основам геометрии (изучаемым в школе), по-видимому, сделал оригинальные открытия в области теории чисел, тогда как его геометрия в значительной степени представляет собой компиляцию ранее полученных результатов.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Ну да вернёмся к описываемому гиперболическими эпитетами "открытию"... суть его заключается в том, что Кантор показывает несчётность континуума весьма "остроумным" способом. я бы назвал его скорее софистической спекуляцией понятием "бесконечность".&lt;br /&gt;&lt;br /&gt;Для начала хотелось бы напомнить классическое доказательство бесконечности ряда натуральных чисел:&lt;br /&gt;&lt;br /&gt;Предположим, что мы нашли конец, значит среди всех чисел можно найти максимальное, прибавить к нему 1 и получить новое натуральное число, которое находится за установленной нами границей. далее формулируем индукционный переход: для любого конечного множества натуральных чисел можно найти натуральное число, которое не будет входить в это множество.&lt;br /&gt;и делаем вывод, что множество натуральных чисел не является конечным или, что то же самое, является бесконечным.&lt;br /&gt;&lt;br /&gt;Теперь перейдём собственно к Кантору... суть его "доказательства" сводится к следующему: пусть мы пересчитали все вещественные числа, тогда, мы можем выписать их в ряд:&lt;br /&gt;0: 0.abc...&lt;br /&gt;1: 0.def...&lt;br /&gt;2: 0.ghi...&lt;br /&gt;...&lt;br /&gt;, а потом используя диагональный метод составить новое число, где первая цифра не равна первой цифре первого числа, вторая - второй второго и так далее.&lt;br /&gt;Далее мы делаем финт ушами - предельный переход - и получаем число, которого нет в нашем списке, из чего делаем вывад о том, что множество вещественных чисел мощнее множества натуральных. Подумать только - одна бесконечность больше другой бесконечности на целый 1 элемент! ^_^ (Всем, кто не согласен с моими рассуждениями, советую крепко задуматься над последним предложением.)&lt;br /&gt;&lt;br /&gt;Что мешает нам полученное число тут же добавить, например, в начало списка? А ничего! (надеюсь все согласны, что "бесконечность+1=бесконечность"?) Да, после этого можно повторить процедуру и найти ещё одно число. Ничего не напоминает? Та же самая схема, что и в случае доказательства бесконечности множества натуральных чисел, но вот вывод из этого Кантором сделан неверный. Фактически он доказывает бесконечность множества вещественных чисел, ибо диагональный метод всего-лишь позволяет по конечному множеству вещественных чисел найти вещественное число, которое в это множество не входит (вспоминаем индукционный переход в доказательстве бесконечности ряда натуральных чисел). На бесконечном же множестве диагональный метод будет бесконечно искать, но так и не найдёт неучтённое число. Точно также мы можем прибавлять единицу бесконечное число раз в поиске последнего натурального числа, но так никогла его и не найти.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-4912622725188379922?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/4912622725188379922/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=4912622725188379922' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4912622725188379922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4912622725188379922'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/09/blog-post.html' title='Теория множеств свернула не туда'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-766512278770189972</id><published>2007-08-19T01:15:00.000+04:00</published><updated>2007-08-19T01:31:42.810+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='теория программирования'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Кодестайл против собаки</title><content type='html'>-  вы должны каждое слово начинать с большой буквы&lt;br /&gt;- ну.. это ж тянуться к шифту без конца&lt;br /&gt;- это хороший стить&lt;br /&gt;- чем же он хорош?&lt;br /&gt;- позволяет отделять слова друг от друга&lt;br /&gt;- а пробелы разве не для этого?&lt;br /&gt;- пробелы - это плохой стиль&lt;br /&gt;- что за бред?&lt;br /&gt;- это потенциальный источник ошибок: слова можно написать настолько близко  друг к другу, что можно не заметить существование пробела, к тому же иногда межбуквенный интервал можно принять за пробел.&lt;br /&gt;- а что мешает использовать интервалы нормальной длинны?&lt;br /&gt;- мне лень такому дауну как ты что-либо доказывать - любой здравомыслящий человек поймёт, что пробелы нельзя использовать нигде и никогда, потому как получается говнокод - нужно использовать "синтаксический сахар" в виде заглавных букв.&lt;br /&gt;- но это не удобно, ужасно смотрится и некоторые заглавные буквы можно спутать со строчными!&lt;br /&gt;- бан бы тебе, с аргументом "непросветлённый"! тема закрыта.&lt;br /&gt;&lt;br /&gt;навеяно этим: &lt;a href="http://phpclub.ru/talk/showthread.php?s=&amp;threadid=101915"&gt;http://phpclub.ru/talk/showthread.php?s=&amp;amp;threadid=101915&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-766512278770189972?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/766512278770189972/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=766512278770189972' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/766512278770189972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/766512278770189972'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/blog-post_19.html' title='Кодестайл против собаки'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-5922671675678709406</id><published>2007-08-18T07:33:00.001+04:00</published><updated>2008-11-15T14:41:15.238+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='фото'/><title type='text'>мой первый шедёвр</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VBdau0sAmgY/RsZogJFuPRI/AAAAAAAAACQ/sla2TpuYkjc/s1600-h/oduvanchik.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_VBdau0sAmgY/RsZogJFuPRI/AAAAAAAAACQ/sla2TpuYkjc/s400/oduvanchik.jpg" alt="" id="BLOGGER_PHOTO_ID_5099878529448688914" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-5922671675678709406?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/5922671675678709406/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=5922671675678709406' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5922671675678709406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5922671675678709406'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/blog-post_4089.html' title='мой первый шедёвр'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VBdau0sAmgY/RsZogJFuPRI/AAAAAAAAACQ/sla2TpuYkjc/s72-c/oduvanchik.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-6286792271760185988</id><published>2007-08-18T07:27:00.000+04:00</published><updated>2008-11-15T14:41:15.918+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мои рисунки'/><title type='text'>ume-hime</title><content type='html'>вот так я стал рисовать, когда заразился анимэ ^_^ пэйнт форэва!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VBdau0sAmgY/RsZnWZFuPQI/AAAAAAAAACI/DA_Yx3zI1CA/s1600-h/ume-hime4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_VBdau0sAmgY/RsZnWZFuPQI/AAAAAAAAACI/DA_Yx3zI1CA/s400/ume-hime4.png" alt="" id="BLOGGER_PHOTO_ID_5099877262433336578" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-6286792271760185988?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/6286792271760185988/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=6286792271760185988' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6286792271760185988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6286792271760185988'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/ume-hime.html' title='ume-hime'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VBdau0sAmgY/RsZnWZFuPQI/AAAAAAAAACI/DA_Yx3zI1CA/s72-c/ume-hime4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-6934849682607790642</id><published>2007-08-18T07:23:00.000+04:00</published><updated>2008-11-15T14:41:16.050+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мои рисунки'/><title type='text'>так вот они какие - зелёные человечеки!</title><content type='html'>"джимми-червячёк. знаете такого?&lt;br /&gt;единственный владелец скафандра надувного!..."&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VBdau0sAmgY/RsZmd5FuPPI/AAAAAAAAACA/s1tr4yhjNtE/s1600-h/%D0%A7%D0%95%D0%A0%D0%92%D0%AF%D0%9A.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_VBdau0sAmgY/RsZmd5FuPPI/AAAAAAAAACA/s1tr4yhjNtE/s400/%D0%A7%D0%95%D0%A0%D0%92%D0%AF%D0%9A.JPG" alt="" id="BLOGGER_PHOTO_ID_5099876291770727666" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-6934849682607790642?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/6934849682607790642/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=6934849682607790642' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6934849682607790642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6934849682607790642'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/blog-post_2441.html' title='так вот они какие - зелёные человечеки!'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VBdau0sAmgY/RsZmd5FuPPI/AAAAAAAAACA/s1tr4yhjNtE/s72-c/%D0%A7%D0%95%D0%A0%D0%92%D0%AF%D0%9A.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-7573949901826909668</id><published>2007-08-18T07:20:00.000+04:00</published><updated>2008-11-15T14:41:16.213+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мои рисунки'/><title type='text'>карлос маст дай</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VBdau0sAmgY/RsZlnpFuPOI/AAAAAAAAAB4/n0FzDocRxbs/s1600-h/%D0%9A%D0%90%D0%A0%D0%9B%D0%A1%D0%9E%D0%9D.JPG"&gt;&lt;/a&gt;карлоса приставили к стенке за совращение малолетних...&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VBdau0sAmgY/RsZlnpFuPOI/AAAAAAAAAB4/n0FzDocRxbs/s1600-h/%D0%9A%D0%90%D0%A0%D0%9B%D0%A1%D0%9E%D0%9D.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VBdau0sAmgY/RsZlnpFuPOI/AAAAAAAAAB4/n0FzDocRxbs/s1600-h/%D0%9A%D0%90%D0%A0%D0%9B%D0%A1%D0%9E%D0%9D.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_VBdau0sAmgY/RsZlnpFuPOI/AAAAAAAAAB4/n0FzDocRxbs/s400/%D0%9A%D0%90%D0%A0%D0%9B%D0%A1%D0%9E%D0%9D.JPG" alt="" id="BLOGGER_PHOTO_ID_5099875359762824418" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-7573949901826909668?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/7573949901826909668/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=7573949901826909668' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7573949901826909668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7573949901826909668'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/blog-post_2862.html' title='карлос маст дай'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VBdau0sAmgY/RsZlnpFuPOI/AAAAAAAAAB4/n0FzDocRxbs/s72-c/%D0%9A%D0%90%D0%A0%D0%9B%D0%A1%D0%9E%D0%9D.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-2836970497145933958</id><published>2007-08-18T07:16:00.000+04:00</published><updated>2008-11-15T14:41:16.515+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мои рисунки'/><title type='text'>терминатор из четвёртой части</title><content type='html'>ноги от ушей, осиная талия - красавица, а не робот 6_^&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VBdau0sAmgY/RsZk0ZFuPNI/AAAAAAAAABw/6wNesEab1nA/s1600-h/t-4.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_VBdau0sAmgY/RsZk0ZFuPNI/AAAAAAAAABw/6wNesEab1nA/s400/t-4.jpg" alt="" id="BLOGGER_PHOTO_ID_5099874479294528722" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-2836970497145933958?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/2836970497145933958/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=2836970497145933958' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2836970497145933958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2836970497145933958'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/blog-post_18.html' title='терминатор из четвёртой части'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VBdau0sAmgY/RsZk0ZFuPNI/AAAAAAAAABw/6wNesEab1nA/s72-c/t-4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-4066449171166309960</id><published>2007-08-18T07:11:00.000+04:00</published><updated>2008-11-15T14:41:16.802+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мои рисунки'/><title type='text'>лолифокси обоина</title><content type='html'>обоина с лолифокси в главной роли. осторожно, 2 метра весом.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VBdau0sAmgY/RsZjtJFuPMI/AAAAAAAAABo/nnYWsehPWDg/s1600-h/rainbow6.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_VBdau0sAmgY/RsZjtJFuPMI/AAAAAAAAABo/nnYWsehPWDg/s400/rainbow6.png" alt="" id="BLOGGER_PHOTO_ID_5099873255228849346" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-4066449171166309960?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/4066449171166309960/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=4066449171166309960' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4066449171166309960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4066449171166309960'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/blog-post.html' title='лолифокси обоина'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VBdau0sAmgY/RsZjtJFuPMI/AAAAAAAAABo/nnYWsehPWDg/s72-c/rainbow6.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-1726827649281340957</id><published>2007-08-15T00:39:00.000+04:00</published><updated>2007-09-18T02:50:32.566+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='теория программирования'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>php и замыкания</title><content type='html'>как известно в пыхе нет замыканий. некоторые считают это недостатком, потому что замыкания - это черезвычайно мощные штуки, некоторые, наоборот, достоинством, ибо копаться в коде с замыканиями довольно напряжно.&lt;br /&gt;&lt;br /&gt;в пыхе сделано тупо, но эффективно - у каждой функции своё пространство имён и если какая-то переменная в ней не определена - значит она не определена и не надо лезть родительский контекст, чтобы в этом убедиться.&lt;br /&gt;&lt;br /&gt;однако, в пыхе есть и поруганное многими исключение - директива global позволяющая импортировать переменные из глобального контекста. как говорится: "мысля была хорошей, но родилась она в заднице" :) вместо директивы global лучше бы ввели директиву extern, позволяющую импортировать переменные из родительского контекста - получились бы эдакие "контролируемые замыкания".&lt;br /&gt;&lt;br /&gt;интересно, существуют ли уже языки с "контролируемыми замыканиями"?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-1726827649281340957?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/1726827649281340957/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=1726827649281340957' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/1726827649281340957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/1726827649281340957'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/php.html' title='php и замыкания'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-8539570985154251114</id><published>2007-08-07T00:27:00.000+04:00</published><updated>2007-08-07T00:42:43.800+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='mojura'/><title type='text'>смерть ORM'у</title><content type='html'>реализовал сегодня идеальную систему прав для движка. есть пользователи, каждый может состоять в нескольких группах. как для группы так и для отдельного пользователя в определённом разделе каталога можно назначить свою роль,  а у каждой роли есть свой набор прав.&lt;br /&gt;в итоге  запрос получения привелегий доступа к определённой статье для текущего пользователя выглядит следующим образом:&lt;br /&gt;&lt;pre&gt;$perms= $db-&gt;get1d('&lt;br /&gt;  select *&lt;br /&gt;  from&lt;br /&gt;      mo_cat_art as ca&lt;br /&gt;      ,&lt;br /&gt;      mo_catalog as c1&lt;br /&gt;      ,&lt;br /&gt;      mo_catalog as c2&lt;br /&gt;      ,&lt;br /&gt;      mo_rules as ru&lt;br /&gt;      ,&lt;br /&gt;      mo_roles as ro&lt;br /&gt;  where&lt;br /&gt;      ca.art_id = ',$art['art_id'],'&lt;br /&gt;  and&lt;br /&gt;      ca.cat_id = c1.cat_id&lt;br /&gt;  and&lt;br /&gt;      c1.cat_no &gt;= c2.cat_no&lt;br /&gt;  and&lt;br /&gt;      c1.cat_sub &lt;= c2.cat_sub&lt;br /&gt;  and&lt;br /&gt;      c2.cat_id = ru.cat_id&lt;br /&gt;  and&lt;br /&gt;      (&lt;br /&gt;          ru.user_id = ',$user['user_id'],'&lt;br /&gt;      or&lt;br /&gt;          ru.group_id in ',$user['grouplist'],'&lt;br /&gt;      )&lt;br /&gt;  and&lt;br /&gt;      ru.role_id = ro.role_id&lt;br /&gt;  group by&lt;br /&gt;      ru.rule_id&lt;br /&gt;  order by&lt;br /&gt;      c2.cat_no desc&lt;br /&gt;');&lt;/pre&gt;&lt;br /&gt;сижу, думаю, а не  перемудрил ли я? (o_0)`&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-8539570985154251114?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/8539570985154251114/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=8539570985154251114' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8539570985154251114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8539570985154251114'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/08/orm.html' title='смерть ORM&apos;у'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-5361725687488520036</id><published>2007-07-28T23:55:00.000+04:00</published><updated>2008-11-15T14:41:17.561+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='животные'/><category scheme='http://www.blogger.com/atom/ns#' term='фото'/><title type='text'>поймал сегодня ангела...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VBdau0sAmgY/RqufT3igxLI/AAAAAAAAABg/zO7ze5nQAr0/s1600-h/angel.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_VBdau0sAmgY/RqufT3igxLI/AAAAAAAAABg/zO7ze5nQAr0/s400/angel.jpg" alt="" id="BLOGGER_PHOTO_ID_5092338967347512498" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-5361725687488520036?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/5361725687488520036/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=5361725687488520036' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5361725687488520036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5361725687488520036'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/07/blog-post_3897.html' title='поймал сегодня ангела...'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VBdau0sAmgY/RqufT3igxLI/AAAAAAAAABg/zO7ze5nQAr0/s72-c/angel.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-6452724242108877849</id><published>2007-07-28T10:55:00.001+04:00</published><updated>2008-11-15T14:41:17.931+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='лев'/><category scheme='http://www.blogger.com/atom/ns#' term='фото'/><title type='text'>а вот с этой зверюгой я живу</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VBdau0sAmgY/Rqrog3igxKI/AAAAAAAAABY/GFoyOOlKqlo/s1600-h/zver.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_VBdau0sAmgY/Rqrog3igxKI/AAAAAAAAABY/GFoyOOlKqlo/s400/zver.jpg" alt="" id="BLOGGER_PHOTO_ID_5092137980057928866" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-6452724242108877849?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/6452724242108877849/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=6452724242108877849' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6452724242108877849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6452724242108877849'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/07/blog-post_5273.html' title='а вот с этой зверюгой я живу'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VBdau0sAmgY/Rqrog3igxKI/AAAAAAAAABY/GFoyOOlKqlo/s72-c/zver.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-5554929331311637101</id><published>2007-07-28T10:44:00.001+04:00</published><updated>2008-11-15T14:41:18.065+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='фото'/><title type='text'>большой полосатый мух</title><content type='html'>залетела на днях вот такая вот зверюга:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VBdau0sAmgY/Rqrl7XigxJI/AAAAAAAAABQ/vpyzDAPQNik/s1600-h/muh.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_VBdau0sAmgY/Rqrl7XigxJI/AAAAAAAAABQ/vpyzDAPQNik/s400/muh.jpg" alt="" id="BLOGGER_PHOTO_ID_5092135136789578898" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-5554929331311637101?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/5554929331311637101/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=5554929331311637101' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5554929331311637101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5554929331311637101'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/07/blog-post_5202.html' title='большой полосатый мух'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VBdau0sAmgY/Rqrl7XigxJI/AAAAAAAAABQ/vpyzDAPQNik/s72-c/muh.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-8395041262722351452</id><published>2007-07-28T10:35:00.002+04:00</published><updated>2008-11-15T14:41:18.273+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='лев'/><category scheme='http://www.blogger.com/atom/ns#' term='фото'/><title type='text'>мой фаеркот</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VBdau0sAmgY/RqrkWXigxII/AAAAAAAAABI/RyPB8AvH3e0/s1600-h/IMG_2913.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_VBdau0sAmgY/RqrkWXigxII/AAAAAAAAABI/RyPB8AvH3e0/s400/IMG_2913.JPG" alt="" id="BLOGGER_PHOTO_ID_5092133401622791298" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-8395041262722351452?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8395041262722351452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8395041262722351452'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/07/blog-post_28.html' title='мой фаеркот'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VBdau0sAmgY/RqrkWXigxII/AAAAAAAAABI/RyPB8AvH3e0/s72-c/IMG_2913.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-6597802510060162312</id><published>2007-07-27T23:03:00.001+04:00</published><updated>2007-07-31T18:36:33.509+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yandex'/><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><title type='text'>яндекс на карте, прокол в юзабилити</title><content type='html'>решили мы как-то прогуляться по ночному питеру, пофоткать, поболтать. место встречи - ст. м. Маяковская. забрался я тогда на яндекс, чтобы составить примерный маршрут. ввсёл "маяковская" и получил это:&lt;br /&gt;&lt;a href="http://adresa.yandex.ru/search.xml?stype=adresa&amp;nl=0&amp;amp;amp;amp;amp;amp;region=10174&amp;what=%EC%E0%FF%EA%EE%E2%F1%EA%E0%FF&amp;amp;where="&gt;http://adresa.yandex.ru/search.xml?stype=adresa&amp;nl=0&amp;amp;amp;amp;amp;amp;region=10174&amp;what=%EC%E0%FF%EA%EE%E2%F1%EA%E0%FF&amp;amp;where=&lt;/a&gt;&lt;br /&gt;и что мы видим? маяковской нет, зато есть куча гигантских кружочков с цифрами. при изменении масштаба - картина не слишком меняется. спрашивается: "нафига мне эти кружочки?"  среди предложенных десяти "мест" нет ни одного релевантного "что: маяковская". я бы ещё понял, если бы я ввёл это слово в поле "где?"...&lt;br /&gt;в общем, для оценки маршрута яндекс оказался абсолютно бесполезен... а ведь я искал всего-лишь станцию метро Маяковская - её не так уж и сложо найти...&lt;br /&gt;&lt;br /&gt;и тут я решил зайти на гугол:&lt;br /&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;hl=ru&amp;amp;amp;amp;amp;amp;geocode=&amp;q=%D0%BC%D0%B0%D1%8F%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F&amp;amp;sll=37.0625,-95.677068&amp;sspn=65.047864,96.416016&amp;amp;amp;amp;amp;amp;ie=UTF8&amp;z=16&amp;amp;iwloc=addr&amp;om=1"&gt;http://maps.google.com/maps?f=q&amp;amp;amp;amp;amp;amp;hl=ru&amp;geocode=&amp;amp;q=%D0%BC%D0%B0%D1%8F%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F&amp;sll=37.0625,-95.677068&amp;amp;sspn=65.047864,96.416016&amp;ie=UTF8&amp;amp;amp;amp;amp;amp;z=16&amp;iwloc=addr&amp;amp;om=1&lt;/a&gt;&lt;br /&gt;блестяще!&lt;br /&gt;&lt;br /&gt;апдейт: если бы я был чуть по внимательнее, то заметил бы ссылку на более адэкватную карту: &lt;a href="http://maps.yandex.ru/map.xml?mapID=3&amp;mapX=6352160&amp;amp;amp;mapY=6649460&amp;mapWidth=1600&amp;amp;scale=6&amp;act=5&amp;amp;x=300&amp;y=225"&gt;http://maps.yandex.ru/map.xml?mapID=3&amp;amp;amp;mapX=6352160&amp;mapY=6649460&amp;amp;mapWidth=1600&amp;scale=6&amp;amp;amp;act=5&amp;x=300&amp;amp;y=225&lt;/a&gt;&lt;br /&gt;как выяснилось я воспользовался не тем сервисом для поиска станции метро...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-6597802510060162312?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6597802510060162312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6597802510060162312'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/07/blog-post_5034.html' title='яндекс на карте, прокол в юзабилити'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-7840783645117711809</id><published>2007-07-27T21:51:00.000+04:00</published><updated>2007-09-29T18:56:45.832+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='форум'/><title type='text'>псевдонимы на форуме, какие вводить ограничения?</title><content type='html'>&lt;span class="postbody"&gt;давайте подумаем для каких целей используется никнейм:&lt;br /&gt;1. чтобы идентифицировать автора сообщения&lt;br /&gt;2. чтобы подчеркнуть авторство цитаты&lt;br /&gt;3. чтобы обратиться к конкретному человеку с ответом на его последнее сообщение.&lt;br /&gt;&lt;br /&gt;если в первом и во втором случае можно писать полную белиберду, типа "VIttYya", то с последним возникают некоторые проблемы:&lt;br /&gt;1. для ввода ника нужно переключаться в другой регистр&lt;br /&gt;2. ещё и с шифтом некоторые буквы набирать&lt;br /&gt;3. вообще не набрать, ибо фиг прочитаешь&lt;br /&gt;4. непонятно как склонять&lt;br /&gt;&lt;br /&gt;единственное тру-решение, которое мне видится:&lt;br /&gt;1. запретить использовать алфавит отличный от принятого основным (в данном случае - русский)&lt;br /&gt;2. запретить использовать верхний регистр&lt;br /&gt;3. запретить использовать в качестве псевдонима невыговариваемые слова (в случае фамилии - настоятельно рекомендовать придумать менее трудновыразимый псевдоним)&lt;br /&gt;&lt;br /&gt;в настоящий момент, однако,  распространено далеко не тру решение: по клику на никнейме он вставляется  в поле быстрого ответа. оставим в стороне тотальную кривизну подобных решений (добавление 2 перед ником; вставка ника в конец,  а не туда, где расположен курсор; и тд) и акцентируемся на объективных недостатках:&lt;br /&gt;1. неработоспособность при написании ответа в другой странице (например, странице "полного ответа") или даже в сторонней программе, то есть происходит навязывание пользователю набирание сообщения именно в убогом окошке быстрого ответа.&lt;br /&gt;2. требуется отрываться от клавиатуры и тянуться к мышке, при этом периодически появляется необходимость ещё и проматывать страницу вверх&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-7840783645117711809?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/7840783645117711809/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=7840783645117711809' title='Комментарии: 15'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7840783645117711809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7840783645117711809'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/07/blog-post_27.html' title='псевдонимы на форуме, какие вводить ограничения?'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-4350340931862208553</id><published>2007-07-07T16:14:00.000+04:00</published><updated>2008-01-16T13:24:55.125+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Отладка скриптов в браузерах</title><content type='html'>&lt;b&gt;&lt;br /&gt;Mozilla:&lt;/b&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/ru/firefox/addon/1843"&gt;https://addons.mozilla.org/ru/firefox/addon/1843&lt;/a&gt; - firebug - думаю в представлении не нуждается ^_^ маст хэв&lt;br /&gt;&lt;a href="https://addons.mozilla.org/ru/firefox/addon/60"&gt;https://addons.mozilla.org/ru/firefox/addon/60&lt;/a&gt; - web developer - специальная панелька с большим количеством полезных в быту разработчика функций.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/ru/firefox/addon/249"&gt;https://addons.mozilla.org/ru/firefox/addon/249&lt;/a&gt; - html validator - позволяет быстро провести валидацию документа как с помощью tidy, так и с помощью sgml парсера.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/ru/firefox/addon/3939"&gt;https://addons.mozilla.org/ru/firefox/addon/3939&lt;/a&gt; - relax validator - ещё не пробовал, но не упомянуть не мог ^_^'&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Opera:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://dev.opera.com/tools/"&gt;http://dev.opera.com/tools/&lt;/a&gt; - жмём Developer Console, после чего в опере появляется кнопочка, по нажатию на которую открывается окошко со всякой инфой. жалкое подобие огненного бага, конечно, но хотябы что-то...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IE:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;amp;displaylang=en"&gt;очень длинная ссылка&lt;/a&gt; - чувствуется работа дизайнера. не смотря на присутствие функций отсутствующих в огненном баге, по общим показателям всё же менее функциональна. зато опрятна и удобна. к сожалению возможности просмотра DOM-а  у неё нет (-_-)&lt;br /&gt;&lt;a href="http://www.blunck.info/iehttpheaders/iehttpheaders.html"&gt;http://www.blunck.info/iehttpheaders/iehttpheaders.html&lt;/a&gt; - просмотр заголовков&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;amp;displaylang=en"&gt;весьма мощный аналог фаербага&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Safari:&lt;br /&gt;&lt;/span&gt;ctrl+shift+j открывает консоль ошибок.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-4350340931862208553?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/4350340931862208553/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=4350340931862208553' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4350340931862208553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4350340931862208553'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/07/blog-post.html' title='Отладка скриптов в браузерах'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-6448011747623568801</id><published>2007-06-27T03:37:00.000+04:00</published><updated>2007-06-27T04:28:25.308+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mojura'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>inc и onc - братья универсалы</title><content type='html'>Разродился статьёй по поводу давно используемых мной двух функций для подгрузки и выполнения кода на php.&lt;br /&gt;это и темплейтный движок, и фабрика, и реестр, и организация пакетов...&lt;br /&gt;и всё это в двух флаконах суммарным объёмом в 25 строчек! =^_^=&lt;br /&gt;&lt;br /&gt;подробности: &lt;a href="http://php.ru/forum/viewtopic.php?t=6406"&gt;http://php.ru/forum/viewtopic.php?t=6406&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-6448011747623568801?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/6448011747623568801/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=6448011747623568801' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6448011747623568801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/6448011747623568801'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/06/inc-onc.html' title='inc и onc - братья универсалы'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-950225665151632048</id><published>2007-06-09T05:10:00.000+04:00</published><updated>2007-07-28T10:40:43.377+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jabber'/><title type='text'>полезные жаббер боты</title><content type='html'>не буду рассказывать о транспортах в другие пейджинговые сети - в инете материала полно, даже с картинками. а пойдёт речь о ботах с публичным доступом.&lt;br /&gt;вот, что мне удалось нарыть:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;mueller{нэко}translate{нэзу}jrudevels{нэзу}org&lt;/span&gt; - англо-&gt;русский словарь&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;er{нэко}translate{нэзу}jrudevels{нэзу}org&lt;/span&gt; - англо-&gt;русский переводчик&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;re{нэко}translate{нэзу}jrudevels{нэзу}org&lt;/span&gt; - русско-&gt;английский переводчик&lt;br /&gt;если покопаться на том же сервере - можно найти переводчики и между другими языками: итальянский, немецкий, французский, испанский, португальский.&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;jabrss{нэко}cmeerw{нэзу}net&lt;/span&gt; - rss синдикатор, долго его искал, но всё-таки нашёл. спросите у него "help" и он выдаст поддерживаемые команды. если что будет не понятно - юзайте ботов-переводчиков ;-)&lt;br /&gt;Сейчас добавил rss прогноз погоды от gismeteo.ru - посмотрим, насколько это окажется полезным...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;whois{нэко}swissjabber{нэзу}ch&lt;/span&gt; - просто whois сервис.&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;eliza{нэко}swissjabber{нэзу}org&lt;/span&gt; - легендарный чат-бот Eliza - на случай, если на ваш статус "!!!ХАЧУ АПСЧАТЬСЯ!!!" никто не обращает внимания -_^&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;lists{нэко}jabber{нэзу}ivanovo{нэзу}ru&lt;/span&gt; - несколько рассылок. ничего интересного, кроме одной - анекдот с anekdotov.net раз в час.&lt;br /&gt;&lt;br /&gt;ещё нашёл забавный транспорт - &lt;span style="font-weight: bold;"&gt;echo.jabber.uz&lt;/span&gt; - повторяет за вами реплики ^_^ думаю он сойдёт для теста "а не отвалился ли у меня интернет"...&lt;br /&gt;&lt;br /&gt;пока это всё. не густо, конечно... хотелось бы ещё интерактивных ботов... например, неплохо было бы поиграть в MUD через джаббер ^_^&lt;br /&gt;&lt;br /&gt;также нашёл асечного бота: &lt;span style="font-weight: bold;"&gt;757555&lt;/span&gt; - он там много чего умеет, устанешь перечислять.&lt;br /&gt;и ещё один: &lt;span style="font-weight: bold;"&gt;5522117&lt;/span&gt; - http://kaleostra.info/bot/index2.html - список его команд. вообще, масштабный сервис люди замутили... особенно прикололо чтение книг ^_^&lt;br /&gt;ps: чем дальше влез, тем веселее ползти: &lt;span style="font-weight: bold;"&gt;56544550&lt;/span&gt; - пачка всякой всячины&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-950225665151632048?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/950225665151632048/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=950225665151632048' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/950225665151632048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/950225665151632048'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/06/blog-post_09.html' title='полезные жаббер боты'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-7158138855131950004</id><published>2007-06-07T19:40:00.000+04:00</published><updated>2007-06-07T19:42:46.778+04:00</updated><title type='text'>Блог о музыке</title><content type='html'>Поднял блог о музыке: &lt;a href="http://wagaku.blogspot.com/"&gt;http://wagaku.blogspot.com/&lt;/a&gt;&lt;br /&gt;Буду туда выкладывать музыку в гибридном качестве с интегированной лирикой&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-7158138855131950004?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/7158138855131950004/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=7158138855131950004' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7158138855131950004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/7158138855131950004'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/06/blog-post_07.html' title='Блог о музыке'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-332750119361763296</id><published>2007-06-03T06:06:00.000+04:00</published><updated>2007-06-03T06:45:29.293+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlite'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='деревья'/><title type='text'>Деревья теперь и в MySQL</title><content type='html'>написал драйвер для mysql и на той же страничке выложил их сравнительное тестирование.&lt;br /&gt;&lt;br /&gt;ну что я могу сказать? мускул благодаря индексам резв как ястреб, особенно на небольших выборках.  убирание индексов - равносильно бетонной стене - всё останавливается. sqlite как-то к этому более прохладен.&lt;br /&gt;&lt;br /&gt;в мускуле наблюдаюся странные тормоза при выборке всех предков. видимо он забывает, что у него есть индексы, которые было бы неплохо заюзать %-\&lt;br /&gt;&lt;br /&gt;пока адаптировал DirecTree под мускул весь на мат изошёл...&lt;br /&gt;1. мускул требует либо указывать для полей имена таблиц, либо брать имена таблиц в бэктики, которые не совместимы с другими БД.&lt;br /&gt;2. мускул не позволяет сделать модификацию таблицы, если в запросе используется подзапрос вытягивающий данные из этой же таблицы. идиотизм какой-то...&lt;br /&gt;&lt;br /&gt;вроде поборол, но, смотря на код, самому тошно... надо будет переписать...&lt;br /&gt;&lt;br /&gt;функцию install под мускул пока не тестировал - остальные вроде работают нормально.&lt;br /&gt;&lt;br /&gt;ссылка та же: &lt;a href="http://dark-demon.jino-net.ru/directree/"&gt;http://dark-demon.jino-net.ru/directree/&lt;/a&gt; тока не злоупотребляйте рефрешем ^_8&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-332750119361763296?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/332750119361763296/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=332750119361763296' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/332750119361763296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/332750119361763296'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/06/mysql.html' title='Деревья теперь и в MySQL'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-2466013216642917548</id><published>2007-06-01T06:24:00.000+04:00</published><updated>2007-06-03T06:05:53.192+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlite'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='деревья'/><title type='text'>Организация деревьев в реляционных базах данных</title><content type='html'>сага об изобретении велосипеда: &lt;a href="http://php.ru/forum/viewtopic.php?t=5303"&gt;http://php.ru/forum/viewtopic.php?t=5303&lt;/a&gt;&lt;br /&gt;и вот к чему это в итоге привело: &lt;a href="http://dark-demon.jino-net.ru/directree/"&gt;http://dark-demon.jino-net.ru/directree/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;не буду особо распространяться относительно подробностей реализации разных алгоритмов огранизации деревьев (при необходимости вы легко найдёте их в гугле), только приведу их краткий список:&lt;br /&gt;1. таблица смежности - каждый узел хранит ссылку на родителя. фиг выберешь поддерево одним запросом. как следствие - тормоза при больших вложениях, особенно, если sql-сервер стоит на отдельной машине.&lt;br /&gt;2. материализованный путь - каждый узел хранит ссылки на предков в строковой переменной. поиск по подстроке - забудьте о скорости и глубоких деревьях.&lt;br /&gt;3. вложенные множества - все узлы выстроены в линию и каждый узел хранит свой номер и номер последнего потомка. очень большой плюс - естественное упорядочивание дерева. очень серьёзный минус - необходимость перелопачивать половину базы данных при изменениях.&lt;br /&gt;4. таблица смежностей + кэш связей. в кэше хранятся все линки предок-потомок. большая избыточность при глубоких деревьях.&lt;br /&gt;&lt;br /&gt;мною реализован последний вариант в виде библиотеки, которую легко подключить к уже существующей таблице смежностей. база данных пока поддержиается только sqlite, но драйвера для других баз пишутся элементарно (для  прикидки - драйвер sqlite занимает около полусотни строчек кода).&lt;br /&gt;&lt;br /&gt;особенность реализации: добавление листа не увеличивает размер кэш таблицы, но вот трансформация листа во внутренний узел (добавление хотябы одного ребёнка) увеличивает размер кэш-таблицы пропорционально глубине этого узла. все выборки идут одним запросом, модификации затрагивают сравнительно небольшое число строк. для удобного составления запросов - есть набор хелперов, позволяющих не вникать в тонкости работы кэша.&lt;br /&gt;&lt;br /&gt;сия штука замечательно подходит в случае сравнительно неглубоких деревьев с большим числом листьев. например, для обычного линейного форума с произвольной иерархией разделов.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-2466013216642917548?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/2466013216642917548/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=2466013216642917548' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2466013216642917548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2466013216642917548'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/06/blog-post.html' title='Организация деревьев в реляционных базах данных'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-5792315944161823912</id><published>2007-05-23T16:59:00.000+04:00</published><updated>2007-09-18T02:49:18.077+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>Продолжая тему Аякса...</title><content type='html'>То есть продолжная &lt;a href="http://darkodemon.blogspot.com/2007/05/ajax.html"&gt;эту тему&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;теперь на странице достаточно вставить ссылку, задать для неё соответствующий класс и вместо неё будет подгружен контент из другого файла:&lt;br /&gt;&lt;br /&gt;&amp;lt;a class="j-frame" href="rightside.xml"&amp;gt;правое меню&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;br /&gt;более того, подгружать контент можно и динамически:&lt;br /&gt;&lt;br /&gt;jFrameLoad($('element-id'),URI);&lt;br /&gt;&lt;br /&gt;первым параметром идёт ссылка на элемент, вторым - ссылка на документ.&lt;br /&gt;&lt;br /&gt;пример реализации тут: &lt;a href="http://dark-demon.nm.ru/web/samples/xhtml/index.xml#maintemplate"&gt;http://dark-demon.nm.ru/web/samples/xhtml/index.xml#maintemplate&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-5792315944161823912?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/5792315944161823912/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=5792315944161823912' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5792315944161823912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/5792315944161823912'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post_5931.html' title='Продолжая тему Аякса...'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-8083615547170851676</id><published>2007-05-23T15:59:00.000+04:00</published><updated>2007-05-23T16:44:32.609+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><category scheme='http://www.blogger.com/atom/ns#' term='doctype'/><title type='text'>ИЕ, почему ты пытаешься делать то, чего не умеешь?</title><content type='html'>Совершенно случайно сегодня выяснил, что если для xml файла указать доктайп, то ИЕ этот  dtd скачает и попытается проверить соответствие xml этому dtd. Всё бы хорошо, но...&lt;br /&gt;1. Некоторые dtd он не может распарсить, выдавая при этом разные ошибки синтаксиса. например - html4.1 strict&lt;br /&gt;2. С другими же он на некоторое время подвисает - на моём двуядерном горе - от одной до  трёх секунд.&lt;br /&gt;&lt;br /&gt;В итоге пришёл к выводу, что доктайп лучше не указывать. xml - он и без доктайпа xml ^_^. Правда есть один минус - валидатор не хочет проверять, поэтому ему нужно явно указывать в соответствии с каким dtd нужно осуществлять проверку...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-8083615547170851676?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/8083615547170851676/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=8083615547170851676' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8083615547170851676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/8083615547170851676'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post_1412.html' title='ИЕ, почему ты пытаешься делать то, чего не умеешь?'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-2774528865477579533</id><published>2007-05-23T13:16:00.000+04:00</published><updated>2007-09-29T18:55:56.957+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='языки'/><title type='text'>ши ши ши ши ши</title><content type='html'>Потрясающее китайское стихотворение:&lt;br /&gt;&lt;a href="http://ru.wikipedia.org/wiki/%D0%A8%D0%B8_%D1%88%D0%B8_%D1%88%D0%B8_%D1%88%D0%B8_%D1%88%D0%B8"&gt;http://ru.wikipedia.org/wiki/Ши_ши_ши_ши_ши&lt;/a&gt;&lt;br /&gt;велик и могуч китайский язык! ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-2774528865477579533?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/2774528865477579533/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=2774528865477579533' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2774528865477579533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2774528865477579533'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post_23.html' title='ши ши ши ши ши'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-3094872057223792051</id><published>2007-05-16T01:39:00.000+04:00</published><updated>2007-05-16T02:01:09.914+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>свежий взгляд на AJAX</title><content type='html'>сегодня, наконец, сделал давно задуманную фичу: на одной странице находится фрейм, в него грузится другая страница, которая после загрузки лезет к родительскому фрейму и заменяет его на див в который пихает всё своё содержимое. в результате получается, как буд-то бы данные из второй страницы изначально были в первой. вот такой вот интересный AJAX получился (^_^)&lt;br /&gt;ссылка всё та же:&lt;a href="http://dark-demon.nm.ru/web/samples/xhtml/index.xml#maintemplate"&gt; http://dark-demon.nm.ru/web/samples/xhtml/index.xml#maintemplate&lt;/a&gt; (правый сайдбар именно так и вставлен)&lt;br /&gt;весь скрипт реализующий этот аякс занимает всего ничего:&lt;br /&gt;&lt;pre&gt;if (fr= window.frameElement) {&lt;br /&gt;  if (isClass(fr,'j-autoreplace')) {&lt;br /&gt;    var el= fr.ownerDocument.createElement('div');&lt;br /&gt;    el.innerHTML=&lt;br /&gt;      document.getElementsByTagName('body')[0].innerHTML;&lt;br /&gt;    fr.parentNode.replaceChild(el,fr);&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;это ультракомпактно по сравнению с конкурентами (^___^)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-3094872057223792051?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/3094872057223792051/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=3094872057223792051' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/3094872057223792051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/3094872057223792051'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/ajax.html' title='свежий взгляд на AJAX'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-4205744574281592839</id><published>2007-05-15T21:56:00.000+04:00</published><updated>2007-05-22T01:30:38.277+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='xslt'/><title type='text'>как побороть рекламу на бесплатном хостинге?</title><content type='html'>некоторые бесплатные хостинги впендюривают свою рекламу куда ни попадя. jino-net, например, вешает свой баннер справа вверху страницы. newmail - добавляет в конец страницы форму ввода (зачем??).&lt;br /&gt;кроме порчи внешнего вида портится и вся вёрстка, что помимо невозможности применения html валидатора и консоли ошибок (ибо ошибок в итоге получается вагон и маленькая тележка) грозит ещё и непонятными глюками в рендеринге страницы.&lt;br /&gt;борятся с этим обычно добавляя в конец страницы хитрую комбирацию тэгов и скриптов, которые деактивируют вредоносный баннер, но вёрстка получается ещё более плачевной.&lt;br /&gt;как с этим бороться? да очень просто - переименуйте ваши html файлы в *.xml и если они будут являться валидным xhtml  - в опере и мозилле вы увидите страницу без каких-либо признаков баннеров. с ИЕ ситуация сложнее - ему нужно объяснить, что то, что скрывается у вас под расширением xml, является на самом деле html. для этого можно применить xslt преобразование, которое можно взять, например, отсюда: &lt;a href="http://www.w3.org/MarkUp/2004/xhtml-faq#ie"&gt;http://www.w3.org/MarkUp/2004/xhtml-faq#ie&lt;/a&gt;.&lt;br /&gt;а также из моего примера: &lt;a href="http://dark-demon.nm.ru/web/samples/xhtml/index.xml"&gt;http://dark-demon.nm.ru/web/samples/xhtml/index.xml&lt;/a&gt;&lt;br /&gt;первый - самый простой и быстрый. второй же позволяет дополнительно трансформировать файл.&lt;br /&gt;я проверил также на jino-net.ru - исправно работает. на других хостингах тоже не должно возникнуть проблем.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-4205744574281592839?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/4205744574281592839/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=4205744574281592839' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4205744574281592839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4205744574281592839'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post_15.html' title='как побороть рекламу на бесплатном хостинге?'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-85223914323605401</id><published>2007-05-12T18:48:00.000+04:00</published><updated>2007-06-14T11:05:28.322+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>логи и php - две вещи не совместимые.</title><content type='html'>всё началось с того, что я на php используя лямбда-функции реализовал кэширование исполняемого php кода.  работало всё просто замечательно - один и тот же файл можно было инклудить хоть по сотне раз без особых потерь в скорости.&lt;br /&gt;проблема в том, что в процессе написания скриптов неизбежны ошибки и в логах было бы неплохо, если бы писалось в каком файле она находится, а не в каком была создана лямбда-функция, которая создаётся в одном и том же файле. поковырявшись с отловом ошибок получилась такая вот замечательная штука, которая заносит расширенную информацию об ошибке в sqlite базу: &lt;a href="http://dark-demon.jino-net.ru/samples/demologs/"&gt;http://dark-demon.jino-net.ru/samples/demologs/&lt;/a&gt;&lt;br /&gt;всё бы хорошо, да вот самые главные ошибки - фатальные - средствами php не отловить (@_@). разве что ошибки парсинга...&lt;br /&gt;в общем, время потрачено впустую (#_#) поэтому для кэширования скриптов остаётся юзать APC, либо его аналогов.&lt;br /&gt;&lt;br /&gt;можете записывать меня в php-ненавистники.&lt;br /&gt;&lt;br /&gt;раз уж написан лог-вьювер - не пропадать же добру - решил я парсить стандартные логи, чтобы выводить их группированными по реквесту, как в примере по ссылке выше. но не тут-то было - бесплатные хостеры почему-то скрывают логи апача, а в логи php не пишется реквест. "мдя", - подумал я и плюнул на это дело...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-85223914323605401?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/85223914323605401/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=85223914323605401' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/85223914323605401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/85223914323605401'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/php.html' title='логи и php - две вещи не совместимые.'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-3359038159839839701</id><published>2007-05-09T16:56:00.000+04:00</published><updated>2007-05-09T17:02:01.379+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='графическая эстетика'/><title type='text'>красивенные обои</title><content type='html'>и бордюры к ним: &lt;a href="http://www.theinspirationgallery.com/borders/"&gt;http://www.theinspirationgallery.com/borders/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-3359038159839839701?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.theinspirationgallery.com/wallpaper/' title='красивенные обои'/><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/3359038159839839701/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=3359038159839839701' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/3359038159839839701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/3359038159839839701'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post_9902.html' title='красивенные обои'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-2495896129179337759</id><published>2007-05-09T16:12:00.000+04:00</published><updated>2007-05-09T16:15:58.085+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='графическая эстетика'/><title type='text'>рандомные синтетические картинки</title><content type='html'>недецкий рулёз, очень советую посетить.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-2495896129179337759?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.levitated.net/gravityIndex.html' title='рандомные синтетические картинки'/><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/2495896129179337759/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=2495896129179337759' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2495896129179337759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2495896129179337759'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post_9836.html' title='рандомные синтетические картинки'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-2228618726426418747</id><published>2007-05-09T13:51:00.000+04:00</published><updated>2007-05-09T13:59:59.446+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>гугол разочаровывает</title><content type='html'>мда... я ожидал от гугла большего... другие сервисы у него просто замечательные, а этот блог - кривая поделка.&lt;br /&gt;&lt;br /&gt;"хочешь чтобы было сделано хорошо - сделай это сам", - не раз убеждался в истинности этой поговорки.&lt;br /&gt;&lt;br /&gt;гугол совсем разленился - вместо того, чтобы сделать качественный продукт типа того же gmail - стали скупать чужие поделки. печально [o_o]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-2228618726426418747?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/2228618726426418747/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=2228618726426418747' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2228618726426418747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/2228618726426418747'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post_4919.html' title='гугол разочаровывает'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-985166509778455317</id><published>2007-05-09T13:44:00.000+04:00</published><updated>2007-09-18T02:48:42.849+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xslt'/><title type='text'>XHTML в массы!</title><content type='html'>Демка моего XHTML+XSLT+CSS+JS фреймворка с пояснениями: &lt;a href="http://dark-demon.nm.ru/web/samples/xhtml/index.xml"&gt;http://dark-demon.nm.ru/web/samples/xhtml/index.xml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Поскольку своего движка на PHP я ещё не написал, комменты постим здесь, на этом кривом блоге.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-985166509778455317?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/985166509778455317/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=985166509778455317' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/985166509778455317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/985166509778455317'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/xhtml.html' title='XHTML в массы!'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-379888155078462634</id><published>2007-05-09T12:50:00.000+04:00</published><updated>2007-05-09T15:45:45.900+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='превед'/><title type='text'>албанский превед!</title><content type='html'>копался сегодня в настройках блога. примечательно, что язык по умолчанию стоял "албанский" ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-379888155078462634?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/379888155078462634/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=379888155078462634' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/379888155078462634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/379888155078462634'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post_09.html' title='албанский превед!'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8221890338383304045.post-4006376687455152243</id><published>2007-05-09T11:17:00.000+04:00</published><updated>2007-05-09T13:48:47.052+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hello world'/><title type='text'>hello world</title><content type='html'>привет мир&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8221890338383304045-4006376687455152243?l=darkodemon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkodemon.blogspot.com/feeds/4006376687455152243/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8221890338383304045&amp;postID=4006376687455152243' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4006376687455152243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8221890338383304045/posts/default/4006376687455152243'/><link rel='alternate' type='text/html' href='http://darkodemon.blogspot.com/2007/05/blog-post.html' title='hello world'/><author><name>Dark-Demon</name><uri>http://www.blogger.com/profile/06177978888851333946</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry></feed>
