• Почему удостоверяющие центры не соблюдают требование CA/Browser к сертификатам

      Ежегодно форум CA/Browser обновляет базовые требования к серверным SSL/TLS-сертификатам (Baseline Requirements или BR).

      Одно из таких требований указано в пункте 4.9.9 с пометкой MUST:

      Ответы по OCSP (протокол статуса онлайн-сертификатов) ДОЛЖНЫ соответствовать RFC 6960 и/или RFC 5019. OCSP ответы ДОЛЖНЫ либо:

      1. Иметь подпись УЦ, выдавшим сертификаты, чей статус отзыва проверяется, или
      2. Иметь подпись OCSP Responder, сертификат которого подписан УЦ, выдавшим сертификаты, чей статус отзыва проверяется

      В последнем случае подписывающий сертификат OCSP ДОЛЖЕН содержать расширение типа id-pkix-ocsp-nocheck, как прописано в RFC 6960.

      Именно это правило нарушают практически все удостоверяющие центры (УЦ), что имеет некоторые последствия.
      Читать дальше →
    • Юнит-тесты переоценены

      • Translation
      Предлагаем вам перевод поста «Unit Testing is Overrated» от Alex Golub, чтобы подискутировать на тему юнит-тестов. Действительно ли они переоценены, как считает автор, или же являются отличным подспорьем в работе? Опрос — в конце поста


      Результаты использования юнит-тестов: отчаяние, мучения, гнев

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

      В процессе развития отрасли разработки ПО совершенствовались и методики тестирования. Они постепенно сдвигались в сторону автоматизации и повлияли на саму структуру ПО, порождая такие «мантры», как «разработка через тестирование» (test-driven development), делая упор на такие паттерны, как инверсия зависимостей (dependency inversion), и популяризируя построенные на их основе высокоуровневые архитектуры.

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

      Однако, несмотря на существование различных подходов, современные «best practices» в основном подталкивают разработчиков к использованию конкретно юнит-тестирования. Тесты, область контроля которых находится в пирамиде Майка Кона выше, или пишутся как часть более масштабного проекта (часто совершенно другими людьми), или полностью игнорируются.

      Преимущество такого подхода часть поддерживается следующим аргументом: юнит-тесты обеспечивают в процессе разработки наибольшую полезность, потому что способны быстро отслеживать ошибки и помогают применять упрощающие модульность паттерны разработки.
      Читать дальше →
    • Руководство по перезаряжаемым литиевым аккумуляторам для начинающих

      • Translation


      Когда-то аккумуляторы были тяжёлыми и неуклюжими предметами, выдававшими смехотворно мало энергии для своего размера и веса. К счастью, со временем технологии улучшаются, и в 2020 году у нас есть прекрасные мощные литий-полимерные аккумуляторы, выдающие столько энергии, сколько может понадобиться вашему мобильному проекту. Однако при их использовании нужно учесть некоторые моменты – поэтому предлагаю вам прочесть руководство для начинающих о том, как правильно использовать LiPo в своём проекте.

      Так много типов!


      Первые коммерческие литий-ионные аккумуляторы вышли на рынок в 1991 году, и за прошедшие с тех пор почти 30 лет мы наблюдали быстрый их прогресс. В итоге у нас появилось множество различных технологий и типов аккумуляторов, делящихся по типу конструкции и используемых материалов. Чтобы правильно обращаться с аккумуляторами, важно знать, какой именно тип попал к вам в руки, и очень важно обратить на это внимание.
      Читать дальше →
    • Alfa Battle — онлайн-чемпионат по прикладному программированию

        Привет!

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



        Мы не стали добавлять в программу какие-то общие задачи по теме, сферические кейсы и прочее — вместо этого будут реальные бизнес-задачи backend-разработки от нас и от партнёров мероприятия (Билайн и X5 Retail Group). Участвовать можно из любого города РФ, главное — желание и интернет-доступ.

        Из призов будут деньги (250 000 / 150 000 / 100 000 рублей за первое, второе и третье места соответственно), приглашение на работу для авторов лучших решений (в офис или на удалёнку из своего города) и билет на Joker за самое креативное решение.

        Гарантированные призы каждому участнику — набор ALFA BATTLE LIMITED EDITION и экскурсия по Alfa Digital. Под катом этапы чемпионата.
        Читать дальше →
      • Как учить всех и каждого одновременно?

        Короткий ответ — дать возможность студентам учиться самостоятельно и сделать это неизбежным.

        Более подробно рассмотрим педагогический эксперимент, проведенный в Новосибирском государственном университете. В НГУ я 6 лет вел спецкурс по тестированию программного обеспечения на принципах смешанного и дуального обучения. Мы начали с группы в 8 человек, а в последний год на курс записались 52 человека из 100 студентов потока, включая тех, кто уже работал в тестировщиками ПО.


        В статье раскрыта организация образовательного процесса, и вытекающие из него педагогические и управленческие вопросы.

        Читать дальше →
        • +10
        • 2.5k
        • 6
      • Умелец собрал радио с помощью чипа от кредитной карты

          image

          DIY-энтузиаст Билли Чунг смог собрать детекторный радиоприемник при помощи чипа от кредитной карты. Обычно в конструкции в качестве детектора используется диод.
          Читать дальше →
        • Когда написать свою IoT-платформу выгоднее, чем покупать готовую

            Привет!

            В конце апреля я рассказал вам про наши датчики и упомянул специальную IoT-платформу, на которой они работают. Пришло время рассказать об этом подробнее.

            Платформа нужна для того, чтобы обеспечить управление устройствами IoT-сети всех уровней и съем данных с датчиков, хранение этой информации и её дальнейшую обработку. Да, на рынке сейчас достаточно подобных платформ, но они не готовы решать задачу «из коробки». Это или какие-то отдельные куски бэкенда, которые полезные и нам бы пригодились в работе, или такие же полезные куски фронтенда, но такого, чтобы все сразу и прямо из коробки — нету. Даже самая близкая к нашим потребностям платформа требовала довольно серьезного допиливания и найма в штат новых разработчиков исключительно под эти задачи.



            Мы сели, посчитали total cost of ownership и другие плюсы и минусы использования ведущих платных платформ, сравнили это с возможностью пойти и написать свою платформу. И получилось, что сделать свою для нас — примерно в два раза дешевле, при этом платформа будет полностью соответствовать стеку технологий, принятых в SIBUR Digital.
            Читать дальше →
          • Часть 6. Карьера программиста. Свой стартап

              Продолжение рассказа «Карьера программиста».

              Я не притрагивался к книге “Карьера программиста” ровно год, и видимо не зря. За последние месяцы, со мной произошло много трансформаций, которые позволят дополнить эту историю материалами о том, как создать и развивать IT-компанию. Это кажется закономерным. Если вы амбициозный программист или фрилансер, то рано или поздно задаетесь вопросом: «А что дальше?». Вот, я уже старший разработчик — а что дальше? Назначили архитектором — а что дальше?..

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

              • Translation

              За свои 150 лет истории (если вы принадлежите к поклонникам Меуччи, а не Грейама Белла, то назовёте другое число) телефон прожил огромное количество жизней. Его чрезвычайно долгая эволюция и история характеризуются множеством технологических революций. По сути, телефон стал носителем «вируса» глобализации, в основе современных коммуникаций лежит понятие «телефонного звонка», а идея возможности мгновенной связи с практически любым человеком в мире демонстрирует наше понимание параллельности индивидуального существования каждого. Всегда было и есть нечто невероятно новое и волшебное в возможности услышать далёкий голос, вести разговор между Лондоном и Нью-Йорком, иметь доступ к любой информации из другой части мира.

              На протяжении всех этих лет сам телефон как объект претерпел множество трансформаций, это один из тех современных нам предметов, которые так нравится переосмыслять, анализировать и модифицировать художникам и дизайнерам, пытающимся интерпретировать дух времени, а иногда и предугадать его. Мы попробуем отследить его развитие от телетрофона Меуччи до iPhone, представив дизайн наиболее выдающихся телефонов и рассказав историю объекта, внёсшего такой существенный вклад в формирование нашей собственной истории.
              Читать дальше →
            • «Коммент-ревью» от Huawei: комментируйте посты про Wi-Fi 6 и получайте призы

                Недавно мы анонсировали конкурс «Жаркая дискуссия про Wi-Fi 6» и благодаря вашему участию получили большое количество интересных историй, описаний, рассуждений. Некоторые из них легко тянут на статьи в серьезных тематических изданиях. Лидеры конкурса уже определены, и имена победителей мы скоро объявим. Но у вас еще есть возможность повлиять на наш выбор и получить профит самим.


                Читать дальше
              • Как инженеру вырасти в техлида

                  Кто такие тимлид, архитектор или QA и чем они занимаются, в IT представляют себе примерно все. Но с пониманием, кто такой техлид, за что отвечает и как им стать, возникают трудности. Мы провели десятки интервью со специалистами крупных компаний и узнали, что это инженер, который инициирует процессы: связывает людей и инструменты с целями организации. Он берёт инициативу и ответственность за технологическое развитие продукта и радеет за качество технических решений. При этом качество это не только тестирование, а архитектура, дизайн, инженерные практики и эксперименты, работа с техдолгом и техническое совершенствование компании в целом.



                  Также мы выяснили, что для техлидов есть много конференций. Но почти все они концентрируются на  инструментах, а не на инженерных практиках и процессах. Именно поэтому мы запустили новую конференцию TechLead Conf 2020 Online — для тех, кто хотел бы стать техлидом и разобраться с тем, что такое качество. 

                  На TechLead Conf 2020 Online вторичен вопрос «С помощью какого технического инструмента решалась проблема?». Эта конференция для тех, кто борется за качество технических решений и берёт на себя ответственность за технологическое развитие продукта. С 8 по 10 июня мы изучим опыт внедрения и использования практик, управления технологиями и процессами в компании. Подробнее о программе и о чём будем говорить на мероприятии, расскажем дальше.
                  Читать дальше →
                • Облачный‌ ‌opensource‌ ‌осциллограф‌ ‌за‌ ‌3500р‌ ‌и‌ его‌ ‌друзья

                    Привет!‌ ‌

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

                    Хотя‌ ‌зачастую‌ ‌заслуживает.‌ ‌Из‌ ‌подручных‌ ‌материалов,‌ ‌энтузиазма‌ ‌и‌ ‌желания‌ ‌сделать‌ ‌что-то‌ ‌клевое‌ ‌просто‌ ‌потому,‌ ‌что‌ ‌можно,‌ ‌временами‌ ‌получаются‌ ‌отличные‌ ‌штуковины.‌ ‌К‌ ‌примеру,‌ ‌ребята‌ ‌из‌ ‌хакспейса‌ ‌Нейрон‌ ‌однажды‌ ‌просто‌ ‌just‌ ‌for‌ ‌fun‌ ‌сделали‌ ‌доступную‌ ‌базовую‌ ‌станцию‌ ‌2G.‌ ‌Понятное‌ ‌дело,‌ ‌что‌ ‌в‌ ‌больших‌ ‌городах‌ ‌(да‌ ‌и‌ ‌областях)‌ ‌она‌ ‌интересна‌ ‌только‌ ‌с‌ ‌точки‌ ‌зрения‌ ‌проекта‌ ‌и‌ ‌хобби,‌ ‌но‌ ‌для‌ ‌развивающихся‌ ‌стран,‌ ‌к‌ ‌примеру,‌ ‌это‌ ‌вполне‌ ‌себе‌ ‌полезная‌ ‌вещь.‌ ‌Во-первых,‌ ‌она‌ ‌работает,‌ ‌во-вторых,‌ ‌материальная‌ ‌составляющая‌ ‌весьма‌ ‌и‌ ‌весьма‌ ‌приятна.‌ ‌

                    Так‌ ‌вот,‌ ‌про‌ ‌наших‌ ‌ребят.‌ ‌

                    ‌ ‌

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

                    Важное‌ ‌примечание:‌ ‌все‌ ‌описанные‌ ‌в‌ ‌посте‌ ‌штуки‌ ‌так‌ ‌выглядят,‌ ‌потому‌ ‌что‌ ‌специально‌ ‌используют‌ ‌максимально‌ ‌дешёвые‌ ‌и‌ ‌доступные‌ ‌материалы,‌ ‌а‌ ‌корпуса‌ ‌вообще‌ ‌печатают‌ ‌на‌ ‌3D-принтере,‌ ‌который‌ ‌стоит‌ ‌в‌ ‌офисе.‌ ‌
                    Читать дальше →
                  • Бизнес-эксперт и программирование. Совмещать нельзя разделять

                      Привет! Меня зовут Виктория Краснова, я не так давно писала большой пост про data-driven в нефтехимии. Но там было про сам подход и систему. Давайте сегодня поговорим о тех, кто этой системой будет пользоваться (и кто будет её улучшать). То есть о людях.

                      Вообще же, про data driven легко говорить и кайфово это реализовывать в компаниях, в которых большинство сотрудников являются power users, то есть легко напишут запрос к базе, не отрываясь от заваривания чая, а в голове у них есть вопросы и задачи, которые можно решить только при наличии технологии Big Data.



                      А теперь представьте себе, каково это — внедрять DAAS (data as a service), если ваши пользователи взаимодействуют между собой только языком Excel и Power Point. Возникает разрыв: те, кто владеет навыками программирования, не владеют предметной областью на должном уровне, чтобы предметно продемонстрировать все плюшки современных технологий, а бизнес-эксперты пребывают в состоянии недоумения из-за того, что любую известную задачу можно решить при помощи «Small Data» в лице Excel.

                      Для того, чтобы этот разрыв нивелировать, а в идеале вообще устранить, можно подойти к проблеме вот с каких сторон. Во-первых, набирать аналитиков со знанием SQL и Python. Во-вторых, учить существующих пользователей языкам программирования. И вроде как первый путь выглядит логичнее и проще, да? Но есть подводные камни, а именно:
                      Читать дальше →
                    • Открыт новый набор в Академию больших данных MADE



                        Mail.ru Group открывает второй набор на бесплатное обучение в Академию больших данных MADE. Здесь IT-специалисты смогут за полтора года освоить одну из трех специальностей — Data Scientist, Machine Learning Engineer или Data Engineer. Программа разработана экспертами из научного мира и индустрии, а также специалистами из Mail.ru Group. В Академию смогут попасть те, кто успешно пройдет вступительный отбор. Заявки принимаются до 1 августа на сайте проекта.
                        Читать дальше →
                      • Компьютерное зрение на WebRTC-сервере с аппаратным ускорением от Intel OWT

                        • Translation
                        • Tutorial

                        WebRTC упростил (в большинстве своем) получение и отправку видеопотоков в реальном времени. А значит, можно немного поразвлекаться с ними при помощи машинного обучения. В прошлом месяце я показал, как запустить компьютерное зрение (Computer Vision – CV) локально в браузере. Как я уже упоминал, локально – это, конечно, хорошо, но иногда требуется более высокая производительность, и для этого нам понадобится удаленный сервер. В данном посте я расскажу о том, как запускать серверные модели OpenCV с аппаратным ускорением на чипсетах Intel с помощью Open WebRTC Toolkit (OWT) с открытым исходным кодом.
                        Читать дальше →
                        • +38
                        • 6.1k
                        • 1
                      • [Часть 2/2] Руководство по FFmpeg и SDL или Как написать видеоплеер менее чем в 1000 строк

                        • Translation

                        Выкладываем оставшуюся часть перевода на русский руководства, несколько устаревшего, однако не потерявшего своей актуальности, поскольку этот учебник помогает вникнуть в «кухню» создания видеоприложений с помощью библиотек FFmpeg и SDL.

                        И хотя мы старались, в таком объёмном тексте неизбежны трудности перевода. Сообщайте о недочётах (желательно, в личных сообщениях) — вместе сделаем лучше.

                        Оглавление

                        Читать дальше →
                      • Все нововведения Windows 10 2004 (20H1)

                        • Translation
                        Сегодня вечером был выпущен финальный ISO-образ Windows 10 2004 (20H1). Им стал билд за номером 19041.208.vb_release_svc_im.200416-2050. Образы для разработчиков уже доступны на MSDN как вскоре и сами знаете где.


                        Читать дальше →
                      • Защита и взлом Xbox 360 (Часть 3)



                          В 2011 году, через 6 лет после выпуска игровой приставки Xbox 360, исследователями был обнаружен занимательный факт — если на вывод RESET центрального процессора на очень короткое время подать сигнал «0», процессор не сбросит своё состояние (как должно быть), но вместо этого изменит своё поведение! На основе этой «особенности» был разработан Reset Glitch Hack (RGH), с помощью которого удалось полностью скомпрометировать защиту Xbox 360, запустить неподписанный код, тем самым открыв путь к взлому самой системы и победе над «невзламываемыми» приводами DG-16D5S.

                          Давайте же рассмотрим в деталях, как работал RGH, как разработчики пытались залатать дыру и как эти заплатки смогли обойти!
                          Читать дальше →
                        • 5 JavaScript-библиотек для работы со строками

                          • Translation
                          Работа со строками может оказаться непростым делом из-за того, что она подразумевает решение множества разноплановых задач. Например, для простого приведения строки к «верблюжьему» стилю понадобится несколько строк кода:

                          function camelize(str) {
                            return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
                              if (+match === 0) re
                          turn ""; // или if (/\s+/.test(match)) для пробелов
                              return index === 0 ? match.toLowerCase() : match.toUpperCase();
                            });
                          }
                          

                          Этот фрагмент кода, кстати, в роли ответа на вопрос о приведении строк к «верблюжьему» стилю, собрал больше всего голосов на Stack Overflow. Но даже он не в состоянии правильно обработать, например, такую строку:

                          ---Foo---bAr---
                          


                          Результат обработки строки ---Foo---bAr---

                          А как быть, если такие строки, всё же, нужно обрабатывать? Можно подправить этот пример, а можно прибегнуть к помощи специализированных библиотек. Они упрощают реализацию сложных алгоритмов и, кроме того, дают программисту инструменты, обладающие куда большей гибкостью и универсальностью, чем, скажем, вышеприведённый пример. Это вполне может означать, что для решения некоей непростой задачи понадобится вызвать всего один метод.

                          Поговорим о нескольких JavaScript-библиотеках, предназначенных для работы со строками.
                          Читать дальше →
                          • +39
                          • 7.7k
                          • 9
                        • Три подводных камня машинного обучения и как их избежать

                          • Translation

                          Ученые из бесчисленных областей обращаются к алгоритмическому анализу данных, Патрик Райли из Google призывает к четким стандартам научных исследований и отчетов.



                          Инженеры TAE Technologies и Google в Калифорнии используют машинное обучение для оптимизации оборудования, производящего высокоэнергетическую плазму. Источник: Liz Kuball.
                          Читать дальше →