• История создания Ethernet-CAN конвертера

    Одним ясным солнечным днем по работе понадобился недорогой преобразователь интерфейсов CAN в Ethernet. Естественно поиски начались с готовых решений, но, как нередко это бывает, в итоге было принято решение о разработке собственного образца. Естественно, энтузиазм автора не смог устоять и ограничиться столь «урезанным» функционалом. Что из этого вышло, каким образом и почему — под катом.

    image
    Читать дальше →
  • Что такое Android Lint и как он помогает писать поддерживаемый код

    • Translation

    Что такое Android Lint и как он помогает писать поддерживаемый код


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


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


    Привет, Lint


    Мы используем инструмент под названием Lint (или Linter) для избежания таких проблем. Lint — это инструмент для статического анализа кода, который помогает разработчикам изловить потенциальные проблемы ещё до того, как код скомпилируется.

    Читать дальше →
  • Создаём максимально недоступный сайт с идеальной оценкой Lighthouse

    • Translation
    Встроенный инструмент тестирования Google Lighthouse оценивает доступность (accessibility) сайтов по шкале от 0 до 100. Похвально стремиться к максимальной читаемости контента, но оценка 100 не означает, что сайт идеально доступен. Для доказательства я провёл небольшой эксперимент.

    Всегда приятно видеть, как люди хвастаются в твиттере своими оценками Lighthouse: это значит, что они заботятся о качестве.



    Lighthouse награждает лучшие сайты зелёным кружочком с цифрой 100, которую вы с гордостью показываете клиентам и друзьям.
    Читать дальше →
  • Самый худший UI управления громкостью звука

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



      Осторожно! Много картинок и трафика!


      Читать дальше →
    • Нужно ли чистить строки в JavaScript?

        Что? Строки могут быть «грязными»?

        Да, могут.

        //.....Какой-то код
        console.log(typeof str); // string
        console.log(str.length); // 15
        console.log(str); // "ччччччччччччччч"
        

        Вы думаете, в этом примере строка занимает 30 байт?

        А вот и нет! Она занимает 30 мегабайт!
        Читать дальше →
      • GitHub полностью «удалил» репозиторий утилиты для обхода блокировок и весь аккаунт создателя

          10 апреля 2019 года GitHub без объявления войны удалил репозиторий популярной утилиты GoodByeDPI, предназначенной для обхода государственных блокировок (цензуры) сайтов в Интернете.


          UPD от 13.04.2019
          Сухие факты. Недоступен не только репозиторий, а весь аккаунт целиком. Хотя для любого постороннего пользователя всё выглядит, как удаление, на самом деле — это shadowban, о чем сообщил автор. Далее он признался, что намеренно сохранил магнет-ссылки на видео со сценами убийств в Новой Зеландии на публичной странице своего аккаунта. Позже экспериментально выяснили, что блокировку автору программы для борьбы с блокировками дали автоматические алгоритмы. Но было и предположение, что бан был за спам с диапазона IP, к которому принадлежит автор. ТЧК

          UPD от 16.04.2019
          Судя по всему, shadowban с аккаунта ValdikSS снят, все репозитории восстановлены. Причина была в ссылках на видео со стрельбой.

          Что такое DPI, как связан с блокировками и зачем с ним бороться (по версии автора):
          Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.
          Читать дальше →
        • Расширяем функционал штатной аудиосистемы

            Всем привет. Являюсь обладателем десятилетнего японца, в котором меня все устраивало, за исключением штатной аудиосистемы — в ней отсутствовал Bluetooth. Способов решения этой проблемы целых три:

            1. Купить затычку в прикуриватель и не выпендриваться.

            Минусы:

            • Качество звука
            • Управление отсутствует
            • Вывод названия песен также отсутствует

            Плюсов нет.

            2. Купить на разборках за немалые деньги штатный блок Bluetooth + голову поновее.

            Минусы:

            • Проблемы с совместимостью разных блоков
            • Монофонический вывод звука (на некоторых блоках)
            • Цена с заменой головы и проводки практически равна нештатной магнитоле
            • Кроме латиницы поддержки нет

            Плюсы:

            • Штатное оборудование

            3. Сделать что-либо самому, но так, чтобы не урезать имеющийся функционал.

            Минусы:

            • Нужно время
            • Денег было потрачено больше, чем если выбрать первые два варианта вместе

            Плюсы:

            • Удовлетворение от проделанной работы
            • Поддержка lossless аудио
            • Поддержка кириллицы, хоть и транслитом, т.к. экран не умеет.

            Как вы поняли из названия, я выбрал путь номер 3.
            Читать дальше →
          • DIY тепловизор на Raspberry PI или «Кажется теперь я знаю, чем займусь этим летом»

              image

              Всем привет!

              Пришла зима, а с ней и задача проверить теплоизолирующие свойства построек загородной резиденции дачи. А тут ещё оказалось, что на известном китайском сайте появились вполне доступные тепловизионные модули. Не собрать ли себе экзотическую и, возможно, даже полезную вещь — самодельный тепловизор? Почему бы и нет, вроде и Raspberry где-то валялась… Что из этого вышло — расскажу под катом.
              Читать дальше →
            • ThinkPad. Четверть века – не срок

                В октябре 1992 года с конвейера сошёл первый ноутбук ThinkPad. Двадцать пять лет спустя ThinkPad стал одним из символов IT-индустрии. Эти устройства помогли исследователям добраться до самых удалённых уголков планеты и даже покорить космос, а множеству предприятий в самых разных отраслях – добиться успеха.


                Читать дальше →
              • Миллер и Валасек опубликовали всю информацию для взлома автомобилей


                  Чарли Миллер (отдел безопасности компании Twitter, бывший хакер АНБ, слева) и Крис Валасек (консалтинговая компания IOActive)

                  Специалисты по безопасности Чарли Миллер (Charlie Miller) и Крис Валасек (Chris Valasek) хорошо известны в хакерском сообществе. Они неоднократно выступали на конференциях с докладами об уязвимостях в автомобильных компьютерах. Пожалуй, самой известной их презентацией был взлом 2014 Jeep Cherokee два года назад с дистанционным управлением некоторыми функциями автомобиля. После той презентации автопроизводителю пришлось отозвать почти 1,5 млн машин по всему миру для замены прошивки.

                  Что характерно, первая замена прошивки оказалась не слишком удачной. С новой прошивкой возможности взлома автомобилем только увеличились. Потом пришлось ещё раз её менять.

                  Через два года после той истории хакеры выложили практически пошаговое руководство по взлому Jeep Cherokee, а также инструменты и документацию по взлому других автомобилей с шиной CAN.
                  Читать дальше →
                • Как мы среду Arduino на 8051 натягивали, или ОС на один процесс



                    Летом 2016 мы выпустили в широкую продажу нашу новую плату для разработки Z-Wave устройств — Z-Uno. Это абсолютно новаторское устройство, аналогов которому в мире Z-Wave пока нет. Учитывая большое количество программерских фишек, я решил поделиться некоторыми решениями, используемыми в Z-Uno.

                    Если кратко, то мы сделали упрощенную кооперативную ОС на 1 процесс на микроконтроллере семейства 8051 с API подобным Arduino.
                    Читать дальше →
                  • Хакаем CAN шину авто для голосового управления



                      Современный автомобиль это не только средство передвижения, но и продвинутый гаджет с мультимедийными функциями и электронной системой управления агрегатами и кучей датчиков. Многие автопроизводители предлагают функции ассистентов движения, помощников при парковке, мониторинга и управления авто с телефона. Это возможно благодаря использованию в авто CAN шины к которой подключены все системы: двигатель, тормозная система, руль, мультимедиа, климат и др.

                      Мой автомобиль Skoda Octavia 2011 г. в. не предлагает возможностей управления с телефона, поэтому я решил исправить этот недостаток, а заодно и добавить функцию голосового управления. В качестве шлюза между CAN шиной и телефоном я использую Raspberry Pi с шилдом CAN BUS и WiFi роутер TP-Link. Протокол общения агрегатов авто закрытый, и на все мои письма предоставить документацию протокола Volkswagen отвечал отказом. Поэтому единственный способ узнать, как общаются устройства в авто и научиться ими управлять является реверс-инжиниринг протокола CAN шины VW.

                      Я действовал поэтапно:

                      1. Разработка CAN шилда для Raspberry Pi
                      2. Установка ПО для работы с CAN шиной
                      3. Подключение к CAN шине авто
                      4. Разработка сниффера и изучение протокола CAN шины
                      5. Разработка приложения для телефона
                      6. Голосовое управление с помощью Homekit и Siri

                      В конце видео голосового управления стеклоподъемником.
                      Читать дальше →
                    • Разрабатываем Z-Wave устройство для управления пылесосом iRobot Roomba



                        Без лишних прелюдий сразу к делу. Квартира автоматизирована технологией Z-Wave, а пылесос iRobot Roomba 770 с сетью никак не связан и убирается по своему расписанию. Пришло время добавить пылесос в сеть Z-Wave! В этом мне поможет Z-Wave плата для разработчиков — Z-Uno.
                        Какие преимущества дает автоматизация пылесоса с помощью Z-Wave?
                        • Возможность удобно настроить расписание из Веб-интерфейса
                        • Получить данные с пылесоса о батареи и сенсорах
                        • Управлять из мобильного приложения
                        • Использовать в сценариях имитирующих присутствие человека в доме

                        Читать дальше →
                      • Тесла сообщила, что произошло второе ДТП при включенном автопилоте

                        Компания Tesla Motors признала, что автопилот был включен при ДТП в прошлое воскресенье.
                        По словам компании есть предположение, что эта опция не была правильно использована. Водитель выжил, однако в ДТП ранее погиб водитель, когда система помощи водителю не смогла определить другое транспортное средство на своем пути.

                        Автомобили Тесла используют радар и другие датчики для определения других транспортных средств и разметки на дорогах. Фото Reuters
                        Читать дальше →
                      • Z-uno или как добавить любое устройство в сеть z-wave

                          Как-то устанавливал клиенту умный дом: задача состояла в том, чтобы объединить все пульты в один и этим пультом стал телефон. Пультов было три, два из них были с инфракрасным сигналом, а вот третий — от штор — оказался на радиосигнале. Ик сигнал я могу записать и передать с помощью устройства ztx-120, а вот радиосигнал не запишешь. Что делать в этом случае я и хочу рассказать в этой статье. Только в примере будет не радиопульт, а сотовый телефон, смысл от этого не поменяется.
                          Читать дальше →
                        • SWIPE — фоторамка с функцией управления освещением жестами


                            Понты дороже денег. Чего только не придумают, чтобы побаловать любителей необычных гаджетов. Сейчас на рынке уйма фото-рамок, которые умеют показывать фотки с флешки или из facebook, но фото-рамка с помощью которой одним взмахом руки можно выключить весь свет в доме, такого еще не было! Компания Fibaro, известная своими красивыми гаджетами для умного дома, выпустила абсолютно новый продукт — SWIPE.
                            Читать дальше →
                          • Как умный дом не дал коту замерзнуть



                              Умный дом, в сознании большинства людей, все еще является некоей игрушкой, которая включает свет при входе в туалет и позволяет автоматизировать включение розеток по расписанию. Те, кто уже обзавелся своим домом, стараются максимально автоматизировать рутинные процессы, так как дом действительно требует массу внимания. Я столкнулся с тем, что мой кот, невзирая на любые морозы, ходит на охоту, да и просто погулять. Возвращается он всегда на одно и то же место — крыльцо, и может сидеть там часами, пока кто-то не выглянет в окно и не пойдет открывать двери. А морозы в этом году были до -28 градусов. Сегодня я хочу рассказать о том, как умный дом позволил спасти кота от замерзания.
                              Для начала покажу, как обстояло дело раньше. Кот приходит и всегда ждет на крыльце открытия двери. Иногда может ждать час и более, пока кто-нибудь не выглянет в окно.


                              Я решил задействовать автоматику умного дома и тут очень кстати я прочитал про технологию Z-Wave. О том, как умный дом не дал коту замерзнуть-читайте под катом.

                              Читать дальше →
                            • Z-Wave замок в помощь небольшому офису или дому

                              • Tutorial


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

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

                              На помощь приходят устройства из умного дома Z-Wave!

                              Устройства системы контроля доступом


                              1. Замок Vision на батарейках, устанавливается на место существующего дверного замка. Замок всегда сообщает о изменении своего состояния, как бы вы его не открыли: радио-командой, кодом или ключом.

                                Характеристики замка Vision:
                                1. Возможность открыть Z-Wave командой (шифрование AES128), с помощью кодовой панели и обычного ключа
                                2. Если открыть ключом или защелкой, сообщает на контроллер о своем состоянии «открыт/закрыт»
                                3. Сообщает на контроллер номер кода, которым открыли дверь
                                4. Ведет журнал событий. Если неправильно вводили код, вы узнаете об этом
                                5. 13 кодов
                                6. Работа от батареек 4xAA до года (зависит от того как часто используется замок)

                                В комплекте с Z-Wave контроллером RaZberry и датчиком открытия возможно использовать функции Автозакрытия, Удаленного управления, Логирования событий и многие другие.


                              Читать дальше →
                            • Радиоприёмник из DVB стика за $8 — изучаем SDR с GNURadio

                              • Tutorial
                              Каждый день мы пользуемся множеством радио устройств. Однако редко понимаем, как они работают. Эпоха радиолюбителей фактически прошла, оставив в прошлом любителей спаять приёмник ДВ или СВ своими руками. Да и в методах кодирования техника ушла далеко вперёд. Мы часто слышим рассуждения о взломе умных домов на радио протоколах, о ненадёжности радио связи и т.д. Но многие ли из вас пробовали, например, подслушать Z-Wave сеть умного дома соседа и тем более поуправлять ей? Насколько велика эта угроза для вас?

                              К счастью в наши дни стали доступны очень удобные средства для работы с радио, а именно SDR.

                              SDR (Software Defined Radio) позволяет программно перестраивать приёмник и передатчик для работы на различных частотах от 20 до 2000 МГц, после чего произвести обработку сигнала на компьютере с помощью цифровых методов. Это существенно отличает SDR от аналоговых схем радиопрёмников и передатчиков, позволяя легко менять алгоритм обработки полученного сигнала.




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

                              Под катом я расскажу об основах SDR и GNURadio и о том, как за 8 баксов сделать приёмник AM/FM, китайской управляемой розетки, телеметрии со спутника и всего, что вздумается.

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