Я в интернете

РСС    Джейсон-фид

Есть автоматические трансляции в Тумблер и Же-же. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

Позднее Ctrl + ↑

e2 Oranda M Alpha

Так, ну что ж, следующая превьюшка для интересующихся.

e2 Oranda M Alpha

Я реализовал на некотором уровне STDL — System To-Do List. Теперь при отправке заметки создаётся новая задача, в качестве исходных данных которой даётся список урлов, встреченных в заметке (откуда отсеиваются ссылки на файлы). Задача выполняется путём вызова её «атомарной функции» до тех пор, пока та не вернёт true. Функция постепенно сходит на все страницы, поищет там RDF-информацию для автодискавери, составит список урлов, которые уже можно пинговать, попингует их.

В списке задач может быть одновременно несколько задач, но пока бывают только задачи рассылки трэкбэков. За прогрессом каждой из них можно следить по адресу /tasks, ссылка на который есть и в Панели управления.

Чтобы задачи хоть как-то сдвигались с положения «Новая — 0%», нужно периодически заставлять STDL делать очередной шаг на пути к успеху. Для этого есть служба /stdl_service. Предполагается, что она будет висеть на cron’е, но чтобы просто посмотреть-поиграться её можно вызывать из браузера. Для тех у кого нет возможности вешать службы на cron, будет предусмотрено её выполнение во время гуляния посетителей. Но вот что с вам делать, если у вас и посетителей нет, и на cron вы повесить ничего не сможете — я не знаю.

Задача рассылки трэкбэков создаётся в тот момент, когда вы первый раз отправляете новую заметку на сервер. Если вы её после этого редактируете, добавляя новые урлы, которые может иметь смысл пропинговать, они пока что игнорируются. Однако, если вы запостите заметку скрытой, её трэкбэки не начнут рассылаться, пока вы не сделаете её видимой. Скоро я сделаю, чтобы при редактировании заметки список урлов для рассылки трэкбэков обновлялся.

Добавлена поддержка autodiscovery. На страницах заметок теперь включена необходимая для этого RDF-информация.

Эта версия снова не поддерживает обновления и будет падать в 203-й стоп при попытке сделать его вручную.

Хотите скачать?

Ты — это я, я — это ты...

Посмотрел новый фильм Гая Риччи «Револьвер». Загонный фильм какой-то. Нет, конечно талант делать фильмы, где до самого конца не понятно, кто есть кто, а в самом конце ты думаешь «блин, это же было так очевидно, как я сам не допёр», у этого человека есть. Однако, не лишним является ещё и такое качество фильма, как понятность смысла произошедшего. Хотя бы после самого конца.

А с этим на этот раз у меня как-то туго...

А у вас?

Ю-за-билити

Надпись на гробовой плите: «Забил на юзабилити.»

См. также: «Юзабилити было в изобилии.»

Странно было бы, придумав предыдущую фразу, не догадаться до такого простого: «Рог юзабилити».

Вот, спасибо за внимание.

Автодискавери сделал

Теперь у меня тоже есть автодискавери. На странице заметки и на странице заметок-и-комментариев-к-ней теперь включена RDF-информация для этого. Это значит, что если ваш движок блога поддерживает автоматическую рассылку пингов (как это делает ещё не выпущенная e2 Oranda M, смайлик), то вы можете ставить на меня ссылки, зная, что около соответствующих заметок появятся ссылки обратно на вас.

В RDF я поддерживаю только элементы, необходимые для работы автодискавери — rdf:about и trackback:ping. Зачем нужны элементы Dublin Core я пока не понял, поэтому пихать их не стал.

Кроме этого, теперь к каждой странице прицеплено несколько RSS-потоков через link rel="alternate". Это обязательно «последние заметки» и «последние комментарии», а также, в зависимости от текущей страницы, «комментарии к просматриваемой заметке», «результаты текущего поиска» или «заметки по выбранному кейворду». Раньше ссылки на эти RSS-потоки были только в виде картинок.

Проверка новой системы отправки TrackBack’ов

Эта заметка — просто проверка новой системы отправки TrackBack’ов. Вот сейчас я в ней как бы невзначай упомяну, что меня надавно пинганули блоги PR me or Learn me, ArtReal’s Readme и julik live. И, если у этих ребят поддерживается autodiscovery, то постепенно им должны прийти пинги.

