Все потоки
Поиск
Написать публикацию
Обновить
373.75

Open source *

Открытое программное обеспечение

Сначала показывать
Порог рейтинга
Уровень сложности

ОС с нуля: Глава 2, Часть 1 — Да зачем нам этот Legacy

Время на прочтение9 мин
Количество просмотров18K

Пару месяцев назад я решил начать серию статей про написание своей ОС с нуля. Описал написание Legacy MBR загрузчика и переход в защищенный режим (без прерываний) и ещё пару мелочей. Сегодня я решил, что попытаюсь "перезапустить" эту серию (сохранив нумерацию частей). Суть в том, что теперь будут использоваться актуальные на август 2022 года материалы, и разработанное ПО можно будет легко протестировать на своей (U)EFI-машине.

Читать

Все словно забыли, почему возникли GNOME 3 и Unity

Время на прочтение3 мин
Количество просмотров18K


Хорошо известно, откуда появился GNOME 3, а потом и Unity. Но такое впечатление, что многие забыли о главном — почему были созданы эти окружения. И почему экосистема Linux настолько фрагментирована и разобщена.

Что ж, напомним предысторию в двух словах. В 2006 году корпорация Microsoft пригрозила подать в суд на всех разработчиков Linux с интерфейсом, похожим на Windows 95. Сейчас Microsoft позиционирует себя как дружелюбную компанию, но тогда было иначе. Это была серьёзная угроза.
Читать дальше →

Яндекс выложил в опенсорс бету фреймворка userver

Время на прочтение10 мин
Количество просмотров81K
Сегодня мы анонсируем выход в опенсорс фреймворка userver для создания высоконагруженных приложений. Для нас это важный способ поделиться опытом в разработке микросервисов, который мы накопили. Вот ссылка на Гитхаб-репозиторий c исходным кодом, документацией, примерами, шаблоном для создания своих сервисов (с настроенным CI, сборкой и тестовым окружением) и сервисом динамических конфигов. Всё это опубликовано под лицензией Apache 2.0.



🐙userver позволяет быстро создавать эффективные микросервисы на языке C++ и уже много лет активно используется в Яндекс Go, Еде, Лавке, Доставке, Маркете, финтехе и других проектах. Вот из каких требований мы исходили в процессе разработки:

  • Простота. Стажёр или студент, приходя к нам, может уже через неделю написать и отправить в продакшен новый микросервис.
  • Надёжность. Многие ошибки, в том числе и связанные с многопоточностью, можно поймать на этапе компиляции. Кроме того, фреймворк даёт подсказки по исправлению проблем.
  • Полнота. В userver есть всё необходимое для тестирования, работы с разными базами данных, кеширования, логирования, трейсинга, распределённых блокировок, работы с JSON, BSON, YAML, изменения параметров сервиса на лету и так далее.

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

P2P-мессенджеры с шифрованием — что нового?

Время на прочтение2 мин
Количество просмотров20K


В современных условиях трудно переоценить важность надёжных средств связи. В частности, для нестабильного интернета оптимально подходят децентрализованные и пиринговые месседжеры со сквозным шифрованием. Также разрабатываются радиопротоколы mesh-сетей, которые работают вообще без интернета (Reticulum, Meshtastic).

В этой области в последнее время произошло много интересного. Во-первых, стоит поздравить с круглой датой платформу Matrix, аудитория которой достигла 60 млн человек. Matrix продолжает неравный бой с технологическими гигантами за создание защищённой, открытой и удобной платформы коммуникаций.
Читать дальше →

Ищем боттлнеки за 30 минут с помощью Jaeger трейсов

Время на прочтение8 мин
Количество просмотров5.5K

Всем привет! Меня зовут Артем, я бэкенд-разработчик в команде клиентского бэкенда. Одна из важных частей моей работы — это снижение латенси нашего бэкенда. История, о которой я расскажу в статье, как раз и началась с одной из таких задач. Звучала она следующим образом:


В одном из эндпоинтов чекаута 99 перцентиль латенси пробивает SLO. Нужно это исправить.

Соответственно, возникает вопрос: как максимально быстро и точно найти причину тормозов очень низкочастотного запроса на 99 перцентиле и что делать, чтобы ее устранить? Ответом на него стала библиотека для полуавтоматического поиска узких мест в распределененных системах. Ссылка на гитхаб будет в конце статьи.

Читать дальше →

Можно ли тренировать чиподелов на 3 нанометра упражнениями с 130 нм? А упражнениями с 20000 нм?

Время на прочтение7 мин
Количество просмотров9.6K

В модном и молодежном учебнике электроники от Харрисов есть пример простого конечного автомата - "улыбащейся улитки". Я решил наглядно показать, как можно в домашних условиях реализовать улитку на трех технологиях:

1. Микросхемы малой степени интеграции CMOS 4000. Первая массовая КМОП-серия, выпущенная в 1968 году. 20 микрон то бишь 20 тысяч нанометров. На таких микросхемах учились электронике бумеры, то бишь люди, родившиеся во время бэби-бума 1950-х годов и вошедшие в технологию в начале 1970-х. В том числе Стив Джобс и Стив Возняк.

