SWE notes
492 subscribers
19 photos
3 videos
293 links
Канал про разработку ПО и технологии.

В нем я делюсь как авторскими материалами из своего блога https://www.swe-notes.ru так и полезными ссылки на другие ресурсы

По вопросам сотрудничества обращаться @kuznetsovin
Download Telegram
Forwarded from S.E.Reborn
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Linux Boot Process Explained.

• Наглядная демонстрация процесса загрузки Linux.

• Стоит отметить, что загрузка ОС, это многоступенчатый процесс. В различных дистрибутивах Linux процесс загрузки может несколько изменяться, но общая схема примерно одинакова и состоит из следующих стадий:

1. В момент запуска процессор передаёт управление по определённому физическому адресу в ПЗУ. В этот момент начинается выполнение кода BIOS/UEFI.
2. BIOS/UEFI определяет подключенные к системе устройства.
3. Выбор устройства (USB, Жесткий диск и т.д.) для загрузки и запуска ОС.
4. Начальный загрузчик считывает в память основной загрузчик (GRUB, LiLo, NTLDR) и передаёт управление ему.
5. После того, как выбранное ядро загружено в память и начинает исполняться, в первую очередь, оно должно извлечь самого себя из сжатой версии файла, перед тем как начать выполнять полезную работу. Как только извлечение произошло, оно загружает systemd и передает ему контроль.
6. systemd монтирует файловые системы, как определено в /etc/fstab, включая любые swap-файлы и разделы. К этому моменту, он может получить доступ к файлам конфигурации, расположенным в /etc, включая его собственным. Он использует собственный конфигурационный файл /etc/systemd/system/default.target, чтобы определить таргет (target), по которому нужно загрузить хост.
7. Запуск определенного набора стартовых скриптов и настройка рабочей среды.
8. Вход в систему. Система готова к работе.

• Более подробное описание процесса загрузки можно найти тут и тут.

#Linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Forwarded from infosec
🚂 Любой товарный поезд Америки можно взломать по радио.

Агентство по кибербезопасности США (CISA) сообщило об уязвимости CVE-2025-1727 (8,1 балла по шкале CVSS) в системах связи End‑of‑Train (EOT) и Head‑of‑Train (HOT) тормозов товарных поездов, используя которую, злоумышленники могли по радио повлиять на движение транспорта. Самое забавное, что об этой уязвимости знали еще 20 лет назад. Исправления для этой уязвимости попросту не существует, нужно внедрять новую систему на базе 802.16t.

Проблема связана со слабой аутентификацией в радиопротоколе, который связывает локомотив (голову поезда) с устройствами, установленными на последнем вагоне — оконечной сигнализацией (ETD), иногда называемой EOT, мигающим задним фонарем (FRED) или датчиком и тормозным устройством (SBU). Это позволяет атакующему злоумышленнику теоретически передать собственные команды в систему EOT/HOT и даже экстренно остановить состав.

End‑of‑Train и Head‑of‑Train также могут принимать команды от машинистов, самой важной из которых является торможение задней части поезда. Уязвимая система известна под названиями End‑of‑Train device или FRED (Flashing Rear‑End Device — дословно «Мигающее заднее устройство»). Такое устройство устанавливается в последнем вагоне грузовых поездов. FRED собирает телеметрию и передаёт данные на устройство в начале поезда с помощью специального протокола, в основе которого лежит устаревшая контрольная сумма BCH. С появлением SDR (Software‑defined radio) оказалось, что такие пакеты можно легко подделывать и отдавать команды устройству EoT для внезапного включения тормозов. Расстояние зависит от усиления и прямой видимости. При этом EOT/HOT в том виде, в котором он разработан, работает на расстоянии нескольких километров, поскольку в некоторых случаях поезда длиной 3–5 км — не редкость.

По итогам работы ИБ‑специалистов железнодорожным компаниям в США предстоит заменить более 75 000 устройств EoT на поездах по всей территории США, Канады и Мексики. Это внедрение запланировано на 2026 год, а на полную модернизацию составов потребуется около 5–7 лет и от $7 млрд до $10 млрд.

➡️ https://www.cisa.gov/news-events/ics-advisories/icsa-25-191-10

Кстати, эта уязвимость была продемонстрирована на DEFCON ИБ исследователем Эриком Рейтером 6 лет назад. Если интересно, то на YT есть полноценный обзор:

➡️ https://www.youtube.com/watch?v=vloWB0LHT_4

#Новости
Please open Telegram to view this post
VIEW IN TELEGRAM
Модель на основе чертежа во Freecad

В последнее время я увлекся DIY и в данной статье решил описать как на основе картинки с чертежом сделать 3d модель для печати на принтере.

