• Коды избыточности: простыми словами о том, как надёжно и дёшево хранить данные


      Так выглядит избыточность


      Коды избыточности* широко применяются в компьютерных системах для увеличения надёжности хранения данных. В Яндексе их используют в очень многих проектах. Например, применение кодов избыточности вместо репликации в нашем внутреннем объектном хранилище экономит миллионы без снижения надёжности. Но несмотря на широкое распространение, понятное описание того, как работают коды избыточности, встречается очень редко. Желающие разобраться сталкиваются примерно со следующим (из Википедии):



      Меня зовут Вадим, в Яндексе я занимаюсь разработкой внутреннего объектного хранилища MDS. В этой статье я простыми словами опишу теоретические основы кодов избыточности (кодов Рида — Соломона и LRC). Расскажу, как это работает, без сложной математики и редких терминов. В конце приведу примеры использования кодов избыточности в Яндексе.


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


      * Под термином «коды избыточности» в статье подразумевается инженерный термин «erasure codes».

      Читать дальше →
    • Аллокаторы памяти

      • Tutorial
      Всем привет! Не так давно, после очень плотного изучения аллокаторов и алгоритмов распределения памяти, а также в последующем применении их на практике мне в голову пришла идея написать статью, в которой будет максимально подробно рассказано о них. Считаю, что данная тема будет достаточно востребованной, так как в сети, особенно в русскоязычной части, на данный момент существует очень мало источников, посвященных этому вопросу.
      Читать дальше →
    • Выбор VR шлема

        Продолжение темы «Часто задаваемые вопросы о VR шлемах и играх».

        Таблица сравнения разных шлемов с реддит, некоторые цифры спорные, но примерное представление дают о разнице тех. характеристик:


        Читать дальше →
      • О революции в радарах, дедлайнах и выходе в четвертое измерение

          В статьях моих коллег про беспилотные трамваи и тепловозы были упомянуты радары. Они широко применяются в автомобильной отрасли для реализации стандартных функций активной и пассивной безопасности. Решения для высокоавтоматизированных систем управления (включая беспилотный транспорт) требуют более гибких и продвинутых технологий. В Cognitive Pilot радарами занимается специальное подразделение, которое до конца 2019 года работало как Design House, выпуская по контрактной модели решения для автопроизводителей и поставщиков компонентов. Сейчас мы переходим на новую бизнес-модель и готовим к серийному производству линейку радаров для широкого круга заказчиков — от проектов DIY до стартапов и опытных парков. На базе использующихся в проектах Cognitive Pilot решений будут созданы готовые продукты для пользователей, которые можно условно разделить на 3 категории: «MiniRadar», «Industrial» и «Imaging 4D». Подобные устройства активно применяются в самых разных отраслях, поэтому стоит рассказать о них подробнее.


          Читать дальше →
        • Программист должен решать проблемы бизнеса

            image


            Недавно вышла статья, мимо которой я не мог пройти — "Программист не должен решать задачи бизнеса". Неожиданно мой комментарий вырос до мини-статьи. Я не согласен с мнением автора статьи, все сказано ниже ИМХО, с удовольствием подискутирую в комментариях. Сразу замечу, что я веб-разработчик, и все примеры я привожу в контексте своего опыта.

            Читать дальше →
          • Вирус и антибиотики: нежный ликбез для паникующих


              Эта няшка — пушистый мимивирус с размером кода 2,5 Мегабазы (бит четвертичной системы)

              Мы тут мониторили каналы, чатики и форумы по поводу текущей обстановки в разных странах. Я просто офигевал от того, что люди могут придумать в панике и безграмотности. Поэтому ликбез. Не про коронавирус. Просто про вирусы. Маленьких «нанороботов». И антибиотики. Которые не надо кушать просто так.

              Ликбез мы подготовили вместе с инфекционистом Викторией Валиковой, руководящей клиниками в Гватемале и Никарагуа. Естественно, он полон грубых упрощений.

              Кто такие вирусы?


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

              1. Переработкой клеток на свои копии.
              2. Путешествиями в поиске новых клеток.

              Про «форму жизни» есть холивар, потому что вирион (транспортное состояние вируса, частица без клетки) — это просто кусок кода ДНК или РНК + оболочки + некий аналог порта-коннектора. В этом состоянии вирус почти ничем не напоминает жизнь, а, скорее, похож на набор инструкций. И ведёт себя именно, как распечатка инструкций: пока не найдётся кто-то, кто их выполнит, они неактивны.

              Если инструкция говорит вам, как использовать ксерокс, чтобы самоскопироваться, можно ли считать её живой?
              Читать дальше →
            • О работе ПК на примере Windows 10 и клавиатуры ч. 1

              image

              Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Windows 10. Данный цикл статей рассчитан в первую очередь на студентов технических специальностей. Мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до отображения в Notepad.exe. В виду обширности и междисциплинарности темы в статьях могут быть неточности, о которых сообщайте в комментариях. Какая-то информация может быть устаревшей в виду скорости с которой развивается Windows.
              Читать дальше →
            • VMworld Europe 2019: ключевые анонсы и распаковка легендарного рюкзака

                На открытии VMworld Europe 2019 в Барселоне перед гостями конференции и прессой выступил CEO VMware, Пэт Гелсингер. В своей приветственной речи он обозначил ключевое для современных представителей IT-профессии понятие: Tech in the age of any, технологии в эпоху всего и всех. В этом году на конференции собрались представители почти 5000 компаний из более чем 100 стран мира. В сегодняшней статье мы хотели бы поделиться с вами ключевыми анонсами первого дня конференции VMworld Europe 2019, а под занавес — прогуляться по окрестностям VMworld Europe 2019 и распаковать легендарный рюкзак!


                Читать дальше →
              • Производительность фронтенда: разбираем важные метрики

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

                  Кроме это, я постараюсь вскользь рассмотреть общие правила оптимизации кода и некоторые ошибки на которые стоит обратить внимание. Ещё расскажу про инструмент, который помогает не только в профилировании, но и «из коробки» собирает кучу базовых метрик о производительности вашего приложения (и надеюсь, вы дочитаете этот пост до конца).
                  Читать дальше →
                • HBO, cпасибо что напомнил… «Чернобыльская аптечка» беларуского фармацевта

                  • Tutorial
                  Что бы ни сказали — не станем спорить
                  Что бы ни дарили — не станем верить

                  Егор Летов «Как листовка»

                  Думаю не стоит лишний раз говорить о нашумевшем сериале Чернобыль и эффективности такого «сериального» воздействия на массы. Особенно на массы, проживающие на территориях, показанных в фильме. Выход каждой новой серии сопровождается всплеском публикаций в FB. В каждой из которых горечь, страх, боль. Что в такой ситуации я могу сделать ("кто виноват и что делать?")? Могу только описать свой взгляд на терапию лучевых поражений. Спасибо родненькой кафедре химии высоких энергий и проф. Шадыро О.И., которые пестовали в своих лабораториях нас, непутевых фармацевтов-радиохимиков. Надеюсь своей статьей честь этой, легендарной некогда, кафедры я не опорочу.

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

                  В общем, спасибо, сценаристы HBO, за то, что всколыхнули Память. Мой посильный вклад — под катом. Рейтинг доступных (и не очень) антидотов, способных сработать при радиационном выбросе. В закладки — класть строго ВСЕМ! И прочитал сам — перекинь другу.

                  Читать дальше →
                • Руководство и шпаргалка по Wireshark

                  • Translation
                  • Tutorial
                  Даже поверхностное знание программы Wireshark и её фильтров на порядок сэкономит время при устранении проблем сетевого или прикладного уровня. Wireshark полезен для многих задач в работе сетевого инженера, специалиста по безопасности или системного администратора. Вот несколько примеров использования:

                  Устранение неполадок сетевого подключения


                  • Визуальное отображение потери пакетов
                  • Анализ ретрансляции TCP
                  • График по пакетам с большой задержкой ответа

                  Исследование сессий прикладного уровня (даже при шифровании с помощью SSL/TLS, см. ниже)


                  • Полный просмотр HTTP-сессий, включая все заголовки и данные для запросов и ответов
                  • Просмотр сеансов Telnet, просмотр паролей, введённых команд и ответов
                  • Просмотр трафика SMTP и POP3, чтение писем
                  Читать дальше →
                  • +26
                  • 91k
                  • 5
                • Разрабатываем свой браузер с нуля. Часть первая: HTML


                    Всем привет!


                    Продолжаем цикл статей по разработке браузерного движка.


                    В данной статье я расскажу как создать самый быстрый HTML-парсер c DOM. Мы рассмотрим HTML спецификацию и чем она плоха относительно производительности и потребления ресурсов при разборе HTML.


                    С данной темой я докладывался на прошедшем HighLoad++. Конференцию не каждый может посетить, плюс в статье больше деталей.


                    Я предполагаю, что читатель обладает базовыми знаниями об HTML: теги, ноды, элементы, пространство имён.

                    И так, начнём!
                  • Использование и восстановление свинцовых АКБ мой опыт

                      image

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

                      Цена батарей растет из-за курса и покупать их становится накладно.

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

                      Хочу поделиться опытом. Кому интересно, прошу под кат…
                      Читать дальше →
                    • Список ресурсов для изучения Ассемблера

                        Доброго времени суток!
                        Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
                        Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…

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

                        UPD
                        В список начали добавляться ресурсы по программингу микроконтроллеров.
                        Читать дальше →
                      • Генерация произвольных реалистичных лиц с помощью ИИ

                        • Translation
                        Контролируемый синтез и редактирование изображений с использованием новой модели TL-GAN


                        Пример контролируемого синтеза в моей модели TL-GAN (transparent latent-space GAN, генеративно-состязательная сеть с прозрачным скрытым пространством)

                        Весь код и онлайн-демо доступны на странице проекта.
                        Читать дальше →
                      • Работаем в консоли быстро и эффективно

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

                        Читать дальше →
                      • Как Яндекс применил компьютерное зрение для повышения качества видеотрансляций. Технология DeepHD

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

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



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

                          Читать дальше →
                        • Размещение веб-приложения на Amazon Web Services. Дёшево. Возможно ли это?

                            Наверняка все слышали про Amazon Web Services (AWS). А некоторые даже заглянули на страницу Pricing. И заметили, что цены там заметно выше, чем на DigitalOcean, Linode, Hetzner Cloud и др. Вот таблица для сравнения цен:


                            Тип RAM CPUs Диск Трафик Цена
                            DigitalOcean - 4 GB 2 vCPUs 80 GB 4 TB $20
                            Linode Linode 4GB 4 GB 2 vCPUs 80 GB 4 TB $20
                            AWS t2.medium 4 GB 2 vCPUs - - $40

                            Amazon берёт деньги за трафик, причём цены тоже не низкие:



                            Так для чего же тогда выбирать Amazon? Вот какие причины вижу я:


                            1. Большое количество полезных сервисов.
                            2. Free Tier.

                            О втором и пойдет речь в этой статье.

                            Читать дальше →
                          • Песочница и шпаргалка по изучению Python

                              Изучать Python3 я начал с документации на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично легче запоминаются конструкции языка, если я их набрал несколько раз вручную. Python консоль для этого подходит отлично, но хотелось так же иметь своего рода шпаргалку, к которой можно было бы вернуться при написании программ в дальнейшем, если, например, возникнет вопрос, как в Python-е написать цикл for и т.п. И последней каплей стало желание автоматической проверки стиля написания кода в соответствии с существующими стандартами. Читать и вникать в них было лень, поэтому хотелось чтобы проверка кода была автоматической и подсказывала какие ошибки я делаю и как их исправить.


                              В итоге все свои эксперименты я вылил на GitHub.


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