Pull to refresh
1
0
Alexey Vazhnov @vazhnov

Linux, Ansible

Send message

Изучаем RISC-V с нуля, часть 1: Ассемблер и соглашения

Reading time19 min
Views22K


Издеваться мы будем над микросхемой GD32VF103CBT6, являющейся аналогом широко известной STM32F103, с небольшим, но важным отличием: вместо ядра ARM там используется ядро RISC-V. Чем это грозит нам, как программистам, попробуем разобраться.


Кратко перечислю характеристики контроллера:


  • Напряжение питания: 2.6 — 3.6 В
    • Максимальная тактовая частота: 108 МГц
    • Объем ПЗУ (flash): 128 кБ
    • Объем ОЗУ (ram): 32 кБ
    • Объем Backup регистров (сохраняемых после сброса): 42 х 16 бит = 84 байта.
    • АЦП+ЦАП: 2 штуки АЦП по 10 каналов и 12 бит каждый плюс 2 ЦАП по 12 бит.
    • Разумеется, куча прочей периферии вроде таймеров, SPI, I2C, UART и т. д.
Total votes 27: ↑26 and ↓1+34
Comments38

Реверсим и улучшаем SATA контроллер

Reading time14 min
Views41K

Вы когда-нибудь задумывались, как много вокруг умной электроники? Куда ни глянь, натыкаешься на устройство, в котором есть микроконтроллер с собственной прошивкой. Фотоаппарат, микроволновка, фонарик... Да даже некоторые USB Type C кабели имеют прошивку! И всё это в теории можно перепрограммировать, переделать, доработать. Вот только как это сделать без документации и исходников? Конечно же реверс-инжинирингом! А давайте-ка подробно разберём этот самый процесс реверса, от самой идеи до конечного результата, на каком-нибудь небольшом, но интересном примере!

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

Как начать тестировать Ansible, отрефакторить проект за год и не слететь с катушек

Reading time10 min
Views8.8K


Это расшифровка выступления на DevOps-40 2020-03-18:


Начиная со второго коммита любой код становится legacy, т.к. изначальные задумки начинают расходиться с суровой реальностью. Это не хорошо и не плохо, это данность с которой сложно спорить и необходимо уживаться. Частью этого процесса является рефакторинг. Рефакторинг Infrastructure as Code. Да начнется история как отрефакторить Ansible за год и не слететь с катушек.

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments28

Ловим деградацию аккумуляторов АА и ААА при токах в 0.3 от емкости

Reading time5 min
Views27K
Два года назад я открыл для себя прекрасный новый мир зарядных устройств для аккумуляторов. И даже, насколько мог, структурировал свои знания в топике “Заряжаем АА, ААА и другое цилиндрическое и аккумуляторное”. После написания текста меня долгое время терзала одна неразрешенная проблема — какими токами правильно заряжать аккумуляторы. Считается разумным заряжать банки токами в 0.1 от емкости. Причем как старые NiCd, так и современные NiMh. Якобы, так мы откладываем деградацию.

Во-первых, такой подход занимает кучу времени — токи слишком низкие, заряд идет долго. Во-вторых, это накладывает ограничения на сами зарядные устройства, так как попробуй еще найти такие зарядки, которые заряжают токами от 100 или даже 50 mA. Та же “народная” и часто рекомендуемая Liitokala Lii-500 умеет только с 300 mA. В третьих, множество зарядок отлавливают момент полного заряда по “-dV”, для чего, по инструкциям, требуется ток в 0.3 от емкости.



Другой подход говорит, что современные NiMh на то, блин, и современные, чтобы заряжать их 0.3 от емкости, 0.5 и даже током равным емкости. В общем, в итоге я решил провести собственный эксперимент и в течении 100 циклов заряжал и разряжал аккумуляторы Ikea Ladda форматов АА и ААА токами в 0.3С, пытаясь увидеть деградацию. Длилось это больше полугода и результаты замеров можно посмотреть под катом.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments23

Обучение программированию 2019, или в поисках идеальной программы: Последовательность

Reading time8 min
Views6K

МУРОМ


