Как стать автором
Обновить
13
0
Чепель Дмитрий @assad77

Разработчик

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

Самые быстрые мьютексы

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

Cosmopolitan Libc хорошо известна своим «полиглотным жирным бинарным» хаком, который позволяем исполняемым файлам запускаться на шести операционных системах для AMD64/ARM64. Вас может удивить, что при этом она может быть лучше С‑библиотекой для вашего продакшена. Чтобы продемонстрировать это, давайте сравним библиотеку мьютексов Cosmo с другими платформами.

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

Читать далее
Всего голосов 25: ↑23 и ↓2+27
Комментарии7

Самопаркующийся авто за 500 строк кода

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



TLDR


В этой статье мы научим авто самостоятельно парковаться с помощью генетического алгоритма.


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





Примерно на сороковом поколении авто начнут понимать, что такое авто-парковка, и начнут приближаться к парковочному месту:




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

Встречайте UUID нового поколения для ключей высоконагруженных систем

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

31 марта 2022 года на сайте IETF был официально размещен текст рабочего документа (копия 1, копия 2) New UUID Formats (далее – стандарт), который должен формально обновить, а фактически заменить давно устаревший и изначально ущербный RFC 4122.

В долгих и жарких спорах удалось выработать стандарт высокого качества. Можно надеяться, что этот стандарт заменит многочисленные «самоделки» энтузиастов и отдельных компаний: ULID, KSUID, CUID и т.д., а в СУБД будут встроены генераторы UUID новых форматов, предназначенных для ключей высоконагруженных систем.

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

DIY-программатор ST-Link V2.1

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

Привет, Хабр!

Предлагаю вашему вниманию самодельный программатор ST-Link V2.1.

Особенности: интерфейс SWD, функция виртуального COM-порта, поддержка SWO, функция MSC (mass storage class), низкая цена.

Перейти к статье
Всего голосов 33: ↑33 и ↓0+33
Комментарии47

Мы сделали вам плату, а дальше вы сами: Доводим дешевый одноплатник до ума своими руками

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

В прошлой статье, мы с вами рассмотрели на что способен одноплатный компьютер, который стоит всего 1.000 рублей. Как мы выяснили, перспективы у данного девайса весьма неплохие, однако по факту, Orange Pi продаёт практически голую железку, которую нужно дорабатывать самому. Да, тут есть Ubuntu/Fedora, да, тут выведена гребенка с I2C/SPI — однако из коробки это всё работает криво-косо, либо не работает совсем. Даже обещанные шины SPI/I2C фактически не доступны в системе «из коробки». Материалов о доработке этого одноплатника в сети мало, поэтому я решил довести его до ума сам и поделится с вами — в том числе, готовыми бинарными образами! Интересно, на что способен доработанный одноплатник по цене ящика пива? :)
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии21

Генерация Лабиринта | Алгоритм Эллера

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

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

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

Гипатия: античная женщина-математик, которую убили религиозные фанатики

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

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

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

Умная белая трость. Часть 1

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

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

По данным Международного агентства по профилактике слепоты, сегодня примерно 284 миллиона жителей Земли имеют те или иные нарушения зрения, около 39 миллионов из них полностью его лишены. 

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

Софт для самохостинга: что нового в 2023 году

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


Среди обычных пользователей (физлиц) в последнее время наметилась тенденция ухода из облака на свою инфраструктуру. Об экономии тут речи обычно не идёт, потому что облачные сервисы Google, Apple и прочие заманивают бесплатными тарифами. Но у людей растёт понимание, что нельзя доверять Google. Надеяться можно только на себя.

В связи с этим стоит внимательнее посмотреть на стандартный софт для самохостинга, а также на последние новинки, которые имеют шанс заменить что-то из стандартного набора.
Читать дальше →
Всего голосов 46: ↑44 и ↓2+55
Комментарии92

Жесткие диски с поддержкой NVMe 2.0: в чем смысл?

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

Летом 2021 года был представлен новый стандарт NVM Express 2.0 (NVMe 2.0). Изначально NVMe был разработан для твердотельных накопителей и сетей хранения данных, но в последней версии добавлена полноценная поддержка жестких дисков. Конечно, возникает логичный вопрос: зачем? Но обо всем по порядку.

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

Blink: супербыстрый эмулятор x86_64 размером 119 КБ

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


На Хабре когда-то писали про талантливую программистку Джастин Танни, автора маленьких и очень быстрых приложений. Приятно знать, что она не останавливает свою неординарную деятельность. Например, одна из её последних разработок — крошечный эмулятор под названием Blink размером всего 116 КБ, который очень быстро компилирует WASM и выполняет Linux-программы x86_64 под разными платформами и даже в браузере.
Читать дальше →
Всего голосов 56: ↑50 и ↓6+61
Комментарии14

Красивый двоичный поиск без ветвления

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

Недавно я прочитал пост Алекса Мускара Beautiful Binary Search in D. В нём описывается алгоритм двоичного поиска под названием «алгоритм Шора». Я никогда не слышал о нём и его невозможно загуглить, но увидев алгоритм, я думал только об одном: «он без ветвления». Кто знал, что может существовать двоичный поиск без ветвления? Поэтому я занялся его трансляцией в алгоритм для итераторов C++, не требующий индексации на основе единицы или массивов фиксированного размера.

В GCC он более чем в два раза быстрее, чем std::lower_bound, который сам по себе — очень высококачественный двоичный поиск. Цикл поиска прост, а генерируемый ассемблерный код красив. Меня потрясло, что он существует, но им, похоже, никто не пользуется.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+42
Комментарии8

Контроллер CH579. Начинаем работу и избавляемся от закрытой сетевой библиотеки

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


Сегодняшняя статья – не восклицание: «Смотрите, какой мне красивый проц попался». Это скорее просто упорядочивание накопленных сведений о конкретном процессоре CH579. Вдруг кому пригодится. Ну, и, если через годы мне потребуется, я сам буду восстанавливать знания по этой статье. Просто так получилось, что по проекту Заказчик велел освоить его… Это недорогой микроконтроллер на базе ядра Cortex M0. После освоения Заказчик же и сказал, что мы всё будем делать на китайском клоне STM32. Характеристики же самобытного CH579 он признал недостаточными.

Но с другой стороны… Сегодня эта микросхема стоит 120-150 рублей за штуку на Ali Express. А у неё имеется не только встроенный PHY для десятимегабитного Ethernet, но и всё для работы по BLE. По-моему, не самая плохая цена. Кажется, для Интернета вещей может пригодиться. Но это цены за микросхему. Макетки безобразно дороги.

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

В общем, сегодня мы пробежимся по работе с китайским контроллером CH579. Будет немного практических сведений и немного мемуаров, как пришлось вскрывать библиотеки.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+46
Комментарии29

Компилятор с полностью гомоморфным шифрованием от Google

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

Ещё в мае 2022 года я переориентировал пару команд в Google на разработку полностью гомоморфного шифрования (вот объявление об этом в рассылке). С тех пор я участвовал в работе над многими проектами в этой области, в частности, руководил поддержкой на github.com/google/fully-homomorphic-encryption – это опенсорсный ПГШ-компилятор для C++. В этой статье даётся вводная информация о том, как при помощи этого инструмента компилировать программы с расчётом на ПГШ. Также пробежимся по тому, из чего этот компилятор состоит.

Читать далее
Всего голосов 16: ↑15 и ↓1+19
Комментарии20

Алгоритм HyperLogLog, или Оцениваем мощность множества за O(1)

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


Привет, Хабр! Меня зовут Максим, я учусь на третьем курсе МФТИ. Этим летом я участвовал в студенческой программе, которую проводила команда Tarantool. Если кратко, суть программы в том, чтобы самостоятельно или в команде решить исследовательскую задачу в определенный срок. 

Моей задачей была реализация алгоритма HyperLogLog. Во время работы я не обнаружил русскоязычных материалов о практической реализации алгоритма, поэтому решил, что полученный мною опыт может быть полезен сообществу. Статья будет интересна людям, интересующимся алгоритмами и практическим программированием. Для понимания темы не потребуется ни специальных математических знаний, ни предварительного знакомства с алгоритмом. 
Читать дальше →
Всего голосов 62: ↑62 и ↓0+62
Комментарии40

Насколько круто иметь свой сервер в комнате

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

Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Читать дальше →
Всего голосов 117: ↑116 и ↓1+146
Комментарии317

Linux за 2$/100 рублей: Какой UMPC можно получить, покопавшись на барахолках?

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

Всем привет! Вот и подошла следующая часть из моего цикла статей очень дешевых девайсов, которым я всегда стараюсь найти применение. И на этот раз, я хочу вам показать еще одну классную сторону онлайн-барахолок(дабы не было рекламой - названия не упоминаю, но вы и сами догадались). Китайцы многое делают, чтобы сделать рынок UMPC как можно более дешевым и доступным - Lctech выпустили свою высокоинтегрированную плату Pi Zero на бутербродном AllWinner F1C100S - в который уже встроено 32/64мб ОЗУ, и цена которого - около 900руб на AliExpress. Я же предлагаю собрать UMPC за 100-500 рублей, и без единого кликбейта, на гораздо более мощном железе и с встроенным Wi-Fi, иногда 3G, полным USB стеком и встроенной NAND памятью 4-8гб. Интересно? Добро пожаловать под кат!

Окунуться в мир UMPC
Всего голосов 34: ↑33 и ↓1+42
Комментарии32

Библиотека вывода с использованием escape-последовательностей

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

Osmanip – это библиотека C++, предоставляющая полезные механизмы для работы с управляющими последовательностями ANSI и настройки потока вывода программ. С помощью этих механизмов вы можете оформлять выводимые строки различными цветами и стилями, изменять расположение курсора в терминале и регулировать прочие компоненты вроде индикаторов выполнения и графики. Весь этот функционал будет очень полезен для придания желаемого вида общему потоку вывода программы или для выполнения операций с курсором.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+42
Комментарии6

Создание модели предсказания кода МКБ-10 на основе текста описания болезни

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

Привет, Хабр! Решила с вами поделиться одной простой работой, которая привела к неплохим результатам. Расскажу о всем подробно и очень просто:) Интересно тем, кто еще не решал задачи NLP до этого момента.

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

Как сравнивать распределения. От визуализации до статистических тестов

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

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

Приятного чтения!
Всего голосов 8: ↑8 и ↓0+8
Комментарии4

Информация

В рейтинге
5 400-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность