Хроники лаборатории
Вкратце о текущем состоянии дневника:

В связи с загруженностью очень интересной работой, почти перестал вести блог. Но, как легко убедиться, пролистав блог слегка назад, так было не всегда.
страница: 96 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101
О родителях и первом дне поездки


Собирая мысли после поездки в кучу, начинаю рассказ об этом путешествии. Предупрежу сразу: собираюсь с мыслями я долго, формулирую еще дольше, так что рассказ будет неспешным.

Итак, опуская «предпоездную лихорадку» («Вот это взяли?» - «Да» - «А вот это?» - «Ой!..»), мы наконец тронулись в путь. Наша машина - настоящий дом на колесах. Это УАЗ-3303, переделанный под УАЗ-«буханку» (или «таблетку», в ходу оба прозвища). Кто не сообразил - фото слева. Должен сказать, что примерно до липецкой области ехать довольно скучно. Хоть регион и зовется центральным, а дороги (особенно по сравнению с дорогами в краснодарском крае) так себе, и вокруг сплошные пейзажи с какими-то разрушенными ангарами из S.T.A.L.K.E.R., а стоит где-то не там свернуть, так начинается сплошной Полный привод: УАЗ 4х4. Я не зря употребил сравнение с играми: с этого я хочу начать небольшое лирическое отступление насчет своих родителей.

Мои родители уникальны. И вовсе не в плохом смысле этого слова. Они молоды относительно всех известных мне родителей моего поколения, обладают довольно мудрым подходом к жизни и просто бесконечным терпением по отношению ко мне и моим братьям. В их отношениях с компьютерами и вовсе интересная картина: они не паникуют при словах «вирус», «троян» и в большинстве случаев вполне способны прибить самостоятельно и того, и другого, ежели таковые объявятся. В свое время мы вместе с ними зависали за программированием под болгарский Правец-8Д, а позже - за игрушками на ZX Spectrum. Родители переиграли вместе со мной во многие культовые PC-игры тех лет, и некоторые из них они проходили раньше меня (например, UFO: Enemy Unknown). Профессии у них далекие от программирования, так что как компьютеры начали бурно эволюционировать, к программированию они поостыли, но игрушки время от времени покупаются, и после работы кто-нибудь из них расслабляется за компом. Из последних приобретений - вышеупомянутые S.T.A.L.K.E.R. папе и Полный привод: УАЗ 4х4 для мамы. «Сталкера» отец прошел и, как я понял, не единожды. У мамы с «Полным приводом» пока дела хуже...

В общем, лирическое отступление закончено, вы имеете достаточное представление, чтобы оценить юмор следующей ситуации: едем, вокруг «Сталкер» и «Полный привод», и тут с очередного холма открывается вид на пшеничное или ржаное поле, которое своим желтым цветом и правильной прямоугольной формой вызывает у мамы восторг, который она выражает следующей фразой:

- Смотрите, как прикольно! Как площадки под строительство из Dune!


комментарии: 1 RSS HTML рубрики: поездки-тусовкиjuick twitter facebook вконтакте
Таймаут.

Я второй день на море. И не хочется ничего писать. Вот вернусь - напишу эпос "как я был в отпуске". А пока беру таймаут до 15го.


комментарии: 10 RSS HTML рубрики: жизненноеjuick twitter facebook вконтакте
Кое-что о приборах и «родном» ПО.

Нашему НИИ предоставили для испытаний некий прибор. В комплекте с прибором шла программа для испытаний. Нам ее разок продемонстрировали, пояснили что где, и все. То есть совсем все - программист и показывавший нам эту программу мужик, как до нас потом дошли слухи, ушли из этой организации. Полагаю, сделали они это, опасаясь нашего праведного гнева, потому что с прибором начались чудеса. Да и у программы обнаружились кое-какие причуды. Месяц я гонял этот несчастный прибор причудливой «родной» программой. Прибор показывал ужасные результаты, никак не соответствующие заявленным характеристикам. Меня начали терзать смутные подозрения насчет программы. Ее капризы и марсианская логика вконец вывели меня из себя. Я плюнул, засел за документацию по прибору и написал свою программу. Полученные с помощью новой программы данные полностью реабилитировали агрегат, точностные показатели тут же «похорошели» почти на два порядка! Прибор оказался не так плох, как хотел нам показать его программный «родственничек». Всему отделу до сих пор непонятно, каким образом поставляемая с прибором программа ТАК лажанулась, угробив показатели в хлам.