Здравствуйте, меня зовут Михаил Капелько. Занимаюсь профессиональной разработкой ПО. Увлекаюсь разработкой игр и обучением программированию.


Предисловие


Осенью 2019-го я в третий раз участвовал в курсе обучения ребят 10-15 лет программированию в качестве одного из преподавателей. Наши курсы проходили с середины сентября по середину декабря. Каждое занятие было в субботу с 10:00 до 12:00. Подробнее о структуре каждого урока и деталях создаваемой на курсе игры можно узнать из статьи за 2018-й год.


Лично для себя я выделил две основные цели, к которым иду с помощью курсов:


  • создать удобный инструмент для создания простейших игр, понятный заинтересованным людям в возрасте от 10 лет;
  • создать программу обучения программированию, позволяющая заинтересованным людям в возрасте от 10 лет самостоятельно делать простейшие игры.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments23

Импортозамещение и судостроение

Reading time6 min
Views27K
Пару лет назад поставили передо мной задачу спроектировать забортный трап для судна. На каждом большом судне их два: правый и левый.

Забортный трап на судне

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

Принцип работы трапа упрощённо можно описать так. При наматывании каната на барабан лебёдки 5, лестничный марш 1 подтягивается к консольной части трап-балки 4. Как только марш упирается в консоль, она начинает поворачиваться относительно своей шарнирной точки крепления, приводя в движение вал 6 и поворотно-откидную площадку 3. В результате этого марш трапа заваливается на ребро, т.е. в положение «по-походному». При достижении конечного вертикального положения, срабатывает конечный выключатель, который останавливает лебёдку.

Кинематическая схема забортного трапа

Любой подобный проект начинается с изучения технического задания, нормативной документации и существующих аналогов. Первую фазу мы пропустим, так как в ТЗ содержались лишь требования к длине трапа, температурном диапазоне эксплуатации, комплектности и соответствии ряду отраслевых стандартов.
Читать дальше →
Total votes 75: ↑73 and ↓2+95
Comments94

Метеостанция Ласточка

Reading time8 min
Views24K
Разработка электроники для меня это и работа и хобби одновременно. В очередном порыве желания что-нибудь сделать наткнулся на любительский недорогой набор датчиков: дождя, скорости и направления ветра. Он и задал для меня новую область интересов. В этой статье я расскажу об увлекательном процессе проектирования своей погодной станции.


Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments54

В поисках LD_PRELOAD

Reading time12 min
Views24K
Эта заметка была написана в 2014-м году, но я как раз попал под репрессии на хабре и она не увидела свет. За время бана я про неё забыл, а сейчас нашёл в черновиках. Думал было удалить, но авось кому пригодится.



В общем, небольшое пятничное админское чтиво на тему поиска «включенного» LD_PRELOAD.
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments9

Точки входа в Python

Reading time6 min
Views30K
Многие думают, что точки входа это такие инструкции в setup.py, которые позволяют сделать пакет доступным для запуска из командной строки. Это, в целом, верно, но возможности точек входа не ограничиваются этим.

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



Осторожно: специфический юмор далее по тексту.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments6

Набор полезных советов для эффективного использования FreeIPA

Reading time3 min
Views11K


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

Содержание:

  1. FreeIPA агенте в lxc контейнерах
  2. Библиотека для использования API в python
  3. Несколько слов про Ansible модули
  4. FreeIPA агент в debian
  5. Реплика в Амазоне

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments18

Мультсериал «Математический кружок»

Reading time9 min
Views11K

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


Мне нравился стиль статей и иллюстраций старых номеров журналов, и хоть я не художник и не аниматор, а любитель-программист, лет десять назад я попробовал сделать схематический мультик о необыкновенной девочке по загадке из раздела "Квант для младших школьников":

Total votes 35: ↑33 and ↓2+31
Comments31

Почему от 3D болит голова / Часть 8 Расфокус и будущее 3D

Reading time22 min
Views19K

S3D: No pain IS gain



