Как стать автором
Обновить
7
Карма
0
Рейтинг
Виктор Андрийчук @vandriichuk

Data Scientist, Data Engineer

  • Подписчики 52
  • Подписки 67
  • Публикации
  • Комментарии

Готовый шаблон сайта с регистрацией, юзерами и админами на Flask с базами SQL или MongoDB

Разработка веб-сайтов *Python *MongoDB *Flask *
flask

Бывает, приходится делать сайты на flask, у которых есть пользователи и админы. Чисто для себя решил как-то это стандартизировать и, главное, не терять время, когда такая задача появляется. Цель — в несколько команд получить рабочий сайт у которого есть:

  • Регистрация
  • Email подтверждение
  • Авторизация
  • Выход (logout)
  • Администраторы и роли администраторов
  • Административная, пользовательская и публичная часть сайта
  • Возможность юзера менять пароль
  • Восстановление пароля
  • Локализация для иностранных языков
Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 30K
Комментарии 10

Введение в Data Vault

Анализ и проектирование систем *Хранилища данных *


Большинство компаний сегодня накапливают различные данные, полученные в процессе работы. Часто данные приходят из различных источников — структурированные и не очень, иногда в режиме реального времени, а иногда они доступны в строго определенные периоды. Все это разнообразие нужно структурированно хранить, чтоб потом успешно анализировать, рисовать красивые отчеты и вовремя замечать аномалии. Для этих целей проектируется хранилище данных (Data Warehouse, DWH).

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

Кому будет интересна эта статья?


  • Ищете более функциональную альтернативу схеме «звезды» и Третьей Нормальной Форме?
  • У Вас уже есть хранилище данных, но его тяжело дорабатывать?
  • Нужна хорошая поддержка историчности, а текущая архитектура для этого не подходит?
  • Возникают проблемы при сборе данных из нескольких источников?

Если на какой-либо из этих вопросов Вы ответили утвердительно, и при этом не знакомы с Data Vault — прошу заглянуть под кат!
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 54K
Комментарии 1

Первое правило машинного обучения: начните без машинного обучения

Блог компании билайн бизнес Программирование *Машинное обучение *Kubernetes *
Перевод

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

Что? Начинать без машинного обучения?


Об этом говорю не только я.

Догадайтесь, какое правило является первым в 43 правилах машинного обучения Google?

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

Машинное обучение — это здорово, но для него требуются данные. Теоретически, можно взять данные из другой задачи и подстроить модель под новый продукт, но она, скорее всего, не справится с базовыми эвристиками. Если вы предполагаете, что машинное обучение придаст вам рост на 100%, то эвристика даст вам 50%.
Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Просмотры 7.2K
Комментарии 11

Настраиваем GitLab Container Registry

Блог компании Timeweb Cloud Настройка Linux *Nginx *Git *
Tutorial

В этой статье мы рассмотрим, как настроить реестр образов GitLab Container Registry, находящийся за обратным прокси сервером NGINX. Предполагается, что у вас уже установлен GitLab с помощью пакета Omnibus. Согласно документации, Container Registry можно настроить на том же домене, на котором работает сам GitLab, но в случае работы GitLab за прокси сервером, необходимо завести отдельный домен для реестра образов, чтобы избежать конфликта доменных имен при настройке виртуальных хостов в GitLab Nginx.

Реестр образов будет доступен по адресу: registry.example.com. Добавляем А запись для домена реестра в DNS. Приводим конфиг виртуального хоста на сервере обратного прокси к следующему виду:

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 2.5K
Комментарии 3

Книга «Python и DevOps: Ключ к автоматизации Linux»

Блог компании Издательский дом «Питер» Python *Профессиональная литература
image Привет, Хаброжители! За последнее десятилетие технологии сильно изменились. Данные стали хитом, облака — вездесущими, и всем организациям понадобилась автоматизация. В ходе таких преобразований Python оказался одним из самых популярных языков программирования. Это практическое руководство научит вас использовать Python для повседневных задач администрирования Linux с помощью наиболее удобных утилит DevOps, включая Docker, Kubernetes и Terraform.

