Как стать автором
Обновить
509.29

Python *

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

Сначала показывать
Период
Уровень сложности

Клон NumPy

Время на прочтение3 мин
Количество просмотров6.5K
image

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

Концерты и события KudaGo у вас на зеркале

Время на прочтение5 мин
Количество просмотров3.9K
Расскажу вам про то, как я сделал возможным получать и отображать информацию из публичного API KudaGo на вашем зеркале. Само собой, речь не о простом, а об «умном» зеркале.
Читать дальше →

Решение задания с pwnable.kr 23 — md5 calculator. Разбираемся со Stack Canary. Подключаем библиотеки C в python

Время на прочтение4 мин
Количество просмотров5.3K
image

В данной статье решим 23-е задание с сайта pwnable.kr, узнаем, что такое stack canary и подключим libc в python.

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

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

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

Рост. Вес. Три соседа

Время на прочтение9 мин
Количество просмотров14K

В поиске интересного и простого ДатаСета я набрёл этого красавца.


Об этом красавце


В нём есть данные о росте и весе 10 000 мужчин и женщин. Никакого описания. Ничего «лишнего». Только рост, вес и метка пола. Эта таинственная простота мне понравилась.


Что ж, начнём!


Что мне было интересно?


  • В каком диапазоне вес и рост у большинства мужчин и женщин?
  • Какие они — «средний» мужчина и «средняя» женщина?
  • Сможет ли простенькая модель машинного обучения «KNN» по этим данным угадать вес по росту?

Погнали!


logo

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

Решение задания с pwnable.kr 22 — brainfuck. Атака типа ret2libc

Время на прочтение5 мин
Количество просмотров2.9K
image

В данной статье решим 22-е задание с сайта pwnable.kr и узнаем категорию атак, подразумевающих перезапись адреса в GOT на адрес нужной нам функции из библиотеки.

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

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

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

QVD-файлы — что внутри, часть 3

Время на прочтение8 мин
Количество просмотров2.1K

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


Итак (вспоминаем) QVD-файл соответствует реляционной таблице, в QVD файле таблица хранится в виде двух косвенно связанных частей:


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


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

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

QVD-файлы — что внутри, часть 2

Время на прочтение5 мин
Количество просмотров2.2K

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


Итак (вспоминаем) QVD файл соответствует реляционной таблице, которая, как известно состоит из строк. Каждая строка таблицы в свою очередь состоит из колонок (или полей), причем строки имеют одинаковую структуру, которая может быть описана, например, SQL оператором (create table).


В QVD файле таблица хранится в виде двух косвенно связанных частей:


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


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

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

PIL на Python от простого к сложному

Время на прочтение2 мин
Количество просмотров74K
Чтобы дойти до сложных алгоритмов обработки, стоит проанализировать стандартные схемы, с чего я и предлагаю начать.

Для примеров обработки будет использоваться изображение с различным наборов цветов:

image

Для старта нам потребуется два модуля библиотеки:

from PIL import Image, ImageDraw 

Настроим инструменты для комфортной дальнейшей работы:

image = Image.open('test.jpg')  # Открываем изображение
draw = ImageDraw.Draw(image)  # Создаем инструмент для рисования
width = image.size[0]  # Определяем ширину
height = image.size[1]  # Определяем высоту
pix = image.load()  # Выгружаем значения пикселей

Приступим


Обрабатывать изображения будем в формате RGB. Также PIL поддерживает работу с форматами 1, L, P, RGB, RGBA, CMYK, YCbCr, LAB, HSV, I, F.
Читать дальше →

Получение статистики по всем клиентам из API Яндекс Директ в разрезе дней с помощью Python

Время на прочтение5 мин
Количество просмотров6.3K
В работе часто использую короткую статистику в разрезе дней чтобы отслеживать отклонения трафика.

Более подробно о написании запросов написал в статье « Получение рекламных кампаний Яндекс Директ с помощью API в DataFrame (Python)».

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

Нам следует прописать запрос к серверу как функцию.

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

В первом файле пишем функцию


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

Передача данных в функцию у меня выглядит следующим образом:

def rep(token,login,date_from,date_to):

Пишем запрос к серверу API Яндекс Директ


Данный запрос запрашивает данные по следующим параметрам:

  • Date
  • Impressions
  • Clicks
  • Ctr
  • Cost
  • AvgCpc
  • AvgImpressionPosition
  • AvgClickPosition
  • AvgTrafficVolume
  • BounceRate
  • AvgPageviews
Читать дальше →

Распознавание дат, написанных естественным языком, средствами Python3

Время на прочтение2 мин
Количество просмотров7.4K
Мы в компании создаем сервис, который извлекает юридические факты из переписки клиента и заказчика. Сервис вырос из одной простой идеи — мои постоянные клиенты из решили упросить работу менеджерам и создать “генератор договоров”. Первую задачу — подтягивать в договор реквизиты клиента и заказчика мы решили легко.

