Pull to refresh
-11
0

User

Send message

Запуск Линукс на TV-боксе на чипе RK3528

Level of difficultyMedium
Reading time8 min
Views11K

Мне удалось запустить Armbian сборку Ubuntu на TV-боксе с новым чипсетом RK3528. Используя конфиги для Hinlink H28K, первого поддерживаемого в Armbian устройства на этом чипе.

Это продолжение статьи, где я описал несколько способов достать Device Tree файлы из Андроид установленного на TV-боксе. Нужно для запуска на конкретном устройстве, даже для одной и той же модели - компоненты устройства могут отличаться, эти детали есть в Device Tree. Эта инструкция рассказывает как собрать и запустить Armbian используя полученный Device Tree файл. Написано для пользователей Линукс, средней сложности - почти всё подробно описано по шагам.

Инструкция для запуска в том числе с USB накопителя, что по умолчанию отключено в загрузчике U-Boot.

Читать далее
Total votes 27: ↑26 and ↓1+25
Comments28

Делаем эмулятор Android через Terminal: пошаговое руководство

Level of difficultyEasy
Reading time6 min
Views5.8K

В Android разработке может наступить момент, когда для тестирования приложения на различных устройствах может потребоваться виртуальное устройство. Эмулятор Android легко можно создать с помощью GUI Android Studio, но также можно и с помощью командной строки на macOS. В этой статье я расскажу вам, как именно это сделать!

Шаг 1: Установите Java

Убедитесь, что в вашей системе установлена ​​Java. Если нет, то это можно сделать с помощью Homebrew, выполнив следующую команду:

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments6

USB на регистрах: составные устройства

Reading time13 min
Views8.1K


Еще более низкий уровень (avr-vusb)
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: interrupt endpoint на примере HID
USB на регистрах: isochronous endpoint на примере Audio device


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

Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments8

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

Reading time2 min
Views74K

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

Серия моих предыдущих статей о здоровье и его компьютерном анализе и просто о ЗОЖ и фитнесе-физкультуре:

Бег в 2023 г. С пятки или с носка? Измеряем ударные нагрузки. Android и акселерометр
https://habr.com/ru/post/714698/

Как быстро бег уничтожает колени. Опрос любителей и мнение профессионалов
https://habr.com/ru/post/709182/

Программист с гаджетами в тренажерном зале
https://habr.com/ru/post/648421/

Читать далее
Total votes 58: ↑34 and ↓24+10
Comments236

DevOps vs DevSecOps: как это выглядело в одном банке

Reading time9 min
Views12K


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

Банк решил, что можно и нужно перетащить весь пайплайн к себе «под крылышко» от коммитов до выпуска. Чтобы всё было единообразно и под контролем команд, отвечающих за продукт в банке. То есть как если бы внешний подрядчик просто работал где-то в соседней комнате офиса. На корпоративном стеке. Это обычный девопс.

Откуда появилось Sec? Безопасность банка выставила высокие требования к тому, как внешний подрядчик может работать в сетевом сегменте, какой у кого доступ, как и кто работает с кодом. Просто ИБ ещё не знала, что когда подрядчики работают снаружи, мало какие банковские стандарты соблюдаются. А тут за пару дней надо их начать соблюдать всем.

Одно простое откровение, что подрядчик имеет полный доступ к коду продукта, уже перевернуло их мир.

В этот момент и началась история DevSecOps, про которую я хочу рассказать.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments4

Анатомия моего домашнего кластера Kubernetes

Reading time12 min
Views16K
Год назад я понял, что хочу создать собственный кластер Kubernetes. Я — разработчик программного обеспечения. Обычно я либо использую локальный кластер, состоящий из одного узла, либо применяю удалённый многоузловой кластер для тестирования своих проектов. В случае работы с кластером, состоящим из одного узла, я обычно полагаюсь на Minikube, хотя тут есть и другие решения, вроде проекта Kind, который может эмулировать наличие в кластере нескольких узлов. Поддержка нескольких узлов может появиться и в Minikube.

Итак, мне хотелось, чтобы в моём распоряжении оказались бы возможности обеих вышеупомянутых сред. То есть — чтобы у меня был бы и кластер, состоящий из нескольких узлов, и чтобы при этом работа с этим кластерам не подразумевала бы сетевых задержек, характерных для взаимодействия с удалёнными окружениями.



Уже написано множество замечательных руководств, посвящённых созданию многоузловых кластеров Kubernetes с использованием одноплатных компьютеров. Во многих из таких руководств в роли SBC применяется Raspberry Pi. Я, видя это, решил пойти по пути наименьшего сопротивления и тоже остановил свой выбор на этом компьютере. Платформа Raspberry Pi зарекомендовала себя как недорогое и доступное решение.

Надо отметить, что выбор этой платформы предусматривает некоторые компромиссы. Например, Broadcom и Raspberry Pi Foundation не лицензировали криптографические расширения ARMv8 (это нужно для аппаратного ускорения поддержки AES). Ещё одним неоднозначным решением является использование microSD-карт в виде стандартного носителя информации, с которого загружается операционная система.

Анализируя существующие руководства по созданию кластеров на одноплатных компьютерах, я не нашёл ни одного, в котором описывалось бы решение, удовлетворяющее моим требованиям. Рассказ о созданном мной кластере я начну именно с них.
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments18

Python 3.5 Асинхронное программирование с использованием asyncio

Reading time17 min
Views28K
Перевод главы 13 Параллелизм
из книги ‘Expert Python Programming’,
Second Edition
Michał Jaworski & Tarek Ziadé, 2016

Асинхронное программирование


В последние годы асинхронное программирование приобрело большую популярность. Python 3.5 наконец-то получил некоторые синтаксические функции, закрепляющие концепции асинхронных решений. Но это не значит, что асинхронное программирование стало возможным только начиная с Python 3.5. Многие библиотеки и фреймворки были предоставлены намного раньше, и большинство из них имеют происхождение в старых версиях Python 2. Существует даже целая альтернативная реализация Python, называемая Stackless (см. Главу 1 «Текущее состояние Python»), которая сосредоточена на этом едином подходе программирования. Для некоторых решений, таких как Twisted, Tornado или Eventlet, до сих пор существуют активные сообщества, и их действительно стоит знать. В любом случае, начиная с Python 3.5, асинхронное программирование стало проще, чем когда-либо прежде. Таким образом, ожидается, что его встроенные асинхронные функции заменят большую часть старых инструментов, или внешние проекты постепенно превратятся в своего рода высокоуровневые фреймворки, основанные на встроенных в Python.
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments14

Разработка чрезвычайно быстрых программ на Python

Reading time7 min
Views68K
Ненавистники Python всегда говорят, что одной из причин того, что они не хотят использовать этот язык, является то, что Python — это медленно. Но то, что некая программа, независимо от используемого языка программирования, может считаться быстрой или медленной, очень сильно зависит от разработчика, который её написал, от его знаний и от умения создавать оптимизированный и высокопроизводительный код.



Автор статьи, перевод которой мы сегодня публикуем, предлагает доказать то, что те, кто называет Python медленным, неправы. Он хочет рассказать о том, как улучшить производительность Python-программ и сделать их по-настоящему быстрыми.
Читать дальше →
Total votes 90: ↑83 and ↓7+76
Comments47

Опыт написания игры на TypeScript и WebGL или сказ о том, как backend-щик в современный frontend окунулся

Reading time9 min
Views7.7K

Доброго времени суток всем хаброжителям. Хочу рассказать вам о том, как я вернулся в любительский геймдев спустя 3+ года, кардинально сменив инструмент (а попутно — и свое мировоззрение), и что из этого вышло. Под катом вас ожидает:


  1. Краткая диспозиция всех фактов в начале пути. Как картинка «ДО» в дешёвой интернет-рекламе «ДО» и «ПОСЛЕ».
  2. Добровольный нырок в современный frontend в стиле «Где деньги, Лебовски?!»
  3. Легкий зуд в интимной точке, переходящий в жгучее желание изучить что-то новое, сделав что-нибудь старое.
  4. Осознание собственной беспомощности
  5. Преодоление
  6. Приятное окончание, ну совсем как в этих ваших фильмах.
Total votes 8: ↑8 and ↓0+8
Comments5

Двигаемые мышкой виджеты. Drag and drop в пределах окна

Reading time9 min
Views3.7K

Обычное понимание Drag and Drop(D&D) предполагает, что берётся, например, ссылка на файл из одного виджета и перемещается мышкой в другое окно или виджет. Далее пойдёт речь не о библиотечных функциях D&D, а о собственной реализации перемещения виджета в пределах окна и сопутствующего функционала. Код больше для примера, чем конкретного практического применения, написан в стиле Си с классами. Редактор — CodeBlocks 17.12, который перестал вылетать на Ubuntu x64 по сравнению с 16-ой версией.

image
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments2

Приглашаем на GDG DevFest Moscow 2019 — неформальную ИТ-конференцию

Reading time1 min
Views617
Привет! 9 ноября 2019 года в Москве при поддержке Нетологии пройдет конференция GDG DevFest Moscow 2019. Выступят спикеры из Google, Яндекса, Нетологии, Microsoft, SoundCloud и других ИТ-компаний. 

Будет неформальная обстановка, — пообщаемся о свежих технологических трендах, обсудим способы решения нетривиальных ИТ-задач, поделимся свежими профессиональными находками. 

Встречаемся в кампусе Нетологии 9 ноября: настраиваемся на 14+ докладов в двух потоках выступлений.
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments0

Рецепты для ELFов

Reading time16 min
Views30K

image


На русском языке довольно мало информации про то, как работать с ELF-файлами (Executable and Linkable Format — основной формат исполняемых файлов Linux и многих Unix-систем). Не претендуем на полное покрытие всех возможных сценариев работы с эльфами, но надеемся, что информация будет полезна в виде справочника и сборника рецептов для программистов и реверс-инженеров.


Подразумевается, что читатель на базовом уровне знаком с форматом ELF (в противном случае рекомендуем цикл статей Executable and Linkable Format 101).


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

Поработаем с эльфами
Total votes 23: ↑23 and ↓0+23
Comments19

Buildbot: сказ с примерами еще об одной системе непрерывной интеграции

Reading time15 min
Views12K

(картинка с официального сайта)

Buildbot, как несложно догадаться из названия, является инструментом для непрерывной интеграции (continuous integration system, ci). Про него уже было несколько статей на хабре, но, с моей точки зрения, из них не очень понятны преимущества сего инструмента. Кроме того, в них почти нет примеров, из-за чего трудно увидеть всю мощь программы. В своей статье я постараюсь восполнить эти недостатки, расскажу про внутренне устройство Buildbot'a и приведу примеры нескольких нестандартных сценариев.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments22

Information

Rating
Does not participate
Registered
Activity