Позднее Ctrl + ↑

Эгея v3118

Вышла новая сборка Эгеи, v3118.

Недавно я задавал вопрос про фоновую работу ПХП на ХТТПС. По вашим советам перешёл на curl и всё стало прекрасно работать. Если у вас ХТТПС, вам стоит обновиться, иначе у вас может плохо работать поиск и не работать бекап и подтягивание обложек видосов.

Ещё в этом билде сильно оптимизирована обработка строк. Если вы страдали от медленного сохранения больших заметок, вам стоит обновиться.

Обновляться как обычно — заменить папки /system/, /themes/plain/ и файл .htaccess в корне.

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

Вот:

  1. Турбулентность ясного неба. Лётчик объясняет, почему турбулентность — это не страшно: «Самому самолёту по-барабану, куда его там кидает и швыряет, потому что он находится в самом потоке и намертво с ним связан. Самолёт становится частью этого потока».
  2. Про дизайнеров и программистов. Программист Игорь Адаменко рассказывает о взаимодействии с дизайнерами. С Игорем мы сделали новое автосохранение в Эгее (он его там упоминает), а до этого он сверстал мне новое главное меню на сайте.
  3. 43 Unspeakable Sexual Fantasies People Actually Have. Кайф, что всё такое разное, но вроде ничего особенно безумного. Грустно, что люди говорят «It’s so weird, so I never bring it up to anyone» и «I’ve never shared this with anyone». Один раз живём, ну.
  4. Люди в интернете. Сергей Минкин.

Хотите стать спонсором рубрики? Пишите: ilyabirman@ilyabirman.ru

Видео по вторникам: песочные часы Марка Ньюсона

Какие офигенные! Очень надо:

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

Эмёрдж 1.3.1

Вышел Эмёрдж 1.3.1, где исправлены пара багов. Один касался анимации спиннера, другой — ошибок в консоли из-за ЦСС-изображений. Если вас не беспокоят эти проблемы, обновляться не обязательно.

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

Вопрос про фоновую работу ПХП

Эгея написана на ПХП как обычное веб-приложение, отвечающее на запросы браузера к серверу. Браузер просит страницу — Эгея её генерирует и отдаёт.

Часть работы, которую делает Эгея — медленная по своей природе, например создание бекапа или индексация большого блога для поиска. Но Эгея отдаёт страницы быстро.

Это потому что в Эгее реализован механизм фоновой работы через запрос к себе. Когда нужно сделать что-то долгое, Эгея устанавливает ХТТП-соединение сама с собой, как бы делая вид, что она браузер, отправляет запрос по специальному урлу, который означает «сделай бекап» или «поиндексируй поиск», и тут же обрывает соединение. В результате выполнение скрипта заканчивается быстро, а вся долгая работа делается незаметно, как раз в ответ на этот запрос к себе. О таком методе я узнал лет двенадцать назад от Романа Иванова, и с тех пор пользуюсь.

Асинхронное выполнение на ПХП

К сожалению, с этим методом возникла проблема, когда я стал поддерживать ХТТПС. Если просто отправлять запрос и сразу закрывать соединение, как я всегда делал, не происходит вообще ничего — с точки зрения сервера всё выглядит так, как будто к нему и не обращались. Если же попробовать прочитать ответ, то приходит 400 Bad Request, потому что я как бы пытаюсь говорить с ХТТПС-сервером на простом ХТТП. К сожалению, мне почему-то так и не удалось отправить самому себе запрос по ХТТПС с помощью функции fsockopen () и её родственников, хотя я вроде бы исчитал документацию со всех сторон.

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

Эти схемы мне не нравятся непрозрачностью: часть скрипта будет выполняться в каком-то мире, который не виден никому. В варианте с запросом к себе мне ничто не мешает зайти браузером по моему служебному урлу и посмотреть, что происходит. А тут придётся что-то специальное изобретать для отладки. Кроме того, запрос к себе, разумеется, запускает новую копию ПХП, в которой заново начинается отсчёт времени. Выполняя такой запрос, я могу теоретически захотеть сделать что-то ещё так же, и инициировать запрос третьго уровня. И все эти запросы — одинаковой природы, просто заход по урлу. Мне нравится эта однородность.

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

Ну и пока умники в твиттере не начали писать «расскажите кто-нибудь Бирману про крон», объясню, что моя задача — сделать максимально автономное решение, не требующее от пользователя никакой специальной настройки сервера. Закачал на сервер папку — всё работает. Если вы матёрый программист в свитере, вам такое не понять.

Короче, в идеале я бы хотел заставить работать свою исходную конфигурацию. Для этого мне нужно научиться делать запрос к себе по ХТТПС. Причём мне нужно просто «потрогать» нужный урл и отвалиться — мне не нужно по нему передавать никаких данных, не нужно читать ответ. Как это сделать?

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

Найки, Адоби и Тафти

Название компании Nike читается «Найки». По-русски Найк называет себя Найком, а не «Найки», потому что так удобнее: Найк понятно как склонять. Молодцы! Не то, что Микросо́фт, который зачем-то насилует русский язык и называет себя «Ма́йкрософтом».

Название компании Adobe читается «Эдоуби». Не знаю ничего о том, как они себя называют по-русски, но от людей регулярно слышу что-то вроде «Эдоуб». Меня не смущают варианты «Адоб», «Адобе», «Адоби», но «Эдоуб» — это как «Эйпл», так говорить нельзя.

Фамилия профессора Tufte читается «Тафти». Тут, слава богу, все говорят правильно — видимо, потому, что слышат это слово раньше, чем видят.

Но заметка не об этом. Дело в том, что я откуда-то взял, что название компании Bose (колонки там всякие) тоже из этой серии и читается «Боузи». И даже сказал об этом нескольким человекам. Но это не соответствует действительности: я посмотрел несколько источников, и везде сказано, что это «Боуз». Так что прошу прощения у всех, кого ввёл в заблуждение.

Добавлено в сентябре 2017-го. А, ещё Moscone.

Классический Мак в браузере

Хотите потыкать в настоящий чёрно-белый Мак в браузере?

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

Сначала сам эмулятор грузится несколько минут. Потом грузится Мак:

Классический Мак в браузере

Добро пожаловать:

Классический Мак в браузере

Рабочий стол!

Классический Мак в браузере

Разрешение экрана — 512 × 342. Скриншоты почему-то мыльные получаются — ну фиг знает.

Можно зайти в яблоко и открыть Эбаут:

Классический Мак в браузере

Раньше не было стандарта, что первый пункт меню после яблока — это название текущей активной программы, поэтому навигация немного взрывает мозг.

Моя любимая деталь — это то, что когда кликаешь в кнопку закрытия окна, вокруг места клика рисуются такие штришочки, как в комиксах вокруг чего-то, что движется:

Классический Мак в браузере

Я это слизал для иллюстрации на 180-м развороте интерфейсной книги:

Пока кликал, вообще какой-то инсталлятор запустил:

Классический Мак в браузере

Ну, дальше сами.

Ранее Ctrl + ↓