Появилась вторая идея — искать в переписке даты и вставлять их в техническое задание, документы, автоматически.

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

Ищем утечки памяти в приложениях на Python

Время на прочтение4 мин
Количество просмотров17K
¡Hola! мы продолжаем серию публикаций, приуроченных к запуску курса «Web-разработчик на Python» и прямо сейчас делимся с вами переводом еще одной интересной статьи.

В Zendesk мы используем Python для создания продуктов с машинным обучением. В приложениях с использованием машинного обучения одними из самых распространенных проблем, с которыми мы столкнулись, являются утечка памяти и всплески. Код на Python обычно выполняется в контейнерах с помощью фреймворков распределенной обработки, таких как Hadoop, Spark и AWS Batch. Каждому контейнеру выделяется фиксированный объем памяти. Как только выполнение кода превысит заданное ограничение памяти, контейнер прекратит свою работу из-за ошибок, возникающих по причине нехватки памяти.

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

От парсера афиши театра на Python до Telegram-бота. Часть 1

Время на прочтение6 мин
Количество просмотров24K


Я очень люблю оперу и балет, но не очень — отдавать большие деньги за билеты. Ежедневный просмотр сайта театра с тыканьем в каждую кнопку ужасно утомлял, а внезапно появлявшиеся билеты по 170 рублей на супер-составы бередили душу.
Чтобы автоматизировать это дело появился скриптик, который бежит по афише и собирает информацию о самых дешевых билетах на выбранный месяц. Запросы из серии «выдай список всех опер в марте на старой и новой сцене до 1000 рублей». Подруга обронила «а ты не Telegram-бота делаешь?». Такого в плане не было, но почему бы и нет. Бот родился, хоть и крутился на домашнем ноутбуке.
Потом Telegram заблокировали. Мысль запулить бота на рабочий сервер растаяла, да и интерес, чтобы довести функционал до ума, угас. Под катом рассказываю о судьбе сыщика дешевых билетов с самого начала и о том, что с ним сталось после года использования.
Читать дальше →

Стиллер на Python с отправкой по почте

Время на прочтение3 мин
Количество просмотров64K

Что будем делать?


Здравствуй, читатель сегодня поговорим о том почему не надо открывать непроверенные файлы скачанные с неизвестных источников и создадим такой файл чтобы понять что он может наделать на вашем ПК. Создавать мы будем стиллер который соберет все наши пароли и отправит их нам по почте.

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

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

Машинное обучение: прогнозируем цены акций на фондовом рынке

Время на прочтение7 мин
Количество просмотров37K
Переводчик Полина Кабирова специально для «Нетологии», адаптировала статью инженера Кембриджского университета Вивека Паланиаппана о том, как с помощью нейронных сетей создать модель, способную предсказывать цены акций на фондовой бирже.

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

Мемоизация дефолтным kwarg в Python

Время на прочтение3 мин
Количество просмотров8.1K
Вот так можно мемоизировать питоновскую функцию:

def memo_square(a, cache={}): 
    if a not in cache: 
        cache[a] = a*a 
    return cache[a]

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

Применение Python для анализа смежных востребованных навыков у разработчиков

Время на прочтение5 мин
Количество просмотров8.6K

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

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

Склейка двух apk-файлов в один

Время на прочтение4 мин
Количество просмотров21K
image

Решил я как-то сделать склейку двух apk файлов, но информации о том, как это сделать на просторах интернета не особо то много. Тогда вооружившись трояном Ahmyth для android (его исходниками), началось путешествие в мир склейки apk своими руками. Коротко об этом далее…
Читать дальше →

Топ-10 инструментов Python для машинного обучения и data-science

Время на прочтение4 мин
Количество просмотров29K


Python — один из наиболее популярных языков программирования. Причина — в его универсальности, ведь это мультитул с возможностью «заточки» под самые разные нужды. Сегодня мы публикуем подборку с описанием 10 полезных для data-scientist и специалиста по ИИ инструментов.

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

Численные методы решения систем нелинейных уравнений

Время на прочтение9 мин
Количество просмотров86K

Введение


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

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

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

(1)

Обозначим через вектор неизвестных и определим вектор-функцию Тогда система (1) записывается в виде уравнения:

(2)

Теперь вернёмся к всеми любимому Python и отметим его первенство среди языков программирования, которые хотят изучать [1].



Этот факт является дополнительным стимулом рассмотрения числительных методов именно на Python. Однако, среди любителей Python бытует мнение, что специальные библиотечные функции, такие как scipy.optimize.root, spsolve_trianular, newton_krylov, являются самым лучшим выбором для решения задач численными методами.

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

Telegram API демон — склеиваем последовательные сообщения

Время на прочтение3 мин
Количество просмотров19K

Пиши мысль в одном сообщении


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

Хватит это терпеть!


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

Вклад авторов

Работа

Data Scientist
53 вакансии