Аудио по четвергам: микс Вегима на Формат.ФМ
Хороший:
Вышла новая сборка Эгеи, v3107.
Из заметного с момента релиза 2.6 — исправлен баг, из-за которого картинки могли не загружаться у тех, у кого в урлах используется ?go=. Пока все те, кто поймал этот баг, в итоге перешли на чистые урлы, чем и исправили баг, и получили чистые урлы. Так что от бага они только выиграли.
О том, как сделать чистые урлы, написано в документации («Движок использует в урлах конструкцию ?go=, а я хочу чистые урлы без неё»). Эгея автоматически использует чистые урлы, когда уверена, что они у вас заработают, но она не всегда может быть уверена, поэтому иногда нужны такие пляски с бубном.
Но баг всё же стоило исправить, потому что на чистые урлы могут перейти не все.
В 2006 году я выпустил трек Карго (прогрессив-хаус). А в прошлом году я в нём полностью переделал звук, поэтому у меня теперь есть новая версия:
Для сравнения:
Обложка тоже претерпела ремастеринг.
В заметке о ВС Коде я написал:
Однажды я видел, как разработчик переименовывал файл в «ПХПШторме». На экране несколько секунд заполнялся прогрессбар. Нет, спасибо.
Мне написал Александр Яскевич:
То, что ты видел — рефакторинг. Если на этот файл в проекте были ссылки, ПХПШторм их также менял в то время, пока ты наблюдал прогрессбар. Ну или просто искал. Даже если ничего не нашел, время на поиск тратится. В таких мелочах ИДЕ от редактора и отличается.
Я в курсе, что это рефакторинг. Тут есть две проблемы.
Во-первых, непонятно, зачем ему искать? Он же ИДЕ. Даже «просто редактор» умеет индексировать проекты в фоновом режиме. Он безо всякого поиска знает, где упоминается мой файл. И даже если действительно нужно изменить упоминания в нескольких файлах, на современном компьютере это не займёт заметного времени. Поэтому рефакторинг прогрессбару не оправдание.
Во-вторых, непонятно, зачем мне показывать модальное окно с ним? Даже если работа действительно продолжительная, почему я не могу продолжать работать, пока он там переименовывает? По хорошему нужно было бы показать прогрессбар где-нибудь в строке состояния, и если какие-то файлы в итоге изменятся, я должен увидеть соответствующие отметки около них в списке файлов сбоку.
21 апреля сыграл техно в Студии Лебедева. Так:
Есть две грубых помарки. Грязь в районе 31:20 и забытый открытым канал в 1:20:11.
Плейлист:
0:00:00 | Artefakt | Tidal |
0:01:52 | Conrad Van Orton & VSK | Angular Momentum |
0:05:35 | Shlømo | Obsession |
0:09:01 | Antonio De Angelis | Polar |
0:11:58 | Roman Flügel | Pattern 13 |
0:17:45 | Planetary Assault Systems | Whistle Viper (Live Edit) |
0:20:55 | Sleeparchive | Window 092 (Oscar Mulero Remix) |
0:24:14 | Tensal | Achievement 3 |
0:26:50 | Axkan | Fear (Israel Toledo Remix) |
0:29:01 | Sleeparchive | 1 |
0:30:26 | P.E.A.R.L. | Desolation (I/Y Reduction) |
0:33:12 | Ilya Birman | Glass |
0:35:21 | Israel Toledo | Standing |
0:38:15 | Developer | Hooked In |
0:41:31 | Planetary Assault Systems | Bell Blocker |
0:45:06 | Shifted | Clairvoyance Part II |
0:49:00 | Truss | Beacon (Original Mix) |
0:50:59 | Rumah & Progression | SC3 |
0:54:18 | Dense & Pika | Lack Of Light |
0:58:22 | Robert Hood | Shaker |
1:02:38 | NoizyKnobs | Really Deep |
1:07:13 | Woo York | Siberian Night |
1:10:20 | Sector Y | Hit Control |
1:14:34 | Exium | Monopoles |
1:18:04 | Ilya Birman | I Will Always |
1:19:10 | Orion | Forerunner (Original Mix) |
1:23:43 | Conrad Van Orton & VSK | DP |
1:26:56 | Sleeparchive | 7 |
1:27:52 | Birth Of Frequency | Gate (Oscar Mulero Remix) |
1:31:08 | Jen Series | Shadow Dancer |
1:33:08 | Tørmented | Sins Of Prophets (Original mix) |
1:35:36 | Ilya Birman | Octomore |
1:41:48 | Alderaan | Disturbed |
1:44:13 | Planetary Assault Systems | Bawoo Bawoo |
1:49:04 | Birth Of Frequency | Design |
1:53:52 | Sleeparchive | Roses |
1:55:19 | Oscar Mulero | Inclination |
Кстати, все мои миксы называются по названию какого-нибудь из треков в них.
Есть страница микса на Промодиджее.
Предыдущий похожий микс: Уловка.
16-го июня прочитаю на Питер-ЦСС доклад о декларативных АПИ на английском. Организаторы конференции ещё напоминают, что с завтрашнего дня билет стоит 4500 ₽ (сегодня ещё 4000 ₽).
Предположим, вы сделали какой-нибудь веб-компонент. Например умную выпадайку с автодополнением под названием superComplete. Тогда вы, скорее всего, предложите инициализировать его как-нибудь так:
var superCompleteInstance = new SuperComplete ('#el')
Или, если это плагин для Джейквери, то так:
$ ('#el').superComplete ()
А надо не так. Пусть оно инициализируется само, увидев знакомый класс:
<input id="address" class="supercomplete" />
Я называю это декларативными АПИ: вместо того, чтобы давать команды, ты описываешь свойства компонента параметрами. Научился я такому сто лет назад у Артёма Поликарпова с его Фоторамой, и использую в своих веб-продуктах.
Социокнопки «Лайкли» вставляют на страницу так:
<div class="likely">
<div class="twitter">Твитнуть</div>
<div class="facebook">Поделиться</div>
</div>
Чтобы поставить плеер «Жуэль», надо дать класс ссылке на аудиофайл:
<a href="news.mp3" class="jouele">Ilya Birman: News</a>
В «Эмёрдже» чтобы элемент появился только после полной загрузки всего содержимого, а до того отображалась крутилка, нужно завернуть его в такой див:
<div class="emerge" data-spin="true">...</div>
Чем больше всего умеет компонент, тем сложнее придумать такой синтаксис. Особенно сложно становится, когда у вас много параметров, и они определяют поведение во времени и при условиях. Сначала кажется, что в этих случаях без Джаваскрипта никак не обойтись. Но если немного подумать, то часто выясняется, что вполне обойтись.
Расскажу, почему это клёво и как придумывать синтаксис таких вот декларативных АПИ.
Как сказал Стив Джобс, «Design is how it works». Это доклад про дизайн.
Другие объявленные доклады:
Типографская раскладка 3.5 для Мака вышла.
В новой версии заработало сочетание ⎇⇧⌘V (Paste and Match Style) в русской раскладке.
Заодно поменялась иконка:
Ранее я писал подробнее о бета-версии.
Основной дизайн:
Снизу — место для нанотаблички с диапазоном номеров:
Табличка с какой-то красной кляксой — готовый логотип:
Если улица названа в чью-то честь, про него крепят минитабличку сверху:
Самый кайф — лигатуры (это две разных):
Хорошее название:
Альтернативный дизайн:
Совсем редкая крутота:
Бонус. Номерные таблички на доме:
Двуслойная, похожая на таллинскую:
Номер-светильник как в Хельсинках:
См. также уличные таблички:
Берлин:
Фотографии 12, 13 и 14 добавлены 9 ноября 2021 года, когда заметка «Берлин в марте 2016» переносилась из раздела «Мир» в блог и сокращалась
Новый Жуэль 2.3 теперь доступен в НПМ:
npm install ilyabirman-jouele
В отличие от сборки с моего сайта, версия в НПМе не содержит в себе Хоулер. Вместо этого он указан в качестве зависимости. Если вы делаете всё правильно, он подключится автоматически.
Готова Эгея 2.6 (сборка v3101) с автосохранением, новым поиском и платными фичами. Эта заметка частично повторяет анонс беты и заметку о платных фичах, чтобы всё было в одном месте.
Заметки теперь непрерывно сохраняются в браузере, пока их пишешь, поэтому изменения не потеряются, если пропадёт интернет или отрубится электричество. В анонсе беты я в деталях писал, как это работает.
Красная точка слева — признак того, что есть несохранённые изменения. Если закрыть редактор, а потом открыть заново, он откроется ровно в таком же состоянии: с тем же текстом, с той же красной точкой, означающей, что данные не сохранены, и с курсором, мигающим в том же месте. Чтобы вернуться к сохранённой версии, нажмите ⌘ Z.
Красная точка помогает найти заметки, в которых есть несохранённые изменения:
Локальное автосохранение работает только для заметок и черновиков. Его нет у тегов и комментариев.
Автосохранение запрограммировал Игорь Адаменко — он же ранее помогал мне с новой версией моего сайта. Игорь крутой.
Поиск научился склонять слова, а выдача стала намного удобнее: вместо простыни заметок она показывает небольшие «сниппеты», содержащие найденный фрагмент текста и все картинки из заметки. Узнать нужную заметку по картинкам — самый кайф:
Избранные заметки имеют больше веса при поиске.
Поиск работает на «Розе» — встраиваемом поисковом движке Романа Парпалака, об использовании которого я недавно писал.
Если у вас много заметок, Эгее понадобится несколько минут после обновления, чтобы сначала всё проиндексировать. Результаты поиска в это время будут показываться по старой технологии. Вам ничего не нужно делать, Эгея управляет индексацией сама.
Эгея с прошлой версии отдаёт картинки в качестве «обложек» при отправке ссылок в соцсети. Но теперь она умеет отдавать так и стоп-кадры видеороликов с Ютюба и Вимео. Ну и заодно у заметок с видеороликами появился шаринг в Пинтерес.
Кстати, эти стоп-кадры попадают и в выдачу поиска наравне с другими картинками, что тоже упрощает нахождение глазами нужной заметки.
При загрузке файлов колечко теперь не просто крутится, а заполняется, показывая прогресс. Удобно, если вы загружаете кучу больших фоток или 15-мегабайтную песню.
Раньше Эгея считала, что картинка используется в заметке, только если её упоминание было в тексте заметки. А если удалить упоминание из текста, то картинка «терялась» и из превьюшек снизу. Теперь это независимые вещи: заметка помнит загруженные в неё картинки, даже если они не используются в тексте.
Это даёт несколько приятностей:
Ещё теперь можно загружать картинки в СВГ.
Всё, что я написал про картинки, верно и для аудиофайлов. Но аудиофайл или СВГ не могут быть обложками для соцсетей.
В анонсе беты ещё рассказывал про залипание лейблов больших полей и про то, что кнопка удаления переехала из подвала формы редактирования заметки в правый верхний угол.
Теперь стандартное форматирование Эгеи поддерживается внутри тегов div, table и blockquote. Если вы хотите поставить текст на плашку или разбить на колонки, можете это сделать, а внутри продолжать использовать привычный синтаксис.
Фичи из этого раздела доступны пользователям с коммерческой лицензией. Такая лицензия нужна, если вы ведёте коммерческий блог или просто хотите такие фичи.
В настройке появились поля Яндекс-метрики и Гугль-аналитики:
В бесплатной версии эти штуки можно — и всегда можно было — прикрутить по-старинке, через допблоки. В платной просто чуть удобнее.
При просмотре черновиков снизу появилась «Секретная ссылка»:
Это ссылка на черновик, которую можно дать кому-то, чтобы он увидел черновик. Я этим пользуюсь, когда публикую рекламу: присылаю рекламодателю, чтобы он утвердил заметку перед публикацией. Если черновик отредактировать, ссылка «сгорает», нужно взять новую.
С бесплатной версией можно — и всегда можно было — просто прислать скриншот.
Теперь вы можете легко прикрутить свою кнопку «Подписаться» (см. у меня под заметкой). Это реализовано через допблок subscribe-sheet. Вы пишете ХТМЛ того, что будет внутри окна подписки, а кнопка под заметками появляется сама. При этом там есть готовые куски, чтобы сделать логотипы фейсбуков и прочего.
Так выглядит комплектное, не настроенное окно подписки:
Заходите в шаблон, убираете лишнее, вставляете свои ссылки — и готово. Если нужны другие соцсети, иконку придётся нарисовать свою. Бардак с русским и английским тут связан с тем, что выбран русский язык интерфейса, но локализованы только заголовок окна и слово «РСС» . Я решил, что локализовывать названия соцсетей смысла нет, потому что вы всё равно сможете написать тут что хотите.
В бесплатной версии можно — и всегда можно было — сверстать это вручную.
И ещё одна фича — глобальные стили. Это немного облегчает прикручивание Эгеи в качестве одного из разделов большого сайта, где уже есть свои стили. Например, на моём сайте с ранних бет 2.6 Эгея использует ЦСС от основного сайта. Для этого надо в файле theme-info.php от вашей темы оформления прописать ключ global_styles. У меня этот файл выглядит так:
<?php return array (
'display_name' => 'Минвайл',
'max_image_width' => '1200',
'global_styles' => '../css/main.css',
); ?>
В бесплатной версии можно — и всегда можно было — в своей теме оформления копировать стили от основного сайта. Я это раньше делал «Галпом», чтобы два раза не писать, а теперь вот не надо.
Если у вас уже есть платная лицензия, и вы хотите сборку беты 2.6 с этими фичами, напишите мне письмо.
Теперь снова о том, что доступно всем.
Когда вы обновляли Эгею, она меняла структуру базы данных для совместимости с новой версией — так было всегда.
Но раньше движок конвертировал базу только при обновлении, а вообще исходил из того, что база в актуальном формате. Поэтому если вы просто подключали его к существующей базе, а она была в старом формате, возникали ошибки.
Теперь движок наоборот исходит из того, что данные в базе могут быть в любом формате, начиная с формата Эгеи 2.0. Если вы устанавливаете движок начисто, а не обновляетесь, но при этом говорите, что данные в базе уже есть, или просто подключаетесь к другой базе в настройке, движок сконвертирует базу в актуальный формат.
Исправлена куча багов. Но этим никого не удивишь.
При редактировании описания тега теперь тоже можно загружать файлы. Короче, описание тега теперь может выглядеть как полноценная заметка, у него тоже работают всякие обложки. Редактор тега открывается по Alt+E на странице тега, как у заметки. А сохранение изменений в описании тега заработало в сто раз быстрее.
Для залогиненного автора быстрее открываются заметки с кучей комментариев.
Изменилась логика включения комментариев. Раньше был глобальный флаг «разрешить комментарии», но можно было выключить индивидуально у отдельных заметок. Теперь глобального флага нет, комментарии настраиваются у заметок по отдельности. А глобально настраивается, врубать ли комментарии заметкам во время публикации по умолчанию или нет.
Основной кегль текста в комплектной теме увеличен с 15 до 16 пунктов. Знаки валют прикрепляются к суммам неразрывным пробелом. Форма логина заадаптивилась (в 2.5 недоглядели).
На странице удаления заметки появилась кнопка «Вернуть в черновики». На страницах архива, где показывают заметки списком ссылок, избранные заметки помечаются звёздочками. Добавилась поддержка шаринга в Линкед-ин (потому что обновился Лайкли).
Движок лучше распознаёт, что работает по ХТТПС, и отдаёт по этому же протоколу всякие скрипты и картинки.
Добавилась поддержка Апача 2.4, у которого с какого-то бодуна изменился на полностью нечитаемый синтаксис некоторых опций конфигурации. Движок должен работать под ПХП 7.0 и 7.1 — я теперь тестирую локально под семёркой. А на моём сайте, наоборот, крутится ПХП 5.3 — это теперь низшая из поддерживаемых версий.
Все скрипты теперь минифицируются.
Файл, в котором хранятся параметры настройки теперь называется не settings.psa, а settings.json. Если вдруг захочется вручную что-то отредактировать, теперь это удобнее.
Если вы делали свою тему оформления, посмотрите, что изменилось в комплектной, и аккуратно повторите эти изменения у себя.
Свежий дистрибутив — на сайте движка.