creator cover Александр Козлов
Александр Козлов

Александр Козлов

делаю Авторский Комикс

130subscribers

118posts

goals2
26 of 40 paid subscribers
Проведем комикс-баттл с судьями из числа платных подписчиков!
1 of 2

About

Привет, меня зовут Александр Козлов, я создал Авторский Комикс и продолжаю развивать его уже более четырнадцати лет.
Авторский Комикс – самый удобный сервис для публикации веб-комиксов на русском языке. Это подтверждает текущая статистика:
187,388 уникальных пользователей посещают сервис ежемесячно;
1,397 художников и 319 переводчиков публикуют свои работы;
536 комиксов обновляются каждый месяц;
5,588 новых страниц выходит каждый месяц;
4,215 комиксов опубликовано всего.
Оформите платную подписку на мой Boosty, если хотите помочь Авторскому Комиксу стать еще лучше. Об улучшениях, которые планирует наша команда, можно почитать в публичном списке задач на GitHub.

Страница АК на LinkedIn

Забавный факт: в 2020 году я завел страницу АК на LinkedIn чтобы работа над порталом в разделе "Опыт" выглядела красивее. С тех пор я так и не придумал, зачем эта страница нужна и что там писать, но за 5 лет на нее подписались несколько человек:

LinkedIn

Недавно всерьез занялся своей страницей на Linkedin, и публикую там заметки на профессиональные темы, в том числе есть немного про Авторский Комикс. Например, пост о том, почему я убрал АК из своего резюме.
Кто пользуется этой соцсетью, подписывайтесь. Весь контент там будет на английском.
Игра по мотивам комикса Вереск
Недавно авторы комикса Вереск выпустили игру по мотивам своего комикса, и там есть персонаж Алекс, срисованный с меня.
Level required:
Базовый уровень
Июньская встреча со спонсорами
Level required:
Базовый уровень

Правильные даты публикации страниц DGT

Ходили разные теории, почему под выпусками комикса Приключения Дэвида Грея стояла дата 29 ноября 1999 года. Кто-то думал, что комикс действительно такой старый, кто-то гуглил дату и натыкался на постановление Правительства Российской Федерации от 29 ноября 1999 г. № 1309 «О порядке создания убежищ и иных объектов гражданской обороны». Fallout - Убежища, ну вы поняли.
В действительности, никто не знает, почему дата была именно такая. Комикс DGT действительно старый - он был одним из первых комиксов еще в первой версии портала, запущенной в 2008 году, когда у Авторского Комикса, смешно подумать, не было никакой базы данных. Скорее всего, когда на очередном витке технического развития база появилась, и возникла необходимость заполнить обязательное поле "дата публикации выпуска" значение "28-11-1999 00:00:00" было забито вручную от балды (и может быть даже не мной). И так как время хранится в нулевой таймзоне (UTC+0) при отображении на сайте "28-11-1999 00:00:00" превращалось в 29 ноября.
Но каким бы старым не был комикс, про игры серии Fallout в 1999 году я не знал, хотя первые 2 части к тому времени уже вышли. Архив Живого Журнала помог восстановить настоящие даты публикации:
- Первый выпуск благодаря сообществу fallout_ru
- Все остальные выпуски - сообществу vault_71
Приключения Дэвида Грея выходили в 2007 году с 22 февраля (как поздравительная открытка ко дню рождения друга) по 28 ноября, ровно за 110 дней до официального дня рождения портала Авторский Комикс в 2008 году. Кстати, я поправил даты публикации страниц в базе, а по ссылкам выше можно понастольгировать и покринжевать от комментариев в ЖЖ эпохи нулевых.
Блин, а я то думал, что АК начался в 1999 году. 

Переход с reset.css на normalize.css