Мораль сей басни такова: «родное» программное обеспечение - не всегда истина в последней инстанции...


комментарии: 0 RSS HTML рубрики: жизненноеjuick twitter facebook вконтакте
Из институтского прошлого.

В студенческую мою бытность в МГТУ им. Н. Э. Баумана дежурили мы как-то с ребятами на военной кафедре. И в учительской на стене увидели листок с совершенно замечательным стишком. Я его списал, и недавно эту запись откопал у себя в бумагах.

Исполнитель! Твердо знай:
Враг коварен, негодяй.
Может, он переоделся
В офицера-моряка,
Или летчика, положим,
Чтоб пробраться в РККА.
В кабинет проникнет ночью
Вынет фомку и наган,
Сейф твой быстренько взломает
И сопрет твой чемодан.
На большой подводной лодке
Чемодан твой увезут
В ЦРУ его доставят
И директору сдадут.
Враг узнает из тетрадок,
что их техника - дерьмо,
Что по технике военной
Обошли мы их давно.
И лишат тебя оклада,
И фуражки, и погон
Потому что ты - раззява
И нанес стране урон.

Чтоб секреты сохранились,
Чтоб врагу отпор был дан,
С окончанием работы
Сдай секретный чумадан!



комментарии: 0 RSS HTML рубрики: жизненноеjuick twitter facebook вконтакте
Справка

Дело было несколько лет назад. Уж не помню, сколько мы выпили, но я стал обладателем такой вот справки от FatZer'a.

Для тех, кто не силен в рукописях, расшифрую: «Выдана V.exeR'у в том, что он меня достал».


комментарии: 3 RSS HTML рубрики: жизненноеjuick twitter facebook вконтакте
Йа колокольчег

Не удержался, купил эту газировку. Раньше как-то не замечал даже. А сейчас - пробило на «га-га». Фотошопа самый минимум. Для тех, кто не в теме: волна всяких «йа», если я не ошибаюсь, пошла от фразы «Йа креведко». Там приводится ссылка на цитату с БашОрга, но хоть убейте, мне кажется, что я ее видел там еще раньше, до цитаты про надпись на парте.

Вот натуральный вид бутыки. Вам тоже пришла ассоциация или меня уже не вылечить?..



комментарии: 1 RSS HTML рубрики: допридуманоjuick twitter facebook вконтакте
Синхронизация с LiveJournal

Статья была написана для HostInfo.ru.

Думаю, мало кто поспорит, что блоги (в частности, сервис LiveJournal) стабильно обосновались в нашей жизни как (как минимум) довольно удобный способ узнать, что нового происходит в жизни друзей и знакомых. Еще интересно бывает следить за блогами незнакомых, но пишущих интересные статьи людей. Не стоит забывать и сообщества, коих великое множество. Таким образом, довольно приличное количество людей начинают свой день (или, напротив, завершают его) просмотром так называемой «френдленты», в которой к одной колонке сводятся все записи из интересующих журналов. Некоторые даже специально заводят аккаунты, которыми пользуются исключительно для того, чтобы одной страницей читать все новости. И нет-нет да и проскакивает мысль: «А как удобно было бы читать вот тот вот сайт в этой же френдленте». Действительно, есть огромное количество сайтов-блогов, ведущихся по тому же принципу, что и на LiveJournal, но на собственном хостинге. Если у вас подобный блог, почему не сделать синхронизацию, чтобы при изменениях на сайте автоматически изменялось его «зеркало» в LiveJournal?

В принципе, например, если ваш блог построен на CMS WordPress, то можно взять готовый плагин, синхронизирующий записи с сайта с аккаунтом в LiveJournal. Но это типовое решение, и в данной статье мы рассмотрим процесс чуть глубже, на уровне интерфейсов LiveJournal.

Будем считать, что процесс добавления новостей на свой собственный сайт вы наладили, и сосредоточимся на дублировании этих записей непосредственно в «Живой журнал». Собственно, для добавления записи у нас масса возможностей: через SMS, через Jabber, электронную почту. Однако нас интересуют два более гибких интерфейса: Flat- и XML-RPC-протоколы.

Flat Client/Server Protocol Flat Client/Server Protocol представляет собой обработку обычных POST-запросов. Например, страница, содержащая такую форму, может быть использована для добавления сообщений в любой дневник:

 <form accept-charset="UTF-8" method="post" name="postform"

 action="http://www.livejournal.com/interface/flat">

 <input type=hidden name=mode value="postevent">

 <input type=hidden name=user value="username">

 <input type=hidden name=password value="password">

 <input type=hidden name=auth_method value="clear">

 <input type=text name=year value="2007">

 <input type=text name=mon value="05">

 <input type=text name=day value="31">

 <input type=text name=hour value="17">

 <input type=text name=min value="0">

 <input type=text name=subject value="тема"><br /><br />

 <textarea name=event>сообщение</textarea><br /><br />

 <input type=button value="Ok" onclick="postform.submit()"><br />

 </form><br />


Естественно, в поля user и password вписываются логин и пароль журнала, в который, собственно, мы хотим добавить запись. В ответ на эту форму сервер (если данные учетной записи верны) выдаст ответ подобного вида:


 anum

 192

 itemid

 7

 success

 OK

 url

 http://user.livejournal.com/1984.html


Значение success, равное «OK», говорит о том, что сообщение успешно добавлено в журнал. В случае неудачи этот параметр будет равен FAIL. Параметр anum, судя по документации, предназначен для вычисления публичного itemid записи. На самом же деле я так и не встретил ситуации, когда бы этот параметр пригодился. Параметр itemid содержит номер записи в данном дневнике, и его можно, например, запомнить в базе – он может понадобиться для редактирования записи. Последний параметр – url – содержит прямую ссылку на запись.

Вуаля, треть нашей задачи мы осуществили: теперь при добавлении новости на сайт эта же новость без труда дублируется в «ЖЖ». Две оставшиеся трети проблемы решаются следующим образом:


 <form accept-charset="UTF-8" method="post" name="postform"

 action="http://www.livejournal.com/interface/flat">

 <input type=hidden name=mode value="editevent">

 <input type=hidden name=itemid value="7">

 <input type=hidden name=ver value="1">

 <input type=hidden name=user value="username">

 <input type=hidden name=password value="password">

 <input type=hidden name=mode value="editevent">

 <input type=hidden name=auth_method value="clear">

 <input type=text name=year value="2007">

 <input type=text name=mon value="05">

 <input type=text name=day value="31">

 <input type=text name=hour value="17">

 <input type=text name=min value="0">

 <input type=text name=subject value="тема"><br /><br />

 <textarea name=event>сообщение</textarea><br /><br />

 <input type=button value="Ok" onclick="postform.submit()">

 </form> 


Эта форма отличается от первой рассмотренной только второй и третьей строками. Параметр mode мы установили равным editevent и ввели параметр itemid, который содержит номер редактируемой записи в LiveJournal. Причем если поле event будет пустым, сообщение будет стерто.

XML-RPC Interface
Но Flat-интерфейс все-таки не очень удобен. Более гибким и мощным инструментом является XML-RPC-интерфейс. Для реализации работы с этим интерфейсом на PHP я выбрал библиотеку XML-RPC for PHP. Вот пример функции для добавления сообщения в журнал:


 function post_LJ($year,$month,$day,$hour,$minute,$subject,$event) {

 $lj_userid="user";

 $lj_passwd="password";

 

 $client=new xmlrpc_client("/interface/xmlrpc", "www.livejournal.com", 80);

 

 $params = new xmlrpcval( array(

 	 'username' => new xmlrpcval($lj_userid,'string'),

 	 'password' => new xmlrpcval($lj_passwd,'string'),

 	 'ver' => new xmlrpcval('1','string'),

 	 'lineendings' => new xmlrpcval('pc','string'),

 	 'event' => new xmlrpcval($event,'string'),

 	 'subject' => new xmlrpcval($subject,'string'),

 	 'year' => new xmlrpcval($year,'int'),

 	 'mon' => new xmlrpcval($month,'int'),

 	 'day' => new xmlrpcval($day,'int'),

 	 'hour' => new xmlrpcval($hour,'int'),

 	 'min' => new xmlrpcval($minute,'int')),'struct'

 );

 

 $msg = new xmlrpcmsg('LJ.XMLRPC.postevent');

 $msg->addparam($params);

 $client->setDebug(0);

 $result = $client->send($msg);

 if ($result->faultCode() != 0) {

 print "Ошибка: " . $result->faultString();

 } else {

 printf("Сообщение добавлено");

 };

 };


Если рассматривать процедуру вкратце, то мы сначала формируем XML-запрос, а затем отсылаем его серверу на обработку. В ответ мы получаем тоже XML-файл, но уже с результатами. Мы можем получить и распечатать любую запись из дневника:


 function view_LJ($itemid) {

 $lj_userid="user";

 $lj_passwd="password";

 

 $client=new xmlrpc_client("/interface/xmlrpc", "www.livejournal.com", 80);

 

 $params = new xmlrpcval( array(

 	 'username' => new xmlrpcval($lj_userid,'string'),

 	 'password' => new xmlrpcval($lj_passwd,'string'),

 	 'ver' => new xmlrpcval('1','string'),

 	 'lineendings' => new xmlrpcval('pc','string'),

 	 'selecttype' => new xmlrpcval('one','string'),

 	 'itemid' => new xmlrpcval('itemid','string'),

 	 'year' => new xmlrpcval($year,'int'),

 	 'month' => new xmlrpcval($month,'int'),

 	 'day' => new xmlrpcval($day,'int')),'struct'

 );

 

 $msg = new xmlrpcmsg('LJ.XMLRPC.getevents');

 $msg->addparam($params);

 $client->setDebug(0);

 $result = $client->send($msg);

 if ($result->faultCode() != 0) {

 print "Ошибка: ".$result->faultString();

 return;

 };

 

 $v=$result->value();

 $events=$v->structMem('events');

 $event = $events->arrayMem(0);

 $itemid_xml=$event->structMem('itemid');

 $eventtime_xml=$event->structMem('eventtime');

 $subject_xml=$event->structMem('subject');

 $event_xml=$event->structMem('event');

 

 $itemid=$itemid_xml->scalarVal();

 $subject=$subject_xml->scalarVal();

 $eventtime=$eventtime_xml->scalarVal();

 $event=$event_xml->scalarVal();

 

 printf("$eventtime<br /><br />");

 printf("$subject<br /><br />");

 printf("$event<br />");

 

 };


То есть при большом желании можно не хранить записи на сайте, а получать их в момент формирования страницы со своего «ЖЖ»-аккаунта.

Редактирование и удаление записей производится по аналогии с примером, приведенном для Flat-интерфейса:


 function post_LJ($itemid,$year,$month,$day,$hour,$minute,$title,$message) {

 $lj_userid="user";

 $lj_passwd="password";

 

 $client=new xmlrpc_client("/interface/xmlrpc", "www.livejournal.com", 80);

 

 $params = new xmlrpcval( array(

 	 'username' => new xmlrpcval($lj_userid,'string'),

 	 'password' => new xmlrpcval($lj_passwd,'string'),

 	 'ver' => new xmlrpcval('1','string'),

 	 'itemid' => new xmlrpcval($itemid,'int'),

 	 'event' => new xmlrpcval($message,'string'),

 	 'lineendings' => new xmlrpcval('pc','string'),

 	 'subject' => new xmlrpcval($title,'string'),

 	 'year' => new xmlrpcval($year,'int'),

 	 'mon' => new xmlrpcval($month,'int'),

 	 'day' => new xmlrpcval($day,'int'),

 	 'hour' => new xmlrpcval($hour,'int'),

 	 'min' => new xmlrpcval($minute,'int')),'struct'

 );

 

 $msg = new xmlrpcmsg('LJ.XMLRPC.editevent');

 $msg->addparam($params);

 $client->setDebug(0);

 $result = $client->send($msg);

 if ($result->faultCode() != 0) {

 print "Couldn't process request: ".$result->faultString();

 return;

 };

 };


