• Встраиваем Lua интерпретатор в проект для микроконтроллера (stm32)

    • Tutorial


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

    Так как большинство программ для микроконтроллеров пишется на С/C++, то для этих целей обычно используют абстрактные классы, предоставляющие интерфейсы к низкоуровневым сущностям (в случае, если проект пишется только с использованием C, то зачастую используются структуры указателей на функции). Данный подход предоставляет требуемый уровень абстракции над железом, однако чреват надобностью в постоянной повторной компиляции проекта с последующим программированием энергонезависимой памяти микроконтроллера бинарным файлом прошивки большого объема.

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

    В качестве скриптового языка я выбрал Lua.
    Читать дальше →
  • Авто-генерация конфигурационных файлов телефонов Cisco

    Для компаний, использующих телефоны Cisco в среде Asterisk, существует проблема хранения десятков или сотен конфигурационных файлов для каждого телефона. На волне необходимости обновления 30 телефонов (частично по прошивкам, частично по настройкам) я решил предложить технологию автоматической генерации конфигурационных файлов.
    Читать дальше →
  • JSX — подробности

    • Translation

    React. Продвинутые руководства. Часть Первая


    Этой публикацией я открываю серию переводов раздела "Продвинутые руководства" (Advanced Guides) официальной документации библиотеки React.js.


    JSX — подробности


    Фундаментально, JSX является синтаксическим сахаром для функции React.createElement(component, props, ...children).


    Читать дальше →
  • Как я пытался включить http2 у себя на проекте с nginx

    • Tutorial
    В общем, как я уже читал тут в комментах: «целые статьи пишут на то, как добавить 5 символов и пробел в конфиг». Все бы хорошо, если бы не google chrome. Они решили прекратить поддержку SPDY и NPN(кому интересно, вот комментарий chromium по этому поводу).
    Читать дальше →
  • MySQL шпаргалки

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

      Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.

      Читать дальше →
    • Через фильтрующий прокси при помощи скрипта во имя Луны

        Данная статья является лиш исследованием на тему и не должна использоваться как инструкция к действию.

        Блокировки продолжаются а я всё также не приветствую отдачу не шифрованного HTTP трафика в заморские прокси, Tor, анонимайзеры и включение экономии трафика в браузере. Пока есть возможность я буду пытаться ходить на сайты прямо. Заодно скорость связи с сайтом не будет зависеть от загруженности стороннего сервиса.

        Я поставил на Firefox плагин RequestPolicy и обнаружил в HTTP хедерах на сайте.
        X-Squid-Error:"403 Access Denied"
        

        Это значит что соединение к сайту проходит через прозрачный прокси.

        В этой статье я попробую пройти при помощи локального прокси написанного на Lua (Вики)

        Скачав LuaSocket 2.0.2 я написал небольшой скрипт локального прокси.

        Читать дальше →
      • Защита VoIP сетей


          Приветствую всех. В сети уже достаточно много написано статей о том, что SBC защищает VoIP сеть и предотвращает воровство трафика, отражает DoS/DDoS атаки и обеспечивает полноценную безопасность VoIP сервисов. Но очень мало написано о том, какие в реальности есть атаки в мире VoIP и SIP, и какие именно технологии обеспечивают безопасность. В данной статье я постарался описать какие бывают атаки в мире VoIP, в чем их особенность, какое у них отличие от обычных сетевых атак и каким образом AudioCodes SBC предотвращает данные атаки и обеспечивает ту самую защиту, про которую все пишут.
          Читать дальше →
        • Google translate+Asterisk IVR

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

            В этом топике задали интересную тему — реализовать IVR для * с использованием синтезатора из Google Translate.

            Я в общем то даже не планировал этим заниматься, но мне стало интересно.
            Читать дальше →
          • Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем


                     В интернете много статей по запуску openwrt на устройствах Mikrotik через metarouter. Во всех них для сборки используется ревизия r29684 с официальным патчем, поддерживающим процессоры(устройства RB400, RB700 series, RB900 series, RB2011 boards, RB1000, RB1100, RB1100AH and RB800). Для более поздних версий данный патч уже не подходит. Из этого следует то, что все пакеты openwrt достаточно старые и собрать обновленное ПО почти нереально. А в новых версиях openwrt появилось много новых пакетов и библиотек.
                     Поискав в интернете, не получилось ли у кого запустить свежий openwrt под metarouter, наткнулся на нужную заметку. Данная статья как раз полностью копирует ее содержание, плюс маленький бонус по сборке пакетов. Приступим (пример для debian\ubuntu систем):
              Читать дальше →
            • Сервис для определения имени абонента по телефонному номеру

                За всё время пользования телефонией (городской или сотовой, не важно) меня удручала одна вещь — отсутствие возможности узнать имя абонента при его отсутствии в вашей телефонной книге. Даже если у вас подключена услуга АОН то определяется только телефонный номер, но не имя.

                Для решения этой проблемы я сделал proof-of-concept сервиса, который ставит в соответствие телефонному номеру имя абонента. Таким образом вы сможете понять кто вам звонит и дальше принять решение — снимать трубку или нет.

                Читать дальше →
              • Фишки языка D

                  Очень радует, что на Хабре появляются статьи о языке D. Но, на мой взгляд, переводы хелпа и статей для чуть больше, чем для новичков не дают ничего в плане популяризации языка. Думаю, искушённой публике лучше представлять, пусть более сложные, но какие-то интересные вещи — фишки. Большинство из того, что можно назвать фишками D, есть и в других языках, но многое в D реализовано более эффектно и эффективно, на мой вкус во всяком случае. В D есть много интересного, о чем стоит рассказать, и начну я в этой статье с функций, но не совсем обычных.
                  Читать дальше →
                • Пишем вектор на Dlang

                  Доброго времени суток, хабр!

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

                  Стоит напомнить, что в отличии от C++ в D классы и структуры имеют разное логическое предназначение и устроенны они по разному. Структуры не могут наследоваться, в структурах нет никакой другой информации, кроме полей (в классах есть таблица виртуальных функций, например), структуры хранятся по значению (классы всегда ссылками). Структуры прекрасно подходят для простых типов данных.
                  Читать дальше →
                • Сети для самых маленьких. Часть десятая. Базовый MPLS

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

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



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


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

                    Читать дальше →
                  • Asterisk. Отправка и прием факсов

                    Всем привет. Сегодня я хочу написать заметку о том, как наладить отправку/прием факсов с помощью программной АТС Asterisk (физических факсов в наличии нет). Итак.

                    Дано:
                    1. Есть организация, занимающаяся скажем продажами (на самом деле чем угодно, потому что факсы используются много где). В этой организации есть пользователи, которые иногда/часто отпрвляют/принимают факсимильные сообщения.
                    2. Также имеется Asterisk, с подключенными городскими линиями (по SIP или через какой либо VOIP шлюз — не важно. Главное что эти пиры прописаны в sip.conf).

                    Задача:
                    Настроить Asterisk таким образом, что бы каждый пользователь мог принять/отправить факсимильное сообщение нажав определенную комбинацию клавиш на телефоне.
                    Читать дальше →
                  • Как легко и просто научить ваш Asterisk звонить через нужного оператора

                    Приветствую тебя, %username%!

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

                    image

                    Практика показывает, что все больше и больше компаний начинают задумываться о своих расходах на связь. Львиную часть расходов при этом составляют вызовы на мобильные номера. Отсюда и родилась задача обрабатывать исходящие вызовы и направлять через ту линию, где звонок будет совершен бесплатно или за наименьшую стоимость.
                    Читать дальше →
                    • +16
                    • 29k
                    • 9
                  • Asterisk+Lua — IVR и некоторые другие моменты

                      И снова здрасьте! IVR — сегодня это даже не фишка, а некий стандарт работы предприятия. В некоторых случаях многие, как клиенты, так и конкуренты считают, что если этого самого IVR нет, то «там» низкое качество предоставляемых услуг. Этой штукой нынче никого не удивишь. Однако, мы же говорим про реализацию IVR на языке lua под Астериском. И если вы переходите от обычного плана набора к Lua, то тут можно кое-что пояснить.

                      Читать дальше →
                      • +7
                      • 8.7k
                      • 9
                    • «Допиливаем» Asterisk CDR Viewer под себя

                        image

                        «Я профессионал, потому что не ленюсь искать информацию в google» — сказал мне однажды коллега.

                        А я поленился и начал «допиливать» CDR Viewer под себя, даже не посмотрев хотя бы вот это.
                        А может и не в лени дело, просто было интересно… в общем, что из этого вышло можно посмотреть под катом:)
                        Читать дальше →
                        • +2
                        • 52.8k
                        • 4
                      • Размеры экранов

                        • Tutorial
                        Планшеты и смартфоны оснащаются экранами с разными соотношениями сторон и разной плотностью пикселей, однако эти параметры редко указываются в технических характеристиках.

                        Попробуем разобраться со всеми хитростями, связанными с этими параметрами. Начнём с планшетов.
                        Вот соотношение размеров экранов, использующихся в большинстве современных планшетов.



                        Обратите внимание, насколько экран 8" с соотношением сторон 4:3 визуально больше широкого экрана 7". А широкий экран 10.1" на сантиметр меньше экрана 9.7" по высоте.

                        Я свёл в таблицу параметры экранов, чаще всего использующихся в планшетах.



                        Текст на экранах с низким PPI (количеством точек на дюйм) читается не комфортно. Я бы не стал покупать планшет с экраном, имеющим PPI ниже 150. Даже 164 PPI экрана iPad mini многим кажутся недостаточными. Отлично воспринимаются экраны с PPI больше 200.

                        Для меня было большим открытием, что экран 9.7" 1024x768 имеет даже меньшее PPI, чем экран 7" 800x480.

                        Читать дальше →
                      • Как быстро создать опрос на вашем сайте с помощью форм Google?

                          Как быстро создать опрос на вашем сайте с помощью форм Google?Рано или поздно, практически все, у кого есть собственный сайт, сталкиваются с необходимостью создания форм обратной связи для сбора данных (проведения опросов) с посетителей сайта.

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

                          Есть несколько подходов в создании подобных форм:

                          • Формы можно сделать, используя теги HTML и завязать нажатие кнопки «Отправить» с отправкой введенных данных вам на email

                          • Можно сделать связку PHP+MySQL (или любой другой язык программирования и базу данных) и все введенные данные сохранять в базу данных для дальнейшей работы.

                          • Если ваш сайт сделан с использованием какой-нибудь популярной CMS (например, Joomla, Drupal или WordPress), то вы можете поискать в сети плагины, модули и компоненты, которые достаточно просто позволяют создавать формы

                          • А можно для создания форм обратной связи использовать бесплатные инструменты всем известного Google.Docs

                          И в этой статье я хотел бы показать как с помощью Google.Docs вы можете легко и быстро создавать всевозможные формы опроса для ваших сайтов.
                          Читать дальше →