Когда-то давно в далекой галактике Geektimes был опубликован цикл статей о том, почему 3D-фильмы так сложно снимать без головной боли у зрителей. Как это часто бывает, цикл безвременно оборвался из-за недостатка времени у автора. При том, что тонны материалов остались лежать (иногда даже аккуратно подобранные).

В декабре этого года исполнится 10 лет волне съемок 3D-фильмов, поднятой триумфальным успехом фильма «Аватар»‎, впервые в истории собравшего более $2 миллиардов в прокате. С тех пор, по мнению журналистов, «3D умер»‎. По факту это, конечно, не так. По сравнению с ситуацией 13-летней давности количество фильмов, выпускаемых в 3D, выросло на порядок, а количество залов, где можно показывать 3D, выросло в 400 раз (!) и продолжает быстро расти с CAGR порядка 12–14%. Всем бы технологиям такую «смерть»‎. Тем не менее проблемы у 3D-фильмов, очевидно, есть. И мы уже много лет занимаемся их анализом и исправлением.

Хотелось бы понять, что с этими фильмами происходит. Почему «3D мертв»‎, а кинотеатры с 3D активно строят? 

Один уважаемый российский стереограф неоднократно публично называл нас патологоанатомами за то, как мы детально разбирали проблемы фильмов. Звучит обидно, особенно учитывая, что у нас активно разрабатываются и средства «реанимации»‎. С другой стороны еще Авиценна, помнится, говаривал пациентам: «Существуют я, ты и болезнь. Чью сторону ты примешь, тот и победит»‎. Поэтому не будем идти против мудрости веков. Если пациент сказал в морг, значит в морг! Медицина тут бессильна.


А для тех, кто хочет жить, и строятся все эти новые 3D кинозалы. Поскольку область растет и будет расти еще сильнее. Вопреки прогнозам сначала раздувающих, а потом бичующих хайп журналистов. 


Кому интересно, добро пожаловать под кат
Total votes 56: ↑56 and ↓0+56
Comments63

Linux многоликий: как работать на любом дистрибутиве

Reading time12 min
Views47K


Создать приложение для резервного копирования, работающее на любом дистрибутиве — задачка непростая. Чтобы обеспечить работу Veeam Agent for Linux на дистрибутивах от RHEL 6 и Debian 6, до openSUSE Leap 15.1 и Ubuntu 19.04 приходится решать спектр проблем, особенно если учесть, что в состав программного продукта входит модуль ядра.

Статья создана по материалам выступления на конференции LinuxPiter 2019.
Читать дальше →
Total votes 55: ↑52 and ↓3+49
Comments107

Файл дескриптор в Linux с примерами

Reading time14 min
Views102K
Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место?

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

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

Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?

«окей», — ответил я, «мы можем выключить дебаг в конфиге приложения и перезапустить его».
Интервьюер возразил: «Нет, приложение мы перезапустить не можем, у нас в памяти все еще хранятся важные данные, а к самому сервису подключены важные клиенты, которых мы не можем заставлять переподключаться заново».

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

Интервьюер остался доволен, а я нет.

Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Читать дальше →
Total votes 136: ↑136 and ↓0+136
Comments20

Невидимая фотография

Reading time4 min
Views72K


О чём речь?


Знакомые часто интересуются: зачем я занимаюсь невидимой фотографией? Инфракрасной, ультрафиолетовой, тепловой. Неужели там есть что-то интересное?

Поскольку лучше один раз увидеть, чем сто раз услышать, то вот вам небольшая демка. С 15-ю предметами. Здесь они в видимом спектре, а дальше мы на них посмотрим в других диапазонах:

[Видимый свет, 400-750 нм. F/6.3, 1/2500 сек, ISO 200, стеклянная 35-мм линза Nikkor. Снято на модифицированный Nikon D90 с удалёнными внутренними ИК/УФ фильтрами через светофильтр видимого света Kolari Vision Hot Mirror UV/IR Cut filter.]
Читать дальше →
Total votes 309: ↑307 and ↓2+305
Comments96

Осторожный переезд в Нидерланды с женой. Часть 3: работа, коллеги и прочая жизнь

