Pull to refresh
4
0
Панов Павел @paulll

Программист

Send message

Теория относительности в картинках

Reading time6 min
Views366K
В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
Под катом много картинок (и ни одной формулы).
Читать дальше →
Total votes 272: ↑266 and ↓6+260
Comments345

Как создать эвристический алгоритм онлайн-мастеринга и получить предупреждение от RIAA

Level of difficultyMedium
Reading time24 min
Views15K

Добрый день, меня зовут Сергей. В своей статье я бы хотел осветить тему аудио мастеринга, а именно: автоматизированного онлайн-мастеринга музыки.

Я расскажу о своём пути от продюсера психоделического транса до мейнтейнера самой популярной open source библиотеки автоматизированного референсного мастеринга на Python, получившей предупреждение от американской ассоциации звукозаписывающих компаний RIAA.

Читать далее
Total votes 143: ↑142 and ↓1+141
Comments32

Дизерпанк — статья о дизеринге изображений, которую мне хотелось бы прочитать

Reading time18 min
Views26K

Мне всегда нравилась визуальная эстетика дизеринга (dithering, псевдотонирование, псевдосмешение цветов), но я не знал о том, как он применяется. Поэтому я провёл кое-какие изыскания. Эта статья может содержать отголоски ностальгии, но в ней не будет никаких следов Лены.

Читать далее
Total votes 147: ↑147 and ↓0+147
Comments26

Переносим философию Unix в 21 век

Reading time5 min
Views23K

Один из основных принципов философии Unix заключается в создании таких программ, каждая из которых эффективно выполняет всего одну задачу, и связывании этих программ в конвейер. Подобный подход отлично зарекомендовал себя за десятилетия существования системы.

В статье же речь пойдет о том, чего ощутимо не хватает современным системам Linux с точки зрения этой философии, а также будет предложено решение связанных с этим проблем.
Читать дальше →
Total votes 129: ↑127 and ↓2+125
Comments88

Необычный дуалбут: ноутбук с «двойным дном»

Reading time15 min
Views80K

Не так давно на Habr Q&A я наткнулся на интересный вопрос — как сделать, чтобы два жестких диска не видели друг друга? Чтобы вирус, попав на одну систему, никоим образом не мог заразить другую. В ответах предлагали достаточно стандартные способы — использовать полнодисковое шифрование, отключить диск в диспетчере устройств и даже поставить переключатель на питание. Но что если взглянуть на задачу совершенно с другого угла и сделать всё средствами самого HDD? Да-да, сегодня мы снова погружаемся в пучины модификации прошивок и реверс-инжиниринга!
Узнать подробности
Total votes 361: ↑357 and ↓4+353
Comments122

Я единственный из 1400, или самый крутой рекрутинг, что я проходил

Reading time9 min
Views125K

Я уже лет 10 пишу код на питоне, и последние 2.5 года стабильно работал на американскую компанию. Наверно, многим знакома история, когда ты кодишь-кодишь, вроде всё неплохо, и внезапно ты - самый знающий и опытный в команде и добро пожаловать в тим лиды. Астрологи объявили неделю менеджмента, количество кода снизилось на 100%.

Попробовав себя менеджером, я понял, что я дебил (как менеджер), и начал искать другую работу. Ребятушки, я офигел от того, насколько разный подход у компаний к найму. И мне кажется, я нашёл кое-что интересное, а если точнее - самый логичный и организованный процесс найма, что я видел.

Да что же там?
Total votes 167: ↑121 and ↓46+75
Comments316

Как мы верифицированный полетный контроллер для квадрокоптера написали. На Ada

Reading time10 min
Views20K

Однажды на новогодних каникулах, лениво листая интернет, бракоделы в нашем* R&D офисе заметили видео с испытаний прототипа роботакси. Комментатор отзывался восторженным тоном – революция, как-никак. Но тренированное ухо расслышало в шуме с испытательной площадки еще кое-что. Контроллер скорости (штука для управления тягой винтов) сыграл мелодию при старте, как это любят делать пилоты дронов, которые часто используют полётный контроллер Betaflight. Неужели там бета-флайт? Ну, или какая-то из ее немногих разновидностей.

Перед глазами побежали флешбеки, где-то из глубин подсознания всплыла забытая уже информация о прошивках для Тойоты на миллионы тысяч строк Си и 2 тысячи глобальных переменных (Toyota: 81564 ошибки в коде).

После просмотра исходного кода Betaflight на гитхабе стало еще страшнее, и чем дальше, тем хуже. Это – управляющая программа для тяжелого устройства с острыми винтами, которое летает высоко, быстро. Становится страшно: игрушки это одно, но я бы не хотел летать, на таком такси. Но ведь можно иначе? Можно, решили мы! И решили это доказать. На Avito был куплен акробатический FPV-“квадрик” на базе STM32F405, для отладки – Discovery-платы для этого же контроллера, а дальше все как в тумане..

Читать далее
Total votes 92: ↑90 and ↓2+88
Comments58

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time9 min
Views64K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

Мы попытались учесть все эти пункты и представить комьюнити свое открытое некоммерческое решение, удовлетворяющее этим критериям. По причине его публичности мы не заостряем внимание на архитектуре и не фокусируемся на каких-то cherry picked примерах — вы можете оценить все сами, пройдя по ссылке.

Total votes 205: ↑205 and ↓0+205
Comments229

[Личный опыт] Аргентина — лучшая страна в мире. Почему сюда нужно ехать

Reading time9 min
Views74K


Кирилл Маковеев, российский журналист и (теперь) предприниматель, который 6 лет живет в Аргентине, поговорил с нами об особенностях этой страны, информация о которой в Сети устаревает каждые несколько месяцев. Снег раз в 50 лет, бесплатная медицина и вузы для туристов, идеология перонизма, уникальный испанский и причины вечной гиперинфляции.


Получится разговор о плюсах и… плюсах жизни в этой стране. Минусов на этот раз почти не будет!

Читать дальше →
Total votes 82: ↑73 and ↓9+64
Comments132

Основы IPv6

Reading time11 min
Views126K

Предисловие


Пост является кратким конспектом Wiki, TechNet'а, FreeBSD'шного handbook'a, Serverfault'a, множества RFC и документов IANA, а также курсов от Специалист.Ру для сотрудников Яндекса.

Пост можно рассматривать как копилку ссылок по актуальной на 2012 год спецификации IPv6. Однако он никак не описывает возможные способы установки IPv6 соединения с интернетом и не привязан к какой-либо определённой ОС.
Учтите, что прочтение данной хабрастатьи займёт у вас не более получаса, однако крайне рекомендуется ознакомиться со всеми приведёнными в статье ссылками… Последнее может занять несколько недель.
Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments56

Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля — TL, MT

Reading time60 min
Views69K

В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно простой (и весьма отличающийся от MTProto) Bot API на базе JSON, а обычно просто принимают на веру все те дифирамбы и пиар, что крутятся вокруг мессенджера. Почти полтора года назад мой коллега по НПО "Эшелон" Василий (к сожалению, его учетку на Хабре стёрли вместе с черновиком) начал писать свой собственный клиент Telegram с нуля на Perl, позже присоединился и автор этих строк. Почему на Perl, немедленно спросят некоторые? Потому что на других языках такие проекты уже есть На самом деле, суть не в этом, мог быть любой другой язык, где еще нет готовой библиотеки, и соответственно автор должен пройти весь путь с нуля. Тем более, криптография дело такое — доверяй, но проверяй. С продуктом, нацеленным на безопасность, вы не можете просто взять и положиться на готовую библиотеку от производителя, слепо ему поверив (впрочем, это тема более для второй части). На данный момент библиотека вполне работает на "среднем" уровне (позволяет делать любые API-запросы).


Тем не менее, в данной серии постов будет не так много криптографии и математики. Зато будет много других технических подробностей и архитектурных костылей (пригодится и тем, кто не будет писать с нуля, а будет пользоваться библиотекой на любом языке). Итак, главной целью было — попытаться реализовать клиент с нуля по официальной документации. То есть, предположим, что исходный код официальных клиентов закрыт (опять же во второй части подробнее раскроем тему того, что это и правда бывает так), но, как в старые времена, например, есть стандарт по типу RFC — возможно ли написать клиент по одной лишь спецификации, "не подглядывая" в исходники, хоть официальных (Telegram Desktop, мобильных), хоть неофициальных Telethon?

Ответ на этот вопрос неоднозначен
Total votes 187: ↑182 and ↓5+177
Comments240

Подвал смерти

Reading time16 min
Views29K
Общим лейтмотивом многих статей на Хабре – является поиск ошибок — неточностей, натяжек, а порой и откровенной глупости в книгах и фильмах. Не являются исключением и мои статьи, в которых я, весь в белом, смеюсь над недотепами авторами.

Поскольку я, ко всему прочему, являюсь литератором, будет честно предоставить право ответного удара: в смысле — дать возможность посмеяться над моим творчеством. Исходя из этого, я решил опубликовать вставную новеллу из цикла «Я у мамы инженер» — благо, по тематике она тесно примыкает к хабротемам.

Пара пояснений: Герой романа – и автор – разные люди. У нас разные позиции по многим вопросам. Я не всегда согласен с товарищем Главным Героем и спорю с ним, через реплики других персонажей. И — упомянутые в романе лица, чьи имена совпадают с реально существующими людьми – не более чем их отражения в другой реальности. Как Цандер в «Прыжке в Ничто» Беляева, если Вы понимаете о чем я.

Итак:

Затухающий костёр освещал только крохотный пятачок пляжа. Сидящий напротив огня кот, как и я, смотрел на огонь, сияя плошками отражающих свет глаз. Было в этой сцене что-то по-домашнему уютное.

Я налил себе кофе и, сев на складной стульчик, похлопал по колену, приглашая Беляша присоединиться. Его пучешарое величество соизволило принять приглашение. Почти невидимая в темноте Никсель полулежала на туристической пенке, но не спала. Конечно, уснешь тут.

— Настало время удивительных историй? — спросил я. — Раз всё равно не спим.
Никсель промолчала. Беляш вертелся у меня на коленях, устраиваясь поудобней.

— Ну, раз возражений нет, начну: неподалеку от моего дома работает офисный центр, у которого под автостоянкой расположен подвал смерти.

— Это как? — тихонько спросила девушка.

— Подвал, в который люди заходят и пропадают. Серьезно. Там у них за 30 лет российской независимости человек тридцать пропало. По человеку в год, такскзать. Расскажу лучше по порядку.
Читать дальше →
Total votes 96: ↑90 and ↓6+84
Comments149

Текстовый анализатор: распознавание авторства (начало)

Reading time10 min
Views9.9K

Добрый день, уважаемые хабражители. Я давно хотел опубликовать под GPL-лицензией свой «Текстовый анализатор» ([1]). Наконец, дошли руки. «Текстовый анализатор» — это исследовательский проект, который я разрабатывал три года на 3, 4 и 5-м курсах университета. Главная цель была: создать алгоритм распознавания авторства текста, используя нейросети Хэмминга или Хопфилда. Идея была такова: эти нейросистемы распознают образы, а к задаче распознавания образов можно свести задачу выявления авторства. Для этого необходимо по каждому тексту собрать статистику, и чем больше разных критериев, тем лучше: частотный анализ букв, анализ длин слов/предложений/абзацев, частотный анализ двухбуквенных сочетаний, и так далее. Нейросистема могла бы выявить, характеристики каких текстов наиболее сходны. Работы было — вал. Много кода, хитрые алгоритмы, ООП, паттерны проектирования. Помимо основной задачи я так же реализовал ещё одно ноу-хау: «Карту благозвучия». По задумке, такая карта должна показывать все плохо и хорошо звучащие места, выделяя их цветом. Критерии оценки благозвучия должны задаваться каким-то универсальным образом, например, правилами. Для этой цели я даже разработал специальный графический язык, RRL (Resounding Rules Language). Работы было — вал. Много кода, хитрые алгоритмы, ООП, паттерны проектирования. В итоге получилась большая и сложная программа, правда, с неприглядным интерфейсом. С этим проектом я даже выиграл в конкурсе дипломных работ, получил 1 и 3 места на университетских конференциях, а так же 2 место на международной научно-практической.

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

(У статьи есть продолжение и окончание.)

Структура статьи:
  1. Анализ авторства
  2. Знакомство с кодом
  3. Внутренности TAuthoringAnalyser и хранение текстов
  4. Разбиение на уровни конечным автоматом на стратегиях
  5. Сбор частотных характеристик
  6. Нейросеть Хэмминга и анализ авторства

Дополнительные материалы:
  • Исходники проекта «Текстовый анализатор» (Borland C++ Builder 6.0)
  • Тестирование нейросистемы Хэмминга в Excel'е ([xls])
  • Таблица переходов для КА, разбивающего текст на уровни ([xls])
  • Расчет благозвучия отдельных букв ([xls])
  • Презентация дипломного проекта «Текстовый анализатор» ([ppt])
  • Презентация проекта «Карта благозвучия» ([ppt])
  • Все эти материалы в сжатом виде ([zip], [7z], [rar])

Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments5

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

Reading time7 min
Views45K

К1801ВМ1А


В это трудно поверить, но иногда ошибки в процессорах по сути живут дольше, чем сами процессоры. Недавно мне довелось в этом убедиться на примере 16-разрядного микропроцессора 1801ВМ1А, на основе которого в свое время в СССР было создано семейство бытовых компьютеров БК-0010/11М. Об этом семействе на Хабре неоднократно писали.

Читать дальше →
Total votes 219: ↑218 and ↓1+217
Comments79

Обнаружение сарказма с помощью сверточных нейросетей

Reading time3 min
Views11K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Detecting Sarcasm with Deep Convolutional Neural Networks" автора Elvis Saravia.


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

В этой статье показано, как обнаружить сарказм и также приведена ссылка на нейросетевой детектор сарказма.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments9

Как «пробить» человека в Интернет: используем операторы Google и логику

Reading time9 min
Views928K

В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


В комментариях к первой нашей статье, читатели просили побольше практических примеров и скриншотов, поэтому в этой статье практики и графики будем много. Для демонстрации возможностей «продвинутого» поиска Google в качестве целей были выбраны личные аккаунты автора. Сделано это, чтобы никого не обидеть излишним интересом к его частной жизни. Хочу сразу предупредить, что никогда не задавался целью скрыть свое присутствие в интернете, поэтому описанные методы подойдут для сбора данных об обычных людях, и могут быть не очень эффективны для деанонимизации фэйковых аккаунтов, созданных для разовых акций. Интересующимся читателям предлагаю повторить приведенные примеры запросов в отношении своих аккаунтов и оценить насколько легко собирать информацию по ним.


Читать дальше →
Total votes 122: ↑105 and ↓17+88
Comments108

Project Naptha — выделяй, копируй и переводи тексты с любых картинок

Reading time2 min
Views37K
На hh/gt не нашел ни единого упоминания о этом замечательном расширении для Google Chrome. Хочу поделиться им с сообществом, потому как в последнее время оно помогает мне каждодневно экономить минут 10 — уж очень много скриншотов из социальных сетей на разных языках которые с помощью этого плагина переводятся в два клика.

Встречайте — Project Naptha (Chrome webstore).

image

Список возможностей:
  • копировать текст с картинки
  • выделить весь текст
  • гуглить выделенный текст
  • переводить выделенное (бета)
  • проговорить (TTS) выделенное

Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments31

Pony — убийца...?

Reading time5 min
Views31K
Всем известны такие прогрессивные новички в программировании как — «Go, Rust, Nim, Crystal» и все они очень круты в своих определенных областях.

К примеру:

  1. Go был рожден как супер простой и промышленный язык для быстрого решения поставленных задач с идеями, которые всем прекрасны известны, но некоторые из них прибиты к другим языкам гвоздями (На 5мм).
  2. Второй наш оппонент — это Rust, победитель по жизни, но из-за своей сложной жизни в развитии он стал для сообщества, как будущая и модная замена C++. Для меня его судьба пока не понятна, так как с зелеными потоками и IO под них там пока туго, то я его ставлю на место в ряд с C для микроконтроллеров, драйверов и операционных систем.
  3. Crystal… Прямо и четко говорю, что это супер производительный клон Ruby. Больше сказать нечего, весь он пропитан его духом.
  4. Nim (Он же Нимушка или Нимрод) и его похожесть на скриптовые языки создают ему особую атмосферу, однако внутри он достаточно сложный организм и для меня сия сущность, как Haxe с такими же ощущениями при программировании на нем.

А Pony — это моя любимая и маленькая поняшка. С виду и по названию языка можно лихо пройти мимо… В общем, приглашаю вас под капот статьи.
Читать дальше →
Total votes 48: ↑36 and ↓12+24
Comments24

Алгоритм извлечения информации в ABBYY Compreno. Часть 1

Reading time7 min
Views30K
Привет, Хабр!

Меня зовут Илья Булгаков, я программист отдела извлечения информации в ABBYY. В серии из двух постов я расскажу вам наш главный секрет – как работает технология Извлечения Информации в ABBYY Compreno.

Ранее мой коллега Даня Скоринкин DSkorinkin успел рассказать про взгляд на систему со стороны онтоинженера, затронув следующие темы:

В этот раз мы опустимся глубже в недра технологии ABBYY Compreno, поговорим про архитектуру системы в целом, основные принципы ее работы и алгоритм извлечения информации!



Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments14

Глобалы — мечи-кладенцы для хранения данных. Разреженные массивы. Часть 3

Reading time6 min
Views13K
В прошлых частях (1, 2) мы говорили о глобалах как о деревьях, в этой мы рассмотрим глобалы как разреженные массивы.

Разреженный массив — это разновидность массива, в котором большинство значений принимает одинаковое значение.

На практике часто встречаются настолько огромные разреженные массивы, что нет никакого смысла занимать память одинаковыми элементами. Поэтому есть смысл разреженные массивы реализовывать так, чтобы память не расходовалась на хранение одинаковых значений.
В некоторых языках программирования разреженные массивы входят в сам язык, например в J, MATLAB. В других языках программирования есть специальные библиотеки, которые позволяют реализовать их. Для С++ — Eigen и др.

Глобалы — хорошие кандидаты для реализации разреженных массивов, потому что:
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments17
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity