Pull to refresh
54
363

Пишу обзоры на библиотеки и инструменты

Send message

Обзор синтаксиса Tailwind CSS

Level of difficultyEasy
Reading time7 min
Views11K

Салют, Хабр!

Tailwind CSS – это utility-first CSS фреймворк, который отличается от традиционных CSS фреймворков вроде Bootstrap или Foundation тем, что вместо предопределенных компонентов предлагает набор utility-классов, позволяющих стилизовать элементы прямо в HTML.

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

В этой статье рассмотрим синтаксис Tailwind CSS, в целом, он похож на дефолт CSS.

Читать далее
Total votes 16: ↑12 and ↓4+11
Comments18

Краткий обзор фреймворка Svelte

Level of difficultyEasy
Reading time5 min
Views5.7K

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

Svelte, в его сущности, предлагает нам подход меньше значит больше. Вместо того чтобы полагаться на виртуальный DOM, как большинство фреймворков, Svelte переносит эту работу на этап сборки. Результат? Более чистый и эффективный код, который выполняется непосредственно в браузере. Каждый компонент в Svelte компилируется в самодостаточный JavaScript.

Читать далее
Total votes 15: ↑11 and ↓4+9
Comments4

Обзор библиотеки Actix в Rust

Level of difficultyEasy
Reading time6 min
Views5.5K

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

Actix появился на свет благодаря Николаю Киму, также известного в сообществе под ником fafhrd91. Николай создал экосистему, которая позволяет строить масштабируемые, надежные веб-приложения и микросервисы. Actix основан на модели акторов, концепции, которая была впервые предложена в 1973 году для симуляции активных компонентов в распределенных системах.

Читать далее
Total votes 13: ↑11 and ↓2+11
Comments11

Некоторые антипаттерны проектирования в Django

Level of difficultyEasy
Reading time6 min
Views6.6K

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

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

Умение избегать этих привычек – это основополагающие элементы компетентности, гарантирующие, что проекты будут не только удобными для пользователя, но и устойчивыми к проблемам.

Читать далее
Total votes 13: ↑9 and ↓4+7
Comments12

Инфраструктурные пайплайны в Jenkins

Level of difficultyEasy
Reading time5 min
Views3.3K

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

Jenkins позволяет автоматизировать всё, от сборки и тестирования кода до деплоя на продакшн. Jenkins работает по принципу пайплайнов, которые можно настраивать под любые нужды проекта.

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

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments0

Краткий обзор поведенческих паттернов в Rust

Level of difficultyEasy
Reading time6 min
Views4.5K

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

Зачем нужны поведенческие паттерны? Вопрос риторический, но ответ на него кроется в самой сути разработки. Поведенческие паттерны предоставляют нам для решения часто встречающихся проблем взаимодействия между объектами и классами.

Паттерны можно реализовать на любом ЯПе и сегодня рассмотрим, как их реализовать в Rust.

Читать далее
Total votes 16: ↑11 and ↓5+8
Comments18

Кратко про FP в Julia

Level of difficultyEasy
Reading time5 min
Views2K

В отличие от императивного подхода, где выражается последовательность операций, функциональное программирование (FP) сосредотачивается на "что" и "как" должно быть вычислено, а не на "когда". Это приводит к более чистому, модульному и легко тестируемому коду.

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

Читать далее
Total votes 12: ↑10 and ↓2+12
Comments5

Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20

Level of difficultyEasy
Reading time4 min
Views16K

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

Сегодня рассмотрим лямбда-выражения в C++ и их эволюцию с момента появления в стандарте C++11 и до последних обновлений в C++20.

Лямбда-выражения в C++ — это анонимные функции, которые позволяют писать инлайн-выражения прямо там, где они используются. С их помощью можно легко определять функции обратного вызова, передавать их в функции высшего порядка или использовать для инициализации функциональных объектов.

Читать далее
Total votes 22: ↑15 and ↓7+13
Comments201

Обзор языка Crystal

Level of difficultyEasy
Reading time7 min
Views4.2K

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

История Crystal начинается в 2011 году, когда команда энтузистов решили создать язык, который бы исправил некоторые из тех ограничений и проблем, с которыми они сталкивались, работая с Ruby. Они мечтали о языке, который бы позволял писать код, легкий для понимания и поддержки, но при этом обладающий высокой производительностью и эффективностью выполнения. Так родился Crystal, язык, который наследует синтаксис Ruby.

На первый взгляд, код на Crystal может показаться почти идентичным коду на Ruby — это было сделано намеренно, чтобы разрабы, уже знакомые с Ruby, могли без труда перейти на использование нового языка. Однако, несмотря на внешнее сходство, Crystal вносит ряд улучшений: система статической типизации с автоматическим выводом типов, обработка параллельных вычислений и возможность компиляции в машинный код.

Читать далее
Total votes 12: ↑9 and ↓3+11
Comments2

Node Pools в AKS

Level of difficultyEasy
Reading time5 min
Views1.1K

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

В Kubernetes кластер состоит из множества узлов (nodes), которые представляют собой виртуальные или физические машины, на которых запущены приложения. Node Pools — это группы узлов с одинаковой конфигурацией, управляемые как единое целое.

С Node Pools можно иметь разные пулы для разных задач или приложений, оптимизировать стоимость, используя различные типы виртуальных машин, и применять разные ОС в рамках одного кластера.

Azure Kubernetes Service (AKS) — это управляемый сервис Kubernetes от Microsoft, предназначенный для упрощения развертывания, управления и масштабирования приложений на базе контейнеров. AKS автоматически управляет хостовыми инфраструктурами, снимая бремя настройки и мониторинга, позволяя сосредоточиться на разработке приложений.

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

Временные ряды с Julia с библиотекой TimeSeries.jl

Level of difficultyEasy
Reading time4 min
Views1.7K

Julia позволяет достигать скорости, сравнимой с C, что делает её хрошим выбором для временных рядов.

Пакет TimeSeriesпредоставляет удобные методы для работы с данными временных рядов в Julia.

Читать далее
Total votes 10: ↑9 and ↓1+14
Comments2

Обзор библиотеки drake в R

Level of difficultyEasy
Reading time6 min
Views667

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

Создатель drake, Уилл Ландау, искал способ улучшить репродуктивность исследований в R, и так родилась библиотека drake. С тех пор она претерпела множество изменений и улучшений.

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

Обзор библиотеки Stan в R

Level of difficultyMedium
Reading time11 min
Views1.4K

Приветствую!

Stan - это библиотека на C++, предназначенная для байесовского моделирования и вывода. Она использует сэмплер NUTS, чтобы создавать апостериорные симуляции модели, основываясь на заданных пользователем моделях и данных. Так же Stan может использовать алгоритм оптимизации LBFGS для максимизации целевой функции, к примеру как логарифмическое правдоподобие.

Для облегчения работы с Stan из языка программирования R доступен пакет rstan, который предоставляет интерфейс R для Stan.

Сегодня мы и рассмотрим этот пакет.

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments0

Обзор библиотеки Go Kit

Level of difficultyEasy
Reading time10 min
Views4.6K

Салют, Хабр!

Go Kit предоставляет стандартизированный способ создания сервисов, с ее помощью можно легко реализовать совместимость сервисов. С его помощью можно легко интегрировать различные транспортные протоколы, такие как HTTP, RPC, gRPC, и многое другое, а также реализовывать общие паттерны: логирование, метрики, трассировка. В общем, Go Kit хорошо подходит для разработки микросервисов на go.

Мотивацию создания этой либы разработчики описали так:

Go стал языком сервера, но он по-прежнему недостаточно представлен в так называемых «современных корпоративных» компаниях, таких как Facebook, Twitter, Netflix и SoundCloud. Многие из этих организаций обратились к стекам на основе JVM для создания своей бизнес-логики, во многом благодаря библиотекам и экосистемам, которые напрямую поддерживают их микросервисные архитектуры.

Чтобы достичь следующего уровня успеха, Go нужно нечто большее, чем простые примитивы и идиомы. Ему нужен всеобъемлющий набор инструментов для последовательного распределенного программирования в целом. Go Kit — это набор пакетов и лучших практик, которые обеспечивают комплексный, надежный и надежный способ создания микросервисов для организаций любого размера.

Читать далее
Total votes 10: ↑6 and ↓4+4
Comments2

Кратко про Raft и Paxos: путь к надежным распределенным базам данных

Level of difficultyEasy
Reading time6 min
Views4K

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

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

Среди множества подходов к решению проблемы достижения консенсуса в распределенных системах, Paxos и Raft являются самыми эффективными. Рассмотрим их подробней.

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

ООП в F#

Level of difficultyEasy
Reading time5 min
Views3.6K

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

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

Читать далее
Total votes 13: ↑10 and ↓3+9
Comments11

Применение контейнеров и алгоритмов STL в C++

Level of difficultyMedium
Reading time9 min
Views17K

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

STL — это коллекция компонентов, предназначенных для работы с данными. Включает в себя: контейнеры, алгоритмы, итераторы и функциональные объекты, STL в общем своего рода швейцарский ножик в этом деле. Контейнеры помогают управлять коллекциями данных различных типов, алгоритмы предоставляют общие методы для их обработки, итераторы служат связующим звеном между контейнерами и алгоритмами, а функциональные объекты позволяют гибко настраивать поведение стандартных операций.

Рассмотрим подробнее.

Читать далее
Total votes 13: ↑7 and ↓6+5
Comments7

Как подобрать уровень значимости α и мощность для A/B теста

Level of difficultyEasy
Reading time6 min
Views3.1K

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

Когда то я думал, выбор правильного уровня значимости α и мощности для A/B теста — это простое дело, пока не столкнулся с этой проблемой на практике. Сидишь, анализируешь результаты, думаешь, что все идет по плану, а потом вдруг выясняется, что твои выводы сомнительны из-за неправильно выбранных параметров тестирования.

Цель A/B теста — не просто узнать, какой вариант лучше, а получить достоверные результаты, на основе которых можно принимать обоснованные решения.

В этой статье рассмотрим как подобрать уровень значимости α.

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments0

Обзор библиотеки bleve в Golang

Level of difficultyEasy
Reading time7 min
Views3K

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

В этой статье рассмотрим основной функционал этой библиотеки.

Читать далее
Total votes 12: ↑8 and ↓4+6
Comments1

Z-test

Level of difficultyEasy
Reading time5 min
Views11K

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

Z-тест, известный также как z-критерий Фишера, представляет собой набор статистических методов для проверки гипотез, которые базируются на предположении о нормальном распределении данных. Эти методы используются для анализа, являются ли средние значения двух наборов данных одинаковыми, при условии, что дисперсия генеральной совокупности известна. Еще они применяются для анализа стандартизированных выборочных средних. Расчёт Z-статистики производится путём деления разности между анализируемой случайной величиной и её математическим ожиданием на стандартную ошибку этой величины.

В этой статье рассмотрим, что такое Z-тест, чем он полезен и сравним его с t-тестом.

Читать далее
Total votes 11: ↑10 and ↓1+13
Comments1

Information

Rating
1-st
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Specialist
Middle
From 1 ₽
SQL
Python
Database
English
PostgreSQL
Git