Pull to refresh
35
0
Timofey @timo4ey

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

Asterisk + AMI + Python

Reading time 5 min
Views 17K
Честно признаюсь, я долго думал, стоит ли публиковать этот материал. Для тех, кто умеет работать с AMI Asterisk, ничего интересного тут нет. Для тех, кто только начинает что-то делать, вряд ли разберётся в моём коде (хотя я старался писать понятно). Вангую комментарии вроде: «Зачем использовать Хабр для своих заметок?». С другой стороны, приведённый под катом скрипт может стать кому-то отправной точкой. Скрипт ничего не делает кроме того, что шлёт в консоль все события из AMI и умеет их фильтровать. Для примера, я показываю в консоле все звонки, которые попадают в любой из контекстов «zadarma-in» или «sibseti_in». Если заинтересовал, прошу под кат:
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 7

Оптимизации, используемые в Python: список и кортеж

Reading time 4 min
Views 51K
В Python, есть два похожих типа — список (list) и кортеж (tuple). Самая известная разница между ними состоит в том, что кортежи неизменяемы.

Вы не можете изменить объекты в tuple:

>>> a = (1,2,3)
>>> a[0] = 10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Но вы можете модифицировать изменяемые объекты внутри кортежа:

>>> b = (1,[1,2,3],3)
>>> b[1]
[1, 2, 3]
>>> b[1].append(4)
>>> b
(1, [1, 2, 3, 4], 3)
Читать дальше →
Total votes 54: ↑52 and ↓2 +50
Comments 28

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

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

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

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

Механизм состоит из двух частей – python скрипт, который занимается обработкой лог файла и отправкой отчета на почту, и плейбука для сбора логов с серверов и передачи их скрипту для обработки.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 2

Визуализация данных для киноманов: скрапим рекомендации фильмов и делаем интерактивный граф

Reading time 11 min
Views 29K

Однажды я наткнулся на интерактивную карту lastfm и решил обязательно сделать подобный проект для фильмов. Под катом история о том, как собрать данные, построить граф и создать своё интерактивное демо на примере данных с кинопоиска и imdb. Мы рассмотрим фреймворк для скрапинга Scrapy, пробежимся по методам визуализации больших графов и разберёмся с инструментами для интерактивного отображения больших графов в браузере.

Читать дальше →
Total votes 67: ↑65 and ↓2 +63
Comments 18

Парсим мемы в питоне: как обойти серверную блокировку

Reading time 26 min
Views 100K

Новогодние праздники — прекрасный повод попрокрастинировать в уютной домашней обстановке и вспомнить дорогие сердцу мемы из 2k17, уходящие навсегда, как совесть Electronic Arts.



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

Читать дальше →
Total votes 76: ↑70 and ↓6 +64
Comments 42

Основы компьютерных сетей. Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP

Reading time 20 min
Views 659K

Всех с наступившим новым годом! Продолжаем разговор о сетях и сегодня затронем такую важную тему в мире коммутации, как VLAN. Посмотрим, что он из себя представляет и как с ним работать. А также разберем работающие с ним протоколы VTP и DTP.
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 17

Как обучается ИИ

Reading time 27 min
Views 68K

Источник изображения.

Есть ли связь между трехглазой жабой и нейронными сетями? Что общего у программы, выигрывающей в го, и приложением Prisma, перерисовывающим фотографии под стили картин известных художников? Как компьютеры одолели нарды, а затем покусились на святое — и выиграли у человека в “Космических захватчиков”?
Дадим ответы на все эти вопросы, а еще поговорим о революции, связанной с глубоким обучением, благодаря которому удалось добиться прорыва во многих областях.
Читать дальше →
Total votes 56: ↑54 and ↓2 +52
Comments 35

Efficient Rails — новая книга по оптимизации процесса разработки Rails-приложений

Reading time 3 min
Views 9.2K


Эффективные Рельсы — более точного названия для книги придумать было бы сложно. Всё содержание описывается этими двумя словами и раскрывается для нас в сотне рецептов на 380+ страницах. В ожидании выхода финальной версии Rails 5, данное чтиво — то, на что стоит потратить время, благо потребуется его не так много. Но данное вложение вернётся колоссальной прибылью знаний и позволит, как говорится на обложке, «создавать Rails-приложения с нечеловеческой скоростью». Да и не только Rails, да и не только Ruby. Первые две главы включают в себя обилие информации по работе с терминалом и СКВ. Подробности под катом.
Узнать подробнее и получить промокод
Total votes 10: ↑9 and ↓1 +8
Comments 16

Обзор Xiaomi Mi Air Purifier 2 или как очистить воздух мегаполиса?

