Хроники лаборатории | Вкратце о текущем состоянии дневника:
В связи с загруженностью очень интересной работой, почти перестал вести блог. Но, как легко убедиться, пролистав блог слегка назад, так было не всегда.
| страница: 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 | О автобусах, радио и дорогах | (18 июл 2007г, 09:40) |
О автобусах. Конкретнее - о автобусах междугородних. Еще конкретнее - о больших автобусах маршрутов «Москва - ВставьтеЛюбоеНазвание» или « ВставьтеЛюбоеНазвание - Москва», с номерами Москвы или московской области. Знаете, я теперь знаю куда уходят водители маршруток на повышение. Волосы дыбом встают, когда со стороны смотришь на двухэтажную махину, маневрирующую как столичная «газелька» в час пик. Такой ужас наблюдали всего пару раз, но производит неизгладимое впечатление. О радио. Точнее - о региональном радио, которое «накладывается» на вещание основной, московской волны. Какие же это наглые ребята, должу я вам... Естевственно, реклама московских клубов и стоматологий где-нибудь в Воронеже совсем неактуальна, и ее перекрывают позывными своего, регионального отдела рекламы и рекламой своих клубов и стоматологий, но делается это, как говорил персонаж одного старого анекдота, «неаккуратненько как-то». Например, могут заткнуть ведущего, начав рекламу раньше времени, и это вовсе не означает, что она кончится тоже раньше - она простирается залеко за пределы рекламного времени «основного» вещания. Обычная картина: заканчивается региональная реклама, продолжается эфир «основной» волны, а там уже заканчивается какая-нибудь композиция. О дорогах. А именно - о платных дорогах и дорогах краснодарского края. Для начала - о платных дорогах. На трассе М4, оказывается, появились отрезки платной дороги. Вернее, отрезок пока один, но судя по увиденному нами краем глаза указателю, скоро появится еще один. Легковушкам проехать стоит 20р, другим дороже - до 80р. Конечно, можно проехать и бесплатно - по объездному бесплатному отрезку. Мы решили не связываться с бесплатным покрытием и отдали двадцатку, тем более есть за что - дорога, я так понимаю, на эти средства ремонтируется и содержится в шикарном состоянии. Теперь про дороги краснодарского края. Те дороги между городами, на которых нам довелось поколесить, много лучше даже некоторых московских. И бесплатные. Правда, сделанные с размахом развязки с круговым движением и заправками «Лукойл» вызывают навязчивое ощущение «Дежа вю», потому как похожи друг на друга как близнецы-братья, но это мелочи.
| комментарии: 2 RSS HTML рубрики: поездки-тусовки | |
| | О родителях и первом дне поездки | (17 июл 2007г, 09:54) |
Собирая мысли после поездки в кучу, начинаю рассказ об этом путешествии. Предупрежу сразу: собираюсь с мыслями я долго, формулирую еще дольше, так что рассказ будет неспешным. | Итак, опуская «предпоездную лихорадку» («Вот это взяли?» - «Да» - «А вот это?» - «Ой!..»), мы наконец тронулись в путь. Наша машина - настоящий дом на колесах. Это УАЗ-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 рубрики: поездки-тусовки | |
| | | | Кое-что о приборах и «родном» ПО. | (02 июл 2007г, 13:29) |
Нашему НИИ предоставили для испытаний некий прибор. В комплекте с прибором шла программа для испытаний. Нам ее разок продемонстрировали, пояснили что где, и все. То есть совсем все - программист и показывавший нам эту программу мужик, как до нас потом дошли слухи, ушли из этой организации. Полагаю, сделали они это, опасаясь нашего праведного гнева, потому что с прибором начались чудеса. Да и у программы обнаружились кое-какие причуды. Месяц я гонял этот несчастный прибор причудливой «родной» программой. Прибор показывал ужасные результаты, никак не соответствующие заявленным характеристикам. Меня начали терзать смутные подозрения насчет программы. Ее капризы и марсианская логика вконец вывели меня из себя. Я плюнул, засел за документацию по прибору и написал свою программу. Полученные с помощью новой программы данные полностью реабилитировали агрегат, точностные показатели тут же «похорошели» почти на два порядка! Прибор оказался не так плох, как хотел нам показать его программный «родственничек». Всему отделу до сих пор непонятно, каким образом поставляемая с прибором программа ТАК лажанулась, угробив показатели в хлам.
Мораль сей басни такова: «родное» программное обеспечение - не всегда истина в последней инстанции...
| комментарии: 0 RSS HTML рубрики: жизненное | |
| | Из институтского прошлого. | (01 июл 2007г, 09:42) |
В студенческую мою бытность в МГТУ им. Н. Э. Баумана дежурили мы как-то с ребятами на военной кафедре. И в учительской на стене увидели листок с совершенно замечательным стишком. Я его списал, и недавно эту запись откопал у себя в бумагах.
Исполнитель! Твердо знай: Враг коварен, негодяй. Может, он переоделся В офицера-моряка, Или летчика, положим, Чтоб пробраться в РККА. В кабинет проникнет ночью Вынет фомку и наган, Сейф твой быстренько взломает И сопрет твой чемодан. На большой подводной лодке Чемодан твой увезут В ЦРУ его доставят И директору сдадут. Враг узнает из тетрадок, что их техника - дерьмо, Что по технике военной Обошли мы их давно. И лишат тебя оклада, И фуражки, и погон Потому что ты - раззява И нанес стране урон.
Чтоб секреты сохранились, Чтоб врагу отпор был дан, С окончанием работы Сдай секретный чумадан!
|
| комментарии: 0 RSS HTML рубрики: жизненное | |
| | | | | | Синхронизация с LiveJournal | (29 июн 2007г, 18:00) |
Статья была написана для 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 рубрики: приемчики | |
| | | | | | страница: 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 аватарки курсоры
Разное:
Полка с фильмами
Книжная полка
Полка с играми
Избранное
Календарь записей
|