Pull to refresh
6
4
Дмитрий Волочаев @dmitryvolochaev

Разработчик

Send message

Процессы в металлах, происходящие при их деформировании

Level of difficultyMedium
Reading time5 min
Views2.7K

Значительная часть всех конструкционных материалов являются металлами или имеют их в своём химическом составе. Механические свойства металлов могут быть очень разнообразными, чем и обосновывается их широкое применение на практике. Ещё многообразнее методы, с помощью которых достигаются желаемые свойства материалов, однако их можно разделить на 2 основных класса: методы, связанные с изменением химического состава материалов и методы нацеленные на модификацию их внутренней структуры.

В данной статье рассматриваются процессы, которые происходят в металлах при их деформировании и как это сказывается ни их свойствах.

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

Markdown в IntelliJ IDEA как отдельный вид искусства. Рисуем диаграммы и вызываем bash команды

Level of difficultyEasy
Reading time3 min
Views8.2K

Spring разработчики часто пишут документацию и README/HELP файлы к своим приложениям. Часто это делается в Markdown файлах. Markdown плагин в IntelliJ IDEA распознает файлы, предоставляет специальный редактор с подсветкой, автокомплитом и форматированием, а также дает визуальное отображение в панели предварительного просмотра в реальном времени. Кроме стандартной функциональности в IntelliJ IDEA есть пару уникальных фич, которые команда Spring АйО хотела бы выделить особенно.

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments7

Революционный подход к нейросетям: рассказываем про KAN (Kolmogorov-Arnold Networks)

Level of difficultyMedium
Reading time12 min
Views14K

Эволюция архитектуры нейронных сетей уходит корнями в фундаментальные работы, заложенные в 1940-х годах Уорреном Маккаллохом и Уолтером Питcом, которые предложили концепцию искусственных нейронов и их взаимосвязь. 

Однако значительные прорывы произошли только в 1980-х годах с разработкой алгоритмов обратного распространения ошибки: алгоритм Геоффри Хинтона и других – все это позволило создавать более глубокие нейронные сети и улучшить методы обучения. 

В это время появились классические архитектуры, многослойные перцептроны (MLP,  и сверточные нейронные сети (CNN), которые революционизировали различные области, включая компьютерное зрение, обработку естественного языка и распознавание образов – теперь мы говорим про своего рода инновационную архитектуру. 

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

BananaNAS — портативный NAS из одноплатника

Level of difficultyEasy
Reading time7 min
Views11K

В статье рассказывается о разработке портативного NAS с двумя дисками NVME на основе одноплатного компьютера. Даётся небольшая теория работы контроллера PCIe, рассказывается о проблемах интеграции своего модуля дисков, а также приводятся детали дизайна и результаты тестирования.

Детали разработки
Total votes 14: ↑14 and ↓0+16
Comments45

«А давайте дампить трафик с сети, а не с хоста». Open Source решение на базе PcapNG

Level of difficultyMedium
Reading time7 min
Views4.2K

Привет, Хабр! Меня зовут Николай и уже 17 лет я работаю сетевым инженером. Обычный вопрос для моей профессии: «Доходит ли трафик куда нужно?». И десятки лет на него отвечают одним словом — tcpdump.  А теперь зададим другой вопрос: «Как поймать трафик, если доступных путей много? Неужели вариант один: открывать десятки консолей?»

 В СберМаркете я работаю с начала 2022 года и занимаюсь автоматизацией рабочих процессов. Одной из моих задач и стало найти решение на вопросы, рассмотренные выше. 

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

Читать далее
Total votes 10: ↑9 and ↓1+12
Comments2

Все тесты — это юнит тесты :o

Level of difficultyEasy
Reading time3 min
Views3.1K

Немного веселья на серьезную тему правильного нейминга тестов и 100500 их типов и видов.

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

Читать далее
Total votes 11: ↑5 and ↓6+2
Comments16

Велосипед: Promises в Node.js

Reading time6 min
Views33K
Добрый день, Хабрахабр.

Предисловие


Была довольно простая задача: получить набор документов из базы, каждый документ преобразовать и отправить пользователю все преобразованные документы, порядок их менять нельзя, для обработки документа используется асинхронная функция. Если на каком-то документе вылезла ошибка — документы мы не отправляем, только ошибку и заканчиваем обработку документов.
Для решения задачи была выбрана библиотека Q, так как сам поход Promise мне симпатичен. Но возникла одна загвоздка, вроде бы элементарная задача, а выполняется больше секунды, а точнее 1300 мс, вместо ожидаемых 50-80 мс. Дабы разобраться, как все устроено и проникнуться асинхронностью было решено написать специализированный «велосипед» под данную задачу.

Итак!
Total votes 16: ↑8 and ↓80
Comments4

10 задач с JavaScript Promise для подготовки к собеседованиям

Reading time7 min
Views74K

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

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

TypeScript: худший лучший язык программирования

Reading time13 min
Views80K

На конференции FrontedConf 2021 Андрей Старовойт показал плюсы и минусы TypeScript. Если вы сомневаетесь, стоит ли его использовать — эта статья для вас, чтобы вы смогли для себя всё решить. Если вы уже любите и используете TypeScript, то надеюсь, вам тоже будет интересно.

Все преимущества и недостатки языка описаны, конечно, через призму опыта Андрея. Несмотря на то, что последние 7 лет он работает в компании JetBrains над продуктом WebStorm на Java Kotlin, пишет он и на TypeScript. Попутно много смотрит на код других людей, пытаясь понять, что с ним можно сделать внутри WebStorm и почему типы выбились неправильно. А также — какие инспекции можно применить так, чтобы люди стали счастливы, а их код — лучше.

Читать далее
Total votes 53: ↑46 and ↓7+50
Comments42

Как идёт строительство The Line, города будущего в пустыне

Level of difficultyEasy
Reading time9 min
Views78K


The Line — самый дорогой футуристический проект в истории. Стеклянный город будущего в безжизненной пустыне. Небоскрёб-линия, которую будет видно из космоса. В двести раз дороже Большого адронного коллайдера, в пять тысяч раз крупнее Бурдж-Халифы. Многие сомневались, что они это всерьёз, но да — стройка действительно началась и идёт полным ходом. Что можно ждать от этого проекта и есть ли у него будущее?


Осторожно, под катом очень много фото, несколько десятков.

Читать дальше →
Total votes 117: ↑113 and ↓4+148
Comments569

Модель глубокого обучения, использующая данные ЭКГ для прогнозирования риска внезапной сердечной смерти

Level of difficultyMedium
Reading time23 min
Views1.9K

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

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

Вам не нужен для этого JavaScript

Level of difficultyMedium
Reading time11 min
Views28K

Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется…

▍ Правило наименьших полномочий


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

В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей.

В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.

Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
Читать дальше →
Total votes 81: ↑79 and ↓2+93
Comments38

Поломанные VPN, 2038 год и сертификаты с истёкшим сто лет назад сроком

Reading time7 min
Views18K

В конце 2010 года Зимми (псевдоним) работал в ИТ-поддержке компании, разрабатывавшей VPN-устройства и операционную систему для них. В понедельник ему позвонил клиент (розничный продавец продукции из США), рассказавший, что в выходные его VPN-оборудование перестало работать.

После изучения отчёта Зимми решил, что проблема возникла в результате сбоя валидации сертификата, о чём он и написал в недавнем посте в Mastodon.

«VPN-устройства моего работодателя управлялись через центральный сервер. На этом сервере работал собственный центр сертификации (CA), который использовался для подписывания сертификатов всех устройств. Конечные точки VPN использовали их для аутентификации на сервере управления (например, при отправке логов) и друг между другом (в основном для VPN). CA — это фундаментальная часть ПО управления».

Зимми сообщил, что предпочёл бы оставить анонимным себя, компанию и клиента.

Валидация оказывалась ошибочной, потому что система не могла проверить certificate revocation list (CRL) — список цифровых сертификатов, отозванных выпустившим их центром.

«Эти устройства аутентифицировали друг друга при помощи сертификатов, похожих на те, которые применяются для HTTPS, но подписанные частным центром сертификации. У каждого клиента был для этого свой CA. В процессе валидации сертификатов CA проверял, не отозван ли сертификат. Валидацию не удавалось выполнить, потому что VPN-устройство не могло скачать certificate revocation list (CRL), чтобы убедиться, что сертификата другого устройства нет в списке. Почему оно не могло скачать CRL?»
Читать дальше →
Total votes 42: ↑41 and ↓1+59
Comments10

Создание PDF размером с Германию

Level of difficultyEasy
Reading time7 min
Views25K

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

Подобное утверждение появилось на просторах интернета ещё в 2007 году. Этот твит является характерным примером постов с аналогичным заявлением, в которых оно преподносится как твёрдый факт без каких-либо подтверждающих свидетельств или объяснений. То есть мы должны просто принять, что один PDF может покрыть лишь около половины площади Германии, и нам никак не объясняют, почему его магический предел составляет 381 километр.

Тут мне стало интересно – а создавал ли кто-нибудь такой большой PDF? Насколько это сложно? А можно ли сделать документ ещё больше?

Несколько лет назад я из праздного любопытства немного поигралась с PostScript, предшественником PDF, и это оказалось очень увлекательным! Ранее мне не доводилось изучать внутреннее устройство PDF, так что здесь у меня возник для этого хороший повод.

Приступим!
Читать дальше →
Total votes 93: ↑90 and ↓3+120
Comments57

Запускаем Steam игры в Proton c поддержкой Native Wayland

Level of difficultyMedium
Reading time17 min
Views9.1K

Proton Wayland


Иллюстрации к статье подготовлены нейросетью freepik.com.


В первой части нашей статьи, мы научились собирать Wine с поддержкой Wayland и запустили игру Overwatch 2. Но для большинства геймеров конечно же больший интерес представляет запуск игр Steam, и этот вопрос мы не пройдем стороной. Преимущество нашей сборки Proton будет ещё и в том, что она будет работать напрямую с системными библиотеками и оборудованием, когда обычный Proton и GE Proton Custom загружаются в виртуальном контейнере, подгружают свои библиотеки и драйвера. Тем самым мы получим чуть лучшую производительность и избавимся от еще одного ненужного слоя.


Если вас заинтересовала статья, то добро пожаловать под cut.

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

Решил я тут текстовую MMORPG на C++ написать

Level of difficultyMedium
Reading time4 min
Views11K

Cразу уточню, это не гайд по созданию MMORPG на C++. Это нечто вроде моего дневника, куда я буду скидывать процесс разработки (Да, проект ещё не завершён, даже не близко, скорее только начат...). Почему я вообще тогда создал эту статью? Ну, коли ты крутой true‑программист, буду рад советам, критике, помощи, ругани, проще говоря всему, что может помочь мне улучшить это. С другой стороны, если ты сам захотел создать нечто похожее, то, быть может, сможешь избежать всех трудностей, с которыми столкнулся я.

Читать далее
Total votes 20: ↑12 and ↓8+6
Comments27

Как на самом деле Async/Await работают в C#. Часть 6. Анализ результатов компиляции асинхронных вызовов

Level of difficultyHard
Reading time24 min
Views5.5K

В этой статье мы продолжим разбирать содержание работы Stephen Toub-а: «How Async/Await Really Works in C#». В этот раз, в след за автором исходного Поста мы рассмотрим код, который генерирует C# компилятор для реализации асинхронных вызовов и множество связанных с этим сущностей-понятий-приемов, таких как: контекст исполнения, боксинг, стейт машина, стек, потоки, … Эта 6-я часть, пожалуй, основная часть всей работы, которая непосредственно отвечает на вопрос: «Как на самом деле Async/Await работают (и компилируются) в C#»

Там, где мне придется цитировать содержание исходного текста в переводе (то есть более-менее дословно переводить), оно будет выделено подчеркнутым курсивом.

Возможно вам будет интересно сравнить эту мою работу с первоначальным переводом.

Читать далее
Total votes 5: ↑2 and ↓3+1
Comments17

Тестируем многоядерный процессор методом Кнута и Python’а

Reading time11 min
Views7.3K

В 1978 году вышел третий том монографии Дональда Кнута «Искусство программирования», где автор рассматривает алгоритмы сортировки и поиска. Помимо самих алгоритмов описаны аппаратные характеристики компьютера и их влияние на производительность при работе с алгоритмами.

В 2024 году мы с вами возьмём классические алгоритмы сортировки и посмотрим, как работает современный многоядерный процессор при сортировке нескольких массивов на одном и нескольких логических ядрах. Мы напишем приложение с графическим интерфейсом (GUI) на фреймворке Qt, обойдем глобальную блокировку интерпретатора (GIL), воспользуемся несколькими потоками, на один из которых переложим выполнение асинхронного цикла событий, и распараллелим этот поток для реализации параллельных вычислений.

Читать далее
Total votes 15: ↑13 and ↓2+16
Comments13

Как мы уложили компьютерный мультик в 8 кБ

Reading time16 min
Views14K

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

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

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

Читать далее
Total votes 69: ↑67 and ↓2+88
Comments32
1
23 ...

Information

Rating
856-th
Location
Нижний Новгород, Нижегородская обл., Россия
Works in
Date of birth
Registered
Activity