Как стать автором
Обновить
2884.28
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15
Сначала показывать

Разбираемся с Bluetooth Low Energy на примере превращения USB-клавиатуры в беспроводную

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


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

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

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

Данная статья ставит целью на примере разработки собственной Bluetooth-клавиатуры помочь разобраться в базовых понятиях Bluetooth, так как чтение скучных спецификаций и статей с введением в технологию даёт мало пользы.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Комментарии 12

Полезные ссылки

Игра: Спутник против мусора

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 3.3K
Всего голосов 50: ↑47 и ↓3 +44
Комментарии 8

Будни техпода. Как перенести данные с одного виртуального хостинга на другой

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 4.2K
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 4

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

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

Любая программная компания рано или поздно сталкивается с проблемой должностей. Некоторые организации довольствуются «плоской» системой, но в отсутствие системы должностей возникают теневые иерархии, что на самом деле хуже. Должности дают чёткую демаркацию ожиданий от конкретного сотрудника. Например, гораздо проще возложить на ведущего разработчика ответственность за техническое руководство, если эта роль чётко определена. Без определений должностей наверх будут подниматься самые громкие, а тихие и вдумчивые останутся незамеченными.

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

Не платите за то, сколько людей под руководством или сколько строк кода они написали. Платите им за генерируемые результаты.

Эта философия сильна и наделяет свободой. Неважно, если вы сотрудник, вносящий индивидуальный вклад (individual contributor, IC), занимаетесь техническим руководством или управлением командой. Важно то, насколько ваш вклад влияет на прибыль бизнеса.

В этом посте предлагается многоуровневая система, которую можно применять к IC, техническим руководителям и руководителям команд.
Читать дальше →
Всего голосов 44: ↑41 и ↓3 +38
Комментарии 5

Мигель де Икаса и его мечта — Linux на десктопах

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

Мигель де Икаса, 2014 г. Фото: he San Diego Union-Tribune

Как известно, гении предпочитают общаться и работать с равными себе, они притягивают друг друга. И если вы хотите что-то узнать о человеке — посмотрите, кто его друзья. Например, взять выдающегося Фабриса Беллара, о котором мы публиковали несколько статей. Его не очень волнует мирская суета (карьера, деньги, известность и прочие атрибуты «успеха» у обывателей), а только интересная работа. В интернете всего две фотографии Фабриса, и одна из них — с компьютерной конференции, где он сфотографировался с Мигелем де Икаса, основателем проектов GNOME и Mono.

Сразу понятно, кто достоин уважения с точки зрения Беллара.
Читать дальше →
Всего голосов 77: ↑76 и ↓1 +75
Комментарии 26

Fan Control — лучший софт для управления вентиляторами в компьютере

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


Каждый владелец компьютера сталкивался с шумом вентиляторов. Хорошо, когда они качественные, не шипят и не гудят, а материнская плата каким-то чудом сама управляет ими в оптимальном режиме, и все довольны.

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

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

В этой статье я опишу очень небольшую утилиту для управления вентиляторами в ПК, которая поразила меня своей гибкостью, и вот уже многие годы является второй в списке на установку в свежую систему. Почему второй? Потому что первым делом в систему ставится браузер, желательно огнелис.
Читать дальше →
Всего голосов 53: ↑50 и ↓3 +47
Комментарии 73

Каково это, создавать язык программирования сегодня?

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

«Эта книга – классика. Относитесь к ней бережно».

Такую фразу произнёс архитектор из нашей команды, передавая мне The Dragon Book. Разработкой компиляторов я увлёкся где-то 15 лет назад ещё на заре своей карьеры. Как-то раз, читая эту книгу поздно вечером, я заснул, небрежно уронив её на пол. Надеюсь, владелец не заметил небольшую вмятину на обложке после того, как я ему её вернул.

