https://www.tgoop.com/ssleg/153
Стандарты - нестандартные, системы - безсистемные, пространство - неевклидово, хрен знает, чье оно (с)
А теперь попробуй из кода сделать зачеркнутый шрифт в маркдауне.
Стандарты - нестандартные, системы - безсистемные, пространство - неевклидово, хрен знает, чье оно (с)
А теперь попробуй из кода сделать зачеркнутый шрифт в маркдауне.
Telegram
СЛЕГ!
Поскольку Паша у нас либертарианец, то стандарты ему не писаны и у телеграм свое понимание языка markdown. Причём не описанное в документации, но легко излекающееся из сообщений.
Держите рабочую шпаргалку, как форматировать текст в сообщениях.
В результате…
Держите рабочую шпаргалку, как форматировать текст в сообщениях.
В результате…
В чате Типичного Программиста человек скинул вступительные вопросы на IT магистратуру в Украине.
Перевод:
CPython заранее создает и хранит объекты под числа в диапазоне [-5, 256], потому именно этот код создаст только две ссылки, притом на уже существующий объект, в котором хранится число 100.
Пруфы: ссылка на обсуждение целых чисел в питоне на Stackoverflow, и код объекта, представляющего целое число на гитхабе.
Как я понимаю, в случае, если бы было число вне этого диапазона, был бы создан один объект (само число) и две ссылки (т.е. вариант B)
В общем, вопрос "Что курил голландец Гвидо Ван Россум, когда придумывал питон?" остается открытым.
#python
Перевод:
Сколько объектов и сколько ссылок создается в приведенном фрагменте кода на языке Python?
n=100
m=n
A) один объект, одна ссылка
B) один объект, две ссылки
C) два объекта, одна ссылка
D) два объекта, две ссылки
Самое прикольное в этом вопросе... что ни один из вариантов неправилен (по крайней мере для стандартного интерпретатора CPython).CPython заранее создает и хранит объекты под числа в диапазоне [-5, 256], потому именно этот код создаст только две ссылки, притом на уже существующий объект, в котором хранится число 100.
Пруфы: ссылка на обсуждение целых чисел в питоне на Stackoverflow, и код объекта, представляющего целое число на гитхабе.
Как я понимаю, в случае, если бы было число вне этого диапазона, был бы создан один объект (само число) и две ссылки (т.е. вариант B)
В общем, вопрос "Что курил голландец Гвидо Ван Россум, когда придумывал питон?" остается открытым.
#python
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Красный)
Одно из традиционных направлений в разработке софта — автоматизация всего, что движется. Возведённый в абсолют, этот подход приводит к концепции непрерывного развертывания. Это когда новый код доходит до клиентов практически сразу после того, как его написали — например, в тот же день.
"Олдскульная" система разработки ПО начинается с того, что программисты сидят и пишут код. В конце определенного отрезка времени — спринта — всё написанное собирается в единое обновление. Обновление проверяется тестировщиками, и, если всё ок, «выкатывается» на пробу заказчику, и, если все в порядке, так или иначе поставляется клиентам.
Процесс проверки такого обновления тестировщиками и заказчиком занимает огромное количество человеко-часов. При этом никто не застрахован от проникновения к конечному пользователю каких-либо критических багов.
Сейчас мир разработки ПО движется в замены процесса ручного тестирования и опытной эксплуатации автоматизированными тестами. Установка и настройка тоже полностью автоматизируется.
На каждый кусочек кода программист пишет другой кусочек кода, который проверяет, что первый работает так, как надо — и сообщает результат. Кроме того, пишутся тесты, которые проверяют работоспособность и корректность взаимодействия более крупных компонентов ПО. Например, микросервисов.
Предположим, программист завершил какую-то небольшую подзадачу. Он добавляет своё маленькое обновление в общее хранилище кода. Когда это происходит, ПО ставится на специальный тестовый сервер, где прогоняются ВСЕ тесты, отвечающие за функциональность. Отчёт о результатах тестирования отправляется всем, кому этот отчёт нужен.
Постепенно обновления могут начать автоматически добираться напрямую до клиентов. В случае использования микросервисов в архитектуре последствия пропущенной проверки критического бага минимизируются. Если умрет один микросервис из сотни, его просто восстановят из последней работоспособной версии. Основная часть клиентов даже не почувствует ущерба.
Казалось бы, тестировщики в скором времени начнут вымирать: большая часть тестов пишется программистами, тестирование автоматизировано. Но всё не так ужасно: системные администраторы ведь не вымерли, а превратились в devops-ов и в специалистов по информационной безопасности. Так и тестировщики – просто сольются до неразличимости с программистами, но без работы не останутся.
"Олдскульная" система разработки ПО начинается с того, что программисты сидят и пишут код. В конце определенного отрезка времени — спринта — всё написанное собирается в единое обновление. Обновление проверяется тестировщиками, и, если всё ок, «выкатывается» на пробу заказчику, и, если все в порядке, так или иначе поставляется клиентам.
Процесс проверки такого обновления тестировщиками и заказчиком занимает огромное количество человеко-часов. При этом никто не застрахован от проникновения к конечному пользователю каких-либо критических багов.
Сейчас мир разработки ПО движется в замены процесса ручного тестирования и опытной эксплуатации автоматизированными тестами. Установка и настройка тоже полностью автоматизируется.
На каждый кусочек кода программист пишет другой кусочек кода, который проверяет, что первый работает так, как надо — и сообщает результат. Кроме того, пишутся тесты, которые проверяют работоспособность и корректность взаимодействия более крупных компонентов ПО. Например, микросервисов.
Предположим, программист завершил какую-то небольшую подзадачу. Он добавляет своё маленькое обновление в общее хранилище кода. Когда это происходит, ПО ставится на специальный тестовый сервер, где прогоняются ВСЕ тесты, отвечающие за функциональность. Отчёт о результатах тестирования отправляется всем, кому этот отчёт нужен.
Постепенно обновления могут начать автоматически добираться напрямую до клиентов. В случае использования микросервисов в архитектуре последствия пропущенной проверки критического бага минимизируются. Если умрет один микросервис из сотни, его просто восстановят из последней работоспособной версии. Основная часть клиентов даже не почувствует ущерба.
Казалось бы, тестировщики в скором времени начнут вымирать: большая часть тестов пишется программистами, тестирование автоматизировано. Но всё не так ужасно: системные администраторы ведь не вымерли, а превратились в devops-ов и в специалистов по информационной безопасности. Так и тестировщики – просто сольются до неразличимости с программистами, но без работы не останутся.
Поставил запятую в своих игрищах с ботами для телеграма. Бота для проверки анонимности не случилось, зато написанный на коленке бот для обратной связи превратился в более-менее законченный проект.
Написан он на c#, .Net Core + библиотека Telegram.Bot + Postgresql (адаптер со стороны шарпа - Npgsql). Итого 2600 строк кода на с# (800 - тесты и вспомогательный код) и 250 - описание БД на pl/pgsql.
Бот пересылает в группу все написанные ему в личку сообщения и отсылает писавшим ответы сидящих в группе людей.
Добавил несколько фишек, например возможность делать массовую рассылку из чата всем писавшим боту и возможность легко просмотреть все сообщения в чате от определенного пользователя.
Теперь в планах рефакторинг, рефакторинг и ещё раз рефакторинг: этот проект надо довести до состояния "не стыдно показать", будет частью резюме/портфолио, потому, если будут замечания - буду благодарен.
Ссылка на репозиторий:
https://github.com/vladzvx/telegrambots
#телеграм
Написан он на c#, .Net Core + библиотека Telegram.Bot + Postgresql (адаптер со стороны шарпа - Npgsql). Итого 2600 строк кода на с# (800 - тесты и вспомогательный код) и 250 - описание БД на pl/pgsql.
Бот пересылает в группу все написанные ему в личку сообщения и отсылает писавшим ответы сидящих в группе людей.
Добавил несколько фишек, например возможность делать массовую рассылку из чата всем писавшим боту и возможность легко просмотреть все сообщения в чате от определенного пользователя.
Теперь в планах рефакторинг, рефакторинг и ещё раз рефакторинг: этот проект надо довести до состояния "не стыдно показать", будет частью резюме/портфолио, потому, если будут замечания - буду благодарен.
Ссылка на репозиторий:
https://github.com/vladzvx/telegrambots
#телеграм
Telegram
Эшу быдлокодит
#телеграм
Некоторое время назад бот, используемый нами в Сионе для обратной связи с читателями весело отрекламировал, как будто от нашего имени, ставки на спорт. Я и так ковыряюсь в телеграмных ботах, по такому случаю сделал бота для обратной связи. Ботов…
Некоторое время назад бот, используемый нами в Сионе для обратной связи с читателями весело отрекламировал, как будто от нашего имени, ставки на спорт. Я и так ковыряюсь в телеграмных ботах, по такому случаю сделал бота для обратной связи. Ботов…
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Красный)
Простейшая нейросеть (описывали ранее) —это основа, которая в реальных задачах применяется в существенно усложненном виде.
Можно выделить две самые совершенных группы: сети с памятью (LSTM и др) и сети, сверяющие данные с образами, хранящимися в их памяти (сверточные нейросети, CNN).
Первые используются для работы с данными, изменяющимися во времени: например сигналы с каких-нибудь датчиков, звук, текст. Вторые нужны для распознавания образов: отличить собаку от кошки по фото, опознать определенное лицо в видеопотоке и тд.
Наткнулся сегодня на статью о том, как эти классы скрестили, в результате чего сети стали лучше обрабатывать сложную информацию: прогнозы погоды стали точнее, системы автопилотов — умнее. Получившийся гибрид обозвали "Временные сверточные сети" (TCN).
Машинное обучение как дисциплина находится на пике популярности, потому от опубликования идеи в научном журнале (2016 г.) до появления общедоступной реализации, позволяющей использовать эту сеть в пару строчек кода, прошло всего два года.
В 2020-ом, информация об этом типе сетей начинает входить в программы частных образовательных предприятий. При этом, в большинстве российских университетов, на IT кафедрах, о нейросетях только слышали и внедрение в программу чего-то кроме базовой теории пока на стадии согласования планов образовательных программ.
Eshu Marabo
Можно выделить две самые совершенных группы: сети с памятью (LSTM и др) и сети, сверяющие данные с образами, хранящимися в их памяти (сверточные нейросети, CNN).
Первые используются для работы с данными, изменяющимися во времени: например сигналы с каких-нибудь датчиков, звук, текст. Вторые нужны для распознавания образов: отличить собаку от кошки по фото, опознать определенное лицо в видеопотоке и тд.
Наткнулся сегодня на статью о том, как эти классы скрестили, в результате чего сети стали лучше обрабатывать сложную информацию: прогнозы погоды стали точнее, системы автопилотов — умнее. Получившийся гибрид обозвали "Временные сверточные сети" (TCN).
Машинное обучение как дисциплина находится на пике популярности, потому от опубликования идеи в научном журнале (2016 г.) до появления общедоступной реализации, позволяющей использовать эту сеть в пару строчек кода, прошло всего два года.
В 2020-ом, информация об этом типе сетей начинает входить в программы частных образовательных предприятий. При этом, в большинстве российских университетов, на IT кафедрах, о нейросетях только слышали и внедрение в программу чего-то кроме базовой теории пока на стадии согласования планов образовательных программ.
Eshu Marabo
Forwarded from СЛЕГ! <Z> ️
Как бы помягче объяснить, что Дуров и его команда плохие люди. (мат вырезан цензурой).
Без объявления войны, телеграм 1.5 часа назад изменил формат выдачи постов. Просто потому что может.
Есть канал и привязанный к нему чат. До сегодняшнего дня, посты канала, отображались в чате как форварды, но от пустого юзера. То есть поле from_id всегда было None.
Было два идентификатора: ID канала (2584) и ID чата (0549). Теперь появился третий, виртуальный "пользователь" с ID оканчивающимся на 8824.
Естественно, мне сейчас придётся быстро переписывать в паре мест логику Фомы (моего бота).
P. S. Судя по всему, этот костыль команда телеграм сделала, чтобы "администраторы чатов могли отправлять в чат анонимные сообщения" (из пресс релиза) .
Без объявления войны, телеграм 1.5 часа назад изменил формат выдачи постов. Просто потому что может.
Есть канал и привязанный к нему чат. До сегодняшнего дня, посты канала, отображались в чате как форварды, но от пустого юзера. То есть поле from_id всегда было None.
Было два идентификатора: ID канала (2584) и ID чата (0549). Теперь появился третий, виртуальный "пользователь" с ID оканчивающимся на 8824.
Естественно, мне сейчас придётся быстро переписывать в паре мест логику Фомы (моего бота).
P. S. Судя по всему, этот костыль команда телеграм сделала, чтобы "администраторы чатов могли отправлять в чат анонимные сообщения" (из пресс релиза) .
СЛЕГ! <Z> ️
Как бы помягче объяснить, что Дуров и его команда плохие люди. (мат вырезан цензурой). Без объявления войны, телеграм 1.5 часа назад изменил формат выдачи постов. Просто потому что может. Есть канал и привязанный к нему чат. До сегодняшнего дня, посты канала…
В общем, теперь перенос постов из канала в привязанный чатик должен был не висеть в воздухе от имени None, а вестись от имени @GroupAnonymousBot с фиксированным id.
Впрочем, в какой-то момент фиксированный id сменился.
Что-то пошло не так (видимо волна негатива от разработчиков дошла до администрации телеги) и сейчас все вернули как было.
Впрочем, в какой-то момент фиксированный id сменился.
Что-то пошло не так (видимо волна негатива от разработчиков дошла до администрации телеги) и сейчас все вернули как было.
https://www.tgoop.com/ssleg/164
Возможно, проблемы только у клиентов, типа telethon. Мои боты не заметили ничего:)
Спросил ещё у людей - ни у кого проблем нет (там на bot api или на вебхуках боты)
Возможно, проблемы только у клиентов, типа telethon. Мои боты не заметили ничего:)
Спросил ещё у людей - ни у кого проблем нет (там на bot api или на вебхуках боты)
Telegram
СЛЕГ!
Новенькое в падениях телеги. В этот раз пашины гении ночью сломали шифрование. Все авторизованные боты были разлогинены сервером, при этом сессии обозначаются как живые.
Ручками пришлось с утра всех авторизовать заново, а старые сессии терминировать. Проверяйте…
Ручками пришлось с утра всех авторизовать заново, а старые сессии терминировать. Проверяйте…
Forwarded from Data is data
Нам всё врали, π - целое число. А я нашёл как этот символ на iPhone писать. Это настолько очевидно, что неожиданно.
Поставил на паузу проект с ботами для телеграма. Потихоньку буду их развивать и поддерживать, но они уходят на последний план в приоритете задач. Итог работы - два бота, бот обратной связи (о нем писал ранее) и бот для отложенного постинга с лайками и отложенным репостом, собственно с его помощью и отправляю этот пост:)
В целом, работа получилась полезной. Главный профит - окончательное осознание основ SQL на примере PostgreSQL. Разумеется я не мог не накосячить в разработке архитектуры проекта, потому да здравствуют 4 тысячи строчек малочитаемого спагетти-кода, да еще сверху 500+ строчек SQL в описании БД.
Если кому интересно - вот репозиторий на Гитхабе с последней версией кода. Все желающие могут воспользоваться ботами, для этого надо написать боту-менеджеру @zvx_manager_bot
Теперь по настроению буду апгрейдить базу данных вверх по нормальным формам, да и основной код надоректалить рефакторить, но теперь все свободные силы будут брошены на диссертацию и околодиссертационные поделки. Первым пунктом стоит переписать ПО микроскопа для измерений клеток. Было оно сделано талантливым новичком на странном языке Processing, буду переписывать на c#, возможно с легкими вкраплениями питона.
#телеграм
В целом, работа получилась полезной. Главный профит - окончательное осознание основ SQL на примере PostgreSQL. Разумеется я не мог не накосячить в разработке архитектуры проекта, потому да здравствуют 4 тысячи строчек малочитаемого спагетти-кода, да еще сверху 500+ строчек SQL в описании БД.
Если кому интересно - вот репозиторий на Гитхабе с последней версией кода. Все желающие могут воспользоваться ботами, для этого надо написать боту-менеджеру @zvx_manager_bot
Теперь по настроению буду апгрейдить базу данных вверх по нормальным формам, да и основной код надо
#телеграм
GitHub
GitHub - vladzvx/tgbotmanager
Contribute to vladzvx/tgbotmanager development by creating an account on GitHub.
Возобновляю прерванную году этак в 2015 работу над литобзором диссертации.
Тема работы - алгоритмы анализа изображений полученных с довольно экзотического класса микроскопов: с фазовых. Подробнее о них я писал для Футуризма, можно также легко загуглить.
Сущность фазовых изображений отличается от обычных: вместо яркости на картинке распределены значения оптической толщины образца, соответственно, вся богатая классика анализа изображений не годится, нудно изобретать свой велосипед.
Собственно вся работа - изобретение и обоснование нужности такого велосипеда.
По случаю подготовки лит. обзора я буду читать много научных статей. Интересно бы вам было краткое упрощённое изложение их на канале?
#диссер
Тема работы - алгоритмы анализа изображений полученных с довольно экзотического класса микроскопов: с фазовых. Подробнее о них я писал для Футуризма, можно также легко загуглить.
Сущность фазовых изображений отличается от обычных: вместо яркости на картинке распределены значения оптической толщины образца, соответственно, вся богатая классика анализа изображений не годится, нудно изобретать свой велосипед.
Собственно вся работа - изобретение и обоснование нужности такого велосипеда.
По случаю подготовки лит. обзора я буду читать много научных статей. Интересно бы вам было краткое упрощённое изложение их на канале?
#диссер
Telegram
Русский Футурист
Продолжаю серию "Оптическая микроскопия", часть 4.
Фазовая микроскопия
Один из самых перспективных методов оптической микроскопии - фазовая микроскопия. Что интересно – в СССР первый фазовый микроскоп появился в 1985 году, за бугром – около 2005, притом…
Фазовая микроскопия
Один из самых перспективных методов оптической микроскопии - фазовая микроскопия. Что интересно – в СССР первый фазовый микроскоп появился в 1985 году, за бугром – около 2005, притом…
Интересно ли вам краткое изложение научных статей по фазовой микроскопии и алгоритмам анализа изображений?
Anonymous Poll
78%
Да
11%
Нет
11%
Пофиг
https://www.tgoop.com/ssleg/178
Имеено для таких случаев предусмотрительные люди и пишут автотесты, а также настраивают CD/CI
Я все хочу стать капельку девопсом и настроить своим ботам github actions, но лень меня побеждает.
Имеено для таких случаев предусмотрительные люди и пишут автотесты, а также настраивают CD/CI
Я все хочу стать капельку девопсом и настроить своим ботам github actions, но лень меня побеждает.
Telegram
СЛЕГ!
При обновлении телетон до версии 1.17 и выше надо обновлять и свой код.
Старое доброе uid=event.message.from_id больше не работает, теперь это класс peeruser (если сообщение от пользователя) или peerchannel (если это канал) или none (сервисное)
Будьте внимательны…
Старое доброе uid=event.message.from_id больше не работает, теперь это класс peeruser (если сообщение от пользователя) или peerchannel (если это канал) или none (сервисное)
Будьте внимательны…
Forwarded from Жалкие низкочастотники
Сегодня начинается ежегодный 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 сейчас доступна к предзаказу на сайте издательства, рассылку обещают начать в декабре. Хочу предупредить, что за продажу книги я ответственности не несу, а пересылка бумажной книги из Нью-Йорка в Россию может занимать довольно много времени (особенно в период карантинов). Судя по сигнальной копии, что есть у меня на руках, книжка получилась достаточно добротной, и следующим сообщением я дам несколько фотографий и картинок из неё.
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Футуристъ)
На днях впервые познакомился на практике с самым известным инструментом для работы с изображениями и видео: опенсорсной библиотекой OpenCV (Open Source Computer Vision Library).
Разработка библиотеки была начата в 2000 году в Нижегородском филиале корпорации Intel. В 2006 году увидел свет первый релиз. Позднее к разработке приложила руку и корпорация NVidia, в результате чего был добавлен модуль, оптимизированный для вычислений на видеокартах.
OpenCV включает в себя весь основной функционал, который может понадобиться разработчику: захват изображения с камеры, основные методы обработки и множество обшеупотребимых функций, таких как обнаружение лиц.
Некоторое время назад в библиотеку были добавлены некоторые инструменты, базирующиеся на машинном обучении.
Мои впечатления от работы с библиотекой вполне положительные: изображение с камеры перехватывается без танцев с бубнами, отдается для дальнейшей работы в нормальном виде, управление камерой организованно интуитивно понятно.
В общем, очень крутой проект, один из самых значимых, созданных российскими программистами, входивший в соответсвующий список. Что характерно, в списке российского ПО я его не нашел.
Eshu Marabo
Разработка библиотеки была начата в 2000 году в Нижегородском филиале корпорации Intel. В 2006 году увидел свет первый релиз. Позднее к разработке приложила руку и корпорация NVidia, в результате чего был добавлен модуль, оптимизированный для вычислений на видеокартах.
OpenCV включает в себя весь основной функционал, который может понадобиться разработчику: захват изображения с камеры, основные методы обработки и множество обшеупотребимых функций, таких как обнаружение лиц.
Некоторое время назад в библиотеку были добавлены некоторые инструменты, базирующиеся на машинном обучении.
Мои впечатления от работы с библиотекой вполне положительные: изображение с камеры перехватывается без танцев с бубнами, отдается для дальнейшей работы в нормальном виде, управление камерой организованно интуитивно понятно.
В общем, очень крутой проект, один из самых значимых, созданных российскими программистами, входивший в соответсвующий список. Что характерно, в списке российского ПО я его не нашел.
Eshu Marabo
Telegram
Русский Футурист
В августе группа российских разработчиков опубликовала список "Сделано русскими" — ребята собрали интересные проекты с открытым исходным кодом от российских разработчиков.
"Наши люди" либо разработали с нуля, либо сделали вклад в целую россыпь известных…
"Наши люди" либо разработали с нуля, либо сделали вклад в целую россыпь известных…
Архив КС/РФ(Сиона-Футуриста)
На днях впервые познакомился на практике с самым известным инструментом для работы с изображениями и видео: опенсорсной библиотекой OpenCV (Open Source Computer Vision Library). Разработка библиотеки была начата в 2000 году в Нижегородском филиале корпорации…
Во истину, знакомство с OpenCV, точнее с его оберткой для c# - EmguCV идет успешно! Это была ночная попытка просто перемножить и разделить несколько изображений. Кроме того, на не особо затратные преобразования с потоком видео 640х480 25 кадров в секунду выжирается до 6 Гб(!) оперативки.
В общем, OpenCV останется у меня как граббер изображения (то, что забирает изображение с USB входа), и, возможно, для преобразования Фурье. А остальные действия с картинками - ручками, ручками.
#диссер #csharp
В общем, OpenCV останется у меня как граббер изображения (то, что забирает изображение с USB входа), и, возможно, для преобразования Фурье. А остальные действия с картинками - ручками, ручками.
#диссер #csharp
В фазовой микроскопии отдельно стоит задача развертки фазы. Изображение после вычисления распределено в диапазоне от 0 до 2пи, от всего, что имеет фазовую толщину больше 2пи, отнимается значение, кратное 2пи, после чего в изображение записывается остаток.
В идеальном мире модельных изображений задача решается очень просто, строчек в 15 кода. На практике же все несколько сложнее. Некоторое время назад я нашел замечательно работающую реализацию алгоритма для развертки фазы... в питоне в библиотеке scikit-image.
Изначально я планировал в качестве временного решения сделать воспроизведение питон кода из c#, но потом вспомнил, что библиотека эта - опенсорсная. В их репозитории на гитхабе я откопал исходник функции развертки фазы - 700 строчек на чистом С.
Вот и состоялось мое знакомство с этим замечательны языком. Как водится, оно было полно боли. C# имеет функционал для подключения .dll файлов, написанных на С и С++, потому я вытащил нужное мне, скомпилировал в .dll файл. Проверил работоспособность подключения - на простых примерах - работает. А попытка передать данные в подгруженную вызывает ошибку.
C# орет, что я разбалансировал стек и вообще скоро настанет конец света. Потратив некоторое время на поиск того, что я сделал не так при подключении библиотеки (по примерам с сайта microsoft, в адрес которых я уже прохаживался), я обнаружил, что оказывается все прекрасно работает, если игнорировать негодующие вопли.
P.S. Да, я даже начал писать на С: добавил к нужной мне функции идентификатор DLL_EXPORT и для оптимизации изменил порог срабатывания алгоритма, установив константу Пи = 1,570796326794896619.
#диссер #csharp
В идеальном мире модельных изображений задача решается очень просто, строчек в 15 кода. На практике же все несколько сложнее. Некоторое время назад я нашел замечательно работающую реализацию алгоритма для развертки фазы... в питоне в библиотеке scikit-image.
Изначально я планировал в качестве временного решения сделать воспроизведение питон кода из c#, но потом вспомнил, что библиотека эта - опенсорсная. В их репозитории на гитхабе я откопал исходник функции развертки фазы - 700 строчек на чистом С.
Вот и состоялось мое знакомство с этим замечательны языком. Как водится, оно было полно боли. C# имеет функционал для подключения .dll файлов, написанных на С и С++, потому я вытащил нужное мне, скомпилировал в .dll файл. Проверил работоспособность подключения - на простых примерах - работает. А попытка передать данные в подгруженную вызывает ошибку.
C# орет, что я разбалансировал стек и вообще скоро настанет конец света. Потратив некоторое время на поиск того, что я сделал не так при подключении библиотеки (по примерам с сайта microsoft, в адрес которых я уже прохаживался), я обнаружил, что оказывается все прекрасно работает, если игнорировать негодующие вопли.
P.S. Да, я даже начал писать на С: добавил к нужной мне функции идентификатор DLL_EXPORT и для оптимизации изменил порог срабатывания алгоритма, установив константу Пи = 1,570796326794896619.
#диссер #csharp
По работе начал знакомство с No-SQL системой управления базами данных (СУБД) MongoDB.
Первая строка в руководстве по нему:
"MongoDB реализует новый подход к построению баз данных, где нет таблиц, схем, запросов SQL, внешних ключей и многих других вещей, которые присущи объектно-реляционным базам данных."
Первая мысль в ответ:
"а это вообще база данных?"
Первая строка в руководстве по нему:
"MongoDB реализует новый подход к построению баз данных, где нет таблиц, схем, запросов SQL, внешних ключей и многих других вещей, которые присущи объектно-реляционным базам данных."
Первая мысль в ответ:
"а это вообще база данных?"
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Красный)
Познакомился с занятной историей — как оптимизировались алгоритмы умножения чисел.
До ХХ века над вычислительной сложностью умножения математики особо не задумывались. Проблема стала реально актуальна только с появлением электронной вычислительной техники, где операция умножения изначально занимала намного больше времени, чем операция сложения.
Если рассматривать перемножение двух числе одинаковой длины, стандартный алгоритм умножения требует выполнения n^2 (n в квадрате) шагов, где n - число цифр в каждом из них.
В 1960 году советский аспирант Анатолий Карацуба, в рамках спора со своим учителем Андреем Колмогоровым за неделю сообразил новый алгоритм, в котором требуется уже n^1.58 шагов. Вроде бы мелочь, но при перемножении чисел длиной в 1000 цифр выигрыш в производительности уже составит около 18 раз.
Суть алгоритма в разбиении стандартного перемножения на комбинацию из сложений и вычитаний. От этой идеи отталкивались создатели огромного числа алгоритмов, без которых современная техника была бы невозможна, например — быстрого преобразования Фурье, краеугольного камня в обработке сигналов.
К настоящему моменту, в несколько этапов, вроде как достигнут предел производительности умножения: это n × log n шагов, что обладает научной новизной, но на практике пока что бесполезно: производители электроники подтянули скорость перемножения чисел на аппаратном уровне (в т.ч. используя подход Карацубы), и выгадывать лишние копейки производительности ценой перекройки сложившихся технологических процессов никому не интересно.
Eshu Marabo
До ХХ века над вычислительной сложностью умножения математики особо не задумывались. Проблема стала реально актуальна только с появлением электронной вычислительной техники, где операция умножения изначально занимала намного больше времени, чем операция сложения.
Если рассматривать перемножение двух числе одинаковой длины, стандартный алгоритм умножения требует выполнения n^2 (n в квадрате) шагов, где n - число цифр в каждом из них.
В 1960 году советский аспирант Анатолий Карацуба, в рамках спора со своим учителем Андреем Колмогоровым за неделю сообразил новый алгоритм, в котором требуется уже n^1.58 шагов. Вроде бы мелочь, но при перемножении чисел длиной в 1000 цифр выигрыш в производительности уже составит около 18 раз.
Суть алгоритма в разбиении стандартного перемножения на комбинацию из сложений и вычитаний. От этой идеи отталкивались создатели огромного числа алгоритмов, без которых современная техника была бы невозможна, например — быстрого преобразования Фурье, краеугольного камня в обработке сигналов.
К настоящему моменту, в несколько этапов, вроде как достигнут предел производительности умножения: это n × log n шагов, что обладает научной новизной, но на практике пока что бесполезно: производители электроники подтянули скорость перемножения чисел на аппаратном уровне (в т.ч. используя подход Карацубы), и выгадывать лишние копейки производительности ценой перекройки сложившихся технологических процессов никому не интересно.
Eshu Marabo