Сегодня выкатил еще одно техническое обновление на портал. Техническое - это значит незаметное обычного посетителя, но улучшающее состояние кодовой базы и производительности.
Reset.css и normalize.css - это два инструмента, которые решают проблему совместимости CSS-стилей по умолчанию в разных браузерах. Более старый подход - это reset.css, который полностью затирает все стили, а более современный - это normalize.css, который не затирает все стили по умолчанию, а просто приводит их к единому стилю.
По историческим причинам, на АК долгое время использовался reset.css, но с выделением части кодовой базы в публичный репозиторий, а также появления отдельных модулей: например, раз и два, переход на normalize.css стал все более необходим. И конечно, этот шаг поможет в интеграции на АК нового редактора.
Майская встреча со спонсорами
Level required:
Базовый уровень

Асинхронная обработка форм

Занимаюсь давно обещанным обновлением текстового редактора на портале. С наскока сделать не получилось - постоянно натыкаюсь на технический долг, который так или иначе мешает подключению к сайту новых библиотек. Интересно, что большинство современных WYSIWYG-редакторов Markdown делаются под популярные фреймворки: React, Angular, Vue. Найти что-то стабильной под сайт, написанный на ванильном JS, не так то просто.
Пока закрываю техдолги, добавил на сайт функцию для асинхронной обработки форм. А ванильные HTML-формы на Авторском Комиксе используются много где. В чем суть проблемы: обработчик отправки формы (событие submit) синхронный, как и все другие обработчики в JS. Поэтому, если в момент отправки формы нам нужно в асинхронном режиме дозапросить какие-то данные, просто через await мы это сделать не можем, так как обработчик завершит свою работу раньше, чем дождется выполнения асинхронной функции.
Решение проблемы можно посмотреть в файле AsyncForm.js: предполагается, что все поля формы, которые требуют асинхронных действий перед отправкой формы имеют атрибут 'data-async-processing' и в поле с именем 'processAsync' содержат асинхронные функции, выполняющие необходимые операции. Если у формы есть такие поля, то в момент ее отправки, мы прервем обработку событий, выполним 'processAsync' где это необходимо, и только потом заново сэмулируем отправку формы. При этом эмуляция отправки формы происходит через HTMLFormElement.prototype.requestSubmit.call(form, evt.submitter); что гарантирует, что при наличии нескольких кнопок отправки формы будет сохранена именно та, которую нажал пользователь.
Если у вас есть более элегантное решение для асинхронной обработки событий в JS, в частности событий отправки формы, напишите об этом в комментариях.
Хм, любопытно. А что за асинхронные операции выполняют эти поля? Нельзя ли их как-то, хм-м-м, "засинхронить"? Например, с помощью тех же async/await можно сделать так, что вроде бы асинхронная функция будет выполняться синхронно, и в синхронном контексте.
Александр Козлов, да, проверил - и действительно, вызов функции async в обычной синхронной её не притормаживает.Ну тогда у меня нет идей лучше, чем описанная в посте. Да и вообще, по мне так там вполне годная идея описана, ты можешь добавлять асинхронные процессы для каждого поля отдельно, а хэндлить это будет одно централизованное место, и пространство для факапа вроде бы невелико. Может и не дохрена элегантно, но для костыля в целях совместимости - достаточно хорошее решение.
Открытка к 8 марта
Процесс создания открытки к 8 марта посетительницам АК от Павла Гребнева.  
Level required:
Базовый уровень

Вторая статья для начинающих комиксистов

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

Базовый уровень

$ 2.57 per month
Для тех, кто хочет помочь в разработке и поддержке Авторского Комикса.

Продвинутый уровень

$ 6.5 per month
Для тех, кто хочет помочь в разработке и поддержке Авторского Комикса еще сильнее.

Золотой уровень

$ 12.9 per month
Для тех, кто хочет помочь в разработке и поддержке Авторского Комикса очень сильно.

Платиновый уровень

$ 39 per month
Для тех, кто хочет помочь в разработке и поддержке Авторского Комикса сверхсильно!
Go up