Обновить
512K+

Python *

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

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

Python3. Автоматизация конфигурации мультивендорного сетевого оборудования

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

Предисловие


Всем доброго времени суток!

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

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

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

Задача


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

Собственно как я к этому пришел


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

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

Создание management commands в Django

Время на прочтение5 мин
Охват и читатели65K
Management commands — команды, выполняемые из командной строки с помощью скрипта manage.py.

Наиболее частые сферы применения — это действия, выполняемые разово или периодически, но для которых почему-либо недоступен запуск через планировщик. Например, отправка пользователям разовых сообщений, получение выборки данных из БД, проверка наличия необходимых файлов и папок перед накатыванием обновлений, быстрое создание объектов модели при разработке и т.д.
Читать дальше →

Допинг для аналитики: почему стоит обратить внимание на Apache Zeppelin

Время на прочтение6 мин
Охват и читатели44K
Все рано или поздно приходят к аналитике за данными. В больших многопользовательских играх (да и синглплеере) без этого уже вообще никуда. Сколько пользователей предпочитают новый режим; где слабые места монетизации; куда смотреть геймдизайнерам, чтобы повысить вовлеченность игроков; и еще миллион вещей — подсчитывается вообще всё. И всё это влияет на решения, которые потом принимают разработчики.

А вот внедряют аналитику все по-разному: кто-то покупает сторонние решения (просто, но негибко), кто-то пишет под себя (долго и дорого), а кто-то пока просто считает несколько базовых метрик силами программистов и не заморачивается.

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

Программная реализация БИХ-фильтра в информационно-измерительном канале

Время на прочтение7 мин
Охват и читатели20K
Информацию о состоянии окружающей среды или, например, некоторого объекта управления можно получать, измеряя текущие значения параметров, характеризующих те или иные свойства среды или объекта. Для получения, обработки и передачи такой информации техническими средствами, значение измеряемого параметра необходимо преобразовать автоматическими измерительными устройствами в сигнал измерительной информации. Для этого реализуют информационно-измерительный канал (ИИК), как совокупность технических средств, каждое из которых будет выполнять свою определённую функцию, начиная от восприятия измеряемой величины и заканчивая получением измерительной информации в форме, удобной для восприятия человеком или для дальнейшей её обработки. И всё бы хорошо, да вот по пути следования информации на полезный сигнал y(t) измерительной информации накладывается помеха e(t) – случайная функция времени, которая может моделировать и случайную погрешность измерительного преобразователя, и электрические наводки в соединительных проводах, и случайные пульсации измеряемого параметра, и другие факторы.
Читать дальше →

Подборка свежих книг по Python для тех, кто только собрался его изучать

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

Всегда есть множество поводов выпустить книгу про IT и программирование. Взлетел курс биткоина — на рынке появляется десяток блокбастеров про технологию блокчейна и майнинг. Машина на Go обыграла человека в какую-нибудь интеллектуальную игру — получите кипу «самых полных руководств» по гугловскому языку.

Но есть темы вечные. Одна из них — Python. Оно и понятно, язык прекрасно подойдёт тем, кто с программированием не знаком вовсе; изучить все основные библиотеки можно за пару недель, а возможности практически не ограничены. Автор блога GeekBrains Илья Бубнов заглянул на электронные полки магазина Amazon, чтобы посмотреть, что полезного было выпущено или перевыпущено по Python в первой половине 2018 года.
Читать дальше →

iMaterialist Furniture Challenge или 50 оттенков стульев

Время на прочтение5 мин
Охват и читатели5.1K
Недавно на Kaggle закончилось соревнование iMaterialist Challenge (Furniture), задачей в котором было классифицировать изображения на 128 видов мебели и предметов быта (так называемая fine-grained classification, где классы очень близки друг к другу).

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


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

Сортировки обменами

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


Если описать в паре предложений по какому принципу работают сортировки обменами, то:

  1. Попарно сравниваются элементы массива
  2. Если элемент слева* больше элемента справа, то элементы меняются местами
  3. Повторяем пункты 1-2 до тех пор, пока массив не отсортируется

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

