• Управление по защите данных Германии: телеметрия в Windows 10 1909 Enterprise может быть полностью отключена

    • Перевод
    Телеметрия давно стала горячо обсуждаемой темой с момента, когда Microsoft выпустил первую версию Windows 10. Microsoft решил глубоко интегрировать сбор данных в операционную систему — да так глубоко, что у пользовательских выпусков Windows 10 Home и Windows 10 Pro не было опции по полному отключению телеметрии.
    Читать дальше →
  • Кодогенерация из OpenAPI v3 (aka Swagger 3) в TypeScript и не только

    Два года назад я начал разработку еще одного свободного кодогенератора из OpenAPI Specification v3 в TypeScript (он доступен на Github). Изначально, я задался целью сделать эффективную генерацию примитивных и сложных типов данных в TypeScript, с учетом различных возможностей JSON Schema, таких как oneOf/anyOf/allOf и т.п. (у родного решения от Swagger с этим были некоторые проблемы). Другая идея заключалась в том, чтобы использовать схемы из спецификаций для валидации на фронте, бэке и в других частях системы.


    Читать дальше →
  • Как обойти SMS-идентификацию при подключении к публичным Wi-Fi сетям?

    В 2014 году начали свое действие постановления правительства РФ №758 №801, обязывающие владельцев публичных WiFi сетей настроить на роутерах идентификацию пользователей через паспортные данные, sms или портал гос. услуг. Нежелание владельцев кафе тратиться за Captive portal'ы поспособствовало некоторым провайдерам в распространении своих точек доступа с платной sms-авторизацией. У меня возникло желание проверить, можно ли подобную sms-авторизацию обойти.

    image
    Читать дальше →
  • Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat

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

      Сегодня хочу поделиться с сообществом своим текущим опытом на реальном примере zabbix и его связке с block stat.


      Читать дальше →
    • Профилировщик запросов в БД в Phoenix. И немножко о том как работает stacktrace в Elixir/Erlang

      В нашей компании мы используем Elixir, фреймворк Phoenix и Ecto. И недавно на работе мне поставили задачу, сделать профилировщик запросов в БД, чтобы выяснить узкие точки системы, которые следует оптимизировать. Таким образом задачи были следущие:


      1. Выяснить, какие функции чаще всего обращаются в базу (query calls)
      2. Выяснить какие функции создают самые долгие и медленные запросв (query time)
      3. Результаты необходимо аккумулировать и выводить в виде списка/графика.

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


      https://github.com/parroty/exprof
      http://erlang.org/doc/man/fprof.html
      https://github.com/proger/eflame
      https://github.com/TheRealReal/new-relixir


      и др.


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

      Читать дальше →
    • Телеграм-бот для домашнего видео-наблюдения из подручных материалов

      Disclaimer


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


      Постановка задачи


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



      Из всего перечисленного, было решено построить систему домашнего видео-наблюдения с функционалом оповещения о вторжении. В качестве платформы был выбран телеграм-бот. Бот имеет следующие преимущества перед другими возможными реализациями (веб, мобильное приложение):


      • Не требуется установки дополнительного клиентского ПО
      • Серверная часть может работать с приватным IP адресом через NAT, при этом предъявляются минимальные требования к подключению (вплоть до 3G модема)
      • Большая часть инфраструктуры находится на стороне сервис-провайдера, который за меня решил вопросы авторизации, безопасности итп...

      С помощью беглого анализа интернет-публикаций, существующие решения обнаружены не были.

      Читать дальше →
    • Работаем с биткоином на Эликсире

      • Перевод

      Недавно меня с головой захватил волшебный мир биткоин. Жажде знаний не было предела, и утолить её помогла замечательная книга «Mastering Bitcoin» Андреаса Антонопулоса и полное погружение в биткоин-разработку. Книга подробно освещает технические основы биткоин, но ничто так не помогает в изучении нового дела, как практика.


      Простенькое приложение на Эликсире для управления полной биткоин-нодой и связи с ней через интерфейс JSON-RPC, по-моему, – отличный «Hello, World!». Поехали!

      Читать дальше →
    • Моки и явные контракты

      • Перевод

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


      Ниже представлен вольный перевод статьи, в которой José Valim — создатель языка Elixir — высказал своё мнение на проблему использования моков, с которым я полностью согласен.




      Несколько дней назад я поделился своими мыслями по поводу моков в Twitter:



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

      Читать дальше →
      • +9
      • 20,6k
      • 3
    • Миграция VueJS приложения на Vuex

      • Перевод
      Всем привет! Нам бы хотелось представить вашему вниманию статью Энтони Гора о миграции Vue.js-приложения на Vuex.


      Вид приложения, над которым будет вестись работа по миграции

      Далее следует перевод статьи. Всех, кому интересна данная тема, приглашаю под кат.
      Читать дальше →
    • «Алгоритмы консенсуса»: Подтверждение доли и доказательство работы

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

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

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

        Читать дальше →
      • Chrome 57 будет активно подавлять работу фоновых вкладок



          Ближайшие изменения в браузере Chrome вряд ли порадуют разработчиков Slack, Discord и других программ, которые работают во вкладках браузера. В бета-версии Chrome 56 реализован новый механизм оптимизации таймеров для фоновых вкладок.

          На первый взгляд, инициатива разработчиков выглядит хорошим делом. В сентябрьском плане внедрения (Intent to Implement) объясняются причины, которые сподвигли разработчиков на такое решение.

          Главная причина — некоторые плохо спроектированные приложения (например, скрипты аналитики и javascript-реклама) потребляют много ресурсов CPU, хотя находятся в фоновом режиме. Это негативно отражается на производительности браузера и потребляет энергию аккумулятора на мобильных устройствах. Такая обработка активности в фоновых вкладках совершенно ни к чему. Идея состоит в том, чтобы установить максимальный лимит вычислительных ресурсов, которые можно дать фоновому приложению.
          Читать дальше →
        • Мониторинг Postgresql: запросы

            В 2008 году в списке рассылки pgsql-hackers началось обсуждение расширения по сбору статистики по запросам. Начиная с версии 8.4 расширение pg_stat_statements входит в состав постгреса и позволяет получать различную статистику о запросах, которые обрабатывает сервер.


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


            Я расскажу, какие метрики по запросам собирает наш агент, как мы их группируем, визуализируем, так же расскажу о некоторых граблях, по которым мы прошли.

            Читать дальше →
            • +27
            • 32,7k
            • 8
          • Разгугленный Chromium

              Даже если у вас нет аккаунта в Google, свободный браузер Chromium всё равно в фоновом режиме обменивается данными с серверами Google. Это довольно странно, ведь люди устанавливают Chromium вместо Chrome именно для того, чтобы получить чистую программу без коммерческой привязки. Тем не менее, при сборке Chromium в нормальном режиме всё равно скачиваются и устаналиваются бинарные блобы от Google.

              Проект ungoogled-chromium — это набор конфигурационных флагов, патчей и специальных скриптов, чтобы удалить интеграцию с Google, улучшить настройки безопасности и управления.
              Читать дальше →
            • Mandrill всё? Как я искал замену и нашел 2 прекрасные альтернативы Мандрилу

                TL;DR: Mandrill захотел поднять цены в 4 раза. Они нашли способ через интеграцию с MailChimp.

                В феврале этого года, как гром среди ясного неба, пришло письмо от Mandrill о том, что с 27го апреля он перестаёт существовать как независимый сервис и теперь чтобы им пользоваться нужно будет интегрировать свой Mandrill аккаунт в платный аккаунт MailChimp. Именно платный, пусть даже и самый дешевый. Вот как выглядит ценник MailChimp:



                Напомню, что раньше Mandrill был бесплатным для небольших проектов до 12.000 писем в месяц (около 400 в день). Сейчас же как минимум $20 + сколько напосылаешь писем.
                Читать дальше →
              • Генерал Фузион

                  Сегодня я расскажу про один альтернативный проект создания реактора управляемого термоядерного синтеза, который лично мне нравится за свою абсолютную инженерную непохожесть ни на что. Речь пойдет о канадском стартапе General Fusion, существующем уже больше 10 лет и собравшем за это время порядка 100 млн долларов на свои разработки.

                  image

                  Сооснователи компании Doug Richardson (слева) и Michel Laberge (справа) на фоне плазменного инжектора для своей машины.
                  Читать дальше →
                • RE: Возможны ли путешествия во времени?

                    Вчера на Хабре появился потрясающий по своей безграмотности пост "Возможны ли путешествия во времени". В ответ на моё замечание о незнакомстве с базовыми научными представлениями о пространстве и времени автор припечатал меня вот так:
                    Если для Вас википедия — главный оплот истины и знаний, а физические законы непоколебимы — Вам пора на работу в инквизицию. Еще столько людей, опровергающих теоретические выдумки физиков 18 века, не сожжено!

                    Такого уровня воинствующего невежества я давно не видал, и уж на Хабре-то его видеть вдвойне странно.

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

                    Время



                    В классической механике время считается абсолютным и неизменным в том смысле, что при переходе от одной системы отсчёта к другой временные интервалы не изменяются:






                    Здесь (x, y, z, t) — координаты в старой системе, (x', y', z', t') — координаты в новой системе. Здесь и далее предполагается (для упрощения формул), что одна система движется относительно другой параллельно оси x со скоростью v.

                    Это т.н. преобразования Галилея — что происходит с координатами при смене системы отсчета. В галилеевом смысле «поток времени» один на всю Вселенную, и временные координаты у всех объектов одинаковы. При этом классическая механика никак не трактует уникальность стрелы времени; более того, само понятие движения времени в ньютоновы формулы не входит никак.

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

                    Однако «путешествие во времени» — т.е. перемещение одного конкретного объекта по шкале t в прошлое — ньютоновой механикой запрещено (см. выше — временной поток один на всю Вселенную).

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

                    Читать дальше →
                  • GTD на кухне: чем накормить голодного программиста

                    • Tutorial
                    imageИтак, как и обещал в первой части, продолжаем упрощать бытовую жизнь хабражителя. Сегодня 8 марта (кстати, девушки, поздравляю!) и части мужчин хочется порадовать своих женщин и освободить их от «рабского труда» на кухне, а другой части – приготовить для себя не традиционные пельмени\вареники\сосиски, а что-то посущественней.
                    Вот несколько проверенных рецептов, которые пригодятся и первым, и вторым.

                    Осторожно, много картинок. Голодным не входить!
                    Читать дальше →
                  • Молекулярный компьютер 3000000 вековой давности

                      Говорят, что все изобретения человечества были «подмечены» у природы, или хотя бы имеют природные аналоги; например, у самолёта в природе есть аналог — птица. А есть ли аналог компьютера и компьютерных программ?
                      Это — биологическая клетка, которая и будет рассмотрена в этом посте с точки зрения программиста, как молекулярный компьютер. Вы узнаете, что многие современные способы и алгоритмы обработки информации появились не в 1980-х годах, а на многие миллионы лет раньше.

                      Читать дальше →
                    • Банк России против «денежного суррогата» Bitcoin

                        image Сегодня вечером Банк России выпустил пресс-релиз, в котором предостерег всех нас от использования Биткоин и других виртуальных валют:

                        «Банк России отмечает, что в последнее время в мире получили определенное распространение так называемые „виртуальные валюты“, в частности, Биткойн. По „виртуальным валютам“ отсутствует обеспечение и юридически обязанные по ним субъекты. Операции по ним носят спекулятивный характер, осуществляются на так называемых „виртуальных биржах“ и несут высокий риск потери стоимости.
                        Банк России предостерегает граждан и юридических лиц, прежде всего кредитные организации и некредитные финансовые организации, от использования «виртуальных валют» для их обмена на товары (работы, услуги) или на денежные средства в рублях и в иностранной валюте. „

                        Также Банк России пригрозил и законом:

                        “Согласно статье 27 Федерального закона «О Центральном банке Российской Федерации (Банке России)» выпуск на территории Российской Федерации денежных суррогатов запрещается.
                        Читать дальше →