<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Maquefel's Stash</title><link>https://maquefel.me/ru/</link><description>Recent content on Maquefel's Stash</description><generator>Hugo</generator><language>ru</language><lastBuildDate>Wed, 15 Dec 2021 12:53:54 +0000</lastBuildDate><atom:link href="https://maquefel.me/ru/index.xml" rel="self" type="application/rss+xml"/><item><title>Использование git pw</title><link>https://maquefel.me/ru/using_git_pw/</link><pubDate>Wed, 15 Dec 2021 12:53:54 +0000</pubDate><guid>https://maquefel.me/ru/using_git_pw/</guid><description>&lt;p>При bleeding edge разработке или просто в рамках экспериментов, приходится добавлять патчи прямиком из maillists.&lt;/p>
&lt;p>Скачивать серию вручную и сохранять в mbox можно действительно озвереть даже не смотря на то, что, например в mutt, можно спокойно выделить патчи по одному и сохранить всю пачку (ключевое слово здесь &lt;strong>спокойно&lt;/strong>).&lt;/p></description></item><item><title>Создание образа Ubuntu для ARM «from scratch»</title><link>https://maquefel.me/ru/ubuntu-arm-from-scratch/</link><pubDate>Thu, 10 Dec 2020 13:13:01 +0000</pubDate><guid>https://maquefel.me/ru/ubuntu-arm-from-scratch/</guid><description>&lt;p>Когда разработка только начинается часто еще непонятно какие именно пакеты пойдут в целевую rootfs.&lt;/p>
&lt;p>Иными словами хвататься за LFS, buildroot или yocto (или еще что-то) еще рано, а начинать уже нужно. Для богатых (у меня на пилотных образцах 4GB eMMC) есть выход раздать разработчикам дистрибутив, который позволит оперативно доставить что-то чего не хватает в данный момент, а затем мы всегда можем собрать списки пакетов и сформировать список для целевой rootfs.&lt;/p></description></item><item><title>Функция buildargv с помощью Ragel</title><link>https://maquefel.me/ru/buildargv-ragel/</link><pubDate>Wed, 15 Jan 2020 10:09:10 +0000</pubDate><guid>https://maquefel.me/ru/buildargv-ragel/</guid><description>&lt;p>Забавное использование Ragel State Machine Compiler для создания функции разбора строки на int argc, char *argv[].&lt;/p>
&lt;p>Все началось с того, что понадобилась функция buildargv, чтобы разбирать строку для последующей передачи в&lt;/p>
&lt;p>int main (int argc, char *argv[]) { body }&lt;/p>
&lt;p>Ну ладно подумал я, не может быть, чтобы нигде нельзя было позаимствовать, сейчас найдем&amp;hellip; И не нашёл&amp;hellip;&lt;/p></description></item><item><title>auto git bisect на примере ядра Linux</title><link>https://maquefel.me/ru/auto-git-bisect-%D0%BD%D0%B0-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5-%D1%8F%D0%B4%D1%80%D0%B0-linux/</link><pubDate>Wed, 15 Jan 2020 10:05:08 +0000</pubDate><guid>https://maquefel.me/ru/auto-git-bisect-%D0%BD%D0%B0-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5-%D1%8F%D0%B4%D1%80%D0%B0-linux/</guid><description>&lt;p>Данная заметка имеет собой цель продемонстрировать автоматический &lt;strong>git bisect&lt;/strong> на примере ядра Linux. С последующим поиском официальной версии начиная с которой всё поломалось и последней хорошей версии.&lt;/p>
&lt;h1 id="описание-инструментария">Описание инструментария&lt;/h1>
&lt;p>Инструментарий&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> представляет собой простой проект для сборки ядра и модулей с минимальным конфигом достаточным для запуска в qemu, минимального busybox, конфигурационных файлов и небольшого количества скриптов.&lt;/p></description></item><item><title>Вся правда о linux epoll</title><link>https://maquefel.me/ru/%D0%B2%D1%81%D1%8F-%D0%BF%D1%80%D0%B0%D0%B2%D0%B4%D0%B0-%D0%BE-linux-epoll/</link><pubDate>Wed, 18 Jul 2018 10:26:49 +0000</pubDate><guid>https://maquefel.me/ru/%D0%B2%D1%81%D1%8F-%D0%BF%D1%80%D0%B0%D0%B2%D0%B4%D0%B0-%D0%BE-linux-epoll/</guid><description>&lt;p>Ну или почти вся&amp;hellip;&lt;/p>
&lt;p>&lt;img loading="lazy" src="https://cdn-images-1.medium.com/max/1600/1*TP1smt6FsYqSVmW7Yi_foA.png">&lt;/p>
&lt;p>Я считаю, что проблема в современном интернете — это переизбыток информации разного качества. Найти материал по интересующей теме не проблема, проблема отличить хороший материал от плохого, если у вас мало опыта в данной области. Я наблюдаю картину, когда очень много обзорной информации &amp;ldquo;по верхам&amp;rdquo; (практически на уровне простого перечисления), очень мало углубленных статей и совсем нет переходных статей от простого к сложному. Тем не менее именно знание особенностей того или иного механизма и позволяет нам сделать осознанный выбор при разработке.&lt;/p></description></item><item><title>Заметка о новом интерфейсе linux kernel — gpio uapi</title><link>https://maquefel.me/ru/linux-kernel-gpio-uapi/</link><pubDate>Tue, 27 Mar 2018 06:15:47 +0000</pubDate><guid>https://maquefel.me/ru/linux-kernel-gpio-uapi/</guid><description>&lt;p>Начиная с версии ядра 4.6-r1 нам стал доступен новый интерфейс для взаимодействия с подсистемой ядра gpio. Теперь существует три официальных способа работы с gpio и получения от них прерываний. Нет смысла углубляться в потребности для данной подсистемы, для малой части это суровые будни, для другой части веселое хобби, и для всех вместе в ядре была предоставлена новая возможность взаимодействия.&lt;/p></description></item><item><title>Резюме</title><link>https://maquefel.me/ru/%D1%80%D0%B5%D0%B7%D1%8E%D0%BC%D0%B5/</link><pubDate>Mon, 20 Mar 2017 19:04:06 +0000</pubDate><guid>https://maquefel.me/ru/%D1%80%D0%B5%D0%B7%D1%8E%D0%BC%D0%B5/</guid><description>&lt;table border="0" cellspacing="0" cellpadding="0">
&lt;tbody>
&lt;tr>
&lt;td>Москва&lt;/td>
&lt;td>&lt;strong>Шубин Никита Олегович&lt;/strong>&lt;/td>
&lt;td>maquefel@gmail.com&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">&lt;strong>Трудовая деятельность&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Старший инженер-программист&lt;/strong>&lt;/td>
&lt;td>&lt;strong>ЗАО "КЕМЕК Инжиниринг"&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Май 2012&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">Перевод контроллеров с управления ОС QNX 6.3 Neutrino (x86 архитектура) на GNU/Linux (arm архитектура)&lt;br />Разработка системы конфигурирования контроллеров и отображения результатов измерений и расчетов (Язык: C++; Основные библиотеки: libconfuse, protobuf, protobuf-с, libtpl, libcli; Визуализация: HTML, jQuery, websockets)&lt;br />Разработка процедуры тестирования и средств эмуляции для испытания контроллеров програмным способом (qemu, ivshmem, virtual_gpio_basic)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Начальник отдела по исследованию механических свойств грунтов&lt;/strong>&lt;/td>
&lt;td>&lt;strong>МОСТДОРГЕОТРЕСТ&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Январь 2009 - Май 2012&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">Разработка и внедрение системы автоматической обработки лабораторных опытов и автоматической генерации отчетов и паспортов испытаний (MS Excel, Qt)&lt;br />Изучены и внедрены принципиально новые методы исследования свойств грунтов&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Инженер-программист&lt;/strong>&lt;/td>
&lt;td>&lt;strong>ЗАО "КЕМЕК Инжиниринг"&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Октябрь 2007 - Май 2012&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>PHP программист&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Freelance&lt;/strong>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">&lt;strong>Образование&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>МГУПИ&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Инженер-Математик&lt;/strong>&lt;br />&lt;strong>Прикладная математика&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Осень 2005 - Лето 2010&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">&lt;strong>Основные проекты&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">Руководство разработкой программного обеспечения для автоматизации деятельности грунтовой лаборатории (полный цикл, включая счета-фактуры). C ++, Qt, PostgreSQL, Microsoft Excel&lt;br />Алгоритмы и программное обеспечение для автоматической обработки экспериментов трехосного сжатия. Расчет коэффициента Пуассона, объемных модулей и линейной деформации. С, Qt визуализация.&lt;br />Полный цикл разработки устройства, включая электрические схемы, программное обеспечение, и процедур технического контроля производственного цикла. ADC, C, C ++, Embedded Linux Arm.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">&lt;strong>Дополнительный опыт и награды&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">Nokia Certified Qt Developer&lt;br />Nokia Certified Qt Specialist: Core C++ for Qt Developers&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">&lt;strong>Языки программирования и технологии&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td colspan="3">С; С++; Bash; Qt 4.8 (Rusty); PHP (Rusty); SQL (Rusty);&lt;br />GNU/Linux, Linux kernel&lt;br />Мастер autotools и кросскомпиляции&lt;br />Большой опыт со встраиваемым ПО и устройствами&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>Использование gpio-generic и irq_chip_generic для драйвера gpio</title><link>https://maquefel.me/ru/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-gpio-generic-%D0%B8-irq_chip_generic-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-gpio/</link><pubDate>Thu, 26 Jan 2017 20:26:21 +0000</pubDate><guid>https://maquefel.me/ru/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-gpio-generic-%D0%B8-irq_chip_generic-%D0%B4%D0%BB%D1%8F-%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0-gpio/</guid><description>&lt;h1 id="введение">Введение&lt;/h1>
&lt;p>Данная статья является логичным продолжением предыдущей и её прочтение рекомендуется после ознакомления с &lt;a href="https://habrahabr.ru/post/303060/">предшествующим материалом&lt;/a>. Текущая заметка необходима для понимания последующего материала, дополнительного понимания подсистемы gpio в целом и способствует разработке собственных gpio драйверов. Положения данной статьи уже применимы не только к нашему виртуальному драйверу gpio, но и к любому mmio gpio драйверу в целом. Речь пойдет об упомянутой в предыдущей части &amp;ldquo;оптимизации&amp;rdquo;.&lt;/p></description></item><item><title>Драйвер виртуальных GPIO с контроллером прерываний на базе QEMU ivshmem для Linux</title><link>https://maquefel.me/ru/%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-gpio-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%BC/</link><pubDate>Thu, 07 Jul 2016 18:54:32 +0000</pubDate><guid>https://maquefel.me/ru/%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-gpio-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%BC/</guid><description>&lt;p>&lt;img alt="Природа прерываний" loading="lazy" src="https://maquefel.me/ru/%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-gpio-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%BE%D0%BC/77860c29e6024e7e818a102b55319904.jpg">&lt;/p>
&lt;p>Трудно недооценить роль &lt;strong>GPIO&lt;/strong>, особенно в мире встраиваемых систем ARM. Помимо того, что это крайне популярный материал для всех руководств для начинающих, &lt;strong>GPIO&lt;/strong> обеспечивают способ для управления многими периферийными устройствами, выступают в качестве источника ценных прерываний, или даже могут быть единственным доступным способом общения с миром для SOC.&lt;/p></description></item></channel></rss>