#diy #freecad #model
👍2🔥1
Forwarded from Random Rust Dev
Плохие советы для краболюдов.

Часто бывает так, что в функции, которая принимает self нужно вызвать функцию, которая принимает &mut self.
fn final(self) {
self.mutating_foo();
}


Есть очевидный способ это сделать - объявить аргумент как мутируемым.
Для вызывающего кода это ни на что не влияет.
fn final(mut self) {
self.mutating_foo();
}


Или (менее популярно) перебиндить в теле функции
fn final(self) {
let mut me = self;
me.mutating_foo();
}


Но есть способ для того что бы инкрементить WTF_COUNT у читателя.

fn final(self) {
{ self }.mutating_foo(); 💀
}
👍2🔥2
Forwarded from partially unsupervised
Чистил канпюктер от старья и внезапно обнаружил, что за последний год перестал использовать в разработке четыре столпа, которые казались незыблемыми последние лет десять: iTerm, Pycharm, Pyenv, Docker Desktop.

iTerm и Pycharm продолжали обрастать фичами, которые мне ни к чему. Фичи бесплатными не бывают: у iterm в 2024 всплыла неприятная уязвимость, Pycharm продолжал слегка тормозить даже на свежем железе (возможно, я просто не знаю все флаги, как дать ему еще больше памяти). Так я перешел на более легкие альтернативы - Wezterm и Zed.

Pyenv когда-то был отличным способом управлять зоопарком питонов и вместе с poetry делал управление зависимостями терпимым. Но uv разрубил этот узел, оно просто работает. Лучшее, что случилось с Python экосистемой, не считая maturin.

Про избавление от Docker Desktop мне пришлось подумать на работе, потому что в Большой Корпорации для него нужна отдельная лицензия, которая положена не всем. Мне таки положена, но дать продакту демку стало сложнее. Так я познакомился с colima, перешел на нее (все еще с docker runtime / docker cli, которые не требуют коммерческой лицензии) на рабочей тачке, а заодно и на своей, совершенно этого не заметив. Впрочем, чистым докером я тоже пользуюсь все меньше, потому что меня покусал Dagger.
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
В Лас-Вегасе стартовал чемпионат мира по Excel. Три дня участники на огромной арене HyperX Arena соревнуются в создании таблиц, формул и диаграмм, как на настоящем кибертурнире. Победитель получит чемпионский пояс в стиле WWE и $60 000 призовых. @bezposhady
🔥2
Forwarded from Segment@tion fault
Видел в сети, что EU "тайно" приняла Chat Control 2.0. На самом деле нет, после вето в Еврокомиссии закон решили ставить на голосование в Европарламенте, это произойдет, по текущему roadmap, не раньше чем в апреле 2026 года.

Хуже всего в законе, что client-side scanning практически невозможно реализовать с точки зрения текущего права ЕС, поэтому скорее всего сервисы либо откажудся от P2P-шифрования (что вероятно), либо уйдут из ЕС (что вряд ли), либо заставят клиентов отправлять копию каждого сообщения товарищу майору (что повлечет кучу технических проблем, мы знаем как работают гос. системы). Это всё относится к мессенджерам и email, все эти клауд-диски пока не трогают.

Что делать с точки зрения корпоративной безопасности (исходим из того, что всё что узнала 3rd party - знает и свинья):

- Chat Control не заставляет пользоваться только "сертифицированными" мессенджерами со стучалкой
- Работники компаний не обязаны использовать, скажем Signal, именно из Apple/Google Store. Соотв. велком F-Droid, Apple MDM или прямая установка на аппарат
- Signal из магазина, скорее всего, будет обязан передавать копии сообщений, исходя из географического положения пользователя, а не откуда его скачали. Что повлечет дополнительные утечки, когда товарищ майор из ЕС будет получать сообщения из других стран, если сеть "по ошибке" влетела не туда в GeoIP или включили VPN

В общем у безопасников наступает веселый год. С чем заранее и поздравляю. Эпоха, когда можно было скачать защищенный мессенджер прямо из app store, была счастливой но недолгой.

Все новости можно следить тут
👍1
Media is too big
VIEW IN TELEGRAM
☝🏻 В Дубае прошёл крупнейший в истории «Тетрис» турнир

13 декабря 2025 года Red Bull и The Tetris Company устроили мировой финал Red Bull Tetris прямо в небе над знаменитой «Дубайской рамой» (Dubai Frame) — конструкцией высотой 150 метров и шириной 93 метра. 🏙

Компания Lumasky, специализирующаяся на дрон-шоу мирового уровня, превратила это пространство в гигантский игровой экран, где каждый дрон выполнял роль светящегося пикселя. Всего за три дня мероприятия было задействовано более 4,000 дронов, а в решающем матче участвовало 2,800 — по 1,400 на каждого игрока. 🤖

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

