Обновить
1024K+

Python *

Высокоуровневый язык программирования

674,47
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Selenium. Автоматизация тестирования календаря (Datepicker)

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели8K

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

Ответом IT-сообщества, было появлению множества инструментов для тестирования PHPUnit, Selenium, Pytest, Unittest, AssertJ. Инструменты позволили сосредоточить на том что тестируем и минимальными затратами на разработку теста. Развитие области автоматического тестирования, тестовые кейсы можно описать в виде небольших скриптов, с помощью тестовых фреймворков. Такие тесты, разработчики могут запускать в любой момент своей работы, чтобы поддерживать качество продукта. Для автоматизации тестирования веб-приложений применяется Selenium и его производные.

Selenium - это проект с открытым исходным кодом. Проект является “зонтичный” - собирательным, потому что в его состав входят множество независимых компонентов Selenium WebDriver, Selenium Grid, Selenium Server, Selenium IDE и т.д. Но в сообществе, когда говорят “Selenium”, часто подразумевают Selenium WebDriver.

Автотесты применяются на различных уровнях ПО. Автотестами можно проверить работу функции, модуля программы или набора модулей. Для систематизации понятий тестов, Майк Кон придумал абстракцию, которая группирует тесты по уровню детализации и назначению. Назвал ее пирамидой тестирования и описал в книге «Scrum: гибкая разработка ПО». С Selenium WebDriver специалист, может разрабатывать end-to-end тесты - которые находятся на вершине пирамиды тестирования. End-to-end тесты - проверяют полную работу системы и имитируют действия пользователя. Но как сделать такой автотест для веб приложения?

Читать далее

Крестики-Нолики (Tic Tac Toe) с компьютером на Python. Мой первый шаг к Machine Learning. Часть 1

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели31K

Всем привет. Я любитель Python и совсем недолго осваиваю язык всеми доступными способами. Моя цель - понять принципы машинного обучения и его взаимосвязь с нейросетью. Никакого опыта в IT не имел, тем не менее постараюсь излагать общепринятой терминологией, не судите строго. Моя основная профессия (оперирующий травматолог, кандидат наук) не менее сложная и далека от IT, но для упрощения работы в нее все больше внедряются AI и ML. Мною движет лишь интерес к современным технологиям, программированию.

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

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

Кому будет полезен материал: любителям Python, логики, алгоритмов. В финальном коде все переменные, функции и действия прокомментированы на английском.

Крестики-Нолики с компьютером на Python

Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса на чистом Python с GPU-ускорением

Время на прочтение9 мин
Охват и читатели23K

Добрый день, уважаемые хабровчане.

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

Самостоятельно потыркать проект можно вот тут: https://github.com/r-aristov/simba-ps

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

В глубины симуляции

Фантастические pandas

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3K

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

Читать далее

Плюсы и минусы FastAPI в 2023

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели25K

Всем привет, меня зовут Абай. Я являюсь Back-End разработчиком в 13LAB.

После прочтения интересной статьи со сравнением NodeJS и FastAPI, у меня появилось желание высказать свое личное мнение об удобстве разработки бэкенда на Python и фреймворке FastAPI.

FastAPI - является легковесным асинхронным фреймворком для Python, который используют преимущественно для разработки API-сервисов. Фреймворк довольно молодой и существует всего лишь 5 лет. До 2021 года не имел большой популярности по сравнению с Flask и Django, но на данный момент уже стал намного востребованнее, что его стали использовать в МAANG компаниях, к примеру...

Читать далее

Решение дифференциальных уравнений с Python

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели59K


Автор статьи: Артем Михайлов

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

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

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

Линейная регрессия: прямая, разделяющая плоскость на точки 2 классов

Время на прочтение6 мин
Охват и читатели2.8K

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

Читать далее

Визуализация реальных масштабов проклятия размерности

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9.6K

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

Если N — величина небольшая — взаимоотношения между точками будут именно такими, какими их можно представить на интуитивном уровне. Но иногда N достигает огромных значений. Это может произойти, например, когда множество признаков создают посредством прямого кодирования или чего‑то подобного. Для очень больших значений N наблюдения ведут себя так, как если бы они были бы представлены разреженными данными, или так, как если бы расстояния между ними были бы несколько больше, чем можно было бы ожидать.