Соревнование Kaggle Home Credit Default Risk — анализ данных и простые предсказательные модели

Время на прочтение33 мин
Охват и читатели22K
На датафесте 2 в Минске Владимир Игловиков, инженер по машинному зрению в Lyft, совершенно замечательно объяснил, что лучший способ научиться Data Science — это участвовать в соревнованиях, запускать чужие решения, комбинировать их, добиваться результата и показывать свою работу. Собственно в рамках этой парадигмы я и решил посмотреть внимательнее на соревнование по оценке кредитного риска от Home Credit и объяснить (начинающим дата саентистам и прежде всего самому себе), как правильно анализировать подобные датасеты и строить под них модели.


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

Kivy. От создания до production — один шаг. Часть 2

Время на прочтение11 мин
Охват и читатели13K
Часть 1

Приветствую!

Сегодня, как всегда, поговорим о создании мобильных приложений с фреймворком Kivy и Python. В частности речь пойдет о создании мобильного клиента для одного Интернет ресурса и публикации его в Google Play. Я расскажу, с какими проблемами может столкнуться новичок и опытный разработчик, которые решили попробовать себя в кроссплатформенной разработке с Kivy, что можно и чего лучше не делать в программировании с Python for Android.

Обзор Ubuntu DSVM: алхимия ни при чём

Время на прочтение13 мин
Охват и читатели5K
В течение последних месяцев в нескольких проектах наш партнер использовал виртуальную машину для обработки и анализа данных (DSVM) на базе Ubuntu от Microsoft. Он решил попробовать ее в деле уже используя продукт Amazon. Рассмотрим все плюсы и минусы, а также сравним наш инструмент с похожими решениями. Присоединяйтесь!

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

Kaggle: Amazon from Space — трюки и хаки при обучении нейросетей

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


Летом прошлого года закончилось соревнование на площадке kaggle, которое было посвящено классификации спутниковых снимков лесов Амазонки. Наша команда заняла 7 место из 900+ участников. Не смотря на то, что соревнование закончилось давно, почти все приемы нашего решения применимы до сих пор, причём не только для соревнований, но и для обучения нейросетей для прода. За подробностями под кат.
Читать дальше →

Анализ таблиц маршрутизации, или зачем ещё сетевому инженеру Python

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

Hello Habr! Эта моя первая статья на Хабре, и родилась она из вопроса на одном из профессиональных форумов. Выглядел вопрос, несколько перефразируя, следующим образом:


  • Имеется набор текстовых файлов, содержащих вывод таблиц маршрутизации с различных сетевых устройств;
  • Каждый файл содержит информацию с одного устройства;
  • Устройства могут иметь различный формат вывода таблицы маршрутизации;
  • Необходимо на основании имеющихся данных по запросу выводить путь до произвольной подсети или IP-адреса с каждого из устройств;
  • Вывод должен включать на каждом участке пути информацию о записи из таблицы маршрутизации, по которой будет смаршрутизирован пакет.

Задача мне показалась мне интересной и перекликалась с одной из собственных сетевых утилит, планируемых в перспективе.Поэтому в свободный вечер, поразмыслив над ее решением, написал Proof-of-Concept реализацию на Python 2.7 под формат Cisco IOS, IOS-XE и ASA, отвечающую основным требованиям.


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

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

Стеганография в IP-пакетах

Время на прочтение4 мин
Охват и читатели21K
Однажды, перед защитой очередной лабораторной работы мне задали вопрос: какие поля IP-пакета можно использовать для стегано? Я не знал и лишь пожал плечами. Но вскоре я всё же решил изучить этот вопрос.

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

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

Python и стеганография

Время на прочтение3 мин
Охват и читатели33K
Не так давно в моём учебном заведении прошёл пилотный Хакатон для студентов. Тематика заданий была связана с информационной безопасностью, в том числе шифрованием данных.

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

Состязательные атаки (adversarial attacks) в соревновании Machines Can See 2018

Время на прочтение7 мин
Охват и читатели16K
Или как я оказался в команде победителей соревнования Machines Can See 2018 adversarial competition.

image
Суть любых состязательных атак на примере.