Извините меня за этот спам, но ведь искусство требует жертв!

Кстати, у меня autodiscovery пока нет, поэтому если вы пингуете меня, то пингуйте вручную.

Update: Autodiscovery поддерживается только у julik’а, — ему пинг успешно ушёл.

Ещё, похоже, пытается поддерживаться у ArtReal’а, но как-то странно, в спецификации написано по-другому. Нужно мне начать понимать то, что написано у Вадима, или ему сделать по спецификации?

Для нетерпеливых: e2 Oranda S Alpha

Для нетерпеливых желающих попробовать поиграть в трэкбэк выпущена специальная версия e2 Oranda S Alpha (v1153). Даже вот картинка к ней выпущена:

e2 Oranda S Alpha

Эта версия будет доступна только в виде дистрибутива, на сервере автообновления её не будет. Для вашей же безопасности эта версия вообще не поддерживает автообновление, то есть даже если вы вручную замените ваш core.php новым, то ничего обновляться не будет. Вместо этого будет вот что:

STOP 0x203 UPDATE_NOT_SUPPORTED

Причины. Во-первых, то, как сейчас работает TrackBack, меня не устраивает, и я буду сильно переделывать весь механизм вообще. Во-вторых, поменялись некоторые вещи в файлах дизайна, и эти изменения пока не документированны. Поэтому «гладко» обновиться всё равно не получится.

Если хотите поиграться — можете скачать и поиграться.

Поскольку трэкбэки рассылать всем сразу — дело малоприятное, да и время тратить на это не хочется, то я делаю что-то вроде диспетчера задач — подсистему, которой можно будет сказать «нужно отправить столько-то трэкбэков туда-то» и забыть о них. А она всё сделает, постепенно. Такая подсистема будет не лишней для многих других задач — отправка заметок в ЖЖ, отправка почтовых уведомлений. Кроме того, она позволит наконец-то сделать надёжное автообновление. Называться подсистема будет STDL — System To-Do List.

Проблема в том, что всё это нужно делать, а на это нужно время. Сейчас придумываю API для этого, скоро займусь реализацией.

Получается весьма красиво.

Автоматизированный трекбек

Как я понимаю, одно из основных удобств трекбека состоит в том, что он может работать самостоятельно, без внешнего вмешательства. То есть, после публикации заметки движок обходит все ссылки, которые в ней есть, и пытается их пингануть.

Вопросов это формирует сразу несколько.

Во-первых, насколько это реализуемо с точки зрения производительности? Вот, написал я заметку с 10-ю ссылками. И начинает движок все их обходить, чтобы вычленить из них те, может быть, две-три, которые можно пингануть. Это же тормозит всё, так?

Во-вторых, насколько это надёжно? Допустим, если пингуемый сервер не ответил за 5 секунд, то мы на него забиваем и пингуем следующий. Но ведь может быть он просто случайно оказался недоступен или сильно нагружен в эту секунду, и если попробовать чуть позже, то уже всё получится. Значит нужно хранить список удачных и неудачных исходящих пингов для каждой заметки и как-то периодически повторять попытки... Но ведь это бред?

В-третьих, что если я написал заметку со ссылкой, потом отредактировал её и входе этого редактирования убрал ссылку. Или, кстати, например, вообще удалил заметку. Что происходит в этом случае?

В-чётвертых, нужен ли способ отправить исходящий пинг на адрес, ссылки на который в заметке нет? Сейчас у меня есть только такой механизм, то есть, в форме написания заметки отображается поле «Пинговать по адресу». Но если пинговаться будут все ссылки подряд, то это поле, я думаю, можно убрать. Нужен ли на всякий случай какой-нибудь синтаксис типа

