Обновить
1024K+

Python *

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

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

10 самых распространенных ошибок безопасности в Python и как их избежать

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

Наша очередная группа по Python успешно запустилась в понедельник, но у нас остался ещё один материальчик, который мы не успели разместить до старта. Исправляем нашу оплошность и надеемся, что он вам понравится.

Поехали!

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

Моделирование динамических систем: Как движется Луна?

Время на прочтение24 мин
Охват и читатели35K
Светлой памяти моего учителя — первого декана физико-математического факультета Новочеркасского политехнического института, заведующего кафедрой «Теоретическая механика» Кабелькова Александра Николаевича

Введение


Август, лето подходит к концу. Народ яростно рванул на моря, да оно и неудивительно — самый сезон. А на Хабре, тем временем, буйным цветом распускается и пахнет лженаука. Если говорить о теме данного выпуска «Моделирования...», то в нем мы совместим приятное с полезным — продолжим обещанный цикл и совсем чуть-чуть поборемся с этой самой лженаукой за пытливые умы современной молодежи.


А вопрос ведь действительной не праздный — со школьных лет мы привыкли считать, что наш ближайший спутник в космическом пространстве — Луна движется вокруг Земли с периодом 29,5 суток, особенно не вдаваясь в сопутствующие подробности. На самом же деле наша соседка своеобразный и в какой-то степени уникальный астрономический объект, с движением которого вокруг Земли не всё так просто, как, возможно хотелось бы некоторым моим коллегам из ближайшего зарубежья.

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

Почему хватит считать нейронные сети черным ящиком?

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

Если вы достаточно долго увлекаетесь нейросетевыми технологиями, то наверняка встречались с мнением, кратко заключенным в риторическом вопросе: «Как ты объяснишь человеку, когда нейросеть считает, что у него рак?». И если в лучшем случае такие мысли заставят тебя сомневаться в использовании нейросетей в достаточно ответственных сферах, то в худшем случае ты можешь и потерять весь свой интерес.

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

Докеризация веб-служб на R и Python

Время на прочтение11 мин
Охват и читатели6.1K
Привет, Хабр! Контейнеризация — это подход к разработке программного обеспечения, при котором приложение или служба, их зависимости и конфигурация (абстрактные файлы манифеста развертывания) упаковываются вместе в образ контейнера. В этой статье рассмотрим создание docker-образа и его использование для запуска оболочки R, Python и много другого. Присоединяйтесь!

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

Многорукие бандиты в рекомендациях

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

Всем привет! Меня зовут Миша Каменщиков, я занимаюсь Data Science и разработкой микросервисов в команде рекомендаций Авито. В этой статье я расскажу про наши рекомендации похожих объявлений и о том, как мы улучшаем их при помощи многоруких бандитов. С докладом на эту тему я выступал на конференции Highload++ Siberia и на мероприятии «Data & Science: Маркетинг».


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

Паттерны корутин asyncio: за пределами await

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

Предисловие переводчика:
В очередной раз наступив на грабли при работе с python asyncio я отправился на просторы интернета, чтобы найти что-то более приятное, чем сухая документация. Мне попалась статья Yeray Diaz "Asyncio Coroutine Patterns: Beyond await", в которой автор весьма увлекательно рассматривает применение asyncio и делится некоторыми приемами. Поскольку я не нашел ничего такого же цельного на русском языке, то решился её перевести.


Asyncio — конкурентная мечта python программиста: пишешь код, граничащий с синхронным, и позволяешь Python сделать все остальное. Это очередной импорт библиотеки антигравитации: import antigravity


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


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

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

10 веб-фреймворков Python, с которыми стоит работать в 2018 году

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

От переводчика: сегодня мы предлагаем вам перевод статьи, размещенной на Hackernoon компанией SteelKiwi. Она занимается разработкой программных решений b2b и b2c, а опытом, накопленным в процессе работы, делится с читателями своего блога.

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

fuzzywuzzy и «Невидимая брань» между людьми и роботами-переводчиками

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

Начала добраго добрейший быти и конец, право непщуют предели вещей


Наверное, во все века были переводчики-буквалисты и переводчики-«вольнодумцы». Последние чувствовали себя совершенно вправе изменять текст, перекопмоновывать его, выбрасывать одни куски и дописывать другие. А перед современными исследователями стоит типичный вопрос: «Что детально произошло во время трансформации оригинала? Что вычеркнуто, что сохранено, что переделано, что дописано?»


