• Что за чёрт, Python

    • Перевод


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


    Ниже — забавный проект, в котором собраны примеры неожиданного поведения в Python с обсуждением того, что происходит под капотом. Часть примеров не относятся к категории настоящих WTF?!, но зато они демонстрируют интересные особенности языка, которых вы можете захотеть избегать. Я думаю, это хороший способ изучить внутреннюю работу Python, и надеюсь, вам будет интересно.


    Если вы уже опытный программист на Python, то многие примеры могут быть вам знакомы и даже вызовут ностальгию по тем случаям, когда вы ломали над ними голову :)

    Читать дальше →
  • Опыт поднятия IP телефонии в отеле

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

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


      Читать дальше →
    • Joystick на AT91SAM7

        Вступление


        Случилось так, что мой малыш, как и полагается мальчику, увлекается машинками. Когда он подрос до 5 лет начал играть в симулятор Master Rally. Играть одному не интересно, поэтому я стал принимать в этом участие. Очень скоро стало понятно, что дискретное управление с клавиатуры не позволяет мне в равной степени конкурировать и бороться за победу. Тогда я подумал о втором руле.

        image

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

        image


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

        image
        Читать дальше →
        • +19
        • 4,9k
        • 7
      • Установка и настройка главной сцены в MajorDoMo

        MajorDoMoСистема умного дома сейчас в моде. Каждый хочет у себя дома сделать какую-нибудь автоматизацию. Например, когда вы подходите к своему дому, чтоб камера стоящая на улице вас распознала и отключила систему безопасности. Либо если к вам пытается кто-то залезть, чтоб система приняла какие-то меры. Также систему умного дома можно настроить так, чтоб она поддерживала необходимую влажность, температуру и т.п. в доме, управление освещением с мобильных устройств, прогноз погоды, курс валют и многое другое. Естественно, чтоб всем этим можно было управлять голосовыми командами. Всё это (и не только это) можно настроить в системе умного дома MajorDoMo (Major Domestic Module или Главный Домашний Модуль).
        Читать дальше →
        • +11
        • 4,1k
        • 9
      • Погода и маршруты в MajorDoMo

        • Tutorial


        Это вторая статья в которой я попытаюсь рассказать как настроить погоду и маршруты в системе умного дома MajorDoMo и сделаем для них отдельные сцены. А также настроим вывод данных о погоде на главной сцене.
        Читать дальше →
      • Централизованное хранилище логов для Squid Proxy или как мы логи в базу заворачивали

        image

        Привет %username%,

        Сегодня я хотел бы рассказать про достаточно тривиальную задачу сбора логов с децентрализованных Squid proxy серверов и подводные камни с которыми мы столкнулись.

        Что имеем:

        1. Squid-hq
        2. Squid-br1
        3. Squid-br2
        4. Squid-br3
        5. Squid-br4
        6. Squid-db
        Читать дальше →
      • STM32 + PPP (GSM) + LwIP

        Большинство GSM модулей работают по интерфейсу UART, посредством AT-команд. Но для серьезных проектов, использование AT команд несет определенные трудности:

        • контроль и обработка ошибок
        • результат выполнения команды возвращается с длительной задержкой
        • необходимо разбирать входящие строки налету

        Нужно понимать, что с результатом выполнения команды, в буфер может попасть URC-код от входящего звонка, SMS, принятые данные и пр. Входной буфер с принятыми строками, приходится разбирать опираясь лишь на символы переносов и «эхо» команды, а сами команды зачастую сильно отличаются форматом. По этим причинам, использование AT вносит дополнительную задержку, алгоритмически ее устранить практически невозможно, ведь причина находится в самом модуле и несовершенстве его встроенного ПО

        В этом примере я использовал SIM800C. Посмотрев спецификацию и убедившись в поддержке PPP, стал изучать способы реализации. Для использования PPP, модуль переключается несколькими настроечными командами, после этого режим AT становится недоступным и фактически идет общение с вышкой оператора напрямую, минуя внутренний стек модуля, что позволяет значительно ускорить обмен данными.

        Пример PPP-пакета:


        Читать дальше →
        • +23
        • 5,1k
        • 8
      • Так ли страшен чёрт или как мы внедряли онлайн-кассу

        • Tutorial

        Данная статья была написана в виде поста для Хабра в большей части из-за того, что вокруг вопроса онлайн-касс для интернет-сайтов возник настоящий информационный вакуум. С одной стороны, в сети полно статей на тему онлайн-касс, с другой — информации непосредственно о решениях для веб-сайтов не очень много, особенно технической. Только слова, что «надо срочно» и «будут штрафовать». Нам этот квест показался достаточно интересным и запутанным, если кому поможет — будем рады.


        Онлайн-касса


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

        Читать дальше →
      • Как держать 20 тысяч VPN клиентов на серверах за $5

          Месяц назад мы с друзьями сделали бесплатный сервис для обхода блокировок сайтов в Украине Zaborona.Help. За это время сервис стал довольно популярным, аудитория выросла до 20 000 пользователей. Число одновременных подключений в пиковые часы — ≈6 000 клиентов.

          Главная особенность нашего сервиса в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Это не влияет на скорость интернета и не подменяет IP-адрес для остальных сайтов.

          В статье описываются тонкости настройки OpenVPN для большого числа клиентов, на дешевых VPS.

          • Как выбрать подходящий хостинг. Отличительные черты плохого хостинга. История о том, как мы долго искали и нашли хостинг в России.
          • Почему IPv6 — хорошо. Правильная настройка IPv6-адресов для VPN-клиентов.
          • Изменение конфигурации OpenVPN на лету, без перезапуска сервера и отключения клиентов.
          • Балансировка нагрузки между серверами и процессами OpenVPN
          • Тонкая настройка Linux для большого числа подключений
          • Особенности кривых операционных систем и роутеров пользователей

          Наш опыт будет полезен для тех, кто собирается развернуть VPN для личных нужд, и тех, кто хочет создать сервис с большим числом клиентов.
          Читать дальше →
        • Многоступенчатая организация хранения резервных копий для самых маленьких

          Совсем недавно по планете прокатились волны WannaCry и его клонов. А сама проблема шифровальщиков стоит перед системными администраторами уже более 10 лет. Рано или поздно – но все внедренные и реализованные меры по защите от шифровальщиков не помогают и все-таки находится пользователь, который открывает письмо, вложение и получает полный «букет». Также много «приятных и увлекательных» часов получает системный администратор.

          И тут то все четко начинают понимать, что нужны резервные копии (много, разных, в разных местах). Т.е. правило 3-2-1, придуманное и описанное Peter-ом Krogh-ом, весьма желательно выполнять. Данная статья – пример, который помогает сделать реальным выполнение данного правила на «коленке» — без покупки дорогостоящего оборудования (в условиях жесткой экономии).
          Читать дальше →