Как стать автором
Обновить
27
0

Пользователь

Отправить сообщение

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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


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


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


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


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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

ИТ-инфраструктура — это как водопровод, без неё жизнь уже почти невозможна. И в эти безрадостные дни мы продолжаем выпускать 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 года

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

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

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

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

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

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

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

Читать далее

Найти за полсекунды: сравниваем похожие фотографии

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

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

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

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

Читать далее

Все хуки и концепты React в одной статье

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

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

Читать далее

Поднимаем Apache Superset — необходимый и достаточный гайд

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

Пингвины для привлечения внимания. Как поднять Apache Superset, подключить к нему локальный Postgres и чтобы потом на вас коллеги не смотрели косо.

Читать далее

Пожалуйста, прекратите писать shell-скрипты

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

Когда вы автоматизируете какую-либо задачу, например, упаковываете свое приложение для Docker, то часто сталкиваетесь с написанием shell-скриптов. У вас может быть bash-скрипт для управления процессом упаковки и другой скрипт в качестве точки входа в контейнер. По мере возрастающей сложности при упаковке меняется и ваш shell-скрипт.

Все работает хорошо.

И вот однажды shell-скрипт совершает что-то совсем неправильное.

Тогда вы осознаете свою ошибку: bash, и вообще shell-скрипты, в основном, по умолчанию не работают. Если с самого начала не проявить особую осторожность, любой shell-скрипт достигнув определенного уровня сложности почти гарантированно будет глючным... а доработка функций корректности будет довольно затруднительна.

Читать далее

Можно ли обойтись без фразовых глаголов в разговорном английском?

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

Этим вопросом довольно часто задаются те, кто изучают фразовые глаголы в английском как часть разговорной речи на уровне intermediate, upper-intermediate и выше и пытаются употреблять их в своей речи. Причина этого вопроса вполне понятна – понимание и использование фразовых глаголов вызывает сложности: большинство этих глаголов имеют по крайней мере 4 значения, а некоторые и вовсе больше 10, значения частиц часто непонятны, нелогичны и толком доступно не объясняются в учебной литературе, а некоторые глаголы имеют аж две частицы и являются частью фразеологизмов. Гораздо проще найти простую короткую замену длинному фразовому глаголу: например, сказать eliminate ridiculous rules – устранить нелепые правила, вместо do away with ridiculous rules – покончить с нелепыми правилами. И вроде все хорошо, глагол употребили, слушатель выражение понял, кивнул головой и ничего критичного не сказал в ответ.

Однако на самом деле произошло вот что: избежав лишних сложностей, человек показал, что выбранные им слова звучат неестественно, то есть, что он неправильно использовал уровень формальности в разговорной речи, употребив вместо фразового глагола другой глагол, который используется в основном в письменном английском. Около 92% фразовых глаголов используются в устной английской речи и только 8% в академической, вот почему их необходимо использовать в первую очередь в разговоре. Конечно, глаголы без частиц тоже используются в общении, но часто их заменяют на фразовые глаголы по вышеуказанной причине. Проблема в том, что в русском языке формальная речь не так четко выражена и обособлена (хотя это тоже присутствует), как в английском, отсюда письменный язык больше приближен к разговорному.

Читать далее

Россия 2022: как хранить криптовалюту в условиях санкций?

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


Peace, Хабр!


Последние дни много разговоров, что криптовалюта — способ: a) сберечь свои рублевые сбережения от обесценивания, b) вывести из под риска национализации валютные сбережения.


И действительно (хорошая новость): на текущий момент ограничений по покупке и хранению криптовалют для резидентов РФ нет. Ну почти нет. По сравнению с фиатными биржами — нет.


Но (плохие новости):


  • Американские сенаторы уже обсуждают меры по ограничению использованию криптовалют для обхода санкций со стороны России [1],
  • Евросоюз занят тем же самым [2],
  • ФБР появилось подразделение по контролю за оборотом криптовалюты ([3], анонс от 17 февраля 2022, хотя межгосударственные финансовые дела вряд ли в их юрисдикции).

Еще хорошая новость (последняя):
Хрустальный шар/магический кристалл Гарри Поттер еще не подвез, поэтому сценарий с обходом санкций через криптовалютные переводы и с противостоянием этому обходу — это потенциальное будущее.


Снова плохая новость (не последняя):
Если Вам кажется, что риски в этом потенциальном будущем для Вас, как для частного инвестора, высокие, то Вам не кажется.


И что с этим делать?
Правильно — разобраться что, где, как (и надо ли) хранить условиях санкций.

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

Чем Linux HugePages важны для серверов баз данных?

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

Часто пользователи рассказывают о сбое базы данных по вине Out Of Memory Killer. Он завершает процессы PostgreSQL и остается причиной большинства отказов этой БД. Память на хост-компьютере может закончиться по нескольким причинам. Наиболее распространены из них четыре. Во-первых, может быть плохо настроена память на хост-компьютере. Во-вторых, могут быть ограничения глобальной переменной work_mem. Например, если у вас 32Гб RAM и work_mem=1Гб, то больше 32 соединений вы никогда не запустите. Каждое соединение PostgreSQL будет выделять этот размер памяти.

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

Представляем вам перевод статьи от Jobin Augustine, который работает в Percona старшим инженером службы поддержки. Более 20-лет он был консультантом, архитектором, администратором и инструктором по PostgreSQL, Oracle и другим технологиям баз данных. Сегодня поговорим о том, как можно защититься от OOM с помощью HugePages и разберем насколько они важны и почему нужны.

Читать далее

Реальный Windows. Пишем realtime под окошками

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

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

Читать далее

30 лучших Python-проектов на GitHub на начало 2022 года

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

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

UPD: добавили ссылки.

Читать далее

Мониторинг высоконагруженных систем

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


Мониторинг IT-систем – это то, в чем рано или поздно (и в этом случае чем раньше, тем лучше) возникает острая необходимость для понимания того, а что, собственно, с нашей системой происходит? И зачастую такая необходимость идет рука об руку с другими вопросами, такими как: как это внедрить? Что мониторить? Как это развивать и поддерживать? Более того, на них становится все сложнее ответить с увеличением масштаба IT-системы.

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

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность