• jl-sql: SQL-запросы по JSON-логами в командной строке

      Вступление никому не интересно, поэтому начну сразу с примеров использования


      json-pipe-sql
      % cat log.json

      {"type": "hit", "client": {"ip": "127.1.2.3"}}
      {"type": "hit", "client": {"ip": "127.2.3.4"}}
      {"type": "hit", "client": {"ip": "127.3.4.5"}}
      {"type": "hit", "client": {"ip": "127.3.4.5"}}
      {"type": "hit", "client": {"ip": "127.1.2.3"}}
      {"type": "click", "client": {"ip": "127.1.2.3"}}
      {"type": "click", "client": {"ip": "127.2.3.4"}}

      Выполняем запрос:


      % cat log.json | jl-sql 'SELECT client.ip, COUNT(*) AS count WHERE type = "hit" GROUP BY client.ip'

      {"client":{"ip":"127.1.2.3"},"count":2}
      {"client":{"ip":"127.2.3.4"},"count":1}
      {"client":{"ip":"127.3.4.5"},"count":2}
      Читать дальше →
    • Приручение дикой зверушки: добавляем поддержку Homekit в «умную розетку» Redmond SkyPlug RSP-100S

      • Tutorial


      Предыстория


      Впервые про данную розетку я узнал из статьи Умная розетка Redmond SkyPlug RSP-100S Анализ конструкции и схемы электрической принципиальной. Выявление недостатков. Помню, что прочитав ее, в первую очередь заинтересовался схемой бестрансформаторного источника питания и тем, насколько компактно размещены элементы в корпусе розетки при том, что внутри полноценное реле, а не, скажем, симистор.

      О каких-то попытках перепрограммировать Bluetooth-модуль и речи не было, тк программирование BLE устройств исторически было делом очень непростым. Вот пример: Разработка IoT устройств с использованием Bluetooth LE, явно не DIY уровень.

      Однако, за прошедший год ситуация кардинальным образом изменилась…
      Читать дальше →
    • Asterisk на Mikrotik

      • Tutorial
      image

      Задался идеей поднять voip на mikrotik. Кто помнит, в старых версиях routeros был модуль для voip, потом его выпилили, а жаль. Нативно поднять астериск на routeros не выйдет, однако есть возможность поднять виртуальный роутер с openwrt в режиме metarouter, вот отсюда и будем исходить.

      Долгие поиски привели меня на сайт openwrt.wk.cz (доступен только по ipv6), откуда и был скачан образ openwrt для mt-mips. Все эксперименты проводил на 2011UAS-2HnD. Так как не у всех есть ipv6, я сделал зеркало для установки пакетов с него (ms1.nserver.us/openwrt.wk.cz.), где и лежат необходимые пакеты. Кстати, во время поисков, так и не удалось найти полноценную статью по этой теме не то что на русском, но и на любом другом.

      Читать дальше →
    • Умные светодиодные лампы Xiaomi Yeelight

        Многие читатели и посетители сайта Lamptest.ru просили меня протестировать светодиодные лампы китайской компании Xiaomi. Наконец-то у меня появилась возможность это сделать.

        Читать дальше →
      • Невидимые друзья вашего github-репозитория

        • Tutorial
        image
        Github это незаменимый инструмент, прочно вошедший в жизнь практически каждого разработчика.

        Хотя многие из нас используют его постоянно, не все знают, что существует большое количество сторонних (и бесплатных) сервисов и инструментов, которые тесно интегрированы с github и расширяют его функциональность.

        В данной статье мы уделим внимание, в основном, инструментам, работающим в инфраструктуре npm. Полный список сервисов, интегрирующихся с github, можно посмотреть на странице github integrations directory.

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




        Читать дальше →
      • «Умный дом» на практике: сравнение двух контроллеров Z-Wave


           
          Мы решили сравнить два контроллера Z-Wave разных ценовых диапазонов и реализовать на них несколько тестовых сценариев умного дома с использованием набора самых ходовых датчиков и устройств.
          Читать дальше →
        • Солнечная батарея на балконе: использование аккумуляторов

            Привет Geektimes! Данная статья является продолжением предыдущей части, про опыт установки 100-ваттной солнечной батареи на балконе. В первоначальном варианте к батарее был подключен DC-DC преобразователь, от которого можно заряжать различные домашние устройства. Следующим шагом было решено добавить возможность накопления энергии для использования в вечернее и ночное время.


            Что получилось, подробности под катом.
            Читать дальше →
          • Замена sim-карт. Глава III. Боремся с бюрократией

              Эта статья написана по вопросам комментариев к первой и особенно второй части. Интерес есть и, к сожалению, пока поток напасти по замене sim не сильно спал. К тому же, совсем скоро это всё перейдёт в приложения для двухфакторной аутентификации и станет совсем «интересно».

              Итак, как минимум с 2012 по 2017 гг. операторы сотовой связи: Мегафон, Билайн, МТС (возможно — другие, не изучал по ним практику) незаконно меняют sim-карты. Допустим, вы следуете советам безопасности, имея отдельный телефон «по типу кирпич» и в целом считаете, что далеки от этой угрозы. Допустим.

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


              Читать дальше →
            • Подключение управлямых блоков питания, сенсоров и реле к серверным материнским платам. Без Arduino

                Подключение различных сенсоров, датчиков, реле, GPIO-расширителей и прочего «ардуиновского» хозяйства по шине I²C напрямую к серверным материнским платам через IPMI-интерфейс бортового контроллера (BMC). Практические примеры I²C-устройств и работа с ними из командной строки утилитой ipmitool. SMBus, PMBus и управление блоками питания. Не очень документированные ограничения и вопросы безопасности. Разоблачение проприетарщины.

                После установки сервера в самодельную конструкцию порой хочется подключить к нему ещё чего-нибудь: например, датчики температуры, давления, влажности, ЖК-экранчики или даже ШИМ-драйверы моторчиков. Бывают глючные внешние устройства, которые приходится удалённо и жёстко сбрасывать с помощью реле, не уровнив при этом весь сервер целиком. А может, читателю просто захотелось гребёнку GPIO с гирляндой светодиодов? Если это не одноплатник типа Raspberry Pi, а полноразмерный сервер, приходится навешивать микроконтроллер и возиться с ним: писать прошивку, тестировать, налаживать стык с хостом и т.д. Иногда это интересно само по себе, но бывает и наоборот: скорей бы скриптину написать да запустить, наконец, лишь бы работало.

                Необычные разъёмы на железе всегда вызывали у автора смешанные чувства инженерно-технического зуда и вентиляторного фетишизма. Об этих занимательных разъёмах здесь и речь.
                Читать дальше →
              • Видео с камеры наблюдения на сайте бесплатно и без смс

                • Tutorial
                Появилась необходимость показывать видео с камеры на сайте в режиме онлайн. Виделось несколько вариантов (дополню вариантами из комментов, если будут):

                • Дать доступ к камере. Просто доступ к камере давать не стоит по соображениям безопасности. Камера ляжет уже при очень небольшой нагрузке.
                • Коммерческая услуга. Мы им доступ к камере и деньги, они нам ссылку для размещения на сайте. Они же решают проблему совместимости камеры и браузеров пользователей, производительности канала и доступности
                • На своих мощностях. Между пользователем и камерой ставится нечто, что отвечает за совместимость с браузерами, производительность и доступность. Проблемы решаем сами.

                Этот вариант рассмотрим ниже. Т.к. "flash умер" или "flash вот-вот умрет", вариант с размещением flash плейера на сайте не рассматривался. Тернистый путь поисков решений в интернетах не привел к готовому решению. Пришлось изобрести велосипед.

                Подробнее изобретения под катом.
                Читать дальше →
              • Осваиваем премудрости электроники и робототехники при помощи конструкторов

                  image
                  Создаем из Lego динозавра, получаем уникального домашнего питомца. Еще бы ИИ подключить, отличный охранник квартиры вышел бы

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

                  Сейчас есть довольно много образовательных наборов — как от известных производителей (вспомним Lego Mindstorm), так и от никому не известных китайских компаний. Мы в компании Madrobots давно уже имеем дело с подобными системами и сейчас решили рассказать о тех конструкторах и наборах, которые можем порекомендовать.
                  Читать дальше →
                • Идеальный Мини-Хакинтош

                  • Tutorial
                  image

                  Когда в 2005 году Apple перешла на платформу Intel, энтузиасты со всего мира задались целью установить MAC OS X на обычные PC (Хакинтош). На пути реализации этой затеи стояли четыре причины. 2 физические и 2 юридические. Дело в том, что для запуска компьютера MAC используется не привычный BIOS, а собственный EFI загрузчик. Вторая причина, это чип SMC который установлен в каждом компьютере Mac. Он генерирует ключи для запуска всех системных приложений MAC OS X. Благодаря нашему соотечественнику под ником Netkas, удалось обойти эти два ограничения созданием эмулятора загрузчика EFI (Chameleon, Chemera, Clover) и эмулятора чипа SMC (FakeSMC.kext). Этих двух программных решений достаточно, что бы установить MAC OS на PC.
                  Читать дальше →
                • Мониторинг электроэнергии со счетчиком Eastron SDM220-Modbus

                    Хочу рассказать про опыт подключения электросчетчика Eastron SDM220-Modbus и получения данных с него.
                    В целом ничего сложного нет, счетчик имеет стандартный интерфейс RS485 и поддерживает протокол Modbus.


                    Читать дальше →
                  • Выбор и настройка Garbage Collector для Highload системы в Hotspot JVM



                      Введение


                      При работе в сфере RTB (Real Time Bidding) одной из ключевых характеристик является время, затраченное на показ рекламы пользователю, зашедшему на сайт. Оно складывается из нескольких этапов, один из которых – аукцион за рекламное место, проводимый SSP (Supply Side Platform) между несколькими DSP (Demand Side Platform) системами. В этом случае критической величиной является время, за которое DSP успеет ответить своим инвентарем и денежной ставкой за данный показ. Как правило, верхняя граница этого времени составляет примерно 100 миллисекунд. С учетом того, что для оптимальной производительности рекламных кампаний требуется десятки тысяч запросов в секунду, выполнение данного требования может стать весьма нетривиальной задачей.
                      Читать дальше →
                    • Сервер приложений 1С на Linux

                      • Tutorial
                      Двигатель прогрессаВ последнее время, всё чаще и чаще меня начинает душить жаба.
                      Большая, зелёная, она угнездилась где-то внутри и формирует категорическое нежелание платить за что либо, даже если это не мои личные деньги! Не платить вообще, или же по максимуму минимизировать затраты там, где это возможно.
                      И если ко всему прочему, необходимо организовать работу с 1С в малой или средней компании, при ограниченном бюджете, то напрашивается желание собрать сервер из того что есть и накатить на него что-нибудь бесплатное.
                      Это всё к тому, что совсем необязательно покупать для 1С-сервера, лицензии от MS Windows Server+Terminal Cals и MS SQL сервер. Также необязательно рассматривать различные утилиты бэкапа и прочего софта реализующего все фишки работы терминального сервера 1С.

                      Сравнение платного и бесплатного софта (без учета железа) взято по большей части отсюда, по примеру данной статьи и на данный момент выглядит так:
                      Наименование Стандартное лицензирование (руб.) Вариант Linux + Postgres SQL (руб.)
                      Лицензии Windows
                      Windows Server 2012 Std. 45012 0
                      MS Windows Terminal Services Client Access License 2012 Single Language 1-device NoLevel OLP 102960 (20x78) 0
                      Лицензии 1С
                      1С: Предприятие 8.3.Лицензия на сервер (x86-64) 86400 86400
                      1С: Предприятие 8.3 Клиентская лицензия на 20 рабочих мест 78000 78000
                      Лицензии SQL
                      Лицензия на сервер MS SQL Server Standard 2012 Runtime для пользователей 1С: Предприятие 8 13381 0
                      Клиентский доступ на 20 рабочих мест к MS SQL Server 2012 Runtime для 1С: Предприятие 8 117748 0
                      Итого 443501 164400
                      Экономия 0 279101

                      Читать дальше →
                    • Все уроки по ардуино

                        Однажды появилась необходимость собрать все уроки, обучающие материалы (tutorials) с habrahabr и geektimes в одном месте и немного их систематизировать. В этом сборнике обучаек представлены более 100 статей на тему ардуино с пометкой «tutorial», либо содержащие несложные для новичков проекты на ардуино, а также немного видеоуроков по смежным темам. Статьи разделены на 10 тематик по сферам применения собранных устройств. Также хочется напомнить, что весь обучающий материал, опубликованный на habrahabr и geektimes является интерактивным: в любой момент можно задать вопрос автору в комментариях к статье. Как правило авторы на них отвечают. Этот сборник будет дополняться новыми обучайками (tutorials) по мере их публикации.

                        Читать дальше →
                      • FLProg — объединение плат Arduino в информационное кольцо

                        • Tutorial


                        Начиная с версии 1.10.5, программа FLProg позволяет объединять несколько плат Arduino в кольцевую UART сеть. Сначала рассмотрим, как это происходит. Платы соединяются между собой в соответствии со схемой, изображённой на заглавной иллюстрации. Предположим, что плата 1 отсылает через UART пакет данных содержащий идентификаторы платы, переменной, а так же значение переменной. Плата 2 принимает данный пакет и если данные из этой переменной ей не нужны, то просто отправляет этот пакет дальше. Если в соответствии с программой значение данной переменной необходимо контроллеру, то значение из пакета копируется во внутреннюю переменную, и пакет так же отправляется дальше по кольцу.
                        Когда таким образом пакет, пройдя всё кольцо, вернётся к плате, отправившей его, передача пакета прекратится.
                        Таким образом, данные из пакета доступны любой плате подключённой к кольцу, и инициатором отправки пакета так же может быть любая из плат.
                        Теперь рассмотрим практическую реализацию.
                      • Полмегаватта чистой энергии в частные руки — отечественная новинка автономной энергетики

                          В прошлом году я описывал свой путь в преобразовании дарового солнечного света в электрическую энергию. Перепробовав немало оборудования для автономной энергетики, я остановился на продукции российской компании «МикроАРТ». А в этом году отечественные разработчики порадовали выходом совершенно нового устройства, которое является сердцем любой автономной энергосистемы — инвертора МАП DOMINATOR. Заявлена масса новых функций: наращивание мощности путем добавления инверторов, организация трехфазной сети, встроенный микрокомпьютер. В конце концов, было обещано, что система позволяет генерировать более полумегаватта энергии, а это уже заявка!
                          Пользуясь акцией на сайте, которая повествует о возможности апгрейда инвертора с небольшой доплатой, я решил этой возможностью воспользоваться и сам оценить заявленные характеристики.

                          image

                          Читать дальше →
                        • Objective-C вопросы на уровень middle/senior

                            Что должен знать objc разработчик на уровень middle/senior?
                            К сожалению, четкой черты на вертикальное развитие нет. Парадокс, но чтобы знать что изучить, нужно знать что ты не знаешь.
                            Я постарался вспомнить самые интересные вопросы, которые мне задавали самому на различных собеседованиях, а так же расширил их множеством вопросов(тем же уровнем) от себя.
                            Здесь нет общих вопросов вроде: IoC, design patterns, S.O.L.I.D. и т.п.

                            ВНИМАНИЕ!!!
                            Помимо вертикального развития немаловажно и горизонтальное

                            ВНИМАНИЕ!!! (2)
                            Не пишите в комментарии ответы на вопросы, это дает возможность людям самостоятельно разобраться.
                            Однако, если у вас имеются интересные вопросы по теме, я с радостью добавлю их в список.

                            Конечно, это не заменит живого общения, однако позволит неплохо подготовиться к собеседованиям.


                            Начинаем


                            Читать дальше →
                          • Кросс-компиляция и сборка пакета под Synology DSM

                              На новом месте работы мне поставили задачу запустить продукт на NAS от производителей Synology и QNAP. Продукт написан на C++ с применением C++11, Boost и Qt5. За неимением свободного веб разработчика, интерфейс был написан наWt, который в свою очередь для сборки использует CMake. Под катом будет сборка этого зоопарка и создания простого пакета.
                              Читать дальше →