Умение взаимодействовать с Linux играет важнейшую роль для миллионов специалистов. Python сильно упрощает эту задачу. Прочитав книгу, вы научитесь разрабатывать программное обеспечение и использовать контейнеры, а также выполнять мониторинг, телеметрию, нагрузочное тестирование ПО и вводить его в эксплуатацию. Ищете эффективный способ достичь поставленных целей на Python? Это руководство — для вас.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 8.2K
Комментарии 2

Блокчейн на Python

Блог компании RUVDS.com Децентрализованные сети Python *
Перевод
Когда я читал статью про блокчейн на JavaScript, мне было интересно познакомиться с идеями о блокчейн-разработке, которые отличаются от тех, что мне уже известны. А как только я начал читать код, мне захотелось сопоставить его с аналогичным Python-кодом, чтобы ещё и разобраться с его отличиями от кода, написанного на JavaScript.

Цель этого материала заключается в том, чтобы выявить отличия языков. Его можно считать Python-дополнением к исходной статье.



Несмотря на то, что исходная статья появилась на свет после того, как её автор ознакомился с примером блокчейн-разработки на Python, мне хотелось написать Python-код, который как можно более точно воспроизводит JavaScript-код из статьи. Это позволит сопоставить реализацию блокчейна на разных языках.

Я, кроме того, собираюсь сделать так, чтобы моя реализация блокчейна, как и в статье про JavaScript, тоже поместилась бы в 60 строк.
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры 9.6K
Комментарии 10

Python: Логируем как профессионалы

Блог компании OTUS Python *Программирование *
Перевод

Часто вижу, что помимо обработки исключений, люди мучаются кое с чем еще, а именно с логированием.

Большинство людей не знают, что писать в логи, поэтому решают логировать все, что угодно, думая, что все подряд – это в любом случае лучше, чем ничего, и, в конечном итоге, просто создают шум. А шум – это информация, которая никак не помогает вашей команде понять, в чем дело и как решить проблему.

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 13K
Комментарии 1

K8S для начинающих. Первая часть

Системное администрирование *Kubernetes *
Из песочницы

Технологический прогресс не стоит на месте, особенно если это касается области IT. Еще в 2014 году, когда Google открыл исходный код проекта Kubernetes, который вобрал в себя лучшее из Borg и Omega - внутренних систем Google, его мало кто знал и использовал. Но прошло 7 лет и K8S (он же Kubernetes) стал успешным open-source проектом, который используется по всему миру. В большинстве компаний инфраструктура построена на K8S - от маленьких проектов до огромных кластеров и облаков, которые обеспечивают бесперебойную доступность сервисов. Давайте коснемся Kubernetes и расскажем, как им пользоваться на практике. Но сначала надо спросить, а что такое этот ваш Kubernetes и для чего он собственно нужен. Подойдет ли он для ваших проектов.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 13K
Комментарии 0

Глобальная блокировка интерпретатора (GIL) и её воздействие на многопоточность в Python

Блог компании Wunder Fund Python *Программирование *Алгоритмы *
Перевод

Прим. Wunder Fund: в статье рассказано, зачем появилась и существует глобальная блокировка интерпретатора в Питоне, как она работает, и как она влияет на скорость работы Питона, а также о том, куда в будущем, вероятно, будет двигаться Питон. У нас в фонде почти всё, что не написано на плюсах — написано на Питоне, мы пристально следим за тем, куда движется язык, и если вы тоже — вы знаете, что делать )

Как вы, наверное, знаете, глобальная блокировка интерпретатора (GIL, Global Interpreter Lock) — это механизм, обеспечивающий, при использовании интерпретатора CPython, безопасную работу с потоками. Но из-за GIL в конкретный момент времени выполнять байт-код Python может лишь один поток операционной системы. В результате нельзя ускорить Python-код, интенсивно использующий ресурсы процессора, распределив вычислительную нагрузку по нескольким потокам. Негативное влияние GIL на производительность Python-программ, правда, на этом не заканчивается. Так, GIL создаёт дополнительную нагрузку на систему. Это замедляет многопоточные программы и, что выглядит достаточно неожиданно, может даже оказать влияние на потоки, производительность которых ограничена подсистемой ввода/вывода.

