• Исключения в Windows x64. Как это работает. Часть 3

      Опираясь на материал, описанный в первой и второй частях данной статьи, мы продолжим обсуждение темы обработки исключений в Windows x64.

      Описываемый материал требует знания базовых понятий, таких, как пролог, эпилог, кадр функции и понимания базовых процессов, таких, как действия пролога и эпилога, передача параметров функции и возврат результата функции. Если читатель не знаком с вышеперечисленным, то перед прочтением рекомендуется ознакомиться с материалом из первой части данной статьи. Также, если читатель не знаком со структурами PE образа, которые задействуются в процессе обработки исключения, тогда перед прочтением также рекомендуется ознакомиться с материалом из второй части данной статьи.
      Читать дальше →
    • [Перевод] Анемичная модель предметной области — не анти-шаблон, а архитектура по принципам SOLID

      От переводчика: На проекте, где я работаю, сейчас идет активное переписывание логики, ранее реализованной в виде богатой модели предметной области (с использованием Active Record и Unit of Work). Новый подход включает в себя классы сущностей без поведения и служб без состояния, взаимодействующих посредством интерфейсов — фактически, он представляет собой анемичную модель, с перспективой перехода в дальнейшем на микросервисную архитектуру. Наблюдая в режиме реального времени, как «макаронный монстр» из примерно полутора миллионов LOC постепенно обретает форму, как упрощаются тестирование, масштабирование и кастомизация системы под нуждый различных заказчиков, я был весьма удивлен, узнав, что такой подход часто рассматривается как архитектурный анти-шаблон. Пытаясь разобраться в причинах этого, я наткнулся на данную статью и размещаю здесь ее перевод, чтобы обсудить с сообществом плюсы и минусы подхода.


      Оригинал: The Anaemic Domain Model is no Anti-Pattern, it’s a SOLID design

      Читать дальше →
    • Договоры — это как отладка

        7.2. Как форс-мажор указана забастовка в отрасли и регионе, это лучше вычеркнуть, т.к. неясно, в какой отрасли и в каком регионе.

        Чтобы быть плохим юристом, не надо обладать специальными навыками: достаточно здравого смысла, чтобы разбираться в документах. Чтобы быть приемлемым юристом — ещё нужна хорошая память для того, чтобы помнить, что и где в нормативах и прецедентах. А чтобы быть отличным — ещё иметь огромную практику и нездоровое чувство юмора. Хотя последнее необязательно, конечно.

        Каждый наш договор страхует юрист-отладчик, который как брекпоинтами размечает точки рисков. Сейчас покажу пару примеров того, что он видит и чувствует.
        Читать дальше →
      • Как получить D-U-N-S number бесплатно

        • Tutorial


        D-U-N-S number — международный идентификатор юридических лиц. В России добровольно его добывают в одном случае: когда в AppStore нужно зарегистрировать компанию-разработчика.

        Расскажем, как добыть этот номер бесплатно и сэкономить 12 240.
        Читать дальше →
        • +34
        • 23k
        • 9
      • Внутренние механизмы V8 и быстрая работа со свойствами объектов

        • Перевод
        Этот материал посвящён тому, как внутренние механизмы V8 работают со свойствами JavaScript-объектов. Если рассматривать свойства с точки зрения JavaScript, то разные их виды отличаются друг от друга не так уж и сильно. Скажем, JS-объекты обычно ведут себя как словари со строковыми ключами и произвольными объектами в качестве значений. Однако, если почитать спецификацию языка, можно выяснить, например, что свойства разных видов по-разному ведут себя при их переборе. В других случаях поведение свойств различных видов, в основном, выглядит одинаково.

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

        image

        В этом материале мы хотим рассказать о том, как V8 добивается высокой производительности при обработке динамически добавляемых свойств объектов. Знание особенностей механизма работы со свойствами необходимо для понимания сущности способов оптимизации выполнения JavaScript в V8, таких, например, как встроенные кэши.
        Читать дальше →
        • +29
        • 12,8k
        • 8
      • Небезопасный cross-origin resource sharing

          image

           
          Cross-origin resource sharing — технология современных браузеров, которая позволяет предоставить веб-странице доступ к ресурсам другого домена. В этой статье я расскажу об этой технологии, призванной обеспечить безопасность, или наоборот, поставить веб-приложение под удар.

          Читать дальше →
          • +18
          • 14,6k
          • 7
        • Проблема непрерывной защиты веб-приложений. Взгляд со стороны исследователей и эксплуатантов. Часть 2

            Итак, продолжаем тему, начатую неделю назад. В прошлый раз своими взглядами на непрерывную защиту веб-приложений поделился разработчик WAF. Сегодня я хотел бы рассказать о том, как это задача решается в центре мониторинга и реагирования на кибератаки Solar JSOC. Под катом — все о боевой эксплуатации WAF: какие методы работы мы считаем наиболее эффективными, как атакуют веб-сервисы наших заказчиков и как отрабатывает (и иногда не отрабатывает) WAF.


            Читать дальше →
          • Как космический зануда на «Время первых» ходил

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


              Кадр из второго официального трейлера фильма «Время первых»
              Читать дальше →
            • $126 за 5 минут: как использовать ценовую разницу для стран против маркетологов

                Привет, Geektimes! Не за горами 12 июня, а значит, нас снова ждут длинные выходные. Как и в мае, многие россияне улетят в небольшой отпуск, чтобы отдохнуть от суеты. Поэтому в преддверии июньских выходных мы решили коснуться интересной и прикладной темы — как сэкономить деньги, используя VPN.

                Самое простое — экономия на аренде автомобиля.

                Пример: бронируем автомобиль в Брисбане (Австралия), сначала используя швейцарский IP:


                Теперь меняем IP-адрес на США и пробуем снова:


                Сэкономили $9 в день. Представьте, что вы едете путешествовать по Австралии на 2 недели. Соответственно, вы сэкономите $126, что очень неплохо. Сервисы по аренде автомобилей предлагают разные цены и предложения в зависимости от страны. Если вы попробуете забронировать автомобиль, допустим, из США, России и Бангкока, цены будут отличаться.

                Разберем подробнее и другие примеры:
                Читать дальше →
              • Вы неверно измеряете загрузку процессора

                • Перевод
                Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке CPU, которую показывают все утилиты анализа производительности — от диспетчера задач Windows до команды top в Linux.

                Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:



                А на самом деле это выглядит вот так:



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