• Электронные паспорта: присоединимся к мировой практике или получим риск утечки персональных данных?

      Приветствую, друзья!

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



      Еще электронный паспорт будет иметь голографическую защиту. Все данные будут продублированы в криптозащищенное мобильное приложение. Предполагается использовать технологию Mobile ID. Вроде бы надежно!

      Заниматься этим всем будет НИИ «Восход» совместно с организациями «Микрон» и Гознак. Кто будет разрабатывать приложение — еще не определились, но уже известно, что в разработках участвует «большая четверка» сотовых операторов. Итак, обо всем по порядку.
      Читать далее
    • Программирование для детей. Пять самых крутых игр на HTML и JavaScript

        image Привет, Хаброжители! Хотите сделать отличный подарок ребёнку, желающему научиться программировать, или научить взрослого, далёкого от мира кодов? Тогда книга-героиня нашего поста Вам подойдет. Эта книга научит писать код веб-игр на языках HTML и JavaScript и даже поможет читателю написать несколько увлекательных игр. Под катом — отрывок из книги.
        Читать дальше →
      • Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 1 — Приготовления

        • Перевод
        • Tutorial



        Список переведённых частей серии:


        1. Приготовления (вы тут)
        2. Компиляция с Emscripten
        3. Конвертация avi в mp4




        Из этой части вы узнаете:


        1. Зачем это всё нужно
        2. Как скомпилировать FFmpeg в Docker



        Зачем это всё нужно


        Главные задачи у серии публикаций такие:


        1. Создать туториал по использованию Emscripten для компиляции C/C++ библиотек в JavaScript (более детальный и полезный, чем написанные ранее)
        2. Персональная памятка

        Почему FFmpeg?


        FFmpeg — это свободный проект с открытым исходным кодом, состоящий из обширного набора библиотек и программ для обработки видео, аудио и других мультимедийных файлов/трансляций. (из Википедии)


        Библиотеки JavaScript, которая предоставляла бы подобные возможности, попросту не существует. Если вы погуглите «ffmpeg.js», то найдёте несколько решений, подобных тому что мы собираемся сделать:



        Эти библиотеки, конечно, можно использовать, но у них есть свои недостатки:


        1. Используемые версии как FFmpeg, так и Emscripten устарели
        2. Проекты не поддерживаются уже долгое время

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

        Читать дальше →
        • +13
        • 3,8k
        • 1
      • Облачная ЭЦП для россиян: планируется масштабный эксперимент

          В ноябре 2019 года правительство собирается запустить масштабный двухлетний эксперимент по выдаче и использованию облачной электронной цифровой подписи (ЭЦП), сообщает РБК. Минкомсвязи уже подготовило проект постановления правительства. По словам представителя Минкомсвязи Евгения Новикова, проект постановления правительства находится в стадии обсуждения с заинтересованными ведомствами.

          Усиленная квалифицированная ЭЦП позволит гражданам и организациям дистанционно оформлять простые сделки. Например, подписывать договоры об услугах связи, заключать сделки на электронных торговых площадках, оформлять договоры купли-продажи недвижимости. Такой вид подписи даёт самые широкие полномочия и является аналогом собственноручной подписи.
          Читать дальше →
        • Лазерная коррекция зрения — так ли эффективен метод Smile на самом деле?

            Мои исходные данные: небольшая близорукость, -1 диоптрия, но всего лишь 20% остроты — видел только две строчки. Очки или линзы мне были неудобны, поэтому я решил сделать операцию. Выбор сводился всего к двум типам — Femto lasik или Smile.

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

            2 года назад я сделал операцию femto lasik и до сих пор ей доволен — сразу после операции мое зрение имело 120% остроты, а сейчас находится в районе 100%. Мои друзья и знакомые интересуются и спрашивают, стоит ли им делать Smile. Я немного устал объяснять всем одно и то же, поэтому и решил написать статью на хабре, в которую собрал всю информацию, которую смог найти.
            Читать дальше →
          • Росреестр разъяснил, как защититься от сделок по ЭЦП

              В последние дни на Хабре активно обсуждают фиктивные сделки, для которых мошенники используют электронные цифровые подписи (ЭЦП), оформленные на других граждан. В России действуют сотни центров сертификации, многие из которых предлагают быструю процедуру оформления цифровой подписи за 30 минут без личного посещения офиса. Достаточно прислать сканы паспорта через интернет. Этим пользуются злоумышленники, имеющие доступ к персональным данным граждан. Здесь особых проблем нет. Например, если ваша девушка работает в паспортном столе, в исполкоме, в зелёном банке, у сотового оператора, в администрации общежития, в отделе кадров любой компании, то вы без труда получите качественные сканы любого количества паспортов, вместе с другими личными данными жертв.

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

              Главные вопросы: как защититься от такого мошенничества? Как узнать, что на ваше имя получена ЭЦП? Где увидеть список фирм, которые официально зарегистрированы на вас?
              Читать дальше →
            • Мультиязычные деревья в Yii2 на примере создания модуля меню

              Вступление


              Многие начинающие веб-разработчики сталкиваются с необходимостью создания меню, каталогов или рубрикаторов для своего проекта на Yii2, которые бы имели иерархическую структуру, но при этом поддерживали мультиязычность. Задача довольно простая, но не совсем очевидная в рамках данного фреймворка. Есть большое количество готовых расширений для создания древовидных структур (меню, каталогов итд.), но довольно сложно найти решение, которое бы поддерживало полноценную работу с несколькими языками. Причём речь тут идёт не о переводе интерфейса штатными средствами фреймворка, а про хранение данных в базе на нескольких языках. Также достаточно сложно найти удобный и полностью работоспособный виджет для управления деревом, который мог бы также работать с многоязычным контентом без сложных манипуляций с кодом.


              Я хотел бы поделиться рецептом того, как можно создавать подобные модули на примере реализации модуля меню. Для примера я буду использовать шаблон приложения Yii2 App Basic, но вы можете адаптировать всё под свой шаблон, если он отличается от базового.

              Читать дальше →
              • +23
              • 4,9k
              • 4
            • Михаил Бессмельцев с коллегой разработал новые алгоритмы для векторизации графики


                Слева направо: оригинал, оснащённое поле (frame field) и окончательный результат. На базе зашумлённого растрового изображение в оттенках серого вычисляется оснащённое поле, выровненное по линиям картинки. На острые углы типа X- и T-пересечений накладываются векторы по обоим направлениям. Затем из этого поля извлекается топология чертежа — и производится окончательная генерация векторных кривых

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

                Первые алгоритмы векторизации изображений появились в начале 1990-х годов и
                использовались в инструментах для редактирования векторной графики, таких как Adobe Illustrator (Live Trace), CorelDRAW (PowerTRACE) и Inkscape. Несмотря на их широкое внедрение в промышленности, эти алгоритмы до сих пор страдают от серьёзных недостатков и находятся в активной разработке. В нескольких индустриях, где векторизация крайне необходима, включая традиционную анимацию и инженерное проектирование, она часто выполняется вручную. Дизайнеры кропотливо обводят отсканированное изображение с помощью инструментов рисования.
                Читать дальше →
              • Подводные грабли SmartTV разработки

                  image

                  Привет, Хабр!

                  Уже давно была идея написать статью о проблемах SmartTV разработки, но по ходу погружения в эту область, мы изобрели свой велосипед, который помогал нам эти проблемы решать. Поэтому, в данной статье, мы не только осветим некоторые проблемные моменты SmartTV разработки, но и расскажем о том как их решить с помощью очередного нового фреймворка PureQML.

                  Всем кому интересна данная тема или просто любопытно посмотреть на новый фреймворк, который может и в SmartTV, просим под кат.
                  Читать дальше →
                • Реактивность в JavaScript: простой и понятный пример

                  • Перевод
                  Во многих фронтенд-фреймворках, написанных на JavaScript (например, в Angular, React и Vue) имеются собственные системы реактивности. Понимание особенностей работы этих систем пригодится любому разработчику, поможет ему более эффективно использовать современные JS-фреймворки.



                  В материале, перевод которого мы сегодня публикуем, продемонстрирован пошаговый пример разработки системы реактивности на чистом JavaScript. Эта система реализует те же механизмы, которые применяются в Vue.
                  Читать дальше →
                • Измеряем потребление батарейки на мобильных устройствах. Эксперимент в Яндексе

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


                    Производители как железа, так и софта, стараются решить эту проблему. Для Яндекса она тоже актуальна, потому что наши сервисы — это то, что должно быть под рукой у человека в любой момент. Мы по-разному над этим работаем и в рамках эксперимента создали устройство для измерения тока, который потребляется телефоном с батарейки. Теперь мы умеем мерить мгновенные значения тока с батарейки телефона (Nexus, iPhone и др.) в миллиамперах 500 раз в секунду, сохранять эту метрику на диск и считать по ней среднее потребление.



                    Под катом я расскажу, как у нас это получилось. Будет много фото железок, но заранее прошу прощения за качество — снимки сделаны в боевых условиях.

                    Читать дальше →
                  • Современная WEB-разработка. Как мы пришли к такому?

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

                    Костыли нас поджидают повсюду: начиная от серверных заголовков призванных обеспечить безопасноть приложений (CSP), заголовков, обеспечивающих взаимодействие между приложениями (Cross-origin resource sharing), и заканчивая инструментариями сборки.

                    Решая одну проблему, мы создаем пару новых и они уже как снежная лавина несутся, снося все на своем пути. Если сомневаетесь, можете посмотреть статистику вопросов на стековерфлоу, где джаваскрипт уже бесспорный лидер.
                    Читать дальше →
                  • Домашнее видеонаблюдение. Реализация с помощью Zoneminder и Debian 8

                    Введение


                    Доброго времени суток.

                    Имея в наличии домашний NAS, который работает под управлением Debian 8 (ранее я использовал Ubuntu Server 12.04 и 14.04), возникла идея возложить на него, помимо прочего, роль сервера видеонаблюдения. В качестве серверной части был выбран Zoneminder. Алгоритм работы видеонаблюдения должен быть такой: круглосуточная запись не нужна, но требуется в случае необходимости возможность включения записи по наступлению события — срабатывание на движение, с последующей отправкой уведомления на электронную почту со скриншотами с места события. Это нужно чтобы обеспечить контроль за квартирой в момент отсутствия кого-либо дома. Ну и, конечно, нужна возможность удалённо подключиться и проверить — всё ли в порядке.

                    На сайте разработчика я нашёл подробнейшую Wiki, посвященную именно установке на Debian 8 64-bit. Соответственно, инструкцию по установке я возьму оттуда, пояснив некоторые моменты своими комментариями.
                    Читать дальше →
                  • Создаём установочный носитель с множеством версий Windows NT 6.0+ без использования стороннего софта

                    • Tutorial

                    КДПВЗдравствуйте. Сегодня я расскажу как можно создать единый установочный носитель с множеством разных версий Windows не прибегая к использованию стороннего ПО. Таким образом вы будете полностью понимать какие манипуляции мы выполняем.


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


                    Кому интересно — прошу под кат.

                    А ну-ка, посмотрим
                  • Вышел официальный HTTP клиент для Yii 2

                      Команда Yii выпустила официальное расширение-клиент HTTP. Написано почти целиком Павлом Климовым. До последнего времени не было тегнуто как релиз из за несовместимости с PSR-7, хотя уже много где использовалось. После долгих обсуждений было решено выпускать без PSR-7. К нему, возможно, вернутся в 2.1.x.


                      Выполнение HTTP запроса выглядит вот так:


                      use yii\httpclient\Client;
                      
                      $client = new Client();
                      $response = $client->createRequest()
                          ->setMethod('post')
                          ->setUrl('http://example.com/api/1.0/users')
                          ->setData(['name' => 'John Doe', 'email' => 'johndoe@domain.com'])
                          ->send();
                      if ($response->isOk) {
                          $newUserId = $response->data['id'];
                      }

                      https://github.com/yiisoft/yii2-httpclient

                    • NW.js или Electron?



                        Если вы хотите создать собственное десктопное приложение на основе веб-технологий, то мир опенсорса предлагает два основных варианта: NW.js (ранее известный как node-webkit) и Electron (atom-shell). Выбор между ними не так очевиден, поэтому я решил создать сравнительную таблицу и остановиться на самых важных отличиях.
                        Читать дальше →
                      • Конкурс по программированию на JS: Классификатор слов

                          Компания Hola объявляет начало весеннего конкурса по программированию! Призовой фонд увеличен:

                          1. Первое место: 3000 USD.
                          2. Второе место: 2000 USD.
                          3. Третье место: 1000 USD.
                          4. Возможно, мы решим отметить чьи-то чрезвычайно оригинальные решения двумя специальными призами в 400 USD.
                          5. Если Вы отправите кому-то ссылку на этот конкурс, поставив наш адрес в CC, и этот человек займёт призовое место, Вы получите половину суммы приза (разумеется, не в ущерб награде победителя). За одного победителя такую награду может получить только один человек — тот, кто отправил ссылку первым.

                          Мы ищем талантливых программистов, поэтому авторы интересных решений будут приглашены на собеседования.

                          Опубликовано дополнение: Тестовая программа, часто задаваемые вопросы, типичные ошибки.
                          Опубликовано дополнение: О ходе тестирования.


                          Правила


                          На этот раз мы решили попробовать что-то новенькое: для разнообразия, этот конкурс — не на производительность кода.

                          Условия конкурса на английском языке размещены на GitHub. Ниже — перевод на русский язык.

                          Читать дальше →
                        • Лучшие инструменты для JavaScript-разработчика



                            Регулярно появляется какая-нибудь JS-библиотека, которую начинают шумно обсуждать на всевозможных форумах. Сначала постепенно нарастает энтузиазм, а затем сообщество быстро делится на противоборствующие лагери, по-разному относящиеся к новинке. Было бы просто невероятным подвигом рассмотреть все распространённые JS-фреймворки и библиотеки, поэтому хотим предложить вам список самых популярных и оказавших наибольшее влияние инструментов для фронтенд-разработки. А заодно дадим некоторые рекомендации по их использованию.

                            Но прежде чем перейти к делу, хотим уточнить:

                            • Не нужно ломать копий, если в этот список не попали какие-то из ваших любимых фреймворков или библиотек.
                            • Следите за обновлениями используемых вами инструментов. В последнее время начала активно внедряться кроссбраузерная и кроссаппаратная (cross-device) поддержка. Например, можно воспользоваться сканером, который подскажет, совместимы ли более старые версии с большинством устройств.

                            Читать дальше →
                          • Linux демон на PHP5

                              Доброго времени суток, сегодня я буду описывать довольно забавную задачку, из области мало связанной напрямую с web-программированием, а точнее создание демона на PHP. Понятное дело что первым вопросом будет: «А зачем это надо?» Ну что ж, будем разбираться последовательно.

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