((ping http://baltcity.ru/log/36/kak-i-prosil-ilya/trackback/))

для того, чтобы, если захочется, принудительно пингануть кого-нибудь?

Что скажете?

e2 Oranda Alpha

Теперь релизы e2 будут носить codename’ы. Следующий релиз будет называться «Oranda». Как всем давно известно, главным нововведением будет поддержка TrackBack.

На данный момент ситуация следующая.

Для трекбеков создаётся таблица TrackBacks и они рассматриваются как самостоятельные штуки (сначала я хотел их делать частным случаем комментариев). К каждой заметке можно слать трекбеки по адресу заметки + ’/ping’. Дизайн каждой отдельной строчки с трекбеком определяется в шаблоне design_single_trackback. Трекбеки можно скрывать/показывать и удалять, ещё можно посмотреть whois для IP-адреса с которого пришёл трекбек. Исходящие трекбеки шлются только при отправке заметки в случае, если в поле «Пинговать по адресу» был введён какой-нибудь URL. Поле excerpt в пинге не шлётся, т. к. непонятно, как его формировать. Таблица трекбеков сохраняется при бекапе.

Остальные фичи — autodiscovery, единый rss для комментариев и трекбеков, возможность разрешать/запрещать трекбеки к заметке — пока не реализованы.

Поскольку я по-прежнему думаю, что TrackBack — бесполезная вещь, то мне будет очень трудно её тестировать. Вы можете мне помочь, если пинганёте эту заметку какой-нибудь своей. Даже если она будет не в тему, будет здорово.

Выкладывать обновление на совсем не тестированную версию как-то не хочется, поэтому вот. Надеюсь, что скоро какая-нибудь Alpha будет доступна.

Фотка с прошедшей вечеринки

Никому никогда не удавалось сделать нормальную фотографию меня за пультом! И вот, очередная вечеринка позади, а всё, что мы имеем — вот это:

Илья Бирман играет отличную музыку, 16 сентября 2005 в Гараже

Появилась неофициальная информация, что, возможно, следующая вечеринка пройдет 14 октября.

Seventy Cannons

Отец мой некоторое время назад познакомился на форуме зелёного сукна c Александром — тем человеком, в клубе которого в Екатеринбурге прошёл не так давно чемпионат Европы среди юношей. Победил на этом чемпионате Mark Allen.

«Познакомился с Александром сам — познакомь и сына» — именно таким правилом руководствовался отец. Мы ездили к нему в клуб в Екатеринбург, посмотрели на игроков, на Александра, поиграли сами, интересно пообщались с ним на разные снукерные, околоснукерные и не очень снукерные темы. Главный вывод: есть чему и, главное, у кого учиться.

Одной из самых интересных вещей, которой нас научил Александр, является бильярд (English Billiards). Это игра, в которую играли до снукера. Он предложил нам эту штуку в качестве упражнения, которое, являясь одновременно и игрой, не надоедает. Правила бильярда достаточно просты, если пересказывать их на пальцах, но как и в снукере, есть много нюансов.

На пальцах. Три шара: белый, жёлтый, красный. Белый и жёлтый — битки (у каждого игрока — свой). Очки дают за забивание шаров (это называется «hazard») и за карамболь (это называется «cannon»). Забивать можно и чужие шары («pot» или «winning hazard»), и свой («in-off» или «losing hazard»). За забитый красный или свояк от красного дают 3 очка, за другие забитые шары и за карамболь дают 2 очка. Если за один удар удалось сделать несколько хазардов/кэннонов, то очки за всё суммируются. Если удар принёс игроку очки, его серия продолжается. За фол дают 2 очка сопернику. Забитые шары выставляются: красный на чёрную отметку, чужой биток на синюю отметку, свой биток играется из D-зоны. Если какой-либо из шаров был выставлен на положенную отметку два раза подряд, то в следующий раз он выставляется на розовую отметку (потом снова на свою дважды и так далее). Играть из D-зоны можно только вверх. Нельзя делать более 15 хазардов или более 75 кэннонов подряд.

Забавно то, что после 10 хазардов судья должен объявить «Ten Hazards», а после 70 кэннонов — «Seventy Cannons».

Игрушка очень увлекательная. Особенно интересно научиться-таки играть в неё safe. Мозги-то устроены по-другому — по-снукерному. Благо в правилах есть хинт: «A tactic employed at any time during a game is to leave both object balls in Baulk when the next player is in-hand such that any attempt at disturbing the balls must be by means of an indirect stroke.» Но не так это просто, оставить оба прицельных шара перед балкой...

Кстати, знакомство с этой игрой прояснило ещё один вопрос, который мучил нас очень долгое время: какой же смысл линии балки в снукере, если с ней не связано ни одно правило? Теперь стало ясно, что разметка стола досталась снукеру в наследство от бильярда, где балка играет ключевую роль.

Ранее Ctrl + ↓