Как стать автором
Обновить
57
0
Кремнев Валерий @LonelyDeveloper97

Математика, Нейробиология, Программирование

Отправить сообщение

Новые возможности в WinAPI на Windows 11

Время на прочтение 3 мин
Количество просмотров 16K

С выходом новой операционной системы, у Microsoft изменились приоритеты в дизайне - теперь у интерфейса появились анимации, да и в целом он стал менее острым. В данной статье я поделюсь некоторыми нововведениями, с которыми столкнулся в процессе работы с WinAPI.

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 45

Симметричные НЧ-ВЧ фильтры

Время на прочтение 12 мин
Количество просмотров 22K
В задачах обработки сигналов часто возникает необходимость фильтрации сигналов, когда сигнал разбивается на узкополосные диапазоны. В бытовом плане мы с этим сталкиваемся при воспроизведении музыки через акустические системы, в которых каждый громкоговоритель (динамик) воспроизводит свою полосу частот, которых обычно три — низкие (НЧ), средние (СЧ) и высокие (ВЧ); для воспроизведения сверхнизких частот иногда выделяют отдельную акустическую систему под названием «сабвуфер». Конкретные границы частот зависят от реализации и ориентировочно находятся на границах 100 Гц, 1 кГц и 5 кГц. Для того, чтобы не было резких скачков громкости между динамиками, используют частичное перекрытие — когда амплитуда воспроизводимой полосы частот плавно спадает на одном, одновременно нарастая на другом.

Наиболее популярными фильтрами для такого разбиения являются фильтры Линквитца-Рейли 4-го порядка, представляющих из себя два последовательно соединённых фильтра Баттерворта, изображение АЧХ которых многим хорошо знакомо:

Читать дальше →
Всего голосов 74: ↑74 и ↓0 +74
Комментарии 21

Пять лучших киберпанк-аниме

Время на прочтение 7 мин
Количество просмотров 80K

Очень скоро киберпанк как жанр отметит своё сорокалетие. Почему он появился именно в США начала 80-х, и почему при этом с первых дней стал настолько «японским» – мы уже говорили . Как он породил целую группу жанров, и сам понемногу из актуальных размышлений о будущем стал формой ретрофутуризма – тоже.

И всё же в обоих этих статьях огромный массив японского киберпанка лишь упоминался. А ведь он во многих отношениях даже больше и значимее, чем на родине жанра, в США. Киберпанк не просто так получил массу японских черт ещё у американских авторов. Сами японцы уже в 80-е буквально влюбились в новый жанр, и принялись в нём активно работать. Однако если киберпанк в США – это преимущественно фильмы и книги, то в стране Восходящего Солнца его основными воплощениями стали манга и аниме, комиксы и мультипликация с японской спецификой.


За сорок прошедших с начала 80-х лет японцы сделали десятки, если не сотни, аниме-произведений в жанре киберпанка. И некоторые из них прочно вошли в золотой фонд жанра. Списков топ-10 и так далее в сети хватает – но многие из них крайне поверхностны, кратки и написаны «для галочки» без особого вникания в предмет.
Так что почему бы не попробовать сделать свой вариант, копнув чуть глубже?
Всего голосов 90: ↑83 и ↓7 +76
Комментарии 126

Как развитие алгоритмов сжатия остановилось 20 лет назад, или о новом конкурсе на 200 тысяч евро

Время на прочтение 18 мин
Количество просмотров 70K

В октябре прошлого года я опубликовал статью «О талантах, деньгах и алгоритмах сжатия данных», где с юмором описал, как «изобретают» новые алгоритмы сжатия люди, не имеющие достаточно навыков для реализации своих идей. А заодно рассказал про существующие конкурсы по новым алгоритмам, в том числе двигавшийся тогда к завершению конкурс алгоритмов сжатия с призовым фондом 50 тысяч евро.

Пост набрал 206 «плюсов», вышел на 2 место топа недели и вызвал оживленную дискуссию, в которой мне больше всего понравился комментарий: «Коммерческого интереса эффективность по сжатию алгоритмов сжатия без потерь сегодня не представляет, в силу отсутствия принципиально более эффективных алгоритмов. Деньги сегодня — в сжатии аудио-видео. И там и алгоритмы другие. Тема сжатия без потерь удобна именно лёгкостью верификации алгоритма, и не слегка устарела. Лет на 20.» 

Поскольку я сам уже 20 лет в области сжатия видео, с ее бурным развитием мне спорить сложно. А вот что сжатие без потерь развиваться перестало… Хотя логика тут понятна каждому. Я до сих пор пользуюсь ZIP, все мои друзья пользуются ZIP с 1989 года — значит, ничего нового не появляется. Так ведь? Похоже рассуждают сторонники плоской земли. ))) Я не видел, знакомые не видели, и даже некоторые авторитеты утверждают, значит, это так! 

О том, как Intel просили меня не прекращать читать курс по сжатию, ибо людей нет новые алгоритмы делать, я в прошлый раз писал. Но тут и Huawei в ту же дуду дует! Вместо того, чтобы раздать призы и должности победителям, а затем успокоиться, поскольку развитие давно встало, эти эксцентричные люди посчитали конкурс крайне успешным и запустили новый с призовым фондом 200 тысяч EUR.

Развивались ли алгоритмы сжатия без потерь в последние 20 лет? Чем закончился прошлый конкурс и на сколько опередили baseline? Сколько денег получили русские таланты, а сколько зарубежные? И есть ли вообще жизнь на Марсе в сжатии без потерь? 

Кому интересно — добро пожаловать под кат! 
Читать дальше →
Всего голосов 259: ↑258 и ↓1 +257
Комментарии 134

Список ноотропов, покупка которых не окажется пустой тратой денег

Время на прочтение 5 мин
Количество просмотров 295K

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

Читать далее
Всего голосов 121: ↑85 и ↓36 +49
Комментарии 238

Где и как обычно ошибаются стоматологи (частично применимо и к другим врачам)

Время на прочтение 13 мин
Количество просмотров 25K
image
В корневом канале кто-то оставил мне кусок инструмента.

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

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

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

В результате диагностики рождается план лечения. Пациент в случае дорогих вмешательств врачу не доверяет, поэтому идёт в другую клинику. Через день образуется ситуация «три врача и шесть планов лечения», что ещё больше путает.
Читать дальше →
Всего голосов 86: ↑78 и ↓8 +70
Комментарии 69

Почему единственный вид деревьев не победил все остальные?

Время на прочтение 26 мин
Количество просмотров 52K

«Лес красив, дремуч, высок», — писал Роберт Фрост. Этот ямб вспоминается мне каждый раз, когда я начинаю путь по расположенной недалеко от моего дома лесной тропе. Тропу назвали в честь Фроста, который провёл несколько лет в этой части Массачусетса, обучая мальчиков в блейзерах с медными пуговицами из Амхерстского колледжа. Прогуливался ли поэт среди именно этих деревьев? Такое возможно, хотя тогда, век назад, они были ещё молодняком. Как бы то ни было, если он и останавливался возле этого леса, то ненадолго, ведь «ждут меня сегодня в срок, а до ночлега путь далек».

Когда я шёл тропой Фроста, она привела меня к непримечательной лужайке в лесистой местности Северо-запада, зажатой между шоссе, домами и городской свалкой. Она не была ни дремучей, ни высокой, и ощущение близости людей никогда не пропадало. Это не был девственный лес, однако он был достаточно лесистым не только для того, чтобы вспомнить рифмы популярных поэтов, но и задаться сложными вопросами о деревьях и лесах — вопросами, которые волновали меня уже многие годы. Почему деревья такие высокие? Почему они не становятся выше? Почему их листья имеют такое разнообразие форм и размеров? Почему деревья являются деревьями (в том смысле, который используется в теории графов), а не имеют какую-то другую структуру? И был ещё один вопрос, который бы я хотел обсудить сегодня:

Сегодняшний вопрос: почему в смешанном лесу виды деревьев остаются смешанными?
Всего голосов 127: ↑125 и ↓2 +123
Комментарии 120

Аутичный хакер: история Гэри Маккиннона

Время на прочтение 10 мин
Количество просмотров 23K

Всего несколько месяцев прошло после разрушительной террористической атаки на башни Всемирного торгового центра. Спецслужбы в режиме максимальной боевой готовности. И тут среди бела дня на компьютеры армии США приходит странное сообщение: «Ваша система безопасности — полный шлак. Меня зовут Соло. И я продолжу вмешательства [в систему безопасности] на самых высоких уровнях».

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 14

Коды избыточности: простыми словами о том, как надёжно и дёшево хранить данные

Время на прочтение 11 мин
Количество просмотров 31K


Так выглядит избыточность


Коды избыточности* широко применяются в компьютерных системах для увеличения надёжности хранения данных. В Яндексе их используют в очень многих проектах. Например, применение кодов избыточности вместо репликации в нашем внутреннем объектном хранилище экономит миллионы без снижения надёжности. Но несмотря на широкое распространение, понятное описание того, как работают коды избыточности, встречается очень редко. Желающие разобраться сталкиваются примерно со следующим (из Википедии):



Меня зовут Вадим, в Яндексе я занимаюсь разработкой внутреннего объектного хранилища MDS. В этой статье я простыми словами опишу теоретические основы кодов избыточности (кодов Рида — Соломона и LRC). Расскажу, как это работает, без сложной математики и редких терминов. В конце приведу примеры использования кодов избыточности в Яндексе.


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


* Под термином «коды избыточности» в статье подразумевается инженерный термин «erasure codes».

Читать дальше →
Всего голосов 62: ↑58 и ↓4 +54
Комментарии 32

Ozon go school: Как не нужно проводить отбор

Время на прочтение 9 мин
Количество просмотров 41K

Go School


Как вы знаете, в середине мая Ozon объявил о запуске школы программирования на языке Go. Обещали следующее:

  • бесплатное обучение
  • возможность получить знания по реальной разработке на Go от Ozon
  • возможность получить работу в Ozon

Чтобы попасть в школу, нужно было:

  • иметь опыт промышленного программирования
  • пройти тестовые задания по программированию на платформе Яндекс.Контест
  • пройти skype-собеседования

Уже в ходе отбора выяснилось, что онлайн школа будет только до момента, пока эпидемиологическая ситуация не наладится. Впрочем, иногородним жителям все-таки была обещана возможность проходить обучение по интернету.

Тогда же было озвучено число студентов, которое готовы принять в Школу — около 40 человек.

Так понемногу условия поступления прирастали новыми пунктами, среди добавленных также значилось:

  • желательно проживать в Москве
  • быть гражданином РФ
  • возраст старше 18 лет

Но все это выяснилось уже позже, а пока предложение Ozon привлекло многих разработчиков. Пора было приступать к первому этапу: прохождению теста.

Вроде все выглядело неплохо, условия не такие сложные и вполне выполнимые.


Читать дальше →
Всего голосов 139: ↑134 и ↓5 +129
Комментарии 107

Почему функциональное программирование такое сложное

Время на прочтение 15 мин
Количество просмотров 90K

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


Самым непонятным и зубодробительным оказалось, наверное, Теория Категорий. Я освоился в ней только с третьего подхода. В первые два раза я честно все прочитал, кажется понял, но т.к. никакой связки с реальной жизнью она не имела, то спустя неделю она благополучно полностью выветривалась.


Попытки использовать как-то в работе изученные концепции разбивались о полное непонимание, как применить полученное глубокое знание. Ведь, напомню, что парадигму ФП (где-то удобнее, где-то не очень, но) можно использовать практически в любом ЯП, совсем необязательно для этого изучать условный Хаскель.

Читать дальше →
Всего голосов 176: ↑157 и ↓19 +138
Комментарии 715

Как ускорить игру «Жизнь» в сто раз

Время на прочтение 17 мин
Количество просмотров 49K
image

