Я в интернете

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

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

Позднее Ctrl + ↑

Отладка

Всего сутки отладки — и я вкурсе, что под Mozilla у форм, находящихся в <iframe style="display: none"> не работает метод submit (). Никаких предупреждений об ошибках, никаких записей в javaScript Console. Просто всё работает так, как будто метод submit () в том и заключается, чтобы ничего не делать. Bah.

(Mozilla Firefox 0.9.2)

Update: Да, безопасность на уровне, особенно учитывая, что тупая замена display: none на border: 0; width: 0; height: 0 решает проблему.

Что же делать с кейвордами?

 4 мин

Будет очень интересно почитать планирующуюся культовую смирновскую книжку «Как перестать классифицировать записи и начать писать», потому, что без книжки этого понять невозможно. Вот пишет, например, Вадим про нити. Ну как не высказать своё мнение на этот счёт? Обязательно надо высказать. Высказываю.

  1. Нити и кейворды — это одно и то же;
  2. Не нужно плодить лишние сущности без надобности.

Вот есть у тебя цепочка заметок по поводу одной задачи, типа «поставлена задача» — «возможные пути решения» — «решена вот так», ну и что мешает создать кейворд «задача»? Просто сделай кейворд, зачем его называть словом «нить»? Тут есть два варианта: или Вадим не дописал о каких-то потайных функциях нитей, или он просто не понял, что это то же самое, что и кейворды. Разумеется, я склоняюсь к первому. Точнее, даже, надеюсь на первое; а также на то, что он напишет что-нибудь на эту тему.

Тем не менее, хоть функционально кейворды и нити — это одно и то же, семантически это всё-таки разные вещи, поэтому нужно придумать и функциональность какую-нибудь, которая была бы связана как-то с этой разницей. Например:

  • в любой заметке, участвующей в нити, должна быть ссылка на предыдущую и следующую заметки именно этой нити;
  • когда мы открываем страницу кейворда-нити, то заметки должны выводиться в режиме «новые снизу», чтобы за темой можно было нормально следить.

По этому поводу у меня уже давно есть, например, мысль ввести синтаксис prevkey и nextkey для вставки ссылок на предыдущую и следующую заметки, содержащие хотя бы один из кейвордов данной. Возможность отображать «новые снизу» реализовать вообще не трудно. Можно даже просто сделать, чтобы по /keywords/path/to/key выдавались новые сверху, а по /threads/path/to/key — снизу.

В конце концов, ничего не мешает сделать в таблице Keywords столбец IsThread, чтобы формально отделить кейворды от нитей. Но я лично в этом не вижу смысла.

Что ещё? А, вот что. Кейворды, в отличие от нитей, не теряют актуальности. То есть, задачу ты поставил и решил, а про идиотов, например, можно писать всегда — тема неисчерпаема. Благодаря Юлии Шабунио в e2 можно сортировать кейворды по дате последнего использования. В этом случае, неактуальные нити постепенно будут сдвигаться вниз.

В e2 Release 1.02 предположительно будет очень крутая штука, которая позволит ориентироваться в бесконечных кейвордах и нитях, а также отличать те кейворды, которые по сути кейворды от тех, которые по сути — нити. Причём, без IsThread.

Теперь немного о том, какая же всё-таки структура кейвордов является самой правильной? Линейная, древовидная или в стиле R2?

Проблема линейной структуры том, что кейворды (сюрприз!) никак не связаны друг с другом. Получается, что «программирование» и «PHP» настолько же самостоятельные темы, насколько «снукер» и «toki pona». Но это не так, программирование и PHP — близкие темы. И это хочется как-то обозначить в структуре, потому, что нужно как-то связать соответствующие заметки друг с другом. Программирование — это более общая тема, чем PHP, Delphi и mySQL. Исходя из этой посылки возникают древовидные кейворды.

Однако, у древовидных кейвордов тоже полно проблем: в половине случаев непонятно, какая тема является общей для двух других. Мой случай, например: я не знаю, «комментатор Саша» должен быть субкейвордом «снукера» или «идиотов»? По идее, и того и другого. В результате этих рассуждений возникают кейворды в стиле R2 (aka «паутинообразные»)

Но и тут не всё гладко. Новая проблема состоит в том, что нам обязательно нужно определиться с тем, какой из двух связываемых кейвордов является более общим. А это не всегда легко/возможно. То, что «fight club» по отношению к «кино» кейворд дочерний — сомнений не вызывает; но вот я, например, не знаю, как бы я связал «Лебедева» и «дизайн». Однако, связать бы их хотел.

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

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

