Pull to refresh
84
85.2

Как разработать драйвер Linux с нуля

Level of difficulty Hard
Reading time 11 min
Views 7.7K
Timeweb Cloud corporate blog Configuring Linux *Programming *Development for Linux *
Tutorial
Translation
image

Недавно я занимался изучением IoT и, так как мне не хватало устройств, при попытках симулировать работу прошивки я часто сталкивался с неимением нужного /dev/xxx. Так что я стал задумываться, а могу ли написать драйвер самостоятельно, чтобы заставить прошивку работать. Независимо от того, насколько сложно это будет, и удастся ли воплотить такое намерение, в любом случае вы не пожалеете, если научитесь разрабатывать драйвер Linux с нуля.
Читать дальше →
Total votes 45: ↑39 and ↓6 +33
Comments 7

Удивительное рядом. Как устроен буфер обмена в Windows и Linux

Level of difficulty Easy
Reading time 6 min
Views 16K
RUVDS.com corporate blog System Programming *Development for Linux *Development for Windows *Software
Опенсорсная утилита CopyQ показывает содержимое буфера обмена на всех ОС и сохраняет историю

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

В некоторых случаях данные вообще нигде не сохраняются по нажатию Ctrl+C. И по нажатию Ctrl+V будет возвращён NULL. Shit happens, как говорится…
Читать дальше →
Total votes 67: ↑66 and ↓1 +65
Comments 19

Инструменты наблюдаемости, о которых нужно знать в 2023 году

Level of difficulty Easy
Reading time 9 min
Views 4.4K
RUVDS.com corporate blog Open source *Data storage *Cloud services *Microservices *
Translation

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

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

В этой статье мы рассмотрим возможности, ограничения и важные особенности одиннадцати популярных инструментов наблюдаемости, что позволит вам выбрать наиболее подходящий для вашего проекта.
Читать дальше →
Total votes 40: ↑38 and ↓2 +36
Comments 4

Тестирование блочных стораджей: нюансы и особенности практики

Level of difficulty Medium
Reading time 11 min
Views 2.8K
YADRO corporate blog IT Infrastructure *SAN *Data storage *Data storages *
Opinion

Привет, Хабр! Меня зовут Сергей Качкин. Вместе с командой я занимаюсь тестированием производительности систем хранения данных: много тестов делаем сами, видим результаты наших коллег и заказчиков, так у нас накопилось некоторое количество опыта, которым хочется поделиться. 

В этой статье я расскажу про тестирование блочных стораджей. Начнем с теории — поговорим о выборе цели теста, отличиях синтетики от реальных нагрузок, выборе инструмента для генерации нагрузки. Затем перейдём к практике — тестированию случайного и последовательного доступа, измерению масштабируемости СХД. 

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

Минималистичный YouTube. Расширения для браузера и альтернативные клиенты

Level of difficulty Easy
Reading time 7 min
Views 35K
RUVDS.com corporate blog Google Chrome Browser extensions Browsers Software

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

Один из главных «нарушителей» — YouTube. Стоило один раз посмотреть пляжный волейбол на Олимпийских играх — и он уже несколько лет показывает женщин в купальниках на главной странице (пример). Даже неудобно открывать YouTube в присутствии сына…

Непрошеные и неуместные рекомендации видео — общая проблема, на которую часто жалуются. К счастью, их легко заблокировать, как и весь остальной мусор. Можно ходить на серверы YouTube через кастомный фронтенд, через сторонние клиенты или вообще из консоли. Некоторые альтернативные способы просмотра особенно актуальны в свете потенциальной блокировки YouTube на территории РФ.
Читать дальше →
Total votes 133: ↑130 and ↓3 +127
Comments 108

USB мини клавиатура на Arduino Pro Micro

Reading time 6 min
Views 12K
Developing for Arduino *

