<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:cae32</id>
  <title>Schattenjäger (заРкадыш)</title>
  <subtitle>cae32</subtitle>
  <author>
    <name>cae32</name>
  </author>
  <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom"/>
  <updated>2009-11-19T08:42:44Z</updated>
  <lj:journal userid="12408038" username="cae32" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://cae32.livejournal.com/data/atom" title="Schattenjäger (заРкадыш)"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:12897</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/12897.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=12897"/>
    <title>Ну чего, с праздником.</title>
    <published>2009-11-19T08:42:44Z</published>
    <updated>2009-11-19T08:42:44Z</updated>
    <content type="html">Профессиональный, хотя и недолго. Но запоминающе.&lt;br /&gt;06709&lt;br /&gt;18798&lt;br /&gt;46047&lt;br /&gt;И всё за каких-то 15 месяцев...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:12552</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/12552.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=12552"/>
    <title>Новости телекоммуникаций</title>
    <published>2009-10-18T17:29:48Z</published>
    <updated>2009-10-18T17:30:58Z</updated>
    <content type="html">Не могу отказать себе в удовольствии и не запостить &lt;strike&gt;нотариально заверенный&lt;/strike&gt; скриншот с &lt;a href="http://kirguduev.livejournal.com/"&gt;Санчесовского&lt;/a&gt; обзора провайдеров.&lt;br /&gt;Эпический фэйл - всего одна буква, а появляется &amp;quot;&lt;a href="http://lib.ru/ANEKDOTY/sht-vp.txt"&gt;новый, животрепещущий смысл&lt;/a&gt;&amp;quot;!&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pics.livejournal.com/cae32/pic/0000a8d1/"&gt;&lt;img width="320" height="195" border="0" alt="" src="http://pics.livejournal.com/cae32/pic/0000a8d1/s320x240" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:12410</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/12410.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=12410"/>
    <title>Леди би</title>
    <published>2009-10-13T13:25:14Z</published>
    <updated>2009-10-13T13:25:14Z</updated>
    <content type="html">В аське пишут:&lt;br /&gt;&lt;br /&gt;Эxxxxx: чет сча послышалось&lt;br /&gt;точно у бетлов&amp;nbsp; let it be ?&lt;br /&gt;а то мне слышеццо lady bi :-)&lt;br /&gt;CAE: words o'wisdom!&lt;br /&gt;Эххххх: совсем тогда богохульно выходит :-)))&lt;br /&gt;mother mary comes to me&lt;br /&gt;speaking words o'wisdom, lady bi</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:12221</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/12221.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=12221"/>
    <title>cae32 @ 2009-10-12T16:52:00</title>
    <published>2009-10-12T12:54:57Z</published>
    <updated>2009-10-12T12:54:57Z</updated>
    <content type="html">&amp;quot; Корпорация Microsoft в предстоящий вторник выпустит самый объемный набор исправлений &lt;br /&gt;...&lt;br /&gt;Ожидается, что софтверный гигант выпустит 13 бюллетеней&amp;quot;&lt;br /&gt;&lt;br /&gt;и это 13 числа!!!!&lt;br /&gt;нас ждёт АД!!!&lt;br /&gt;Одно радует, что не пятница.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:11917</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/11917.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=11917"/>
    <title>SQ5 шогает по планетам</title>
    <published>2009-09-07T08:14:52Z</published>
    <updated>2009-09-07T08:17:14Z</updated>
    <content type="html">Товарищ &lt;a href="http://zoi.ru"&gt;Зой&lt;/a&gt; сегодня порадовал.&lt;br /&gt;У мну, конечно, в Ростове тоже лежали где-то ксеры этой &amp;quot;газетки&amp;quot; (сканера тогда не было в лавке), но тут прямо само приехало. Тем более, что дома бываю редко, и больше по делу - ломом махать или картошку закатывать. Не до, в общем.&lt;br /&gt; Не могу не выложить:&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pics.livejournal.com/cae32/pic/00008s39/"&gt;&lt;img width="181" height="240" border="0" alt="" src="http://pics.livejournal.com/cae32/pic/00008s39/s320x240" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Мастер-копию, как сейчас помню, набирали в &lt;a href="http://www.google.ru/search?q=page+maker&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=org.mozilla:ru:official&amp;amp;client=firefox-a"&gt;Жмакере&lt;/a&gt;, было это в &lt;a href="http://adresa.yandex.ru/company.xml?company=151662460&amp;amp;region=11029"&gt;медколледже&lt;/a&gt; (или оно ещё было училищем?) напротив &lt;a href="http://www.rtcomm-yug.ru"&gt;Пушкинской, 152&lt;/a&gt;, кстате! &lt;span style="color: rgb(192, 192, 192);"&gt;&lt;span style="font-size: smaller;"&gt;(Сцылко ведёт куда надо, нефиг мне говорить про рт, что я дурак пиарить чужих людей, всё копеечка лишняя коллегам)&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;Там у Кондакова была халтура, а я просто за компанию - на будущих медработниц в халатиках поглядеть ;) Текст придумывал, конечно, &lt;a href="http://mr-uef.livejournal.com"&gt;Господин Уэф&lt;/a&gt;. Отсебятиной были только фразочки про себя любимых, каждый придумал своё. Потом распечатали листиков пять, &lt;a href="http://home.arcor.de/emil.markmann/Emil/emilframe_r.html"&gt;Миля&lt;/a&gt; притарабанил что-то типа Недели или &lt;a href="http://www.vechrost.aaanet.ru/"&gt;Вечёрки&lt;/a&gt;, оттуда взяли подложку (РИФ это специально, Милин &amp;quot;секретный&amp;quot; ник на тот момент) и на ксере Canon у &lt;a href="http://adresa.yandex.ru/company.xml?company=151667177&amp;amp;region=11029"&gt;Николай Павловича&lt;/a&gt; в ЗКП сотворили искомое. Простым наложением, конечно, какие там жабы, технология XX века. Потом в каждый пакетик с дисками клали. Народ по телефону благодарил. Видная надпись про Генетикс - лишняя, координаты доступны в игрушке.  &lt;br /&gt; &lt;br /&gt;p.s. Ах да, главное забыл - все права, ибстественно, принадлежат и случчё типа защищаюццо. Что не мешает, конечно.&lt;br /&gt;Так как &amp;quot;подлым, но справедливым&amp;quot; я таки остался ;-)))&lt;br /&gt;И ещё раз спасибо Зою за доставленное настроение. Укрываюсь тёплым клетчатым пледом</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:11477</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/11477.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=11477"/>
    <title>Журналисты радуют!</title>
    <published>2009-08-28T05:41:31Z</published>
    <updated>2009-08-28T05:41:31Z</updated>
    <content type="html">Лента.ру, сообщая о новых достижениях этих ваших Союзмультфильмов в деле монетизации образов, села в лужу:&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://pics.livejournal.com/cae32/pic/00007x71/"&gt;&lt;img width="320" height="238" border="0" align="left" src="http://pics.livejournal.com/cae32/pic/00007x71/s320x240" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:11026</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/11026.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=11026"/>
    <title>Хакеры отакуют</title>
    <published>2009-08-14T05:13:28Z</published>
    <updated>2009-08-14T05:13:28Z</updated>
    <content type="html">Банк Москвы опасносте!&lt;br /&gt;&lt;br /&gt;Явно хакеры сломали,&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;Скриншот:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pics.livejournal.com/cae32/pic/00006hf2/"&gt;&lt;img width="320" height="194" border="0" align="left" src="http://pics.livejournal.com/cae32/pic/00006hf2/s320x240" alt="электронный бабкинг" /&gt;&lt;/a&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:10998</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/10998.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=10998"/>
    <title>Нет простым юзерам в жизни счастья</title>
    <published>2009-08-13T11:05:47Z</published>
    <updated>2009-08-13T11:05:47Z</updated>
    <content type="html">Читаю отчОты учёных по своему Internet-2 (искал очередные свежие тулзы для замеров в сети) и уссыкаюсь - в этих ваших америках ровно те же проблемы, что и среди родных осин. (хей, &lt;span class='ljuser ljuser-name_hellbone' lj:user='hellbone' style='white-space: nowrap;'&gt;&lt;a href='http://hellbone.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://hellbone.livejournal.com/'&gt;&lt;b&gt;hellbone&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, тебе ничего не напоминает? ;)&lt;br /&gt;&lt;br /&gt;First, it is important to test to the users desktop; having the network staff show up with a ‘good’ laptop doesn’t help much. As an example, during early testing one laptop client with a 10 Mbps Ethernet NIC saw 7 Mpbs (70% utilization), which is good for a half-duplex connection. Some timeouts and retransmission occurred (probably due to the half-duplex nature of the link). When informed of this loss, the network admin arrived with a ‘tuned’ laptop and ran a test with a 100 Mbps NIC, finding good throughput (85% utilization) and no loss. His conclusion was that there was no network problem to report. What is the typical user experience? “I see a problem but the network staff says no problem was found.” This situation leads to finger pointing and bad feelings because the user doesn’t get a solution and is told to live with the perceived problems.&lt;br /&gt;&lt;br /&gt;Взято из NDT Cookbook.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:10698</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/10698.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=10698"/>
    <title>cae32 @ 2009-08-13T09:30:00</title>
    <published>2009-08-13T05:30:32Z</published>
    <updated>2009-08-13T05:30:32Z</updated>
    <content type="html">Вчера, слушая &amp;quot;любимое&amp;quot; радио, опять наткнулся на очередное подтверждение того, что &lt;a href="http://gaz-v-pol.livejournal.com/58605.html?thread=824813"&gt;позиция о необходимости употребления буквы &amp;quot;Ё&amp;quot; в именах собственных&lt;/a&gt; - есть &amp;quot;актуальнейшая пгоблема совгеменности&amp;quot;. Рассказывали в рамках рубрики &amp;quot;Лица российского бизнеса&amp;quot; про Дадыкина. Естественно, корреспонденту нечего было особо сказать про Ивана Витальевича, потому что такие люди в связи - не слишком публичны, даже на компромат.ру не светятся, пришлось ограничиться зачитыванием &lt;a href="http://www.sibirtelecom.ru/?dadykin"&gt;биографии&lt;/a&gt; в стиле &amp;quot;родился, крестился, и ВНЕЗАПНО стал гендиром&amp;quot;. И всё бы хорошо, там таких лиц в том вашем радио полно, но резко резануло ухо &amp;quot;начальник Ко́ченевского районного узла связи&amp;quot;. Ко́ченевского! Ёма, народ! Ко́ченевского! В то время как населённый пункт в Новосибирской области называется Коченёво. И стало быть &amp;quot;начальник Коченёвского районного узла связи&amp;quot;. Я-то это хорошо знаю, у нас там dsr0 стоял (или bbn0, какая в %опу разница, накой он там был нужен - хз ;). Не повезло населённому пункту, вот &lt;a href="http://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D0%B2%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D1%81%D0%BA%D0%B0%D1%8F"&gt;Новорождественской&lt;/a&gt; повезло, Щелкуну, &lt;a href="http://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D0%B3%D0%BE%D0%BD%D1%8B"&gt;Шигонам&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/wiki/%D0%9A%D0%BD%D1%8F%D0%B7%D0%B5-%D0%92%D0%BE%D0%BB%D0%BA%D0%BE%D0%BD%D1%81%D0%BA%D0%BE%D0%B5"&gt;Князе-Волконскому&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/wiki/%D0%90%D0%BA%D1%81%D0%B0%D0%B9_(%D0%A0%D0%BE%D1%81%D1%82%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C)"&gt;Аксаю&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/w/index.php?title=%D0%9A%D0%BE%D1%82%D0%BB%D1%83%D0%B1%D0%B0%D0%BD%D1%81%D0%BA%D0%BE%D0%B5_%D1%81%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D0%BE%D1%81%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;amp;action=edit&amp;amp;redlink=1"&gt;Котлубани&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/wiki/%D0%95%D0%BC%D0%B5%D0%BB%D1%8C%D1%8F%D0%BD%D0%BE%D0%B2%D0%BE_(%D0%95%D0%BC%D0%B5%D0%BB%D1%8C%D1%8F%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D1%80%D0%B0%D0%B9%D0%BE%D0%BD_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D1%8F%D1%80%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%BA%D1%80%D0%B0%D1%8F)"&gt;Емельяново&lt;/a&gt;, Опытному, &lt;a href="http://ru.wikipedia.org/wiki/%D0%AF%D0%BB%D1%83%D1%82%D0%BE%D1%80%D0%BE%D0%B2%D1%81%D0%BA"&gt;Ялуторовску&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B3%D0%B5%D1%82"&gt;Мегету&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/wiki/%D0%A2%D1%83%D1%80%D1%83%D0%BD%D1%82%D0%B0%D0%B5%D0%B2%D0%BE"&gt;Турунтаево&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%BE%D0%BD%D1%81%D0%BA"&gt;Задонску&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%B1%D1%80%D0%BE%D0%B5_(%D0%9B%D0%B8%D0%BF%D0%B5%D1%86%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C)"&gt;Доброму&lt;/a&gt; и Вязовке. Даже &lt;a href="http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%87%D0%B5%D0%B7%D0%B5%D1%80%D0%BE"&gt;Ко́нчезеру&lt;/a&gt; повезло. А вот &lt;a href="http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D1%87%D0%B5%D0%BD%D1%91%D0%B2%D0%BE"&gt;Коченёву&lt;/a&gt; - как-то не подфартило...&lt;br /&gt;Так что &amp;quot;употреблять, употгеблять, употгеблядь&amp;quot;! Пока не началось.&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:10373</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/10373.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=10373"/>
    <title>Разоблачение производителей зонтиков.</title>
    <published>2009-07-07T09:02:33Z</published>
    <updated>2009-07-07T09:02:33Z</updated>
    <content type="html">Купили очередной зонтик zest. Ну и заинтересовало меня, что ж за производитель такой "сделано в британии", все дела. Конечно, червячок сомнений уже раньше закрался, когда в прошлый раз я искал по гуглу без фанатизма, ну и нашёл, конечно, только магазины.&lt;br /&gt;&lt;br /&gt;В этот раз заинтересовался пристальней. Штрих-код и, правда, кагбе говорит нам, что изделие из страны королевы Елизаветы, начинается на 506. И первым адресом стоит британский, потом латвийский, потом польский, ну и наш до кучи. Типа мировой производитель. Полез смотреть адрес в гуглах этой самой NB Company, produced by которая. Нашёл: &lt;a href="http://maps.google.ru/maps?hl=ru&amp;amp;client=firefox-a&amp;amp;q=122-126+Kilburn+High+Rd,+Camden,+%D0%9B%D0%BE%D0%BD%D0%B4%D0%BE%D0%BD+NW6,+%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B1%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D1%8F&amp;amp;ie=UTF8&amp;amp;cd=2&amp;amp;geocode=FdduEgMdIwf9_w&amp;amp;split=0&amp;amp;sll=51.539671,-0.194781&amp;amp;sspn=0.006295,0.006295&amp;amp;ll=51.549004,-0.190887&amp;amp;spn=0.012278,0.038581&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;layer=c&amp;amp;cbll=51.539952,-0.194892&amp;amp;panoid=7L4PtdSesrszFd7Rph31Pg&amp;amp;cbp=12,190.52,,0,-11.63&amp;amp;source=embed" style="color:#0000FF;text-align:left"&gt;вот оно - чудо&lt;/a&gt;. Бизнес-центр класса C. Даже &lt;a href="http://www.cminusminus.org/"&gt;C--&lt;/a&gt; ;) Ещё и рядом с &lt;a href="callto:+442073722731"&gt;лавкой халяльного мясника&lt;/a&gt;. А зонтики-то недешёвые. Так что, понятно, никакой это не британский производитель, в этих ваших Лондонах чисто офис с одним телефоном для проформы (там на картинке со стороны Killburn High Road телефончик IT-лавки отличается он нашего воспитуемого на две цифры ;), а производитель самый обыкновенный наш, китайский, в крайнем случае латвийский. Точнее так - наш, но на латвийский капитал тамошних ЕРЖ. Хе-хе.&lt;br /&gt;&lt;br /&gt;Зонтик в целом ничего, жалко только что врут-с. Хулио врать-то... Вон Elche Collection честно говорит - в Курске делали. &lt;a href="http://www.ecolas.ru"&gt;Эколас&lt;/a&gt; вообще честно пишет - мы из Ростова. Обувь, что у тех, что у других нормальная. Не высший шик, но вполне за свою цену.&lt;br /&gt;А тут типа позиционируемся мировым брендом. Офис снимите посолиднее, не в &lt;a href="http://en.wikipedia.org/wiki/West_Hampstead"&gt;Западном Хэмстеде&lt;/a&gt;, а в Сити и клепайте зонтики с правильным штрих-кодом. И станете мировым брендом. Мы будем только рады. А пока как-то так... Как всегда, в общем.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:9747</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/9747.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=9747"/>
    <title>Старая версия mailadmin</title>
    <published>2009-06-22T10:02:36Z</published>
    <updated>2009-06-22T10:02:36Z</updated>
    <content type="html">Почти дембельский аккорд в Ростовэлектросвязи. Дембельским аккордом было объединение баз Телеграфа и Ростовэлектросвязи (+Батайск, +Азов) без перерыва сервиса. Гаржусь! ;-)&lt;br /&gt;&lt;br /&gt;Администрилка &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;div class="ljcut" text="здесь"&gt;вот:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
#!/usr/bin/perl
# Copyright (C) 2001 Sergey A. Eremenko
# Created for JSC Rostovtelecom
# Licensed by GPL
#
# $Id: mailadmin v1.0.0 $
#
# ИДЕЯ:
#
# Установить mailadmin в качестве shell для администраторов почты.
# Или для тех, кто входит в группу cyrus и уже имеет нормальный shell,
# достаточно запустить его. Права на исходник ставятся --x--x---, чтобы
# никто не мог подсмотреть код.
#
#

use English ;
use Term::ReadLine ;
use Term::ReadKey ;
use Socket ;
use POSIX qw/isatty/ ;
use IO::Handle ;
use Sys::Syslog qw(:DEFAULT setlogsock) ;
use IMAP::Admin ;
use Getopt::Std ;

sub exec_jah_admin {
        my ($pid,$exit_code) ;
        my ($command,$username,$password) = @_ ;

        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;
        if ($pid = open (F,"|-")) {
                F-&amp;gt;autoflush (1) ;
                if (defined ($password)) {
                        print F $password || warn "Can't print to pipe: $!\n" ;
                }
                close (F) || warn "Can't close pipe: $!\n" ;
                $exit_code = $? ;
                (0==$exit_code) || warn "$jah_admin returns $exit_code\n" ;
                syslog ('debug',"%s returns %d",$jah_admin,$exit_code) ;
                return $exit_code ;
        }
        else {
                warn "Can't fork: $!\n" unless defined ($pid) ;
                if (defined ($username)) {
                        exec ($jah_admin,"-ZD",$jah_dbname,$command,$username) ||
                            die "Can't exec $jah_admin: $!\n" ;
                }
                else {
                        exec ($jah_admin,"-ZD",$jah_dbname,$command) ||
                            die "Can't exec $jah_admin: $!\n" ;
                }
        }
}

