Pull to refresh
0
@matveev_romanread⁠-⁠only

User

Send message

Open-source реализации отечественных криптоГОСТов

Reading time2 min
Views61K
На выходных решил поискать open-source реализации отечественных криптографических стандартов. Прежде всего интересовали новые: хэш-функция Стрибог (ГОСТ Р 34.11-2012), Кузнечик (ГОСТ Р 34.12-2015) и ЭЦП (ГОСТ Р 34.10-2012 или 2001 (без 512-бит) ). Старый ГОСТ 28147-89 специально не искал, поскольку найти его реализацию никаких проблем нет уже давно.
Итак, давайте посмотрим, что же получилось. Сразу предупреждаю, что корректность реализаций не проверял.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments64

Виртуальный COM-порт на STM32 или как управлять контроллером через USB не привлекая внимания санитаров

Reading time24 min
Views29K

Написать эту статью меня сподвигли те сложности, которые пришлось пройти в попытке разобраться, как же именно ядро контроллера STM32F103 работает с драйвером USB, который находится на борту. Имеющиеся туториалы по созданию устройств, в том числе и композитных, в основном сфокусированы на особенностях использования библиотек. Но когда оставшегося места в памяти контроллера мало а парамеры его работы полностью предсказуемы, лучшим решением становится написать собственный обработчик прерываний. А для этого нужно понять,

как же оно всё-таки работает
Total votes 28: ↑26 and ↓2+34
Comments9

Рисуем диаграммы Mermaid.js в README-файлах GitHub

Reading time14 min
Views40K

14 февраля 2022 года GitHub объявила о старте нативной поддержки диаграмм Mermaid.js в README-файлах GitHub. Нововведение помогло быстрее и эффективнее оформлять блок-схемы и графики для документации. До этого диаграммы вставлялись в виде изображений и если содержимое менялось, то надо было сначала нарисовать новое изображение, а потом вставлять его. Сейчас же можно просто исправить несколько строк в коде и система сгенерирует новый график.

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

Используйте GIT при документировании

Reading time7 min
Views35K
Иногда не только сама документация, но и процесс работы над ней может быть критичным. Например, в случае проектов львиная часть работы связана именно с подготовкой документации, и неправильный процесс может привести к ошибкам и даже к потере информации, а, следовательно, и к потере времени и выгоды. Но даже если эта тема и не является центральной в вашей работе и находится на периферии, то все равно правильный процесс может улучшить качество документа и сэкономить вам время.

Изложенный здесь подход, с примером конкретной реализации, имеет низкий порог вхождения. Технически, уже завтра вы можете начать работать по-новому.
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments30

Нормальные таблицы в Markdown

Reading time5 min
Views30K


Таблицы Markdown — это ад кромешный:


  1. В ячейках нельзя написать текст длиннее пары слов, а тем более список.
  2. Если диалект и позволяет пункт 1, это неудобно форматировать.
  3. Если ячейки не выровнены, таблицу невозможно читать.
  4. Нет поддержки однотипных таблиц и автоматики, вроде нумерации строк.

Пришло время написать фильтр для Pandoc, рисующий таблицы из структурированного YAML, с нумерацией строк, горизонтальной ориентацией, шаблонами граф, и заодно разобраться, как писать Lua-фильтры.

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments6

Управление документацией в растущей компании: DocFX + Gitea + «Этос»

Level of difficultyEasy
Reading time6 min
Views3.4K

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

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

Как написать идеальный запрос для ChatGPT

Level of difficultyEasy
Reading time4 min
Views64K

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

Я потратил много часов на различные курсы по промт-инжинирингу и постоянно тестировал различные структуры запросов, чтобы построить формулу, которая могла бы приблизить меня к качественным ответам.

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

ChatGPT я пользовался через русифицированный сервис MashaGPT, который работает без VPN и виртуальных сим-карт. Все примеры взяты из него.

Читать далее
Total votes 16: ↑11 and ↓5+7
Comments8

Блокировка Docker Hub для России. Без паники разбираемся как работать дальше