Reading time 4 min
Views 89K
Xiaomi Mi Air Purifier 2 — это вторая модификация очистителя воздуха от Xiaomi. Это устройство входит в линейку продуктов Xiaomi для умного дома, так что естественно у него есть WiFi и он может управляется с приложения. Впрочем, приложение служит больше для того, чтобы передавать информацию об окружающей среде, а основная функция Mi Air управляется одной кнопкой. Но давайте обо всё по порядку.

image
Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Comments 86

Веб-парсинг на Ruby

Reading time 6 min
Views 66K
image
Это перевод статьи «Web Scraping with Ruby», которую я нашел полезной при изучении языка программирования Ruby. Парсинг меня интересует в личных целях. Мне кажется, это не только полезный навык, но и хороший способ изучить язык.
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 33

Использование morph.io для веб-парсинга

Reading time 3 min
Views 17K
Если вы читали предыдущие две статьи, Веб-парсинг на Ruby и Продвинутый парсинг веб-сайтов с Mechanize, то у вас есть базовые знания как написать парсер, который получает структурированные данные с веб-сайта.

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

Morph.io позиционирует себя как «Heroku для парсеров». Вы можете выбрать либо запускать парсеры вручную, или им работать автоматически каждый день. При этом вы можете использовать API для извлечения данных в JSON/CSV и использования их в своем приложении или скачать sqlite базу с данными.
Morph.io заполняет пробел, оставленный Scraperwiki Classic. Парсеры в morph.io хостятся на GitHub, что означает что вы можете их «форкнуть» и исправить в дальнейшем, если они перестанут работать.

image
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 7

Дарудар — облако в дар от Microsoft

Reading time 6 min
Views 16K
Дарудар — известный на просторах Рунета проект, ставший связующим звеном между людьми, желающими что-то подарить, но не знающими кому, и теми, кто может этого захотеть. На сайте можно найти все, что угодно — от бытовых и не очень вещей до самых настоящих котов в мешках. О том, как работает сервис, где уже подарили более 3 миллионов даров, рассказывает один из основателей сервиса, Антон brutto Каракулов.



Дарудар — самый настоящий высоконагруженный проект. Размещенный в облаке и использующий полностью Linux-стек, в сутки он выдерживает ~2.5 тыс даров и ~1.5 тыс благодарностей, ~20 тыс. комментариев, ~40 тыс. уведомлений и ~4.5 тыс. файлов. Подробности под катом.

Читать дальше →
Total votes 30: ↑23 and ↓7 +16
Comments 35

Сверхдлительный тест: Lenovo ThinkPad X220

Reading time 10 min
Views 48K
Я очень люблю читать обзоры гаджетов. Когда-то я даже любил их писать, и в те времена я очень хорошо понимал: за три дня, неделю и даже месяц оценить все достоинства и недостатки устройства практически невозможно. Если только не писать обзоры освежителей воздуха на батарейках, и то, возможны нюансы. Длительный опыт использования дает гораздо больше информации, которая, если знать заранее, могла бы повлиять на решение о покупке.

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

Выбор устройства для первого обзора очевиден: это мой лаптоп Lenovo ThinkPad X220. Во-первых, обзор нового я уже когда-то писал. Во-вторых, несмотря на суровые жизненные испытания, ноутбук по-прежнему активно используется и мало чем уступает современным аналогам. Под катом: совершенно негламурные пыльные фото, похвала и критика, сравнение с современными аналогами. Размышления на тему, чем бы все же этот ноутбук заменить, когда он сломается вероятно в полностью рабочем состоянии отправится на полку к дедушке ThinkPad 380ED, тоже вполне рабочему.
Опять скрипит потертое седло
Total votes 32: ↑29 and ↓3 +26
Comments 131

Интересные случаи организации работы на второй линии технической поддержки

Reading time 11 min
Views 26K


История такая: будучи одной из крупнейших ИТ-компанией на российском рынке ИТ-аутсорсинга и услуг, мы очень часто оказываемся в ситуации поддержки решений на стыке двух-трёх производителей. И когда возникает проблема, например, от которой зависит, заплатят людям вовремя пенсию или нет, в общем случае начинается следующая история:
— Ну что вы, наше железо отлично работает, проблема в ПО, — говорит первый вендор и отправляет ко второму.
— Как можно! Наш софт протестирован, проблема в аппаратной части, — говорит второй и отправляет к первому.

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

Поэтому работаем вместо них мы. Один раз – даже включенными в кислородно-изолирующие приборы после сработки пожарной сигнализации.
Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Comments 5

Простой мониторинг нагрузки на сервер в реальном времени с веб-интерфейсом

Reading time 2 min
Views 80K
Сегодня существует довольно много профессиональных инструментов для мониторинга состояния серверов с обилием настроек, плагинов, поддержкой сразу множества машин и т.д., это известные Nagios, Zabbix, Munin, Cacti и многие другие.


Но в этом посте речь пойдет об очень маленьком и простом, но от этого не менее полезном инструменте: инструменте для мониторинга Scout Realtime. Этот написанный на Ruby open source проект позиционируется разработчиками как современная замена консольной утилите top с выводом статистики использования диска, памяти, сети, CPU и запущенных процессов. Все это отображается в реальном времени с плавными графиками. Во время диагностики работы сервера, иногда полезно пару минут понаблюдать за показателями, и проследить их изменение во времени (в отличие от гирлянды мерцающих чисел в терминале, отображающих данные исключительно на текущий момент).
Читать дальше →
Total votes 42: ↑38 and ↓4 +34
Comments 34

Масштабируя Zabbix

Reading time 11 min
Views 152K
Zabbix logoТех, кто использует или собирается использовать Zabbix в промышленных масштабах, всегда волновал вопрос: сколько реально данных сможет Заббикс «переварить» перед тем как окончательно поперхнется и подавится? Часть моей недавней работы как раз касалось этого вопроса. Дело в том, что у меня есть огромная сеть, насчитывающая более 32000 узлов, и которая потенциально может полностью мониториться Заббиксом в будущем. На форуме давно идут обсуждения о том, как оптимизировать Zabbix для работы в больших масштабах, но, к сожалению, мне так и не удалось найти законченное решение.

В этой статье я хочу показать, как я настраивал свою систему, способную обрабатывать реально много данных.
Подробности
Total votes 45: ↑45 and ↓0 +45
Comments 39

Почему Git

Reading time 8 min
Views 68K
Было время, когда я ничего не знал про VCS, ни что это такое, ни тем более зачем это мне. И верхом своих достижений считал папочку с архивами версий. К моменту осознания необходимости системы контроля версий я уже набил шишек и прочувствовал необходимость такого инструмента. Но борландовский аналог CVS меня не впечатлил. У каждого файла свой номер версии. Как мне получить срез определенного релиза я так и не разобрался. А в это время SVN победоносно шла сквозь умы разработчиков. Черт, это было то, чего мне так не хватало. Прочитав доку и начав работать я просто влюбился в нее. Да, были трудности и определенные неудобства, но куда без них.
Так я и работал бы в SVN, но ничего не стоит на месте. В интернете уже потекли тонкие ручейки новостей про Git. Я не кидаюсь за каждой новой технологией, и прошло уже достаточно много времени, пока мне не прожужжали этим Git’ом все мозги. Мне стало любопытно, я вначале присматривался, примерялся, а потом плюнул и начал новый проект на Git. Мучался с ребятами 2 недели, накачал литературы, написал шпаргалку… ничего, привыкли, … а потом меня поперло.

Теперь меня регулярно просят рассказать про Git и что в нем такого. Уже надоело, поэтому этот пост для тех, кто еще сомневается.
Читать дальше →
Total votes 207: ↑195 and ↓12 +183
Comments 265

Перевод «Simplified JavaScript Jargon»

Reading time 2 min
Views 14K
Упрощённый JavaScript-жаргон
Автор анонса — хабрапользователь elnee


Доброго вам new Date().toLocaleString(), хабрапользователи. Хочу представить всеобщему вниманию перевод англоязычного словаря терминов для фронтенд-разработчиков.
Если заинтересовались — добро пожаловать под кат.
Читать дальше →
Total votes 22: ↑14 and ↓8 +6
Comments 4

jQuery для начинающих. Часть 4. Селекторы

Reading time 11 min
Views 215K


Последнее время мне всё чаще задают вопрос как выбрать тот или иной элемент в DOM'е, и данный пост будет сплошь посвящен селекторам в jQuery, возможно большинство из них Вы видели в различных источниках, но собрать их воедино все же стоит…
Читать дальше →
Total votes 83: ↑79 and ↓4 +75
Comments 30

Создание веб-сайта. Курс молодого бойца

Reading time 24 min
Views 805K
Как-то меня попросили провести небольшой семинар в лицее, где я когда-то учился, по созданию веб-сайта. В процессе написания речи я подумал, что она может вылиться в материал, который, возможно, будет полезен многим начинающим в области веб-дизайна, вёрстки веб-страниц и пр. Я не претендую на истину в первой инстанции и всё изложенное носит чисто личностный взгляд на работу с дизайном и кодом. Статья даёт поверхностный взгляд на понятия и средства, которые, на мой взгляд, могут стать неплохим стартом для того, кто готов идти дальше.
Читать дальше →
Total votes 86: ↑77 and ↓9 +68
Comments 46

Information

Rating
Does not participate
Registered
Activity