Обновить
512K+

Python *

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

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

Превращаем робот-пылесос в универсального солдата

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

Все началось с увлечения глубоким обучением, нейронными сетями и далее по списку. Я посмотрел пару курсов, поучаствовал в соревновании на Kaggle… "чем бы еще заняться?". Тут мимо как раз по своим делам проползал робот-пылесос (Xiaomi Vacuum Cleaner V1) и подкинул интересную идею…


XSS, CSRF и Flash аутентификация. Решение задач с r0от-мi Web— Client. Часть 2

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

В данной статье угоняем куки через Stored XSS, разбираемся с CSRF атакой и реверсим Flash SWF файл. Ссылки на предыдущие статьи:

Часть 1: Web — javascript authentication, obfuscation и native code. Решение задач с r0от-мi Web— Client.

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

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

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

Современное программирование: взгляд после 25 лет перерыва или как я писал бота для Телеграм

Время на прочтение7 мин
Охват и читатели29K
Задача кажется простой, когда ничего про нее не знаешь и когда решил.

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

Мне нравится Телеграм заложенными в него возможностями в том числе и ботами, поэтому канал в виде блога был создан там. Начал искать ботов, помогающих оформлять сообщения…. а так как мне хочется не нашел. Что ж, напишем сами. Умные люди посоветовали писать на Python.

Прочитал первый попавшийся в инете самоучитель на 149 страниц. Я знаком с Pascal, FoxPro, Interbase и даже (ха-ха 3 раза) 20 лет назад продавал свои программы, а потом как-то не сложилось, ушел в торговлю. Работа программистом мне сильно помогла в постановке задач для кодеров кстати. Но вернемся к Python, кажется, ничего сложного, ведь и на BASIC программировать можно было и это не мой институтский диплом с программно-аппаратным комплексом генератора поверки МИГа на Assembler. Одна проблема, всё это было давно, так что возвращаясь к заголовку — кажется что просто, потому что пока ничего не знаю про задачу, но попробовать стоит.

Я решил, что удобнее всего делать проект со смартфона на Андроид, ибо он всегда под рукой. Итак ставим:

  1. Pydroid 3 — IDE for Python 3 Собственно Питон для Андроид.
  2. @BotFather, В Телеграм устанавливаем отца всех ботов — он понадобится чтобы получить идентификатор вашего бота и сделать основные настройки.
  3. Rebootr Приложение для запуска проекта на heroku.
  4. GIT Приложение для онлайн-хостинга репозиториев.
  5. Windscribe Без VPN никуда?
  6. Termux Эмулятор терминала и среды Linux.

И что в сухом остатке? Программировать на смартфоне можно в теории, но невозможно на практике. Максимум проверить код, исправить ошибку, исследовать работоспособность.
Читать дальше →

Ещё одна библиотека для создания mock'ов

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

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

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

Как написать смарт-контракт на Python в сети Ontology. Часть 3: Runtime API

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

Это 3-я часть из серии обучающих статей о создании смарт-контрактов на Python в блокчейн сети Ontology. В предыдущих статьях мы познакомились с

  1. Blockchain & Block API
  2. Storage API.

Теперь, когда Вы имеете представление о том, как вызвать подходящее API для постоянного хранилища при разработке смарт-контракта с помощью Python в сети Ontology, давайте перейдём к знакомству с тем, как использовать Runtime API (Contract Execution API). Runtime API имеет 8 связанных API, которые предоставляют общие интерфейсы для выполнения контракта и помогают разработчикам получать, преобразовывать и проверять данные.
Читать дальше →

DeepPavlov для разработчиков: #2 настройка и деплоймент

Время на прочтение4 мин
Охват и читатели9.7K
Все статьи цикла:

1. DeepPavlov для разработчиков: #1 инструменты NLP и создания чат-ботов
2. DeepPavlov для разработчиков: #2 настройка и деплоймент

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

Договоримся, что все скрипты запуска библиотеки выполняются в environment Python с установленной библиотекой DeepPavlov (про установку см. первую статью, про virtualenv можно прочитать здесь). Примеры из этой статьи не требуют знания синтаксиса Python.


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

Строим домашний CI/CD при помощи GitHub Actions и Python

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

Как то вечером, придя домой с работы, я решил немного позаниматься домашним проектом. Я сделал несколько правок и сразу захотел поэкспериментировать с ними. Но до экспериментов мне пришлось заходить на VPS, пулить изменения, пересобирать контейнер и запускать его. Тут я и решил, что пора разобраться с непрерывной доставкой.

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

Компьютерное зрение всем, даром

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


20 лет назад, в 1999 году, компания Kyocera выпустила первый мобильный телефон с цифровой камерой – Visual Phone VP-210. С тех пор, благодаря невероятно большому и растущему рынку мобильных устройств связи, ПЗС-матрицы цифровых камер совершили невероятный скачок по всем параметрам. Чувствительность, диапазон, размер, энергопотребление, но что ещё важнее – цена.

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

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

Нейросеть для определения хейтеров — «не, ну это бан»

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

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

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

Для работы я буду использовать Google Colab. Этот сервис позволяет запускать Jupyter Notebook'и, имея доступ к GPU (NVidia Tesla K80) бесплатно, что ускорит обучение. Мне понадобится backend TensorFlow, дефолтная версия в Colab 1.15.0, поэтому просто обновим до 2.0.0.

Импортируем модуль и обновляем.
Читать дальше →

Асинхронное программирование в Python: краткий обзор

Время на прочтение5 мин
Охват и читатели96K
Когда говорят о выполнении программ, то под «асинхронным выполнением» понимают такую ситуацию, когда программа не ждёт завершения некоего процесса, а продолжает работу независимо от него. В качестве примера асинхронного программирования можно привести утилиту, которая, работая асинхронно, делает записи в лог-файл. Хотя такая утилита и может дать сбой (например, из-за нехватки свободного места на диске), в большинстве случаев она будет работать правильно и ей можно будет пользоваться в различных программах. Они смогут её вызывать, передавая ей данные для записи, а после этого смогут продолжать заниматься своими делами.



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

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

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

Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 2

Время на прочтение6 мин
Охват и читатели6.5K
Представляем вашему вниманию вторую часть перевода материала, посвящённого особенностям работы с модулями в Python-проектах Instagram. В первой части перевода был дан обзор ситуации и показаны две проблемы. Одна из них касается медленного запуска сервера, вторая — побочных эффектов небезопасных команд импорта. Сегодня этот разговор продолжится. Мы рассмотрим ещё одну неприятность и поговорим о подходах к решению всех затронутых проблем.


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

Как в Redash заметили и исправили проблему, вызвавшую деградацию производительности Python-кода

Время на прочтение5 мин
Охват и читатели5.5K
Недавно в Redash приступили к смене одной системы выполнения задач на другую. А именно — они начали переход с Celery на RQ. На первом этапе на новую платформу перевели лишь те задания, которые не выполняют запросы напрямую. Среди таких заданий — отправка электронных писем, выяснение того, какие запросы должны быть обновлены, запись пользовательских событий и другие вспомогательные задачи.



После развёртывания всего этого было замечено, что RQ-воркеры требуют гораздо больше вычислительных ресурсов для решения того же объёма задач, который раньше решали средствами Celery.

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

Импорт отчета по звонкам из CoMagic в BigQuery по расписанию с помощью Google Cloud Functions

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

Для чего


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

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

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

Как нейронная сеть SincNet выделяет значимые частоты в звуке через Back Propagation

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

Недавно вышла одна очень интересная статья "Speaker Recognition from raw waveform with SincNet", в которой была описана end-to-end архитектура нейронной сети для распознавания говорящего по голосу. Ключевая особенность этой архитектуры — специальные одномерные сверточные слои, которые имеют всего два параметра с четкой интерпретацией. Интерпретируемость параметров нейронной сети — дело довольно затруднительное, поэтому эта статья привлекла мой интерес.



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

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