Вышла эта книжка в 1986 году. В те времена создание компиляторов было крайне сложной задачей, требовавшей обладания различными навыками в области компьютерных наук в целом и программирования в частности. Теперь, почти четыре десятилетия спустя, этой задачей занимаюсь я. Насколько сложна она сегодня? Приглашаю вместе разобрать процесс создания языка и посмотреть, насколько современные инструменты его упростили.
Читать дальше →
Всего голосов 57: ↑54 и ↓3 +51
Комментарии 5

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 6

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

В прошлый раз мы оставили наших героев в тот важный для нашей эпопеи момент, когда в процессе работы над Wolfenstein 3D они перебрались из холодного криминального пригорода Мадисона, штат Висконсин, в жаркий и консервативный пригород Далласа под названием Мескит. Именно этому месту было суждено стать колыбелью Doom. Что иронично, именно жители Мескита десятком лет ранее пытались запретить в США компьютерные игры за разврат, сотонизм и насилие.

Все части цикла статей о создании DOOM:
Читать дальше →
Всего голосов 64: ↑63 и ↓1 +62
Комментарии 15

Ладья на XSS: как я хакнул chess.com детским эксплойтом

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

Шахматы – это одно из многих моих хобби, за которыми я провожу свободное время, когда не ковыряюсь с какой-нибудь электроникой. При этом играю я так себе, и когда мне изрядно надоело проигрывать, я решил заняться тем, что у меня получается гораздо лучше… хакнуть систему!

