Search
Write a publication
Pull to refresh
27
0
Send message

Лучшие open-source инструменты для Python проектов

Reading time12 min
Views41K

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

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

Читать далее

Замена облакам в нашем кружке «oч.умелые ручки»

Reading time6 min
Views24K

Последнее время доверие к облакам как-то резко упало, и пока кончалась годовая подписка на Google One на 2Т было время подумать, что делать дальше. В итоге родилась старая концепция - 'храним данные дома'. И вот что их этого получилось.

Читать далее

Топ полезных SQL-запросов для PostgreSQL

Reading time7 min
Views113K

Статей о работе с PostgreSQL и её преимуществах достаточно много, но не всегда из них понятно, как следить за состоянием базы и метриками, влияющими на её оптимальную работу. В статье подробно рассмотрим SQL-запросы, которые помогут вам отслеживать эти показатели и просто могут быть полезны как пользователю.

Читать далее

Telegram Bot на Kotlin: Дратути

Reading time6 min
Views6.3K

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

Читать далее

История Android от L до T

Reading time25 min
Views25K

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

В июне я выступил с докладом об этом на конференции Mobius, а теперь для аудитории Хабра публикую его текстовую версию. Если есть что добавить — пишите в комментариях!

Читать далее

Книга «Масштабируемые данные. Лучшие шаблоны высоконагруженных архитектур»

Reading time12 min
Views9.6K
image Хорошего дня, Хаброжители!

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

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

Моя история подготовки к интервью в FAANG

Reading time3 min
Views17K

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

Читать далее

Выходим за пределы JVM. Объясняем на крестиках-ноликах чем хорош Kotlin Multiplatform

Reading time31 min
Views15K

Какой есть общий недостаток у мобильной, front-end и back-end разработки и иногда распила микросервисов? Дублирование логики. Очень часто я видел статьи или новости, где одна команда мобильных разработчиков ждет другую, чтобы выкатить релиз. И если с мобильными версиями более-менее все понятно и есть решения, то что делать с браузером? Очень часто логику работы приложения нужно поддержать и там.

Что делать, если хочется писать нативный код и при этом не иметь дублей реализации — на этот вопрос я постараюсь ответить подробно в данной статье. В процессе чтения можно будет познакомиться с технологией Kotlin Multiplatform и создать полноценный проект всем известной игры «Крестики-нолики» на трех самых популярных платформах Browser (JS), iOS (Swift) и Android (Java) с общей логикой на Kotlin.

Читать далее

Визуализация в IoT: или как самому развернуть систему сбора и отображения данных на MQTT+Telegraf+InfluxDB+Grafana

Level of difficultyMedium
Reading time27 min
Views58K

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

Многие статьи или инструкции, которые есть в интернете, в части работы с Influx и Telegraf – имеют отношения к довольно старым версиям рассматриваемого ПО, в виду чего у меня ушло какое-то время, чтобы со всем разобраться. Хотелось бы оставить небольшое обновление по инструкциям здесь, возможно, они помогут кому-то сэкономить время и нервы, так как информация агрегирована в виде summury моего погружения в реализацию данного решения. 

Кому интересно, welcome :)

Читать далее

Java, реактивное программирование, Reactor, Spring Cloud Function, Streams, etc…

Reading time23 min
Views23K


Реактивное программирование в Java — полезный инструмент со множеством применений. Его суть в асинхронной обработке поступающих сообщений, и есть несколько вариантов реализации этого механизма.


И Java в целом, и Spring Framework в частности подразумевают несколько аспектов реактивного программирования. Это касается Spring WebFlux в качестве замены Spring MVC. Также можно использовать Project Reactor в Java непосредственно, без Spring Framework. Однако Spring предоставляет средства декларативного определения функции Spring Cloud Function и средства интеграции приложений с использованием внешних очередей в рамках проекта Spring Cloud Stream. В комплексе эти средства позволяют широко использовать реактивное программирование, упрощая создание, размещение, масштабирование и обслуживание приложений.


Помимо создания новых приложений, Spring Cloud Function/Stream позволяют модифицировать и существующие приложения, облегчая жизнь разработчикам в реализации горизонально масштабируемых сервисов.


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

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

Как универсально организовать импорты в проекте, независимо от того, где находятся модули?

Reading time2 min
Views9.1K

Начнем с того, что это статья посягается на святой устой комьюнити Python разработчиков, устой звучит так "синтаксис python - идеален, стандартные библиотеки - идеальны, и полноценны, GIL - это неизбежная жертва для такого прекрасного языка как Python ... может быть в конце столетия люди придумают как его обойти, но, а пока так ?". Приносим глубокие извинения за такую статью, это чисто юмористичная статья, не стоит принимать ей в серьез.

В общем решить эту проблему можно 50 строчками, вот код для импорта модуля из любого места, без плясок с бубнами и `sys.path`

Читать далее

Telegram Bot на Kotlin: Командуем

Reading time6 min
Views6.7K

Это промежуточная часть туториала о том, как можно создавать телеграм ботов на базе plagubot фреймворка и tgbotapi библиотеки. Конкретно в данной получасти речь пойдет про достаточно простой (по меркам будущих частей) плагин для регистрации команд на старте и их установке/очистке далее в рантайме

Читать далее

«Ленивый сахар» PostgreSQL

Reading time7 min
Views53K

SQL - декларативный язык - то есть вы описываете "что" хотите получить, а СУБД сама решает, "как" именно она будет это делать. Некоторые из них при этом позволяют им "подсказывать", как именно лучше выполнять запрос, но PostgreSQL - нет.

Тем не менее, "синтаксический сахар" некоторых языковых конструкций позволяет не только писать меньше кода (учите матчасть!), но и добиться, что ваша база будет делать часть вычислений "лениво", только при фактической необходимости.

Читать далее

Работа в Data Science: что важно знать и как этому научиться

Reading time9 min
Views56K

Сегодня словосочетания вроде Data Science, Machine Learning, Artificial Intelligence очень популярны. При этом нередко под ними понимаются довольно разные вещи. Это зачастую смущает и запутывает людей, желающих войти в специальность: трудно разобраться, с чего начать, что действительно нужно, а что необязательно для начала. Не претендуя на общность, расскажем, как это видится на основе десятка лет опыта c решением такого рода задач для крупных клиентов со всего мира (сервис / заказная разработка / аутсорс – подставьте термин по вкусу).

Читать далее

11 вещей, о которых вы должны помнить перед стартом нового проекта на Flutter

Reading time7 min
Views9.6K


Привет! Меня зовут Дарья, я Flutter-разработчик уровня Junior и это моя первая публикация на Хабре.


Знаете, создавать новый проект всегда приятно — новая кодовая база, отсутствие legacy (пока что), null-safety, свежие версии ваших любимых пакетов и далее, далее, далее.


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


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

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

Упущенные из виду факты о переменных и объектах в Python: все дело в указателях

Reading time9 min
Views18K

В Python переменные и структуры данных не содержат объектов. Этот факт часто упускается из виду, и его трудно уяснить.

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

Читать далее

RFM-анализ для успешного сегментирования клиентов с помощью Python

Reading time5 min
Views13K

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

Recency (Давность) — Как давно клиент совершил покупку?
Frequency (Частота) — Как часто они совершают покупки?
Monetary Value (Денежная ценность) — Сколько они тратят?

Читать далее

Постгрессо №4 (41)

Reading time10 min
Views5.4K

ИТ-инфраструктура — это как водопровод, без неё жизнь уже почти невозможна. И в эти безрадостные дни мы продолжаем выпускать Postgresso.


PostgreSQL 14.3

Вышла версия 14.3 (release notes), и обновлены предыдущие ветки: 13.7, 12.11, 11.16, и 10.21 (объявлено, что ветвь PostgreSQL 10 не будет обновляться с 10-го ноября 2022-го).

В версии много исправлений, отметим два. Александр Лахин из Postgres Professional обратил внимание на лазейку:

В случае, когда привилегированный пользователь работает с объектами другого пользователя, команды REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW и CLUSTER отрабатывали недостаточно безопасно. Это же относится и к autovacuum, и pg_amcheck. Они активировали релевантную защиту (заключали процессы в песочницу операций, ограниченных соображениями безопасности — «security restricted operation» sandbox) или слишком поздно, или вообще не активировали её. Если у атакующего были привилегии создавать не временные объекты хотя бы в одной схеме, он мог запустить под суперпользователем зловредные SQL-функции.

Похожая проблема, но с конструкциями DECLARE CURSOR… WITH HOLD и вызовом отложенных триггеров в выражениях индексов и запросов матпредставлений была замечена и ликвидирована ещё в PostgreSQL 12. Новый баг поправлен во всех версиях PostgreSQL от 10 до 14.
Читать дальше →

5 интересных проектов на базе Raspberry Pi конца весны 2022 года

Reading time3 min
Views24K

Поскольку любители DIY-систем не останавливаются и создают все новые проекты, мы продолжаем эти проекты изучать. Их реально сотни, но, конечно, в рамках одной подборки все это уместить нет возможности, поэтому приходится довольствоваться единицами. И в этой подборке — пять интересных проектов на базе «малинок», на которые стоит обратить внимание. Подробнее поговорим о них под катом.
Читать дальше →

Мгновенные снепшоты postgres на tablespace и btrfs

Reading time4 min
Views8.4K

Для работы бывает полезно иметь несколько копий одной реальной базы для экспериментов, фикстур или просто тестовых приложений. База растет и время копирования через разворачивание дампа или с помощью шаблона также возрастает до утомительных величин. Для решения этого кейса уже описаны варианты использования файловой системы с поддержкой CoW - Btrfs. В интернете находил  такие инструкции, они сводятся к тому, что делается снепшот всего сервера. И для работы второго "скопированного" нужно перегенерировать pid и сменить порт для предотвращения конфликтов. Этот способ довольно универсальный относительно конфигурации баз на сервере, но кажется имеет ограничение для неопределенного кол-ва параллельных снепшотов серверов.

В этой статье предлагаю свой вариант реализации снепшотов на одном экземпляре сервера postgres и одной базы, на произвольное кол-во копий.

Инструкция linux only, про поддержку CoW файловых систем на Windows не в курсе.

Читать далее

Information

Rating
Does not participate
Works in
Registered
Activity