• Сети для самых матёрых. Часть пятнадцатая. QoS

    • Tutorial
    СДСМ-15. Про QoS. Теперь с возможностью Pull Request'ов.

    И вот мы дошли до темы QoS.

    Знаете почему только сейчас и почему это будет закрывающая статья всего курса СДСМ? Потому что QoS необычайно сложен. Сложнее всего, что было прежде в цикле.

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

    QoS настолько опутан аурой шаманизма и недоступности, что все молодые (и не только) инженеры стараются тщательно игнорировать его существование, считая, что достаточно закидать проблемы деньгами, и бесконечно расширяя линки. Правда пока они не осознают, что при таком подходе их неизбежно ждёт провал. Или бизнес начнёт задавать неудобные вопросы, или возникнет масса проблем, почти не связанных с шириной канала, зато прямо зависящих от эффективности его использования. Ага, VoIP активно машет ручкой из-за кулис, а мультикастовый трафик ехидно поглаживает вас по спинке.

    Поэтому давайте просто осознаем, что QoS это обязательно, познать его придётся так или иначе, и почему-бы не начать сейчас, в спокойной обстановке.

    Читать дальше →
  • Эта гениальная карта объясняет, как всё в физике подогнано друг к другу

    • Перевод

    Источник изображения: DominicWalliman/YouTube

    От пространства-времени до теории хаоса


    Физика — огромная и сложная область знаний. Но кроме того, она ещё одна из самых захватывающих наук, потому что имеет дело с «чёрными дырами», «червоточинами», квантовой телепортацией и гравитационными волнами.
    Читать дальше →
  • Новая техника атаки WPA2, не требующая наличия клиента на AP

    • Перевод
    image

     
    Участниками проекта hashcat обнаружен новый вектор атаки на беспроводной стандарт WPA2, не требующий классического перехвата "рукопожатия" между клиентом и точкой доступа. Данная уязвимость выявлена в рамках исследования потенциальных проблем безопасности нового протокола WPA3.

    Читать дальше →
  • Цена JavaScript в 2018 году

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


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

    • Перевод

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

    • Перевод

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



    — Не пойму, как ты воспринимаешь то, что я тебе говорю!
    Подслушанный за ужином семейный спор.
    После массового расстрела соседи стрелка поражены, и рассказывают репортёрам, что он был хорошим и добрым человеком. Бывшие одноклассники и сослуживцы описывают его, как бомбу, готовую взорваться. Эксперты связывают последнюю тираду Трампа с разнузданным нарциссизмом, ранней деменцией, агрессивным отцом, макиавеллевской проницательностью – или с искренним стремлением человека вернуть Америке былое величие… Продемонстрируйте пример любого человеческого поведения, и мы найдём ему пяток здравых объяснений. Всё это основывается на предположении о том, что мы с достаточно большой степенью достоверности можем понять, что происходит в голове у другого человека. Это предположение психологи называют моделью психики человека (МПЧ; а также — понимание чужого сознания, теория намерений, теория сознания, теория разума…). Считается, что эта возможность воспринимать тот факт, что у других людей имеется своё, отдельное сознание, в котором содержатся потенциально другие мнения и верования, намерения и желания, является одной из исключительных когнитивных способностей, отличающих нас от других существ.
    Читать дальше →
  • Аудиогаджет специального назначения: ценная “вещь” для посольства США

      Возможно, кто-то понял о чем пойдет речь из заголовка, для прочих поясню — этот пост посвящен эндовибратору Льва Термена, который также именуют “Златоуст” и “The Thing” (“вещь”, “нечто”). С этим устройством связан беспрецедентный случай в истории мировых разведок, когда посольство США в Москве безнаказанно прослушивалось на протяжении семи лет. При этом у американских служб технической безопасности не было возможности обнаружить “жучок”, так как последний не имел источника питания и представлял собой небольшую конструкцию из металла.


      Читать дальше →
    • Django Channels – ответ современному вебу

        В мире Django набирает популярность дополнение Django Channels. Эта библиотека должна принести в Django асинхронное сетевое программирование, которое мы так долго ждали. Артём Малышев на Moscow Python Conf 2017 объяснил, как это делает первая версия библиотеки (сейчас автор уже запилил channels2), зачем она это делает и делает ли вообще.

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

        • Twisted;
        • Eventlet;
        • Gevent;
        • Tornado;
        • Asyncio.

        Казалось бы, зачем писать еще одну библиотеку и надо ли вообще.


        О спикере: Артём Малышев независимый Python разработчик. Занимается разработкой распределённых систем, выступает на конференциях по Python. Артёма можно найти по никнейму @PROOFIT404 на Github и в социальных сетях.
        Читать дальше →
      • Книга «Чистый Python. Тонкости программирования для профи»

          image Привет, Хаброжители! Изучение всех возможностей Python — сложная задача, а с этой книгой вы сможете сосредоточиться на практических навыках, которые действительно важны. Раскопайте «скрытое золото» в стандартной библиотеке Python и начните писать чистый код уже сегодня.

          Если у вас есть опыт работы со старыми версиями Python, вы сможете ускорить работу с современными шаблонами и функциями, представленными на Python 3.

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

          Отрывок «Самое сумасшедшее выражение-словарь на западе»


          Иногда вы наталкиваетесь на крошечный пример кода, который обладает поистине неожиданной глубиной — одна-единственная строка кода, которая способна многому научить, если хорошенько над ней поразмыслить. Такой фрагмент код — это как коан в дзен-буддизме: вопрос или утверждение, используемое в практике дзен, чтобы вызвать сомнение и проверить достижения ученика.
          Читать дальше →
          • +22
          • 13,5k
          • 7
        • История первого места на ML Boot Camp VI

          Mail.ru уже не первый год проводит чемпионаты по машинному обучению, каждый раз задача по-своему интересна и по-своему сложна. Я участвую в соревнованиях четвертый раз, мне очень нравится платформа и организация, и именно с буткемпов начался мой путь в соревновательный machine learning, но первое место удалось занять впервые. В статье я расскажу как показать стабильный результат, не переобучившись ни на публичный лидерборд, ни на отложенные выборки, если тестовая часть существенно отлична от тренировочной части данных.

          Задача


          Полный текст задачи доступен по → ссылке. Вкратце: есть 10 гб данных, где каждая строка содержит три json'а вида «ключ: счетчик», некая категория, некая временная метка и идентификатор пользователя. Одному пользователю может соответствовать множество записей. Требуется определить к какому классу относится пользователь, первому или второму. Метрикой качества для модели является ROC-AUC, о ней отлично написано в блоге Александра Дьяконова[1].

          Пример записи в файле

          00000d2994b6df9239901389031acaac	5 {"809001":2,"848545":2,"565828":1,"490363":1} 
          {"85789":1,"238490":1,"32285":1,"103987":1,"16507":2,"6477":1,"92797":2}	{}	39
          
          Читать дальше →
        • Призраки в Юникоде

          • Перевод
          В 1978 году Министерство экономики, торговли и промышленности Японии установило кодировку, которую позже назовут JIS X 0208. Она до сих пор является основой всех японских кодировок. Но после выхода стандарта JIS люди заметили нечто странное: некоторые из добавленных символов не имели очевидных источников. Никто не мог сказать, что они означают и как их произносить. Никто не был уверен, откуда они появились. Эти символы теперь известны как призраки (幽霊文字).


          Будьте осторожны с тем, что вы пишете. via NDL
          Читать дальше →
        • Немного об атрибутах хостов, клавиатуре, коде и СКС в сериале «Мир дикого Запада» (Westworld)

            image

            Обычно в сериалах мимолетно зрителю показывают части экранов планшетов, мониторов и прочих айти-девайсов, с помощью которых предполагалось управлять и настраивать оборудование.
            Но айтишники дотошны. Давайте немного постопим кадры, посмотрим на айти картинки без спешки.
            Читать дальше →
          • Памятки по искусственному интеллекту, машинному обучению, глубокому обучению и большим данным

            • Перевод


            В течение нескольких месяцев мы собирали памятки по искусственному интеллекту, которыми периодически делились с друзьями и коллегами. В последнее время сложилась целая коллекция, и мы добавили к памяткам описания и/или цитаты, чтобы было интереснее читать. А в конце вас ждёт подборка по сложности «О большое» (Big-O). Наслаждайтесь.

            UPD. Многие картинки будут читабельнее, если открыть их в отдельных вкладках или сохранить на диск.
            Читать дальше →
            • +43
            • 16,1k
            • 9
          • Docker. Зачем и как

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

              Я сознательно опускаю некоторые технические подробности, а кое где допускаю упрощения. Если вы увидите, что docker – то, что вам нужно, вы легко найдете более полную и точную информацию в других статьях.
              Читать дальше
            • Курс MIT «Безопасность компьютерных систем». Лекция 2: «Контроль хакерских атак», часть 1

              • Перевод
              • Tutorial

              Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


              Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

              Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
              Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
              Читать дальше →
              • +13
              • 5,2k
              • 1
            • Почему не следует пользоваться Google Cloud

              • Перевод
              Дополнение (2 июля 2018 г): сотрудники поддержки Google Cloud Platform (GCP) заверили, что такое больше не повторится. Их слова: «Многие люди (в рамках GCP) заинтересованы в том, чтобы улучшить ситуацию не только для вас, но для всех клиентов».

              Примечание: это пост не о качестве облачных сервисов Google. Они превосходны, наравне с AWS. Речь идёт о «резких движениях без предупреждения», когда они полностью отключают все ваши системы, если сотрудники (или машины) вдруг решили: что-то не так. C нами это случилось второй раз.

              Предыстория


              Наш проект в продакшне использует GCP для мониторинга сотен ветроэнергетических установок (ВЭУ) и десятков солнечных электростанций, разбросанных по восьми странам. У нас центры управления с экранами на всю стену: там приборные панели, набитые метриками, за которыми следят круглосуточно. Менеджеры объектов используют эту систему для контроля в реальном времени состояния отдельных ВЭУ и солнечных установок. Если требуется вмешательство, оно производится немедленно. Команды разработки и прогнозирования используют систему для отработки алгоритмов на данных в BigQuery. Все действия непосредственно транслируются в нашу прибыль. Мы имеем дело с ветровой/солнечной энергией — скоропортящимся товаром. Если мы генерируем излишек, то не можем сохранить его и продать позже. Если генерируем недостаточно, то платим штрафы. По этой причине объекты нужно отслеживать 24/7, чтобы не выходить за рамки потребностей энергосистемы и заключенных соглашений о покупке электроэнергии.
              Читать дальше →
            • Оптимизации, используемые в Python: список и кортеж

              • Перевод
              В Python, есть два похожих типа — список (list) и кортеж (tuple). Самая известная разница между ними состоит в том, что кортежи неизменяемы.

              Вы не можете изменить объекты в tuple:

              >>> a = (1,2,3)
              >>> a[0] = 10
              Traceback (most recent call last):
                File "<stdin>", line 1, in <module>
              TypeError: 'tuple' object does not support item assignment
              

              Но вы можете модифицировать изменяемые объекты внутри кортежа:

              >>> b = (1,[1,2,3],3)
              >>> b[1]
              [1, 2, 3]
              >>> b[1].append(4)
              >>> b
              (1, [1, 2, 3, 4], 3)
              
              Читать дальше →
            • Алан Кей (и коллективный интеллект Хабра): какие книги формируют мышление тру инженера

              • Перевод
              image

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

              Ключевой частью инженерии является любовь к тому, чтобы делать вещи, особенно к тому, чтобы делать их сразу же и делать их хорошо. Большая часть инженерии возникла из “tinkering” (aka “hacking”), добавив к этому желания «принципиального проектирования и создания», «целостности» и т. д. Все великие инженеры, которых я знаю лично, имеют глубокие моральные убеждения касательно того, что они делают, и почему это «должно быть сделано как можно лучше». Часть наложения темперамента на науку это своего рода «лабораторная крыса», которая наиболее счастлива, когда она в курсе эксперимента или создания нового экспериментального аппарата.
              Читать дальше →
            • Всё, что нужно знать о сборщике мусора в Python

              • Перевод
              Как правило, вам не нужно беспокоиться о сборщике мусора и работе с памятью когда вы пишете код на Python. Как только объекты больше не нужны, Python автоматически освобождает память из под них. Несмотря на это, понимание как работает GC поможет писать более качественный код.

              Менеджер памяти


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

              Как только один из маленьких объект удаляется — память из под него не переходит операционной системе, Python оставляет её для новых объектов с таким же размером. Если в одном из выделенных блоков памяти не осталось объектов, то Python может высвободить его операционной системе. Как правило, высвобождение блоков случается когда скрипт создает множество временных объектов.
              Читать дальше →