Обновить
512K+

Python *

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

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

«САПР для всех, даром, и пусть никто не уйдет…» или первые шаги в программировании FreeCAD на Python

Время на прочтение8 мин
Охват и читатели38K
Возможно, вам уже ранее попадались мои заметки по первым шагам в программировании САПР на примере NanoCAD.

Надо отметить, что для человека не умеющего программировать и знающего САПР на уровне «электронного кульмана» это было удивительное приключение. Однако, NanoCAD это все же в первую очередь коммерческий продукт. Его бесплатная версия не обновлялась, уже около шести лет и порядком устарела в плане возможностей для разработки.

А ведь так хотелось, чтобы как в одной замечательной повести: «Счастье для всех, даром, и пусть никто не уйдёт обиженный!» . Поэтому было принято решение, внять совету боевого товарища DrZugrik и установить себе FreeCAD.

Итак, по горячим следам пишу для вас материал, всего за один день я узнал, как подружить эту САПР с Anaconda, написал на Python простенький скрипт, который рисует квадратик с текстом и протестировал его на работоспособность в Windows и Linux. О чем я собственно готов вам по шагам рассказать и показать, чтобы вы тоже могли это сделать.

Хотите поближе познакомиться с очаровательной парочкой Python и FreeCAD? Тогда милости прошу под кат.


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

Изучаем данные, собранные Xiaomi Mi Band за год

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

Введение


Люди носят фитнес-браслеты по разным причинам, я могу предположить некоторые из них:


  1. Для того, чтобы поддерживать себя в форме и выполнять цели по активности;
  2. Потому что это некая модная штучка;
  3. Чтобы ставить над собой эксперименты или узнать себя лучше.

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


Методы для извлечения этих данных работают для Mi Band 1, 1S и, возможно, 2 (приложение для 2, кажется, такое же).

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

Установка OpenCV + CUDA на Windows

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

Введение


В данной статье речь пойдет о сборке и установке OpenCV 4 для C/C++, Python 2 и Python 3 из исходных файлов с дополнительными модулями CUDA 10 на ОС Windows.

Я постарался включить сюда все тонкости и нюансы, с которыми можно столкнуться в ходе установки, и про которые не написано в официальном мануале.

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

Исследование глубин аннотаций типов в Python. Часть 1

Время на прочтение8 мин
Охват и читатели9.9K
C 2014 года, когда в Python появилась поддержка аннотаций типов, программисты работают над их внедрением в свой код. Автор материала, первую часть перевода которого мы публикуем сегодня, говорит, что по её оценке, довольно смелой, сейчас аннотации типов (иногда их называют «подсказками») используются примерно в 20-30% кода, написанного на Python 3. Вот результаты опроса, который она, в мае 2019, провела в Twitter.

Как оказалось, аннотации используют 29% респондентов. По словам автора статьи, в последние годы она всё чаще натыкается на аннотации типов в различных книгах и учебных руководствах.

Вторая часть



В документации по Python термины «type hint» («подсказка типа») и «type annotation» («аннотация типа») используются как взаимозаменяемые. Автор статьи пользуется, в основном, термином «type hint», мы — термином «аннотация типа».

В этом материале будет рассмотрен широкий спектр вопросов, касающихся использования аннотаций типов в Python. Если вы хотите обсудить оригинал статьи с автором — можете воспользоваться механизмом pull-запросов.
Читать дальше →

Мелкая питонячая радость #9: консольные приложения с человеческим лицом

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

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


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


Сегодня мы поговорим о том, как сделать лучше программы, на которые большинству плевать — одноразовые консольные утилитки и скрипты.


image

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

Применение машинного обучения и Data Science в промышленности

Время на прочтение22 мин
Охват и читатели73K
Хабр, привет. Перевел пост, который идёт строго (!) в закладки и передаётся коллегам. Он со списком блокнотов и библиотек ML и Data Science для разных отраслей промышленности. Все коды на Python, и размещены на GitHub. Они будут полезны как для расширения кругозора, так и для запуска своего интересного стартапа.

image

Отмечу, что если среди читателей есть желающие помочь, и добавить в любую из подотраслей подходящий проект, пожалуйста, свяжитесь со мной. Я их добавлю в список. Итак, давайте начнём изучение списка.
Читать дальше →

Рекомендательная система для Directum Club. Часть первая, коллаборативная

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

Каждый день пользователи по всему миру получают большое количество различных рассылок — только через сервис MailChimp ежедневно рассылают миллиард писем. Из них открывают 20.81%.


Ежемесячно пользователи наших сайтов получают рассылки с отобранными редактором материалами. Эти письма открывают около 21% читателей.


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


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


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


Во второй части описана реализация на Python для данных нашего сайта.

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

Разбираем возможности конвертирования HTML в PDF браузером Google Chrome

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


Недавно в одном стартапе я решал задачу генерации билетов в формате PDF. На тот момент уже был готов сайт с устоявшимся стеком технологий, поэтому я искал подход, который бы не потребовал использования дополнительных инструментов. В итоге я предложил сперва создавать билеты в формате HTML, а затем конвертировать в PDF с помощью браузера Chrome. Как оказалось, данным способом можно генерировать не только билеты, богато декорированные CSS, но и самые разные отчеты с графиками на JavaScript. В этой статье я расскажу о том, как для этих целей запустить Chrome, дам несколько советов по настройке CSS, а так же обсужу недостатки данного решения.

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

Автоматическое определение эмоций в текстовых беседах с использованием нейронных сетей

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

Одна из основных задач диалоговых систем состоит не только в предоставлении нужной пользователю информации, но и в генерации как можно более человеческих ответов. А распознание эмоций собеседника — уже не просто крутая фича, это жизненная необходимость. В этой статье мы рассмотрим архитектуру рекуррентной нейросети для определения эмоций в текстовых беседах, которая принимала участие в SemEval-2019 Task 3 “EmoContext”, ежегодном соревновании по компьютерной лингвистике. Задача состояла в классификации эмоций (“happy”, “sad”, “angry” и “others”) в беседе из трех реплик, в которой участвовали чат-бот и человек.

В первой части статьи мы рассмотрим поставленную в EmoContext задачу и предоставленные организаторами данные. Во второй и третьей частях разберём предварительную обработку текста и способы векторного представления слов. В четвёртой части мы опишем архитектуру LSTM, которую мы использовали в соревновании. Код написан на языке Python с использованием библиотеки Keras.
Читать дальше →

Система удаленного файлового доступа Cage

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

Назначение системы


Поддержка удаленного доступа к файлам на компьютерах в сети. Система «виртуально» поддерживает все основные файловые операции (создание, удаление, чтение, запись и др.) путём обмена транзакциями (сообщениями) по протоколу ТСР.


Области применения


Функционал системы эффективен в следующих случаях:

  • в нативных приложениях для мобильных и embedded устройств (смартфоны, бортовые системы управления и т.п.), требующих быстрого доступа к файлам на удаленных серверах в условиях вероятных временных перерывов в связи (с уходом в оффлайн);
  • в нагруженных СУБД, если обработка запросов производится на одних серверах, а хранение данных – на других;
  • в распределенных корпоративных сетях сбора и обработки информации, требующих высокой скорости обмена данными, резервирования и надежности;
  • в сложных системах с микросервисной архитектурой, где задержки в обмене информации между модулями имеют критически важное значение.
Читать дальше →

AirTest IDE и Image Recognition — автоматизация тестирования мобильных игр на основе распознавания изображений

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

В предыдущей статье мы познакомились с AirTest IDE, но, на всякий случай, давайте повторим: AirTest IDE разработан компанией NetEase и предназначен для "hard-to-automate" приложений, таких как, например, игр. Собственно на них и делается основной упор разработчиками, хотя это не мешает использовать AirTest и для любых других приложений.