Подборка @pythonetc, октябрь 2019

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

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

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


Если хотите итерировать сразу несколько итерируемых объектов, то можете использовать функцию zip (не имеет никакого отношения к файловому формату ZIP):
Читать дальше →

Пишем чат на Python и Django

Время на прочтение9 мин
Охват и читатели55K
Добрый день, друзья. В преддверии старта курса «Web-разработчик на Python» традиционно делимся с вами полезным переводом.




Вы видите перед собой руководство, которое расскажет, как создать приложение-чат на Python, Django и React.

В отличие от других руководств, я не использую Python и Django для WebSocket-соединений. Несмотря на то, что это звучит круто с технической точки зрения, работает это довольно вяло и само по себе затратно, особенно, если у вас приличное количество пользователей. Такие языки, как C++, Go и Elixir намного лучше справляются с ядром чата.
Читать дальше →

Как написать смарт-контракт на Python в сети Ontology. Часть 2: Storage API

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

Это вторая часть из серии обучающих статей о создании смарт-контрактов на Python в блокчейн сети Ontology. В предыдущей статье мы познакомились с Blockchain & Block API смарт-контракта Ontology.

Сегодня мы обсудим, как использовать второй модуль— Storage API. Storage API имеет пять связанных API, которые позволяют добавление, удаление и изменения в постоянном хранилище в смарт-контрактах на блокчейне.
Читать дальше →

Блиц-проверка алгоритмов машинного обучения: скорми свой набор данных библиотеке scikit-learn

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

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

Вдобавок к этому особо настоявшиеся исследователи данных, делясь своим опытом, подчёркивают: «Выбор метода оценки должен частично зависеть от ваших данных и от того, в чём, по вашему мнению, модель должна быть хороша» («Data Science: инсайдерская информация для новичков. Включая язык R», авторы Кэти О’Нил, Рэйчел Шатт).
Читать дальше →

Книга «Знакомство с PyTorch: глубокое обучение при обработке естественного языка»

Время на прочтение10 мин
Охват и читатели8.3K
image Привет, Хаброжители! Обработка текстов на естественном языке (Natural Language Processing, NLP) — крайне важная задача в области искусственного интеллекта. Успешная реализация делает возможными такие продукты, как Alexa от Amazon и Google Translate. Эта книга поможет вам изучить PyTorch — библиотеку глубокого обучения для языка Python — один из ведущих инструментов для дата-сайентистов и разработчиков ПО, занимающихся NLP. Делип Рао и Брайан Макмахан введут вас в курс дел с NLP и алгоритмами глубокого обучения. И покажут, как PyTorch позволяет реализовать приложения, использующие анализ текста.

В этой книге • Вычислительные графы и парадигма обучения с учителем. • Основы оптимизированной библиотеки PyTorch для работы с тензорами. • Обзор традиционных понятий и методов NLP. • Упреждающие нейронные сети (многослойный перцептрон и другие). • Улучшение RNN при помощи долгой краткосрочной памяти (LSTM) и управляемых рекуррентных блоков • Предсказание и модели преобразования последовательностей. • Паттерны проектирования NLP-систем, используемых в продакшене.
Читать дальше →

Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 1

Время на прочтение5 мин
Охват и читатели5.3K
Публикуем первую часть перевода очередного материала из серии, посвящённой тому, как в Instagram работают с Python. В первом материале этой серии речь шла об особенностях серверного кода Instagram, о том, что он представляет собой монолит, который часто меняется, и о том, как статические средства проверки типов помогают этим монолитом управлять. Второй материал посвящён типизации HTTP-API. Здесь речь пойдёт о подходах к решению некоторых проблем, с которыми столкнулись в Instagram, используя Python в своём проекте. Автор материала надеется на то, что опыт Instagram пригодится тем, кто может столкнуться с похожими проблемами.


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