2. Микросхемы программируемой логики Altera Cyclone IV, ныне Intel FPGA Cyclone IV. 2009 год, 60 нанометров. Интеловская микросхема, в которой вообще нет никакого процессора, только набор логических ячеек, между которыми можно программировать соединения. Удобна как тренажер для будущих проектировщиков микропроцессоров, так как для построения в схемы внутри FPGA не нужно делать заказ на фабрике.

3. ASIC-технологии фабрики Skywater - лидера американского импортозамещения. 2019 год, 130 нанометров. На своем вебсайте компания пишет что они единственная в США контрактная фабрика микросхем, у которой нет инвесторов-иностранцев: "SkyWater is the only US-investor owned pure-play semiconductor and technology foundry". Поэтому в них инвестировал 170 миллионов долларов Пентагон.

На работе у меня есть доступ и к технологии 3 нанометра, но показать ее вам на Хабре не могу, поэтому прошу вас поверить мне на слово, что и на 3 нанометра "улыбающаяся улитка" работает. Кстати, все это будет на семинаре в Бишкеке на следущей неделе.

Итак:

Релиз Centrifugo v4 – маленькая революция

Время на прочтение17 мин
Количество просмотров12K

Сегодня мы рады представить новую версию сервера Centrifugo — Centrifugo v4. Релиз выводит Centrifugo на новый уровень с точки зрения эффективности клиентского протокола, простоты фоллбеков для WebSocket, экосистемы клиентских SDK и модели безопасности каналов. Также релиз включает в себя экспериментальную поддержку HTTP/3 и WebTransport.

Читать далее

Симулятор электронных схем Qucs-S снова жив

Время на прочтение6 мин
Количество просмотров57K

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux, Windows и FreeBSD), написан на С++ с использованием набора библиотек Qt и разрабатывается полностью в частном порядке (в отличие, например от KiCAD, который имеет спонсора в лице CERN). В феврале этого года проект восстал из мёртвых и вышел релиз 0.0.23. Главным новшеством версии 0.0.23 было то, что программа теперь портирована на Qt5, чем обеспечена собираемость на современных дистрибутивах Linux. Актуальным релизом на текущий момент является 0.0.24 https://github.com/ra3xdh/qucs_s/releases/tag/0.0.24, в котором добавлено несколько новых видов моделирования. Далее будут рассмотрены основные возможности программы и показано как в Qucs-S смоделировать схему.


Читать дальше →

«Врубай на Максиму!» или учимся решать математические задания для 6 и 7 классов в WxMaxima

Время на прочтение4 мин
Количество просмотров10K

Практически 10 лет и 50 статей назад, я набросал материал о моём знакомстве с замечательной системой компьютерной алгебры Maxima. Время шло, ничто не предвещало беды, но неожиданно я осознал, что дети имеют свойство взрослеть и скоро я не смогу решать школьные задачки в уме.

Пришло время сдуть пыль с "комплюхтера" установить себе Maxima и попутно еще раз напомнить сообществу о ней.

Сегодня мы не будем всё усложнять и бегло рассмотрим простейшие примеры для 6 и 7 классов по следующим темам:

наименьшее общее кратное

наибольший общий делитель

операции с дробями

упрощение выражений с одночленами и многочленами

линейные уравнение

системы линейных уравнений

построение графиков функции

Читать далее

Инструменты анализа временных рядов в ETNA

Время на прочтение6 мин
Количество просмотров12K

Меня зовут Саша, я разработчик библиотеки ETNA в Тинькофф. Расскажу про методы EDA в библиотеке ETNA, а также о том, что можно увидеть с их помощью в данных и как использовать для улучшения модели прогнозирования.

Читать далее

Украшаем молоток: как автоматизировать разбор проблем в дебаггере

Время на прочтение10 мин
Количество просмотров2.3K
Ошибки и проблемные ситуации, которые возникают при работе высоконагруженных систем, имеют свои особенности и специфику. У нас в «Лаборатории Касперского» накопился целый ряд приемов по анализу таких ошибок. Часть приемов мы выложили в опенсорс в виде библиотеки скриптов для отладчиков, где есть в том числе JS-скрипты для WinDBG и Python-скрипты для GDB. В этой статье на живых примерах будет показано, как их использовать, и как автоматизировать хотя бы часть процесса анализа ошибок и подозрительных ситуаций.

cover
Читать дальше →

Как убедиться, что код библиотеки не был изменен?

Время на прочтение7 мин
Количество просмотров4.6K

Любые Open Source проекты потенциально подвержены риску вредоносной модификации сторонними контрибьюторами и уязвимость может появиться на любом уровне распространения кода — от исходных текстов до двоичных артефактов, которые связываются с прикладными программами. Кроме того, нередко в библиотеках и подсистемах Linux обнаруживаются ошибки, которые могут привести к нарушению функционирования системы, аварийному завершению приложения или обходу механизмов безопасности и важно иметь возможность быстро обнаружить все затронутые этой ошибки компоненты и выполнить выпуск заплатки для 0-day уязвимости.

Для решения всех этих задач Linux Foundation в 2010 году предложил формат для описания юридических аспектов использования программного обеспечения (в частности, лицензии), происхождения артефакта (исходного кода или двоичного файла), способов контроля целостности объекта, а также зависимостей от других объектов. В 2021 году формат был принят как стандарт ISO/IEC 5962:2021 (спецификация SPVX V2.2.1) и является основой для определения SBOM (Software Bill of Materials), которые описывают зависимости компонентов, способы их верификации и описание цепочки поставок для валидации источника.

В статье мы обсудим общие принципы описания SPDX и инструменты (включая недавно открытый Microsoft SBOM Tool, ранее назывался Salus), для создания SPDX/SBOM (в том числе, для автоматической генерации на основании файлов спецификации зависимостей проекта).

Читать далее

Обработка исключений в Java в функциональном стиле

Время на прочтение4 мин
Количество просмотров28K

В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.

Предпосылки

В Java начиная с версии 8 появились новые возможности в виде функциональных интерфейсов и потоков (Stream API). Эти возможности позволяют писать код в новом функциональном стиле без явных циклов, временных переменных, условий ветвления и проч. Я уверен что этот стиль программирования станет со временем основным для большинства Java программистов.

Читать далее

Ближайшие события

Как работает быстрый текстовый поиск для WordPress

Время на прочтение7 мин
Количество просмотров7.9K

Много лет мы (команда Epsilon Web Manufactory) занимались разработкой сайтов и разных приложений на заказ, в основном это были проекты на базе популярного движка WordPress. И как правило самой сложной и интересной задачей всегда был полнотекстовый поиск. Если на сайте были только статьи и какие-то кастомные типы записей, содержащие заголовок и основной текст, то достаточно было использовать встроенный класс WP_Query, который с небольшой подстройкой входных параметров отлично справлялся с задачей. Но это было лет 10-12 назад.

Читать далее

99+ бесплатных инструментов для анализа зловредов

Время на прочтение10 мин
Количество просмотров58K

Знай своего врага ― одна из максим, которой руководствуются специалисты по информационной безопасности. Она касается и зловредов. Существуют сотни инструментов, которые помогают исследовать вредоносное ПО. К счастью, многие из них бесплатны и имеют открытый исходный код. 

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

Читать далее

OpenSource NTA для безопасника

Время на прочтение8 мин
Количество просмотров19K

Привет, хабр!

Уже многое было рассказано об анализе сетевого трафика, например с помощью suricata или snort, но что делать, если контекста алертов IDS\IPS все еще не хватает для полноценного анализа?

Под катом - обзор opensource NTA – Arkime (в прошлом Moloch) и разбор нескольких кейсов.

Читать далее →

Парсинг дат в JS — добавляем русский язык в библиотеку Chrono

Время на прочтение3 мин
Количество просмотров6.3K

Crono это парсер дат на естественном языке. Кроме формальных ISO 8601 или dd.MM.yyyy, распознает варианты а-ля «в среду утром‎», «с 10 до 11 вечера», «2 часа 5 минут назад» и т.п. Поддерживает 8 языков, в том числе, теперь, и русский.

Читать далее

В новом релизе Kubernetes-платформы Deckhouse 1.33 появился модуль Cilium

Время на прочтение4 мин
Количество просмотров4.9K

За время, прошедшее с момента предыдущего стабильного релиза Deckhouse, наша Kubernetes-платформа успела получить сертификацию CNCF для версий Kubernetes v1.22 и v1.23, появилась в списках adopters у Prometheus Operator, а еще — в числе пользователей Cilium. Как раз с Cilium связано главное улучшение в новом стабильном релизе платформы.

Читать далее

Rust 1.62.0: cargo add, #[default] для перечислений, быстрые мьютексы на Linux и поддержка bare metal x86_64 платформ

Время на прочтение3 мин
Количество просмотров4.9K

Команда Rust рада сообщить о новой версии языка — 1.62.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.


Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.62.0 вам достаточно выполнить команду:


rustup update stable

Если у вас ещё нет rustup, то можете установить его со страницы на нашем веб-сайте, а также ознакомиться с подробным описанием выпуска 1.62.0 на GitHub.


Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta) или nightly (rustup default nightly) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Читать дальше →

Эй-Яй, крипта, MLOps и командный пет-проджект

Время на прочтение16 мин
Количество просмотров11K

В этой статье я расскажу, как мы командой пилили пет-проджект в рамках курса ODS по MLOps. Покажу не только финальный результат, но и немного расскажу про процесс работы, какие были сложности, как организовывали эффективную работу в команде. Может оказаться полезным для тех, кто хочет окунуться в Machine Learning и сделать свой пет-проджект, но пока чего-то не хватало. Также будет полезно тем, кто уже работает в области Data Science, но пока не окунулся в атмосферу DS, нет крутых коллег и разгвооров про фреймворки у кофемашины, а опыт командной работы именно в области DS получить хочется.

Сразу про то, что получилось на выходе: https://cryptobarometer.org/

Читать далее

Вклад авторов