Данная работа является второй в цикле, посвящённому AirTest IDE. Первую, обзорную, статью про AirTest IDE вы можете найти здесь, а третью и последнюю, которая посвящена фреймворку UI автоматизации Poco — по данной ссылке.


Сегодня же я расскажу вам об одном из 2х основных фреймворков — AirTest. AirTest — это кросс-платформенный фреймворк для автоматизации UI, основанный на принципах распознавания изображений (Image Recognition), который, как заявляют разработчики, подходит для игр и приложений. AirTest Project на GitHub содержит 4 проекта: Airtest, Poco, iOS-Tangent, multi-device-runner.


А теперь давайте перейдём к самому интересному!


image

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

Data Science Digest (August 2019)

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


Приветствую всех! DataFest возвращается в Украину и пройдет 7 сентября в Одессе. Сейчас формируется программа, но если вы хотите выступить с докладом, то можно подать свою тему здесь. Зарегистрироваться в качестве участника можно здесь. Напоминаю, что у дайджеста есть свой Telegram-канал и страницы в соцсетях (Facebook, Twitter, LinkedIn), где я ежедневно публикую ссылки на полезные материалы. Присоединяйтесь!

А пока предлагаю свежую подборку материалов под катом.
Читать дальше →

Cython: более чем 30-кратное ускорение Python-кода

Время на прочтение4 мин
Охват и читатели117K
Python — это язык, который любят многие программисты. Этим языком невероятно легко пользоваться. Всё дело в том, что код, написанный на Python, отличается интуитивной понятностью и хорошей читабельностью. Однако в разговорах о Python часто можно слышать одну и ту же жалобу на этот язык. Особенно тогда, когда о Python говорят знатоки языка C. Вот как она звучит: «Python — это медленно». И те, кто так говорят, не грешат против истины.

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



Есть несколько способов ускорения Python-программ. Например, можно применять библиотеки, рассчитанные на использование нескольких ядер процессора. Тем, кто работает с Numpy, Pandas или Scikit-Learn, можно посоветовать взглянуть на программный комплекс Rapids, позволяющий задействовать GPU при проведении научных расчётов.
Читать дальше →

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

Подборка @pythonetc, июль 2019

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

Это двенадцатая подборка советов про Python и программирование из моего авторского канала @pythonetc.

Предыдущие подборки


Нельзя изменять переменные замыканий с помощью простого присваивания. Python расценивает присваивание как определение внутри тела функции и вообще не делает замыкание. 
Читать дальше →

uWSGI в помощь метрикам. Доклад Яндекса

Время на прочтение8 мин
Охват и читатели5.1K
На днях состоялся Moscow Python Meetup #66 — сообщество продолжает обсуждать актуальные инструменты, которые усиливают язык и адаптируют его к разным окружениям. В том числе на митапе прозвучал и мой доклад. Меня зовут Наиль, я делаю Яндекс.Коннект.



Рассказ, который я подготовил, был посвящён uWSGI. Это многофункциональный сервер веб-приложений, а каждое современное приложение сопровождается метриками. Я постарался показать, как возможности uWSGI способны помочь в сборе метрик.

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

Определяем взаимозависимых лиц по составам советов директоров с помощью python

Время на прочтение5 мин
Охват и читатели3.1K
Определение взаимозависимых лиц согласно ст. 105.1 Налогового кодекса РФ достаточно тривиальная задача для корпоративного юриста.

Обычно это не вызывает сложностей и, кажется, зачем здесь что-то автоматизировать?
Все верно, если общество два или три сравнить их составы СД нет никаких проблем. Но, если обществ больше двух десятков и при этом в разных обществах разные составы директоров в том числе по количеству членов? Здесь уже надо потратить время. Потратим его на программу, которая за нас вычислит взаимосвязанные стороны, анализируя составы советов директоров.
Читать дальше →

