SWE notes
385 subscribers
15 photos
1 video
284 links
Канал про разработку ПО и все что с этим связано.

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

По вопросам сотрудничества обращаться @kuznetsovin
Download Telegram
SWE notes
На днях столкнулся с интересным кейсом при работе с Archimate моделью (архитектурная нотация такая). Заключается он в том что хотелось бы перед каждым комитом в git модель экспортировалась в HTML. Оказалось что это можно сделать с помощью консоли: Archi…
Если используется git collaboration, то для команды должен использоваться параметр --modelrepository.loadModel

Archi -application com.archimatetool.commandline.app -consoleLog -nosplash --modelrepository.loadModel ~/Documents/Archi/model-repository/architecture --html.createReport $(pwd)/arch


#archimate #cli
Forwarded from Блог*
#prog #rust #rustlib

embed_it — макрос, который позволяет включить в бинарь целую директорию ресурсов и потом обращаться к вложенным директориям и файлам по именам, причём как по статическим (в виде геттеров с теми же именами, что и файлы), так и по рантаймовым. Посмотрите пример в README.
Tabiew — это легковесное консольное TUI-приложение для просмотра и запроса табличных данных из файлов форматов CSV, Parquet и JSON с Vim-стиль управления и другими плюшками.

#rust #cli
🔥3👍1
Пожалуйста, не дарите IT-шникам на 23-е всякую херь(и IT-шницам на 8 марта). Не знаете что дарить?

Подарите им ссылку на подкаст "Нейминг - это сложно".
Если ваша пара раньше слушала только радиот и podlodka, то впечатления будут ярче, чем от первых поцелуев.

Если все будут слушать подкаст НЭС, воздух в стране очистится, рождаемость повысится! Заживём! Кто подумал, что это шутка, вспомните сколько раз вы постеснялись зайти в гости без крепкого кругозора в ИТ-сфере? То-то же.

Вообщем сам слушаю и вам рекомендую!

Apple Podcast: https://podcasts.apple.com/ru/podcast/%D0%BD%D0%B5%D0%B9%D0%BC%D0%B8%D0%BD%D0%B3-%D1%8D%D1%82%D0%BE-%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE/id1791503103
Яндекс.Музыка: https://music.yandex.ru/album/35074837
👍6💩3
Профилирование приложений в MacOS

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

#macos #benchmark #system
👍3
Channel photo updated
Обнаруживаем утечки памяти в MacOS

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

#macos #benchmark #system #memleaks
👍3
BPF Compiler Collection - отличный набор утилит для профилирования приложения на Linux (было бы не правильно не упомянуть его). В наборе куча готовых утилит, практически на все случаи жизни. Они используют eBPF для трассировки событий ядра, что делает их возможности довольно обширными.

#linux #benchmark #system
Подключение clangd для работы с Arduino/ESP32

Небольшая заметка для любителей Arduino и DIY про настройку lsp clangd для разработки под эту платформу из Emacs. Хотя можно обойтись простой Arduino IDE, но в ней нет привычных фич по автокомлиту и переходу между функциями (ну или сходу я не понял как это делать)

#arduino #embedded #diy #emacs
The Rust Performance Book

Полезный сборник рецептов по оптимизации производительности Rust приложений. В нем описаны какие примитивы и как влияют на производительность, а также методы её диагностики. Некоторые рецепты взял из него на вооружение.
👍3
A 10x Faster TypeScript

MS решили переписать компилятор TypeScript переписали с TypeScript на Go и это дало уже дало ускорение в прототипе ~10 раз. По словам авторов Go выбран за оптимальное размещение структур в памяти, GC и удобный подход к concurrency.

#Go #js
Exploring Operating Systems

Хороший материал для понимания системного программирования и основ операционной систем.

#linux #os #internal #sys
👍4
Forwarded from Rabid Transit
На Хабр вышла стенография моего доклада про то, что сейчас происходит в ландшафте СУБД и в чём главная идея Picodata как продукта. Предположу, что сам доклад видели не все, да и в тексте я это постарался изложить максимально последовательно.
👍5
Putting the “You” in CPU

Отличный материал для погружения в работу ПК на примере Linux.

Простым языком описано что такое прерывание, мультизадачность и прочие системные вещи

#sysprog #linux #os
👍4
Наткнулся на интересную мысль, что крупные компании ищут бизнес партнеров.

И сразу подумалось, почему подрядчиков не ищут, а ищут бизнес партнёров?

Может быть просто с подрядчиками сложно? Нужны требования, бюджет, планы и все эти взрослые слова, да ещё и риски лишние подрядчик берет не охотно. Вообщем зачем с ним связываться.

Давайте найдем того же подрядчика, но использовать и платить мы ему будем как в аутстафе (по сути когда фирма просто перепродает людей от своего имени) и дадим ему гордое имя "бизнес партнёр" (мы же такие большие все хотят работать с нами, поэтому пусть думает что мы партнёры, что естественно не так).

И получается, что денег съэкономили и даже получили в замен какой-то продукт, но вот потом команды такие выгорают, мелкие фирмы банкротятся (потому что "партнёрство", почему-то не покрывает их издержки) , а крупный бизнес после этого находит новых "партнёров", для которых репутационный проект превращает их в банкротов...
🔥1
Рассылка embedded rust

При серфинге наткнулся на рассылку по rust для встраиваемых систем, пролистал несколько выпусков и вроде как контент там годный, поэтому решил подписаться (может ещё кому-то будет полезно).

#rust #embeded
👍4
Why You Shouldn't Use OFFSET and LIMIT For Your Pagination

Сегодня при анализе запросов у одно из заказчиков наткнулся на интересную статью о том, почему не надо использовать LIMIT ... OFFSET для реализации пагинации (если кратко, то это хорошо работает только когда весь объем данных в памяти).

#db #sql
🔥3
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
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