В этой статье я расскажу о том, как использовал свои знания по кибербезопасности для обнаружения XSS-уязвимости (Cross-Site Scripting, межсайтовый скриптинг) на крупнейшем шахматном сайте интернета со 100 миллионами участников – Chess.com. Но для начала небольшое вступление (в котором будет затронута немного менее серьёзная, но достаточно занятная, уязвимость OSRF (On-site Request Forgery, подделка запросов на сайте).
Читать дальше →
Всего голосов 86: ↑84 и ↓2 +82
Комментарии 10

Испытания 5 отечественных автомобильных аккумуляторов в корпусе D23. Часть 7: итоги большого теста

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


Привет, Хабр! Сегодня завершается серия экспериментов с российскими и белорусскими аккумуляторами для автомобилей азиатского производства, а именно, АКТЕХ Standart, Тюмень ASIA, АКОМ ASIA, Tubor Classic и ZUBR ASIA.

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

Осталось повторить измерение ёмкости и тока холодной прокрутки, чтобы определить, как экстремальные испытания сказались на динамике этих характеристик. То есть, насколько долговечным и надёжным является каждый из аккумуляторов.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 8

Деловая репутация? Не, в этом году не

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

У нас тут удивительная ситуация, когда в энтерпрайзе впервые стало пофиг на деловую репутацию. Если речь про зарубежную компанию — то подход простой: «Гендиректор русский? Да он даже не гражданин!» А если в России — то уже другой: «Куда ты с подлодки-то денешься?»

Свежий пример. Декабрь, самый активный месяц российской экономики. Распродажи, купи-продай, кибератаки, подарки на Новый год, вот это всё.

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

Старый перестанет работать 29 декабря, реквизиты нового есть, но деньги туда принять нельзя.

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

А у нас там 500 юрлиц платит.

А, и да, кстати, зарплату вы с этого счёта тоже выплатить сотрудникам не сможете, потому что для его активации надо пойти в отделение. А отделение работает с 9 января. Оплаты за железо, за лицензии, зарплаты? Ну вы там держитесь.
Читать дальше →
Всего голосов 179: ↑168 и ↓11 +157
Комментарии 27

О люстре Чижевского и ионизации воздуха

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 14K
Картинка Harryarts, Freepik

Многим хорошо известна, а кто-то просто слышал, о таком интересном устройстве, как «Люстра Чижевского», или электроэффлювиальная люстра, автором которой принято считать Александра Леонидовича Чижевского.

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

Является несомненным тот факт, что его изобретение получило международное признание и вошло в широкий обиход, являясь известным и по сей день.
Читать дальше →
Всего голосов 88: ↑72 и ↓16 +56
Комментарии 123

DOD 250 — самый простой гитарный овердрайв

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


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

За чистое небо над головой

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

В прошлом году мы запустили на орбиту пикоспутник с самым настоящим сервером, и в честь этого сделали Telegram-игру «Спутник против мусора». Рекомендуем попробовать свои силы, если вдруг она прошла мимо вас. Мы уже рассказывали о том, как пришли к идее игры и каких персонажей придумали для неё, повторяться не будем. Здесь мы расскажем о разработке.
Читать дальше →
Всего голосов 41: ↑38 и ↓3 +35
Комментарии 8

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

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

Хабр, я снова пришёл к вам с практическими советами про доступность вместе с Ильёй. Мы показываем, как HTML и CSS могут улучшить или ухудшить её. Напоминаю, что Илья мой незрячий знакомый, который помогает мне найти наши косяки в вёрстке.


Сегодня мы рассмотрим следующие аспекты:

  • Какое количество символов следует использовать для текста подсказки для атрибута alt;
  • В чём польза атрибута lang;
  • Почему использование текстовых символов для декоративных задач — это плохая идея;
  • Для чего существует режим повышенной контрастности.

Давайте начнём!

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

Генератор случайных чисел, который можно запустить в голове

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

Люди ужасно плохо справляются с придумыванием случайных чисел. Я хотел научиться быстро генерировать «достаточно случайные» числа. Мне не нужно было что-то совершенное, просто способ придумывания случайных цифр за полминуты. Поискав онлайн, я нашёл старый пост в Usenet, написанный Джорджем Марсалья:

Выберите двухразрядное число, допустим, 23. Оно будет вашим «порождающим значением» (seed).

Создайте новое двухразрядное число: количество десяток плюс шесть, умноженное на количество единиц.

Пример последовательности: 23 –> (2 + 6 * 3) = 20 –> (2 + 6 * 0) = 02 –> 12 –> 13 –> 19 –> 55 –> 35 –> …

Его период будет порядком множителя (6) в группе остатков, простых относительно модуля, 10 (в данном случае 59).

«Случайными цифрами» будет количество единиц двухразрядных чисел, то есть 3,0,2,2,3,9,5,… то есть члены последовательности mod 10.

Больше всего Марсалья известен своим набором тестов diehard-генераторов случайных чисел (RNG), так что он в этом понимает (здесь и далее под RNG я имею в виду генератор псевдослучайных чисел (PRNG)). Мне стало любопытно, почему это работает и как он выбрал 6.

Мы будем писать на Raku, языке для гремлинов. На случай, если вы тоже гремлин, под спойлерами я буду объяснять все странные особенности.
Читать дальше →
Всего голосов 62: ↑59 и ↓3 +56
Комментарии 18

Бесплатные векторные карты на своём хостинге

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

Векторные карты Protomaps на базе OSM

Каждый веб-разработчик знает о OpenStreetMap (OSM), свободной альтернативе Google Maps. Несмотря на всеобщую известность OSM, у некоторых всё-таки возникают вопросы: как сделать веб-карту с открытыми данными OSM, как самостоятельно публиковать карты?

На эту тему есть популярные руководства, в том числе по работе с базами PostGIS и запуску тайлсерверов для реализации бесшовных карт OSM. Но есть принципиально иной подход — векторные карты Protomaps, которые обеспечивают более высокое разрешение, настройку внешнего вида и наложение произвольных меток. Они изначально предполагают максимальную простоту в создании своих карт. А главное, что разместить тайлы можно на своём хостинге или в облаке.
Читать дальше →
Всего голосов 85: ↑82 и ↓3 +79
Комментарии 12

Обманчиво простой и интересный RSA

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

Недавно, читая книгу Real-World Cryptography, я узнала об атаке Блейхенбахера, иначе называемой атакой миллионом сообщений. Этот вид атаки Даниэль Блейхенбахер продемонстрировал в 1998 году, взломав RSA через функцию шифрования PKCS #1. В книге об этой атаке было сказано немного, поэтому я решила изучить её сама и в конечном итоге реализовать.

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

Вместо этого я решила реализовать RSA сама, чтобы иметь возможность развернуть слабую схему шифрования, позволяющую осуществить атаку Блейхенбахера. Пока что у меня готова реализация RSA и PKCS (уязвимой версии). На создание основы RSA ушло около часа, плюс несколько дней на отладку. И теперь она (кажется) работает. Вскоре, если звёзды сойдутся, можно будет развернуть саму атаку.
Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Комментарии 19

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 5

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

В прошлый раз мы завершили рассказ на том моменте, как команда разработчиков id Software пришла к историческому решению: нужно делать по-настоящему крутой шутер в формате 3D. Первые поделки Джона Кармака в этом жанре получились не очень удачными и не слишком зашли игрокам — но именно они позволили набить первые шишки на пути к созданию DOOM. Теперь же наши герои начали работу над тем, что мы сейчас знаем под названием Wolfenstein 3D: бодрое мочилово нацистов в секретных подземельях.

Все части цикла статей о создании DOOM:
Читать дальше →
Всего голосов 66: ↑65 и ↓1 +64
Комментарии 4

Реверс-инжиниринг ToumaPet, китайского клона тамагочи с цветным экраном

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

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

Читать далее
Всего голосов 117: ↑116 и ↓1 +115
Комментарии 26

Передавать пустые срезы между Rust и C/C++ на удивление сложно

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

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

В общих чертах она выглядит так:

  • В правила работы с указателями и memcpy в С не заложены грамотные способы представления пустого среза памяти.
  • В С++ с правилами указателей проблем нет, но поведение memcpy здесь аналогично её поведению в С.
  • Интерфейс внешних функций (Foreign Function Interface, FFI) в Rust не лишён накладных издержек. Rust использует несовместимое с C/C++ представление срезов, требуя их преобразования при передаче в обоих направлениях. При этом о преобразовании очень легко забыть.
  • Срезы в Rust также несовместимы с арифметикой указателей, что создаёт проблемы в работе итератора срезов стандартной библиотеки. (Обновление от 2024-01-16: похоже, над этой проблемой работают).

Поскольку проблемы FFI касаются нескольких языков, я писал статью в качестве общей справки, описывающей их несогласованность.
Читать дальше →
Всего голосов 56: ↑51 и ↓5 +46
Комментарии 45

Конурбация Рура: чем живёт бывшее индустриальное сердце Европы

Уровень сложности Средний
Время на прочтение 20 мин
Количество просмотров 8.1K
Карта землепользования Рура из регионального плана развития. Видна сросшаяся городская ткань конурбации, плотная транспортная сеть и сохранившиеся очаги промышленности (серый цвет). Источник: RVR

Я долго откладывал материал по Руру на потом, для него нужно было созреть. Рурский бассейн, где до WWII добывалось половина угля и выплавлялось треть европейской стали, и который стал символом индустриальной мощи, за последние полвека сильно сдал. Но не сдался, пусть и прошёл через мучительную трансформацию. Мы приехали в Дортмунд в 2018 г. после учебного модуля в США. И, конечно, главным вопросом было, как региону после коллапса тяжёлой промышленности удалось избежать судьбы Детройта. Потрясло тогда отношение местных к ржавеющим остовам промышленных гигантов как к части истории, которую невозможно вычеркнуть. Два других принципиальных вопроса после США были: как агломерации удаётся заниматься развитием общей инфраструктуры (всегда и везде найдутся упёртые дядьки), и как удалось провернуть ревитализацию Рура, став центром экологических компетенций в пост-угольную эру. Но обо всём по порядку.
Читать дальше →
Всего голосов 73: ↑70 и ↓3 +67
Комментарии 16

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds