Pull to refresh
1
0
Send message

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

Reading time8 min
Views10K

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


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}
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments23

Приручение дикой зверушки: добавляем поддержку Homekit в «умную розетку» Redmond SkyPlug RSP-100S

Reading time7 min
Views28K


Предыстория


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

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

Однако, за прошедший год ситуация кардинальным образом изменилась…
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments36

Asterisk на Mikrotik

Reading time2 min
Views84K
image

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

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

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments28

Умные светодиодные лампы Xiaomi Yeelight

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

Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments47

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

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

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

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

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




Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments16

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

Reading time9 min
Views31K

 
Мы решили сравнить два контроллера Z-Wave разных ценовых диапазонов и реализовать на них несколько тестовых сценариев умного дома с использованием набора самых ходовых датчиков и устройств.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments23

Солнечная батарея на балконе: использование аккумуляторов

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


Что получилось, подробности под катом.
Total votes 36: ↑34 and ↓2+32
Comments126

Замена sim-карт. Глава III. Боремся с бюрократией

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

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

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


Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments18

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

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

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

Необычные разъёмы на железе всегда вызывали у автора смешанные чувства инженерно-технического зуда и вентиляторного фетишизма. Об этих занимательных разъёмах здесь и речь.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments36

Видео с камеры наблюдения на сайте бесплатно и без смс

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

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

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

Подробнее изобретения под катом.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments29

Осваиваем премудрости электроники и робототехники при помощи конструкторов

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

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

Сейчас есть довольно много образовательных наборов — как от известных производителей (вспомним Lego Mindstorm), так и от никому не известных китайских компаний. Мы в компании Madrobots давно уже имеем дело с подобными системами и сейчас решили рассказать о тех конструкторах и наборах, которые можем порекомендовать.
Total votes 19: ↑18 and ↓1+17
Comments0

Идеальный Мини-Хакинтош

Reading time6 min
Views132K
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.
Читать дальше →
Total votes 63: ↑48 and ↓15+33
Comments125

Мониторинг электроэнергии со счетчиком Eastron SDM220-Modbus

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


Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments50

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

Reading time6 min
Views28K


Введение


При работе в сфере RTB (Real Time Bidding) одной из ключевых характеристик является время, затраченное на показ рекламы пользователю, зашедшему на сайт. Оно складывается из нескольких этапов, один из которых – аукцион за рекламное место, проводимый SSP (Supply Side Platform) между несколькими DSP (Demand Side Platform) системами. В этом случае критической величиной является время, за которое DSP успеет ответить своим инвентарем и денежной ставкой за данный показ. Как правило, верхняя граница этого времени составляет примерно 100 миллисекунд. С учетом того, что для оптимальной производительности рекламных кампаний требуется десятки тысяч запросов в секунду, выполнение данного требования может стать весьма нетривиальной задачей.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments21

Сервер приложений 1С на Linux

Reading time13 min
Views224K
Двигатель прогрессаВ последнее время, всё чаще и чаще меня начинает душить жаба.
Большая, зелёная, она угнездилась где-то внутри и формирует категорическое нежелание платить за что либо, даже если это не мои личные деньги! Не платить вообще, или же по максимуму минимизировать затраты там, где это возможно.
И если ко всему прочему, необходимо организовать работу с 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

Читать дальше →
Total votes 41: ↑33 and ↓8+25
Comments175

Все уроки по ардуино

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

Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments25

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

Reading time6 min
Views24K


Начиная с версии 1.10.5, программа FLProg позволяет объединять несколько плат Arduino в кольцевую UART сеть. Сначала рассмотрим, как это происходит. Платы соединяются между собой в соответствии со схемой, изображённой на заглавной иллюстрации. Предположим, что плата 1 отсылает через UART пакет данных содержащий идентификаторы платы, переменной, а так же значение переменной. Плата 2 принимает данный пакет и если данные из этой переменной ей не нужны, то просто отправляет этот пакет дальше. Если в соответствии с программой значение данной переменной необходимо контроллеру, то значение из пакета копируется во внутреннюю переменную, и пакет так же отправляется дальше по кольцу.
Когда таким образом пакет, пройдя всё кольцо, вернётся к плате, отправившей его, передача пакета прекратится.
Таким образом, данные из пакета доступны любой плате подключённой к кольцу, и инициатором отправки пакета так же может быть любая из плат.
Теперь рассмотрим практическую реализацию.
Total votes 18: ↑17 and ↓1+16
Comments46

Полмегаватта чистой энергии в частные руки — отечественная новинка автономной энергетики

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

image

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments108

Objective-C вопросы на уровень middle/senior

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

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

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

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


Начинаем


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

Кросс-компиляция и сборка пакета под Synology DSM

Reading time6 min
Views12K
На новом месте работы мне поставили задачу запустить продукт на NAS от производителей Synology и QNAP. Продукт написан на C++ с применением C++11, Boost и Qt5. За неимением свободного веб разработчика, интерфейс был написан наWt, который в свою очередь для сборки использует CMake. Под катом будет сборка этого зоопарка и создания простого пакета.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0
1
23 ...

Information

Rating
Does not participate
Registered
Activity