Так уж получилось, что мне довелось поучаствовать в соревновании Machines Can See 2018. Я присоединился к соревнованию я поздновато (примерно за неделю до окончания), но в конечном итоге оказался в команде из 4 человек, где вклад троих из нас (включая меня) был необходим для победы (убрать одну составляющую — и мы бы оказались в аутсайдерах).

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

NumPy в Python. Часть 3

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

Предисловие переводчика


И снова здравствуйте! Продолжаем наш цикл статей по переводу мана о numpy. Приятного чтения.


Операторы сравнения и тестирование значений


Булево сравнение может быть использовано для поэлементного сравнения массивов одинаковых длин. Возвращаемое значение это массив булевых True/False значений:

>>> a = np.array([1, 3, 0], float)
>>> b = np.array([0, 3, 2], float)
>>> a > b
array([ True, False, False], dtype=bool)
>>> a == b
array([False,  True, False], dtype=bool)
>>> a <= b
array([False,  True,  True], dtype=bool)
Читать дальше →

Предварительная программа PyConRu-2018: три Python Core Developer’а, докладчики из Google, Yelp, Red Hat, Яндекса

Время на прочтение5 мин
Охват и читатели3.1K
Привет, Хабр!

22-23 июля в 95 км. от Москвы пройдет шестая российская конференция для python-программистов PYCON RUSSIA 2018.

Уже в программе: Юрий Селиванов (Python Core Developer, EdgeDB, Канада), Андрей Светлов (Python Core Developer, Украина), Christian Heimes (Python Core Developer, Red Hat, Германия), Melanie Warrick (Google, США), Stephan Jaensch (Yelp, Германия), Kate Heddleston (Shift, США), Alejandro Saucedo (Eigen Technologies, Великобритания), Вадим Пуштаев (Mail.Ru), Марина Камалова (Яндекс). Если вы хотите присоединиться в качестве спикера, есть еще несколько дней, чтобы заявиться с докладом. Под катом — подробности программы.


Если вы не знаете, что такое PyConRu, вот маленький ролик о том, как прошла прошлогодняя конференция
Читать дальше →

Вероятностное программирование и байесовский метод для хакеров

Время на прочтение4 мин
Охват и читатели18K
Здравствуйте, коллеги. Сегодня хотели поинтересоваться, насколько востребованной вам кажется слегка устаревшая книга "Bayesian Methods for Hackers", опубликованная в оригинале в 2015 году, но пока не переведенная на русский язык.


Книга позиционируется как прикладная, максимально избавленная от математики и неустаревающая.

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

Книга «Глубокое обучение на Python»

Время на прочтение6 мин
Охват и читатели43K
imageГлубокое обучение — Deep learning — это набор алгоритмов машинного обучения, которые моделируют высокоуровневые абстракции в данных, используя архитектуры, состоящие из множества нелинейных преобразований. Согласитесь, эта фраза звучит угрожающе. Но всё не так страшно, если о глубоком обучении рассказывает Франсуа Шолле, который создал Keras — самую мощную библиотеку для работы с нейронными сетями. Познакомьтесь с глубоким обучением на практических примерах из самых разнообразных областей. Книга делится на две части: в первой даны теоретические основы, вторая посвящена решению конкретных задач. Это позволит вам не только разобраться в основах DL, но и научиться использовать новые возможности на практике.

Обучение — это путешествие длиной в жизнь, особенно в области искусственного интеллекта, где неизвестностей гораздо больше, чем определенности. Внутри приведен отрывок «Исследование и мониторинг моделей глубокого обучения с использованием обратных вызовов Keras и TensorBoard».
Читать дальше →

Как нас анализируют в кинотеатрах… и не только

Время на прочтение11 мин
Охват и читатели56K
Компьютерное зрение все глубже интегрируется в нашу жизнь. При этом, мы даже не замечаем всего этого наблюдения за нами. Сегодня расскажем о системе, помогающей анализировать эмоции посетителей на конференциях, в учебном процессе, в кинотеатрах и много где ещё. Кстати, покажем код и расскажем о практических кейсах. Заглядывайте под кат!

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