• Пост про кучу хлама на рабочем столе

      Уже несколько лет твержу себе — у всех вещей должно быть своё место. И вот сколько твержу, ровно столько же забываю на рабочем столе штуки, которые для работы никак не нужны. Выбрасываю лишнее, структурирую важное и складываю в кучки всякое, но каждый раз всё замусорено до основания. И мне надоело.


      Потому что ну как же выкинуть тот красивый блокнот с логотипом компании (пятый в очереди на использование) или наконец-то унести домой давно забытый квадрокоптер. В итоге всё начинает выглядеть так:



      Рабочее место редактора


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

      Читать дальше →
    • Акихабара: место гнездования отаку

        В Токио есть своя «Горбушка», только называется она «долина осенних листьев». Район Канда, станция Акихабара, а так — Акиба. Название район получил от специального противопожарного храма, который теперь считается святилищем аниме. И я сейчас на полном серьёзе.


        Храм аниме. На нормальных табличках пишут желания вроде «здоровья родным». Тут желания другие. Совсем другие.

        Сам подрайон от реки до 6 квартала ещё называется «Электрогородок», потому что там раньше торговали электроникой. «Радиовышка» или высотка Radio Kaikan 62-го года постройки — это зародыш электрогородка, откуда всё пошло, первое высокое здание в районе. Ну, это тогда оно было высоким, а сейчас просто одно из многих, и не такое уж и большое. Там были магазины, а внизу развалы с подержанной электроникой. В 2011 году, правда, высотку развалило землетрясением (была признана аварийной), но её быстро перестроили к 2014 году. И теперь внутри торговый центр кольцевого типа, где всякая куча товаров для отаку. В целом, можно бродить просто по ней и соседнему зданию, и это получится мини-Акиба.

        В общем, я прогулялся по району сам, а потом нашёл местных фиксеров, которые показали его с двух разных сторон и провели на пару секретных уровней. Сразу скажу, гулять по Акибе без местного или без детального путеводителя — идея так себе.
        Читать дальше →
      • Почему люди не используют формальные методы?

        • Перевод
        На Software Engineering Stack Exchange я увидел такой вопрос: «Что мешает широкому внедрению формальных методов?» Вопрос был закрыт как предвзятый, а большинство ответов представляли собой комментарии типа «Слишком дорого!!!» или «Сайт — это не самолёт!!!» В каком-то смысле это верно, но мало что объясняет. Я написал эту статью, чтобы дать более широкую историческую картину формальных методов (FM), почему они на самом деле не используются и что мы делаем для исправления ситуации.

        Прежде чем начать, нужно сформулировать некоторые условия. На самом деле существует не так много формальных методов: всего несколько крошечных групп. Это означает, что разные группы по-разному применяют термины. В широком смысле есть две группы формальных методов: формальная спецификация изучает запись точных, однозначных спецификаций, а формальная проверка — методы доказательства. Сюда входят и код, и абстрактные системы. Мало того, что мы используем разные термины для кода и систем, мы часто используем разные инструменты для их верификации. Чтобы ещё больше всё запутать, если кто-то говорит, что создаёт формальную спецификацию, обычно это означает и верификацию дизайна. А если кто-то говорит, что делает формальную верификацию, обычно это относится к верификации кода.
        Читать дальше →
      • CQRS. Факты и заблуждения

        • Tutorial

        CQRS — это стиль архитектуры, в котором операции чтения отделены от операций записи. Подход сформулировал Грег Янг на основе принципа CQS, предложенного Бертраном Мейером. Чаще всего (но не всегда) CQRS реализуется в ограниченных контекстах (bounded context) приложений, проектируемых на основе DDD. Одна из естественных причин развития CQRS — не симметричное распределение нагрузки и сложности бизнес-логики на read и write — подсистемы Большинство бизнес-правил и сложных проверок находится во write — подсистеме. При этом читают данные зачастую в разы чаще, чем изменяют.

        Не смотря на простоту концепции, детали реализации CQRS могут значительно отличаться. И это именно тот случай, когда дьявол кроется в деталях.
        Читать дальше →
      • 10 инструментов, позволяющих парсить информацию с веб-сайтов, включая цены конкурентов + правовая оценка для России

          image

          Инструменты web scraping (парсинг) разработаны для извлечения, сбора любой открытой информации с веб-сайтов. Эти ресурсы нужны тогда, когда необходимо быстро получить и сохранить в структурированном виде любые данные из интернета. Парсинг сайтов – это новый метод ввода данных, который не требует повторного ввода или копипастинга.

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



            Можно бесконечно спорить о понятии «devops» — а можно один раз сходить на конференцию и составить общую картину по выступлениям разных людей. А если вам на самом деле и не хочется прекращать спорить, то как раз там будет с кем это сделать!

            Ранее мы уже анонсировали конференцию DevOops и публиковали интервью с её программным комитетом. А теперь, когда до конференции осталось две недели и программа сформирована, настало время поговорить о конкретных докладах. Что будет ждать зрителей в Петербурге 20 октября? Многое, от нюансов Kubernetes до греческой трагедии. Вот список тем, а под катом расписаны соответствующие им доклады:

            • Kubernetes
            • Мониторинг и аудит приложений
            • Continuous Delivery
            • Configuration Management
            • Облака
            • DevOps в целом
            • Барух Садогурский

            Читать дальше →
          • Необразованная молодежь: да, еще один пост с точки зрения школьника

              Воззап


              Тема для меня очень актуальная. Я школьник, учусь в 11 классе, занимаюсь программированием большую часть своего свободного времени. Сначала предыстория, чтобы обозначить мое положение в мире IT, обучения, работы и по списку.

              Читать дальше →
            • Moby/Docker в продакшене. История провала

              • Перевод

              Обновление: у этой статьи появилось продолжение, переведённое @achekalin. В каком порядке читать — на ваше усмотрение: в этой статье можно получить удовольствие от обширной попоболи автора, а в продолжении — от сделанных им выводов.


              Примечание переводчика: в предыдущей статье о подготовке к девопс-конференциям, Gryphon88 задал резонный вопрос: как отличить cutting-edge и хайп? Нижеследующая статья наполнена сочной незамутненной истерикой, которую так приятно читать с утра, попивая чашечку кофе. Минус в том, что она написана в ноябре 2016, но нетленка не стареет. Если после прочтения захочется добавки, есть комментарии на Hacker News. А у тебя, юзернейм, такой же ад? Пиши в комментариях. Итак, начнем.


              В первый раз я встретился с Докером в начале 2015. Мы экспериментировали с ним, чтобы понять, для чего бы его можно употребить. В то время нельзя было запустить контейнер в фоне, не было команд чтобы посмотреть что запущено, зайти под дебагом или SSH внутрь контейнера. Эксперимент оказался быстрым, Докер был признан бесполезным и более похожим на альфу или прототип, чем на релиз.


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


              У нас 12 докеризованных приложений, бегающих на проде прямо в момент написания этой заметки, размазанные на 31 хост на AWS (по одному приложению на хост, дальше объясню — почему).


              Эта заметка рассказывает, как мы путешествовали вместе с Докером — путешествие полное опасностей и неожиданных поворотов.

              Читать дальше →
            • Linux все еще не торт

                Эта история началась около месяца назад, когда Кирилл Тхай добавил поддержку вложенных пространств имен в CRIU, после чего наша система CI приказала долго жить. В тот момент ничто не предвещало тех увлекательных приключений, в которые мы оказались вовлечены.

                image
                Читать дальше →
              • Как школьнику после уроков заработать на своих увлечениях

                Чем заняться ребятам после уроков? Техническим творчеством! Успешная реализация в котором принесет не только:

                • эндорфины;
                • понимание, где и как применять школьные знания;
                • новые знания, умения, навыки,

                но и возможность заработать.

                1. Техническое обслуживание, выигранного на робототехнических соревнованиях 3D принтера BQ Prusa i3, привело к развитию соответствующих компетенций в нашем Лицее №109.

                  image

                  Учащимся в 7-ом классе оказалось вполне под силу собирать комплекты с Али, а самое важное, доводить их до «ума». Под заказ и на реализацию — было собрано более 10 принтеров.
                Читать дальше →
              • Ещё одна система логирования, теперь на ElasticSearch, Logstash, Kibana и Prometheus



                  Всем разработчикам известна ситуация, когда приложение заглючило и пользователь не может сделать то, что ему нужно. Причины разные: пользователь ввёл неправильные данные, у него медленный интернет и многое другое. Без системы логирования разобрать эти ошибки сложно, а порой невозможно. С другой стороны, система логирования — хороший индикатор проблемных мест в работе системы. Я расскажу, как построить систему логирования в своём проекте (да, ещё раз). В статье расскажу об Elasticsearch + Logstash + Kibana и Prometheus и как их заинтегрировать со своим приложением.

                  Читать дальше →
                • Просто Angular


                    Введение


                    8-9-го декабря 2016 года была проведена первая конференция по Angular в Бельгии. Игор Минар (ведущий разработчик Angular) выступил в качестве основного докладчика с несколькими интересными объявлениями относительно того, по какому графику будет выпускаться Angular. И представьте себе, в марте 2017 года нас ждет релиз Angular 4. При этом, на данный момент уже опубликована бета-версия.


                    От переводчиков


                    Всем привет, с вами Максим Иванов и Дмитрий Сергиенков, и сегодня мы выясним куда делась третья версия, и почему мы по-прежнему можем быть верны Angular. Сейчас начинающему фронтенд-разработчику, изучающему JavaScript, довольно трудно определиться: какой же фреймворк или библиотеку им взять и изучить, оставаясь в тренде? Конечно, без слова React, сейчас не обходится ни один разговор на тему фронтенда, однако, в свое время я начал с первой версии Angular, начитался много руководств по написанию фронтенда на ES6 (с классами и прочим добром) и до сих пор не жалею. Да, вы можете писать корпоративные приложения с использованием только jQuery, но по мере развития и сложности проекта вы начнете закапывать себя в спагетти-коде, смешивая логику и представление, MV*-фреймворки же этого сделать вам не дадут.

                    Читать дальше →
                  • Хороший триггер, плохой триггер: как мы мониторим сотни серверов по всему миру



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

                      Нам, например, круглосуточно требуется мониторить более 46 000 метрик на более чем 500 серверах в 6 дата-центрах и 4 странах, а DAU игры War Robots стабильно переваливает за 1 500 000 человек.

                      Но правильный, настоящий мониторинг пишется кровью системного администратора и разработчика. Каждый кейс, каждый факап и даже внутренние процессы, включая количества тонера в картридже принтера, должны быть описаны сценарием мониторинга. Я решил немного рассказать о том, с чем мы столкнулись при организации этого процесса, а также как выстроили работу сисадминов, снизив количество дежурств и улучшив их качество. При этом упор будет сделан на подходе к мониторингу, тогда как настройка той или иной системы легко гуглится и без посторонней помощи.
                      Читать дальше →
                    • К чёрту мотивацию, вам нужна дисциплина

                      • Перевод
                      Если вы желаете что-то сделать, то есть два способа этого достичь.

                      Первый, более распространённый и в значительной мере неправильный вариант — попытаться мотивировать себя.

                      Второй, весьма непопулярный, но абсолютно правильный выбор — воспитание дисциплины.

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

                      В чём же разница?
                      Читать дальше →
                    • Переход от DateTime к DateTimeOffset

                        Представим, что вы хотите преобразовать свою систему из одного состояния в другое. Начальное состояние — это когда DateTime используется везде, в C# коде и в БД. Конечное состояние — когда везде используется DateTimeOffset. Вы хотите сделать переход плавно и внести как можно меньше изменений. Это описание может быть началом очень интересной задачи с тупиком в конце.
                        Читать дальше →
                      • Почему обучение — это новая прокрастинация

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


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

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

                          Вот в таком виде нам его передали:



                          Задача — восстановить здание в legacy-виде и из legacy-материалов, а потом плотно набить инженеркой и поставить защищённый пункт связи.

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

                          На входе у нас был архитектурный проект, подразумевающий использование материалов, характерных для 37-го года. Мы делали всё — от земляных работ и усиления фундамента до инженерки.

                          Начать надо с того, что нынешнее здание суда во время ВOВ было штабом немецких захватчиков и одновременно офицерским борделем. В 90-х там открыли казино. Потом была гостиница. Под этими культурными слоями нам и нужно было найти сталинский ампир.
                          Читать дальше →
                        • Разработка веб-скрапера для извлечения данных с портала открытых данных России data.gov.ru

                            Иногда возникает необходимость получить данные c веб-страниц и сохранить их в структурированном виде.

                            Инструменты веб-скрапинга (web scraping) разрабатываются для извлечения данных с веб-сайтов. Эти инструменты бывают полезны тем, кто пытается получить данные из Интернета. Веб-скрапинг — это технология, позволяющая получать данные без необходимости открывать множество страниц и заниматься копипастом. Эти инструменты позволяют вручную или автоматически извлекать новые или обновленные данные и сохранять их для последующего использования. Например, с помощью инструментов веб-скрапинга можно извлекать информацию о товарах и ценах из интернет-магазинов.
                            Читать дальше →
                          • Бесплатные учебные курсы по ASP.NET Core в виртуальной академии Microsoft

                              Как только Microsoft объявила о том, что .NET станет opensource и сможет работать не только на Windows, но и на других операционных системах, что было весьма актуально в связи с наметившемся трендом на импортозамещение, переход на Linux и т.п., меня заинтересовал этот проект. Я стал искать информацию. И в Виртуальной Академии Microsoft нашел курс «What’s New with ASP.NET 5». Но проект еще только развивался. Вносились изменения. Версии не всегда были совместимы между собой. И я решил подождать пока процесс стабилизируется. Появится финальная версия. И, возможно, исправления к финальной версии, как это нередко случается.

                              В результате вместо ASP.NET 5 в итоге появились .NET Core 1.0 и ASP.NET Core 1.0. Существующий «полный» фреймворк .NET был ограничен Windows, а .NET Core стал кроссплатформенным и нацелен на работу в облаке. Я решил вернуться к его изучению и посмотреть, что сейчас мне могут предложить в Виртуальной Академии Microsoft.
                              И вот, что я нашел для себя.
                              Читать дальше →
                              • +11
                              • 28,8k
                              • 9
                            • Микросервисы: опыт использования в нагруженном проекте



                                На конференции HighLoad++ 2016 руководитель разработки «М-Тех» Вадим Мадисон рассказал о росте от системы, для которой сотня микросервисов казалась огромным числом, до нагруженного проекта, где пара тысяч микросервисов — обыденность.

                                Тема моего доклада — то, как мы запускали в продакшн микросервисы на достаточно нагруженном проекте. Это некий агрегированный опыт, но поскольку я работаю в компании «M-Tех», то давайте я пару слов расскажу о том, кто мы.

                                Если коротко, то мы занимаемся видеоотдачей — отдаём видео в реальном времени. Мы являемся видеоплатформой для «НТВ-Плюс» и «Матч ТВ». Это 300 тысяч одновременных пользователей, которые прибегают за 5 минут. Это 300 терабайт контента, который мы отдаем в час. Это такая интересная задача. Как это всё обслужить?

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