Перед тем, как вчитываться в тексты со всей тщательностью, хотелось попробовать отдать их роботам на предварительную проработку. Надежд на роботов у нас было мало, однако помощь от них мы получили существенную. О том, как мы заставили Google Translate и Яндекс.Переводчик тягаться в работе над греческим текстом «Невидимой брани», читайте под катом.

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

Как Python помогает заменить финконсультантов

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

Во всём этом задействуем Pandas и минимизируем количество циклов. Погруппируем времянные ряды и порисуем графиков. Познакомимся с мультииндексами и их поведением. И всё это в Jupyter на Python 3.6.
Читать дальше →

Построение орбит небесных тел средствами Python

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


Системы отсчёта для определения орбиты


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

Используя данное предположение, рассмотрим движение одной и той же точки в двух различных системах отсчета $K$ и $K^{'}$, из которых вторая движется относительно первой с произвольной скоростью $\vec{V(t)}=\dot{\vec{R(t)}}$, где $\vec{R(t)}$ радиус-вектор, описывающий положение точки начала системы координат $K^{'}$ относительно системы отсчета $K$).

Будем описывать движение точки в системе $K^{'}$ радиус-вектором $\vec{r^{'}}(t)$, направленным из начала координат системы $K^{'}$ в текущее положение точки. Тогда движение рассматриваемой точки относительно системы отсчета $K$ описывается радиус-вектором $\vec{r(t)}$:

$\vec{r}(t)=\vec{r^{'}}(t)+\vec{R}(t)$, (1)

а относительная скорость $\vec{v(t)}$

$\vec{v}(t)=\dot{\vec{r^{'}}}(t)+\dot{\vec{R}}(t)$,(2)
Читать дальше →

Нейросети: реализация задачи про грибы на Tensor Flow и Python

Время на прочтение10 мин
Охват и читатели51K
Tensor Flow — фреймворк для построения и работы с нейросетями от компании Google. Позволяет абстрагироваться от внутренних деталей машинного обучения и сосредоточиться непосредственно на решении своей задачи. Очень мощная вещь, позволяет создавать, обучать и использовать нейронные сети любого известного типа. Не нашел на Хабре ни одного толкового текста на эту тему, поэтому пишу свой. Ниже будет описана реализация решения задачи про грибы с помощью библиотеки Tensor Flow. Кстати, алгоритм, описанный ниже, подходит для предсказаний практически в любой области. Например, вероятности рака у человека в будущем или карт у соперника в покере.
Читать дальше →

Делаем радиостанцию из GTA: San Andreas

Время на прочтение5 мин
Охват и читатели25K
Хотелось ли вам переключаться между радиостанциями так, как вы делали это в Сан-Андреас?



Саундтрек из GTA прославился хорошим выбором музыки и забавными вставками. Компания Rockstar проделала отличную работу, создавая радиостанции для этой игры – кстати, музыку из Vice City и San Andreas можно даже купить в виде наборов CD.

Чтобы сделать её прослушивание более приятным – и кое-чему обучиться, я решил взломать радиоприёмник так, чтобы он принимал игровые радиостанции.

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

Давайте начнём!

КлассикAI жанра: ML ищет себя в поэзии

Время на прочтение9 мин
Охват и читатели8.4K
image Сейчас в прессе часто встречаются новости вида “AI научился писать в стиле автора Х”, или “ML создает искусство”. Посмотрев на это, мы решили – было бы здорово, если эти громкие заявления можно было бы проверить на деле.

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

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

Создаем 2D игру на Python с библиотекой Arcade

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

Мы продолжаем делится с вами интересными найденными вещами про питончик. Сегодня вот решили разобраться с 2D играми. Это, конечно, немного попроще, чем то, что проходят у нас на курсе «Разработчик Python», но не менее интересно это уж точно.

ПЕРЕВОД
Оригинал статьи — opensource.com/article/18/4/easy-2d-game-creation-python-and-arcade
Автор — Paul Vincent Craven


Поехали.

Python — выдающийся язык для начинающих изучать программирование. Он также идеально подходит тем, кто хочет “просто взять и сделать”, а не тратить кучу времени на шаблонный код. Arcade — библиотека Python для создания 2D игр, с низким порогом вхождения, но очень функциональная в опытных руках. В этом статье я объясню, как начать использовать Python и Arcade для программирования игр.

Я начал разрабатывать на Arcade после преподавания азов библиотеки PyGame студентам. Я очно преподавал PyGames в течение почти 10 лет, а также разработал ProgramArcadeGames.com для обучения онлайн. PyGames отличная, но в какой-то момент я понял, что устал тратить время на оправдание багов, которые никогда не фиксятся.

Меня беспокоило преподавание таких вещей, как событийный цикл, которым уже почти не пользовались. И был целый раздел, в котором я объяснял, почему y-координаты повернуты в противоположном направлении. PyGames обновлялась редко и базировалась на старой библиотеке SDL 1, а не чем-то более современном вроде OpenGL. На светлое будущее я не рассчитывал.

В моих мечтах была простая и мощная библиотека, которая бы использовала новые фичи Python 3, например, декораторы и тайп-хинтинг. Ей оказалась Arcade. Посмотрим, как начать ее использовать.

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

Аналоги в Python и JavaScript. Часть четвертая

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

Четвертая часть серии статей про аналоги в Python и JavaScript.


В этой части: аргументы функций, создание и работа с классами, наследование, геттеры-сеттеры и свойства класса.


Краткое содержание предыдущих частей:


  1. Часть первая: приведение к типу, тернарный оператор, доступ к свойству по имени свойства, словари, списки, строки, конкатенация строк.
  2. Часть вторая: JSON, регулярки, ошибки-исключения
  3. Часть третья: современные Python и JS: строковые шаблоны (f-строки), распаковка списков, лямбда-функции, итерации по спискам, генераторы, множества.
Читать дальше →

Организация регулярного дайджеста логов с помощью python и ansible на примере asterisk

Время на прочтение6 мин
Охват и читатели4.3K
Когда я создавал данный инструмент, я не был знаком с logwatch. Мне захотелось видеть ситуацию с логами на своих серверах в целом, и, так я сделал этот велосипед. Думаю, что данный механизм может помочь новичкам в понимании альтернативных возможностей ansible.

Используемые программные продукты:

  • python 2.7.14
  • ansible 2.3
  • сервера asterisk на базе FreePBX 13

Механизм состоит из двух частей – python скрипт, который занимается обработкой лог файла и отправкой отчета на почту, и плейбука для сбора логов с серверов и передачи их скрипту для обработки.
Читать дальше →

Открытый вебинар «Асинхронное программирование в Python»

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

Андрей Кравчук, преподаватель курса «Разработчик Python», провёл на прошлой неделе открытый урок на тему «Асинхронное программирование в Python», где, собственно, разбирались с организацией асинхронной обработки данных под высоконагруженные системы.


Как всегда ждём комментарии и вопросы здесь или можно зайти с ними к нам на день открытых дверей.

Как писать только хороший код

Время на прочтение4 мин
Охват и читатели17K
В мае на Build 2018 мы представили расширение Visual Studio IntelliCode. Оно помогает писать код быстрее, избегать ошибок и предлагает разработчикам подсказки, предугадывая их цели. Несколько дней назад вышло обновление, значительно направленное в сторону улучшения взаимодействия с C#. Подробнее под катом!



Кстати, расширение уже работает и с Python.
Читать дальше →

ELDF — новый текстовый формат данных (альтернатива JSON)

Время на прочтение6 мин
Охват и читатели8K
Файл AppData\Local\Dropbox\info.json:
{
    "personal": {
        "host": 5060852864,
        "is_team": false,
        "subscription_type": "Basic",
        "path": "C:\\Users\\DNS\\Dropbox"
    }
}
В новом формате выглядит так:
 
personal
    host = 5060852864
    is_team = 0B
    subscription_type = Basic
    path = C:\Users\DNS\Dropbox


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

Завещание Баффета или о чём молчат финконсультанты

Время на прочтение4 мин
Охват и читатели65K
У. Баффет завещал жене после своей смерти вложить все средства  в биржевой фонд ETF на S&P 500 (VOO) и жить в своё удовольствие. Однако книги, интернет и финконсультанты призывают нас составлять диверсифицированные портфели с обязательным включением в них облигаций. К слову, о диверсификации Баффет тоже отзывается не лестно и призывает все яйца хранить в одной корзине, просто внимательно за ней присматривать.

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