Как стать автором
Обновить
6
Карма
0
Рейтинг

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

Flutter на Python

Python *Разработка мобильных приложений *Разработка под MacOS *Разработка под Linux *Разработка под Windows *


Приветствую вас, дорогие любители и знатоки Python! Знали ли вы, что можно разрабатывать кросплатформенные приложения, используя всю мощь и выразительность своего любимого змеиного языка в связке с ныне популярным фреймворком Flutter? Оказывается, такая возможность есть! Всех заинтересовавшихся прошу под кат за деталями.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 10K
Комментарии 33

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 3. Первый подход к асинхронности

Python **nix *Разработка игр *Разработка под Linux *Разработка под Windows *

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

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

Но, к счастью, существует и третий вариант — кооперативная многозадачность с помощью системного вызова select и его аналогов (poll, epoll и других). Он позволяет мультеплексировать несколько задач в одном потоке выполнения и в сущности является обычной синхронной программой. А потому никаких дополнительных трат процессорного времени и времени разработчиков не требуется.

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 4.8K
Комментарии 4

Как ускорить Python с помощью C-расширений. Часть 2

Блог компании МТС Python *C *
Tutorial

Привет, Хабр! Меня зовут Игорь Алимов, я ведущий разработчик группы Python в МТС Digital, и это вторая часть статьи, посвященной тому, как писать быстрый код на Python с использованием C-расширений. Я расскажу о всех нюансах и приведу конкретный пример применения этого метода.

Первую часть статьи читайте здесь, чтобы увидеть продолжение – переходите под кат!

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

Как ускорить Python с помощью C-расширений. Часть 1

Блог компании МТС Python *C *
Tutorial

Привет, Хабр! Я – Игорь Алимов, ведущий разработчик группы Python в МТС Digital, работаю над продуктами Smart Rollout, B2B портал. В этой статье я расскажу о том, как писать быстрый код на Python с использованием C-расширений и способах победы над GIL.

Интересно? Добро пожаловать под кат!

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Просмотры 9.9K
Комментарии 11

Тренируемся дома по программе Пола Уэйда. Часть Четвёртая: Мостик или Секрет Бронированного Позвоночника

Читальный зал Здоровье
Перевод

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

Приступить к тренировке
Всего голосов 38: ↑33 и ↓5 +28
Просмотры 45K
Комментарии 15

Заметки про интервью на разработчика

Программирование *.NET *Управление персоналом *Карьера в IT-индустрии Интервью

Пролог


Как найти порядочного работодателя\клиента\заказчика? Ответ совсем не лежит на поверхности. Однако десятки пройденых и проваленых собеседований заставили глубоко задуматься, как можно предотвратить встречи с токсичными фейками, бюрократами, и теми, кто собирает мертвые души ради отчётности в отделе кадров или перед начальством. Это чисто субъективные мысли, кто-то может быть со мной не согласен, однако все описанное ниже было опробовано мною ни раз.

image

Процесс интервью


Никогда не берите тестовое задание, решение которого требует от вас времени больше, чем один-два вечера.

Мне еще не известен ни один случай, чтобы человек, который неделю делал тестовое задание и получил хороший оффер. Работодатель часто готов потратить годы, лишь чтобы найти изумруд (скилового, опытного, и за копейки работающего разработчика), но лишь бы найти. Они собеседуют буквально сотню людей, прежде чем наймут кого-то. И такой критерий как выполненное тестовое задание, длинною в неделю, ставит вас в длинную очередь ожидания, в который вы уже заведомо проиграли. Допустим Вы выполнили блестяще тестовое задание, но оффер так и не получили. Вы потратили НЕДЕЛЮ личного времени. А Сколько потратил работодатель? Максимум 10 джоулей, нажимая пальчиком «переслать», отправляя Вам задание. Он не потерял ничего, и ему это ничего не стоит. А вот вложить силы на решение задачи которой ушла неделя, и получить отказ — это огромная просадка по эмоциональным ресурсам, времени, деньгам и самое главное — по мотивации. Простое правило: если у вас есть 20 часов свободного времени, вы можете пройти целых 10 собеседований по 2 часа, или решить 1 тестовую задачу и понятия не иметь получите оффер или нет, а в случае отказа эмоциональный откат неизбежен, потому что ресурсов было вложено много, а результата никакого. Не делайте так, следуйте зову здравого смысла!
Читать дальше →
Всего голосов 28: ↑16 и ↓12 +4
Просмотры 9.8K
Комментарии 43