Знаю, что многие любители самоделок когда-либо пытались сделать собственную USB клавиатуру и/или мышь для автоматизации отправки команд. Это видно по количеству вопросов на данную тематику на Stack Overflow. Применений такого рода девайсам можно придумать много. От простейшего "дёргателя мышкой", чтобы компьютер не уходил в спящий режим (создавать имитацию активности пользователя), до управления различными устройствами. В моем случае девайс предназначен для управления системой "умная дача". Вернее, для тестирования ее функций. По нажатию кнопки открывается соответствующий файл с SD карты, и его содержимое выдается компьютеру так, как будто вы бы вводили его с обычной клавиатуры.

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

Тонкая настройка сети в Linux

Level of difficulty Medium
Reading time 7 min
Views 14K
OTUS corporate blog Configuring Linux *
Tutorial

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

Читать далее
Total votes 24: ↑19 and ↓5 +14
Comments 8

Девятый фронт. Знакомимся с 9front — операционной системой на платформе Plan 9

Level of difficulty Easy
Reading time 8 min
Views 9.8K
RUVDS.com corporate blog *nix *Reading room History of IT

В 80-х годах XX века компания Bell Labs внезапно решила, что Unix устарел. Эта операционная система, разработанная Кеном Томпсоном и Деннисом Ритчи в недрах Bell ещё в начале 70-х, прекрасно зарекомендовала себя в качестве платформы для обслуживания телефонии, учёта абонентов и автоматизации различных технологических процессов. Но в Bell Labs пришли к выводу, что нужно двигаться дальше — и главного разработчика Unix привлекли к созданию ОС нового поколения, получившей название Plan 9.
Читать дальше →
Total votes 81: ↑79 and ↓2 +77
Comments 15

Парсинг ответов на BLE-команды на языке Swift на примере GoPro

Reading time 11 min
Views 1.2K
Doubletapp corporate blog Development for iOS *API *Swift *
Tutorial

Привет, Хабр! Меня зовут Полина, работаю в Doubletapp iOS‑разработчиком и сегодня хочу рассказать о нашем опыте работы с API GoPro, а конкретно с парсингом ответов на команды BLE, которые описаны в этом API.

Содержание:

Принцип работы с BLE-устройствами
Сервисы и характеристики BLE-устройств
Процесс отправки команд и получения ответов через BLE
Простые ответы
Комплексные ответы
Формирование пакетов
Парсинг комплексных ответов
Общий алгоритм работы с BLE-ответом 

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

Две беды: дороги и полнота данных. Считаем протяженность дорог родины по данным OpenStreetMap

Level of difficulty Medium
Reading time 127 min
Views 1.5K
PostgreSQL *OpenStreetMap *Geoinformation services *Open data *

Зачем же обычному человеку информация из прошлой публикации "Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap"? Если надоело в пятницу читать мемасики и лайкать фотографии котиков в соцсетях, то можно задаться глобальными проблемами аналитики и посчитать протяженность дорог России. Ведь не за горами времена автомобилей с автопилотами... Это конечно не 42, как ответ на главный вопрос жизни, вселенной и всего такого, но результаты будут тоже достаточно лаконичными.

Для этого нам понадобится ноутбук или обычный десктоп, несколько десятков гигабайт свободного места, установленный docker, JVM 11+, maven и мой проект openstreetmap_h3. Анализировать геоданные мы будем с помощью PostgreSQL 15.1, PostGIS 3.3.2, H3 4.1.1. Исходные данные из проекта OpenStreetMap, запросы к БД не претендуют на правильность и качество исходных данных в масштабе страны нам не известно! Данная публикация является грубой интерпретацией данных OSM в первом приближении и не претендует на истинность и неопровержимость. Так же как не стоит верить оценке Хабра на чтение статьи в 127 минут, что сильно превышает реальные 5 минут, которые вы потратите на ознакомление с публикацией.

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

UART и с чем его едят

Reading time 10 min
Views 778K
Circuit design *
После Vogue истерии появилось множество вопросов, как подключить плату к компьютеру. И многие люди даже не понимают, что же такое UART. И я решил рассказать здесь какой это мощный инструмент.

image
Роутер превращается в компьютер, если к нему по UART подключить клавиатуру и дисплей

От телеграфа к COM-порту


Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известен из семейства UART протокол RS-232 (в народе – COM-порт, тот самый который стоит у тебя в компе). Это, наверное, самый древний компьютерный интерфейс. Он дожил до наших дней и не потерял своей актуальности.

Надо сказать, что изначально интерфейс УАПП появился в США как средство для передачи телеграфных сообщений, и рабочих бит там было пять (как в азбуке Морзе). Для передачи использовались механические устройства. Потом появились компьютеры, и коды ASCII, которые потребовали семь бит. В начале 60-х на смену пришла всем известная 8-битная таблица ASCII, и тогда формат передачи стал занимать полноценный байт, плюс управляющие три бита.
Читать дальше →
Total votes 198: ↑192 and ↓6 +186
Comments 93

Работа с СОМ-портом на Си в linux

Reading time 18 min
Views 39K
RUVDS.com corporate blog Programming *System Programming *Development for Linux *Manufacture and development of electronics *
Tutorial
Телетайп, на который БЭВМ могли выводить и получать данные. Фото взято здесь.

Каждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Недаром, моя статья "UART и с чем его едят" спустя 11 лет после выпуска набирает просмотры и комментарии.

Для разработчиков чаще всего появляется задача сопрячь какой-то датчик, либо удалённое устройство с одноплатником. Да что греха таить, сейчас в 2021 году UART, наверное, самый распространённый интерфейс для обмена данными, несмотря на всю его архаичность. Далеко за примером ходить не надо, внутри смартфона, лежащего у вас в кармане, будет с десяток UART интерфейсов, самый известный из которых — это подключение SIM-карты.

Поэтому умение работать с СОМ-портами в linux особенно важно. И вот, казалось бы, UART, древнейший интерфейс, всё должно быть известно и понятно, и даже опытные программисты ломают зубы, работая с ним в линуксе. Особенный цирк с конями начинается при работе с передачей сырых данных по RS-485. Не знаю ни одного программиста, который бы не хватил горя при разработке ПО для таких решений. Самое забавное, что с более новомодным i2c работать в линуксе куда проще и понятнее, чем с ортодоксальным UART. Чтобы не было путаницы дальше, всё семейство UART (RS-232, RS-485, UART 5V, UART 3,3 и т.д.) по тексту я буду называть COM-порт или UART. Мы говорим в статье не о физическом интерфейсе, а о программной стороне вопроса.

В этой статье я хочу показать, как писать свои программы, работающие с UART в ОС Linux. И неважно на каком языке вы пишете программу для работы с UART (python, c, c++, bash, php, perl и т.д.), принцип работы и грабли будут одни и те же, так как всё равно всё упирается в системные вызовы к ядру. А непонимание того, что там происходит и приводит к различным трудноуловимым багам.
Читать дальше →
Total votes 75: ↑72 and ↓3 +69
Comments 24

Делай нейминг как сеньор

Reading time 13 min
Views 83K
Dodo Engineering corporate blog Programming *System Analysis and Design *Perfect code *Development Management *

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

Как получается, что код становится мало понятным даже для его авторов? Почему нейминг так важен? Как придумывать названия, не применяя целые теории нейминга? Как лёгким процессом организовать работу с неймингом в команде? На все эти вопросы мы ответим в статье.

Читать далее
Total votes 186: ↑184 and ↓2 +182
Comments 220

Удивительные беспроцессорные «текстовые» компьютеры Wang 2200 — мечта писателя конца 70-х

Level of difficulty Easy
Reading time 7 min
Views 15K
Timeweb Cloud corporate blog Reading room History of IT Old hardware
Retrospective


В прошлой статье я рассказал об американском изобретателе китайского происхождения Ван Ане, создателе памяти на магнитных сердечниках, который построил с нуля успешный IT-бизнес в США. Самым интересным проектом основанной им компании Wang Laboratories стал специализированный компьютер для обработки текстов — удивительная и очень самобытная машина, аналогов которой в мире попросту не существовало. Конструкции и истории создания этого компьютера я решил посвятить сегодняшнюю заметку.
Читать дальше →
Total votes 115: ↑114 and ↓1 +113
Comments 75

Воспитай свой второй мозг. Увеличь продуктивность

Reading time 9 min
Views 48K
Emacs *Lifehacks for geeks

Наш мозг — крайне загруженная вещь. Наш мозг обрабатывает всю эту ежедневную суматоху: навестить бабушку, купить 100 500 продуктов в магазине, уповать о падении рубля и так далее. В этом урагане информации мы забываем по истине важные для нас вещи.

Хотели бы вы иметь второй мозг? Мозг, способный запомнить всё. Мозг, в котором содержится вся полезная информация из книг, статей, видео, полученная вами?

Звучит прекрасно, не так ли? Может, когда‑то и казалось сказками, однако не сейчас.

Хочу всё знать!
Total votes 70: ↑63 and ↓7 +56
Comments 107

Как программы общаются между собой

Level of difficulty Medium
Reading time 9 min
Views 11K
RUVDS.com corporate blog Programming *History of IT
Translation

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

С развитием технологий, прошествием времени и увеличением масштабов ответить на этот вопрос становится всё сложнее.

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

Предупреждение: в статье я буду упрощать и жертвовать точностью ради понятности.
Читать дальше →
Total votes 54: ↑49 and ↓5 +44
Comments 8

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

Reading time 10 min
Views 7.2K
IT career Lifehacks for geeks Health

Если от работы уже тошнит, надо ли, стиснув зубы, мотивировать себя на новые свершения или это повод забить тревогу? Расскажу о том, как профессиональное выгорание однажды довело меня до депрессии, как своевременно его распознать и не дать ему разрушить вашу карьеру.

Читать далее
Total votes 30: ↑25 and ↓5 +20
Comments 25

Bittorrent с нуля на Go

Reading time 15 min
Views 15K
SkillFactory corporate blog Programming *Network technologies *Go *
Tutorial
Translation


BitTorrent — протокол загрузки и распространения файлов через Интернет. В отличие от традиционных отношений клиент/сервер, когда загрузчики подключаются к центральному серверу (например, для просмотра фильма на Netflix или загрузки веб-страницы), участники сети BitTorrent, называемые одноранговыми узлами, загружают фрагменты файлов друг с друга. Это то, что делает BitTorrent одноранговым протоколом. Исследуем, как он работает, и создадим собственный клиент, который сможет находить одноранговые узлы и обмениваться с ними данными.

Читать дальше →
Total votes 59: ↑56 and ↓3 +53
Comments 9

Ультра-маленькие демки под DOS

Reading time 13 min
Views 9.4K
Programming *Assembler *System Programming *
Tutorial

В статье вы узнаете как сделать маленькие программы для MS-DOS на ассемблере, я покажу как рисовать 2D графику напрямую в видео-буфер. Может быть, вы даже вдохновитесь на создание собственного демо, которое будет ставить рекорды по размерам исполняемого файла.

Читать далее
Total votes 75: ↑74 and ↓1 +73
Comments 54

Разработчики роботакси столкнулись с багом: пассажир засыпает в конце поездки, а разбудить его могут только спасатели

Reading time 2 min
Views 15K
Cloud services *Robotics Transport IT-companies


В Калифорнии разработчики роботакси столкнулись с неожиданным багом в работе системы доставки. Пассажир может заснуть в конце поездки по Сан-Франциско, а разбудить его можно только спасателям, хотя их вызов обходится в десятки раз дороже, чем стоимость услуги доставки человека.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Comments 175

Information

Rating
49-th
Registered
Activity