Pull to refresh
@resetmeread⁠-⁠only

Скромный пастух нулей и единиц…

Send message

Пробуем Typst, альтернативу LaTeX

Level of difficultyEasy
Reading time20 min
Views1.7K

Вы могли слышать об Typst, современной альтернативе LaTeX, написанный на Rust, или не могли, ведь на Хабре я нашёл лишь несколько статей о нём. Некоторые до меня подчёркивали, что есть некоторые недостатки у первого по сравнению с последним.

Те статьи, что уже имеются на Хабре во время написания данной статьи, были, скорее, новостными, чем полноценными обзорами. Мы же попробуем рассмотреть Typst, начиная с установки и заканчивая возможностями и компиляцией, а также разберёмся, какие проблемы могут возникнуть.

Читать далее
Total votes 8: ↑8 and ↓0+11
Comments29

Простыми словами про метрики в ИИ. Регрессия. MSE, RMSE, MAE, R-квадрат, MAPE

Level of difficultyMedium
Reading time4 min
Views3.1K

Привет, Хабр! Меня зовут Александр Троицкий, я автор канала AI для чайников, и я продолжаю серию коротких статей по метрикам качества моделей для машинного обучения!

Читать далее
Total votes 4: ↑3 and ↓1+5
Comments6

Удобный CI/CD доступен каждому

Level of difficultyMedium
Reading time13 min
Views12K

Привет, Хабр! Недавно я выступал на Moscow Python Conf, где делился нашим опытом создания и использования CI/CD пайплайнов. В данной статье я расскажу об этих пайплайнах, раскрою их особенности и покажу, как они помогают нам быстро доставлять код и поддерживать высокий показатель Time To Market. Надеюсь, что наш опыт будет полезен и вам.

Читать далее
Total votes 18: ↑16 and ↓2+18
Comments13

Укрощаем суммы с плавающей запятой

Level of difficultyEasy
Reading time9 min
Views8.1K

Допустим, у нас есть массив чисел с плавающей запятой, и мы хотим их суммировать. Можно наивно подумать, что их достаточно просто сложить, например, на Rust.

Однако это запросто может привести к произвольно большой накопленной погрешности. Давайте проверим:

naive_sum(&vec![1.0; 1_000_000]) = 1000000.0
naive_sum(&vec![1.0; 10_000_000]) = 10000000.0
naive_sum(&vec![1.0; 100_000_000]) = 16777216.0
naive_sum(&vec![1.0; 1_000_000_000]) = 16777216.0

Ой-ёй… Что произошло? Проблема в том .что следующее 32-битное число с плавающей запятой после 16777216 — это 16777218. Так что при вычислении 16777216 + 1, значение округляется до ближайшего числа с плавающей запятой, имеющей чётную мантиссу, то есть снова до 16777216. Мы зашли в тупик.

К счастью, есть более совершенные способы суммирования массива.

Читать далее
Total votes 30: ↑30 and ↓0+37
Comments44

Превращаем Android-смартфон в USB-клавиатуру, мышь и флешку

Level of difficultyHard
Reading time29 min
Views21K

Android-смартфон при подключении к компьютеру через USB может выглядеть как медиаустройство, модем или хранилище файлов. В этой статье мы научимся делать из него USB-клавиатуру, мышь и флешку.
Читать дальше →
Total votes 56: ↑56 and ↓0+78
Comments48

Как управлять Kubernetes с помощью Ansible

Reading time18 min
Views9.5K

Делимся переводом статьи об интеграции Kubernetes и Ansible. Из статьи вы узнаете, как подготовить среду для работы, как развернуть кластер Kubernetes с помощью Ansible, как управлять ресурсами Kubernetes и автоматизировать обновления. Кроме того, вы узнаете, как развернуть плейбук Ansible в Kubernetes на облачном провайдере и использовать Ansible для CI/CD в Kubernetes.

Читать далее
Total votes 13: ↑12 and ↓1+14
Comments7

Финансовая арифметика в PostgreSQL

Level of difficultyEasy
Reading time5 min
Views9.4K

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

Читать далее
Total votes 30: ↑26 and ↓4+28
Comments52

Фоновые асинхронные задачи в FastAPI и их мониторинг

Reading time19 min
Views9.3K

Привет! Меня зовут Иван, я бэкенд-разработчик в KTS.

Сегодня расскажу, как в FastAPI эффективно работать с фоновыми задачами и настроить их мониторинг в Prometheus.

В туториалах для фоновых задач в FastAPI обычно предлагают celery и при этом используют синхронный код. Но сегодня в реальной практике такое встречается редко, поэтому в этой статье я покажу, как в фоновых задачах использовать асинхронный код.

В статье опишу 5 вариантов: встроенный в FastAPI Background Tasks и 4 библиотеки — ARQ, SAQ, FastStream, адаптированный к асинхронному коду Celery.

В конце расскажу, как мониторить фоновые задачи.

Читать далее
Total votes 48: ↑48 and ↓0+50
Comments30

Разбираем KAN по полочкам

Reading time4 min
Views6.7K

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

Постараюсь дать небольшое описание того, что происходит под каптом кана, при этом не превращая публикацию в учебник по матанализу

Читать далее
Total votes 23: ↑21 and ↓2+27
Comments5

Основные инструменты для локальной разработки на Kubernetes

Level of difficultyEasy
Reading time4 min
Views4.6K

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

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

В статье рассмотрим пять основных инструментов.

Читать далее
Total votes 10: ↑7 and ↓3+8
Comments1

А/В эксперименты. Ускорение вычислений с помощью бакетизации

Level of difficultyEasy
Reading time5 min
Views2.5K

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

Время – деньги!
Total votes 4: ↑3 and ↓1+2
Comments2

Решаем простую статистическую задачу пятью способами

Level of difficultyMedium
Reading time11 min
Views5K

Вот тут ув. @dimview на пальцах и Си объясняет за бутстрап решая несложную задачу. И в статистике существует 100500 разных тестов для (не)подтверждения нулевой гипотезы.

Давайте используем ряд самых распространеных и посмотрим на результаты. В конце сравним с бутстрапом. Изложение будет сопровождаться кратким выводом и объяснением основных тестов, их "ручной" реализацией и сравнением результата с готовыми тестами из пакета scipy.stats. В этом плане, мне кажется, повторение лишним не будет, т.к. позволит лучше понять и уяснить принцип и особенности тестов.

Сама задача звучит как: "И вот свежие результаты — в тестовой группе из 893 пришедших у нас что-то купили 34, а в контрольной группе из 923 пришедших что-то купили 28. Возникает вопрос — идти к начальству и говорить «в тестовой группе конверсия 3.81%, в контрольной группе 3.03%, налицо улучшение на 26%, где моя премия?» или продолжать сбор данных, потому что разница в 6 человек — ещё не статистика?"

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments4

УФМТП. Универсальная функциональная модель торгового предприятия в нотации IDEF0

Level of difficultyHard
Reading time14 min
Views985

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

Я перепробовал разные способы, и почти всегда при этом работал по процессной модели. Мне ставили определенные задачи, я описывал один, два, три процесса, и, в принципе, всех это устраивало. Но меня не покидала мысль о том, что есть всё‑таки какая‑то универсальная модель предприятия, которую можно использовать из раза в раз. И если для меня она со временем стала интуитивно понятной, то для людей, которые только начинают свою деятельность в этой сфере или не сталкиваются постоянно с автоматизацией, а потому не имеют такого опыта, как я, конечно, возникает множество вопросов, Большинство из них связаны с тем, с чего начинать работу, как и что в каждом из случаев внедрять, и вообще, как строить свое сотрудничество с клиентами и зарабатывать в этой сфере.

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

Читать далее
Total votes 3: ↑1 and ↓2+1
Comments15

µDjango — технология создания асинхронных микросервисов

Level of difficultyMedium
Reading time11 min
Views6.6K

Примерно 5 годами ранее появления FastAPI была обнародована идеология построения легковесных микросервисов на Django, которая стала актуальной только после внедрения асинхронности в этом фреймворке.

Хотя в последней (на момент написания статьи) версии Django 5.0.5 асинхронно решается только часть задач, но уже сейчас можно начать создавать асинхронные микросервисы воспользовавшись технологией µDjango.

Так что это такое,  µDjango?
Total votes 8: ↑8 and ↓0+14
Comments10

Apache Airflow: преимущества и недостатки

Level of difficultyEasy
Reading time11 min
Views7.1K

Одним из популярных оркестратором задач является Apache Airflow. Он, как и все инструменты, имеет свои преимущества и недостатки, о которых пойдет речь в данной статье.

Подробнее
Total votes 14: ↑12 and ↓2+13
Comments4

Разработка вредоносного ПО для MacOS: инъекция и закрепление шелл-кода на конечном устройстве

Level of difficultyHard
Reading time20 min
Views3.8K

Мы продолжаем тему о проектировании и разработке вредоносного ПО для macOS. Первую часть публикации вы можете прочитать здесь. 

В этой статье мы:

- Изучим методики инъецирования кода и то, как он применяется в вредоносном ПО;

- Затронем способы обеспечения постоянства хранения;

- В конце мы покажем простой процесс инъецирования шелл-кода и его постоянного хранения. 

Читать далее
Total votes 20: ↑20 and ↓0+24
Comments1

Как построить бастион-хост и превратить его в неприступную крепость

Level of difficultyEasy
Reading time9 min
Views9.1K

Привет, меня зовут Сергей Истомин, я DevOps‑инженер в KTS.

Осталось ли бастион‑хостам место в мире, в котором инфраструктуру можно защитить оверлейными сетями, нативными прокси и VPN? Задавшись этим вопросом, мы провели анализ материалов некоторых авторов (ссылки на материалы в конце статьи), перевели, порассуждали и обобщили полученные выводы.

В статье рассказываю, зачем нужен бастион‑хост, какие есть ему альтернативы, а также как его возвести и укрепить.

Читать далее
Total votes 47: ↑47 and ↓0+50
Comments8

Практическое руководство по Rust. 1/4

Level of difficultyMedium
Reading time21 min
Views20K



Hello world!


Представляю вашему вниманию первую часть практического руководства по Rust.



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


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Total votes 25: ↑20 and ↓5+25
Comments12

Большая шпаргалка по Rust. 1/2

Level of difficultyMedium
Reading time29 min
Views13K



Hello world!


Представляю вашему вниманию первую часть большой шпаргалки по Rust.


Вторая часть.


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


Обратите внимание: шпаргалка рассчитана на людей, которые хорошо знают любой современный язык программирования, а не на тех, кто только начинает кодить 😉


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

Читать дальше →
Total votes 37: ↑35 and ↓2+43
Comments5

PostgreSQL 16. Организация данных. Часть 1

Level of difficultyMedium
Reading time14 min
Views14K

PostgreSQL очень популярная СУБД. Её используют во многих проектах, как новички, так и профессионалы. Однако не все понимают, как именно работает данная система и какое у неё внутренне устройство.

Давайте разберемся вместе на основе книги «PostgreSQL 16 изнутри» и официальной документации!

Читать далее
Total votes 32: ↑31 and ↓1+35
Comments5
1
23 ...

Information

Rating
Does not participate
Registered
Activity