Позднее Ctrl + ↑

Апдейт Эгеи до v2545

Выложил билд v2545, хватайте. Про то, как прикрутить Фотораму, читайте в другой заметке. У некоторых возникали странные проблемы с этим, правда из тех, у кого они возникали, 2/3 через 5 минут писали «О, я невнимательно прочитал инструкцию, сделал ещё раз и всё сработало», так что, если что, почитайте внимательно. Естественно, когда Нисден выйдет окончательно, всё будет как-то проще.

И так как вы меня научили, что двойная лицензия значит «выбери любую», и я выбрал митовскую и включил Джейплеер прямо в комплект движка. Расширение Нисдена под нехитрым называнием audio теперь идёт вместе с ним. Плеер я переверстал на ЦССе с огромной помощью Радомира Купфера (тени и градиенты он мне все написал, без него я бы нифига не сделал). Вроде работает неплохо, но ещё не безупречно.

Но Нисден ещё в глубокой альфе, а вот Эгею 2.1 надо будет выпускать скоро. Как вы знаете, в 2.1 появилось автомасштабирование картинок, но там была прописана максимальная ширина 768, и чтобы её изменить, нужно было лезть в конфиг, а потом вручную удалять все кеши и ранее отмасштабированные картинки, чтобы движок сгенерировал новые.

Одно из важных изменений в этой сборке — теперь ширина картинок является свойством темы оформления (см. в стандартной теме — /system/theme/theme-info.php — атрибут max_image_width). Если в вашей теме вам удобно использовать другую ширину, просто укажите это значение. Если оно не указано, оно наследуется из родительской темы. Если его изменить, все кеши и всё остальное почистится автоматически и картинки перегенерируются. Естественно, это же произойдёт при смене темы через «Настройку», если в новой теме ширина другая. Короче, кайф.

Нужна помощь в борьбе с Адоби

Если вы пользуетесь моей типографской раскладкой под Маком, то наверняка знаете, что в Фотошопе толком не работают горячие клавиши, когда выбран русский язык. Это страшный адобовский баг, которые они никак не хотят лечить. Я уже просил вас писать багрепорты, давал образец текста и подробно объяснял ситуацию. К сожалению, пока что воз и ныне там (но багрепорт напишите ещё, если ещё не сделали этого).

Один из пользователей раскладки решил написать ещё и на адобовский форум. Адобовские ребята быстренько ответили ему, что баг в раскладке, а Адоби не при делах, да ещё и нагло пометили топик лейблом Solved. Ну, мы знаем, что Адоби именно так «решают» проблемы на примере Флеша.

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

Я, естественно, отписал им там подробненько, почему считаю, что это их баг, и всё такое. Но предлагаю каждому честному человеку пойти туда и поставить хотя бы плюс один самому посту, а в идеале — написать текстом, что их это тоже бесит. Может, хоть так удастся победить ленивых гадов, мешающих дизайнерам набирать тексты в самой правильной раскладке на свете.

Спасибо заранее.

В Фейсбук лайкается не то

Говорят, если у меня нажать на лайк у заметки, то в Фейсбук вместо текста заметки в качестве выдержки попадёт текст из-под заголовка («Пишу про всё подряд»). В Гугль-плюс при этом попадает то, что надо. Если вы знаете, почему это происходит, и как полечить Фейсбук, напишите, пожалуйста. Хочу, чтобы меня все лайкали в Фейсбуке, и всё было хорошо.

А ещё я хочу, чтобы меня лайкали во Вконтакте. Но когда я добавляю к социоштуковине элемент addthis_button_vk, получается фигня: вставляется маленькая кнопочка 16 на 16 пикселей вместо полноценного элемента с числом рядом. И я не могу понять, как сделать нормально. Если вы знаете, напишите тоже, пожалуйста.

Добавлено позднее: Спасибо, что рассказали мне про Фейсбук. Придётся прикручивать в движку поддержку левых мета-тегов. Про Вконтакте так и неясно ничего. Похоже, Аддзыс с ним не умеет толком дружить, и ради него придётся что-то отдельное сочинять.

Добавлено ещё позднее: Оказалось, достаточно было добавить нормальный мета-тег description, и Фейсбуку всё стало ясно безо всяких опен-графов.

О чистоте кода

Нам пишет Алексей Чикин:

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

Просто у меня дилемма. Я сделал нечто, что мне нравится, но я сделал это так, как я умею. И мои умения далеки от гуру-программирования. Стоит ли это нечто представить публике или всё таки убить какое-то время на изучение и рефакторинг кода?

То есть вопрос в следующем. Важно что там и как внутри устроено или результат важнее?

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

Но всё не так просто.

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

Эгея вышла только этим летом, потому что я посвятил предыдущие три года приведению в относительный порядок её кода. Это немыслимо длительный срок для обновления программы, даже для некоммерческого проекта выходного дня. Сейчас мне намного проще добавлять разные плюшки благодаря проделанной тогда работе. Если бы я лучше писал код 8 лет назад, сегодня Е2 как продукт был бы в сто раз лучше, чем есть.

Или вот Биатлонтайм. Там совершеннейшая, беспросветная жесть под капотом. Потому что всё приходится программировать очень быстро. Вдруг оказывается, что судьи добавили кому-то 20 секунд времени штрафа согласно правилу такому-то, а код сайта не знает о том, что так вообще может быть. Приходится делать через жопу, прописывая исключение прямо в коде, потому что результаты публиковать надо прямо сейчас, и это важнее красоты кода. А вот заставлять себя потом привести всё это в порядок удаётся не всегда, и это уже мне мешает добавлять новые штуки на сайте.

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

Отдельно хочу предостеречь вас от приравнивания понятий «качество кода» и «использование современных паттернов проектирования». Между ними нет ничего общего. Использование современных паттернов, ООП, модных фреймворков, валидной семантической вёрстки, распределённых систем контроля версий и всего другого сами по себе никому не нужны. Используйте их только тогда, когда сами точно знаете, какую именно пользу они приносят вашему продукту.

Обратная связь

Как я и предполагал, отключение комментариев активизировало блогеров. Вот, например, что успели понаписать люди:

  1. Коля Митин делится мнением о профессионализме, выражая несогласие с недавно процитированным мной определением.
  2. Никита Прокопов предпочитает придираться к инфографике о богатых и бедных и к моей заметке о ней, вместо того, чтобы услышать, что именно я написал (при этом его заметка страдает от всех тех же формальных недостатков, которые он победоносно вскрывает).
  3. Артём Поликарпов тоже комментирует заметку про богатых и бедных.
  4. Стас Пикин пишет какую-то нелепицу про код и интерфейс (не понял, в чём месседж, и при чём тут я).
  5. Валера Попов информирует, что теперь будет добавлять шум к теням.

Как-то так и должно быть. Каждый пишет у себя и от своего имени. Заводите блоги!

Женские сумки

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

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

Чтобы женщина захотела сумку, необходима несуразная и достаточно ненадёжная конструкция для закрывания; висящий непойми как ремешок, который необходимо периодически поправлять; непропорционально длинные ручки, чтобы сумка практически волочилась по земле; металлические заклёпки или даже уголки по бокам, рельсы снизу. Желанность сумки вдвое повышает торчащая далеко за пределы самой сумки своими висящими концами молния.

Когда женщина покупает новую сумку, происходит следующее. «Ни с эстетической, ни с прикладной точки зрения в этой сумке нет ничего хорошего», — рассуждает мужчина. «Вау, у тебя новая сумка!» — кричат подруги, увидев её в руках очередную неуклюжую конструкцию, — «Какая классная!»

Что почитать на выходных — 1

Понравилось на этой неделе:

  1. Enter, Prise. Статья о роли Эпла на корпоративном ИТ-рынке.
  2. Why I Hate Android. Эм-джи Сиглер о том, как «открытость» Андроида оборачивается выгодой для опсосов, в то время как «закрытость» Айфона — выгодой для конечных потребителей. Плюс комментарий Бена Брукса.
  3. The Nokia Lumia 900. Снова Сиглер, о том, как сделать телефон, который мог бы, наконец, начать конкурировать с Айфоном спустя 5 лет после его анонса.
  4. Misconceptions About iOS Multitasking. Подробное объяснение для тех странных людей, кто убивает приложения из мультитаскинговой панели Айфона для «увеличения производительности», думая, что там показаны запущенные в данный момент приложения. Есть даже видео, но мне было влом смотреть.
  5. Сэм Клебанов и Евгений Гонтмахер высказывают разные взгляды по теме «страшен ли националист Навальный».

«Подпольная империя» против «Шерлока» на «Первом»

Вот так делают спецэффекты (а по факту — добрую половину всех кадров) в американском сериале «Подпольная империя» (Boardwalk Empire):

Полностью охренительное видео.

А вот как «Первый канал» локализует бибисишного «Шерлока» (Sherlock):

В журнале «Записки Петра Петровича» — подробный разбор их непростительной халтуры, оскорбляющей глаза каждого человека.

Правда, автор пропустил главный плевок в душу русского зрителя — поздравление с Новым годом, в котором слово «год» было с какого-то бодуна написано с заглавной буквы:

Отложить звонок

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

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

Но вот реально нужна возможность «отложить» звонок. То есть жмёшь «отложить на час», а через час телефон говорит «Дак чё, позвонить Васе?». Естественно, всё это должно быть завязано на Ремайндерс, чтобы напоминалки синхронизировались и поддерживали геолокацию. «Отложить звонок до вечера, когда вернусь домой». На Айфоне 4С эту задачу, похоже, решает Сири, но как быть простым смертным с первобытными аппаратами?

Ранее Ctrl + ↓