Здесь я опираюсь на особенности CPython 3.9. По мере развития CPython некоторые детали реализации GIL, определённо, изменятся. Материал опубликован 22 сентября 2021 года, после публикации в него внесено несколько дополнений.

Читать далее
Всего голосов 63: ↑60 и ↓3 +57
Просмотры 14K
Комментарии 12

Обучение с подкреплением на Python: Пример не из «качалки»

Python *Машинное обучение *Разработка робототехники *
Tutorial

Обучение с подкреплением молодая и бурно растущая дисциплина. Это обстоятельство привело к тому что информации об этом на русском языке почти нет. Особенно, если дело касается объектно-ориентированного подхода, и практических задач не из арсенала "качалки".

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

Жги
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 13K
Комментарии 8

Clickhouse & Grafana: история успеха одних алертов

Блог компании Домклик Разработка веб-сайтов *SQL *Веб-аналитика *

Меня зовут Елизавета Добрянская и я Frontend-разработчица в компании Домклик.

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

Читать далее
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 6.6K
Комментарии 21

Публикация Spring Boot приложения в GitHub Packages с помощью GitHub Actions для самых маленьких

Программирование *Java *GitHub Микросервисы *
Tutorial

Сегодня я расскажу вам как можно опубликовать своё Spring Boot приложение в GitHub Packages с помощью GitHub Actions. Вот так. В общем-то всё. Вот. Спасибо за внимание.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 3.2K
Комментарии 3

Немного примеров match/case в Python 3.10

Python *Программирование *

Не так давно (а именно 4 октября 2021 года) официально увидела свет юбилейная версия языка python, а именно версия 3.10. В ней было добавлено несколько изменений, а самым интересным (на мой взгляд) было введение pattern matching statement (оператор сопоставления с шаблонами). Как гласит официальное описание этого оператора в PEP622, разработчики в большей мере вдохновлялись наработками таких языков как: Scala, Erlang и Rust.

Для тех, кто еще не знаком с данным оператором и всей его красотой, предлагаю познакомиться с pattern matching в данной статье. 

Ознакомиться
Всего голосов 35: ↑34 и ↓1 +33
Просмотры 21K
Комментарии 69

Реализация кластеризации методом k-средних на Python (с визуализацией)

Python *Data Mining *
Из песочницы

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

Несмотря на множество способов его осуществления, мы рассмотрим и реализуем на языке Python метод k-средних. Он является наиболее ясным и алгоритмически понятным.

Будет уделено внимание визуализации 2-х и 3-х мерных пространств с помощью библиотеки matplotlib.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 6.7K
Комментарии 4

Распознаём позу прямо в браузере в реальном времени

Блог компании SkillFactory Работа с видео *JavaScript *Программирование *TensorFlow *
Перевод


Сегодня показываем и рассказываем, как прямо в браузере при помощи ИИ распознать сложную позу человека. Это пригодится, например, в разработке приложений для физических упражнений. Ранее с этой задачей не справлялись даже лучшие детекторы. За подробностями приглащаем под кат, пока у нас начинается флагманский курс Data Science.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 4.5K
Комментарии 3

SQL в SQLAlchemy

Блог компании Домклик Python *PostgreSQL *SQL *

Меня зовут Алексей Казаков, я техлид команды «Клиентские коммуникации» в Домклик. По моему опыту подавляющее большинство приложений, взаимодействующих с базой данных, использовали для этого Object Relational Mapper. В этой статье я продолжу знакомить вас с популярными ORM, которые встречались мне в продовых проектах. На очереди всемогущий SQLAlchemy.

Читать далее
Всего голосов 32: ↑29 и ↓3 +26
Просмотры 8.4K
Комментарии 4