Таким образом можно реализовывать довольно интересные комбинации. Например, вы можете вести дневник на LiveJournal и вкраплять в ленту записей новости своего сайта. Или, напротив, разбавлять новости на главной странице записями из своего «ЖЖ». Также можно не ограничиваться одним аккаунтом, а, допустим, если у вас музыкальная группа, то на странице сайта можно собрать до кучи записи из «ЖЖ»-аккаунтов всех участников. В общем, возможности ограничиваются исключительно вашей фантазией и производительностью сервера.


28 июня 2007

Опубликовано на HostInfo.ru 29 июня 2007.


комментарии: 0 RSS HTML рубрики: приемчикиjuick twitter facebook вконтакте
Специалист широкого профиля

Ко мне нельзя обращаться с вопросом «Ты программист?». Это установлено абсолютно точно. У меня от этого вопроса нервное «хи-хи» начинается. Потому что после этого вопроса можно ждать чего угодно: дискуссии на тему «есть ли жизнь на Марсе», требования прочитать цикл лекций «как сделать сайт», выяснений «почему у меня телефон просто перестал включаться». Короче говоря, предсказать в какую область свернет беседа дальше не возьмется никто. Тема может быть произвольной - от биологии и ядерной физики до юриспруденции и философии. И только примерно в 5% случаев дальнейший разговор касается действительно программирования. Таким вот образованным, оказывается, в наше время должен быть программист.


комментарии: 4 RSS HTML рубрики: жизненноеjuick twitter facebook вконтакте
Обарзевшие спамеры



комментарии: 1 RSS HTML рубрики: смехоспамjuick twitter facebook вконтакте
Чудеса топологии

Вчера под вечер кабинет заполнили причудливые трели: бесперебойники всех компьютеров запищали о том, что в розетках кончилось электричество. Хотя нет, вру, не все. Но об этом чуть позже. Работа встала. Побежали искать электриков. Если вкратце описывать нашу систему энергоснабжения, то это такая система, которую вкратце не опишешь. Это несколько независимых силовых линий, причем каждая линия под свои нужды. Например, пока наши компьютеры простаивали, холодильник с микроволновкой в «бытовом уголке» и освещение исправно работали, поскольку питались от линии освещения. Один компьютер оказался включен в удлиннитель, тянущийся от розетки, от которой запитывается холодильник. Соседние кабинеты тоже спокойно работали, что нас немало озадачило - обычно отключение происходило комплексно. Найденные электрики смотрели на нас такими же выпученными глазами как и мы на них: оказывается, на семь (!) этажей ниже, на этаже с дирекцией что-то ковыряли, и отключили линию освещения туалетов, никак не предполагая, что это кому-то повредит. Через час все заработало, но какое-то странное ощущение осталось. Теперь даже не знаю, как относиться к такому месту в энергосети: или радоваться тому, что запитываемся с этажа дирекции, или обижаться, что наши компьютеры работают от сети освещения туалетов.

А вообще надо купить удлиннитель. Тоже хочу запитываться «от холодильника»...


комментарии: 1 RSS HTML рубрики: жизненноеjuick twitter facebook вконтакте
страница: 96 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101
Подписаться


Рубрики:

жизненное
аудио-я
видеомонтаж
фотоохота
ремонт
стихи
рассказы
синематограф
библиотека
фонотека
точка зрения
FAQ
приемчики
придумалось
ожидания-прогнозы
допридумано
рингтоны
это я так шучу
обои
микрозарисовки
опасный Интернет
я в печати
поездки-тусовки
смехоспам
мой код
футболки
игродром
подводная жизнь
сайтоводство
программы
персоны
LI.ru
аватарки
курсоры


Разное:

Полка с фильмами
Книжная полка
Полка с играми
Избранное


Календарь записей

2021 (1)
июнь (1)
2020 (7)
2019 (3)
2018 (1)
2017 (10)
2016 (12)
2015 (3)
2014 (12)
2013 (10)
2012 (17)
2011 (84)
2010 (172)
2009 (228)
2008 (263)
2007 (154)
2006 (4)
2005 (1)
2004 (1)
2002 (1)
2001 (9)
2000 (9)
1999 (1)
© сайт разработан и поддерживается мной.