SWE notes
На днях столкнулся с интересным кейсом при работе с Archimate моделью (архитектурная нотация такая). Заключается он в том что хотелось бы перед каждым комитом в git модель экспортировалась в HTML. Оказалось что это можно сделать с помощью консоли: Archi…
Если используется git collaboration, то для команды должен использоваться параметр
#archimate #cli
--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.
embed_it — макрос, который позволяет включить в бинарь целую директорию ресурсов и потом обращаться к вложенным директориям и файлам по именам, причём как по статическим (в виде геттеров с теми же именами, что и файлы), так и по рантаймовым. Посмотрите пример в README.
GitHub
GitHub - riberk/embed_it: Include your assets statically into your application with a strict structure
Include your assets statically into your application with a strict structure - riberk/embed_it
Tabiew — это легковесное консольное TUI-приложение для просмотра и запроса табличных данных из файлов форматов CSV, Parquet и JSON с Vim-стиль управления и другими плюшками.
#rust #cli
#rust #cli
GitHub
GitHub - shshemi/tabiew: A lightweight TUI application to view and query tabular data files, such as CSV, TSV, and parquet.
A lightweight TUI application to view and query tabular data files, such as CSV, TSV, and parquet. - shshemi/tabiew
🔥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
Подарите им ссылку на подкаст "Нейминг - это сложно".
Если ваша пара раньше слушала только радиот и 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
Apple Podcasts
Нейминг это сложно
Подкаст (Технологии) · Еженедельно · В мире ИТ, где каждый байт данных имеет значение, название проекта, продукта или даже переменной может стать решающим фактором в его успехе. В нашем подкасте "Нейминг - это сложно" мы погружаемся в ув...
👍6💩3
Профилирование приложений в MacOS
Давненько я не писал своих статей, но сегодня выдалось немного времени и я решил описать свои изыскания, с которыми я столкнулся на работе, по профилированию приложения на MacOS.
#macos #benchmark #system
Давненько я не писал своих статей, но сегодня выдалось немного времени и я решил описать свои изыскания, с которыми я столкнулся на работе, по профилированию приложения на MacOS.
#macos #benchmark #system
www.swe-notes.ru
Профилирование приложений в MacOS · Заметки разработчика
Описание способов трассировки приложений в MacOS и построение FlameGraph без perf
👍3
Обнаруживаем утечки памяти в MacOS
В продолжении прошлой статьи решил накидать тезисы на тему нахождения утечки памяти под MacOS, что тоже может быть полезно при оптимизации высоконагруженных сервисов.
#macos #benchmark #system #memleaks
В продолжении прошлой статьи решил накидать тезисы на тему нахождения утечки памяти под MacOS, что тоже может быть полезно при оптимизации высоконагруженных сервисов.
#macos #benchmark #system #memleaks
www.swe-notes.ru
Обнаруживаем утечки памяти в MacOS · Заметки разработчика
Описание способов определения утечки памяти в MacOS
👍3
BPF Compiler Collection - отличный набор утилит для профилирования приложения на Linux (было бы не правильно не упомянуть его). В наборе куча готовых утилит, практически на все случаи жизни. Они используют eBPF для трассировки событий ядра, что делает их возможности довольно обширными.
#linux #benchmark #system
#linux #benchmark #system
GitHub
GitHub - iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more - iovisor/bcc
Подключение clangd для работы с Arduino/ESP32
Небольшая заметка для любителей Arduino и DIY про настройку lsp clangd для разработки под эту платформу из Emacs. Хотя можно обойтись простой Arduino IDE, но в ней нет привычных фич по автокомлиту и переходу между функциями (ну или сходу я не понял как это делать)
#arduino #embedded #diy #emacs
Небольшая заметка для любителей Arduino и DIY про настройку lsp clangd для разработки под эту платформу из Emacs. Хотя можно обойтись простой Arduino IDE, но в ней нет привычных фич по автокомлиту и переходу между функциями (ну или сходу я не понял как это делать)
#arduino #embedded #diy #emacs
www.swe-notes.ru
Подключение clang для работы с Arduino/ESP32 · Заметки разработчика
Как настроить фреймворк platformio для поддержки lsp clang
The Rust Performance Book
Полезный сборник рецептов по оптимизации производительности Rust приложений. В нем описаны какие примитивы и как влияют на производительность, а также методы её диагностики. Некоторые рецепты взял из него на вооружение.
Полезный сборник рецептов по оптимизации производительности Rust приложений. В нем описаны какие примитивы и как влияют на производительность, а также методы её диагностики. Некоторые рецепты взял из него на вооружение.
👍3
A 10x Faster TypeScript
MS решили переписать компилятор TypeScript переписали с TypeScript на Go и это дало уже дало ускорение в прототипе ~10 раз. По словам авторов Go выбран за оптимальное размещение структур в памяти, GC и удобный подход к concurrency.
#Go #js
MS решили переписать компилятор TypeScript переписали с TypeScript на Go и это дало уже дало ускорение в прототипе ~10 раз. По словам авторов Go выбран за оптимальное размещение структур в памяти, GC и удобный подход к concurrency.
#Go #js
Microsoft News
A 10x Faster TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.
Forwarded from Rabid Transit
На Хабр вышла стенография моего доклада про то, что сейчас происходит в ландшафте СУБД и в чём главная идея Picodata как продукта. Предположу, что сам доклад видели не все, да и в тексте я это постарался изложить максимально последовательно.
Хабр
Picodata: вторая жизнь in-memory баз данных
Привет, меня зовут Костя Осипов, и я занимаюсь разработкой СУБД. На Хабре есть несколько моих статей про MySQL, Tarantool и про всякое-разное. Кроме того, я веду Telegram-канал , где делюсь...
👍5
Распределённые транзакции в микросервисах: от SAGA до Two‑Phase Commit
Довольно не плохое введение в распределенные транзакции, без лишних переусложнений. Неплохие вводные для поверхностного погружения в тему.
Довольно не плохое введение в распределенные транзакции, без лишних переусложнений. Неплохие вводные для поверхностного погружения в тему.
Хабр
Распределённые транзакции в микросервисах: от SAGA до Two‑Phase Commit
Переход от монолита к микросервисной архитектуре приносит гибкость и масштабируемость, но и создает новые сложности. Одна из ключевых проблем – согласованность данных и транзакции . В монолите обычно...
👍2🔥2
Putting the “You” in CPU
Отличный материал для погружения в работу ПК на примере Linux.
Простым языком описано что такое прерывание, мультизадачность и прочие системные вещи
#sysprog #linux #os
Отличный материал для погружения в работу ПК на примере Linux.
Простым языком описано что такое прерывание, мультизадачность и прочие системные вещи
#sysprog #linux #os
Putting the "You" in CPU
Curious exactly what happens when you run a program on your computer? Learn how multiprocessing works, what system calls really are, how computers manage memory with hardware interrupts, and how Linux loads executables.
👍4
Наткнулся на интересную мысль, что крупные компании ищут бизнес партнеров.
И сразу подумалось, почему подрядчиков не ищут, а ищут бизнес партнёров?
Может быть просто с подрядчиками сложно? Нужны требования, бюджет, планы и все эти взрослые слова, да ещё и риски лишние подрядчик берет не охотно. Вообщем зачем с ним связываться.
Давайте найдем того же подрядчика, но использовать и платить мы ему будем как в аутстафе (по сути когда фирма просто перепродает людей от своего имени) и дадим ему гордое имя "бизнес партнёр" (мы же такие большие все хотят работать с нами, поэтому пусть думает что мы партнёры, что естественно не так).
И получается, что денег съэкономили и даже получили в замен какой-то продукт, но вот потом команды такие выгорают, мелкие фирмы банкротятся (потому что "партнёрство", почему-то не покрывает их издержки) , а крупный бизнес после этого находит новых "партнёров", для которых репутационный проект превращает их в банкротов...
И сразу подумалось, почему подрядчиков не ищут, а ищут бизнес партнёров?
Может быть просто с подрядчиками сложно? Нужны требования, бюджет, планы и все эти взрослые слова, да ещё и риски лишние подрядчик берет не охотно. Вообщем зачем с ним связываться.
Давайте найдем того же подрядчика, но использовать и платить мы ему будем как в аутстафе (по сути когда фирма просто перепродает людей от своего имени) и дадим ему гордое имя "бизнес партнёр" (мы же такие большие все хотят работать с нами, поэтому пусть думает что мы партнёры, что естественно не так).
И получается, что денег съэкономили и даже получили в замен какой-то продукт, но вот потом команды такие выгорают, мелкие фирмы банкротятся (потому что "партнёрство", почему-то не покрывает их издержки) , а крупный бизнес после этого находит новых "партнёров", для которых репутационный проект превращает их в банкротов...
🔥1
Рассылка embedded rust
При серфинге наткнулся на рассылку по rust для встраиваемых систем, пролистал несколько выпусков и вроде как контент там годный, поэтому решил подписаться (может ещё кому-то будет полезно).
#rust #embeded
При серфинге наткнулся на рассылку по rust для встраиваемых систем, пролистал несколько выпусков и вроде как контент там годный, поэтому решил подписаться (может ещё кому-то будет полезно).
#rust #embeded
The Embedded Rustacean
Everything Embedded Rust
👍4
Why You Shouldn't Use OFFSET and LIMIT For Your Pagination
Сегодня при анализе запросов у одно из заказчиков наткнулся на интересную статью о том, почему не надо использовать
#db #sql
Сегодня при анализе запросов у одно из заказчиков наткнулся на интересную статью о том, почему не надо использовать
LIMIT ... OFFSET
для реализации пагинации (если кратко, то это хорошо работает только когда весь объем данных в памяти).#db #sql
Why You Shouldn't Use OFFSET and LIMIT For Your Pagination
Gone are the days when we wouldn’t need to worry about database performance optimization.
🔥3
Forwarded from S.E.Reborn
This media is not supported in your browser
VIEW IN TELEGRAM
• Наглядная демонстрация процесса загрузки 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 млрд.
• Кстати, эта уязвимость была продемонстрирована на DEFCON ИБ исследователем Эриком Рейтером 6 лет назад. Если интересно, то на YT есть полноценный обзор:
#Новости
Please open Telegram to view this post
VIEW IN TELEGRAM