Разумеется, кейворды «PHP 5» и «программирование» связаны сильнее, чем «PHP5» и «web-строительство». Поэтому, по кейворду «PHP 5» хотелось бы видеть:

Cм. также: PHP, программирование, web-строительство

То есть, именно в таком порядке, а не, скажем, по алфавиту. Для этого можно ввести необязательный параметр «сила связи» и дать возможность задавать его при связывании.

Вот такие мысли.

e2 Release 1.01

e2 Release 1.01 v869: что нового.

  • Breakthrough: Автосохранение в форме написания заметок. Однажды у меня компьютер упал в BSOD, когда я уже почти написал заметку. Было обидно. Теперь это не страшно, благодаря автосохранению в форме написания заметок;
  • Комментарии теперь можно добавлять в избранное. Редко бывает, что человек напишет хороший комментарий, но бывает. Для этих случаев — избранные комментарии;
  • Кейворды теперь тоже можно добавлять в избранное. При выводе на главной странице можно показывать только избранные кейворды — аналог «важных» ключевых слов в R2. Прошу любить и жаловать, — избранные кейворды;
  • Надоело читать комментарии к заметкам годовой давности, написанные идиотами, не знающими, что такое календарь? Теперь можно отключить комментирование старых заметок;
  • На странице кейворда теперь отображается не только название кейворда, но и весь путь к нему — переход к родительским кейвордам стал проще. Итак, встречайте — полный путь к кейворду на странице его заметок;
  • На странице кейворда теперь отображаются все его дочерние кейворды, поэтому переход к дочерним кейвордам тоже стал проще. Ещё раз: ссылки на дочерние кейворды на странице родительского;

Подробнее см. верлог

Автообновление работает.

Update: Уже выработан roadmap по Release 1.02

Очередной бред

Нежнейший маршрутизатор, покрытый тостым слоем проводов, растопит сердце вашего сетевого администратора.

PureJPEG

Всем известно, что графические редакторы добавляют в jpg-файлы всякую свою служебную информацию, которая по идее нафиг не нужна, так как к самому изображению отношения не имеет. Ну, добавляет — и хорошо, казалось бы. Ну что они там могут добавить? Ну добавят чуть-чуть, жалко что ли. Оказалось, жалко.

Сегодня мне попалась программка PureJPEG (18 KB), которая вычищает из jpg’ов всю левую информацию. В результате объем всех jpg-файлов, относящихся к сайту english-house.ru уменьшился (внимание) с 543,260 байт до 47,366 байт. То есть, более чем в одиннадцать раз.

В общем, теперь прогоняем каждую папку /images через for %i in (*.jpg) do purejpeg %i. Можно написать bat’ник, тогда придётся все % заменить на %%.

Update: Говорят, что если сохранять jpg в фотошопе через Save for web (по крайней мере в 8-м), то он ничего лишнего не пихает. К сожалению, окно Save for web вызывает у меня рвотный рефлекс, поэтому лучше я всё-таки воспользуюсь PureJPEG.

ilo Milanta

Болк подкинул идею перевести Миранду на toki pona. Посмотрел я её языковой файл — да, страшно становится: там несколько тысяч строк, которые нужно перевести. В общем, я ограничился About’ом, основными меню и окном диалога. Получилось вот что:

ilo toki Milanta

Прелесть.

Новые сайты

См.:

Это beta-версии сайтов. Любая конструктивная критика приветствуется и принимается с благодарностью; неконструктивная не принимается и вызывает желание убить идиота. Ещё раз напоминаю, что недостатки — это нормальное явление для всего (c) я.

По bonne.ru есть проблема под MZ: в разделе вопросы некорректно работают распахивающиеся ответы (корректно — это как в IE/Opera, если что). Думаю, дело в innerHTML, хотя не уверен. Если есть идеи, как это починить — welcome.

Спасибо за помощь.

One step further — 2

В своём желании подколоть Смирнова я оказался прав отнюдь не случайно. Я прекрасно понимаю, что вся эта фигня про N-местные отношения будет работать, и в каких случаях она удобна. Хотя, замечу, сам Смирнов всё-таки говорит про бинарные. Я придумал CMS на базе этого ещё год назад, просто не реализовывал, потому, что у меня нет задач, где бы это могло понадобиться.

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

А во-вторых, я пошёл ещё дальше, предложив выстроить древовидную систему самих отношений. Смайлик. Поэтому подкол всё-таки удался, не нужно этого отрицать!

См. заметку One step further.

Ранее Ctrl + ↓