Тренируемся дома: отжимания по программе Пола Уэйда

Читальный зал Здоровье
Перевод

image


Представляю программу Тюремных Тренировок Пола Уэйда. Начнём с серии классических упражнений со своим весом для верхней части тела — отжиманиям.


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


Серия сосредоточена на цепочке из 10 последовательных упражнений. Когда освоите одно упражнение, то перейдёте к следующему и так далее…
Мы называем базовые упражнения как «10 уровней», и достигнув 10 уровня, вы станете сильнейшим настолько, насколько это возможно для человека в этих движениях. По этой причине, последняя ступень именуется «уровнем мастера». Вам станет понятнее, как это работает, если дополнительно ознакомитесь с книгой Тренировочная Зона (Издательство Питер).

Читать дальше →
Всего голосов 157: ↑137 и ↓20 +117
Просмотры 194K
Комментарии 198

Система рекомендаций фильмов с GUI на Python

Блог компании SkillFactory Python *Программирование *Лайфхаки для гиков
Перевод
Tutorial

«Без опыта я никому не нужен! Где взять опыт?» — часто думают люди, осваивающие новую для себя сферу или изучающие новый язык программирования. Решение есть — делать пет-проекты. Представленный под катом проект системы рекомендации фильмов не претендует на сложность и точность аналогичных систем от энтерпрайз-контор, но может стать практическим стартом для новичка, которому интересны системы рекомендации в целом. Этот пост также подойдет для демонстрации как использовать Python-библиотеку EasyGUI на практике.

Важное предупреждение: если вы крепкий миддл либо сеньор, то проект может показаться вам простым. Однако не стоит спешить опускать палец вниз и забывать про тех, кто не так опытен, и кому пост может быть полезен, ведь все мы когда-то были джунами.
Приятного чтения!
Всего голосов 15: ↑12 и ↓3 +9
Просмотры 7.9K
Комментарии 10

SciPy, оптимизация с условиями

Блог компании Open Data Science Python *Алгоритмы *Математика *Учебный процесс в IT
Tutorial


SciPy (произносится как сай пай) — это библиотека для научных вычислений, основанная на numpy и скомпилированных библиотеках, написанных на C и Fortran. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных, как MATLAB, IDL, Octave, R или SciLab.


В этой статье рассмотрим основные приемы математического программирования — решения задач условной оптимизации для скалярной функции нескольких переменных с помощью пакета scipy.optimize. Алгоритмы безусловной оптимизации уже рассмотрены в прошлой статье. Более подробную и актуальную справку по функциям scipy всегда можно получить с помощью команды help(), Shift+Tab или в официальной документации.

Читать дальше →
Всего голосов 53: ↑48 и ↓5 +43
Просмотры 35K
Комментарии 5

Эффективная генерация числа в заданном интервале

Программирование *Совершенный код *Алгоритмы *Математика *
Перевод
image

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

Представьте такую ситуацию:

В качестве домашнего задания Хуан и Саша реализуют одинаковый рандомизированный алгоритм на C++, который будет выполняться на одном университетском компьютере и с одним набором данных. Их код почти идентичен и отличается только в генерации случайных чисел. Хуан торопится на свои занятия по музыке, поэтому просто выбрал вихрь Мерсенна. Саша, с другой стороны, потратил несколько лишних часов на исследования. Саша провёл бенчмарки нескольких самых быстрых ГПСЧ, о которых недавно узнал из соцсетей, и выбрал наиболее быстрый. При встрече Саше не терпелось похвастаться, и он спросил Хуана: «Какой ГПСЧ ты использовал?»

«Лично я просто взял вихрь Мерсенна — он встроен в язык и вроде неплохо работает».

«Ха!», — ответил Саша. «Я использовал jsf32. Он намного быстрее, чем старый и медленный вихрь Мерсенна! Моя программа выполняется за 3 минуты 15 секунд!».