Это была первая в истории полностью играбельная партия в Тетрис, разыгранная в небе.

В финале турецкий игрок Фехми Аталар одержал победу над перуанцем Лео Солорсано, набрав 168,566 очков против 57,164 за пять минут игрового времени. 🏆

Турнир собрал чемпионов из 60 стран, которые прошли мобильные отборочные соревнования на смартфонах, затем национальные PC-финалы, и только лучшие из лучших попали в Дубай.

На мероприятии присутствовали создатель Тетриса Алексей Пажитнов, который когда-то создал игру еще в СССР.
================
👁 News | 👁 Soft | 👁 Gear | 🌐 Links
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
Децентрализованный месседжер Delta Chat

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

Также при вяснении новых подробностей постараюсь актуализировать информацию.

#messager #peer2peer #distributed
👍2🔥1
На пальцах про WebRTC на примере своего мессенджера


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

#peer2peer #messager
Планировал выложить статью про реверс инженеринг 3d деталей, но, увы, столкнулся опять с техническими сложностями, постараюсь победить их и все-таки заделать статью про это.

Если вам такое интересно, то ставьте лайки, это будет существеным доп мотивом!
👍26💩1
📍Meshtastic

Недавно начал разбираться с работой LoRa-связи. Это некий протокол, который позволяет передавать небольшие посылочки на расстояние в несколько километров используя очень маленькую мощность. И тут внезапно для себя открыл такое явление, как меш-сети.

Очень интересный проект из этой сферы - Meshtastic. Множество небольших недорогих устройств на основе LoRa формируют целую сеть, где можно стать участником просто купив свой узел. Текстовые сообщения передаются между узлами, не используя ни интернет, ни мобильные сети, сами ищут себе путь. А почитать можно так же на смартфоне в приложении.

Покупать девайс я конечно же не хотел, так как у меня уже два года лежит без дела плата ESP32, да и модемчик LoRa тоже нашёлся. Решил собрать все сам. Потом правда оказалось, что модем не совсем тот, и ножек на контроллере нужных не хватает... В итоге провозившись почти весь день, наколхозил изделие. Антенна на глазок, на 868 МГц. Еле нашёл единственную подходящую прошивку, кое-чего подкрутил, и оно запустилось!

Написал в общий чат "Меня слышно?", даже не надеясь на ответ, потому что был не уверен в работоспособности, но мне ответили! Потом на карте начали появляться узлы... Очень удивился, сколько людей есть в этой теме!

В общем, найдено новое микро-хобби на пару дней, или пару месяцев. Тут много непонятных моментов еще, плюс нужно сделать красивое устройство, вдруг все это пригодится, когда из связи останется только новый популярный мессенджер.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👎1
Бывает кейс когда необходимо организовать работу 2-х репозиториев через обмен git bundle и чтобы это сделать нужна корневая точка с которой будет делаться первый бандл.

При этом вам бы не хотелось передавать всю историю разработки в вашем репозитории, а исходную точку сделать надо, да еще чтобы история все-таки осталась в репозитории хоть в каком-то виде (например для трассировки требований в gittlab и связи коммитов и тикетов)

В таком случае можно использовать следующий вариант c подменой ветки main и историей во второй ветке.

Создаем ветку с которой начнется новая история:

git checkout <tag|commit>
git checkout --orphan crop-main
git add .
git commit -a "Init commit"


Далее текущая main ветка переименовывается в main-history:

git branch -m main main-history


Обрезанную ветку делаем основной:

git checkout crop-main
git branch -m main


Переноси нужные коммиты в новый main:

git cherry-pick <tag|commit>..main-history


После этого пушим 2 ветки в origin и получается урезанная копия основной ветки, но при этом во второй есть вся история изменений.

Так что может кому пригодится такой лайвхак
👍8
РНК сегодня не телеграм замедлил, а ускорил скорость отставания технологического развития страны.

Если раньше из местечковых пабликов можно было получить много полезных технических материалов любом специалисту, то теперь это невозможно без использования доп средств. Все эти материалы будут доступны всему миру кроме РФ, точно также как и с YouTube.

Поэтому все будут развиваться, а мы будем "изобретать велосипед" внутри и ходить по граблям, которые уже прошли другие, а в чем смысл?

P.S. лично мой канал останется только в телеге, так как коммерческой выгоды я от него не получаю
👍16🔥3💩1
Сегодня наткнулся на знатную мину при использовании Zed, а мина в том, что не получается установить расширение, так как оно хоститься на digital ocean и блокирувку эту обойти так и не удалось (так как блокировка происходит именно со стороны digital ocean).

Так что, похоже, придется вернуться на родимый Emacs, который на деле является OpenSource проектом, а не на словах как это нынче модно.