Level of difficultyMedium
Reading time9 min
Views73K

Главной новостью этой недели стала блокировка пользователей из России ресурсом Docker Hub. Она осуществляется по Geo IP.

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

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

Читать далее
Total votes 81: ↑77 and ↓4+93
Comments47

Реализация взаимодействия с БД через Middleware в Telegram-ботах

Level of difficultyEasy
Reading time6 min
Views7.4K

Когда я начинал писать своих первых ботов с использованием базы данных, их код был очень плохим: он расходовал лишние ресурсы, а также была плохая архитектура проекта. Поэтому я хочу поделиться с вами своими знаниями, чтобы вы не наступали на те грабли, на которые наступал я. В проекте бота, который будет использован в качестве примера в данной статье, я использовал такие технологии, как aiogram, SQLAlchemy, alembic и Docker. В качестве СУБД выступает PostgreSQL. Приятного чтения!

Читать далее
Total votes 8: ↑6 and ↓2+6
Comments7

Упрощенное объяснение новой сети Колмогорова-Арнольда (KAN) из MIT

Reading time2 min
Views14K

В стремительно развивающейся области искусственного интеллекта новая архитектура обещает произвести революцию в понимании и создании нейронных сетей. Названная сетью Колмогорова-Арнольда (KAN), инновационная структура от MIT готова трансформировать традиционные модели своим уникальным подходом.

Читать далее
Total votes 10: ↑7 and ↓3+6
Comments8

Оформляем README-файл профиля на GitHub

Reading time14 min
Views230K

Летом 2020 года GitHub позволила пользователям создавать персональные README-файлы и с их помощью кастомизировать свои профили. Сама платформа при создании подобного файла предлагает уже готовый шаблон, в который можно вписать свои данные. Но о какой кастомизации может идти речь, если у всех будут одинаково оформленные профили? За почти два года сообщество придумало множество различных способов выделиться и особенно оформить свою страницу на GitHub.

Читать далее
Total votes 62: ↑60 and ↓2+73
Comments25

Как информативно оформить профиль на GitHub?

Level of difficultyEasy
Reading time6 min
Views15K

Тетрадь, дневник — ваше лицо. А круто оформленный профиль на гитхабе — статус вашей занятости. Чем больше участий в проектах, тем безработнее... Пока молодые специалисты оформляют свои страницы с "Lib-Meta-Neo ML-Scientist 10 years of expirience" на LinkedIN настоящий амбассадор HR и трудового найма бегут на GitHub. Именно там выискиваются самые закостенелые гики программирования, вносящие тридцать пять тысяч коммитов в безбюджетные опенсорс проекты; именно там рождаются гении, разрабатывающие AAA-проекты геймдева на ассемблере. 

Все это шутки. 

Но реальность такова, что многие из рекрутеров не против оценить ваш профиль. Подавать себя, как в маркетинге, важно. И неплохо бы сразу представить всю статистику развернуто перед глазами, чтобы бедный HR не искал ваши коммиты, а гордо проведенные тысячи часов в GitHub не остались за кадром. Каждый проект служит материальным доказательством способностей разработчика, позволяя потенциальным соавторам или работодателям оценить его стиль программирования, навыки решения задач и умение управлять проектами. 

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

Читать далее
Total votes 26: ↑24 and ↓2+26
Comments5

Пишем Telegram-бота для скачивания видео из VK на Spring Boot и деплоим в Kubernetes

Level of difficultyHard
Reading time10 min
Views16K

В последнее время на Хабре несколько раз всплывала тема загрузки видео из VK для дальнейшего просмотра оффлайн. Я решил подойти к этому вопросу немного с другой стороны, и решить вопрос с помощью телеграм-бота.

Таким образом, убиваем сразу нескольких зайцев:

не нужно ставить никаких дополнительный приложений или плагинов: скорее всего Telegram и так уже установлен на телефоне и/или на компе;

автоматическая синхронизация видео между устройствами - поставили на закачку на компе, пошли на улицу, а тот же файл - в телефоне;

