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
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Футуристъ)
Гвидо Ван Россум, создатель языка Python присоединился к команде разработчиков Microsoft.
До недавнего времени Гвидо Ван Россум контролировал развитие языка Python, будучи великодушным пожизненным диктатором. Интересно, во что выльется его сотрудничество с Microsoft.
Пока все выглядит как большой шаг корпорации добра к влиянию на один из самых популярных языков современности, на котором к тому же проходит за 90% разработок в области ИИ.
Eshu Marabo
До недавнего времени Гвидо Ван Россум контролировал развитие языка Python, будучи великодушным пожизненным диктатором. Интересно, во что выльется его сотрудничество с Microsoft.
Пока все выглядит как большой шаг корпорации добра к влиянию на один из самых популярных языков современности, на котором к тому же проходит за 90% разработок в области ИИ.
Eshu Marabo
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Красный)
Прочел статью на хабре об интересном внутреннем проекте для упрощения разработки, выложенном на гитхаб — KPHP.
Весь Вконтакте написан на теряющем популярность языке программирования PHP. Это достаточно простой язык, разработка на нем происходит относительно быстро, но приходится жертвовать скоростью работы и отчасти безопасностью.
Многие крупные компании постепенно отказываются от этого языка, переходя на более производительные и масштабируемые Go, Java, C# или C++.
Переход на новый язык для крупной компании довольно болезненное дело. По сути, нужно с нуля создавать команду разработчиков, а затем повторно пробежаться во всем граблям, вроде бы оставшимся в прошлом. Вконтакте пошли своим, довольно необычным путем. Вместо постепенного полного обновления команды, были добавлены новые специалисты, которые параллельно занялись ускорением работы используемого в компании PHP.
Результат их работы — программный комплекс, получивший название KPHP, превращающий код на несколько кастрированном PHP в код на C++, а затем компилирующий его. Таким образом достигается выигрыш в производительности в 5 - 7 раз (очень неплохо).
В прошлый раз проект выкладывался в 2014 году, но тогда он работал с сильно устаревшей версией языка, к тому же был заточен исключительно под специфику внутренних задач Вконтакте. В выложенной сейчас версии поддерживается более современная версия языка, а адаптацию проекта для общих нужд в идеале должно сделать само сообщество.
В целом, подобные "еретические" направления в языках программирования периодически возникают, и некоторые даже приживаются: так, Kotlin, язык разработанный российской компанией JetBrains на основе Java, вошел в общее употребление.
Да что там, великий и ужасный С++ родился примерно так, когда его создатель Бьёрн Страуструп в 80е годы сделал ряд усовершенствований языка С для своих нужд.
Eshu Marabo
Весь Вконтакте написан на теряющем популярность языке программирования PHP. Это достаточно простой язык, разработка на нем происходит относительно быстро, но приходится жертвовать скоростью работы и отчасти безопасностью.
Многие крупные компании постепенно отказываются от этого языка, переходя на более производительные и масштабируемые Go, Java, C# или C++.
Переход на новый язык для крупной компании довольно болезненное дело. По сути, нужно с нуля создавать команду разработчиков, а затем повторно пробежаться во всем граблям, вроде бы оставшимся в прошлом. Вконтакте пошли своим, довольно необычным путем. Вместо постепенного полного обновления команды, были добавлены новые специалисты, которые параллельно занялись ускорением работы используемого в компании PHP.
Результат их работы — программный комплекс, получивший название KPHP, превращающий код на несколько кастрированном PHP в код на C++, а затем компилирующий его. Таким образом достигается выигрыш в производительности в 5 - 7 раз (очень неплохо).
В прошлый раз проект выкладывался в 2014 году, но тогда он работал с сильно устаревшей версией языка, к тому же был заточен исключительно под специфику внутренних задач Вконтакте. В выложенной сейчас версии поддерживается более современная версия языка, а адаптацию проекта для общих нужд в идеале должно сделать само сообщество.
В целом, подобные "еретические" направления в языках программирования периодически возникают, и некоторые даже приживаются: так, Kotlin, язык разработанный российской компанией JetBrains на основе Java, вошел в общее употребление.
Да что там, великий и ужасный С++ родился примерно так, когда его создатель Бьёрн Страуструп в 80е годы сделал ряд усовершенствований языка С для своих нужд.
Eshu Marabo
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Красный)
Был на прошлой неделе в универе (технический ВУЗ), по стенам через каждые 5 метров развешаны санитайзеры, все в масках. А с 13 ноября всех студентов принудительно разогнали на дистанционку.
В целом, не вижу большой беды в массовом переходе на онлайн образование в технических ВУЗах по крайней мере, что там у гуманитариев мне не видно, да и не интересно.
На специальностях все лекции, да и большую часть семинаров можно без потери качества перенести.
Как будто эти лекции в живую кто-то, кроме пары ботанов человек слушает и осознает, да еще и пишет. А так хоть видеозаписи будут к сессии вместо сканов лекций. Кому было интересно — продолжат слушать, кому нет — все равно не начнут.
Что сильнее всего пострадает от дистанционки — лабораторные работы, где надо крутить приборы руками. Их в онлайн никак не перенести. Еще сильно пострадает такое направление выпускающих кафедр, как проекты, которые студенты пилят на кафедре в свободное от пар время, настоящие знания там и добываются. Притом скученность что во время лабораторных, что во время доп. занятий небольшая.
Так что полная удаленка выглядит очевидной ошибкой: лабы и доп. занятия, как важнейший элемент подготовки стоило бы оставить. Но, если учесть некоторые особенности нашего образования, реальный вред будет минимален.
Большую часть лучших выпускников всех технических специальностей пылесосит IT отрасль.
Именно те, кто ходил на кафедру и что-то делал просто потому что интересно, в итоге оказываются лучшими. Те из них, кого не прибирает IT, уходят по специальности в зарубежные корпорации. Работать по специальности в российской экономике остаются среднячки, которым во время учебы ничего, кроме сданной сессии, в принципе было не нужно.
Eshu Marabo
В целом, не вижу большой беды в массовом переходе на онлайн образование в технических ВУЗах по крайней мере, что там у гуманитариев мне не видно, да и не интересно.
На специальностях все лекции, да и большую часть семинаров можно без потери качества перенести.
Как будто эти лекции в живую кто-то, кроме пары ботанов человек слушает и осознает, да еще и пишет. А так хоть видеозаписи будут к сессии вместо сканов лекций. Кому было интересно — продолжат слушать, кому нет — все равно не начнут.
Что сильнее всего пострадает от дистанционки — лабораторные работы, где надо крутить приборы руками. Их в онлайн никак не перенести. Еще сильно пострадает такое направление выпускающих кафедр, как проекты, которые студенты пилят на кафедре в свободное от пар время, настоящие знания там и добываются. Притом скученность что во время лабораторных, что во время доп. занятий небольшая.
Так что полная удаленка выглядит очевидной ошибкой: лабы и доп. занятия, как важнейший элемент подготовки стоило бы оставить. Но, если учесть некоторые особенности нашего образования, реальный вред будет минимален.
Большую часть лучших выпускников всех технических специальностей пылесосит IT отрасль.
Именно те, кто ходил на кафедру и что-то делал просто потому что интересно, в итоге оказываются лучшими. Те из них, кого не прибирает IT, уходят по специальности в зарубежные корпорации. Работать по специальности в российской экономике остаются среднячки, которым во время учебы ничего, кроме сданной сессии, в принципе было не нужно.
Eshu Marabo
Наткнулся на баг при взаимодействии фронта и бэка. В поисках решения я полез в исходный код Asp.Net Core (грубо говоря это - майкрософтовское решение для веба на c#).
Когда-то я думал, что рабочий проект в примерно 30 тыс строк кода и в 42 проекта - огромный и запутанный. Я был молод и наивен: Asp.Net Core целиком содержится в 488 проектах, а метрики по коду (число строчек и т.д.) Visual Studio на не самом слабом компе (6-ти ядерный AMD Ryzen, 16 гб оперативки) считает уже минут 15.
Когда-то я думал, что рабочий проект в примерно 30 тыс строк кода и в 42 проекта - огромный и запутанный. Я был молод и наивен: Asp.Net Core целиком содержится в 488 проектах, а метрики по коду (число строчек и т.д.) Visual Studio на не самом слабом компе (6-ти ядерный AMD Ryzen, 16 гб оперативки) считает уже минут 15.
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Красный)
В информатике есть такой раздел: теория графов. Граф в общем виде - совокупность точек, соединённых вершинами.
Штука не менее абстрактная и, на первый взгляд, оторванная от реальности чем нейросети. Используют графы для формального описания любых взаимосвязей: логистика, описание знаний и взаимосвязей.
Нейросеть — граф. Ваш маршрут в Яндекс навигаторе — граф. Структура органов исполнительной власти России — тоже граф.
В теории графов даётся унылейшее описание общих подходов к работе с графами. Обычно приводимые задачи просты, а использование формальных подходов к их решению излишне.
Но стоит прикоснуться к графовой базе данных, содержащей что-то реально сложное, вся эта мура из заумных книжек резко обретает смысл, и кажется уже простым подходом.
Eshu Marabo
Штука не менее абстрактная и, на первый взгляд, оторванная от реальности чем нейросети. Используют графы для формального описания любых взаимосвязей: логистика, описание знаний и взаимосвязей.
Нейросеть — граф. Ваш маршрут в Яндекс навигаторе — граф. Структура органов исполнительной власти России — тоже граф.
В теории графов даётся унылейшее описание общих подходов к работе с графами. Обычно приводимые задачи просты, а использование формальных подходов к их решению излишне.
Но стоит прикоснуться к графовой базе данных, содержащей что-то реально сложное, вся эта мура из заумных книжек резко обретает смысл, и кажется уже простым подходом.
Eshu Marabo
Читаю статью про MongoDB на хабре:
По умолчанию MongoBD использует бинарную сортировку. Но вряд ли она будет кому-то полезна. Чувствительные к регистру, ударению, бинарные сортировки считались любопытными анахронизмами наряду с бусами, кафтанами и завивающимися усами еще в 80-х годах прошлого века. Теперь же их использование непростительно. В реальной жизни «мотоцикл» – это то же самое, что и «Мотоцикл». А «Британия» и «британия» – одно и то же место.
По умолчанию MongoBD использует бинарную сортировку. Но вряд ли она будет кому-то полезна. Чувствительные к регистру, ударению, бинарные сортировки считались любопытными анахронизмами наряду с бусами, кафтанами и завивающимися усами еще в 80-х годах прошлого века. Теперь же их использование непростительно. В реальной жизни «мотоцикл» – это то же самое, что и «Мотоцикл». А «Британия» и «британия» – одно и то же место.
Хабр
14 вещей, которые я хотел бы знать перед началом работы с MongoDB
Перевод статьи подготовлен в преддверии старта курса «Нереляционные базы данных». Основные моменты: Крайне важно разработать схему несмотря на то, что в Mo...
Как-то так сложилось, что на этой неделе несколько человек спрашивали про то, с чего начать работу с ботами в телеграме.
Кроме того, на работе на горизонте маячит большой проект, связанный с работой с естественным языком (NLP), потому периодически начинаются обсуждения этого огромного разделе датасатанизма.
И тут как раз в тему в понедельник в 20-00 начнется интесив от скиллбокса на тему "Чат бот в телеграме с элементами NLP", записываться вроде бы можно до самого начала.
Там расскажут и про основы ботостроения и про основы NLP. Это не реклама, я по весне смотрел его, очень понравилось. Смотреть рекомендую в записи, так как выступление очень классного препода будет прерывать рекламщица, предлагающая купить их курс с супе скидкой, чтобы мочь просто промотать флуд.
Кроме того, из группы в телеге, которую они создадут, можно будет тиснуть небольшой датасет вида вопрос-ответ для обучения бота. Составляется он силами всех участников чата, в одиночку на такую работу уйдет несколько дней.
Кроме того, на работе на горизонте маячит большой проект, связанный с работой с естественным языком (NLP), потому периодически начинаются обсуждения этого огромного разделе датасатанизма.
И тут как раз в тему в понедельник в 20-00 начнется интесив от скиллбокса на тему "Чат бот в телеграме с элементами NLP", записываться вроде бы можно до самого начала.
Там расскажут и про основы ботостроения и про основы NLP. Это не реклама, я по весне смотрел его, очень понравилось. Смотреть рекомендую в записи, так как выступление очень классного препода будет прерывать рекламщица, предлагающая купить их курс с супе скидкой, чтобы мочь просто промотать флуд.
Кроме того, из группы в телеге, которую они создадут, можно будет тиснуть небольшой датасет вида вопрос-ответ для обучения бота. Составляется он силами всех участников чата, в одиночку на такую работу уйдет несколько дней.
Больше года мне свербило, как бы в c# изобрести способ для прохода по всем полям класса в цикле для совершения однотипных проверок или манипуляций с классом.
Например, есть у меня здоровенный класс для хранения данных. Фронтэнд посылает мне их кусочками, 1-2 поля с содержанием, остальные - null. Как бы устроить постепенное обновление класса?
Самый напрашивающийся способ - обновлять каждое поле отдельно. Но полей - много, и их состав будет меняться с течением времени, потому этот вариант неудобен: каждый раз при изменении структуры класса надо не забыть доработать и реализацию обновления.
Нашел таки обращённый способ: в c# оказывается можно взять все поля определенного типа, после чего с их помощью работать с полями любого экземпляра этого класса.
Пример прикрепляю ниже.
#csharp
Например, есть у меня здоровенный класс для хранения данных. Фронтэнд посылает мне их кусочками, 1-2 поля с содержанием, остальные - null. Как бы устроить постепенное обновление класса?
Самый напрашивающийся способ - обновлять каждое поле отдельно. Но полей - много, и их состав будет меняться с течением времени, потому этот вариант неудобен: каждый раз при изменении структуры класса надо не забыть доработать и реализацию обновления.
Нашел таки обращённый способ: в c# оказывается можно взять все поля определенного типа, после чего с их помощью работать с полями любого экземпляра этого класса.
Пример прикрепляю ниже.
#csharp
Program.cs
1.2 KB
В примере я вливаю данные, не равные null, из экземпляра тестового класса update в экземпляра data.
Для воспроизведения нужен установленный на компьютере .Net и любая IDE под c#
Для воспроизведения нужен установленный на компьютере .Net и любая IDE под c#
Forwarded from Архив КС/РФ(Сиона-Футуриста) (Футуристъ)
Видел сравнения нынешнего дистанционного образования с заочным. Но насколько корректно это сравнение? Из названия делают неверный вывод, что преподаватель не видит студента, но можно залезть глубже и сравнить образовательные программы.
В учебных планах одно из основных различий — соотношение часов, выделенных на работу с преподавателем и самостоятельную работу. На очном образовании цифра примерно 50 на 50, для магистратуры — 40 на 60. Да, при составлении программы предполагается, что студент занимается самостоятельно примерно столько же, сколько сидит на лекциях.
В учебных планах заочников соотношение несколько другое: на самостоятельную работу отводится около 90% нагрузки. То есть формат занятий тут такой: выдается список литературы для самостоятельного изучения, после чего 3-4 раза можно приехать в институт задать преподавателю вопросы. А потом добро пожаловать на экзамен.
Похоже это на занятия, проводимые дистанционно в Zoom? С начиткой лекций в том же объеме, что и в обычное время и возможностью не отходя от кассы задать преподавателю вопрос? Единственное большое упущение в нынешней ситуации — отсутствие возможностей для проведения очных лабораторных работ, о чем писали ранее.
При этом, нагрузка на преподавателей выросла: нужно переходить на новые форматы контроля знаний, да и работа с домашними заданиями в электронном виде для многих в новинку.
В этом разрезе интересно звучат требования по пересчету суммы за обучение платникам. Надо бы посчитать: если вычесть из суммы затраты на эксплуатацию помещений и прибавить сверхурочный труд преподавателей, кто останется в плюсе?
Eshu Marabo
В учебных планах одно из основных различий — соотношение часов, выделенных на работу с преподавателем и самостоятельную работу. На очном образовании цифра примерно 50 на 50, для магистратуры — 40 на 60. Да, при составлении программы предполагается, что студент занимается самостоятельно примерно столько же, сколько сидит на лекциях.
В учебных планах заочников соотношение несколько другое: на самостоятельную работу отводится около 90% нагрузки. То есть формат занятий тут такой: выдается список литературы для самостоятельного изучения, после чего 3-4 раза можно приехать в институт задать преподавателю вопросы. А потом добро пожаловать на экзамен.
Похоже это на занятия, проводимые дистанционно в Zoom? С начиткой лекций в том же объеме, что и в обычное время и возможностью не отходя от кассы задать преподавателю вопрос? Единственное большое упущение в нынешней ситуации — отсутствие возможностей для проведения очных лабораторных работ, о чем писали ранее.
При этом, нагрузка на преподавателей выросла: нужно переходить на новые форматы контроля знаний, да и работа с домашними заданиями в электронном виде для многих в новинку.
В этом разрезе интересно звучат требования по пересчету суммы за обучение платникам. Надо бы посчитать: если вычесть из суммы затраты на эксплуатацию помещений и прибавить сверхурочный труд преподавателей, кто останется в плюсе?
Eshu Marabo
Telegram
Русский Футурист
Был на прошлой неделе в универе (технический ВУЗ), по стенам через каждые 5 метров развешаны санитайзеры, все в масках. А с 13 ноября всех студентов принудительно разогнали на дистанционку.
В целом, не вижу большой беды в массовом переходе на онлайн образование…
В целом, не вижу большой беды в массовом переходе на онлайн образование…
С ботокрещением тебя!
В http там изучать нечего особо (для работы с готовым API). Да и не нужно: под все популярные языки программирования есть свои реализации BotApi, даже под ассемблер блин.
В http там изучать нечего особо (для работы с готовым API). Да и не нужно: под все популярные языки программирования есть свои реализации BotApi, даже под ассемблер блин.
Telegram
СЛЕГ!
В итоге вчерашней эпопеи написал первого "настоящего" бота за все время. На скрине ответ на неочевидный вопрос, куда совать бот-токен полученный у отца всех ботов. Слава создателю telethon, что не надо изучать бот-api и использовать https. Всё происходит…
Forwarded from умный холодильник
Шпионский робот-пылесос
Безопасники снова взялись за умные устройства. Атака LidarPhone способна превратить робот-пылесос в шпионское устройство, подслушивающее разговоры.
С опаской смотрю на своего Роберта.
Атака возможна благодаря лидару, с помощью которого пылесос ориентируется в пространстве и отличает кошку от табуретки. Злоумышленник может использовать лидар и его лазер как лазерный микрофон. Такие микрофоны способны слушать информацию на расстоянии.
Кибершпане нужно получить контроль над лидаром. Это возможно, если вмешаться в процесс обновления прошивки или накормить пылесос зловредом.
Лазерные микрофоны отслеживают вибрации поверхности, которые потом можно декодировать и расшифровать беседу. Тут есть проблемки: пылесос мотает лидаром, что сокращает возможности прослушки. Но хакер может заставить пылесос сфокусироваться на одном объекте с помощью вредоноса.
В любом случае лидары пылесосов не так точны, как лазерные микрофоны. Но исследователи всё равно смогли получить хорошие результаты во время тестов на роботе-пылесосе Xiaomi Roborock.
Снова с опаской смотрю на своего Роберта.
Эксперты несколько раз попробовали снять сигнал с разных объектов и на разном расстоянии. Правда, эксперименты сосредоточились на восстановлении чисел, а не текста. Точность составила 90 %.
Безопасники утверждают, что LidarPhone можно использовать, чтобы выяснить пол тех, кто болтает возле пылесоса, и даже их политические взгляды по выпускам новостей, звучащих на фоне.
Безопасники снова взялись за умные устройства. Атака LidarPhone способна превратить робот-пылесос в шпионское устройство, подслушивающее разговоры.
С опаской смотрю на своего Роберта.
Атака возможна благодаря лидару, с помощью которого пылесос ориентируется в пространстве и отличает кошку от табуретки. Злоумышленник может использовать лидар и его лазер как лазерный микрофон. Такие микрофоны способны слушать информацию на расстоянии.
Кибершпане нужно получить контроль над лидаром. Это возможно, если вмешаться в процесс обновления прошивки или накормить пылесос зловредом.
Лазерные микрофоны отслеживают вибрации поверхности, которые потом можно декодировать и расшифровать беседу. Тут есть проблемки: пылесос мотает лидаром, что сокращает возможности прослушки. Но хакер может заставить пылесос сфокусироваться на одном объекте с помощью вредоноса.
В любом случае лидары пылесосов не так точны, как лазерные микрофоны. Но исследователи всё равно смогли получить хорошие результаты во время тестов на роботе-пылесосе Xiaomi Roborock.
Снова с опаской смотрю на своего Роберта.
Эксперты несколько раз попробовали снять сигнал с разных объектов и на разном расстоянии. Правда, эксперименты сосредоточились на восстановлении чисел, а не текста. Точность составила 90 %.
Безопасники утверждают, что LidarPhone можно использовать, чтобы выяснить пол тех, кто болтает возле пылесоса, и даже их политические взгляды по выпускам новостей, звучащих на фоне.
умный холодильник
Шпионский робот-пылесос Безопасники снова взялись за умные устройства. Атака LidarPhone способна превратить робот-пылесос в шпионское устройство, подслушивающее разговоры. С опаской смотрю на своего Роберта. Атака возможна благодаря лидару, с помощью…
Ссылка в репосте оказалась битой, вот рабочая ссылка на то же самое исследование.
Прочту статью, выскажусь по теме в Футуризм или сюда.
Прочту статью, выскажусь по теме в Футуризм или сюда.
Эшу быдлокодит
Ссылка в репосте оказалась битой, вот рабочая ссылка на то же самое исследование. Прочту статью, выскажусь по теме в Футуризм или сюда.
Вообще, лидар - это дальномер. До чего же дошла техника, что по показаниям дальномера из робота-пылесоса можно считать звук! Ведь физический принцип регистрации звука в описанном эксперименте таков: фиксируется, насколько вы своими голосами деформируете стены и другие твердые приборы у вас дома.
Для оптики это более-менее фиксируемые величины: порядка сотен нанометров, но звук забивается шумами и вибрациями большого города: то же метро чувствительно (для оптики) сотрясает землю в радиусе около километра, если не больше.
Следующей проблемой стало то, что лидар в роботе-пылесосе хреновенький, при этом, если правильно его хакнуть, частота регистрируемых им данных составит 1.8 кГц, минимальная необходимая для нормальной записи голоса частота - 5 кГц.
В итоге ученые, используя всю мощь современной цифровой обработки сигналов, сумели подавить шумы окружающей среды, но проблема низкого качества звука никуда не делась. Для её решения использовались нейросети: их обучили восстанавливать звук, фиксированный на микрофон с недостаточной частотой измерения. В итоге результатом всех этих манипуляций стало достижение 90%й точности фиксации голоса человека, что очень даже неплохо.
Смогут ли злоумышленники пройти этот путь, чтобы шпионить за вами - думайте сами.
Для оптики это более-менее фиксируемые величины: порядка сотен нанометров, но звук забивается шумами и вибрациями большого города: то же метро чувствительно (для оптики) сотрясает землю в радиусе около километра, если не больше.
Следующей проблемой стало то, что лидар в роботе-пылесосе хреновенький, при этом, если правильно его хакнуть, частота регистрируемых им данных составит 1.8 кГц, минимальная необходимая для нормальной записи голоса частота - 5 кГц.
В итоге ученые, используя всю мощь современной цифровой обработки сигналов, сумели подавить шумы окружающей среды, но проблема низкого качества звука никуда не делась. Для её решения использовались нейросети: их обучили восстанавливать звук, фиксированный на микрофон с недостаточной частотой измерения. В итоге результатом всех этих манипуляций стало достижение 90%й точности фиксации голоса человека, что очень даже неплохо.
Смогут ли злоумышленники пройти этот путь, чтобы шпионить за вами - думайте сами.
В общем-то у меня дипломная работа была как раз про запись звука с помощью лазерного излучения, правда у нас был чуть другой сетап установки: вместо лазера, направленного на твердую поверхность, был лазерный свет идущий по оптическому волокну.
Суть эксперимента такая: лазерный свет разделяется между двумя волокнами: опорным, где он не петерпевает никаких воздействий и измерительным, воздействие на которое мы пытаемся фиксировать. Воздействие - звуковые колебания - немного растягивают и сжимают волокно, потому свет в нем обретает небольшую дополнительную задержку.
После этого с помощью небольшой магии (волоконно-оптический разветвитель 3х3, суть магии описывается 10 страницами решения системы дифференциальных уравнений) и коротенького скрипта в SciLab можно фиксировать звук. В общем получается классический интерферометр, очень похожий по сути и математическому аппарату на тот, что у меня в диссертации используется, только вместо здоровенного микроскопа в 50 кг на столе валяются мотки желтенького оптического волокна.
Мы пытались регистрировать воздействия, передающиеся через воздух, но потерпели фиаско, видимо для нормального результата надо было использовать концертные колонки. Потом попробовали подать звук по модели твердой среды (пьезокерамический элемент), и даже получилось. Без всяких математических шаманств качество звука получилось вполне достойное, аудиофайл записи, пропущенной через пьезокерамику, волокно и записанной прикладываю ниже.
Суть эксперимента такая: лазерный свет разделяется между двумя волокнами: опорным, где он не петерпевает никаких воздействий и измерительным, воздействие на которое мы пытаемся фиксировать. Воздействие - звуковые колебания - немного растягивают и сжимают волокно, потому свет в нем обретает небольшую дополнительную задержку.
После этого с помощью небольшой магии (волоконно-оптический разветвитель 3х3, суть магии описывается 10 страницами решения системы дифференциальных уравнений) и коротенького скрипта в SciLab можно фиксировать звук. В общем получается классический интерферометр, очень похожий по сути и математическому аппарату на тот, что у меня в диссертации используется, только вместо здоровенного микроскопа в 50 кг на столе валяются мотки желтенького оптического волокна.
Мы пытались регистрировать воздействия, передающиеся через воздух, но потерпели фиаско, видимо для нормального результата надо было использовать концертные колонки. Потом попробовали подать звук по модели твердой среды (пьезокерамический элемент), и даже получилось. Без всяких математических шаманств качество звука получилось вполне достойное, аудиофайл записи, пропущенной через пьезокерамику, волокно и записанной прикладываю ниже.