Как я сжимал модель fastText для реальной задачи в 80 раз в 2021 году

Python *Машинное обучение *Искусственный интеллект
Из песочницы

FastText — это отличное решение для предоставления готовых векторных представлений слов, для решения различных задач в области ML и NLP. Но основным недостатком данных моделей является, то что на текущий момент обученная модель FastText на русскоязычном корпусе текстов Википедии занимает немногим более 16Гигабайт, что в значительной мере сужает возможности использования данной технологией.

На просторах хабра вы уже найдете примеры такого сжатия описанные ранее «Давидом Дале» в статье «Как сжать модель fastText в 100 раз». Решая эту задачу, а применял рекомендации из данной статьи, и к ним мы еще вернемся, но эта статья уже несколько потеряла свою актуальность, так как часть используемых методов более не работают в новой версии библиотеки Gensim 4.0. Кроме того, применяемый в данной статье имеет более общий характер применения, так как сжатая данный образом модель все же не рассчитана на решение узкой задачи, и как показала практика при решении более узких задач, модель теряет в качестве более существенно, чем это показано на примерах.

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

Основная суть примененного мною метода, была в том, чтобы исключить из словаря модели FastText не используемые слова. Так как например модель «wiki_ru», содержит в своем корпусе 1,88 млн слов в словаре, и 2 млн n-грамм токенов, (300 мерных) векторов.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2.7K
Комментарии 4

Практические задачи по Java — для курсов и прочих занятий

Java *

Практические задачи по Java — для курсов и прочих занятий


Несколько вводных слов


Последние несколько лет я читаю курс по программированию на Java. Со временем он менялся — то добавлялись, то выкидывались разные части, менялась последовательность тем, менялся подход к построению плана самих занятий, и так далее. То есть, курс совершенствовался. Одной из основных проблем, возникших при подготовке курса — это задачи. О них и пойдёт речь.

Дело в том, что каждое моё занятие состоит из двух частей. На первой я выступаю в роли лектора — рассказываю с примерами кода о какой-то новой теме (классы, наследование, дженерики и так далее). Вторая часть — практическая. Очевидно, что нет смысла просто рассуждать о программировании, надо программировать. Приоритет на занятиях — решение задач, то есть программирование чего-то как-то. Программирование на занятиях отличается от программирования дома, так как на занятиях можно задать вопрос, показать код, получить быструю оценку кода, комментарии по улучшению, исправлению написанного. Очень легко было найти задачи для самых первых занятий. Задачи на циклы, условные операторы, и ООП (к примеру, написать класс «Собака» или класс «Вектор»). Сервисы вроде leetcode позволяют даже проверить правильность решения таких задач сразу, онлайн. Но какие задачи дать студентам на занятии, которое было посвящено коллекциям? Потокам? А аннотациям? За несколько лет я придумал, или переработал несколько таких задач, и эта статья, по сути, является сборником этих задач (к некоторым задачам прилагается решение).
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 370K
Комментарии 19

Как настроить SQLAlchemy, SQLModel и Alembic для асинхронной работы с FastAPI

Python *SQL *
Из песочницы
Перевод

В этом руководстве предполагается, что у вас есть опыт работы с FastAPI и Postgres с помощью Docker. Вам нужна помощь, чтобы ускорить работу с FastAPI, Postgres и Docker?

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 5.7K
Комментарии 7

Первые шаги в aiohttp, часть 3: публикуем приложение в Интернете

Блог компании KTS Разработка веб-сайтов *Python *Учебный процесс в IT
Tutorial

Сегодня разберем заключительную часть цикла «Первые шаги в aiohttp». В первой статье мы создали и настроили проект, а во второй подключили базу данных.

В этой части статьи мы рассмотрим размещение нашего веб-сервиса в Интернете, используя платформу Heroku.

Асинхронное программирование — большая тема. Если хотите разобраться в ней подробнее, приходите к нам на курс. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 3K
Комментарии 0

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность