Как стать автором
Обновить
152
2.9
Андрей Дмитриев @AndreyDmitriev

Пользователь

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

Математики несколько десятилетий не могли решить, рационально число или нет

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров21K

В июне 1978 года организаторы крупной математической конференции в Марселе, Франция, объявили о последнем добавлении в программу. Во время обеденного перерыва математик Роджер Апери представит доказательство того, что одно из самых известных чисел в математике — «дзета от 3», или ζ(3), как пишут математики, — не может быть выражено в виде дроби двух целых чисел. Оно оказалось тем, что математики называют «иррациональным числом».

Участники конференции отнеслись к этому скептически. Дзета-функция Римана является одной из центральных функций в теории чисел, и математики на протяжении веков пытались доказать иррациональность ζ(3) — числа, которое дзета-функция выдаёт при входном значении 3. Апери, которому было 61 год, не считался ведущим математиком. У него был говор, напоминающий деревенский, и репутация провокатора. Многие участники, предполагая, что Апери затеял сложный розыгрыш, пришли готовые ответить ему тем же. Как позже вспоминал один математик, они «пришли, чтобы навести шороху».

Читать далее

DeepSeek-R1 для чайников

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров24K

В последние месяцы всё чаще слышим про «reasoning-модели», способные не просто продолжать текст, а действительно шаг за шагом решать сложнейшие задачи цепочкой рассуждений (chain-of-thought). Впервые такой подход эффектно показали в OpenAI o1, но, к сожалению, подробности там остаются секретными. Недавно же команда DeepSeek наделала шуму с открытыми вариантами R1 и R1-Zero, созданными поверх их собственной большой MoE-модели DeepSeek-V3. В этом посте я не стану углубляться в вопрос «чья модель лучше — o1 или R1». Зато разберу, какие главные технические детали стоят за R1, почему Zero-версия выглядит особо захватывающе, и как именно авторам удалось обучить модель мыслить.

Читать далее

Lua-скриптинг в mpv-плеере

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.6K

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

На Reddit-е я наткнулся на пост, где утверждалось, что для этого можно использовать скрипт mpv-cut, который работает без внешнего графического интерфейса и дополнительных программ.

При ближайшем рассмотрении mpv-cut оказался скриптом на lua, который позволял вырезать кусок из видео прямо в процессе просмотра в плеере mpv. Я как-то не предполагал, что mpv-плеер при всей своей минималистичности поддерживает скрипты, которые позволяют расширять его функциональность. И решил это дело тщательно разъяснить.

Читать далее

Особенности написания эксплоитов под х64

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

Современные механизмы защиты от уязвимостей переполнения буфера существенно усложняют реализацию таких атак, однако buffer overflow по‑прежнему остается одним из самых распространенных видов уязвимостей. В этой статье мы поговорим об особенностях написания эксплоитов под 64-битную архитектуру.

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

Читать далее

Самый странный лексический синтаксис, который я обнаружила, исследовав 42 языка программирования

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

Программирование — это не только алгоритмы и логика, но и удивительное разнообразие синтаксиса языков. Работая над новым средством подсветки синтаксиса для llamafile, разработчик Justine Tunney* исследовала 42 языка программирования — от классического C и экзотического Tcl до мощного Ruby. 

Justine делится своими открытиями о том, насколько причудливым и непредсказуемым может быть лексический синтаксис. Например, триграфы в C — устаревший инструмент для поддержки клавиатур с ограниченными символами, фиксированные длины строк в FORTRAN, вложенные комментарии в Haskell или строки с двойными квадратными скобками в Lua. Ruby вообще оказался чуть ли не самым сложным языком для подсветки из-за его контекстно-зависимого синтаксиса.

Под катом вы найдете описание разработки инструмента подсветки и исследование того, как языки программирования решают одни и те же задачи по-разному. Если вам интересны синтаксис, языковые особенности и сложности лексического анализа – эта статья для вас.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис

Читать далее

Хакерские утилиты Дидье Стивенса

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров28K


Дидье Стивенс — бельгийский разработчик и авторитетный специалист по информационной безопасности. Наиболее известен своими инструментами по взлому паролей Windows, анализу документов PDF и внедрению туда вредоносных файлов, а также как автор опенсорсных утилит Didier Stevens Suite: это 140 программ для системных операций с файлами, процессами, реестром и прочими штуками. Например, диспетчер задач Windows, реализованный в Excel/VBA (на КДПВ).
Читать дальше →

WsprryPi: трансивер WSPR из обычной «малинки»

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