Reading time12 min
Views75K
В 2017-2018 годах я искал работу в Европе и нашел в Нидерландах (про это можно прочитать здесь). Летом 2018-го мы с женой постепенно перебрались из Подмосковья в пригород Эйндховена и более-менее обустроились там (это описано здесь).



С тех пор прошел год. С одной стороны — немного, а другой — достаточно, чтобы поделиться своими опытом и наблюдениями. Делюсь под катом.

Ружье Бондарчука Ипотека все еще есть, но я про нее ничего не расскажу :)
Читать дальше →
Total votes 120: ↑110 and ↓10+100
Comments189

RISC-V с нуля

Reading time18 min
Views55K
В этой статье мы исследуем различные низкоуровневые концепции (компиляция и компоновка, примитивные среды выполнения, ассемблер и многое другое) через призму архитектуры RISC-V и её экосистемы. Я сам веб-разработчик, на работе ничем таким не занимаюсь, но мне это очень интересно, отсюда и родилась статья! Присоединяйтесь ко мне в этом беспорядочном путешествии в глубины низкоуровневого хаоса.

Сначала немного обсудим RISC-V и важность этой архитектуры, настроим цепочку инструментов RISC-V и запустим простую программу C на эмулированном оборудовании RISC-V.
Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments20

Генные сети, управляющие строением тела животных

Reading time9 min
Views26K
image
Как при помощи генных сетей превратить яйцо сначала в личинку, а затем во взрослую муху? Муха, как и другие насекомые, состоит из сегментов. Сегменты объединяются в три группы — голова, грудь и брюшко. На сегменте может быть пара конечностей. В груди три сегмента, на каждом по паре ножек. Второй грудной сегмент имеет еще крылья, а третий — жужжальца (маленькие рулевые крылышки, практически незаметные без лупы). Брюшко состоит из восьми сегментов, конечностей на них нет. В голове исходно было шесть сегментов, но в ходе эволюции насекомых границы между ними совершенно стерлись. Их конечности — это усики, которыми муха нюхает и щупает, и три пары ротовых конечностей. У жука или таракана это были бы жвалы, максиллы и нижняя губа, а у мухи они все сливаются в хоботок.

Чтобы все органы были на своем месте, каждая клетка должна знать, в каком месте зародыша она находится. Поэтому на ранних стадиях развития зародыша, когда в нем еще нет никаких органов и все клетки выглядят одинаково, в нем появляется биохимическая «координатная сетка» с передне-задней, спинно-брюшной и лево-правой осями. Мутации генов, образующих координатную сетку, могут легко и быстро изменить облик животного — передвинуть органы на другое место, изменить их количество и так далее. Поэтому такие гены важны для эволюции животных и очень активно изучается. Генная сеть разметки зародыша у мухи дрозофилы — любимой игрушки генетиков — пожалуй, самая изученная среди генных сетей животных.
Читать дальше →
Total votes 60: ↑60 and ↓0+60
Comments110

В Германии разработали требования к домашним маршрутизаторам

Reading time1 min
Views24K
Продолжительное время в Интернете регулярно появляются статьи об уязвимости маршрутизаторов для SOHO сегмента. Я тоже публиковал статью как обнаружить, что Ваш Микротик взломан. Резкий рост участников нашего канала в Телеграм (@router_os) показал, что проблема крайне остра.

Но проблема стоит глобальней.

Подавляющее большинство пользователей, покупающих маршрутизатор для дома, не понимают как эта «чёрная коробочка» работает. Они тыкают по кнопочкам в соответствии с инструкцией «quick start». А кто-то чисто методом «научного тыка» настраивает. Интернет появляется.
Дальше устройство начинает жить своей жизнью. И злоумышленникам не представляет труда использовать роутер для своих целей. Готовых инструментов для поиска таких железок в Интернете — полно.

Но!
Лёд тронулся, господа присяжные заседатели! (С) «Великий комбинатор»


В Германии выпустили документ с рекомендациями и минимальными стандартами, которым должны соответствовать маршрутизатор для конечных потребителей.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments92

Information

Rating
Does not participate
Location
Wroclaw, Польша
Date of birth
Registered
Activity