• Itertools в Python

    • Перевод

    Модуль itertools стандартизирует основной набор быстрых эффективных по памяти инструментов, которые полезны сами по себе или в связке с другими инструментами. Вместе они формируют «алгебру итераторов», которая позволяет лаконично и эффективно создавать специализированные инструменты на чистом Python.

    Модуль itertools находится в стандартной библиотеке Python.

    Модуль представляет следующие типы итераторов: 

    - Бесконечные итераторы;

    - Конечные итераторы;

    - Комбинаторные генераторы.

    Читать далее
  • Повышение производительности netfilter, использование ipset

      iptables — интерфейс к файрволу Linux (netfilter). При большом количестве правил iptables нагрузка может быть достаточно высокой и создавать проблемы. В этой заметке я постараюсь описать, что влияет на производительность iptables и как ее повысить.
      Читать дальше →
    • Доставляем голос в мобильной сети: шаг 2 — Аналого Цифровое Преобразование

        В первой части цикла статей мы рассмотрели преобразование человеческого голоса в электрический сигнал. Теперь, казалось бы, самое время передать этот сигнал до местонахождения собеседника и начать разговор! Именно так первоначально и поступали. Однако чем более востребованной становилась услуга и чем на большие расстояния было необходимо передавать сигнал, тем понятнее становилось, что аналоговый сигнал для этого не годится.
        Для того чтобы обеспечить передачу информации на любое расстояние без потери качества, нам потребуется произвести второе преобразование из Аналогового сигнала в Цифровой.



        Эта картинка дает самое наглядное представление о том, что происходит при Аналого Цифровом Преобразовании (АЦП) а далее мы рассмотрим зачем это нужно, как происходило развитие технологии, и какие требования накладываются на такое преобразование в мобильных сетях.
        Читать дальше →
      • Построение отказоустойчивого SIP-прокси/PBX на базе FreeSWITCH mod_sofia (recover)

        Здравствуйте, уважаемые хабравчане.

        Вот уже несколько месяцев ковыряюсь в прекрасном продукте FreeSWITCH. Он не перестает меня удивлять функциональностью, надежностью и производительностью (даже в тех областях, в которых от него этого не ждешь).

        Один из моих экспериментов, который в скором времени, скорей всего, перейдет в продакшн касался изумительной, с моей точки зрения, функции mod_sofia recover. Функция recover позволяет FreeSWITCH (FS) восстановить вызовы после краша или же, если FS работает в высоко доступном кластере подхватить вызовы на второй ноде! ВНИМАНИЕ! без обрывов вызовов абонентов, как в случае проксировании RTP, так и без него.

        Реализуется это достаточно просто, благодаря использованию внешней СУБД и настройкам mod_sofia, отвечающего за SIP стэк. Т.е. mod_sofia хранит всю информацию о текущих вызовах во внешней БД, и при краше у второй ноды кластера есть возможность эти настройки прочесть и подхватить вызовы.
        Читать дальше →
        • +5
        • 22,6k
        • 9
      • Основы CG-рисунка на примерах: рисуем осциллограф, применяем 3D

        • Tutorial


        Всем привет! Меня зовут Иван Смирнов, я работаю концепт-художником в Allods Team, игровой студии Mail.Ru Group, на проекте Skyforge. Помимо этого я преподаю на факультете концепт-арта в Scream School и веду онлайн-курсы. Не так давно я проводил лекцию по основам CG-рисунка: в частности, речь шла о том, как нарисовать простой предмет, например, осциллограф. Материалами этой лекции я спешу поделиться с вами. Осторожно, траффик!
        Читать дальше →
      • Бесплатный видеокурс CCNA Сisco доступен на одном из каналов YouTube

          По моему глубокому убеждению, в особенности в сфере IT, важнейшим качеством любого из специалистов является способность к самообучению. Именно потому в нашей небольшой компании стало хорошей традицией уделять ежедневно время этому процессу, собственному развитию. Даже менеджер должен понимать, как устроена и функционирует сеть. Не давнее, как вчера, обсуждая проблему с BGP, коллега сказал «Вот не был бы я лентяем — прошел бы в студенческие годы курс CCNA и знал бы ответ на твой вопрос». И я задался задачей помочь коллеге, найти способ получить знания в этой области самому, хотя бы начального уровня, чтоб лучше понимать с чем мы работаем. На Хабре, введя в поиск CCNA, можно встретить массу рекомендаций, но все же, англоязычный Интернет — основной источник знаний в области IT-коммуникаций.



          Я просто обожаю YouTube! Ведь он предоставляет волшебную возможность удаленного «посещения» тематических конференций и семинаров, причем абсолютно бесплатно. В этот раз, как оказалось, там уже месяца 2 существует бесплатный канал, на котором лектор Imran Rafai, четко и доступно излагает материал из 30-дневного CCNA-курса, весьма доступно и увлекательно!

          Даже если Вы не системный администратор, а просто хотите обладать немного лучшим пониманием, что такое Интернет — курс для Вас! Помимо прочего Вы повысите свой уровень английского, ведь курс на английском языке, с субтитрами.
          Читать дальше →
        • Поговорим о VPN-ах? Типы VPN соединений. Масштабирование VPN

          Коллеги, здравствуйте. Меня зовут Семенов Вадим и я хочу представить статью, посвященную вопросу масштабируемости VPN-ов, причем тех VPN-ов, которые доступны для настройки в обычной корпоративной сети предприятия, а не со стороны провайдера. Надеюсь, данная статья станет справочным материалом, который может потребоваться при дизайне сети, либо при её апгрейде, либо для того, чтобы освежить в памяти принцип работы того или иного VPN-на. 
          Читать дальше →
        • Сети для самых маленьких. Часть десятая. Базовый MPLS

            Сеть нашей воображаемой компании linkmeup растёт. У неё есть уже магистральные линии в различных городах, клиентская база и отличный штат инженеров, выросших на цикле СДСМ.
            Но всё им мало. Услуги ШПД — это хорошо и нужно, но есть ещё огромный потенциальный рынок корпоративных клиентов, которым нужен VPN.
            Думали ребята над этим, ломали голову и пришли к выводу, что никак тут не обойтись без MPLS.

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



            Сегодня в выпуске:


            А начнём мы с вопроса: «Что не так с IP?»

            Читать дальше →
          • Ресурсы для изучения Wolfram Language (Mathematica) на русском языке

            • Tutorial

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

            Думаю, что пришла пора рассказать об этом на Хабрахабре, создав статью о разрабатываемой коллекции ресурсов, которая будет постоянно расширяться и пополняться, и будет служить, по сути, русскоязычным аналогом страницы "Where can I find examples of good Mathematica programming practice?" на сайте Mathematica at StackExchange.com.
            Читать дальше →
          • Signaling System #7 / Система сигнализации №7

            Signaling System #7 / Система сигнализации №7 — это набор сетевых протоколов, обеспечивающих обмен служебными сообщениями между мобильными станциями (мобильными телефонами) и телефонными станциями, а также между самими телефонными станциями.
            В настоящее время SS#7 используется, как стандарт сигнализации в телефонных сетях.

            В данной статье будет описана структура и принцип действия SS#7.

            Читать дальше →
          • Настройка торрент клиента Transmission на прошивке Tomato



              Intro


              Приветствую всех. Хочу поделиться с вами своим опытом настройки клиента Transmission на популярной open source прошивке для роутеров Tomato. Недавно на хабре публиковалась статья Netgear WNR3500L: Превращаем роутер в NAS, где за основу была взята прошивка DD-WRT. Но лично мне DD-WRT не очень понравилась, а функционал торрент качалки с NAS’ом был очень нужен. Поэтому предлагаю познакомиться с альтернативным методом.
              Читать дальше →
            • Разработка и модификация прошивки для Android телефонов. Часть 2

                В первой части мы научились перепаковывать официальную прошивку из формата RUU в формат пакета обновлений, что дало нам возможность использовать созданную нами прошивку, не опасаясь затирания модифицированного раздела восстановления (recovery rom). И тем временем, пока HTC воюет с хорошими ресурсами, мы продолжим изучать и улучшать прошивку.
                В предыдущей части, хоть мы и создали прошивку, которая загружается и работает как часы, мы бы хотели расширить базовый функционал оной. Одним из самых востребованных расширений является поддержка работы с правами суперпользователя (root). Также сюда можно отнести интегрирование busybox. Кроме того, мы научимся запускать произвольные скрипты при старте системы и адаптируем ramdisk под свои нужды.

                Busybox



                busybox — это набор консольных unix утилит, ориентированный на малый размер и производительность, что так актуально для мобильных систем. Вместе с системой android поставляется свой набор утилит — toolbox, который предоставляет минимально необходимых функционал для системы, и как следствие более простой в количественном и функциональном плане. Наличие busybox в системе, с одной стороны, позволит нам, как разработчикам, чувствовать себя более комфортно при удаленной работе на устройстве, с другой, позволит писать сложные скрипты, и, например, реализовать механизм запуска собственных скриптов при загрузке, используя run-parts. Также стоит учитывать, что для некоторых android приложений (особенно те, которые используют root) наличие busybox — обязательно.
                Читать дальше
              • Разработка и модификация прошивки для Android телефонов на примере HTC Hero GSM. Часть 1

                  Причины по которым люди ставят модифицированные версии прошивок различны. Кому-то хочется удивить друга смешной анимацией загрузки, кому-то не хватает определенного функционала (например vpn), кто-то хочет выжать максимум производительности из своего телефона за счет разгона процессора, а кто-то пять месяцев ждет новую версию операционной системы Android для своего любимого HTC Hero.
                  На данный момент уже существует превеликое множество самых невообразимых сборок для самых различных телефонов на базе Android. Иногда они даже появляются в той или иной форме на Хабре.
                  Я же хочу Вам рассказать о процессе и особенностях создания кастомной прошивки на основе официальной. Данные знания были получены в процессе разработки одной из не многих отечественных прошивок на базе Android 2.1 для HTC Hero GSM. И более или менее успешно опробованы на себе и других подвернувшихся пользователях одного крупного российского форума.
                  Не смотря на то, что все нижеследующее было сделано для HTC Hero, данные правила и особенности имеют полную силу для всех телефонов, особенно тех, которые разработаны компанией HTC и используют фирменную оболочку Sense.
                  Для экспериментов нам понадобится:
                  • Android SDK желательно последней версии
                  • Утилита apktool для реинжениринга системных приложений
                  • Утилиты smali/baksmali для де-оптимизации системных приложений
                  • Утилита unyaffs для извлечения системных файлов из образа
                  • Скрипт split_bootimg.pl для извлечения ядра и ramdisk-а
                  • Утилита testsign для подписывания пакета обновления и отдельных приложений
                  • установленное и настроенное JRE
                  • телефон с операционной системой Android
                  • права суперпользователя и модифицированная подпрограмма восстановления (recovery rom)

                  Все вышеперечисленное доступно в версиях как для системы Linux так и для Windows. Но в своих примерах я буду ориентироваться на использование Linux.
                  Конечно же ни root-права ни recovery нам не нужен для того, чтобы начать разработку, однако если мы захотим опробовать наше творение, они нам понадобятся. Для HTC Hero можно использовать RA-hero-v1.6.2.
                  Наверное, самое время напомнить, что использование неофициальных прошивок лишает нас гарантии, но где наша не пропадала. И несмотря на то, что большинство операций безопасно — всегда нужно четко понимать что и зачем делается, дабы не причинить необратимый вред своему андроиду
                  Читать дальше →
                • LinkMeUp. Выпуск №19. Компания Зелакс, техподдержка и передача данных через ЛЭП

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

                    Новости выпуска:

                    1. Новый отечественный производитель (link)
                    2. Подводный кабель между юго-восточной Азией и США (link)
                    3. Большой брат следит за ними (link)
                    4. Количество маршрутов в BGP Full Veiw перевалило за 512 тысяч (link)


                    Хронометраж:
                    00:00-00:25: новости.
                    00:25-00:54: рассказ Павла о компании Зелакс.
                    00:54-01:22: Техподдержка Зелакс.
                    01:22-02:24: ВЧ-связь


                    Скачать файл подкаста.



                    Скачать все выпуски подкаста вы можете с помощью BT Sync (код: BYENRHD5UNKD5ZDIYFSB63WG2PEY2GIUN) или с яндекс-диска.

                    Список использованных терминов.

                    Под катом поясняющие схемы и картинки.
                    Читать дальше →
                    • +10
                    • 2,4k
                    • 6
                  • Всё, что вы хотели знать о Ethernet фреймах, но боялись спросить, и не зря

                      Статья получилась довольно объёмная, рассмотренные темы — форматы Ethenet фреймов, границы размеров L3 Payload, эволюция размеров Ethernet заголовков, Jumbo Frame, Baby-Giant, и много чего задето вскользь. Что-то вы уже встречали в обзорной литературе по сетям передачи данных, но со многим, однозначно, не сталкивались, если глубоко не занимались изысканиями.

                      Начнём с рассмотрения форматов заголовков Ethernet фреймов в очереди их появления на свет.

                      Форматы Ehternet фреймов.


                      1) Ethernet II



                      Рис. 1
                      Читать дальше →
                    • От linux-админа к python-программисту или как и почему я менял профессию

                      За свои почти тридцать лет я дослужился до старшего системного администратора. В моем распоряжении было около сорока серверов с linux на борту. Компания росла и расширялась, но задачи сводились к наращиванию мощи уже готового функционала.

                      И все бы хорошо, но со временем и по определенным причинам дискомфорт начал преобладать над комфортом.
                      Читать дальше →
                    • «Инструментарий системного администратора» или «Как мы работаем»

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

                        Итак, что в принципе, должен делать (уметь делать) системный администратор:
                        Устанавливать/обновлять/удалять ПО
                        Настройку ПО
                        Планировать работы
                        Документировать
                        Мониторить состояние ИТ-систем
                        Диагностировать и поддерживать ИТ-системы
                        Резервное копирование/архивацию ПО и данных

                        Для всего этого есть немало различного ПО, постараемся описать все самое необходимое.
                        Читать дальше →
                      • Sysdig — инструмент для диагностики Linux-систем

                          Sysdig — инструмент для диагностики Linux-систем

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

                          Читать дальше →
                        • Linux для профессионалов: видео-монтаж (и немножко композинг)

                          • Tutorial
                          Привет коллеги. Думаю, пришло время продолжить начатый некогда цикл «Linux для профессионалов». Сегодня я бы хотел рассказать о монтаже видео на примере ролика, который мы сняли прошлым летом для нашей пражской затеи с электронным GPS аудио-путеводителем.

                          Собственно ролик (если быть точным, то это демонстрационный мини-фильм).



                          Весь цикл постобработки и монтажа выполнен с использованием программного обеспечения под управлением ОС Linux.

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

                          Итак, по-порядку.
                          Читать дальше →