«‎Жизнь слишком коротка для QRP»‎ — гласит надпись на футболке моего друга. Смысл этой фразы предельно понятен для радиолюбителя. Работать с малой мощностью, особенно при проведении сеансов дальней связи, непросто. Но все же можно, и здесь нам помогают современные технологии. Например, протокол FT8. Он стал чрезвычайно популярным за счет устойчивости к неблагоприятным факторам, влияющим на КВ-связь. У него есть и «младший брат-близнец»‎ по имени WSPR. Последний отличается исключительной неприхотливостью, и о нем как раз пойдет речь сегодня.

Читать далее

Глубокое обучение: Алгоритм обратного распространения ошибки. Теория и реализация. С нуля

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров8.9K

Всем привет. Меня зовут Алмаз Хуснутдинов. В этой статье я рассказываю про алгоритм обратного распространения ошибки, который используется для обучения нейросетей.

Содержание: архитектура простой нейросети и инициализация переменных, прямое распространение ручной расчет, вывод производных, вывод алгоритма, обратное распространение ручной расчет, реализация простой архитектуры нейросети и задача «логическое или», реализация класса для многослойной нейросети и изображения MNIST.

Читать далее

Можно ли уместить игру Minecraft всего в один QR-код?

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

Ответ: да! И вот же он:

Игра запускается, и вы можете перемещаться по миру 64x64x64 при помощи клавиш WASD. Пробелом прыгаем, мышью осматриваемся. Щёлкнув левой кнопкой мыши, можно разрушить блок, а правой — установить землю.

Можно просмотреть QR-код при помощи следующей команды под Linux:

zbarcam -1 --raw -Sbinary> /tmp/m4k &&chmod +x /tmp/m4k  && /tmp/m4k

-1: выйти после того, как код будет просканирован

--raw: не обрабатывать его как текст

--Sbinary: воспользоваться двоичной конфигурацией

Проект выложен на GitHub здесь:TheSunCat/Minecraft4k

Читать далее

FreeRTOS для самых маленьких на примере ESP-IDF

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров24K

Все мы знаем, что FreeRTOS — это операционная система для проектов, где каждой задаче установлены строгие рамки времени, чтобы любое действие было гарантированно обработано. На этом познания об этой системе у большинства айтишников заканчиваются, по той простой причине, что 99% из нас не собираются никогда в жизни разрабатывать ничего наподобие софта тормозной системы автомобиля или медицинского оборудования. Но я бы хотел сегодня немного рассказать об этой системе, потому как она вполне может пригодиться многим из нас по другим причинам. Ведь FreeRTOS вполне может оказаться отличным следующим шагом для саморазвития после Arduino, потому как поддерживает невероятное количество процессоров и при разрастании проекта немногим сложнее «Hello World» её использование будет проще для написания кода за счёт своей продуманной архитектуры. Её можно использовать на микроконтроллерах, с которыми многие уже привыкли работать в своих проектах выходного дня и которые обходятся в смешные деньги, например AVR, ESP32 и STM32. Сегодня я покажу, насколько просто использовать преимущества FreeRTOS на примере контроллера ESP32 и фреймворка от производителя Espressif — ESP-IDF, для своей линейки микроконтроллеров.
Читать дальше →

Деление беззнаковых 8-битных чисел

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров6.1K

Деление — достаточно затратная операция. Например, на CPU Cannon Lake задержки 32-битного деления находятся в интервале 10-15 тактов, а на Zen4 — 9-14 тактов. Задержки 32-битного умножения на обоих CPU составляют 3-4 такта.

Ни в одном из популярных ISA SIMD (SSE, AVX, AVX-512, ARM Neon, ARM SVE) нет целочисленного деления, оно есть только в RISC-V Vector Extension. Однако во всех этих ISA есть деление с плавающей запятой.

В этой статье мы представим два подхода к реализации SIMD-деления 8-битных беззнаковых чисел.

Читать далее

Почему мы трансформируем трёхмерные векторы матрицами 4х4?

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

Почему не матрица 3х3? Почему в матрице 4х4 всё уложено именно так? Зачем там последняя строка, заполненная нулями и одной единицей в конце? Этими вопросами я задался накануне, решил поисследовать вопрос и рассказываю что выяснил.

Читать далее

Парольная защита статичной HTML-страницы на JS

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


Обычно парольная защита производится через веб-сервер, который проверяет пароль и выдаёт контент. Стандартный способ: .htaccess и htpasswd. Но что, если нужно выложить зашифрованную веб-страницу и файлы на публичном хостинге, где у нас нет контроля над сервером? Эту проблему решают инструменты StatiCrypt и Portable Secret.

Для шифрования HTML перед публикацией StatiCrypt использует AES-256 и WebCrypto, а расшифровка происходит с помощью ввода пароля в браузере на стороне клиента, как показано в демо (пароль test).

