Месяц: Октябрь 2022

  • Первый в мире ноутбук на RISC-V: разбираем особенности китайского лэптопа Roma и перспективы устройств из КНР

    от автора

    На Хабре пару дней назад публиковалась новость о том, что китайцы выпустили первый в мире ноутбук с RISC-V процессором. Разработкой устройства занимались китайские компании DeepComputing и Xcalibyte. Достоинством ноутбука является именно то, что он базируется на процессоре с архитектурой RISC-V. Это открывает широкие возможности для китайской электронной промышленности в будущем. Насколько можно понять, этот ноутбук…

  • Управление учетными записями в Linux. Часть 3. Различные способы поднятия привилегий

    от автора

    В двух предыдущих статьях (часть 1, часть 2) мы рассмотрели различные аспекты правления учетными записями и настройки доступа к файлам. Однако, при настройке доступа всегда можно ошибиться, задав неверные значения. Если администратор выдал недостаточные права, то такая ошибка будет найдена довольно быстро, так как, тот кому этих прав не хватит очень скоро пожалуется админу. Но…

  • Быстрее, злее, смертоноснее: эволюция технологий на примере шоу боевых роботов BattleBots

    от автора

    Сооснователь турнира Грег Мансон о технологиях, изменивших бои роботов.На днях на портале Spectrum вышло интервью одного из основателей и исполнительного продюсера Battlebots Грега Мансона, в котором он рассказал о том, как 20 лет технического прогресса повлияли на соревнования роботов. Интервью получилось очень интересным не только для тех, кто в теме боев, но и для тех…

  • Пишем сложные операторы Kubernetes

    от автора

    Советы по созданию операторов уровня продакшена с помощью Kubebuilder.В этой статье рассматривается простой пример оператора для сценария автоматического создания ServiceAccount и ClusterRoleBinding с помощьюKubebuilder. Не всякий оператор подходит для продакшена. Вот такой, например, не подойдёт:Нехороший оператор Условие CRD не задано. Поле статуса условия обычно используется инструментами kubectl для наблюдения за статусом ресурсов.Без проверок работоспособности невозможно добавить…

  • DIY-одноплатник или OrangePi на минималках

    от автора

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

  • Тёплые мягкие навыки

    от автора

    Была на одном собеседовании, ребята хорошие — я им понравилась, вроде бы. И они мне понравились. Но, так уж вышло, речь у нас зашла о тестовом.Я говорю: понимаете, тестовых у меня сейчас несколько. И я устала. Тут, в общем, всё, что вам требуется, есть у меня на гитхабе.Но нет. У нас только с тестовым.Я говорю:…

  • Как я делаю цифровую минигитару. Часть 3

    от автора

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

  • Jetpack Compose Layouts

    от автора

    Иногда для вёрстки сложных экранов не хватает Row, Column, Box и других встроенных контейнеров, тогда нам приходится писать свои собственные. В этой статье мы напишем Row, который переносит дочерние элементы на следующую строку в случае недостатка места. Эта статья поделена на 2 части: базовую и продвинутую.Для создания собственных контейнеров в Compose используется элемент Layout:@Composable fun…

  • Анатомия интерфейсов в Go

    от автора

    В процессе знакомства с Go я нашел в документации пример:func returnsError() error { var p *MyError = nil if bad() { p = ErrBad } return p // Will always return a non-nil error. }После его просмотра меня заинтересовало, почему returnsError всегда будет возвращать не non-nil error?Переменные в Go всегда инициализируются значением. Это относится и…

  • Зачем серебрить провода?

    от автора

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