<?xml version='1.0' encoding='windows-1251'?>
<rss version='2.0' xmlns:ya='http://blogs.yandex.ru/yarss/' xmlns:wfw='http://wellformedweb.org/CommentAPI/'>

<channel>
  <title>Леонид Каганов: блог</title>
  <lastBuildDate>Sat, 25 Feb 2012 17:17:40 +0400</lastBuildDate>
  <link>http://lleo.me/blog/</link>
  <description>Леонид Каганов: блог</description>
  <generator>LLeoBlog 3.0</generator>
  <wfw:commentRss>http://lleo.me/blog/rssc</wfw:commentRss>
  <ya:more>http://lleo.me/blog/rss.xml?skip=10</ya:more>
  <image>
    <url>http://lleo.me/blog/design/userpick.jpg</url>
    <width>120</width>
    <height>155</height>
  </image>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2012/02/23.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Thu, 23 Feb 2012 03:49:21 +0400</pubDate>
	<link>http://lleo.me/blog/2012/02/23.html</link>
	<description>&lt;p class=pd&gt;Ситуация: на странице открываются разные окна (например, окно комментария и т.п.)&lt;p class=pd&gt;Надо сделать так, чтобы верхнее выглядело активным, а все остальные вместе с самой страницей — чуть более тусклыми.&lt;p class=pd&gt;При этом надо, чтобы на странице все продолжало нажиматься! А все остальные открытые окна тоже были доступны для клика (например, с целью переключения на них).&lt;p class=pd&gt;Для примера вызовите два окна комментария, слегка разнесите их по сторонам экрана (мышкой за каемочку) и покликайте между ними: я сейчас сделал для примера активное красным бордюром-точками. Когда кликаешь на какое-нибудь из открытых окон — ему присваивается самый большой z-index и оно становится поверх всех (я специальную завел переменную=10 и увеличиваю ее++).&lt;p class=pd&gt;Так вопрос: можно ли еще и затемнение остальных грамотное сделать?&lt;p class=pd&gt;Из подручных средств есть, например, setOpacity(id,0.4);&lt;p class=pd&gt;Мне посоветовали создавать поверх главного окна темный DIV и предмаксимальным z-index и менять его прозрачность. Но это отстой и дурной тон: тогда на странице ничего не нажимается и не выделяется. А у нас не та идеология движка, чтоб открытие на странице какого-то вспомогательного окна становилось адским ЧП, замораживающим всю остальную жизнь.</description>
	<title>2012/02/23 - Прошу совета: как бросить тень?</title>
	<comments>http://lleo.me/blog/2012/02/23.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/12/09.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Fri, 09 Dec 2011 16:12:02 +0400</pubDate>
	<link>http://lleo.me/blog/2011/12/09.html</link>
	<description>&lt;p class=pd&gt;Один добрый человек решил подарить мне домен kaganov.ru&lt;p class=pd&gt;Я не очень понимаю, зачем он мне и что с ним делать, поэтому в свое время его не регистрировал. Но от подарка отказываться глупо, да и логично, чтобы он был у меня, раз уж Каганов — это я.&lt;p class=pd&gt;Осталось надо найти регистратора, к которому перенести. А я пока по доменам только с godaddy.com имею опыт общения, с российскими регистраторами не работал.&lt;p class=pd&gt;Подскажите хорошего недорогого регистратора, к которому можно перенести доменную регистрацию (хостинг не нужен) без поездок по офисам с паспортом?</description>
	<title>2011/12/09 - а посоветуйте мне регистратора?</title>
	<comments>http://lleo.me/blog/2011/12/09.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/11/27.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Sat, 25 Feb 2012 17:17:40 +0400</pubDate>
	<link>http://lleo.me/blog/2011/11/27.html</link>
	<description>&lt;p class=pd&gt;Берем Линукс.&lt;p class=d&gt;Ставим утилитку listener: sudo apt-get install listener&lt;p class=pd&gt;Создаем папку, делаем в ней listener.conf:&lt;p class=d&gt;&lt;blockquote style=&#39;border: 1px dashed rgb(255,0,0); padding: 20px; margin-left: 50px; margin-right: 50px; background-color: rgb(255,252,223);&#39;&gt;wav_path = /tmp/&lt;p class=d&gt;fname_template = 1.wav&lt;p class=d&gt;devname = /dev/dsp&lt;p class=d&gt;detect_level = 800&lt;p class=d&gt;min_duration = 1&lt;p class=d&gt;rec_silence = 0&lt;p class=d&gt;max_duration = 600&lt;p class=d&gt;min_triggers = 15&lt;p class=d&gt;sample_rate = 22050&lt;p class=d&gt;channels = 1&lt;p class=d&gt;format=wav&lt;p class=d&gt;compression = a-law&lt;p class=d&gt;amplify = on&lt;p class=d&gt;start_amplify = 1.5&lt;p class=d&gt;max_amplify = 10.0&lt;p class=d&gt;fixed_amplify = no&lt;p class=d&gt;exec = ./listener.php&lt;/blockquote&gt;&lt;p class=pd&gt;Тут же рядом создаем listener.php (ну, php в системе должен иметься, разумеется):&lt;p class=d&gt;&lt;blockquote style=&#39;border: 1px dashed rgb(255,0,0); padding: 20px; margin-left: 50px; margin-right: 50px; background-color: rgb(255,252,223);&#39;&gt;#!/usr/bin/php&lt;p class=pd&gt;&amp;lt;?php&lt;p class=d&gt;if(!empty($argv[1])) &amp;#123; $name=$argv[1]; if(is_file($name) &amp;amp;&amp;amp; strstr($name,&amp;#39;.wav&amp;#39;)) unlink($name); &amp;#125;&lt;p class=d&gt;$TOL=&amp;#34;/tmp/lst.flg&amp;#34;; if(time()-filemtime($TOL) &amp;lt; 6) &amp;#123; touch($TOL); exit; &amp;#125; touch($TOL);&lt;p class=d&gt;$a=glob(&amp;#34;./smeh/*.mp3&amp;#34;); exec(&amp;#34;/usr/bin/play \&amp;#34;&amp;#34;.$a[rand(0,sizeof($a)-1)].&amp;#34;\&amp;#34;&amp;#34;);&lt;p class=d&gt;?&amp;gt;&lt;/blockquote&gt;&lt;p class=pd&gt;Создаем рядом папку ./smeh/ и кладем в нее звуковые сэмплы.mp3, например people-laughing-*.mp3 &lt;a href=&#39;http://mp3skull.com/mp3/people_laughing.html&#39;&gt;отсюда&lt;/a&gt;&lt;p class=pd&gt;Запускаем всю конструкцию такой командой:&lt;p class=d&gt;touch /tmp/lst.flg ; aoss listener -f -c ./listener.conf&lt;p class=pd&gt;Результат: мы получили фичу, которая пасет звук с микрофона, дожидается, пока продолжаются шум и голоса, и как только наступит пауза, выдает закадровый смех как в телесериале.&lt;p class=pd&gt;Такой ноутбук с громкими колонками очень оживляет любое застолье, не говоря уже про деловые переговоры.&lt;p class=pd&gt;Кому нужны более подробные исходники: &lt;a href=&#39;smex.zip&#39;&gt;smex.zip&lt;/a&gt;</description>
	<title>2011/11/27 - Воскресная передача &#34;сделай сам&#34;</title>
	<comments>http://lleo.me/blog/2011/11/27.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/11/24.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Thu, 24 Nov 2011 15:06:23 +0400</pubDate>
	<link>http://lleo.me/blog/2011/11/24.html</link>
	<description>&lt;p class=pd&gt;&lt;i&gt;Научная станция «Фобос-грунт» вышла на связь с европейцами после двух недель молчания. Как сообщил «Интерфаксу-АВН» в среду глава представительства ЕКА В России Рене Пишель, во время сеанса связи, состоявшегося прошедшей ночью, европейская станция не получила телеметрическую информацию. «Но мы и дальше будем работать с нашими российскими коллегами, чтобы связаться с аппаратом «Фобос-грунт», – пояснил он.&lt;/i&gt;&lt;p class=d&gt;&lt;a href=&#39;http://www.gazeta.ru/social/2011/11/23/3845246.shtml&#39;&gt;http://www.gazeta.ru/social/2011/11/23/3845246.shtml&lt;/a&gt;&lt;p class=pd&gt;Ко мне попала полная стенограмма сеанса связи, я ничего не понял, но опубликую на всякий случай:&lt;p class=pd&gt;&lt;center&gt;&lt;table style=&#39;border-collapse: collapse; border: 1px solid red; margin: 20pt;&#39; bgcolor=#fffff0 border=1 cellpadding=20&gt;&lt;td&gt;&lt;div align=justify&gt;atz^C&lt;p class=d&gt;atz^C&lt;p class=d&gt;atz^C&lt;p class=d&gt;atz^C&lt;p class=d&gt;atz&lt;p class=d&gt;OK&lt;p class=d&gt;wow!!!!!!!!!!!!!!!!111&lt;p class=d&gt;ERROR&lt;p class=d&gt;sorry&lt;p class=d&gt;ERROR&lt;p class=d&gt;atq0 v1 e1 speed=0 auto=0 autofly=0 reset=1 restart=1&lt;p class=d&gt;OK&lt;p class=d&gt;wow!!!!!!!!!11&lt;p class=d&gt;ERROR&lt;p class=d&gt;atdp fobosgrunt&lt;p class=d&gt;BUSY&lt;p class=d&gt;BUSY&lt;p class=d&gt;BUSY&lt;p class=d&gt;^C&lt;p class=d&gt;atdp fobosgrunt&lt;p class=d&gt;BUSY&lt;p class=d&gt;^C&lt;p class=d&gt;atdp fobosgrunt&lt;p class=d&gt;NO DIALTONE&lt;p class=d&gt;atz&lt;p class=d&gt;atz^C&lt;p class=d&gt;qwerqwerwerwer^C&lt;p class=d&gt;qwerwedfqwewqrewrrqwerqwerqwer fuck!!!!!!!!!!!!!!^C&lt;p class=d&gt;^C^C&lt;p class=d&gt;&lt;/td&gt;&lt;/table&gt;&lt;/center&gt;</description>
	<title>2011/11/24 - Сеанс связи с &#34;Фобос-грунт&#34;</title>
	<comments>http://lleo.me/blog/2011/11/24.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/11/22.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Wed, 23 Nov 2011 01:28:19 +0400</pubDate>
	<link>http://lleo.me/blog/2011/11/22.html</link>
	<description>&lt;p class=pd&gt;Firefox что-то сошел с ума. Во-первых, там, похоже, завелся какой-то коммерческий директор, который разжевал, что если начать каждую неделю выпускать обновление с новым номером 6,7,8,100500, это будет гораздо успешнее, чем выпускать версию 2.0.1, а через год 2.0.2. Но дело не в этом. С какого-то момента я обнаружил, что иконки в блоге стали мутноватыми. Особенно это хорошо видно по иконке форматирования в редакторе блога, вот я их выстроил в ряд:&lt;p class=pd&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;img src=http://lleo.me/blog/design/e2/justifycenter.gif style=&#39;border:1px solid #ccc;padding:5px;&#39;&gt;&lt;p class=pd&gt;Уж не знаю, как это выглядит у вас, но у меня они стали мутными с какого-то времени. Выяснилось, что у меня было включено по ctrl -/ctrl + уменьшение или увеличение шрифта. И «нормально» иконки выглядят только в масштабе 100%. А если ты чуть увеличил или уменьшил шрифт, то Firefox новых версий решает, что надо и все фотки/иконки тоже слегка отмасштабировать. Но делать это не умеет, поэтому результат выглядит так — сверху вниз «уменьшенное»-«нормальное»-«увеличенное»:&lt;p class=pd&gt;&lt;img src=firefox_ohuel.png&gt;&lt;p class=pd&gt;Скажите им кто-нибудь, что они долбонаты и быдлокодеры. И научите уменьшать картинки простым вырезанием строк, без гауссовского размывания или что за сверхмудрой математикой они решили загрузить нас и наши процессоры.&lt;p class=pd&gt;&lt;b&gt;UPD:&lt;/b&gt; Вот в комментах silv подсказывает: в меню Firefox выбрать View («Вид») —&amp;gt; Zoom («Масштаб») —&amp;gt; Zoom text only («Только текст»).</description>
	<title>2011/11/22 - Мутные картинки Firefox</title>
	<comments>http://lleo.me/blog/2011/11/22.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/11/18.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Sat, 19 Nov 2011 01:35:21 +0400</pubDate>
	<link>http://lleo.me/blog/2011/11/18.html</link>
	<description>&lt;p class=pd&gt;Чтобы не верстать кучи html для разных сущностей, сделал простенький, но полезный модуль DAT. Ему задаются строки, в каждой из которых сущности разделены знаком |. А также — template, в котором описано, что взамен каждой строки написать, считая первый аргумент {0}, второй {1} ... и т.д. Пример:&lt;p class=pd&gt;&amp;#123;_DAT: template=&amp;lt;br&amp;gt;&amp;#123;@MP3: http://lleo.me/audio/f5/&amp;#123;0&amp;#125; | mp3@&amp;#125; &amp;lt;a href=&amp;#39;/dnevnik/&amp;#123;1&amp;#125;.html&amp;#39;&amp;gt;&amp;#123;1&amp;#125; — &amp;#123;2&amp;#125;&amp;lt;/a&amp;gt;&lt;p class=pd&gt;konoplya.mp3	| 2011/10/03 | Ода газетным новостям&lt;p class=d&gt;china.mp3	| 2011/09/26 | Ода про рис и репу&lt;p class=d&gt;uragan.mp3	| 2011/09/05 | Ода о несостоявшихся ураганах&lt;p class=d&gt;princ.mp3	| 2011/05/10 | Ода свадьбе принца Уильяма&lt;p class=pd&gt;_&amp;#125;&lt;p class=pd&gt;Результат:&lt;p class=pd&gt;&lt;center&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;center&gt;&lt;table&gt;&lt;tr valign=center&gt;&lt;td&gt;&lt;object classid=&#39;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&#39; type=&#39;application/x-shockwave-flash&#39; data=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fkonoplya.mp3&#39; wmode=&#39;transparent&#39; align=&#39;middle&#39; height=&#39;20&#39; width=&#39;300&#39;&gt;&lt;param name=&#39;movie&#39; value=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fkonoplya.mp3&#39; /&gt;&lt;param name=&#39;wmode&#39; value=&#39;transparent&#39; /&gt;&lt;param name=&#39;flashvars&#39; value=&#39;file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fkonoplya.mp3&#39; /&gt;&lt;embed type=&#39;application/x-shockwave-flash&#39; src=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fkonoplya.mp3&#39; wmode=&#39;transparent&#39; height=&#39;20&#39; width=&#39;300&#39; loop=&#39;false&#39;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/td&gt;&lt;td&gt;&lt;a class=br href=&#39;http://lleo.me/audio/f5/konoplya.mp3&#39;&gt;mp3&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/center&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=&#39;/dnevnik/2011/10/03.html&#39;&gt;2011/10/03 — Ода газетным новостям&lt;/a&gt;&lt;td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;center&gt;&lt;table&gt;&lt;tr valign=center&gt;&lt;td&gt;&lt;object classid=&#39;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&#39; type=&#39;application/x-shockwave-flash&#39; data=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fchina.mp3&#39; wmode=&#39;transparent&#39; align=&#39;middle&#39; height=&#39;20&#39; width=&#39;300&#39;&gt;&lt;param name=&#39;movie&#39; value=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fchina.mp3&#39; /&gt;&lt;param name=&#39;wmode&#39; value=&#39;transparent&#39; /&gt;&lt;param name=&#39;flashvars&#39; value=&#39;file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fchina.mp3&#39; /&gt;&lt;embed type=&#39;application/x-shockwave-flash&#39; src=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fchina.mp3&#39; wmode=&#39;transparent&#39; height=&#39;20&#39; width=&#39;300&#39; loop=&#39;false&#39;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/td&gt;&lt;td&gt;&lt;a class=br href=&#39;http://lleo.me/audio/f5/china.mp3&#39;&gt;mp3&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/center&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=&#39;/dnevnik/2011/09/26.html&#39;&gt;2011/09/26 — Ода про рис и репу&lt;/a&gt;&lt;td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;center&gt;&lt;table&gt;&lt;tr valign=center&gt;&lt;td&gt;&lt;object classid=&#39;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&#39; type=&#39;application/x-shockwave-flash&#39; data=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Furagan.mp3&#39; wmode=&#39;transparent&#39; align=&#39;middle&#39; height=&#39;20&#39; width=&#39;300&#39;&gt;&lt;param name=&#39;movie&#39; value=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Furagan.mp3&#39; /&gt;&lt;param name=&#39;wmode&#39; value=&#39;transparent&#39; /&gt;&lt;param name=&#39;flashvars&#39; value=&#39;file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Furagan.mp3&#39; /&gt;&lt;embed type=&#39;application/x-shockwave-flash&#39; src=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Furagan.mp3&#39; wmode=&#39;transparent&#39; height=&#39;20&#39; width=&#39;300&#39; loop=&#39;false&#39;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/td&gt;&lt;td&gt;&lt;a class=br href=&#39;http://lleo.me/audio/f5/uragan.mp3&#39;&gt;mp3&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/center&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=&#39;/dnevnik/2011/09/05.html&#39;&gt;2011/09/05 — Ода о несостоявшихся ураганах&lt;/a&gt;&lt;td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;center&gt;&lt;table&gt;&lt;tr valign=center&gt;&lt;td&gt;&lt;object classid=&#39;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&#39; type=&#39;application/x-shockwave-flash&#39; data=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fprinc.mp3&#39; wmode=&#39;transparent&#39; align=&#39;middle&#39; height=&#39;20&#39; width=&#39;300&#39;&gt;&lt;param name=&#39;movie&#39; value=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fprinc.mp3&#39; /&gt;&lt;param name=&#39;wmode&#39; value=&#39;transparent&#39; /&gt;&lt;param name=&#39;flashvars&#39; value=&#39;file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fprinc.mp3&#39; /&gt;&lt;embed type=&#39;application/x-shockwave-flash&#39; src=&#39;/blog/design/mp3playerns.swf?file=http%3A%2F%2Flleo.me%2Faudio%2Ff5%2Fprinc.mp3&#39; wmode=&#39;transparent&#39; height=&#39;20&#39; width=&#39;300&#39; loop=&#39;false&#39;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/td&gt;&lt;td&gt;&lt;a class=br href=&#39;http://lleo.me/audio/f5/princ.mp3&#39;&gt;mp3&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/center&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=&#39;/dnevnik/2011/05/10.html&#39;&gt;2011/05/10 — Ода свадьбе принца Уильяма&lt;/a&gt;&lt;td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/center&gt;&lt;p class=pd&gt;PS: В силу особенностей модулей, если в темплейте встречается вызов модуля, его надо оформлять в других тэгах: {@ ... @} Иначе он преобразуется раньше, и в модуль DAT пойдет в темплейте результат его исполнения :)</description>
	<title>2011/11/18 - Модуль DAT</title>
	<comments>http://lleo.me/blog/2011/11/18.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/11/17.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Thu, 17 Nov 2011 06:23:49 +0400</pubDate>
	<link>http://lleo.me/blog/2011/11/17.html</link>
	<description>&lt;p class=pd&gt;Допилил модуль и сделал страничку &lt;a href=&#39;http://binoniq.net/list&#39;&gt;http://binoniq.net/list&lt;/a&gt;, на которой видно, что у нас вообще творится с аккаунтами, и у кого сколько &lt;i&gt;видимых&lt;/i&gt; записей. Добавил пока тэг &amp;#123;_IMG: http://site/fotka.jpg _&amp;#125; — так можно в записи картинки вставлять, а то без картинок совсем скучно.&lt;p class=pd&gt;Синхронизировал движок с базой, а то он был в отладочном режиме. Это значит, что он по-прежнему один и тот же: и в моем дневнике, и на Бинонике. Разница лишь в опции $mnogouser=1 в конфиге, любой человек может скачать и установить свой многопользовательский биноник.&lt;p class=pd&gt;Либо — вести на своем стэндалоне несколько разных блогов типа как у меня /dnevnik, /blog и /, только у меня три разных движка исторически живут, а вы можете настроить в DNS * IP и заводить свои http://dnevnik.site.ru, http://blog.site.ru и просто http://site.ru&lt;p class=pd&gt;Расскажу это место чуть подробнее. В движке теперь имеется страница /acc, которая позволяет создавать аккаунты. Чтобы создать аккаунт vasya на движке site.ru, надо зайти на http://vasya.site.ru/acc админом. После этого юзер, зарегистрировавшийся под логином vasya, сможет пользоваться своим аккаунтом.&lt;p class=pd&gt;Если вы хотите разрешить автоматическое создание аккаунтов всем желающим — страницу придется переделать. Вызовите ее редактирование (при этом движок ее создаст, как он поступает со всеми служебными страницами) и впишите не просто &amp;#123;_ACC:_&amp;#125;, а &amp;#123;_ACC: admin=0 _&amp;#125;. После этого страница будет позволять создавать аккаунты всем. Разумеется, также вы можете обвязать ее всяческими модулями доступа и паролями.&lt;p class=pd&gt;Чтобы видеть списки аккаунтов, я создал страницу &lt;a href=&#39;http://binoniq.net/list&#39;&gt;http://binoniq.net/list&lt;/a&gt; следующего содержания:&lt;p class=d&gt;&amp;#123;_ACC: mode=list&lt;p class=d&gt;sort=acc&lt;p class=d&gt;template=&amp;#34;&amp;lt;br&amp;gt;&amp;lt;a href=&amp;#39;&amp;#123;acc_link&amp;#125;contents&amp;#39;&amp;gt;&amp;#123;acc&amp;#125; (&amp;#123;count&amp;#125;)&amp;lt;/a&amp;gt;&amp;#34;&lt;p class=d&gt;_&amp;#125;&lt;p class=pd&gt;Кагбэ тут все ясно. Сортировка списка по &#39;acc&#39; (имя аккаунта), можно оставить &#39;&#39; или написать &#39;acn&#39; — по порядковому номеру. template определяет, как выводить аккаунты, при этом {acc} — его имя, {acc_link} — полный http-адрес, а {count} — число ВИДИМЫХ записей в аккаунте. Я точно не помню, видит ли чужие скрытые записи админ движка. Кажется, он видит их число, но сами записи не видит.&lt;p class=pd&gt;Как видим, система в самом минимальном объеме уже работоспособна — можно вести блоги, делать настройки и получать комментарии. С этого состояния начинали когда-то свою работу и livejournal и facebook. От того, насколько востребованно это окажется, зависит скорость, с которой появится все остальное. В ближайшие месяцы мы:&lt;p class=pd&gt;1. Переедем на двухдоменную систему авторизации, после чего станет возможно включить html и javascript как безвредные. Затем после беглой ревизии кода на предмет php и mysql-уязвимости мы включим все модули в том количестве и разнообразии возможностей, в каком они существуют у меня в движке.&lt;p class=pd&gt;2. Затем мы чуть-чуть перепилим опции авторизации, и станет возможно заводить личных друзей и выставлять личные капчи.&lt;p class=pd&gt;3. После этого мы допилим фотоальбом до многопользовательского режима, и станет возможно грузить и модерировать свои фотки, а также редактировать все css и шаблоны дизайна, и создавать свои.&lt;p class=pd&gt;4. Далее мы зафигачим небольшую админку настроек, потому что пока они все прописаны в config.php и будем планомерно отлавливать мелких блох и делать многоязыковую поддержку.&lt;p class=pd&gt;5. Ну а затем перейдем к самому интересному — построению сети множественных движков с протоколами обмена контентом и событиями, включая автоматическое восстановление данных из пользовательских кэшей при сбоях и недоступности узла. А далее с помощью ваших идей и пожеланий будем просто наращивать сервисный функционал и событийные взаимосвязи, потому что в этой архитектуре наращивать любой мыслимый функционал — одно удовольствие.&lt;p class=pd&gt;Так мне видится.&lt;p class=pd&gt;&lt;b&gt;UPD:&lt;/b&gt; Да, чуть не забыл: если после перестановки движка глючит авторизация, убейте в браузере админскую куку adm2 и adm и залогиньтесь заново. Эти цобаные браузеры не понимают, когда куку с областью «site.ru» устанавливают для «.site.ru» — браузер создает две куки с одинаковым именем и сходит с ума.</description>
	<title>2011/11/17 - ну, Биноник считаем в самом первом приближении слегка запущенным</title>
	<comments>http://lleo.me/blog/2011/11/17.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/11/09_2.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Thu, 10 Nov 2011 00:36:55 +0400</pubDate>
	<link>http://lleo.me/blog/2011/11/09_2.html</link>
	<description>&lt;p class=pd&gt;Опять Палант обнаружил дырки в движке — две. Позор мне.&lt;p class=pd&gt;Рекомендую обновиться.&lt;p class=pd&gt;Кроме того, я обновил систему логина. Теперь мы используем не виджет Логинзы, а виджет http://ulogin.ru — он гораздо более пристойный. Мы используем его для логина по OpenID и для соцсетей. В Логинзе обнаружена дыра, позволявшая провести регистрацию от имени любого пользователя любого сервиса. Господь им судья.</description>
	<title>2011/11/09_2 - Уязвимость</title>
	<comments>http://lleo.me/blog/2011/11/09_2.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/11/05.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Sat, 05 Nov 2011 23:25:48 +0400</pubDate>
	<link>http://lleo.me/blog/2011/11/05.html</link>
	<description>&lt;p class=pd&gt;Сделал авторизацию.&lt;p class=pd&gt;Срочно тестируем!&lt;p class=pd&gt;Если нужно разлогиниться - то вот &lt;input type=&#39;button&#39; value=&#39;разлогиниться&#39; onclick=&#39;logout2(1)&#39;&gt; (а еще работает дописать ?logout к любой странице).&lt;p class=pd&gt;&lt;script&gt;function logout2() {if(!confirm(&#39;Разлогиниться?&#39;)) return; salert(&#34;&lt;fieldset&gt;Сброшена авторизация&lt;/fieldset&gt;&#34;,1000); up=&#39;logout&#39;; fc_save(&#39;up&#39;,up); f5_save(&#39;up&#39;,up); c_save(uc,up); realname=&#39;logout&#39;;zabilc(&#39;myunic&#39;,&#34;&lt;input tiptitle=&#39;Login!&#39; value=&#39;anonymous&#39; onclick=\&#34;ifhelpc(&#39;http://lleo.me/blog/login&#39;,&#39;logz&#39;,&#39;Login&#39;)\&#34; type=&#39;button&#39;&gt;&#34;); }&lt;/script&gt;&lt;p class=pd&gt;</description>
	<title>2011/11/05 - тестируем аццки!</title>
	<comments>http://lleo.me/blog/2011/11/05.html</comments>
</item>

<item>
	<guid isPermaLink='true'>http://lleo.me/blog/2011/11/03.html</guid>
	<author>http://lleo.aha.ru</author>
	<pubDate>Thu, 03 Nov 2011 16:39:30 +0400</pubDate>
	<link>http://lleo.me/blog/2011/11/03.html</link>
	<description>&lt;p class=pd&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,Date:&#39;2011/02/02&#39;,idhead:&#39;bukahead&#39;})&#34;&gt;первое&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,Date:&#39;2011/01/05&#39;,idhead:&#39;bukahead&#39;})&#34;&gt;второе&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,Date:&#39;2010/08/03&#39;,idhead:&#39;bukahead&#39;})&#34;&gt;третье&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,Date:&#39;2010/05/30&#39;,idhead:&#39;bukahead&#39;})&#34;&gt;четвертое&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,Date:&#39;2010/09/02&#39;,idhead:&#39;bukahead&#39;})&#34;&gt;пятое&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,idhead:&#39;bukahead&#39;,Date:&#39;djhdhjkf&#39;})&#34;&gt;несуществующая&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,idhead:&#39;bukahead&#39;,Date:&#39;300kv&#39;})&#34;&gt;подзамочная&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,idhead:&#39;bukahead&#39;,Date:&#39;problema_razmernosti&#39;})&#34;&gt;закрытая&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka&#39;,idhead:&#39;bukahead&#39;,Date:&#39;Lena_Squotter&#39;})&#34;&gt;гигантская&lt;/a&gt;&lt;p class=d&gt;&lt;a href=&#34;javascript:zabil(&#39;buka&#39;,&#39;&#39;);zabil(&#39;bukahead&#39;,&#39;&#39;);&#34;&gt;сбросить&lt;/a&gt;&lt;p class=pd&gt;&lt;div style=&#39;border:5px dotted red&#39;&gt;&lt;p class=d&gt;&lt;h1 id=&#39;bukahead&#39;&gt;[место для заголовка]&lt;/h1&gt;&lt;p class=d&gt;&lt;div id=&#39;buka&#39;&gt;[место для заметки]&lt;/div&gt;&lt;p class=d&gt;&lt;/div&gt;&lt;p class=pd&gt;Смысл понятен? Даем движку аякс-запрос подгрузить тело заметки с num=123 (или Date=2011/11/03 или Date=rabota/arhive/page.html) в блок с указанным id, а заголовок заметки — в блок idhead (если он указан) — в моем примере эти блоки названы &#39;buka&#39; и &#39;bukahead&#39;. Так можно делать меню и прочие фишки. Код моего примера:&lt;p class=pd&gt;&lt;blockquote style=&#39;border: 1px dashed rgb(255,0,0); padding: 20px; margin-left: 50px; margin-right: 50px; background-color: rgb(255,252,223);&#39;&gt;&amp;lt;a href=&amp;#34;javascript:majax(&amp;#39;editor.php&amp;#39;,&amp;#123;a:&amp;#39;load&amp;#39;,id:&amp;#39;buka&amp;#39;,Date:&amp;#39;2010/09/02&amp;#39;,idhead:&amp;#39;bukahead&amp;#39;&amp;#125;)&amp;#34;&amp;gt;пятое&amp;lt;/a&amp;gt;&lt;p class=d&gt;&amp;lt;a href=&amp;#34;javascript:majax(&amp;#39;editor.php&amp;#39;,&amp;#123;a:&amp;#39;load&amp;#39;,id:&amp;#39;buka&amp;#39;,idhead:&amp;#39;bukahead&amp;#39;,Date:&amp;#39;Lena_Squotter&amp;#39;&amp;#125;)&amp;#34;&amp;gt;гигантская&amp;lt;/a&amp;gt;&lt;p class=d&gt;&amp;lt;a href=&amp;#34;javascript:zabil(&amp;#39;buka&amp;#39;,&amp;#39;&amp;#39;);zabil(&amp;#39;bukahead&amp;#39;,&amp;#39;&amp;#39;);&amp;#34;&amp;gt;сбросить&amp;lt;/a&amp;gt;&lt;p class=pd&gt;&amp;lt;div style=&amp;#39;border:5px dotted red&amp;#39;&amp;gt;&lt;p class=d&gt;&amp;lt;h1 id=&amp;#39;bukahead&amp;#39;&amp;gt;[место для заголовка]&amp;lt;/h1&amp;gt;&lt;p class=d&gt;&amp;lt;div id=&amp;#39;buka&amp;#39;&amp;gt;[место для заметки]&amp;lt;/div&amp;gt;&lt;p class=d&gt;&amp;lt;/div&amp;gt;&lt;/blockquote&gt;&lt;p class=pd&gt;PS: Ну и конечно имеет смысл сами списки ссылок на подгрузку делать автоматически по тегам или как-то еще, то есть комбинировать с модулем ANONS — пусть он сам сформирует код и подставить { num } тех заметок, которые найдет. Вот пример, который формирует список ссылок на заметки последнего года, не читанные посетителем, и подгружает их по наведению мышкой (зацените быстроту аякса, кстати). Код вот, результат чуть ниже:&lt;p class=pd&gt;&lt;blockquote style=&#39;border: 1px dashed rgb(255,0,0); padding: 20px; margin-left: 50px; margin-right: 50px; background-color: rgb(255,252,223);&#39;&gt;&amp;lt;table&amp;gt;&amp;lt;tr valign=top align=left&amp;gt;&amp;lt;td width=30%&amp;gt;&lt;p class=d&gt;&amp;#123;_ANONS: template = &amp;lt;div class=&amp;#39;r l&amp;#39; onmouseover=&amp;#34;majax(&amp;#39;editor.php&amp;#39;,&amp;#123;a:&amp;#39;load&amp;#39;,id:&amp;#39;buka1&amp;#39;,idhead:&amp;#39;bukahead1&amp;#39;,num:&amp;#123;num&amp;#125;&amp;#125;)&amp;#34;&amp;gt;&amp;#123;Y&amp;#125;-&amp;#123;M&amp;#125;-&amp;#123;D&amp;#125;: &amp;#123;Header&amp;#125;&amp;lt;/div&amp;gt;&lt;p class=d&gt;days = 365&lt;p class=d&gt;mode = all&lt;p class=d&gt;sort = date&lt;p class=d&gt;limit = 10&lt;p class=d&gt;unread = 1&lt;p class=d&gt;_&amp;#125;&lt;p class=d&gt;&amp;lt;/td&amp;gt;&amp;lt;td width=70%&amp;gt;&lt;p class=d&gt;&amp;lt;div style=&amp;#39;border:5px dotted green&amp;#39;&amp;gt;&lt;p class=d&gt;&amp;lt;h1 id=&amp;#39;bukahead1&amp;#39;&amp;gt;&amp;lt;/h1&amp;gt;&lt;p class=d&gt;&amp;lt;div id=&amp;#39;buka1&amp;#39;&amp;gt;&amp;lt;/div&amp;gt;&lt;p class=d&gt;&amp;lt;/div&amp;gt;&lt;p class=d&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/blockquote&gt;&lt;p class=pd&gt;&lt;table&gt;&lt;tr valign=top align=left&gt;&lt;td width=30%&gt;&lt;p class=d&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:437})&#34;&gt;2012-02-23: Прошу совета: как бросить тень?&lt;/div&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:430})&#34;&gt;2011-12-09: а посоветуйте мне регистратора?&lt;/div&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:429})&#34;&gt;2011-11-27: Воскресная передача &#34;сделай сам&#34;&lt;/div&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:428})&#34;&gt;2011-11-24: Сеанс связи с &#34;Фобос-грунт&#34;&lt;/div&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:426})&#34;&gt;2011-11-22: Мутные картинки Firefox&lt;/div&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:425})&#34;&gt;2011-11-18: Модуль DAT&lt;/div&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:421})&#34;&gt;2011-11-17: ну, Биноник считаем в самом первом приближении слегка запущенным&lt;/div&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:410})&#34;&gt;2011-11-09_2: Уязвимость&lt;/div&gt;&lt;div class=&#39;r l&#39; onmouseover=&#34;majax(&#39;editor.php&#39;,{a:&#39;load&#39;,id:&#39;buka1&#39;,idhead:&#39;bukahead1&#39;,num:401})&#34;&gt;2011-11-05: тестируем аццки!&lt;/div&gt;&lt;p class=d&gt;&lt;/td&gt;&lt;td width=70%&gt;&lt;p class=d&gt;&lt;div style=&#39;border:5px dotted green&#39;&gt;&lt;p class=d&gt;&lt;h1 id=&#39;bukahead1&#39;&gt;&lt;/h1&gt;&lt;p class=d&gt;&lt;div id=&#39;buka1&#39;&gt;&lt;/div&gt;&lt;p class=d&gt;&lt;/div&gt;&lt;p class=d&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
	<title>2011/11/03 - Сделал опцию подгрузки заметок</title>
	<comments>http://lleo.me/blog/2011/11/03.html</comments>
</item>

</channel></rss>