«Хм, неплохо, а моя справляется меньше, чем за минуту», — говорит Хуан и пожимает плечами. «Ну ладно, мне пора на концерт. Пойдёшь со мной?»

«Нет», — отвечает Саша. «Мне… эээ… нужно снова взглянуть на свой код».

Эта неловкая вымышленная ситуация не особо и вымышлена; она основана на реальных результатах. Если ваш рандомизированный алгоритм выполняется не так быстро, как хотелось бы, и узким местом похоже является генерация случайных чисел, то, как это ни странно, проблема может быть и не в генераторе случайных чисел!
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 28K
Комментарии 10

Указатели в Python: в чём суть?

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

Если вы когда-нибудь работали с такими низкоуровневыми языками, как С или С++, то наверняка слышали про указатели. Они позволяют сильно повышать эффективность разных кусков кода. Но также они могут запутывать новичков — и даже опытных разработчиков — и приводить к багам управления памятью. А есть ли указатели в Python, можно их как-то эмулировать?

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

Благодаря этой статье вы лучше поймёте модель объектов в Python и узнаете, почему в этом языке на самом деле не существуют указатели. На случай, если вам понадобится сымитировать поведение указателей, вы научитесь эмулировать их без сопутствующего кошмара управления памятью.
Читать дальше →
Всего голосов 75: ↑70 и ↓5 +65
Просмотры 111K
Комментарии 28

HBO, cпасибо что напомнил… «Чернобыльская аптечка» беларуского фармацевта

DIY или Сделай сам Здоровье Химия Экология
Tutorial
Что бы ни сказали — не станем спорить
Что бы ни дарили — не станем верить

Егор Летов «Как листовка»

Думаю не стоит лишний раз говорить о нашумевшем сериале Чернобыль и эффективности такого «сериального» воздействия на массы. Особенно на массы, проживающие на территориях, показанных в фильме. Выход каждой новой серии сопровождается всплеском публикаций в FB. В каждой из которых горечь, страх, боль. Что в такой ситуации я могу сделать ("кто виноват и что делать?")? Могу только описать свой взгляд на терапию лучевых поражений. Спасибо родненькой кафедре химии высоких энергий и проф. Шадыро О.И., которые пестовали в своих лабораториях нас, непутевых фармацевтов-радиохимиков. Надеюсь своей статьей честь этой, легендарной некогда, кафедры я не опорочу.

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

В общем, спасибо, сценаристы HBO, за то, что всколыхнули Память. Мой посильный вклад — под катом. Рейтинг доступных (и не очень) антидотов, способных сработать при радиационном выбросе. В закладки — класть строго ВСЕМ! И прочитал сам — перекинь другу.

Читать дальше →
Всего голосов 227: ↑210 и ↓17 +193
Просмотры 117K
Комментарии 272

Жизненный цикл кода на Python – модель выполнения CPython

Блог компании OTUS Python *
Перевод
Всем привет! Наступила весна, а это значит, что до запуска курса «Разработчик Python» остается меньше месяца. Именно этому курсу и будет посвящена наша сегодняшняя публикация.


Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 13K
Комментарии 1

Немного про кино или как делать интерактивные визуализации в python

Python *Визуализация данных *


Введение


В этой заметке я хочу рассказать о том, как можно достаточно легко строить интерактивные графики в Jupyter Notebook'e с помощью библиотеки plotly. Более того, для их построения не нужно поднимать свой сервер и писать код на javascript. Еще один большой плюс предлагаемого подхода — визуализации будут работать и в NBViewer'e, т.е. можно будет легко поделиться своими результатами с коллегами. Вот, например, мой код для этой заметки.


Для примеров я взяла скаченные в апреле данные о фильмах (год выпуска, оценки на КиноПоиске и IMDb, жанры и т.д.). Я выгрузила данные по всем фильмам, у которых было хотя бы 100 оценок — всего 36417 фильмов. Про то, как скачать и распарсить данные КиноПоиска, я рассказывала в предыдущем посте.


Читать дальше →
Всего голосов 55: ↑54 и ↓1 +53
Просмотры 62K
Комментарии 8

Информация

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