Как я библиотеку для сервиса «Яндекс.Музыка» писал

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

Введение


Обо мне


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


Предыстория


Уж не помню точно, из-за чего я решил поискать официальную документацию API данного сервиса, вроде бота хотел для Telegram написать, но столкнулся с тем, что её нет… Спустя некоторое время наткнулся на issue в репозитории yandex/audio-js. Там ребятки задают точно такой же вопрос, как и я: "А где API?". Не многие горят желанием слушать музыку через браузер, они хотят приложение, но приложения под Linux тоже нет! Интегрировать к своему любимому плееру невозможно!


Тут я загорелся идеей сделать это. Естественно, мне нужно как-то работать с сервисом, городить костыли вокруг веб-приложения не вариант. Я понимал, что имея такой сервис, имея мобильные приложения и приложения под Windows (из Microsoft Store) просто невозможно не иметь своё внутреннее API для взаимодействия. Я оказался прав!


Обязательно к прочтению перед основной частью


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

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

Телега для датасайентиста

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

How to deploy Python Telegram bot using Webhooks on Google Cloud Platform


Вместо предисловия


image

— Напиши телеграм-бота. Сейчас даже школьники пишут, — сказала она.
— А почему бы и нет, — подумал я тогда ( — Ну, ну, — сказал бы я сейчас).


Мы сидели в Бине и за чашкой кофе обсуждали возможности тестирования идей с моделями искусственного интеллекта на близком и не очень круге друзей. Лена, моя бывшая коллега, и во всех отношениях не блондинка, только что закончившая магистратуру, рассуждала так. Создав бота, можно сэкономить силы и время на интерфейсе, сосредоточившись на ядре с машинным обучением. Согласитесь, что устоять против такой логики “спортсменки, комсомолки и просто красавицы” в то прекрасное воскресное утро было невозможно. Решено. Телеграм-бот, значит телеграм-бот.


Первым делом я залез в гугл и нашел большое число ссылок “как сделать бот за 30 минут”. Это меня настолько воодушевило, что дальше названий я не пошел и занялся созданием ядра. В самом первом приближении мне предстояло написать систему обработки поисковых запросов с использованием NLP (natural language processing). Написание ядра заняло некоторое, вполне разумное, время (все же опыт кока-колой не пропить). И через несколько дней я был готов к тому, чтобы за пару часов обернуть первую тестовую версию ядра в пару другую команд send-receive, запустив все это в Телеграме на благо моим друзьям. Но не тут-то было.


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

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

Быстрая интеграция с 1С: Предприятие

Время на прочтение9 мин
Охват и читатели50K
В данной статье я расскажу о наиболее простом, на мой взгляд, способе интеграции сторонних приложений с конфигурациями 1С. Статья будет интересна в первую очередь разработчикам, пишущим на .Net Core, PHP и Python.

Способов интеграции с 1С известно много, этому даже посвящена прекрасная статья от самой компании 1С. Из нее вы в частности узнаете, что 1С поддерживает механизмы web-сервисов, а значит мы можем реализовать свой собственный сервис на стороне 1С, и, как следствие, свою собственную ORM-библиотеку на стороне клиентского приложения. Об одной из таких и библиотек и пойдет речь далее.
Читать дальше →

Статистика на службе у бизнеса. Методология расчёта множественных экспериментов

Время на прочтение8 мин
Охват и читатели3.4K
Добрый день!

Как и было обещано в предыдущей статье, сегодня мы продолжим разговор о методологиях, применяемых в A/B-тестировании и рассмотрим методы оценки результатов множественных экспериментов. Мы увидим, что методологии довольно просты, и математическая статистика не так страшна, а первооснова всего — аналитическое мышление и здравый смысл. Однако предварительно хотелось бы сказать пару слов о том, какие же бизнес-задачи помогают решать строгие математические методы, нужны ли они Вам на данном этапе развития Вашей компании и какие pros and cons существуют в Большой аналитике.
Читать дальше →