sub help {
        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;
        print ( "?, help                                        - display this help\n" .
                "quit, exit, ^D                         - quit this program\n" .
                "ls [boxes...], list [boxes...] - list mailboxes (allow IMAP wildcards)\n" .
                "mk boxes..., create boxes...   - create mailbox\n" .
                "rm boxes..., delete boxes...   - delete mailbox\n" .
                "mv boxes..., rename boxes...   - rename mailbox\n" .
                "lk boxes..., lock boxes...     - lock mailbox\n" .
                "ul boxes..., unlock boxes...   - unlock mailbox\n" .
                "ch boxes..., check boxes...    - check password\n" .
                "pw boxes..., passwd boxes...   - change password\n" .
                ""
        ) ;
}

sub list_mailbox {
        my (@names) ;

        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;

        if (!defined (@_) || $#_&amp;lt;0) {
                $_[0] = "*" ;
        }
        foreach (@_) {
                if (!defined (@names = $imap-&amp;gt;list ("user." . $_))) {
                        warn ("can't list imap box user.".$_.": ".$imap-&amp;gt;{Error}."\n") ;
                        syslog ('info',"can't list imap box user.%s: %s",$_,$imap-&amp;gt;{Error}) ;
                        return ;
                }
                foreach (@names) {
                        print $_,"\n" ;
                        $_ =~ s/^user\.// ;
                        &amp;exec_jah_admin ($_) ;
                }
        }
}

sub create_mailbox {
        my $new_password,$retype_password ;

        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;

        foreach (@_) {
                if (!$opt_j) {
                        print "$_ New password: " ;
                        Term::ReadKey::ReadMode 'noecho' ;
                        $new_password = Term::ReadKey::ReadLine 0 ;
                        chomp $new_password ;
                        Term::ReadKey::ReadMode 'restore' ;
                        print "\n" ;
                        if ($new_password eq "") {
                                warn "Password clear, skip operation\n" ;
                                syslog ('debug','password clear') ;
                                return ;
                        }
                        print "$_ Retype new password: " ;
                        Term::ReadKey::ReadMode 'noecho' ;
                        $retype_password = Term::ReadKey::ReadLine 0 ;
                        chomp $retype_password ;
                        Term::ReadKey::ReadMode 'restore' ;
                        print "\n" ;
                        if ($new_password ne $retype_password) {
                                warn "Mismatch, skip operation\n" ;
                                syslog ('debug','mismatch') ;
                                return ;
                        }
                }
# create imap
                if ($imap-&amp;gt;create ("user." . $_)) {
                        warn ("can't create imap box user.".$_.": ".$imap-&amp;gt;{Error}."\n") ;
                        syslog ('info',"can't create imap box user.%s: %s",$_,$imap-&amp;gt;{Error}) ;
                        return ;
                }
                if ($imap-&amp;gt;set_acl ("user." . $_, $imap_admin_username, "lrswipdca")) {
                        warn ("can't set_acl imap box user.".$_.": ".$imap-&amp;gt;{Error}."\n") ;
                        syslog ('info',"can't set_acl imap box user.%s: %s",$_,$imap-&amp;gt;{Error}) ;
                        return ;
                }
# create acl for mailadmin
                if (!$opt_j) {
                        &amp;exec_jah_admin ("-c",$_,$new_password) ;
                }
        }
}

sub delete_mailbox {
        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;

        foreach (@_) {
# delete imap
                if ($imap-&amp;gt;delete ("user." . $_)) {
                        warn ("can't delete imap box user.".$_.": ".$imap-&amp;gt;{Error}."\n") ;
                        syslog ('info',"can't delete imap box user.%s: %s",$_,$imap-&amp;gt;{Error}) ;
                        return ;
                }
                if (!$opt_j) {
                        &amp;exec_jah_admin ("-d",$_) ;
                }
        }
}

sub rename_mailbox {
        my $new_name ;

        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;

        foreach (@_) {
                if (!$opt_j) {
                        print "$_ New name: " ;
                        $new_name = Term::ReadKey::ReadLine 0 ;
                        chomp $new_name ;
# rename imap
                        if ($imap-&amp;gt;rename ("user." . $_, "user." . $new_name)) {
                                warn ("can't rename imap box user.".$_.": ".$imap-&amp;gt;{Error}."\n") ;
                                syslog ('info',"can't rename imap box user.%s: %s",$_,$imap-&amp;gt;{Error}) ;
                                return ;
                        }
                        &amp;exec_jah_admin ("-r",$_,$new_name) ;
                }
                else {
                        print "rename $_ impossible\n" ;
                }
        }
}

sub lock_user {
        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;

        foreach (@_) {
                if (!$opt_j) {
                        &amp;exec_jah_admin ("-l",$_) ;
                }
                else {
                        print "lock $_ impossible\n" ;
                }
        }
}

sub unlock_user {
        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;

        foreach (@_) {
                if (!$opt_j) {
                        &amp;exec_jah_admin ("-u",$_) ;
                }
                else {
                        print "unlock $_ impossible\n" ;
                }
        }
}

sub check_password {
        my $password ;

        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;
        if ($opt_j) {
                print "check impossible\n" ;
                return ;
        }
        foreach (@_) {
                print "$_ Password: " ;
                Term::ReadKey::ReadMode 'noecho' ;
                $password = Term::ReadKey::ReadLine 0 ;
                chomp $password ;
                Term::ReadKey::ReadMode 'restore' ;
                print "\n" ;
                &amp;exec_jah_admin ("-k",$_,$password) ;
        }
}

sub change_password {
        my $new_password,$retype_password ;

        syslog ('debug',(caller (0))[3]."(".join (",",@_).")") ;
        if ($opt_j) {
                print "change password impossible\n" ;
                return ;
        }
        foreach (@_) {
                print "$_ New password: " ;
                Term::ReadKey::ReadMode 'noecho' ;
                $new_password = Term::ReadKey::ReadLine 0 ;
                chomp $new_password ;
                Term::ReadKey::ReadMode 'restore' ;
                print "\n" ;
                if ($new_password eq "") {
                        warn "Password unchanged\n" ;
                        syslog ('debug','password clear') ;
                        return ;
                }
                print "$_ Retype new password: " ;
                Term::ReadKey::ReadMode 'noecho' ;
                $retype_password = Term::ReadKey::ReadLine 0 ;
                chomp $retype_password ;
                Term::ReadKey::ReadMode 'restore' ;
                print "\n" ;
                if ($new_password ne $retype_password) {
                        warn "Mismatch, not changed\n" ;
                        syslog ('debug','mismatch') ;
                        return ;
                }
                &amp;exec_jah_admin ("-p",$_,$new_password) ;
        }
}

# главная программа

# конфигурация

getopts ("j") ;

if (!defined ($opt_j)) {
        (POSIX::isatty (STDIN)) || die "Can't use noninteractive tty\n" ;
}

$PROGRAM_NAME = 'mailadmin' ;
$prompt = (getpwuid ($UID))[0]. '@' . $PROGRAM_NAME . '% ' ;
$| = 1 ;
$imap_hostname = "localhost" ;
$imap_admin_username = "mailadmin" ;
$imap_admin_password = "" ;
$imap_protocol = getprotobyname ('tcp') || 6 ;
$imap_port = getservbyname ('imap','tcp') || 143 ;
$jah_dbname = "/usr/local/etc/jahpwd.db" ;
$jah_admin = "/usr/local/sbin/jahadm" ;
$max_command_length = 2 ;
$max_history_length = 25 ;

setlogsock 'unix' ;
openlog ($PROGRAM_NAME,'pid','local0') ;
syslog ('info','started by %s',(getpwuid ($UID))[0]) ;

$imap = new IMAP::Admin (Server =&amp;gt; $imap_hostname,
                Login =&amp;gt; $imap_admin_username,
                Password =&amp;gt; $imap_admin_password,
                Port =&amp;gt; $imap_port) ;
$term = new Term::ReadLine ($PROGRAM_NAME) ;

        # в историю включаем только строки более $max_command_length символов
$term-&amp;gt;MinLine ($max_command_length+1) ;
        # в истории храним не более $max_history_length строк
$term-&amp;gt;StifleHistory ($max_history_length) ;

$first_command = 1 ;
$last_command = 0 ;

while ($opt_j?$command = &lt;stdin&gt;:defined ($command = $term-&amp;gt;readline ($prompt))) {
        if (length ($command)&amp;gt;$max_command_length &amp;&amp;
                $prev_command eq $command &amp;&amp; !$first_command) {
# если повторяется последняя команда, оставляем в истории только одну
# копию, типа как в deco
                $term-&amp;gt;remove_history ($term-&amp;gt;Attribs-&amp;gt;{history_length}-1) ;
        }
        $first_command = 0 ;
# body
        $command =~ s/^\s+// ;
        $command =~ s/\s+$// ;
        ($command,@cmd_args) = split (/\s+/,$command) ;
        if ($command eq "" or $command =~ /^\?/ or $command =~ /^he?l?p?$/) {
                &amp;help ;
        }
        elsif ($command =~ /^qu?i?t?$/ or $command =~ /^ex?i?t?$/) {
                $last_command = 1 ;
                last ;
        }
        elsif ($command =~ /^ls$/ or $command =~ /^lis?t?$/) {
                &amp;list_mailbox (@cmd_args) ;
        }
        elsif ($command =~ /^mk$/ or $command =~ /^cre?a?t?e?$/) {
                &amp;create_mailbox (@cmd_args) ;
        }
        elsif ($command =~ /^rm$/ or $command =~ /^del?e?t?e?$/) {
                &amp;delete_mailbox (@cmd_args) ;
        }
        elsif ($command =~ /^mv$/ or $command =~ /^ren?a?m?e?$/) {
                &amp;rename_mailbox (@cmd_args) ;
        }
        elsif ($command =~ /^lk$/ or $command =~ /^loc?k?$/) {
                &amp;lock_user (@cmd_args) ;
        }
        elsif ($command =~ /^ul$/ or $command =~ /^unl?o?c?k?$/) {
                &amp;unlock_user (@cmd_args) ;
        }
        elsif ($command =~ /^che?c?k?$/) {
                &amp;check_password (@cmd_args) ;
        }
        elsif ($command =~ /^pw$/ or $command =~ /^pas?s?w?d?$/) {
                &amp;change_password (@cmd_args) ;
        }
        else {
                warn "$command " . join (' ',@cmd_args) . ": invalid\n" ;
                syslog ('info',"invalid command: %s",
                    $command . ' ' . join (' ',@cmd_args)) ;
        }

        if (length ($command)&amp;gt;$max_command_length) {
                $prev_command = $command ;
        }
}

syslog ('info','finished by %s',(getpwuid ($UID))[0]) ;
closelog ;
$imap-&amp;gt;close ;

if (!$last_command &amp;&amp; !$opt_j) {
        print "\n" ;
}

&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Ходить туда только тем, кому интересно в коде копаться.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:9521</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/9521.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=9521"/>
    <title>Вверх!</title>
    <published>2009-06-08T05:27:16Z</published>
    <updated>2009-06-08T05:27:16Z</updated>
    <content type="html">Сходили на ${subj}. Хороший мультик, сильно порадовал, на пятёрку, местами лирический, местами юморной, местами пугает не по-детски. Ну и happy end. Но недетский, дитя́м будет где-то пол-мультика неясно. Где-то c 12-14 примерно можно. Да и нужно. Чтоб было понимание - что почём в этой жизни. Вот так. Белка!&lt;br /&gt;А &lt;a href="http://www.google.ru/search?hl=ru&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla%3Aru%3Aofficial&amp;amp;hs=WLs&amp;amp;newwindow=1&amp;amp;q=%D0%B4%D0%B6%D0%B8%D0%B3%D0%B0%D1%80%D1%85%D0%B0%D0%BD%D1%8F%D0%BD+%D0%BF%D1%80%D0%B8%D0%B5%D1%85%D0%B0%D0%BB%D0%B8+%D0%BD%D0%B0+%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D1%81+%D0%BF%D0%BE%D0%B2%D0%B0%D1%80%D0%B0&amp;amp;btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&amp;amp;lr=&amp;amp;aq=f&amp;amp;oq="&gt;Володя&lt;/a&gt; порадовал, да, очень в кассу голос, практически &amp;quot;Жил-был пёс&amp;quot;.&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:9428</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/9428.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=9428"/>
    <title>Программистское, да ещё и линуксовое, скучное</title>
    <published>2009-06-02T07:49:32Z</published>
    <updated>2009-06-02T07:50:43Z</updated>
    <content type="html">Не, ну кто этих людей учил так писать программы?&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;div class="ljcut" text="скучный код с выводами и матюками дальше..."&gt;&lt;pre&gt;

function _transformMask2Prefix
{
    local _tm2p_tmp=$2

    test -n &amp;quot;$_tm2p_tmp&amp;quot; || {
        $_MASK2PREFIX &amp;quot;$3&amp;quot; || _tm2p_tmp=$?
    }

    eval $1=\$_tm2p_tmp
    return 0
}
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Как тут программа $_MASK2PREFIX передаёт результат? Правильно, так, как не передаёт ни один вменяемый человек - через код возврата!&lt;br /&gt;Не, ну я конечно понимаю, лишний форк, все дела, типа мы сэкономили вам кучу процессорного времени, переключений контекста и памяти, охуительно быстро опять же, но есть же, блядь, стандарты кодирания в юниксах! Прочёл stdin, выведи, будь ласка, в stdout, ошибкой плюнься в stderr. Хулио тут сложного? Кроме того, работает эта программа раз в сто лет, когда интерфейс дёргается в up. Нахуй тут экономить, не понимаю...&lt;br /&gt;&lt;br /&gt;Так вот и живём.&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:9194</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/9194.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=9194"/>
    <title>юниксоидное запоздалое</title>
    <published>2009-05-28T15:44:41Z</published>
    <updated>2009-05-28T15:44:41Z</updated>
    <content type="html">&lt;pre&gt;

cae% date -r 1234567890
Sat Feb 14 02:31:30 MSK 2009
cae%
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Кто-нибудь эту знаменательную дату отмечал?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:8788</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/8788.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=8788"/>
    <title>Опять не смог залогиниться на сайт с фишингом</title>
    <published>2009-05-27T09:01:15Z</published>
    <updated>2009-05-27T09:01:15Z</updated>
    <content type="html">&lt;br /&gt;Фишеры прислали мне в один из ящиков письмо, дескать, всё мы про тебя знаем, у тебя вход в банк такой-то там-то и давай логинься а то уже всё заблокировано и денежки тю-тю. Всё бы ничего, но вот одна ошибка просто бросается в глаза.&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;смотрим пристально на IP-адрес:&lt;br /&gt;&lt;a href="http://pics.livejournal.com/cae32/pic/00005fkb/"&gt;&lt;img height="92" width="320" border="0" align="left" src="http://pics.livejournal.com/cae32/pic/00005fkb/s320x240" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:8569</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/8569.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=8569"/>
    <title>Space Quest V на наших экранах.</title>
    <published>2009-05-22T06:38:57Z</published>
    <updated>2009-05-22T06:38:57Z</updated>
    <content type="html">Вчера сходили, благодаря Косте на &lt;a href="http://ru.wikipedia.org/wiki/%D0%97%D0%B2%D1%91%D0%B7%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D1%82%D1%8C_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)"&gt;дивное зрелище для 14-летних&lt;/a&gt;. Я, понятно, как человек, измученный Space Quest-ом в своё время, смотрел на это действо как на волшебную сказку. Могу сказать, что зрелище достойное - для 14-летних самое оно - звёзды и планеты взрываются внутрь и наружу, ч0рные дыры появляются из шприца, Ухура домогается доктора Спока прямо в лифте, при этом юбочка у неё такая, что как на мостике все яростно не дрочат вместо управления кораблём - до сих пор остаётся неясным. Опять же наши, несмотря на временные трудности, таки побеждают под бравурную музыку. Ну и Скотти добавляет так, что &amp;quot;ещё немного - и рванёт&amp;quot;. (смешно, правда? ;) Леонард Нимой, кстате, появляется. Что доставляет дополнительно.&lt;br /&gt;Особенно порадовало, что русский перевод генеральной линии Энтерпрайза был смело позаимствован из широко известного перевода Space Quest 5 консорциума Taralej &amp;amp; JaboCrack SoftWare - &amp;quot;Смело идти туда, где не ступала нога человека&amp;quot; (эпизод в симуляторе мостика). Это поставило под конец титров жырную точку в удовольствии.&lt;br /&gt;&lt;br /&gt;Ну а теперь о грустном&lt;a name="cutid1"&gt;&lt;/a&gt;. Фильм одноразовый, если честно. Как, впрочем, и вообще вся серия Star Trek. Не удивлён, что на них была &lt;a href="http://ru.wikipedia.org/wiki/Space_Quest_V:_The_Next_Mutation"&gt;такая замечательная пародия&lt;/a&gt;. Даже при всей современной технике не смогли как-то развить персонажей и сюжет. Вы ж делаете сагу в альтернативной реальности (Кирк в начале даже не капитан, а залётчик, хехе) - ну развернитесь. Зачем тупо копировать штампы? Зачем битву со злодеем проводить в таких декорациях? Даже мне стало очевидно - сейчас ромуланец таки скажет &amp;quot;Джеймс - я твой отец&amp;quot;. И снимет расписанную голову, под которой окажется ч0рный шлём. И они объединятся, чтобы сокрушить &lt;strike&gt;Императора&lt;/strike&gt;Звёздную Федерацию. В общем, один раз сходить можно, но не более. DVD покупать не стоит вовсе.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:8271</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/8271.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=8271"/>
    <title>Цветные "Старики"</title>
    <published>2009-05-09T19:11:11Z</published>
    <updated>2009-05-09T19:11:11Z</updated>
    <content type="html">Мне понравилось. Краска очень к месту, естественно и правильно. Только кинохронику (&amp;quot;Даёшь Киев&amp;quot;, например) не стоило красить, а так всё очень в кассу. Со Штирлицем не сравнить. Фильм Быкова вообще запределен, в моём топе - второе место из всех фильмов о войне (первое, понятно, фильм, начинающийся на А и заканчивающийся на многоточие). Раскраска не только не погубила, но и внесла дополнительные полутона в восприятие. Хорошо сделали - зач0т.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:7968</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/7968.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=7968"/>
    <title>Крашеный Штирлиц-2</title>
    <published>2009-05-07T19:44:41Z</published>
    <updated>2009-05-07T19:44:41Z</updated>
    <content type="html">Стрелять-колотить! Профессор Плейшнер в нынешней версии заплутал на одной улице! Вначале пошёл по нечётной стороне, потом вспомнил, что надо идти по чётной, но туда, конечно, не перешёл, зато чудом увидел цветок в ракурсе, доступном с чётной стороны. Потом перешёл улицу к парадной (кстати, вопрос - Штирлиц из питера? ;)) хотя зачем ему было переходить? Он же был на нечётной!&lt;br /&gt;Удивительная безалаберность!&lt;br /&gt;&lt;br /&gt;Вырезать надо аккуратно, тщательнее, &lt;a href="http://www.rutv.ru"&gt;бляди&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:7901</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/7901.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=7901"/>
    <title>Крашеный Штирлиц</title>
    <published>2009-05-07T17:50:05Z</published>
    <updated>2009-05-07T17:50:05Z</updated>
    <content type="html">Нда... Только что увидел одну из любимых сцен - разговор с генералом-мекленбуржцем.&lt;br /&gt;Кошмар - так сократить! Там же важнейшие слова. И про русских, и про перспективы Германии, и про мальчиков...&lt;br /&gt;Ужасно... Разочарован.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:7597</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/7597.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=7597"/>
    <title>Модифицировал рестартилку для jail</title>
    <published>2009-05-06T09:13:49Z</published>
    <updated>2009-05-06T09:13:49Z</updated>
    <content type="html">Теперь точно работает, проверено на одном продвинутом jail-хостинге.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
