Сегодня рубрика "уголок скучающего нерда" в гостях у рубрики "кибернекрофилия": случайно узнал об удивительном фестивале Vector Hack, который в этом году скоро пройдёт в Хорватии и Словении. Там какое-то ламповое безумие типа рисования демок на осциллографах и проведения светомузыкальных шоу на самодельных лазерных установках, картинки завораживают.
А раз уж пошла такая хтонь, помяну заодно:
- пост про реверс-инжиниринг древнего чипа 76477, на котором работал звук в первых компьютерных игровых автоматах (начиная со Space Invaders),
- свежую статью про флопотроны -- проигрывание музыки с помощью звуков, создаваемых при передвижении головок старых дисководов,
- студенческий проект экзоскелета в виде шагающего T-Rex,
- и рисование картинок с помощью Stack Trace дампов.
А раз уж пошла такая хтонь, помяну заодно:
- пост про реверс-инжиниринг древнего чипа 76477, на котором работал звук в первых компьютерных игровых автоматах (начиная со Space Invaders),
- свежую статью про флопотроны -- проигрывание музыки с помощью звуков, создаваемых при передвижении головок старых дисководов,
- студенческий проект экзоскелета в виде шагающего T-Rex,
- и рисование картинок с помощью Stack Trace дампов.
Внимание!
Други, мне сегодня поступают сигналы, что некий упырь зарегистрировал аккаунт с очень похожим на мой никнейм названием, подделал аватарку и пытается продавать рекламу на этом канале.
Рекламу я не продаю и не покупаю, мошеннику желаю гореть в аду, а у вас хотел спросить, вдруг кто знает, куда можно такие вещи эффективно репортить? (если я знаю юзернейм упыря)
Други, мне сегодня поступают сигналы, что некий упырь зарегистрировал аккаунт с очень похожим на мой никнейм названием, подделал аватарку и пытается продавать рекламу на этом канале.
Рекламу я не продаю и не покупаю, мошеннику желаю гореть в аду, а у вас хотел спросить, вдруг кто знает, куда можно такие вещи эффективно репортить? (если я знаю юзернейм упыря)
Жалкие низкочастотники pinned «Внимание! Други, мне сегодня поступают сигналы, что некий упырь зарегистрировал аккаунт с очень похожим на мой никнейм названием, подделал аватарку и пытается продавать рекламу на этом канале. Рекламу я не продаю и не покупаю, мошеннику желаю гореть в аду…»
Опять нет времени писать, так что отделаюсь картинками:
* вверху слева — история цветового распределения постеров к кинофильмам за 100 лет;
* внизу слева — история объёма продаваемых LEGO-деталек по цветам за 50 лет;
* вверху справа — цвета автомобилей по годам производства за 30 лет (на данных польских сайтов по продаже авто);
* внизу справа — основные цвета на картинах за период в 200 лет (на данных архива BBC).
* вверху слева — история цветового распределения постеров к кинофильмам за 100 лет;
* внизу слева — история объёма продаваемых LEGO-деталек по цветам за 50 лет;
* вверху справа — цвета автомобилей по годам производства за 30 лет (на данных польских сайтов по продаже авто);
* внизу справа — основные цвета на картинах за период в 200 лет (на данных архива BBC).
Как я и предсказывал, этой осенью вышла куча ошибочных новостей про якобы 50-летний юбилей игры Жизнь — на самом деле юбилей был год назад, читайте подробности в моём прошлогоднем посте. Но, раз уж пошла волна интереса, напомню про великий проект Life Tetris Processor: команда энтузиастов использовала паттерн OTCA metapixel, чтобы собрать нужные вентили, затем построила на них RISC процессор, написала компилятор под него и запустила на нём тетрис. Проект занял пару лет, и в итоге получился Life-паттерн из 2,940,928 x 10,295,296 клеток, почитать общее описание проекта можно тут, а посмотреть на сам итоговый паттерн тут.
С другой стороны, не за горами другой настоящий юбилей — исполняется 30 лет первой игре серии Monkey Island, в связи с чем Рон Гилберт делает livestream, в которой обещают срыв покровов, разбор сырцов и демонстрацию контента, не попавшего в игру.
А если вам не интересно всё это старьё, посмотрите, как товарищи из Lancaster University замораживают фигурки LEGO до 0.004 градуса Кельвина. Лет семь назад в Манчестере мы с одним из них хотели заморозить себе виски для намазывания на бутерброды, но у них тогда сломалась установка и пришлось отложить.
С другой стороны, не за горами другой настоящий юбилей — исполняется 30 лет первой игре серии Monkey Island, в связи с чем Рон Гилберт делает livestream, в которой обещают срыв покровов, разбор сырцов и демонстрацию контента, не попавшего в игру.
А если вам не интересно всё это старьё, посмотрите, как товарищи из Lancaster University замораживают фигурки LEGO до 0.004 градуса Кельвина. Лет семь назад в Манчестере мы с одним из них хотели заморозить себе виски для намазывания на бутерброды, но у них тогда сломалась установка и пришлось отложить.
Товарищ Jaume Sanchez Elias из Deepmind сделал красивый js-рендерер заузленных торов, стилизованный под грубую ручную штриховку. Интерактив тут, а код здесь. Выглядит очень лампово, особенно в динамике, и я всё думал, что это мне напоминает.
В итоге вспомнил — в студенчестве мой товарищ Вольдемар притащил отличную книжку Франсиса Джорджа К. под названием "Книжка с картинками по топологии: Как рисовать математические картинки", пример картинки из неё справа внизу. На Озоне она давно кончилась, но если поискать, в сети можно найти pdf. Кстати, следы прочтения этой книжки можно наблюдать на аватарке этого канала.
В итоге вспомнил — в студенчестве мой товарищ Вольдемар притащил отличную книжку Франсиса Джорджа К. под названием "Книжка с картинками по топологии: Как рисовать математические картинки", пример картинки из неё справа внизу. На Озоне она давно кончилась, но если поискать, в сети можно найти pdf. Кстати, следы прочтения этой книжки можно наблюдать на аватарке этого канала.
This media is not supported in your browser
VIEW IN TELEGRAM
Небольшая подборка на тему дня:
Анимация из GAN-а, обученного на фото хэллоуинских тыкв, от твиттер-аккаунта ak92501. У него там же есть ещё несколько статических галерей.
Бесплатный PDF с раскрасками про Ктулху; они очень милые, я во время рабочих встреч в зуме иногда использую для успокоения.
И ещё одна GAN, делающая интерполяцию между жуками и человеческими лицами, мне кажется, такое надо сразу в тату салон продавать.
Анимация из GAN-а, обученного на фото хэллоуинских тыкв, от твиттер-аккаунта ak92501. У него там же есть ещё несколько статических галерей.
Бесплатный PDF с раскрасками про Ктулху; они очень милые, я во время рабочих встреч в зуме иногда использую для успокоения.
И ещё одна GAN, делающая интерполяцию между жуками и человеческими лицами, мне кажется, такое надо сразу в тату салон продавать.
Сегодня начинается ежегодный challenge по автоматической генерации текста, NaNoGenMo, в рамках которого надо за месяц написать и опубликовать код, генерирующий литературный текст длиной не менее 50К слов (чтобы исключить cherry-picking). Я ещё не решил, буду ли пробовать в этом году, но в прошлом году я поучаствовал и сейчас расскажу, что из этого вышло, просто чтоб закрыть гештальт.
Я тогда подал на конкурс комбинацию из двух нейросеток: первая — GPT-генератор с обуславливанием, предобученный на всяком киберпанке, афоризмах и непростых текстах вроде Кафки и Руми. Вторая — BERT-фильтр, отбраковывающий скучные и корявые фразы и оставляющий годные набросы. Этот фильтр я обучил на разметке, основную часть которой мне помог сделать Ваня Ямщиков (с тех пор он такой, шутка). Получился, в итоге, довольно годный генератор кибер-параноидального бреда на английском. Назвал я его Paranoid Transformer, если вы понимаете.
NaNoGenMo тихо закончился, но в середине декабря мне написал Augusto Corvalan, шеф-редактор эзотерического журнала DEAD ALIVE и предложил поучаствовать этим же проектом в их конкурсе. Я решил, что скучно использовать одно и то же два раза, и добавил следующий твист: взял готовую рекуррентную сетку для генерации рукописного текста, организовал зависимость "нервности" почерка от эмоциональности конкретного предложения (определяемого sentiment анализом) и "написал" весь текст "от руки". Получилось довольно атмосферно, так, что в конце января я даже занял первое место по итогам того конкурса (сколько всего было конкурсантов, я не знаю:).
В феврале мне, как победителю конкурса, предложили издать этот текст в их же издательстве. Я согласился, но снова решил, что не очень интересно использовать одну поделку несколько раз без изменений, и добавил ещё несколько штук: сделал генерацию дат для разделов, как в настоящем дневнике, добавил круглые следы от кружки кофе там и сям, а Дима Кузнецов подсказал мне идею рисунков на полях, и я собрал аналог Sketch-RNN, предобученный на гугловом Quick, Draw! Dataset, так что каждый раз, как в тексте появлялось слово из категорий датасета, на полях появлялись каракули, этому слову соответствующие. Товарищи из издательства вычитали сгенерированный текст целиком (sic!) и прислали мне список потенциально оскорбительных высказываний (много!). Я решил, что совсем удалять их не так интересно, и прикрутил вместо этого эвристику, которая агрессивно зачёркивает такие участки прямо в тексте, что добавило эмоции.
Тем временем Ваня Ямщиков и Яна Агафонова помогли мне с написанием гонзо-статьи "Paranoid Transformer: Reading Narrative of Madness as Computational Approach to Creativity", которая в сентябре попала на конференцию International Conference on Computational Creativity 2020, а буквально неделю назад её расширенная версия вышла в журнале Future Internet.
На этапе поиска авторов на предисловие и послесловие к книге мне пришлось несладко. Борислав Козловский дал мне спонтанный мастер-класс по написанию "холодных" запросов незнакомым знаменитостям, так чтоб они хотя бы отвечали на письмо, и теперь у меня в почтовом ящике есть вежливые отказы от кучи удивительных людей (например, от Дэвида Дойча, Ричарда Столлмана и Дугласа Хофштадтера). Затем я успокоился и запросил отзывы у пары действительно правильных людей: Любы Эллиотт, продюссера проектов в области креативного AI, и Ника Монтфорта, поэта и профессора цифровых медиа в MIT. Их рецензии и вошли в итоговую книгу. Обложку с генеративным паттерном нарисовал Augusto Corvalan.
Сама книга Paranoid Transformer сейчас доступна к предзаказу на сайте издательства, рассылку обещают начать в декабре. Хочу предупредить, что за продажу книги я ответственности не несу, а пересылка бумажной книги из Нью-Йорка в Россию может занимать довольно много времени (особенно в период карантинов). Судя по сигнальной копии, что есть у меня на руках, книжка получилась достаточно добротной, и следующим сообщением я дам несколько фотографий и картинок из неё.
Я тогда подал на конкурс комбинацию из двух нейросеток: первая — GPT-генератор с обуславливанием, предобученный на всяком киберпанке, афоризмах и непростых текстах вроде Кафки и Руми. Вторая — BERT-фильтр, отбраковывающий скучные и корявые фразы и оставляющий годные набросы. Этот фильтр я обучил на разметке, основную часть которой мне помог сделать Ваня Ямщиков (с тех пор он такой, шутка). Получился, в итоге, довольно годный генератор кибер-параноидального бреда на английском. Назвал я его Paranoid Transformer, если вы понимаете.
NaNoGenMo тихо закончился, но в середине декабря мне написал Augusto Corvalan, шеф-редактор эзотерического журнала DEAD ALIVE и предложил поучаствовать этим же проектом в их конкурсе. Я решил, что скучно использовать одно и то же два раза, и добавил следующий твист: взял готовую рекуррентную сетку для генерации рукописного текста, организовал зависимость "нервности" почерка от эмоциональности конкретного предложения (определяемого sentiment анализом) и "написал" весь текст "от руки". Получилось довольно атмосферно, так, что в конце января я даже занял первое место по итогам того конкурса (сколько всего было конкурсантов, я не знаю:).
В феврале мне, как победителю конкурса, предложили издать этот текст в их же издательстве. Я согласился, но снова решил, что не очень интересно использовать одну поделку несколько раз без изменений, и добавил ещё несколько штук: сделал генерацию дат для разделов, как в настоящем дневнике, добавил круглые следы от кружки кофе там и сям, а Дима Кузнецов подсказал мне идею рисунков на полях, и я собрал аналог Sketch-RNN, предобученный на гугловом Quick, Draw! Dataset, так что каждый раз, как в тексте появлялось слово из категорий датасета, на полях появлялись каракули, этому слову соответствующие. Товарищи из издательства вычитали сгенерированный текст целиком (sic!) и прислали мне список потенциально оскорбительных высказываний (много!). Я решил, что совсем удалять их не так интересно, и прикрутил вместо этого эвристику, которая агрессивно зачёркивает такие участки прямо в тексте, что добавило эмоции.
Тем временем Ваня Ямщиков и Яна Агафонова помогли мне с написанием гонзо-статьи "Paranoid Transformer: Reading Narrative of Madness as Computational Approach to Creativity", которая в сентябре попала на конференцию International Conference on Computational Creativity 2020, а буквально неделю назад её расширенная версия вышла в журнале Future Internet.
На этапе поиска авторов на предисловие и послесловие к книге мне пришлось несладко. Борислав Козловский дал мне спонтанный мастер-класс по написанию "холодных" запросов незнакомым знаменитостям, так чтоб они хотя бы отвечали на письмо, и теперь у меня в почтовом ящике есть вежливые отказы от кучи удивительных людей (например, от Дэвида Дойча, Ричарда Столлмана и Дугласа Хофштадтера). Затем я успокоился и запросил отзывы у пары действительно правильных людей: Любы Эллиотт, продюссера проектов в области креативного AI, и Ника Монтфорта, поэта и профессора цифровых медиа в MIT. Их рецензии и вошли в итоговую книгу. Обложку с генеративным паттерном нарисовал Augusto Corvalan.
Сама книга Paranoid Transformer сейчас доступна к предзаказу на сайте издательства, рассылку обещают начать в декабре. Хочу предупредить, что за продажу книги я ответственности не несу, а пересылка бумажной книги из Нью-Йорка в Россию может занимать довольно много времени (особенно в период карантинов). Судя по сигнальной копии, что есть у меня на руках, книжка получилась достаточно добротной, и следующим сообщением я дам несколько фотографий и картинок из неё.
Отличная история: ребята заметили, что на новостных съёмках с полицейского вертолёта есть фоновый сигнал, немного похожий на звук модема; решили, что это может быть телеметрия и декодировали её. По ссылке подробное пошаговое описание процесса, от поиска частоты, через декодирование частотной модуляции и до дешифровки ASCII-содержимого пакетов и превращения в KML-файл для отображения положения вертолёта на карте. (Покопавшись, я нашёл более ранний аналогичный проект от финской хакерши Oona Räisänen, о которой писал в прошлом году, но там поменьше деталей).
This media is not supported in your browser
VIEW IN TELEGRAM
Железнодорожная стрелка на Pilatus Railway, дороге с самым большим уклоном в мире, ведущей на гору Пилатус в Швейцарии. Нашёл в твиттере.
Word embeddings (автоматическое сопоставление словам векторов в некотором "пространстве смыслов") широко используется в современной компьютерной лингвистике. В том числе, таким способом можно построить вектора одних и тех же слов на базе текстов, написанных в разные периоды времени, и анализировать, как менялся смысл слова во времени. На первой картинке — дрифт английского модального глагола "should", источник — твитер Guillaume Desagulier, профессора лингвистики из Paris 8 University. На второй — иллюстрация смены смысла нескольких английских слов из проекта HistWords, сделанного несколько лет назад командой Stanford NLP.
Читатели подсказывают: есть аналогичный проект на русских новостных корпусах, можно посмотреть на динамику смысла прямо на сайте https://shiftry.rusvectores.org/
Конец года вышел очень плотным, так что ни на что особо не хватает времени. На каникулах постараюсь исправиться, и написать что-нибудь осмысленное и интересное.
А пока, по традиции, вот вам куча разных безумных ссылок с однострочными комментариями:
1. Танцевальная визуализация разных алгоритмов сортировки в исполнении различных народных ансамблей.
2. GAN-генератор спутниковых снимков несуществующих городов.
3. Научная статья о математической классификации, кодировании и генерации паттернов традиционного индийского рисунка Колам.
4. MinecraftHDL — aвтоматическая генерация из описания алгоритма схем на базе minecraft redstone circuits.
5. Стыковка с МКС для чайников — 30-минутный ролик на базе космического эмулятора, описывающий кучу практических деталей процесса.
6. Добротный обзор алгоритмов генерации лабиринтов с примерами.
7. Подборка magic numbers, часто встречающихся на практике чисел вроде 2130706433 или 10080 с разъяснениями.
8. Проект по созданию моноширинного шрифта на базе Comic Sans, отлично подойдёт для вашей консоли. Надо бы сделать русскую версию.
9. Эээ... В общем, это безумный арт проект, в котором плесень постепенно пожирает книгу, а камера распознаёт оставшийся текст и автоматически твиттит его.
И подборка ссылок от друзей и читателей:
* Загрузка FreeDOS на PC с винилового диска, прислал Саня Молоканов.
* Модуль, позволяющий писать Perl-код на латыни, ссылка от Димы Шемятихина.
* Подборка эмуляторов всякой хтони для запуска в браузере, подсказал Паша Гертман.
* Система классификации Горнбостеля-Сакса, для присвоения номеров любым музыкальным инструментам, показал Борислав Козловский.
* В 19 веке православная миссия в Китае создала новые «иероглифы» для транскрипции русских слов, via linguopunk_ru.
* Иван Дианов прислал ссылки движки для 3d-рендера на SQL и на ДНК, автор обоих Ярослав Сергиенко.
А пока, по традиции, вот вам куча разных безумных ссылок с однострочными комментариями:
1. Танцевальная визуализация разных алгоритмов сортировки в исполнении различных народных ансамблей.
2. GAN-генератор спутниковых снимков несуществующих городов.
3. Научная статья о математической классификации, кодировании и генерации паттернов традиционного индийского рисунка Колам.
4. MinecraftHDL — aвтоматическая генерация из описания алгоритма схем на базе minecraft redstone circuits.
5. Стыковка с МКС для чайников — 30-минутный ролик на базе космического эмулятора, описывающий кучу практических деталей процесса.
6. Добротный обзор алгоритмов генерации лабиринтов с примерами.
7. Подборка magic numbers, часто встречающихся на практике чисел вроде 2130706433 или 10080 с разъяснениями.
8. Проект по созданию моноширинного шрифта на базе Comic Sans, отлично подойдёт для вашей консоли. Надо бы сделать русскую версию.
9. Эээ... В общем, это безумный арт проект, в котором плесень постепенно пожирает книгу, а камера распознаёт оставшийся текст и автоматически твиттит его.
И подборка ссылок от друзей и читателей:
* Загрузка FreeDOS на PC с винилового диска, прислал Саня Молоканов.
* Модуль, позволяющий писать Perl-код на латыни, ссылка от Димы Шемятихина.
* Подборка эмуляторов всякой хтони для запуска в браузере, подсказал Паша Гертман.
* Система классификации Горнбостеля-Сакса, для присвоения номеров любым музыкальным инструментам, показал Борислав Козловский.
* В 19 веке православная миссия в Китае создала новые «иероглифы» для транскрипции русских слов, via linguopunk_ru.
* Иван Дианов прислал ссылки движки для 3d-рендера на SQL и на ДНК, автор обоих Ярослав Сергиенко.
На выходных дошли руки разобрать работы NaNoGenMo этого года. Вот мой личный топ интересных проектов:
1. Banalified Moby-Dick — используют generic BERT для определения наименее ожидаемых слов в тексте и замены их на более вероятные согласно модели. Общая perplexity текста падает, текст при этом довольно интересно деградирует. Есть примеры результатов с Моби Диком, Гамлетом и Портретом художника в юности.
2. This Comic Does Not Exist — автор собрал большой датасет horror-комиксов, порезал на кадры и доучил на них StyleGAN2. Затем нагенерировал много новых кадров и собрал из них pdf-книгу на 55 листов. Получилось очень крипово.
3. Simple Dialogues — простые диалоги, в которых произнесение каждого звука автоматически детализировано до подробного описания движения губ, языка, связок и всего речевого аппарата.
Не вошли в топ, но привлекла внимание ещё пара проектов:
4. Activity logs — автоматическая генерация рабочих отчётов ("...затем 15 минут писал ответ клиенту..."), про похожую историю я тут уже когда-то писал.
5. NaNoGenMo Generated Stories Continued by AI Dungeon — GPT-2 дообученная на датасете Writing Prompts придумывает затравки для историй, а GPT-3 через интерфейс AI Dungeon их продолжает. Результат немного похож на cherry picking, но всё равно очень неплохо.
1. Banalified Moby-Dick — используют generic BERT для определения наименее ожидаемых слов в тексте и замены их на более вероятные согласно модели. Общая perplexity текста падает, текст при этом довольно интересно деградирует. Есть примеры результатов с Моби Диком, Гамлетом и Портретом художника в юности.
2. This Comic Does Not Exist — автор собрал большой датасет horror-комиксов, порезал на кадры и доучил на них StyleGAN2. Затем нагенерировал много новых кадров и собрал из них pdf-книгу на 55 листов. Получилось очень крипово.
3. Simple Dialogues — простые диалоги, в которых произнесение каждого звука автоматически детализировано до подробного описания движения губ, языка, связок и всего речевого аппарата.
Не вошли в топ, но привлекла внимание ещё пара проектов:
4. Activity logs — автоматическая генерация рабочих отчётов ("...затем 15 минут писал ответ клиенту..."), про похожую историю я тут уже когда-то писал.
5. NaNoGenMo Generated Stories Continued by AI Dungeon — GPT-2 дообученная на датасете Writing Prompts придумывает затравки для историй, а GPT-3 через интерфейс AI Dungeon их продолжает. Результат немного похож на cherry picking, но всё равно очень неплохо.