Анонс
Code review не прошёл даром. Начиная с Release 1.02, e2 станет работать в среднем втрое быстрее, чем сейчас.
Code review не прошёл даром. Начиная с Release 1.02, e2 станет работать в среднем втрое быстрее, чем сейчас.
Спрашивали некоторые, почему автосохранение в e2 реализовано не через куки. Дескать, в куку-то лучше писать, не нужно с сервером общаться — и трафик экономим, и тормозов меньше. Отвечаю.
Если бы я был браузером, я бы не стал сохранять куки на жёсткий диск после каждого изменения. Я бы сохранял, например, после закрытия страницы. Следовательно, пока пользователь пишет заметку, как бы тщательно я её не записывал в куки, от BSOD’а или недопустимой операции это не спасёт. А смысл тогда? Защищаться от случая случайного закрытия окна нужно драйвером прямых рук, а не автосохранением.
Куки — бесполезно, прямого доступа к жёсткому диску пользователя у нас нет, остаётся одно — жёсткий диск на сервере. Что и реализовано.
Some people believe that rosh katan is exactly why The United States work. What am I talking about?
In Russia, people tend to «think» when doing their jobs even in (often) case they have no brains. I mean that, when people have some formal directions, they still try to figure out to themselves «why the directions are like this and not like that», «why do they want me to do B after A, when I can easily do it before» and so forth. The reason for that is that people want to do as little as possible to get to the point. In most cases this «thinking» is no good, because the ones who wrote directions are smarter, know better and have better experience.
I spent my summer vacation 2003 working in The United States and was suprised by that how vice-versa the things are in there. In The States, most people don’t think when they have instructions, because, they say, they are paid to follow instructions, not to gain the result. It’s not that they are stupid and so they cannot think. They just know that they have to follow instructions. That’s the key.
For example, imagine your job is to vacuum rooms in a hotel. You get in one of those and you see that it’s almost clean except for a small piece of dust in the corner. So what are you gonna do? Average Russian will go vacuum that corner and proceed to the next room. Average American will vacuum the whole room. Rosh katan? Average Russian will say «yes». But not really. The reason for cleaning the whole room is that the guy is paid for cleaning the room, not for getting the room clean. And this is a right point.
In The States, being paid for doing something means much more to people than it does here.
And, since instructions are written by more advanced people, following the instructions is better then trying to 1) figure out what the instructions are intended to lead to, then 2) figure out how to get that done using another (simpler) way. It’s better in terms of getting the result done precisely as it has to be done.
And room cleaning is just a simple example. The same is right for everything, I guess.
Well, so some people believe, that this is why USA works. They have a way better economy, because smart people developed the system and other people follow its rules. Just follow, no analyses. In Russia, the more we try to be rosh gadol, the more problems we’re gonna have. No matter what a smart plan will someone develop to improve our economy, we will fail. Because it’s the Russian «smart» way.
Just an opinion, of course.
Всего сутки отладки — и я вкурсе, что под Mozilla у форм, находящихся в <iframe style="display: none"> не работает метод submit (). Никаких предупреждений об ошибках, никаких записей в javaScript Console. Просто всё работает так, как будто метод submit () в том и заключается, чтобы ничего не делать. Bah.
(Mozilla Firefox 0.9.2)
Update: Да, безопасность на уровне, особенно учитывая, что тупая замена display: none на border: 0; width: 0; height: 0 решает проблему.
Будет очень интересно почитать планирующуюся культовую смирновскую книжку «Как перестать классифицировать записи и начать писать», потому, что без книжки этого понять невозможно. Вот пишет, например, Вадим про нити. Ну как не высказать своё мнение на этот счёт? Обязательно надо высказать. Высказываю.
Вот есть у тебя цепочка заметок по поводу одной задачи, типа «поставлена задача» — «возможные пути решения» — «решена вот так», ну и что мешает создать кейворд «задача»? Просто сделай кейворд, зачем его называть словом «нить»? Тут есть два варианта: или Вадим не дописал о каких-то потайных функциях нитей, или он просто не понял, что это то же самое, что и кейворды. Разумеется, я склоняюсь к первому. Точнее, даже, надеюсь на первое; а также на то, что он напишет что-нибудь на эту тему.
Тем не менее, хоть функционально кейворды и нити — это одно и то же, семантически это всё-таки разные вещи, поэтому нужно придумать и функциональность какую-нибудь, которая была бы связана как-то с этой разницей. Например:
По этому поводу у меня уже давно есть, например, мысль ввести синтаксис 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 v869: что нового.
Подробнее см. верлог
Автообновление работает.
Update: Уже выработан roadmap по Release 1.02
Нежнейший маршрутизатор, покрытый тостым слоем проводов, растопит сердце вашего сетевого администратора.
Всем известно, что графические редакторы добавляют в 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.
Болк подкинул идею перевести Миранду на toki pona. Посмотрел я её языковой файл — да, страшно становится: там несколько тысяч строк, которые нужно перевести. В общем, я ограничился About’ом, основными меню и окном диалога. Получилось вот что:
Прелесть.
См.:
Это beta-версии сайтов. Любая конструктивная критика приветствуется и принимается с благодарностью; неконструктивная не принимается и вызывает желание убить идиота. Ещё раз напоминаю, что недостатки — это нормальное явление для всего (c) я.
По bonne.ru есть проблема под MZ: в разделе вопросы некорректно работают распахивающиеся ответы (корректно — это как в IE/Opera, если что). Думаю, дело в innerHTML, хотя не уверен. Если есть идеи, как это починить — welcome.
Спасибо за помощь.