Сложно найти человека, не знакомого с игрой "Жизнь", придуманной английским математиком Джоном Конвеем еще в 1970 году, и до сих пор не теряющей своей популярности. Многие программисты писали свою реализацию этой игры, и еще одна вряд ли кого-то удивит. Однако эта игра является отличным примером, показывающим, насколько полезной может оказаться оптимизация вычислений, даже не меняющая асимтотическую сложность алгоритма. Мы начнем с простейшей реализации на c# и будем последовательно применять различные оптимизации, ускоряя работу программы.

Мы также улучшим алгоритм на JavaScript, ускорив его в 10 раз по сравнению с неоптимизированной версией.

В конце статьи дана ссылка на код, а также на online-реализацию игры с оптимизированным алгоритмом на JavaScript, выполняющим до двухсот итераций в секунду на поле размера 1920x1080 (Full HD), где вы можете убить время поиграть в эту замечательную игру.
Читать дальше →
Всего голосов 83: ↑82 и ↓1 +81
Комментарии 124

Игры с нулевой суммой и условия Каруша-Куна-Таккера

Время на прочтение 6 мин
Количество просмотров 9.6K

В этой статье я подробностях разбираюсь с задачей поиска равновесных смешанных стратегий на примере антагонистических игр.


Пусть есть два игрока, A и B, которые многократно разыгрывают некоторую игру. Каждый игрок в каждом розыгрыше придерживается одной из нескольких стратегий — для простоты будем считать, что количество стратегий для обоих игроков совпадает и равняется $n$. При выборе $i$-й стратегии первым игроком и $j$-й стратегии вторым игроком первый игрок получит выигрыш $a_{ij}$, а второй игрок получит такой же проигрыш — так уж устроены антагонистичные игры. Эти выигрыши можно записать в виде квадратной матрицы $A$:


$A = \|a_{ij}\|, 1 \leq i, j \leq n$


Игроки разыгрывают игру многократно и могут использовать разные стратегии в разных розыгрышах. Смешанная стратегия — это вектор вероятностей, сопоставленных каждой из чистых стратегий игрока. Каждый игрок выбирает одну из стратегий в очередном розыгрыше в соответствии с вероятность, определённой для неё его смешанной стратегией. Если обозначить через $p$ и $q$ смешанные стратегии игроков, то математическое ожидание выигрыша первого игрока будет равняться


$f(p,q) = (Ap, q) = \sum_{i=1}^{n}{\sum_{j=1}^{n}{p_i q_j a_{ij}}} $


Пара смешанных стратегий называется равновесием, если ни один игрок не может увеличить свой выигрыш, изменив свою стратегию. Другими словами, для любой другой пары стратегий $p'$, $q'$ выполнено:


$ (Ap', q) \leq (Ap, q) \leq (Ap, q') $


Вот поиском таких равновесий мы сейчас и займёмся.

Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 9

Проект «Стакан». Энергоэффективность одноразовых стаканчиков с чаем/кофе

Время на прочтение 9 мин
Количество просмотров 20K

2020 год. Вроде бы 12 марта. Сверхсекретная лаборатория научно-исследовательского института Тепла и Холода (НИИТиХо). Где-то в Подмосковье.

– Товарищи! – заведующий лабораторией победно воздел кулак к потолку и задорно посмотрел на недавно проснувшихся инженеров и лаборантов.

Частично заполненный и видавший виды актовый зал института вяло пробурлил в ответ.

– Сегодня утром я собрал вас ради одного очень важного объявления. Во-первых, расстояние между вами на работе должно быть не менее! Повторяю, НЕ МЕНЕЕ! Одного метра. Как вы будете это обеспечивать – думайте, вы ж инженеры.

Мысль ушла в массы, вызывая легкий смех и робкое неодобрение.
Читать дальше →
Всего голосов 74: ↑70 и ↓4 +66
Комментарии 40

Как я заработал 1 000 000 $ без опыта и связей, а потом потратил их, чтобы сделать свой переводчик

Время на прочтение 20 мин
Количество просмотров 134K

Как все начиналось


Эта история началась 15 лет назад. Работая программистом в столице, я накапливал деньги и увольнялся, чтобы потом создавать собственные проекты. Для экономии средств уезжал домой, в небольшой родной город, где работал над сайтом для студентов, программой для торговли, играми для мобильных телефонов. Но из-за отсутствия опыта ведения бизнеса это не приносило дохода, и вскоре проекты закрывались. Приходилось снова ехать в столицу и устраиваться на работу. Эта история повторилась несколько раз.

Когда у меня в очередной раз закончились деньги, наступил кризис. Я не смог найти работу, ситуация стала критической. Пришло время посмотреть на все вещи трезвым взглядом. Нужно было честно признаться себе, что я не знаю, какие ниши выбрать для бизнеса. Создавать проекты, которые просто нравятся, — путь в никуда.
Читать дальше →
Всего голосов 233: ↑224 и ↓9 +215
Комментарии 144

Как я взломал мошенников, или просто внутренности фишинг-панелей

Время на прочтение 5 мин
Количество просмотров 70K

INTRO


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


Я увлекаюсь безопасностью, поэтому решил из интереса проверить безопасность фишингового ресурса.


"Админку" мошенников удалось успешно взломать, внутри нашлось n-количество украденных учеток. Их логины были переданы в службу безопасности VK, плюс соответствующие "abuse" жалобы были направлены регистраторам, хостерам.


А теперь расскажу как и какие оказываются бывают Phishing-as-Service панели...

Читать дальше →
Всего голосов 141: ↑139 и ↓2 +137
Комментарии 37

Intel х86 Root of Trust: утрата доверия

Время на прочтение 5 мин
Количество просмотров 43K


Изображение: shutterstock

Вот и настал момент, которого, возможно, больше всего боялись системные архитекторы, инженеры и специалисты по безопасности компании Intel: была найдена ошибка в неперезаписываемой области памяти (ROM) подсистемы Intel Converged Security and Management Engine, и эта ошибка ставит под сомнение все усилия компании по созданию корня доверия и фундамента безопасности на ее платформах.

И дело здесь даже не в том, что ошибки микропрограммного обеспечения (firmware), которое «зашито» в бортовой памяти Mask ROM микропроцессоров и чипсетов, уже невозможно исправить, а скорее в том, что найденная ошибка разрушает цепочку доверия всей платформы в целом, позволяя скомпрометировать ее аппаратную основу.
Читать дальше →
Всего голосов 70: ↑69 и ↓1 +68
Комментарии 217

Коты в коробочках, или Компактные структуры данных

Время на прочтение 12 мин
Количество просмотров 28K

image


Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
[səkˈsɪŋkt]?

Читать дальше →
Всего голосов 127: ↑127 и ↓0 +127
Комментарии 43

Простое объяснение простоты. Глава 1: Теоретически просто

Время на прочтение 27 мин
Количество просмотров 10K

Простое объяснение простоты


image
КДПВ с областями, которые нам придется посетить, чтобы ответить на ГЛАВНЫЙ вопрос.

Предисловие


Я часто слышал совет: сделай проще.

А что значит простой? Когда мы говорим, что объект X — простой, каковы наши ожидания от X? Когда мы говорим, что какая-то вещь проще чем другая — как мы это оцениваем?

Что проще:
“Небольшое предложение из пяти слов” или слово “Дезоксирибонуклеиновый”?
“6*5” или “481”?

Или так:
У вас есть экран настроек. Пять пунктов из них относятся к графике, другие пять к уведомлениям. Надо ли вам создавать отдельные пункты «графика» и «уведомления» в основном меню? Или оставить все 10 пунктов на одном экране? Что будет проще для пользователя?
Читать дальше →
Всего голосов 23: ↑19 и ↓4 +15
Комментарии 55

Как стать супер-мега-про машинного обучения за 15 минут

Время на прочтение 3 мин
Количество просмотров 34K
image

Недавно на Хабре проскакивал пост vfdev-5 о DIGITS. Давайте поподробнее разберёмся что это такое и с чём его едят. Если в двух словах. Это среда, которая позволяет решить 30-50% задачек машинного обучения на коленке в течении 5 минут. Без умения программировать. Ну, при наличии базы, конечно. И более-менее адекватной карточки от NVIDIA.
Читать дальше →
Всего голосов 55: ↑52 и ↓3 +49
Комментарии 25

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность