Я в интернете

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

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

Избранное

Позднее Ctrl + ↑

Айбукс 2 и новое образование

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

Олег Андреев точно пишет:

Today’s Apple announcement is just one more achievement of the human civilization, in addition to iPad, Android, Windows XP, World Wide Web, printing press and alphabet.

Я всерьёз хочу помолодеть на 15 лет и пойти в школу, потому что всё, что они показали сегодня, просто запредельно круто. Времени на Айтюнс-Ю не хватает всё время, а тут он стал в 100 раз интереснее вдруг, ну как же так? И мне уже страшно от того, что Эплы делают всё. Где все остальные? Где хоть один конкурент? Ёлки, проснитесь уже.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Промо-микс: Хочу назад

На каникулах сделал новый промо-микс. Теперь слушать его можно прямо тут:

Давно хотел сделать техновый микс, и вот сделал. Микс, как и все другие мои миксы живёт на Промодиджее и у меня в музыкальном разделе.

Плеер вроде стал понадёжнее работать. Про то, как прикрутить такой плеер, тоже скоро расскажу. Как нетрудно догадаться, тут тоже без Нисдена не обошлось.

Нисден, Ютюб и Фоторама

Вчера я писал про Нисден, новый форматтер в Е2, и упоминал, что он расширяемый. Сегодня я выложил более свежую сборку Эгеи (v2535) с более свежей версией Нисдена в ней. Теперь можно расширять. Например, я вот Фотораму прикрутил:

Сейчас объясню.

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

Нисден лежит в Эгее в папке /system/neasden/. А в подпапке /extensions/ лежат расширения для вставки картинок, таблиц и всего такого. Каждое расширение определяет с помощью регвыражения типы строк, которые его интересуют, и группы, которые оно умеет отображать.

Посмотрим, например, на youtube.php. Там определяется строка класса youtube как строка, состоящая из урла видика на Ютюбе, а потом группа youtube как строка youtube и любое количеством простых текстовых строк (p) за ней. После чего идёт функция, которая превращает это дело в ХТМЛ. В результате чтобы вставить кино с Ютюба теперь достаточно просто вставить в отдельной строке ссылку на ролик. Аналогично там с Вимео.

Расширения, лежающие в /system/neasden/extensions/ идут в комплекте с Эгеей, но добавлять в эту папку свои не нужно, потому что при обновлении движка папку /system/ целиком заменяют на новую. Свои расширения кладут в /user/neasden/extensions/.

Как прикрутить Фотораму? Вот так:

  1. Скачать расширение для Нисдена и положить в /user/neasden/extensions/.
  2. Скачать саму Фотораму с её сайта и положить в /user/neasden/extensions/fotorama/.
  3. Положить в /user/neasden/ файл config.php следующего содержания:
<?
  $_neasden_config = array (
    ’__extensions’ => array (
      ’fotorama’,
    ),
  );
?>

Теперь несколько подряд идущих строк с названиями файлов картинок будут превращаться в Фотораму. Если нужно, чтобы они были отдельными картинками, разделите их пустыми строками. Если разберётесь, как устроено расширение и почему оно работает, то сможете сделать свои по аналогии. Клёвые расширения присылайте мне. Вопросы и замечания — тоже.

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

Богатые и бедные

Наверняка все уже видели вот эту картинку, представляющую результаты опроса богатых и бедных:

Если вы ещё не видели, посмотрите внимательно, прежде чем читать дальше.

Интересна картинка, прежде всего, тем, какие выводы из неё для себя делают разные ребята. Вот два варианта:

  1. «Мне нужно лучше учиться, больше трудиться и быть смелее!»
  2. «Богатые склонны отрицать роль связей и обмана в своём успехе и врать, что его причина — в упорном труде».

Первый казался мне совершенно очевидным, пока я с изумлением не встретил где-то в интернете второй.

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

Интерфейсные тени в Фотошопе

Стандартный эффект дроп-шадоу в Фотошопе виден за версту. С его помощью обычно получается неправдоподобная, плоская и некрасивая тень:

Кнопка с эффектом дроп-шадоу

Смысл эффекта — плашка по форме объекта кладётся под него, размывается и сдвигается. Вот какие параметры выставлены у этой тени:

Параметры эффекта дроп-шадоу

Чтобы тень была интереснее не обязательно звать техдизайнера: группа параметров Quality позволяет добиваться намного лучших результатов.

Во-первых, контур. Его можно гнуть:

Контур тени в Фотошопе

График изображает характер схождения тени на нет. Правда, почему-то он развёрнут задом наперёд: слева самая дальняя от объекта точка, а справа — самая ближняя. Почти всегда стоит опускать серединку пониже, чтобы тень на половине своего радиуса была густой уже менее, чем наполовину.

В комплекте с Фотошопом идут какие-то совершенно невменяемые контуры, дискредитирующие саму эту фичу (речь о первых двух строчках):

Контуры тени в Фотошопе

Последние четыре контура — мои. Нужно не лениться добавлять себе в набор удачные контуры, чтобы можно было быстро их выбирать. Вот, например, последний контур в деталях:

Контур тени в Фотошопе

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

Во-вторых, шум. Шум просто стоит добавить на уровне 2-3%:

Шум у теней в Фотошопе

С такими контуром и шумом кнопка получится уже вот такая (остальные параметры те же):

Кнопка с улучшенным эффектом дроп-шадоу

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

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

Как люди подсаживаются на Мак

Есть много объяснений тому факту, что кто-то предпочитает виндовым компьютерам Маки. Религиозный фанатизм ко всему, что делает Эпл. Боготворение Стива Джобса лично. Просто хороший маркетинг Эпла. Желание произвести впечатление на окружающих дорогой вещью.

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

За последние пару лет человек 5-6 из моих знакомых ярых эплоненавистников и любителей постебаться по поводу Маков решительно перешли на них и быстро обзавелись Тайм-капсулами и прочими Аэропорт-экстримами. Теперь планомерно пересаживают и своих близких. Мне больно видеть, как люди глупеют, слабеют и теряют способность противостоять напору церковного маркетинга, в то время как циничные и алчные «бизнесмены» из Купертино гребут их кровно заработанные деньги.

Когда-то мы с Женей Степанищевым говорили про Мак и фанбоев, и он сказал: «Когда я сидел на Винде, казалось, что ты фанат, а сейчас так не кажется». А недавно Джон Грубер дал определение фанбоя: «Someone who began using Apple products before you did». Это очередной ужасающий пример того, как опасная трясина засасывает ещё в недавнем прошлом адекватных людей, и они больше не контролируют ни действия, ни мысли. Как вернуть всем этим людям рассудок? Как выйти из этого страшного кризиса?

Автомобиль, смотрящий вправо

Все знают, что «позитивное» направление — это вправо и вверх. Ну, а кто не знает, пусть читает про матрицу эмоций. Однако, есть пара нюансов.

Автомобиль, смотрящий вправо

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

А когда я делал сайт «Шеффилду» (кстати, спасибо всем за замечания, постепенно всё учтём), у меня возникло схожее чувство уже в связи с кием, который там смотрит вправо. Я правша, поэтому кий должен смотреть влево, чтобы его было удобнее брать. Но в данном случае всё-таки желание направить предмет вправо перевесило.

Ранее Ctrl + ↓