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

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

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

Принципы SOLID: как писать хорошо масштабируемый и поддерживаемый код

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

Вам когда-нибудь говорили, что вы пишете плохой код? 

Здесь стыдиться нечего. Мы все пишем несовершенный код, когда только учимся. Хорошая новость в том, что улучшить его — довольно просто, главное — желание. 

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

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

Читать далее

Парсинг сайта с помощью Chat GPT: упрощаем создание парсера

Уровень сложностиСредний
Время на прочтение127 мин
Количество просмотров15K

Тут будет код и непонятные слова (неподготовленным лучше не лезть)

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

Сегодня мы разберём, как можно использовать Chat GPT для создания парсера сайта.

Будем использовать Python и библиотеку Selenium.

🛑 Отмечу, что данная статья не предназначена для создания универсального инструмента парсинга любого сайта.

Я расскажу, как ускорить процесс создания парсера с помощью Chat GPT.

Углубимся в тему

Как работают квантовые компьютеры. Собираем паззл

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


Квантовые компьютеры и квантовые вычисления — новый баззворд, который добавился в наше информационное пространство наряду с искусственным интеллектом, машинным обучением и прочими высокотехнологическими терминами. При этом мне так и не удалось найти в интернете материал, который бы сложил у меня в голове пазл под названием “как работают квантовые компьютеры”. Да, есть много прекрасных работ, в том числе и на хабре (см. Список ресурсов), комментарии к которым, как это обычно и бывает, еще более информативны и полезны, но картинка в голове, что называется, не складывалась.


А недавно ко мне подошли коллеги и спросили “Ты понимаешь как работает квантовый компьютер? Можешь нам рассказать?” И тут я понял, что проблема со складыванием в голове целостной картинки есть не только у меня.


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

Получилось или нет - решать, как обычно, вам.

5 золотых правил разметки данных

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

Роберт Рождественский писал: «Все начинается с любви…». Если бы Роберт Иванович погрузился в мир машинного обучения (ML), то наверняка продолжил свое произведение словами «Все начинается с любви к данным». 

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

Читать далее

Как, почему и когда следует использовать одно-табличный дизайн в DynamoDB

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

Я стал большим сторонником DynamoDB за последние несколько лет. Эта база данных имеет много сильных сторон, которых нет у конкурентов, таких как гибкая ценовая модель, соединение без состояния (stateless), которое прекрасно работает для беcсерверных (serverless) вычислений, и постоянное время ответа, даже когда ваша база данных масштабируется до огромных размеров.

Однако разработка структуры данных с помощью DynamoDB вызывает трудности у тех, кто привык к реляционным базам данных, которые доминировали в течение последних нескольких десятилетий. Существует несколько особенностей в создании структуры данных с помощью DynamoDB, но самая значимая - это рекомендация от AWS использовать одну таблицу для всех ваших записей.

Читать далее

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

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

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.


Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.


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

Как работать с процессами и потоками в Python

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

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

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

Читать далее

Настройка Visual Studio Code для Django

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

Настройка Visual Studio Code для работы над проектами Django немного отличается от типичного сетапа для pure Python проектов. Например, в Django мало пользы от mypy, так как он не поддерживает типы Django. Точно также дела обстоят с линтерами, которые, без предварительной настройки, работают с кодом Django неправильно.

Читать далее

Полное руководство по модулю asyncio в Python. Часть 5

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

Привет, Хабр! Публикуем пятую часть (перваявтораятретьячетвёртая) перевода руководства по модулю asyncio в Python. Здесь представлены разделы оригинала с №10 по №13.

Читать далее

Распознавание цифр, для максимально маленьких (python/keras)

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

Этот пост я решил написать, для тех, кто также искал понятный код и рабочий пример, который можно было взять, вставить в гугл колаб(google colab) и сразу начать "играться" с кодом. Но не нашел. Для вас, друзья!

P.S весь код будет в конце.

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

Читать далее

gRPC — альтернатива REST API от Google

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

Проблема

Когда мы разрабатываем приложение, которое разделено на независимые автономные компоненты, мы говорим о микросервисной архитектуре. Для взаимодействия компонентов используется API. Самый популярным API является REST. Это обусловлено его гибкостью, эффективностью (в большинстве сценариев) и тем, что он легко масштабируется. 

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

Зачем нужен gRPC

gRPC (Remote Procedure Calls) — это система удалённого вызова процедур (RPC) с открытым исходным кодом, первоначально разработанная в Google. В качестве основного протокола передачи применяется HTTP/2, для описания процедур применяется “Protocol Buffers”. Это в свою очередь приносит дополнительные преимущества: сжатие HTTP-заголовков и мультиплексирование запросов.

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

Читать далее

Обучаем SVTR-Tiny для распознавания текста сцены

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

Сегодня мы расскажем вам, как дообучить новую state-of-the-art модель SVTR-Tiny для распознавания текста сцены (текста в реальных уличных условиях) на собственноручно сгенерированных изображениях с помощью API библиотеки PaddleOCR.

Читать далее

Инструменты для GraphQL клиента на Python

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

Речь в статье пойдет о специальных инструментах для работы с GraphQL на Python в качестве клиента. Если вы используете GraphQL в своих сервисах на Python, то, скорее всего, сталкивались с необходимостью писать и хранить строки, содержащие GraphQL запросы, а так же писать Python классы для хранения результатов этих запросов. Вероятнее всего, вам было неудобно: не хотелось дублировать схожие запросы, постоянно править классы при частом изменении схемы и т.п. Вот и мне тоже. Поэтому, решая описанные проблемы, появились на свет два пакета: graphql-query и graphql2python.

Читать далее

У вас нет причин использовать alpine для python-проектов

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

По мотивам моего доклада на PyCon "Контейнеризация Python без боли". На своей практике я постоянно сталкиваюсь со спорами какой базовый образ лучше использовать для проектов: alpine или debian. Аргументы есть и у той, и у другой стороны, но мне это настолько надоело, что я решил сам разобраться и наконец-то поставить точку. В конце концов "В наше время верить нельзя никому, даже себе. Но мне - можно." (с)

Читать далее

Лучшие новые библиотеки Python за 2022 год

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

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

Читать далее

Пишем FastAPI с нуля на python

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

FastAPI — это современная, быстрая (высокопроизводительная) веб-инфраструктура для создания API-интерфейсов с Python 3.7+ на основе стандартных подсказок типов Python.

В этой статье мы рассмотрим как написать его с нуля.

Читать далее

6 Python декораторов, которые значительно упростят ваш код

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

"Простое лучше сложного".

Лучшая функция Python, которая применяет эту философию из "дзен Python", - это декоратор.

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

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

Болтать не буду. Давайте посмотрим на отобранные мной 6 декораторов, которые покажут вам, насколько элегантен Python.

Читать далее

Как хостить телеграм-бота (и другие скрипты на Python) на Repl.it бесплатно 24/7

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

Очень часто возникающий вопрос: где можно разместить скрипты на Python, Flask-приложение, телеграм или дискорд ботов?

Один из вариантов — на своем компьютере при наличии внешнего IP-адреса и опыта в настройке проброса портов на роутере.

Цель этот статьи - подробная инструкция, как сделать хостинг Python-скриптов бесплатно и доступным 24/7 на примере телеграм-бота

Читать далее

Диздок-десятистраничник — шаблон по книге Скота Роджерса с примером на игру от Pixonic

Время на прочтение16 мин
Количество просмотров91K
В данной статье я приведу пример составления дизайн-документа для разработки игры в формате десятистраничника. В начале будет приведён общий шаблон документа, предлагаемый Скотом Роджерсом в его книге «Level up. The guid to great video game design» [1].

Затем будет выложен мой пример этого документа на игру War Robots от компании Pixonic, публикующейся на Хабре [2]. (тут требуется оговорка, что данная статья и диздок не связаны с Pixonic: не выражает их мнения и взглядов; не оплачивалась ими; и они даже не знали о написании данного материала)

Шаблон с примером составления диздока-десятистраничника по книге Скота Роджерса

Это тот самый десятистраничник в миниатюре. Удобочитаемый формат в самой статье
Читать дальше →

Как я запустил свою первую мобильную игру и провалился

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

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

Читать далее

Информация

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