• Подключаем GPS трекер Sinotrack ST-901 к умному дому HomeAssistant

    • Tutorial

    Введение


    Как то ко мне в руки попал китайский GPS трекер ST-901. Устройство рассчитано в основном для использования в авто- и мото-технике, обладает gsm 2G модулем для связи с внешним миром, герметичным водонепроницаемым корпусом, небольшим встроенным аккумулятором, позволяющем работать без внешнего питания порядка 2-3 суток при передаче сигнала раз в 3 минуты, а также сигнальным проводом зажигания, позволяющем предупреждать о старте двигателя. Управлять данным трекером можно посредством SMS-команд на номер трекера, а общаться и получать уведомления как по SMS, так и подключив его к облаку через GPRS. Побаловавшись с ним некоторое время, я забросил его в ящик, пока дома не появился HomeAssistant. Возникла идея подключить его к умному дому для слежения в реальном времени, а также автоматизации при попадании автомобиля в определенную зону (терминология HomeAssistant) на карте.

    Задачи


    Для подключения трекера к HomeAssistant необходимо решить две задачи: получить координаты с трекера и записать их в HomeAssistant. Если для второй задачи есть сразу несколько возможных решений (например, gpslogger или owntracks_http), то решение первой задачи в моем случае усложнялось тем фактом, что в настройках трекера для передачи координат можно указать только IP адрес, а не доменное имя. Так как у меня дома нет статического адреса, то возникла идея использовать посредника. Всем, кому интересно, что из этого вышло, добро пожаловать под кат.
    Читать дальше →
  • Почему я отказался от Disqus и вам тоже пора

    • Перевод
    Замена Disqus на Commento снизила размер страниц в 10 раз

    Когда я завёл блог, то установил Disqus для комментариев. Это был естественный выбор: сайты по всему интернету ставили Disqus, его легко настроить, и есть бесплатный вариант использования. Я спокойно интегрировал движок комментариев и двинулся дальше.

    Но вот в чём дело: я всегда знал, что Disqus немного раздувает страницы. Я ведь писал о веб-производительности и обычно старался оптимизировать страницы. Но я просто предположил, что Disqus прибавляет немного лишних килобайт. Логика: если он сильно раздувает страницы, все бы уже давно отказались от него. Очевидно, Disqus старается не увеличивать трафик, верно?

    Я ошибался.
    Читать дальше →
  • Как перенести лицензионную Windows 10 на другой компьютер

    • Перевод


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

    Деактивируйте старый ПК вместо покупки новой лицензии


    Лицензии на Windows стоят дорого. Цена официального ключа от Microsoft, от $100 до $200, может сравниться с ценой терабайтного твердотельного накопителя, 16 Гб RAM или материнской платы. А покупать дешёвые ключи с сомнительных веб-сайтов – это не очень хорошая идея. Поэтому платить за очередную лицензию, когда вы избавляетесь от старого компьютера в пользу нового – не очень интересная идея. Но хорошая новость в том, что можно деактивировать ПК, который вы больше не будете использовать, и перенести лицензию на новый.
    Читать дальше →
  • Повышаем продуктивность на GitHub: советы для новичков и не только



      От переводчика: публикуем для вас статью Даррена Барнса, который делится своим опытом работы с GitHub. Его советы будут полезны, в первую очередь, новичкам. Возможно, и опытный кодер найдет что-то для себя.

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

      Сервис разрабатывался программистами для программистов. Его создатели добавили большое количество очень удобных инструментов, которые повышают производительность. Но, к сожалению, не все разработчики об этих инструментах знают. А кто знает — не всегда использует.
      Читать дальше →
      • +58
      • 20,5k
      • 5
    • Xiaomi Aqara Switch переделываем с ZigBee на Z-Wave



        Решил попробовать интегрировать в свою домашнюю Z-Wave автоматизацию ZigBee выключатели. Для экспериментов приобрел недорогой ZigBee выключатель на батарейках Xiaomi Aqara Smart Switch. Выглядит красиво, пластик высочайшего качества, очень приятный, клавиша выключателя с пружинным механизмом, что дает полный тактильный фидбэк.

        Выключатель планировал использовать в следующих сценариях:

        • при одинарном нажатии включать/выключать ночник
        • при долгом удержании диммировать ночник
        • при двойном нажатии включать/выключать LED подсветку

        Но тестирование показало, что Xiaomi Aqara Smart Switch реагирует только на одинарное нажатие. А когда я попробовал подиммировать и подержал клавишу 5 секунд, то он сбросился на заводские настройки. В таком виде Aqara Smart Switch для меня оказался бесполезным и я решил в его корпусе сделать Z-Wave выключатель со всеми нужными мне функциями.

        Основу Z-Wave выключателя составляет Z-Uno Module — маленькая плата на которой, только Z-Wave чип и память, программируется из среды Arduino по USB. Модуль при размере 25х15х1.9 мм предоставляет доступ ко всем пинам Z-Wave чипа. На модуле есть U.FL разъем для подключения антенны, либо можно просто припаять провод 86 мм. Это та же Z-Uno только для производителей устройств.
        Читать дальше →
      • Google PageSpeed Insights кардинально обновился, что изменится?

          image

          12 ноября Google по тихому обновил PageSpeed Insights, изменив в нем практически все. Это станет большой переменой для всей индустрии сайтостроения. Похоже, сейчас настанет некоторая волна паники и хайпа вокруг этого события. В статье — анализ перемен и что они нам принесут.
          Читать дальше →
        • Не позволяйте 3D-принтеру лениться

            Наверное, у каждого из нас есть гаджет или устройство, которые мы не используем: тренажёр, плеер, кухонный инвентарь, всякие странные штуки для автомобиля, шнуры, хабы и проч. Лежат они, новенькие, с гарантийниками и годами ждут своего часа, которому чаще всего уже не дано случиться — слишком быстро движется научно-технический прогресс. Так и формируется на полках и в шкафах наш личный музей современной техники. Который в последнее время пополнился ещё одним экспонатом — 3D-принтером. Или нет?

            Кто-то 3D-принтер использует и так
            Читать дальше →
          • Как тут чё?

              — Колян, ты?

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

              — Веня… Вениамин! Охренеть! Ты как здесь?

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

              — Ты как тут, Веня? В гости к родителям приехал, что ли?

              — Не, я жить приехал.

              — Как? Почему? Ты же в Москве! Да что же мы стоит, проходи, садись, рассказывай!

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

              — Ну рассказывай уже! – нетерпеливо сказал Коля, усевшись на свой стул.

              — Да чего рассказывать… Дауншифтингом решал заняться. Вернулся в родную деревню, снял дом, на той же улице, где родители живут.

              — Это Недопёкиных, что ли? Они в Мухосранск переехали, я слышал.

              — Да-да, вроде они. Буду жить в деревне. Чистый воздух, чистая еда, речка, рыбалка, куриц заведу.

              — Курицы это хорошо, мне вот нельзя.

              — Почему? Как можно в деревне без куриц?

              — Так птицефабрика же. Раз я тут работаю, обязан принести справку из сельсовета, что у меня дома нет куриц.

              — Нафига?

              — Я так понял, могу болезнь какую-нибудь куриную притащить на себе, и трындец поголовью тогда. Но ты не парься, это только для работников птицефабрики.

              — Так и я тоже…

              — Чего тоже?

              — На птицефабрике работать буду, устроился уже. Чего, ты думаешь, я к тебе завалился?

              — Серьезно?

              Коля, только-только отошедший от шока, снова впал в легкий ступор.

              — Да врешь… Чего тебе тут делать? Ты же веб-программист.

              — Веб, не веб, какая разница. Устроился программистом. Я не фанат какого-нибудь фреймворка, разберусь поди, на чем вы тут кодите. На чем, кстати? На дельфи, поди? Или билдер?

              — 1С.
              Читать дальше →
            • Прием платежей с карты без юр. лица на Яндекс.Деньги

              • Tutorial

              Open source yandex money donation service


              Прием платежей на Яндекс.Деньги физ. лица

              • онлайн платежи с карты, яндекса, телефона
              • добавление метки к платежу
              • получение и проверка оповещений на свой сервер
              • пример автоматизации подписки на Telegram бота

              Реализация и описание под катом
              Читать дальше →
            • Как интернет-магазины теряют деньги из-за адреса в форме заказа



                Давненько мы не разбирали формы заказа. В этом выпуске — две ошибки, из-за которых интернет-магазины и службы доставки постоянно теряют деньги. А клиенты при этом вообще раскаляются.
                Читать дальше →
              • Малиновый Прог против Интернета Кирпичей, или Raspberry Pi с графикой на read-only microSD

                  Аннотация


                  Запуск Raspberry Pi с полной поддержкой графики на microSD, навсегда остающейся в режиме read-only после установки системы. Отсутствие какой-либо записи данных на флэш-память повышает надёжность устройства, приближая его к промышленному классу изделий. Пошаговая инструкция. Небольшой театр инженерного абсурда для развлечения аудитории.


                  Мне понадобилось сетевое устройство с открытым кодом и выходом HDMI, и я решил попробовать Малиновый Прог. Да, я именно так предлагаю переводить Pi: Прог. Понятное дело, даже одноплатнику нужна операционка. И вот, захожу я на официальный сайт, ожидая встретить там подробное руководство по созданию суровой, неломаемой Вещи à la turnkey box. Но народ, как ни в чём не бывало, устанавливает Ubuntu (т.е. Raspbian Jessie) прямо на microSD, размещая и swap там же. Как обычный десктоп, face palm.

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

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

                  • Перевод
                  День Святого Валентина уже завтра. Для некоторых это время романтических надежд, время, чтобы спросить «даму сердца» и получить ответ. Это может быть просто «да», грустное «нет» или загадочное «Я не думала о нас, как о паре, но, может быть, завтра мы сможем поужинать вместе?»

                  Это, хотя и косвенно, приводит нас к кодам статуса HTTP (Hypertext Transfer Protocol). Когда URL-адрес вводится в браузере, запрос отправляется на сервер. Как и в нашем сценарии, браузер ожидает ответа. Эти ответы поступают в виде HTTP-кода, который представляет собой трехзначное число, которое сопоставляется с определенным смыслом.

                  Вот несколько вероятных сценариев в виде комиксов ко Дню Святого Валентина.

                  200s: Успех


                  Коды 200-го класса обычно означают, что все в порядке. Запрос был получен, понят, и на сервере не было ошибок. Например, этот URL-адрес вернет код 200 OK — успешный запрос.

                  Идеальное завершение для пар «браузер + сервер» и «разработчик + его проект»
                  Читать дальше →
                • Пошаговый план старта на Upwork #2

                  • Tutorial
                  image

                  Предыдущая часть.

                  Надеюсь что вы уже зарегистрировались и заполнили профиль, если нет, то вам в прошлую статью. А мы начнем.

                  Перед регистрацией советую внимательно прочитать правила биржи, иначе как это было в моем случае — можно улететь в бан «без-воз-мез-дно».
                  Читать дальше →
                • Пошаговый план старта на Upwork

                  • Tutorial
                  image

                  Рано или поздно разработчик всерьез задумывается о фрилансе. В этот момент большинство идут на биржи. Выбор бирж огромен. В СНГ: fl.ru, weblancer и прочие. Но когда доходишь до дела начинаешь понимать в каком все упадке. Единственным местом где водятся более-менее нормальные заказы можно назвать fl.ru и еще одну-две биржы. Но на fl.ru нужен pro аккаунт, ведь оказывается чтобы взять заказ нужно заплатить бирже, и далеко не факт что тебе что-то светит. Поэтому было решено идти на Upwork.
                  Читать дальше →
                • Обзор всех инструментов разработчика Chrome DevTools

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

                  Отдельно бы хотелось отметить, что DevTools находится в постоянной активной разработке, поэтому название инструментов/панелей/вкладок, как и их наличие в целом или способ доступа к ним со временем может быть изменен. Поэтому не стоит пугаться если, на момент прочтения Вами этой статьи, DevTools будет незначительно отличатся от того, что указано в описании или на скриншотах в этой статье.
                  Читать дальше →
                  • +10
                  • 26,2k
                  • 1
                • Съёмка показаний счетчика на телефон с последующим распознаванием

                  Вступление


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

                  Возможно, так ведут себя не все котлы, но наш отключается даже при кратковременном перебое с подачей газа и не включается обратно, если подача восстановится. Если кто-то есть дома, то это не проблема, нажал кнопку и котел греет дальше, но если вдруг так сложилось, что мы решили всей семьей поехать в отпуск, а на дворе зима, хорошая такая, чтоб -20°C, то последствия могут быть плачевными.

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

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

                  Конечно, после простого выкладывания показаний в Интернет я решил не останавливаться на достигнутом и замутил ещё распознавание показаний и графическое представление, об этом читайте в части 2 данного топика.
                  Читать дальше →
                • Все способы вертикального выравнивания в CSS

                    image

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

                    Да, для вертикального выравнивания в CSS есть специальное свойство vertical-align с множеством значений. Однако на практике оно работает совсем не так, как ожидается. Давайте попробуем в этом разобраться.

                    Читать дальше →
                  • Надёжен ли твой компьютер?

                    Представляю вашему вниманию перевод статьи Джеффа Атвуда о тестировании новых компьютеров. Я не видел ни одной статьи подобного качества на эту тему; в статье приведена вся необходимая информация и ничего лишнего, а так же хорошо структурирован материал. Надеюсь, и вам она придётся по нраву.

                    Джефф — основатель StackOverflow. Ныне он работает над проектом Discourse.

                    Оригинальная статья: Is Your Computer Stable?

                    Дисклеймер: Хоть статья и называется "Надёжен ли твой компьютер?", речь идет не о надёжности как термине(англ. reliability), а, скорее, о стабильности (англ. stability). Статья о том, как автор тестирует новые компьютеры на стабильность и прочность.


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

                    Например, вот что может понадобится для сборки Scooter Computer:

                    1. Нанести немного термопасты на верхнюю часть корпуса.
                    2. Поместить в корпус материнскую плату.
                    3. Прикрутить материнскую плату к корпусу.
                    4. Вставить плату SSD.
                    5. Вставить плату RAM.
                    6. Подключить внешнее питание.
                    7. Загрузиться.

                    Вот и все.



                    Это до смешного просто. Мы с моим шестилетним сыном собирали конструкторы Лего, которые были намного сложнее. Сборка традиционных ПК отличается всего парой дополнительных шагов: вставить процессор, радиатор, подключить кабели. И, наконец, сборка сервера добавляет еще пару незначительных действий, возможно, с ограничениями на размер сборки. Мини-компьютер, обычный ПК или сервер — если вы смогли собрать один из них — считайте вы собрали их все.

                    Каждый из нас выдыхает с облегчением, когда только что собранный компьютер загружается первый раз, и не важно сколько собранных машин на вашем счету. Но загрузка это только начало. Это отлично, если он загружается, но этим никого не удивишь. На самом деле, нам нужно знать, надёжен ли этот компьютер.
                    Читать дальше →
                  • Окей телевизор — учим Google Now управлять зомбоящиком

                    • Tutorial

                    «Окей гугл, включи-ка новости!» Как было бы удобно быстро запустить голосом любой канал на самом обычном телевизоре. Или управлять кондиционером, не имея под рукой пульта.

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

                    Смотрим видеодемонстрацию результата, а потом читаем, как это сделать своими руками.
                    Посмотрели, теперь поехали!
                  • Окружение разработки: Redmine + Git + ownCloud

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



                    Сценарий использования данной связки, можно кратко описать следующим образом:

                    • Файлы проекта хранятся в Git репозитории;
                    • Репозиторий содержит настройки, исходники и другие файлы проекта, наличие которых удобно и допустимо в коллективном репозитории;
                    • В корне расположена директория cloud, исключенная в .gitignore, в которую через WebDAV монтируется ownCloud папка, для остальных файлов;
                    • Содержимое Git репозитория отслеживается в системе управления проектами Redmine.


                    План развертывания системы включает настройку следующих сервисов:

                    1. OpenLDAP — единая учётная запись для всех сервисов;
                    2. Redmine — запуск в Docker контейнере, создание и привязка Git репозитория, LDAP аутентификация;
                    3. NGINX — доступ к Git репозиторию через HTTPS и LDAP аутентификация;
                    4. ownCloud — LDAP аутентификация и монтирование папки через davfs2.

                    Читать дальше →