Pull to refresh
97
0.5
Send message

Выбираем стандарт языка Си в 2025 году

Level of difficultyEasy
Reading time13 min
Views7.5K

Шёл 2025 год, а я задался вопросом: «Не пора ли нашей команде выбрать стандарт языка Си, на котором будет вестись основная часть разработки?» С одной стороны кажется, что этот вопрос давно должен быть решён, стандарт языка указан в code style, конечно, после «холиваров», череды обсуждений, обид, проклятий и прочих маленьких трагедий. А если нет? А если нет, то так ли это важно? Что там нового может быть в языке Си? Стоит ли этот вопрос вообще того, чтобы тратить время? В этой заметке поделюсь с уважаемым читателем тем интересным, что я узнал и вспомнил во время неспешного исследования этого вопроса, относительно холодными и тёмными вечерами.

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

Пишем стек TCP/IP с нуля: основы TCP и Handshake

Level of difficultyEasy
Reading time9 min
Views12K

Первая часть: Ethernet, ARP, IPv4 и ICMPv4

Пока наш стек TCP/IP пользовательского пространства содержит минимальные реализации Ethernet и IPv4. Настало время заняться пугающим Transmission Control Protocol (TCP).

TCP, работающий на четвёртом (транспортном) сетевом слое OSI1, отвечает за починку ошибочных подключений и сбоев в доставке пакетов. TCP — «рабочая лошадка» Интернета, обеспечивающая надёжную связь практически во всех компьютерных сетях.

TCP — не особо новый протокол, первая его спецификация вышла в 1974 году2. С тех пор многое поменялось, TCP дополнился множеством расширений и исправлений3.

В этом посте мы изучим базовую теорию TCP, а также рассмотрим заголовок TCP и поговорим об установке соединения (TCP handshaking). Под конец мы продемонстрируем первую функциональность TCP в нашем сетевом стеке.

Читать далее

Сортировка слиянием на CUDA

Level of difficultyMedium
Reading time9 min
Views5.1K

Я решил изучить, как повысится производительность алгоритмов сортировки при их реализации на CUDA. Моя цель — понять, как можно использовать мощь параллельных вычислений для ускорения алгоритмов сортировки.

В качестве тестового я возьму алгоритм сортировки слиянием (merge sort), потому что он удобно разбивает задачу на меньшие подзадачи с двумя равными половинами, что хорошо подходит для параллельных вычислений.
Читать дальше →

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

Reading time5 min
Views61K

Одноплатные компьютеры уже давно не просто игрушка для энтузиастов. Это мощные системы, которые могут работать с AI, подверрживать одновременно несколько 4K-дисплеев, управлять роботами и даже выполнять серверные задачи. В 2025 году рынок пополнился новыми моделями, которые впечатляют возможностями и ценами. В этом обзоре — пять самых интересных новинок, которые подойдут как для разработчиков, так и для тех, кто ищет компактную, но мощную альтернативу традиционному ПК.
Читать дальше →

Полезные ресурсы по Python, которые я собрал

Level of difficultyEasy
Reading time7 min
Views35K

Примерно два года назад я начал изучать Python и Django. В течение этого времени сохранял ссылки, которые считал полезными. Недавно решил структурировать их. Также стало интересно, а какие ресурсы считают полезными другие разработчики. В данной статье я собрал разнообразные ссылки по Python, которые сохранял, либо которые меня заинтересовали (внимание больше на web). Буду благодарен, если в комментариях поделитесь своими полезными ссылками.

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

Читать далее

Deep Learning в иллюстрациях: Рекуррентные нейронные сети

Level of difficultyEasy
Reading time14 min
Views9.2K

Рад приветствовать вас в очередной части нашего иллюстрированного погружения в Deep Learning! Сегодня мы будем разбираться в рекуррентных нейронных сетях. Мы будем обсуждать уже хорошо знакомые нам понятия, такие как входы, выходы и функции активации, но с неожиданным сюжетным поворотом.

Читать далее

IMSProg — программатор для CH341a в Linux

Level of difficultyMedium
Reading time4 min
Views21K

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

Читать далее

Просто «включатель» света с радаром 24 ГГц для «Умного дома» или автономного использования

Level of difficultyMedium
Reading time7 min
Views14K

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

Вот и добралась моя безумная DIY автоматизация до ванной комнаты, а причина тому - датчик присутствия HLK-LD2402. Этот датчик был куплен на распродаже в одном оранжевом маркетплейсе с целью поиграться и забыть, но он настолько мне понравился, что я решил дать ему возможность поработать в составе моего DIY устройства. А что из этого вышло — читайте далее.

Читать далее

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

Reading time6 min
Views39K

Источник.

Одноплатные компьютеры продолжают развиваться. Производители предлагают все больше разных моделей, как специализированных, так и более-менее универсальных. В феврале 2025 года на рынке появилось несколько интересных новинок, каждая из которых заслуживает внимания. В этом обзоре рассмотрим 5 самых интересных моделей, сравним их характеристики, особенности и разберём, для каких задач они подходят лучше всего. Поехали!
Читать дальше →

OpenWrt One: что значит «неубиваемый» маршрутизатор

Reading time3 min
Views39K


В 2024 году опенсорсному проекту OpenWrt исполнилось 20 лет. Разработчики ещё в январе объявили, что этот юбилей можно отпраздновать выпуском нативного маршрутизатора OpenWrt One.

Разработка и рождение дизайна заняло девять месяцев. В октябре началась отгрузка первых экземпляров для энтузиастов, а в конце ноября 2024 года свободный маршрутизатор появился на крупнейших торговых площадках интернета. Это важная новость, потому что OpenWrt One — в своём роде уникальное устройство. Это первый маршрутизатор, специально сконструированный для идеальной совместимости с опенсорсной прошивкой OpenWrt, хотя с ней официально совместимы десятки устройств (можно самостоятельно скачать и установить её, это несложная процедура).

Маршрутизатор на открытой архитектуре с прошивкой OpenWrt разработчики называют «неубиваемым» (unbrickable): в нём предусмотрен физический переключатель для разделения NOR- и NAND- флэш-памяти.
Читать дальше →

Сборка проектов Си и Си++: от простого к сложному. Часть I. Библиотеки

Level of difficultyMedium
Reading time12 min
Views24K

Каждый раз, в течение многих лет, собирая пилотную версию мизерного проекта или простой утилиты, мне кажется, что уж в этот раз точно обойдусь обычным скриптом для сборки, и никакие сборщики проекта мне не понадобятся. Но суровая реальность приводит меня в чувство уже в течение первых нескольких минут работы. Сначала оказывается, что до невозможности простая программка нуждается в JSON-парсере, HTTP-запросах CURL и прочих библиотеках. А по мере возбуждения хотелок эти все зависимости нарастают как снежный ком. И все мечты быстро скомпилировать страничку кода встречают на каждом шаге всё новые и новые проблемы.

Вот сегодня и расскажу о том, какие бывают способы борьбы с зависимостями и сборки проекта из множества файлов на Си++. Заодно те, кто не любят Си++, смогут порадоваться «прелестям» этого процесса. И хоть тема очень важная для программистов, но я обратил внимание, что даже многолетний опыт не гарантирует понимания этих процессов. Но сразу предупреждаю — история длинная даже с учетом всех попыток не убегать на смежные темы.
Читать дальше →

Настройка ToolChain-нa для Разработки на Микроконтроллерах YTM32x

Level of difficultyEasy
Reading time18 min
Views3.4K

Абсолютно все микроконтроллеры программируются одинаково, если собирать код из make файлов.

Настало время освоить очередное семейство ARM-совместимых микроконтроллеров. За плечами уже AVR, MSP430x, LPC21x, STM32x, MDR32x, ESP32x, SPC58x, CC26x2, NRF53x, AT32Fx. Теперь вот YTM32x от компании YUN TU (Suzhou YTM Semiconductor Co Ltd).

С какой же стороны следует подходить к микроконтроллерам YTM32x?
Давайте разбираться...

Читать далее

Работа с RISC-V контроллерами на примере GD32VF103 и CH32V303. Часть 4: переход на Си и Таймеры

Reading time29 min
Views5.3K

Макетная плата GD32VF103


Часть 1. Введение


Часть 2. Память и UART


Часть 3. Прерывания


Часть 4. Си и таймеры


Часть 5. DMA


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

Читать дальше →

SSD NVME M.2 через PCIe на Repka Pi 4 — это новый уровень. Впечатления, тесты, сравнения скорости

Level of difficultyEasy
Reading time21 min
Views6.1K

Недавно появилась новая модель Российского одноплатного микрокомпьютера - Repka Pi 4 Optimal, в котором множество улучшений - можно устанавливать модуль eMMC (Embedded MultiMediaCard), чтобы использовать его вместо карты памяти SD как для хранения данных, так и для загрузки операционной системы, но и это оказалось не самой главной “фишкой” новой модели Repka Pi - вскоре появилась версия платы этого одноплатника с интерфейсом PCIe 2.0 1x полностью совместимый с PCIe Raspberry Pi 5, т.е. все платы расширений для RPi 5 работают на Repka Pi 4 Optimal PCI. И это уже по настоящему интересно. Давайте посмотрим и попробуем вместе.

Читать далее

Пишем свой PyTorch на NumPy. Финал. Запускаем GPT-2

Level of difficultyEasy
Reading time8 min
Views4.3K

PyTorch — это мощный и гибкий фреймворк для машинного обучения, широко используемый для создания нейронных сетей. Он особенно популярен благодаря простоте использования, динамическим вычислительным графам и богатой экосистеме инструментов для обучения моделей. Для использования этого фреймворка, часто достаточно поверхностно понимать работу алгоритмов машинного обучения.

В этой части мы будем писать инференс код для GPT2 на собственной библиотеке!

Читать далее

Борьба с мельницами — 1: интерполяционные сплайны

Reading time8 min
Views11K
В данной статье лирический герой бросает вызов оптимальной реализации классического полиномиального интерполятора Лагранжа (Фарроу), в процессе битвы случайно открывает и доказывает тривиальное никому не нужное математгическое заклинание, с помощью которого пытается потеснить противника, но по результатам всех раундов боя решением судей фиксируется ничья.

— Где вы видите великанов? — спросил Санчо Панса.
— Да вон они, с громадными руками, — отвечал его господин. — У некоторых из них длина рук достигает почти двух миль.
— Помилуйте, сеньор, — возразил Санчо, — то, что там виднеется, вовсе не великаны, а ветряные мельницы; то же, что вы принимаете за их руки, — это крылья: они кружатся от ветра и приводят в движение мельничные жернова.
— Сейчас видно неопытного искателя приключений, — заметил Дон Кихот, — это великаны. И если ты боишься, то отъезжай в сторону и помолись, а я тем временем вступлю с ними в жестокий и неравный бой…

Читать дальше →

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

Level of difficultyEasy
Reading time13 min
Views171K

Современный мир пресыщен различной информацией, и в наше непростое время её важно уметь не только находить и сохранять. Многие наверняка заметили, что в на YouTube, кроме мусора, котиков и прочих бесполезных вещей (которые мы иногда не прочь посмотреть) есть масса полезного материала по самым различным темам. И иногда этот материал неплохо было бы сохранить себе на будущее, чтобы не зависеть от переменчивых настроений в мире.

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

Модель числа I. Нахождение инволюции

Level of difficultyHard
Reading time17 min
Views1.3K

Ранее в  статьях. о симметриях списочной многострочной модели (СММ) рассматривались окаймления строки нетривиальных инволюций (НIn) парами строк, содержащих квадратичные вычеты — полные квадраты (КВК). В таблице А0 показаны названные зависимости.

При изложении текста  решается задача определения нетривиальных инволюций (НIn) в конечном числовом кольце вычетов (КЧКВ) по составному (полупростому) модулю и формировании полного списка модели. Для получения решения используется модель составного числа (СММ) и Закон распределения делителей (ЗРД здесь). Любая пара строк СММ, окаймляющая строку нетривиальных инволюций, имеет номера, полусумма которых равна номеру строки НIn, совпадающему с меньшим значением инволюции.

Читать далее

Электровакуумные работы в домашней мастерской. Впаи в молибденовое стекло

Level of difficultyEasy
Reading time8 min
Views3.7K

Электрические вакуумплотные выводы — впаи, неотъемлемый и архиважный элемент любого электровакуумного прибора (ЭВП). Добавим: элемент сложный, ответственный, капризный и склонный к дефектам. Стёкла со спаиваемыми металлами должны иметь близкий КТР (коэффициент теплового расширения), иначе впай разрушится при нагреве или охлаждении. Электровакуумные стёкла при этом делятся на группы, именуемые по металлу, пригодному для впая — платиновая, молибденовая, вольфрамовая.
Читать дальше →

Raspberry CM5 невероятный подарок на новый год

Level of difficultyEasy
Reading time2 min
Views13K

Невероятный подарок от Raspberry до нового года мы уже не ждали. Многие любители малинок из средней школы не поймут о чем речь, однако Raspberry CM5 это то что мы так ждали, так еще и в том же форм факторе что и CM4.

Читать далее

Information

Rating
3,039-th
Registered
Activity