<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Michil Khabarov]]></title><description><![CDATA[Пишу о разработке]]></description><link>https://michil.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 04:23:18 GMT</lastBuildDate><atom:link href="https://michil.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Privacy Policy [Beer Map]]]></title><description><![CDATA[Last updated: January 31, 2026
Overview
Beer Map ("the App") is developed by Sagrera. This Privacy Policy explains how we handle your information when you use our App.
Data Collection
We do not collect any personal data.
Beer Map stores all your chec...]]></description><link>https://michil.dev/privacy-policy-beer-map</link><guid isPermaLink="true">https://michil.dev/privacy-policy-beer-map</guid><dc:creator><![CDATA[Мичил Хабаров]]></dc:creator><pubDate>Fri, 30 Jan 2026 15:53:45 GMT</pubDate><content:encoded><![CDATA[<p><strong>Last updated:</strong> January 31, 2026</p>
<h2 id="heading-overview">Overview</h2>
<p>Beer Map ("the App") is developed by Sagrera. This Privacy Policy explains how we handle your information when you use our App.</p>
<h2 id="heading-data-collection">Data Collection</h2>
<p><strong>We do not collect any personal data.</strong></p>
<p>Beer Map stores all your check-ins, photos, and preferences locally on your device. We have no servers, no analytics, and no way to access your data.</p>
<h2 id="heading-location-data">Location Data</h2>
<p>The App requests access to your device's location to:</p>
<ul>
<li><p>Show your position on the map</p>
</li>
<li><p>Suggest nearby places for check-ins</p>
</li>
</ul>
<p>Location data is processed entirely on your device and is <strong>never transmitted</strong> to any external servers.</p>
<h2 id="heading-photos">Photos</h2>
<p>Photos you take or select for check-ins are stored locally on your device within the App's private storage. They are not uploaded anywhere.</p>
<h2 id="heading-third-party-services">Third-Party Services</h2>
<p>Beer Map uses <strong>Apple Maps</strong> for map display and place suggestions. Apple's own privacy policy applies to their services: <a target="_blank" href="https://www.apple.com/legal/privacy/">https://www.apple.com/legal/privacy/</a></p>
<h2 id="heading-data-retention">Data Retention</h2>
<p>All data remains on your device until you delete it. Uninstalling the App will remove all associated data.</p>
<h2 id="heading-childrens-privacy">Children's Privacy</h2>
<p>Beer Map is intended for users of legal drinking age. We do not knowingly collect information from children.</p>
<h2 id="heading-changes-to-this-policy">Changes to This Policy</h2>
<p>We may update this Privacy Policy from time to time. Changes will be reflected in the "Last updated" date.</p>
<h2 id="heading-contact">Contact</h2>
<p>If you have questions about this Privacy Policy:</p>
<p>📧 <strong>Email:</strong> khabarovmichil@gmail.com</p>
<hr />
<p>© 2026 Sagrera. All rights reserved.</p>
]]></content:encoded></item><item><title><![CDATA[Beer Map Support]]></title><description><![CDATA[Contact
For questions, feedback, or issues, please reach out:
📧 Email: khabarovmichil@gmail.com
FAQ
How do I add a check-in?
Tap the + button on the map, take or select a photo of your beer, enter the beer name and location, rate it, and save.
Why c...]]></description><link>https://michil.dev/beer-map-support</link><guid isPermaLink="true">https://michil.dev/beer-map-support</guid><dc:creator><![CDATA[Мичил Хабаров]]></dc:creator><pubDate>Fri, 30 Jan 2026 15:51:42 GMT</pubDate><content:encoded><![CDATA[<h2 id="heading-contact">Contact</h2>
<p>For questions, feedback, or issues, please reach out:</p>
<p>📧 <strong>Email:</strong> khabarovmichil@gmail.com</p>
<h2 id="heading-faq">FAQ</h2>
<h3 id="heading-how-do-i-add-a-check-in">How do I add a check-in?</h3>
<p>Tap the <strong>+</strong> button on the map, take or select a photo of your beer, enter the beer name and location, rate it, and save.</p>
<h3 id="heading-why-cant-i-see-my-location">Why can't I see my location?</h3>
<p>Make sure you've granted location permissions to Beer Map in Settings → Privacy → Location Services.</p>
<h3 id="heading-how-do-i-delete-a-check-in">How do I delete a check-in?</h3>
<p>Go to History, swipe left on the check-in you want to remove, and tap Delete.</p>
<h3 id="heading-is-my-data-synced-to-the-cloud">Is my data synced to the cloud?</h3>
<p>No. All your data is stored locally on your device. We don't collect or store any personal information.</p>
<h3 id="heading-can-i-export-my-check-ins">Can I export my check-ins?</h3>
<p>This feature is coming soon in a future update.</p>
<h2 id="heading-app-version">App Version</h2>
<p>Current version: 1.0.0</p>
<hr />
<p>Made with 🍺 by Sagrera</p>
]]></content:encoded></item><item><title><![CDATA[Реверс-инжиниринг как инструмент понимания архитектуры Android]]></title><description><![CDATA[Введение
Реверс-инжиниринг - это не только про "взлом". Это про понимание: как работают компоненты системы, какие решения заложены в архитектуру, и почему некоторые механизмы Android устроены именно так.
В экосистеме Android, где миллионы строк кода ...]]></description><link>https://michil.dev/revers-inzhiniring-kak-instrument-ponimaniya-arhitektury-android</link><guid isPermaLink="true">https://michil.dev/revers-inzhiniring-kak-instrument-ponimaniya-arhitektury-android</guid><dc:creator><![CDATA[Мичил Хабаров]]></dc:creator><pubDate>Fri, 24 Oct 2025 17:18:51 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/HfWA-Axq6Ek/upload/a52a125cedb79fd1d480f49a0fcf3f10.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<hr />
<h2 id="heading-vvedenie">Введение</h2>
<p>Реверс-инжиниринг - это не только про "взлом". Это про <em>понимание</em>: как работают компоненты системы, какие решения заложены в архитектуру, и почему некоторые механизмы Android устроены именно так.</p>
<p>В экосистеме Android, где миллионы строк кода сочетают Java, C/C++, Binder IPC, HAL и ядро Linux, без инструментов реверса невозможно глубоко разобраться в том, что реально происходит "под капотом".</p>
<hr />
<h2 id="heading-pochemu-eto-vazhno">Почему это важно</h2>
<ol>
<li><p><strong>Глубокое понимание платформы.</strong> Когда исходники недоступны (например, GMSCore или OEM-патчи), реверс позволяет понять, как система принимает решения.</p>
</li>
<li><p><strong>Диагностика сложных багов.</strong> Часто поведение скрыто в native-слое или IPC-взаимодействиях.</p>
</li>
<li><p><strong>Анализ архитектуры и безопасности.</strong> Реверс помогает исследовать границы доверия и понять, какие проверки выполняются на клиенте, а какие - на сервере.</p>
</li>
<li><p><strong>Инструмент обучения.</strong> Это лучший способ изучить внутренности Android, не ограничиваясь документацией AOSP.</p>
</li>
</ol>
<hr />
<h2 id="heading-eticheskaya-i-pravovaya-storona">Этическая и правовая сторона</h2>
<p>Реверс-инжиниринг может быть <strong>законным</strong> при соблюдении ряда условий:</p>
<ul>
<li><p>Исследование ведётся на собственных устройствах или открытых образах (например, AOSP);</p>
</li>
<li><p>Цель - анализ, аудит или разработка совместимых решений, а не обход защиты;</p>
</li>
<li><p>Результаты не содержат приватных данных или инструкций по взлому.</p>
</li>
</ul>
<p>Главное - не нарушать NDA, не публиковать обходы, а фокусироваться на архитектуре и инженерных принципах.</p>
<hr />
<h2 id="heading-instrumenty-inzhenera-issledovatelya">Инструменты инженера-исследователя</h2>
<h3 id="heading-staticheskij-analiz">🔹 Статический анализ</h3>
<ul>
<li><p><code>jadx</code>, <code>apktool</code>, <code>baksmali</code> - декомпиляция и анализ структуры.</p>
</li>
<li><p><code>Ghidra</code>, <code>IDA</code> - дизассемблирование нативных библиотек.</p>
</li>
<li><p><code>protobuf-dump</code>, <code>strings</code>, <code>grep</code> - извлечение строк, ключей и структур.</p>
</li>
</ul>
<h3 id="heading-dinamicheskij-analiz">🔹 Динамический анализ</h3>
<ul>
<li><p><code>frida</code> - динамический hooking, трассировка методов, логирование вызовов.</p>
</li>
<li><p><code>strace</code>, <code>ltrace</code>, <code>perf</code> - системные вызовы и поведение процессов.</p>
</li>
<li><p><code>logcat</code>, <code>dumpsys</code>, <code>binder-trace</code> - визуализация IPC и жизненного цикла сервисов.</p>
</li>
</ul>
<h3 id="heading-yadro-i-ebpf">🔹 Ядро и eBPF</h3>
<ul>
<li><p><code>libbpf</code>, <code>bpftool</code>, <code>bcc-tools</code> - инструменты для запуска eBPF-программ, которые позволяют наблюдать за поведением ядра и приложений.</p>
</li>
<li><p>eBPF можно встраивать в Android-бинарь без внешних <code>.o</code> файлов - для внутреннего профилирования.</p>
</li>
</ul>
<hr />
<h2 id="heading-ebpf-novoe-izmerenie-nablyudaemosti">eBPF: новое измерение наблюдаемости</h2>
<h3 id="heading-chto-takoe-ebpf">Что такое eBPF</h3>
<p><strong>eBPF (Extended Berkeley Packet Filter)</strong> - технология, позволяющая запускать безопасные программы прямо в ядре Linux без необходимости модификации ядра.<br />В контексте Android это революционный способ <strong>профилировать и анализировать поведение приложений и системных сервисов</strong> с минимальным overhead'ом.</p>
<h3 id="heading-pochemu-ebpf-nezamenim">Почему eBPF незаменим</h3>
<ol>
<li><p><strong>Безопасность и изоляция.</strong> eBPF-программы проходят верификацию перед загрузкой - нельзя "сломать" ядро.</p>
</li>
<li><p><strong>Низкий overhead.</strong> Работает быстрее, чем <code>ptrace</code>, <code>strace</code>, и не требует root'а на уровне ядра.</p>
</li>
<li><p><strong>Глубокое наблюдение.</strong> Можно отслеживать syscalls, сетевые операции, Binder IPC, allocation-паттерны, работу планировщика и даже GC.</p>
</li>
<li><p><strong>Нет прямых аналогов.</strong></p>
<ul>
<li><p>Традиционные профилировщики (<code>perf</code>, <code>gdb</code>) требуют вмешательства в процесс и дают неполную картину.</p>
</li>
<li><p>Tracing-фреймворки (например, <code>atrace</code>) ограничены уровнями userspace.</p>
</li>
<li><p>eBPF же позволяет <strong>прозрачно наблюдать за всей системой</strong>, оставаясь невидимым для целевых процессов.</p>
</li>
</ul>
</li>
</ol>
<h3 id="heading-primer-profilirovanie-binder-vyzovov-cherez-ebpf">Пример: профилирование Binder вызовов через eBPF</h3>
<p>Можно написать eBPF-программу, которая отслеживает syscalls <code>ioctl</code> с кодом <code>BINDER_WRITE_READ</code> и собирает статистику по binder-коммуникациям между сервисами Android.</p>
<pre><code class="lang-c">SEC(<span class="hljs-string">"kprobe/binder_thread_read"</span>)
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">bpf_binder_read</span><span class="hljs-params">(struct pt_regs *ctx)</span> </span>{
    u32 pid = bpf_get_current_pid_tgid() &gt;&gt; <span class="hljs-number">32</span>;
    bpf_trace_printk(<span class="hljs-string">"Binder read in PID %d\n"</span>, pid);
    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}
</code></pre>
<p>В связке с <code>libbpf</code> и встроенным загрузчиком это можно интегрировать прямо в системный сервис Android, чтобы <strong>профилировать Binder-взаимодействия без внешних инструментов</strong>.</p>
<hr />
<h2 id="heading-metodologiya-issledovaniya">Методология исследования</h2>
<ol>
<li><p><strong>Постановка цели:</strong> не "сломать", а <em>понять</em>, как работает компонент.</p>
</li>
<li><p><strong>Сбор данных:</strong> APK, smali, бинарники, лог-файлы.</p>
</li>
<li><p><strong>Гипотеза:</strong> формулируем, как компонент должен вести себя.</p>
</li>
<li><p><strong>Проверка:</strong> динамический анализ, eBPF, трассировка вызовов.</p>
</li>
<li><p><strong>Вывод:</strong> документируем связи, зависимости, модель данных.</p>
</li>
</ol>
<hr />
<h2 id="heading-pochemu-analogov-net">Почему аналогов нет</h2>
<p>eBPF - уникален тем, что сочетает:</p>
<ul>
<li><p>наблюдаемость уровня ядра,</p>
</li>
<li><p>безопасность выполнения,</p>
</li>
<li><p>минимальное влияние на производительность,</p>
</li>
<li><p>универсальность (сеть, storage, IPC, scheduler, security hooks).</p>
</li>
</ul>
<p>Ни один другой фреймворк не даёт такого покрытия без модификации ядра. Это делает eBPF <strong>единственным реалистичным способом прозрачного профилирования Android-системы в production</strong>.</p>
<hr />
<h2 id="heading-zaklyuchenie">Заключение</h2>
<p>Реверс-инжиниринг - это не хакинг, а форма инженерного мышления. Он учит видеть логику систем, архитектуру, доверие и поведение.<br />А инструменты вроде eBPF делают это наблюдение точным и безопасным, превращая Android в исследуемую, прозрачную платформу.</p>
<hr />
<h2 id="heading-poleznye-ssylki">Полезные ссылки</h2>
<ul>
<li><p><a target="_blank" href="https://www.youtube.com/watch?v=IXde6koD718">Профайлинг JVM движка</a></p>
</li>
<li><p><a target="_blank" href="https://www.youtube.com/watch?v=EcmR2BOeVZE">Пример профилирования 2</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Софт который переводит в реалтайме]]></title><description><![CDATA[Я столкнулся с такой проблемой. Когда я звонил по телефону всегда было очень тяжело понимать другой язык когда ты не очень знаешь язык. И хотелось такое приложение где ты звонишь и слышишь речь на русском и говоришь на русском. На том стороне провода...]]></description><link>https://michil.dev/soft-kotoryj-perevodit-v-realtajme</link><guid isPermaLink="true">https://michil.dev/soft-kotoryj-perevodit-v-realtajme</guid><dc:creator><![CDATA[Мичил Хабаров]]></dc:creator><pubDate>Thu, 03 Jul 2025 22:01:34 GMT</pubDate><content:encoded><![CDATA[<p>Я столкнулся с такой проблемой. Когда я звонил по телефону всегда было очень тяжело понимать другой язык когда ты не очень знаешь язык. И хотелось такое приложение где ты звонишь и слышишь речь на русском и говоришь на русском. На том стороне провода тебя слышат на испанском и говорят с тобой на испанском</p>
<h3 id="heading-nachali-s-partnerom-delat-proof-of-concept-i-sdelali-prilku-cherez-kotoruyu-mozhno-zvonit-i-obshatsya-na-ih-yazyke-primerno-uzhe-byl-produkt-syroj-no-zaderzhki-byli-ochen-dolgie-primerno-3-sekundy-perevod-delalsya-i-potom-ozvuchivalos-eto-vse-sobesedniku-i-v-obshem-bylo-ne-ochen-obshatsya">Начали с партнером делать Proof Of Concept и сделали прилку через которую можно звонить и общаться на их языке. Примерно уже был продукт сырой но задержки были очень долгие примерно 3 секунды перевод делался и потом озвучивалось это все собеседнику и в общем было не очень общаться.</h3>
<h2 id="heading-glavnaya-problema-byla-sleduyushaya">Главная проблема была следующая</h2>
<ol>
<li><p>Ты говоришь предложение целиком и полностью (10 сек)</p>
</li>
<li><p>Перевод и озвучка твоей фразы (3 сек)</p>
</li>
<li><p>Озвученное аудио слышит твой собеседник (10 сек)</p>
</li>
</ol>
<p>В итоге 23 секунды ты говоришь 1 предложение. Поэтому решили сделать так</p>
<ul>
<li><p>Мой собеседник слышит и разговаривает со мной на английском</p>
</li>
<li><p>Я читаю текст и ничего не слышу но говорю на русском</p>
</li>
</ul>
<p>Так мы времени сэкономили на озвучку себе так как читать быстрее</p>
<p><em>В общем вот такая была самая первая версия приложения где я звонил подруге и общался с ней на русском но она слышала и отвечала на английском</em></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751576433643/579315ac-aef3-40e4-90d5-63ca2d01f413.jpeg" alt class="image--center mx-auto" /></p>
<p>В общем это была самая первая версия как вы поняли и распознователь текста работал не очень хорошо</p>
<p>Я был уже готов запускаться на рынок с костыльными решениями и быстро проверить продукт на жизнеспособность и принять решение дальше развивать или похоронить проект. Партнеру такой проект совсем не нравился я думаю он бы умер от стыда если мы запустились с этим проектом и далее развивали</p>
<p>Надо решать с распозновалкой голоса чтобы ускорить его и максимально приблизиться к такому уровню чтобы выгледело как будто ты разговариваешь с человеком напрямую.</p>
<h2 id="heading-potom-reshili-perenesti-vse-eto-na-komp">Потом решили перенести все это на комп.</h2>
<p>Лучше делать софт который показывает “субтитры“ собеседника но ты говоришь и твое аудио переведенным услышит собеседник сразу после того как ты закончишь говорить.</p>
<p>Пусть видит как губы движутся не слышит как ты говоришь в оригинале но как ты закончишь говорить услышит на английском</p>
<p>Такая идея показалась более имеющим шанс на жизнь так как по телефону если ты разговариваешь ты слышишь 13 секунд тишины.</p>
<h3 id="heading-po-doroge-domoj-nakinul-tehnicheskij-dizajn-v-pervom-liste-chto-popalos-pod-ruku">По дороге домой накинул технический дизайн в первом листе что попалось под руку</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751579347710/e36e7692-0057-4d0b-89f5-777fee75153c.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-v-itoge-napisal-virtualnyj-mikrofon-i-spiker">В итоге написал виртуальный микрофон и спикер</h2>
<p>Далее написал драйвер на MacOS и мы пришли к следующему этапу и она выглядела так</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751579616084/f696be48-75da-46b8-99d6-d723a8cad60f.jpeg" alt class="image--center mx-auto" /></p>
<p>Далее столкнулись с такой проблемой что размер буффера на определенных версиях MacOS отдается нестандартным образом не стандартные 44800 герц а 48600 тоесть было всегда рандомом и приходилось подгонять костыльно изза этого обрывался звук или некоторые высокие частоты превращались в шум</p>
<p>Далее начали делать дизайн и пришли к такому интерфейсу</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751579898078/bd44d6f2-8a32-455b-a681-04e59c133224.jpeg" alt class="image--center mx-auto" /></p>
<p>Как вы видите мы подключили ChatGPT</p>
<p>И можно на любом сказанном предложении можно было получить ответ. Например HR спросит любой вопрос и у тебя уже есть ответ и неважно на каком языке у тебя спросили</p>
<p>В общем: проект на глубокой заморозке так как в это время начал заниматься уже другим проектом и пришлось эту идею пока что приостановить</p>
<p>Когда нибудь руки дойдут мб продолжу</p>
]]></content:encoded></item><item><title><![CDATA[Система учета прихода/ухода сотрудников]]></title><description><![CDATA[Я начал свой путь hardware разработки с микроконтроллера ESP32
Купил в amazon вышло все в 20 евро

Думал что можно на нем сделать, включать выключать лампочки не интересно и пришла в голову идея а что если сделать систему учета прихода ухода сотрудни...]]></description><link>https://michil.dev/sistema-ucheta-prihodauhoda-sotrudnikov</link><guid isPermaLink="true">https://michil.dev/sistema-ucheta-prihodauhoda-sotrudnikov</guid><category><![CDATA[ESP32]]></category><category><![CDATA[arduino]]></category><dc:creator><![CDATA[Мичил Хабаров]]></dc:creator><pubDate>Mon, 30 Jun 2025 22:48:19 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/OCfHTaB5THQ/upload/27fa0f96a41b4a883f540d95f90c1006.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Я начал свой путь hardware разработки с микроконтроллера ESP32</p>
<p>Купил в amazon вышло все в 20 евро</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751323429205/0d2ee06b-d484-463e-8fe2-e47aad621aca.jpeg" alt class="image--center mx-auto" /></p>
<p>Думал что можно на нем сделать, включать выключать лампочки не интересно и пришла в голову идея а что если сделать систему учета прихода ухода сотрудников</p>
<h3 id="heading-zadachi-sleduyushie">Задачи следующие:</h3>
<ol>
<li><h3 id="heading-opredelit-chto-sotrudnik-prishel-v-ofis">Определить что сотрудник пришел в офис</h3>
</li>
<li><h3 id="heading-opredelit-chto-on-ushel">Определить что он ушел</h3>
</li>
</ol>
<p>В голову пришла идея сканирования сети WIFI так как в большинстве случаев сотрудник в офисе всегда подключается к сети и будет подключен до ухода</p>
<h2 id="heading-opredelit-chto-sotrudnik-prishel-v-ofis-1"><strong>Определить что сотрудник пришел в офис</strong></h2>
<p>ESP32 умеет подключатся к WIFI сети и я сделал ARP сканирование сети так как она работает на FreeRTOS и большинство привычных функций типа выдергивания ARP таблицы уже было вместе с проектами</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751323652363/55f121b0-d336-4603-9ebf-1693fef555d4.jpeg" alt class="image--center mx-auto" /></p>
<p><strong>Бизнес логика</strong></p>
<ol>
<li><p>Изначально у сотрудника состояние “в офисе“ стоит 0</p>
</li>
<li><p>Сканирование делается раз в минуту</p>
</li>
<li><p>Как только сотрудник подключается к системе состояние “в офисе“ становится 1</p>
</li>
<li><p>Если сотрудник уходит я даю ему шанс подключиться к сети в 15 минут</p>
</li>
<li><p>Если прошло более 15 минут после того как он был в сети то я его считаю ушедшим в то время когда я его видел</p>
</li>
<li><p>Но сотрудник может продолжить свое рабочее время если успеет “покурить“ в течении 15 минут</p>
</li>
</ol>
<h2 id="heading-v-itoge-vyshlo-primerno-tak">В итоге вышло примерно так</h2>
<h3 id="heading-prihod-v-ofis"><strong>Приход в офис</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751323543823/32dfeaba-cf2c-41bb-bc16-c169b828a24a.jpeg" alt class="image--center mx-auto" /></p>
<h3 id="heading-uhod-s-ofisa">Уход с офиса</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1751323497798/41cdc811-3e1d-46e9-b6ee-8d8adede59cf.jpeg" alt class="image--center mx-auto" /></p>
<p>Запартнерился с другом кто делал параллельный проект и решили внедрить эту систему ему в проект. Но к сожалению эта реализация не сработала так как у него работники работали в большом объекте где нету 100% покрытия вайфай сети и система показывала только косвенные данные</p>
<h2 id="heading-ishodniki-proekta">Исходники проекта</h2>
<p><a target="_blank" href="https://github.com/thisisdingo/mac-scanner">https://github.com/thisisdingo/mac-scanner</a></p>
]]></content:encoded></item><item><title><![CDATA[Переход в hardware development]]></title><description><![CDATA[В Барселоне в начале этого года у меня было тильтовое настроение, ничего не хотел делать и просто лежал несколько дней до утра и толком не спал. Искал себя потому что мобильная разработка изрядно зае*ала и не было того азарта как в 2013 году (когда п...]]></description><link>https://michil.dev/perehod-v-hardware-development</link><guid isPermaLink="true">https://michil.dev/perehod-v-hardware-development</guid><category><![CDATA[жизнь]]></category><category><![CDATA[програмирование]]></category><dc:creator><![CDATA[Мичил Хабаров]]></dc:creator><pubDate>Mon, 30 Jun 2025 22:10:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/32PpagSzeGs/upload/96220b64f6610ea02692444a6075560b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>В Барселоне в начале этого года у меня было тильтовое настроение, ничего не хотел делать и просто лежал несколько дней до утра и толком не спал. Искал себя потому что мобильная разработка изрядно зае*ала и не было того азарта как в 2013 году (когда прилки умели делать пару десятков людей в моем городе) и все превратилось в обычную рутину</p>
<h3 id="heading-ya-dumal-na-schet-perehoda-v-sleduyushie-napravleniya">Я думал на счет перехода в следующие направления</h3>
<ul>
<li><p><strong>Кибербезопасность</strong></p>
<ul>
<li><p>Он хорош тем что никогда она не умрет. Пока существуют деньги в каком либо формате в IT - всегда будет потребность держать его в сохранности. Для начинающих это будет тяжело так как надо иметь очень большую надсмотренность в любом виде разработки и уметь нутром чуять слабые места системы. С моим опытом особо не нужно я думаю париться так как у меня уже был самый крутой опыт. Я держал сервис с 6 млн уникальных пользователей в месяц у нас были кастодиальные кошельки с реальными балансами. И в этом сервисе конечно очень много всяких хакеров точно целились. Расскажу потом про ежедневные угрозы взлома и как 2 раза это удалось сделать и в чем был косяк</p>
<p>  Короче, кибербезопасть: Я решил туда не лезть так как на рынок пока очень закрытый в этой области и я думаю через 4-5 лет начнет открываться после вайб кодинг волны</p>
</li>
</ul>
</li>
<li><p><strong>AI</strong></p>
<ul>
<li>Начал изучать как работает модели но изза я очень многое уже забыл с математики и вспоминать это все было очень тяжело и времязатратно. Но я думаю что я опоздал уже и изучать нужно очень многое с нуля чего бы не хотелось. Да и в принципе математика мне не нравится :)</li>
</ul>
</li>
<li><p><strong>DevOps</strong></p>
<ul>
<li>После того как более менее уже погрузился в Kuburnetes, и держал под стабильные 20k RPS я начал думать что это будет перспективно так как высокие нагрузки это всегда высокая ответственность и если достаточно наработать опыт с большим трафиком то будет уже не страшно делать очень серъезные проекты</li>
</ul>
</li>
<li><p><strong>Hardware</strong></p>
<ul>
<li><p>Итак. Вернемся к истокам. Вы читаете этот текст на каком то устройстве а она сделана кем то и собрана из железа и кучи камней и загружена какая то логика и в сумме это все как то работает</p>
</li>
<li><p>И вот в очередной раз когда лежал до утра меня оценило, никогда не умрет hardware разработка никогда, и путь развития тут очень долгий. Много кто умеет делать какие то прилки и сайты а вот отправить сообщение с запчастей от стиральной машины в другой конец света мало кто.</p>
</li>
<li><p>Порог входа в эту сферу довольно простой но надо знать физику и чуток математики и нотку программирования.</p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-v-itoge-ya-reshil-uzhe-nachat-plavno-perehodit-v-hardware-razrabotku">В итоге я решил уже начать плавно переходить в hardware разработку</h3>
]]></content:encoded></item></channel></rss>