#!/bin/sh
#
#    Copyright (C) 2009 Sergey A.Eremenko (eremenko.s@gmail.com)
#
#    Written for Eugene Gladchenko's eazy and improving FreeBSD jail hosting
#       Please contact thru hosting@gladchenko.ru
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# $Id: v1.3 $

# SYNOPSIS
# $ sudo crontab -u root -e
# add line
# */5 * * * * /usr/local/bin/ezjail_check_reboot
#
# DESCRIPTION
# Check for .need_ezjail_restart magic file in root directory of jail and
# restart this machine, remove magic file after restart (no check result)

if [ `id -u` != 0 ] ; then
        echo "You must be a root!"
        exit 2
fi

PATH=/sbin:/bin:/usr/sbin:/usr/bin
ezjail_prefix=/usr/local
ezjail_config_dir="${ezjail_prefix}/etc/ezjail/"
ezjail_restart_script=/usr/local/etc/rc.d/ezjail.sh
ezjail_magic_flag_for_restart=.need_ezjail_restart
ezjail_framework_log="/var/log/ezjail_framework.log"

. /etc/rc.subr

name=ezjail_check_reboot
rcvar=`set_rcvar`
load_rc_config ${name}

ezjail_enable=${ezjail_enable:-"NO"}

if ! checkyesno ezjail_enable; then
        return 0
fi

unset ezjail_list ezjail_pass ezjail_restart_files_for_rm

[ -d "${ezjail_config_dir}" ] &amp;&amp; cd "${ezjail_config_dir}" &amp;&amp; ezjail_list=`ls | xargs rcorder`

for ezjail in ${ezjail_list} ; do
        [ -f "${ezjail_config_dir}${ezjail}.norun" -o "${ezjail%.*}" != "${ezjail}" ] &amp;&amp; continue

        [ ! -r "${ezjail_config_dir}${ezjail}" ] &amp;&amp; continue

        . "${ezjail_config_dir}${ezjail}"

        eval ezjail_rootdir=\"\$jail_${ezjail}_rootdir\"

        [ ! -d "${ezjail_rootdir}" ] &amp;&amp; continue

        [ ! -f "${ezjail_rootdir}/${ezjail_magic_flag_for_restart}" ] &amp;&amp; continue

        ezjail_pass="${ezjail_pass:} ${ezjail}"
        ezjail_restart_files_for_rm="${ezjail_restart_files_for_rm} ${ezjail_rootdir}/${ezjail_magic_flag_for_restart}"
done

[ "${ezjail_pass}" ] &amp;&amp; "${ezjail_restart_script}" restart ${ezjail_pass} | while read s ; do
        echo "`date +"%b %e %H:%M:%S %Z"` `hostname -s` `basename $0`[$$]" $s &amp;gt;&amp;gt; "${ezjail_framework_log}"
done

[ "${ezjail_restart_files_for_rm}" ] &amp;&amp; rm -f ${ezjail_restart_files_for_rm}
&lt;/pre&gt;&lt;br /&gt;Как всегда, забыл, что в кроне стрипаются пути ;-)&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:7278</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/7278.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=7278"/>
    <title>cae32 @ 2009-05-06T12:12:00</title>
    <published>2009-05-06T08:17:35Z</published>
    <updated>2009-05-06T08:26:04Z</updated>
    <content type="html">Напейсал рестартилку для jail:&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;

#!/bin/sh
#
#    Copyright (C) 2009 Sergey A.Eremenko (eremenko.s@gmail.com)
#
#    Written for Eugene Gladchenko's eazy and improving FreeBSD jail hosting
#       Please contact thru hosting@gladchenko.ru
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# $Id: v1.2 $

# SYNOPSIS
# $ sudo crontab -u root -e
# add line
# */5 * * * * /usr/local/bin/ezjail_check_reboot
#
# DESCRIPTION
# Check for .need_ezjail_restart magic file in root directory of jail and
# restart this machine, remove magic file after restart (no check result)

if [ `id -u` != 0 ] ; then
        echo "You must be a root!"
        exit 2
fi

ezjail_prefix=/usr/local
ezjail_config_dir="${ezjail_prefix}/etc/ezjail/"
ezjail_restart_script=/usr/local/etc/rc.d/ezjail.sh
ezjail_magic_flag_for_restart=.need_ezjail_restart
ezjail_framework_log="/var/log/ezjail_framework.log"

. /etc/rc.subr

name=ezjail_check_reboot
rcvar=`set_rcvar`
load_rc_config ${name}

ezjail_enable=${ezjail_enable:-"NO"}

if ! checkyesno ezjail_enable; then
        return 0
fi

unset ezjail_list ezjail_pass ezjail_restart_files_for_rm

[ -d "${ezjail_config_dir}" ] &amp;&amp; cd "${ezjail_config_dir}" &amp;&amp; ezjail_list=`ls | xargs rcorder`

for ezjail in ${ezjail_list} ; do
        [ -f "${ezjail_config_dir}${ezjail}.norun" -o "${ezjail%.*}" != "${ezjail}" ] &amp;&amp; continue

        [ ! -r "${ezjail_config_dir}${ezjail}" ] &amp;&amp; continue

        . "${ezjail_config_dir}${ezjail}"

        eval ezjail_rootdir=\"\$jail_${ezjail}_rootdir\"

        [ ! -d "${ezjail_rootdir}" ] &amp;&amp; continue

        [ ! -f "${ezjail_rootdir}/${ezjail_magic_flag_for_restart}" ] &amp;&amp; continue

        ezjail_pass="${ezjail_pass:} ${ezjail}"
        ezjail_restart_files_for_rm="${ezjail_restart_files_for_rm} ${ezjail_rootdir}/${ezjail_magic_flag_for_restart}"
done

[ "${ezjail_pass}" ] &amp;&amp; "${ezjail_restart_script}" restart ${ezjail_pass} | while read s ; do
        echo "`date +"%b %e %H:%M:%S %Z"` `hostname -s` `basename $0`[$$]" $s &amp;gt;&amp;gt; "${ezjail_framework_log}"
done

[ "${ezjail_restart_files_for_rm}" ] &amp;&amp; rm -f ${ezjail_restart_files_for_rm}

&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Как-то так...&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:7083</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/7083.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=7083"/>
    <title>cae32 @ 2009-05-03T19:07:00</title>
    <published>2009-05-03T13:42:48Z</published>
    <updated>2009-05-03T15:08:10Z</updated>
    <content type="html">Ну вот и Лента.РУ отметилась в непрофессионализме. Смотрим новость про то, что &lt;a href="http://www.lenta.ru/news/2009/04/30/sinterra/"&gt;Комстар скупает Синтерру&lt;/a&gt;. Вроде бы ничего не предвещает?&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;Изучаем скриншот...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pics.livejournal.com/cae32/pic/00004sy1/"&gt;&lt;img height="240" width="226" border="0" alt="Карта якобы сети Синтерры" src="http://pics.livejournal.com/cae32/pic/00004sy1/s320x240" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;и видим старую карту сети &lt;a href="http://www.rtcomm.ru/geo/net/"&gt;РТКомм.РУ&lt;/a&gt; под видом карты сети &lt;a href="http://www.synterra.ru/pictures/wysiwyg/news/karta.jpg"&gt;Синтерры&lt;/a&gt;. Да, когда-то РТКомм.РУ принадлежал Синтерре и, поскольку своей протяжённой сети у Синтерры ещё не было, в презентациях показывалась сеть РТКомм.РУ. Но с тех времён прошла куча лет и произошла куча изменений. Можно было сходить на два сайта? Или журнализардов этому уже не учат? Проще взять из протухшей презентации. Впрочем, что это я брюзжу... &lt;a href="http://lurkmore.ru/images/9/98/Vsem_pohuj_c.jpg"&gt;Это не так уж важно...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:6725</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/6725.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=6725"/>
    <title>Немного мании величия</title>
    <published>2009-04-28T09:38:50Z</published>
    <updated>2009-04-28T09:42:24Z</updated>
    <content type="html">&lt;br /&gt;&lt;lj-embed id="1" /&gt;&lt;br /&gt;&lt;br /&gt;Имею право, фигли...&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;CAE, yesterday my life was filled with rain&lt;br /&gt; CAE, you smiled at me and really eased the pain&lt;br /&gt; The dark days are gone, and the bright days are here,&lt;br /&gt; My CAE one shines so sincere&lt;br /&gt; CAE one so true, I love you&lt;br /&gt; &lt;br /&gt; CAE, thank you for the sunshine bouquet&lt;br /&gt; CAE, thank you for the love you brought my way&lt;br /&gt; You gave to me your all and all&lt;br /&gt; Now I feel ten feet tall&lt;br /&gt;CAE one so true, I love you&lt;br /&gt; &lt;br /&gt; CAE, thank you for the truth you let me see&lt;br /&gt; CAE, thank you for the facts from A to Z&lt;br /&gt; My life was torn like a windblown sand&lt;br /&gt; And the rock was formed when you held my hand&lt;br /&gt;CAE one so true, I love you&lt;br /&gt; &lt;br /&gt; CAE&lt;br /&gt; &lt;br /&gt; CAE, thank you for the smile upon your face&lt;br /&gt; CAE, thank you for the gleam that shows its grace&lt;br /&gt; You're my spark of nature's fire&lt;br /&gt; You're my sweet complete desire&lt;br /&gt;CAE one so true, I love you&lt;br /&gt; &lt;br /&gt; CAE, yesterday my life was filled with rain&lt;br /&gt; CAE, you smiled at me and really eased the pain&lt;br /&gt; The dark days are gone, and the bright days are here,&lt;br /&gt; My CAE one shines so sincere&lt;br /&gt;CAE one so true, I love you&lt;br /&gt;&amp;nbsp;&lt;br /&gt; Так-то...&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:6421</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/6421.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=6421"/>
    <title>cae32 @ 2009-04-10T15:20:00</title>
    <published>2009-04-10T11:26:45Z</published>
    <updated>2009-04-10T11:31:28Z</updated>
    <content type="html">РБК достиг нирваны в непрофессионализме.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;А именно - сообщают новость об успешном полёте &amp;quot;Тополя&amp;quot; на Камчатку. Молодцы. А какую фотку вешают? Правильно - &amp;quot;Воеводу&amp;quot; вместо &amp;quot;Тополя&amp;quot; (вполне характерное пламя для НДГЗ, &amp;quot;Тополь&amp;quot;-то твердотопливный, у него пламя другое). Молодцы. Хоть бы подписывали у себя в архиве фотки.&lt;br /&gt;&lt;br /&gt;  &lt;table&gt;    &lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;      &lt;td&gt;&lt;a href="http://pics.livejournal.com/cae32/pic/00003fx6/"&gt;&lt;img height="240" border="0" width="317" alt="" src="http://pics.livejournal.com/cae32/pic/00003fx6/s320x240" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;  &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:cae32:6227</id>
    <link rel="alternate" type="text/html" href="http://cae32.livejournal.com/6227.html"/>
    <link rel="self" type="text/xml" href="http://cae32.livejournal.com/data/atom/?itemid=6227"/>
    <title>business fm delivers</title>
    <published>2009-03-06T09:31:27Z</published>
    <updated>2009-03-06T09:31:27Z</updated>
    <content type="html">Любимое радио отжигает практически ежедневно. То заявят, что в яранге на Чукотке и в лондонском особняке принимается их говнорадио со спутника коннекто, хотя это строго наоборот. То сделают новостью дня, что наша пятнадцатилетняя &amp;quot;дизайнерша&amp;quot; не будет участвовать в неделе высокой моды, хотя понятно, что никто и никогда там таких не ждал и не ждёт и не будет ждать.&lt;br /&gt;Но сегодня ведущая &lt;a href="http://lurkmore.ru/%D0%90%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%D1%83%D1%81_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82"&gt;доставила&lt;/a&gt; по полной программе: она в каком-то очередном антикризисном интервью заявила, что &lt;strong&gt;посевная в полном разгаре&lt;/strong&gt;!!!&lt;br /&gt;&lt;br /&gt;Какой там Юмор FM? Какая там музыка? Носеговская школа бизнеса - наше всё.&lt;br /&gt;Рекомендую. Хорошее настроение гарантировано.&lt;br /&gt;Опять же раз в 15 минут погода в Гадюкино, ради чего, собственно и слушаю.&lt;br /&gt;</content>
  </entry>
</feed>