StatiCrypt генерирует статическую страницу, которую можно безопасно заливать на любой хостинг, в том числе бесплатный сторонний хостинг, такой как GitHub Pages.
Читать дальше →

О программировании промышленного ПЛК на C++

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров5.9K

Привет, хабр! Под катом мы посетим китайский завод, где делают двигатели, заглянем внутрь ПЛК да попрограммируем его на разных языках, включая Си и C++, вплоть до ассемблера.

Для любителей промышленной автоматизации

Математическая продлёнка. Изобретаем целые числа

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров15K

Этой мини-серией статей я хочу объединить свои заметки для математического кружка о различных необычных, но полезных числовых системах, основанных на парах чисел. План знакомства с числовыми системами будет такой:

1. В этой статье мы (признаюсь, достаточно занудно) построим из натуральных чисел целые, при этом познакомимся с важнейшими инструментами математики: упорядоченной парой, эквивалентностью и факторизацией.

2. Во второй части от целых мы перейдём к рациональным числам, которые тоже можно представить в виде пары — рациональной дроби. Главный вопрос на который мы постараемся ответить: «А чего у дробей всё так сложно-то?»

3. В третьей части мы сконструируем Гауссовы числа и порассуждаем над более общим вопросом: «Что такое число?». В этой части мы перейдём от пар к матричным представлениям чисел, что позволит нам ввести их классификацию.

4. Четвёртая часть будет посвящена эллиптическим арифметикам: комплексным числам и числам Эйзенштейна. Здесь мы порассуждаем над сакраментальным вопросом: «Реальная ли мнимая единица?»

5. В пятой части мы рассмотрим гиперболические арифметики и познакомимся с двойными числами, и немного используем их на практике, чтобы понять «Как работает формула Бине?»

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

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

Читать далее

Пишем небольшое приложение на Python для повышения продуктивности с помощью ИИ и BotHub API

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

Прошла важная онлайн-встреча, задачи распределены, идеи обсуждены, а кто что сказал — уже и не помню. Кажется, что чтобы ничего не упустить, нужен отдельный человек, который записывает все за всеми и делает отчеты. Хороший вариант — обернуть это в скрипт, что мы с вами и сделаем.

В этом туториале я покажу, как создать приложение для автоматического анализа встреч и составления отчетов с использованием API BotHub (Whisper-1 + Claude 3.5 Sonnet). Это приложение будет распознавать речь с аудиозаписей, выделять ключи — кто что сказал и какие задачи в целом обсудили — и составит отчет, включая формат ПДФ.

Читать далее

Алгоритм генетической колонии пчел для задачи коммивояжера

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров2.6K

Поиск кратчайшего маршрута является сложной задачей, заключающейся в посещении каждого элемента из набора мест и возвращении в исходную точку, что представляет собой NP-усложнённую задачу. NP(в теории алгоритмов классом NP называют множество задач разрешимости, решение которых возможно проверить на машине Тьюринга за время, не превосходящее значения некоторого многочлена от размера входных данных, при наличии некоторых дополнительных сведений (так называемого сертификата решения).) Она также известна как задача коммивояжера(ЗК) и изучается в области комбинаторной оптимизации, операционного исследования и теоретической информатики. ЗК используется в качестве эталона для многих методов оптимизации. Цель задачи заключается в нахождении одного пути, который может пройти через все узлы (экземпляры) графа всего один раз (гамильтонов цикл) с наименьшей длиной пути, то есть с минимальным евклидовым расстоянием.

Читать далее

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

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

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

Читать далее

Асинхронный Rust в трех частях. Часть вторая: Tasks

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров2.4K

Во введении мы сказали, что async/await это про futures и задачи. В первой части мы рассмотрели futures и теперь пришло время задач. Благо, мы с ними уже встречались, хоть мы их так и не называли.

Читать далее

Рецензия на книгу “Основы проектирования баз данных (Database Design Solutions, 2nd Edition)”

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров6.5K

Сегодня мы расскажем о новой переводной книге по проектированию баз данных от автора Рода Стивенса «Основы проектирования баз данных. — 2-е изд» (Database Design Solutions, Second Edition). Это практическое руководство почти на 800 страниц по проектированию реляционных и нереляционных баз данных на разных аппаратных платформах и в кросс-платформенных окружениях. И да, речь в книге идет о формировании правильной структуры данных в БД под ваши задачи и проект, а не о разработке программной оболочки (СУБД).

Читать далее
1
23 ...

Информация

В рейтинге
1 128-й
Откуда
Ahrensburg, Schleswig-Holstein, Германия
Дата рождения
Зарегистрирован
Активность