В Студии Лебедева в 2005 году сделали фирстиль Симсититранса, в том числе нарисовали схему его маршрутов, такую:
Мне схема понадобилась в качестве примера для моей книги «Дизайн транспортных схем». В книге она должна была занять 3/5 ширины разворота. Но картинка на сайте Студии — 500 пк в ширину. По нашим издательским стандартам мне нужно в четыре раза больше. Я вынес мозг половине Студии, чтобы для меня нашли исходник схемы, но исходника найти так и не смогли.
Тогда я решил сделать реконструкцию. Бросил клич в телеканале, читатель Никита Щербаков вызвался перерисовать схему. Подошёл ответственно:
Фигачим:
Никита всё время норовит сделать лучше, чем было в оригинале:
Мне надо, чтобы было ровно как в оригинале, просто в более высоком разрешении:
Я печалюсь, что никто не знает, чем отличается джипег от пнг:
Главной проблемой в этой схеме оказался подбор шрифта. Никто не знает, что за шрифт на ней использован! Одна сотая часть игры со шрифтами:
Выиграть так и не удалось.
Предпринимаю ещё попытку получить информацию из надёжного источника:
Тёма отвечает:
Я защищаюсь:
Тёма парирует:
Ну ладно, чё. В общем, загадка так и не была разгадана. В результате разворот в книге выглядит так (при ширине экрана в 1024 пункта):
Если найдёте какое-то несоответствие оригиналу, говорите.
Ясное дело, что Эпл и Айтюнс в этом вопросе полностью бесполезны. Эплы, конечно, всё время говорят, что очень любят музыку. Но мы знаем таких людей вокруг: «О, я так люблю музыку! Могу слушать совершенно любую!» Таких, видимо, и берут на работу в Эпл. Так что Эпл — нет.
Я подписан на кучу лейблов и музыкантов в Битпорте-про и на Саундклауде, и периодически хожу туда на охоту. Саундклауд неплохо подсовывает связанные вещи. Важно также там слушать диджейские сеты любимых музыкантов, и потом вытаскивать из них всё понравившееся. Это бывает сложно, но иногда в комментариях кто-то говорит, где что за трек. Изредка помогает Шазам.
Но самым удивительно полезным инструментом за последние годы, как ни странно, стал Ютюб. Включаешь любой хороший трек, и смотришь в правом блочке, что ещё послушать. Там постоянно находится что-то очень хорошее — чаще чем в любой из систем, ориентированных именно на музыку.
Готова новая Эгея 2.8 бета (сборка v3333). Не обновляйтесь на живых сайтах, если только вы не суперпродвинутый технарь, обложившийся бекапами со всех сторон. Не забывайте, что бета — это очень страшно.
В конце заметки — ссылка на дистрибутив. А пока расскажу вам, что нового.
Комментарии через соцсети
Раньше оставить комментарий мог любой, просто указав что-то, напоминающее почту. Теперь ещё можно зайти через Твиттер или Фейсбук:
Если хотите, можно потребовать этого, поставив галочку в настройке:
Тогда просто оставив почту комментировать уже будет нельзя.
Для того, чтобы на ваш сайт можно было войти через соцсеть, нужно зарегистрировать его как «приложение» в этой соцсети, получить всякие ключи. Это страшный геморрой. В случае с Твиттером нужно месяца два ждать, пока они тебя проверят и примут в клуб. В случае в Фейсбуком хрен расставишь все сто галочек правильно в настройке.
Чтобы не подвергать пользователей Эгеи таким пыткам, я придумал промежуточный сервер для авторизации. Попробуйте оставить комментарий к этой заметке, зайдя через Фейсбук. Вместо того, чтобы сразу идти в Фейсбук, вы сначала заглянете на сайт Эгеи:
С одной стороны, такой вход в два прыжка может напрягать комментаторов. С другой, владельцам блогов на Эгее не нужно думать про ключи. Кроме того, если вы один раз представитесь сайту Эгеи через Фейсбук, то в следующий раз он уже будет узнавать вас сам.
Если вы как автор блога всё-таки хотите заморочиться с ключами, чтобы комментаторы представлялись вам напрямую, а не через сайт Эгеи, так тоже можно. Скопируйте из system/gips/ в user/gips/ джейсоновские файлы настройки соцсетей и пропишите там свои ключи.
С разработкой этой фичи помогли Иван Щолоков и Виктор Корейша, с дизайном помог Иван Звягин.
Улучшения в антиспаме
Некоторые пользователи Эгеи жалуются на спам в комментариях. Проблема с этим в том, что у меня спама в комментариях нет, поэтому мне очень трудно как-то это исследовать. Это странно, ведь по идее я мог бы стать одной из основных мишеней. Но вот не стал.
Понятно, что в новой версии вы сможете потребовать входа через соцсети, и это должно снять проблему спама.
Но даже если вы оставите анонимные комментари (когда просто указываешь почту), спама должно стать меньше. Виктор Корейша придумал и реализовал несколько фокусов, которые по идее позволят лучше определять роботов.
Я уже знаю, что иногда случаются ложные срабатывания — простите, мы поглядим, что подкрутить. Даже если Эгея примет нормальный комментарий за спам, она его не потеряет, а покажет комментатору, чтобы он по крайней мере смог скопировать то, что написал, и отправить автору другими средствами.
Призываю всех, кто страдал от спама, попробовать новую версию и сказать мне, стало ли легче жить.
Запланированные заметки (для платных пользователей)
Если вы платный пользователь, теперь сможете запланировать заметку. Для этого рядом с кнопкой «Опубликовать» появилась кнопка с календариком:
Если в неё нажать, можно указать дату и время, когда выйдёт заметка:
Как всегда с Эгеей, чтобы это работало не нужно ничего дополнительно настраивать, никакой там крон или ещё какую байду. Потому что в момент публикации на сервере ничего не должно происходить. Просто на все запросы, поступившие после часа X, Эгея будет отвечать так, как будто заметка уже есть. Разумеется, Эгея сама управляет всеми кешами так, чтобы они устарели в нужное время. Уведомление о новой заметке отправится в «Блоги», как только первый человек её увидит.
Новая тема оформления
Называется «Акут», чистенькая:
В большинстве тем оформления случились наноулучшения. В частности, аудиоплеер теперь нормально выглядит на всех темах с тёмным фоном. Это «Холм»:
Эмодзи
Теперь Эгея поддерживает эмодзи 🎉
Казалось бы, что тут поддерживать, это ж просто символ? Кодировку УТФ-8 Эгея поддерживает ещё с версии 2.0.
Но проблема в том, что в базе данных Майэскуэль, которую использует Эгея, первые реализации УТФ-8 были кривыми и не умели хранить нужные для эмодзей четырёхбайтные символы. А когда научились, для обратной совместимости это стало называться «кодировкой» utf8mb4. Я об этом понятия не имел, потому что в гробу видал эмодзи и использую их только, когда отвечаю на сообщения с часов.
Но Женя Степанищев и понятие имел, и от неподдержки эмодзей в Эгее страдал. Поэтому он научил Эгею использовать именно эту utf8mb4 на достаточно новых Майэскуэлях. При обновлении база данных должна автоматически сконвертироваться, и Эмодзи должны заработать. Если не заработают, видимо, у вас очень древняя версия Майэскуэля, где в принципе нет понятия utf8mb4.
Остальное
Сбылись мечты народные! Ссылка «7 комментариев» под заметкой теперь ведёт сразу туда, где начинаются комментарии, а не в начало страницы с заметкой.
Теперь под каждой заметкой показывает, сколько людей её видели:
Пришлось придумать хитрость, чтобы кешировать всё, кроме этих чисел.
На странице 404 теперь показываются ссылки на популярные заметки, чтобы хоть куда-то можно было пойти:
Популярные теперь считаются по количеству увидевших, а не хитов.
Если в заметке несколько песен, они больше не играют сами по себе по порядку — от этого было больше проблем, чем пользы. Если вы хотите, чтобы играли, придётся вручную завернуть их в div.jouele-playlist.
В окне входа можно сказать, что ты забыл пароль:
Эгея может не знать почтовый адрес автора, поэтому ссылку для сброса пароля она ещё и сохраняет в файл на сервере, о чём говорит (я исхожу из того, что у автора есть доступ к серверу в любом случае). Но если она знает почту, то она её спросит:
Если ввести ту же, что Эгея знает, то туда тоже отправится ссылка для сброса пароля.
Пофиксились некоторые баги с масштабированием картинок и на странице со списком тегов. Ещё исправлена группа багов, из-за которых нельзя было назвать заметку или тег «0». Если вы не любите ПХП, то у вас отличный повод для злорадства! Ещё добавились небольшие оптимизации там и тут (v3276, v3278, v3297).
Ещё исправлена ошибка, из-за которой в старых версиях в базе данных могли появиться лишние индексы. При обновлении до 2.8 эти лишние индексы будут удалены.
Ещё после выхода версии 2.7 выходили небольшие апдейты; версия 2.8 включает все фиксы из них:
Минимальная версия ПХП поднялась с 5.3 до 5.4. Если у вас 5.3, новая Эгея не будет работать вообще никак.
Если Майэскуэль не поддерживает базы данных типа InnoDB, Эгея больше не плачет, но и продвинутый поиск не работает (работает старый тупой поиск, который не умеет склонять слова и непонятно сортирует результаты).
Жуэль, Роза и Нисден обновились.
Эгея теперь генерирует sitemap.xml.
Как попробовать и что тестировать
Ещё раз скажу, что не рекомендую пока обновляться на живых сайтах. Как обновиться:
Отредактировать и сохранить любую заметку (на всякий случай, это гарантирует, что сделается актуальный бекап базы).
Забекапить всю папку на сервере, включая бекапы базы данных, которые лежат в /user/backups/.
Заменить файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть убрать старые, положить новые, а не дозалить в старые новые файлы).
Если вы делали свою тему оформления, посмотрите, что изменилось в комплектной, и аккуратно повторите эти изменения у себя.
Что тестировать:
сам процесс обновления, чтобы не вылезло никаких ошибок про базу данных;
Предновогодние новости о книге «Дизайн транспортных схем»!
Вышли главы «Схема как символ» и «Поиск решения». Таким образом, целиком вышла первая часть книги. Я снял видео с рассказом о ней:
Из рассылки издательства о новых главах:
metro-letter-1b.jpg
Схема — заметный объект графического дизайна в городе. Сильный графический дизайн работает на бренд транспорта, а через это — и на имидж города. Если схема в каком‑то городе слишком «лондонская», она продолжает работать на Лондон, а не на свой город. В главе «Схема как символ» Илья Бирман показывает важные эстетические детали разных схем и рассказывает о значении культурного поиска в процессе дизайна.
Человеку, который никогда не занимался транспортными схемами, может показаться, что хотя бы логическую часть может сделать компьютер: есть ограниченное число элементов, понятные связи между ними, набор требований к углам и цветам — значит оптимальную конфигурацию сможет найти алгоритм. На деле это не удаётся. В главе «Поиск решения» автор шаг за шагом показывает, как идёт работа над транспортной схемой и с какими трудностями сталкивается дизайнер.
Некоторые из новых разворотов. Схема как символ:
7994
Поиск решения:
103126
Если подписаться на книгу до её полного выхода, то четвёртый месяц будет в подарок. А книгу при этом уже можно начать читать прямо сейчас. Срок подписки пока не тикает.
Для тех, кто уже подписан на другие книги бюро, действует спеццена. Чтобы скидка подействовала, войдите в Бюросферу, используя адрес, с которым вы подписывались на любую из других книг.
Кстати, подписку можно подарить. Порадуйте на Новый год друзей, знакомых и коллег.
Мои родители не говорили со мной о сексе. У меня ничего не спрашивали, ничего не рассказывали, не подсовывали книжки. Этой темы как бы не существовало.
Но был один эпизод. Когда мне было 14 лет, меня отправляли на месяц на Мальту — типа учить английский. За день до вылета папа вдруг спросил, знаю ли я про презервативы. Я офигел от темы и почему-то ответил, что знаю, но «ничего плохого делать не собираюсь». На это папа сказал: «Почему же плохого? Прекрасного».
Так за один короткий разговор я узнал всё самое важное.
В эту субботу, 29 декабря, в 23:59 играю в главном баре «Гаража» избранный хаус за 2005—2010 годы. По этому поводу вспоминаю, что же там было хорошего.
Казантип-2009:
Самое клёвое — это штука с голосом на 1:50+.
Андрей снял видос, где рассказал, как всё сделано:
Оказывается, толпа, скандирующая «Казантип!» (1:20 в первом видео) — это сложно.
Помните, раньше погоду всегда показывали интервалом? Завтра +13...15 °C, местами дожди.
Однажды Яндекс.Погода вдруг стала писать нормально: +14 °C. Артём Горбунов комментировал: «Интервал сложнее считывается, но и без него все знают, что прогноз приблизительный». Я думал, что это Артём с ребятами придумали, когда занимались погодой, когда он ещё работал в Студии Лебедева. Я был уверен, что приёму избавления от интервала я научился у Артёма. Когда мы обсуждаем представление интервалов в таблицах на курсе, я часто привожу этот пример.
И тут вдруг смотрю я на Ютюбе рассказ Артёма «Десять принципов», и в принципе «Помни» Артём рассказывает, как однажды в 2006 году Тёма Лебедев переслал ему письмо от кого бы вы думали?
Выходит, в какой-то момент я заметил тупняк с погодой, написал Тёме — и забыл об этом; моё письмо дошло куда следует, представление погоды изменилось навсегда, а я только сейчас узнал, что это из-за меня.
Впрочем, я по-прежнему считаю, что приёму избавления от интервала научился у Артёма. Одно дело предложить улучшение в конкретном месте, а другое — сформулировать принцип, который можно применить в куче других ситуаций.
Я почти всегда кладу телефон экраном вниз, и некоторые находят это возмутительным. Мол, не бережёшь экран, поцарапаешь!
Возможно вы не задумывались над тем, почему камера вашего двухлетнего айфона снимает хуже, чем у нового. Причина не только в развитии технологий. Когда ваш айфон был новым, ваша камера тоже снимала лучше, но все эти два года вы берегли экран и царапали камеру.
А мне плевать на экран: царапин на нём всё равно не видно, потому что он светит сквозь них.
В субботу, 29 декабря, в 23:59 играю в главном баре «Гаража» избранный прогрессив- и текхаус за 2005—2010 годы. По этому поводу вспоминаю, что же там было хорошего.
Саймон и Шейкер классные:
David Ferrero: The Evolution Of House Beats (Simon & Shaker remix)
Пардон, это заметка типа «поток сознания». Макс, не читай.
В 12-м Ай-ОСе появилось приложение Шорткаты. На самом деле это Эплы купили давно существовавшее приложение Воркфлоу и переименовали его, но не суть. Типа ура, пришла автоматизация в Ай-ОС, можно научить телефон чему-то умному!
На компьютере у меня есть пара десятков скриптов, которые автоматизируют разные штуки: наводят порядок в тегах мп3-файла, изменяют размер окна точно до нужного, расставляют подписи в уголках кучки фотографий перед публикацией. Поэтому мне, конечно, было интересно понять, что можно автоматизировать на телефоне.
Но хрен придумаешь. Кажется, человечество уже лет тридцать пытается придумать «программирование для непрограммистов» в форме какого-то составления алгоритмов из кубиков. Но программирование — это придумывание самого алгоритма, а не написание кода. Писать код — самое простое; упрощать это нет никакого смысла. Но так это ещё и не упрощают, а усложняют! Код — это просто текст. Его можно читать, копировать, редактировать привычными инструментами. А когда ты видишь перед собой «воркфлоу» в виде «экшенов», составленных паровозиком, то понять, что там происходит, невозможно.
Я прочитал штук пять статей разных авторов про то, как они классно используют Шорткаты, и на каждый их пример мне оставалось только пожать плечами. Они все какие-то вымышленные, таких задач не бывает в моей жизни. Например, один автор, уезжая с работы, запускает шорткат, который смотрит, сколько ему ехать до дома с учётом пробок, и отправляет жене эсемеску «милая, я буду через %t». Надеюсь, его жена настроила автоответ «жду, любимый!», и вся эта коммуникация не доставляет никаких хлопот обоим.
В списке действий в «Шорткатах» нет многих таких, которые просто руками сделать проще простого, и есть такие, которые иначе не сделать вовсе. В приложении «Фото» можно поставить любую фотку в качестве фона домашнего экрана, но в шорткатах такого экшена нет. В приложении «Музыка» никак нельзя скопировать в буфер обмена название играющей песни, зато в шорткатах такой экшен есть. Какая в этом всём логика — я не понимаю.
Пример с музыкой оказался мне полезен — я люблю, бывало, скинуть кому-нибудь название трека, который слушаю. Но это не имеет никакого отношения к автоматизации, это просто костыль для добавления фичи, которая и так должна была быть в приложении. И я смог сделать этот шорткат только потому, что Эплы предусмотрели для этого экшен. То есть Эплы прям подумали: «наверное людям может быть полезно скопировать название песни в буфер», но вместо того, чтобы добавить всплывашку сюда:
Они добавили экшен в «Шорткаты»! Как, почему? В итоге этой фичей смогут воспользоваться в лучшем случае один процент из тех, кому она понадобится. Точнее, даже из того одного гипотетического процента, кто это найдёт, большинство не смогут составить сам шорткат. Дело в том, что экшен Get Current Song нужно ещё пропустить через экшен с феноменально бессмысленным названием Text, и только потом копировать в буфер. В результате у меня есть вот такой шорткат:
То есть как программист ты можешь догадаться, что, видимо, Get Current Song возвращает объект, у которого несколько полей, и который не умеет автоматически преобразовываться в тип string, а Copy To Clipboard ожидает на входе именно этот тип, и поэтому нужно строку составить вручную из полей объекта. Но как до этого должен догадаться обычный человек я не понимаю. Зато я отлично понимаю, как эта фигня озадачит даже программиста.
Вот как то же самое выглядело бы в коде (язык вымышленный):
Let s = Music: GetCurrentSong
CopyToClipboard s.Artist ": " s.Title
Как этот текст может быть менее понятен, чем та хрень, которая у меня на скриншоте? Экшен Text даже не глаголом называется! Что такое Local Only я не представляю. В программировании есть хотя бы документация по функциям, а тут нет нихрена. Это похоже на паззл.
В общем, однажды мне пришло в голову, как использовать шорткаты. Так устроена моя банковская жизнь, что часть месяца мне выгоднее рассчитываться одной карточкой, а вторую часть — другой. А чтобы переключить дефолтную карточку в Эпл-пее, нужно идти в какие-то адские дебри настройки. И я подумал: «О! Сделаю себе шорткат, который будет по команде включать нужную карточку. Пусть сам идёт в нужные дебри настройки и жмёт нужные кнопки!» Это-то должно быть возможно?
Хрен. Оказалось, что нельзя сделать шорткат, который меняет что-то в настройке.
И вот тогда я подумал, что надо будет написать этот пост и объявить «Шорткаты» полностью бесполезным говном.
Но как раз в это время я засобирался к родителям на дачу; — и тут в истории наступает неожиданный поворот (оцените также невероятную пунктуацию в этом предложении).
Зимой дачу постоянно топить дорого, а учитывая, что там не каждые выходные кто-то появляется, это просто глупо. Поэтому в отсутствие посетителей там лишь поддерживается плюсовая температура, чтобы трубы не полопались. Чтобы не приезжать в ледяной дом и не ждать полдня, пока станет тепло, несколько лет назад мы установили штуку, которая позволяет удалённо включать и выключать батареи. И это не хипстерская какая-нибудь хрень с красивым приложением для айфона, а приборчик с сим-картой, которому надо отсылать эсемески с командами.
В общем, процедура поездки на дачу зимой такая, что за несколько часов до выезда нужно отправить серию эсемесок, чтобы включить несколько батарей. Также при отъезде нужно не забыть отправить серию эсемесок, возвращающих всё в исходное положение. И вот делать это — бесит, даже несмотря на то, что мне, может, раз пять за зиму это надо. Так что я сделал шорткат:
И аналогичный для отъезда. Даже в Сири добавил. Теперь говорю: «Сири, нагрей дачу!» и она греет. Это круто. Что такое Show When Run я, разумеется, не знаю.
Зацените ещё, как совершенно бесчеловечные смс-команды завёрнуты в красивые прямоугольнички с тенями! Вот оно, программирование будущего по версии Эпла.
Конечно, из-за того, что вместо нормального кода я должен составлять это из тупых блоков, эта штука совершенно неповоротлива. Скажем, я рассказал про эту штуку папе — он порадовался, попросил меня скинуть экшен ему. Ну я разобрался, как это сделать (конечно, просто скопировать код и вставить в чат в телеграме я не могу). И что толку? У папы он не заработал, потому что у него в Контактах дачная симка называется не так, как у меня, а отредактировать он ничего не может. Почему эти экшены добавились как нередактируемые, я понятия не имею.
А вот как это могло бы выглядеть, если бы это был код:
Messages: Send "Temp.R1=+20 XXXXX" To "Dacha Uvildy Ksytal"
Messages: Send "Temp.R2=+20 XXXXX" To "Dacha Uvildy Ksytal"
Messages: Send "Temp.R3=+20 XXXXX" To "Dacha Uvildy Ksytal"
Но нет, ведь для того, чтобы сделать программирование «доступным простым людям» нужно усложнить его настолько, что даже программист не разберётся.