Telegram позволяет загружать файлы для последующего просмотра/прослушивания оффлайн, и это работает с выключенным экраном из коробки (привет, премиум подписки vk/youtube).

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

Восемь возможностей C++17, которые должен применять каждый разработчик

Reading time9 min
Views133K

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


Вам также может быть интересна статья Десять возможностей C++11, которые должен использовать каждый C++ разработчик
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments52

Разработка программного средства по обработке данных фонокардиограммы

Level of difficultyHard
Reading time41 min
Views2.1K

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

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

ФКГ может использоваться для оценки эффективности лечения сердечных заболеваний и для наблюдения за состоянием сердца в течение времени. Если у вас есть симптомы, такие как боль в груди, одышка, учащенный пульс, упадок сил, обратитесь к кардиологу, который посоветует, нужна ли вам ФКГ [1].

Объектом исследования выпускной квалификационной работы является список файлов формата .csv, содержащих разделенные знаком ";" смещенные целочисленные значения амплитуды шумов сердца, записанные в течение нескольких секунд, частота дискретизации – 1000 гц (числа в записи обозначают амплитуду сигнала, временной промежуток между соседними значениями - 1 миллисекунда).

Цель работы состоит в создании алгоритма автоматической интерпретации снятых данных, который пытается по форме кривых делать выводы, аналогичные тем, которые по этим же кривым умеет делать эксперт и создание собственного алгоритма. Необходимо определить и выделить точку максимальной амплитуды, начало и окончание тона 1 для каждого из сердечных циклов. Ответ необходимо вывести в виде списка списков [t1, t2, t3], где t1 – начало тона 1, t2 – точка максимальной амплитуды, t3 – окончание тона 1. Также, для проверки результата, необходимо визуализировать полученный результат на графике. Данную процедуру необходимо произвести для каждого файла.

Ссылка на github: medical_date/script.py at main · ReshetnikovDmitrii4918/medical_date (github.com)

Читать далее
Total votes 11: ↑11 and ↓0+13
Comments14

Разработка BIOS на языках высокого уровня

Level of difficultyHard
Reading time11 min
Views25K
Ничего лишнего: материнская плата, видеокарта и ROM-BIOS

Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc.

Хотя я и имею достаточный опыт BareMetal-разработки, тем не менее, всё это были чужие проекты со своим кодом. А мне хотелось понять, как начать свой проект с чистого листа, когда есть только чистая железка и идея. Толковых статей как подступится к этой задаче достаточно мало, при этом совершенно непонятно, с какого же края к ней подходить.

Здесь я хочу свести основные моменты разработки BIOS в одном месте и разобраться обо всех проблемах, которые я получил во время своих опытах в разработке (первая и вторая части).
Читать дальше →
Total votes 103: ↑102 and ↓1+132
Comments58

Пишем свой ROM BIOS

Reading time12 min
Views30K

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

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

В этой статье мы с вами разберём создание своего ROM BIOS, дальше я расскажу про тонкости и нюансы, напишу низкоуровневый «Hello world», сделаю настоящий интерпретатор BASIC ROM, который стартует при включении компьютера, как в первых IBM PC.
Читать дальше →
Total votes 108: ↑107 and ↓1+139
Comments70

16-битная операционная система на коленках

Level of difficultyMedium
Reading time15 min
Views19K

В мире компьютерных наук мало что может сравниться с созданием собственной операционной системы. В этой статье мы погрузимся в увлекательный мир разработки операционных систем, создав 16-битную ОС с помощью языка ассемблера NASM под архитектуру процессоров Intel x86-64. Мы рассмотрим каждый этап разработки, начиная с основ и заканчивая реализацией ключевых компонентов.

Заменит Windows?
Total votes 47: ↑47 and ↓0+54
Comments34

Оффлайновое использование Git

Level of difficultyEasy
Reading time6 min
Views14K

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

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

Читать далее
Total votes 27: ↑25 and ↓2+36
Comments17

Information

Rating
Does not participate
Registered
Activity