Это — реальное явление. По мере роста N, при условии, что всё остальное не меняется, объём части N‑мерного пространства, содержащий наблюдения, тоже, в некотором смысле, увеличивается (или, как минимум, увеличивается количество степеней свободы). Увеличиваются и евклидовы расстояния между наблюдениями. Группа точек становится всё более разреженной структурой. Это — геометрическая база для такого понятия, как «проклятие размерности». Подобные изменения в данных влияют на поведение моделей и на приёмы работы, применяемые к наборам данных.

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

Читать далее

Вышел Savant 0.2.4: компьютерное зрение на базе глубокого обучения для Nvidia Jetson и dGPU

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.1K

После месяца напряженной работы мы выпустили новую версию Savant (0.2.4), с новыми функциями и примерами использования.

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

Savant построен на базе DeepStream и предоставляет высокоуровневый уровень абстракции для быстрой разработки конвейеров компьютерного зрения на базе Nvidia DeepStream.

Читать далее

Пять декораторов Python, которые могут сократить код в два раза

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели29K

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

Читать далее

Применение эффективного асинхронного web-парсинга при работе с Big Data (библиотека Scrapy)

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели19K

Привет, Хабр! Сегодня с вами Марина Коробова, участница профессионального сообщества NTA.

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

Читать далее

Графовые нейронные сети GNN в самообучающемся искусственном интеллекте

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9.8K

30 мая 2023 года была на https://arxiv.org/abs/2305.19801 была опубликована статья Predicting protein stability changes under multiple amino acid substitutions using equivariant graph neural networks. Но мне GNN интересны по другой причине. В 2016 году меня посетила мысль о создании самообучающегося искусственного интеллекта. Первые черновики описывающие его архитектуру начали появляться в 2018 году. Тогда я делал ставку на GAN и генетические алгоритмы. Архитектура единицы "мозга" тогда выглядела так

Читать далее

Python: Построение графиков по данным из файла

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели83K

В разных областях деятельности приходится строить графики. Построить график на компьютере можно десятками если не сотнями способов. В этот тексте я показал как строить графики при помощи интерпретируемого языка программирования Python.

Читать далее

Ближайшие события

Начало работы с AWS. Создание IAM пользователя. Установка SDK Boto3 и пример кода на Python

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

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

Читать далее

Большие данные и огромные сомнения

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.8K

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

Читать далее

Ping пакеты как временное хранилище данных на python raw socket

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели13K

Payload (данные) в ping пакете действительно есть, однако до реальной пользы им далеко - это английский алфавит (нет, я не испытываю ненависть к латинице, просто мне хотелось бы уметь редактировать это содержимое).

Читать далее

Вероятностный писатель

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели1.4K

В этой статье я пытаюсь выразить стиль писателя в одном предложении, но на самом деле просто веселюсь даже без применения нейросетей.

Читать далее

Как построить QA-направление в большом холдинге

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели13K

Привет, Хабр! Меня зовут Даша, я руковожу тестированием в ЕВРАЗе. Многие имеют опыт работы тестировщиком. Наверняка среди читателей найдутся и такие, кто руководит целым отделом QA. Но мало кому выпадает шанс создавать QA-направление в огромной промышленной компании практически с нуля.

Под катом я расскажу, как нанять тестировщика без опыта и не пожалеть об этом, зачем одновременно знать Python и C# и почему бывает непросто наладить сквозное тестирование.

Читать далее

Простой бэкап базы данных и статики для небольшого Django-проекта

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.3K

Друзья, всем привет!

Помимо основной работы инженером данных, я поддерживаю небольшой сайт на Django (посвящен информационным материалам по преподаванию истории и обществознания).

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

Сразу скажу, что такой подход подойдет для баз, размер которых не является астрономическим (десятки и сотни гигабайт), в моем случае база весит всего 50 Мб, статика около 400 - поэтому мне не составляло большого труда синхронизировать такие объемы. Думаю, небольшие и даже средние интернет магазины и блоги вряд ли хранят на порядки больше данных.

Для больших проектов, лучше бэкапы архивировать, шифровать и отправлять куда-нибудь в s3 типа  Minio.

Когда новая инфа на сайте появлялась довольно редко, я все делал руками, а именно...

Читать далее

Экстренное шифрование данных

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели12K

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

Читать далее