• Google закрывает goo.gl. На смену приходит Firebase Dynamic Links



      Начиная с 30 марта 2018 года, мы отказываемся от поддержки сокращения URL-адресов goo.gl. С 13 апреля 2018 года только существующие пользователи смогут создавать короткие ссылки в консоли goo.gl. Вы сможете просматривать аналитику и загружать информацию о короткой ссылке в формате CSV на срок до одного года, до 30 марта 2019 года, когда мы полностью прекратим работу goo.gl. Ранее созданные ссылки будут продолжать перенаправляться к месту назначения.
      Читать дальше →
    • Организация системы мониторинга

        Мониторинг — это главное, что есть у админа. Админы нужны для мониторинга, а мониторинг нужен для админов.



        За последние несколько лет поменялась сама парадигма мониторинга. Новая эра уже наступила, и если сейчас вы мониторите инфраструктуру как набор серверов — вы не мониторите почти ничего. Потому что теперь "инфраструктура" — это многоуровневая архитектура, и для мониторинга каждого уровня есть свои инструменты.


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


        У нас на поддержке около пяти тысяч серверов, в самых разных конфигурациях: от систем из трех серверов с кастомными докеровскими сетками, до больших проектов с сотнями серверов в Kubernetes. И за всем этим надо как-то следить, вовремя понимать, что что-то сломалось и быстро чинить. Для этого надо понять что такое мониторинг, как он строится в современных реалиях, как его проектировать и что он должен делать. Об этом и хотелось бы рассказать.

        Читать дальше →
      • Solaris Container (zone). Создание и администрирование. Часть 1

          Solaris Container (zone). Создание и администрирование. Часть 2

          Введение


          Технология Solaris Zone (Solaris Container) – это технология, позволяющая разделить на программном уровне Solaris 10 ОС на контейнеры(зоны), почти самостоятельные ОС, которые могут иметь отдельные независимые ресурсы (процессоры, память, дисковое пространство) и своих собственных пользователей.

          Конетейнеры – это хорошее решение для построение серверов приложений, в которых каждое приложение будет иметь свой честный гарантированный (или разделяемый между всеми зонами) кусочек ресурсов, с которым сможет работать. Такое решение позволит консолидировать инфраструктуру на более мощных серверах, что в общем понизит стоимость и сложность информационных систем.

          Читать дальше →
        • Как написать одностраничное приложение (SPA) с использованием Vue.js

          Одностраничные приложения

          Одностраничные приложения (SPA) имеют мнжество преимуществ, таких как скорость, по-настоящему хороший UX, и полный контроль HTML-разметки. Становится всё больше и больше сайтов SPA; всё больше инструментов, которые упрощают процесс разработки SPA. Вы, вероятно уже читали о молодом и перспективном фреймворке Vue.js. Предлагаю вам глубже погрузиться в Vue и на конкретном примере разобраться с простым SPA.

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

          Ознакомившись с примером этого приложения, вы научитесь извлекать данные в Vue, создавать роуты и разберётесь с интересной особенностью Vue — однофайловыми компонентами.
          Читать дальше →
        • Адаптивная верстка с помощью SCSS и Gulp

          Доброго времени суток, коллеги!

          Давно задавался вопросом, как оптимизировать и сделать более удобным код используя @media screen. Ибо код

          body{font-size: 1em;}
          @media screen and (max-width: 1024px){
              body{font-size: 0.8em;}
          }

          создает достаточно крупные файлы.
          Читать дальше →
        • Пряморукий DNS: делаем правильно

            Представляем вашему вниманию очень эмоциональный рассказ Льва Николаева (@maniaque) о том, как надо настраивать DNS и особенно, как делать не надо. Вот прямо после каждого пункта можете мысленно добавлять: «Пожалуйста, не делайте этого!» В своем докладе Лев так и говорит.

            Статья будет состоять из трех частей:

            1. Как сделать резольвер (unbound, bind)

            Резольвер — это та штука, которую вы прописываете в настройках своей операционной системы, чтобы можно было превращать понятные человеку адреса типа ya.ru в непонятное 87.250.250.242.

            2. Как держать зоны (PowerDNS)

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

            3. Как взболтать, но не смешивать (PowerDNS + unbound)


            Читать дальше →
          • WCF REST сервисы и UWP приложения


              Довольно частый вопрос, который возникает у тех кто пробует разрабатывать под UWP это «Как UWP приложению получить данные из базы данных SQL Server?». Напрямую данные получить нельзя. Работа с базами данных у UWP приложений требует настроенного веб-сервиса.

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

              Под катом описание того как создать локальный WCF REST сервис и получить от него данные приложением UWP. Сервис сможет получать данные из базы данных SQL Server, созданной в Azure (но аналогично можно получить данные и из любой локальной базы). Дополнительно, чтобы все не выглядело сильно банально, будет рассмотрена возможность размещения самого сервиса в Azure для работы с ним из все того же клиентского UWP приложения.
              Читать дальше →
            • 10 приёмов работы в терминале Linux, о которых мало кто знает

              • Перевод
              Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.

              Читать дальше →
            • BEM с человеческим лицом

                Звучная аббревиатура BEM пришла к нам из лабораторий Яндекса. Там, как и в случае с XSLT, применение BEM решили возвести в абсолют: под BEM'ом в Яндексе понимают целое семейство утилит и подходов, объединенных единой идеологией блочной архитектуры веб-приложений. Как любая тоталитарная система, BEM требует соблюдения строгих правил при разработке, не редко вступающих в конфликт со здравым смыслом небольших проектов, не сравнимых по ресурсам с Яндексом. И да, то самое чувство, когда читаешь официальные доки по BEM.


                Однако, как часто бывает в процессе эволюции больших систем, под давлением интеллекта и безлимитных сроков рождается технологический алмаз, настолько же маленький и самостоятельный, насколько и ценный, который огранят уже другие. Да, BEM с его спасительной строгостью — это явное откровение. Каждый, кто на моих глазах причащался, мгновенно становился счастливым. Однако, после первой волны наслаждения приходит осознание, что второй подход к этому снаряду может порвать ментальные связки по всему объему мозга. И вот уже слышны жалобы на слишком большую сложность освоения, на чрезмерную многословность, на (внимание!) увеличение количества мегабайт в HTML и CSS, и кто знает на что еще, не относящееся к делу.


                Соглашусь, трудно взять и начать писать BEM без разбега: и нотация глаз колет, и старые трюки не проходят, и думать приходится системно. И вообще, писали как-то годами без BEM'а и писать будем! А ведь для легкого и непринужденного преодоления порога вхождения нужно сделать всего два движения. Во-первых, понизить сам порог, смягчив BEM. И во-вторых, немного подтянуться самим. Тогда переход будет ровненьким и мы мягко вкатимся в эру читабельного и поддерживаемого CSS.

                Как мы дошли до жизни такой?
              • 24 Hours of PASS 2016

                  Март выдался на удивление богатым на события. Не успел выйти SQL Server 2016 RC0, как уже доступен для загрузки RC1. Нововведений в последнем не сильно много, поэтому интересного обзора увы не получится.

                  Тем не менее, чтобы с пользой скоротать время, в ожидании релиза SQL Server 2016, предлагаю ознакомиться с докладами 24 Hours of PASS, которая прошла 16-17 марта.

                  Для тех, кто слышит про 24 Hours of PASS впервые… это ежегодная онлайн-конференция, посвященная SQL Server и длящаяся 24 часа. Докладчики из разных частей света сменяют друг друга и рассказывают много интересного про SQL Server. Существует несколько версий 24HOP. Русскоязычная версия данного мероприятия уже не первый год проводится усилиями Андрея Коршикова.

                  Чтобы не томить в ожидании, список видео-докладов, которые доступны под катом:

                  • SQL Server Transaction log. Внутреннее устройство и решение проблем (Андрей Завадский)
                  • XML, XQuery и трюки с производительностью (Сергей Сыроватченко)
                  • Azure ML. Определение наиболее эффективного классификационного алгоритма для выбранного источника данных (Константин Хомяков)
                  • SQL Server In-Memory OLTP: Нестандартные сценарии использования (Дмитрий Короткевич)
                  • SQL Server Extended Properties как простейший способ документирования баз данных (Вячеслав Миругин)
                  • SQL Server 2016 Reporting Services. Быстрый старт (Андрей Коршиков)
                  • Поддержка больших БД на MS SQL Server (Кирилл Панов)
                  • SQL Server 2016. Temporal Tables (Алексей Князев)
                  • 1+1=10. Использование битовых масок в базах данных (Елена Смоляк)
                  • SSAS Tabular 2016 (Евгений Полоничко)
                  • Внутри оптимизатора запросов: Query Store (в 2-х частях) (Дмитрий Пилюгин)
                  • PowerBI: Визуализация данных в реальном времени (Сергей Лунякин)
                  • Анализ производительности Windows приложений на примере SQL Server с использованием стандартного функционала операционной системы (Михаил Комаров)
                  Подробнее
                • Автоматизация обработки текстовых документов с помощью Microsoft Word API

                  Значительная часть текстовых документов сегодня создаётся и редактируется в программе Microsoft Word. Наличие этой программы практически на каждом компьютере даёт возможность автоматизировать печать, обработку и экспорт текстовых документов в PDF, используя API Microsoft Word.

                  В этой статье я расскажу, как автоматизировать печать текстовых документов и конвертирование документов в формат PDF.
                  Читать дальше →
                • ASP.NET 5 мертв — представляем ASP.NET Core 1.0 и .NET Core 1.0

                  • Перевод
                  Выбор названий продуктов – сложное дело.
                  Существует только две сложные темы в Науке о Компьютерах: cache invalidation и выбор названий. – Фил Карлтон.
                  Очень просто откинуться на спинку кресла и сказать: “это очень просто, они должны были назвать это Foo”, но зачастую в именование вещей вовлечено множество игроков. ASP.NET – это хороший бренд, который с нами уже около 15 лет. ASP.NET 4.6 – поддерживаемый продукт выпущенный недавно, который доступен для вас здесь http://get.asp.net.

                  image

                  Тем не менее, назвать написанный с чистого листа ASP.NET-фреймворк как “ASP.NET 5” было плохой идеей и вот почему: 5 больше, чем 4.6, что выглядит как-будто ASP.NET 5 — большая, лучшая замена ASP.NET 4.6. А это не совсем так.

                  Так что мы изменили имя и выбрали более подходящий номер версии.
                  Читать дальше →
                • Работа с AngularJS Protractor из C # и Java

                    Введение


                    Как лозунг на Angular.org гордостью объясняет:
                    Angular is what HTML would have been, had it been designed for applications , что в вольном переводе звучит так: Angular является тем, чем был бы HTML — если бы он с самого начала был предназначен для создания (веб -) приложений. AngularJS был разработан с нуля, чтобы быть тестируемым. Но многие разработчиков Selenium хотят продолжать использовать свои существующие Java или C # кодовую базу и навыки но обнаруживают при переключении на тестирование AngularJS SPA и MVVM веб-приложений, что Protractor, лидирующий инструмент тестирования приложегий AngularJS, написан на JavaScript тоже.

                    К счастью, Protractor довольно легко портируется на другие языки — он использует небольшое подмножество протокола JsonWire на котором основан Selenium WebDriver, а именно всего один интерфейс.


                    За короткое время был дополнен и развит проект protractor-net представляющий порт существующих методов Protractor https://github.com/angular/protractor/blob/master/lib/clientsidescripts.js из Javascript на C# и затем другой проект, выполняющий ту же задачу из Java.
                    Для тестирования был выбран сайт http://www.way2automation.com на котором среди прочего есть и проект для AngularJS,
                    http://www.way2automation.com/angularjs-protractor/banking.

                    тесты представляют собой «стандарные» действия «клиента» и «менеджера» банка «XYZ Bank» по проверке баланса, созданию учетных записей, проведения платежей и т.п. — это позволило проиллюстрировать все имеющиеся методы. Вызов тестов осуществлен из проекта на C# и из Java

                    Примеры кода


                    C#


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


                    image
                    Читать дальше →
                    • +8
                    • 22,7k
                    • 6
                  • Анализ ключевых показателей производительности — часть 1

                    • Перевод
                    Тестирование и анализ производительности — тема, которую хотелось бы обсуждать побольше. Мы начинаем публикацию перевода руководства от небезызвестной команды Patterns&Practices о том, с чем нужно есть ключевые показатели производительности. За перевод — спасибо Игорю Щегловитову из Лаборатории Касперского, нашему бессменному автору материалов про тестирование. Остальные наши статьи по теме тестирования можно найти по тегу mstesting

                    Введение

                    Анализ производительности – дисциплина сложная. Она изучает систему на предмет выполнения требований производительности и определяет причины, если эти требования оказываются не достигнутыми. Статья Performance Analysis Primer из этого цикла содержит введение в эту тему, описывая инструменты и подходы, применяемые в облачной разработке для того, чтобы достичь хорошей производительности.
                    Читать дальше →
                  • AutoCAD Architecture: First project

                    В линейке продуктов от Autodesk, кроме базового AutoCAD, существует много специализированных продуктов, оптимизированных под различные сферы проектирования. Одним из таких продуктов является AutoCAD Architecture (ACA). Аналогично AutoCAD, для AutoCAD Architecture возможно написание плагинов на .NET. Кроме библиотек от Autodesk для работы с объектами AutoCAD Architecture можно пользоваться C++ библиотекой Teigha Architecture от Open Design Alliance, которая позволяет загружать, отрисовывать и манипулировать архитектурными объектами.

                    Я хочу написать серию tutorial-ов, демонстрирующих работу с архитектурными объектами с помощью Autodesk .NET API и Teigha Architecture. Начнем с самых азов: соберем и заставим работать упражнение “your first project” из документации к ACA, а затем немного расширим его для использования объектов Autodesk.Aec.Arch.DatabaseServices.Wall.

                    image
                    Читать дальше →
                    • +11
                    • 11,2k
                    • 5
                  • Подборка инструментов для фронт-энд разработки

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

                    Картинки кликабельны.

                    Form builder


                    Формы являются очень важной частью любого веб-сайта, но их верстка может занять продолжительное время. Этот очень удобный инструмент, поможет вам создать красивую веб-форму очень быстро.
                    image
                    Читать дальше →
                  • Бесплатная книга «HTML5. Руководство разработчика»

                      ХО-ХО-ХО! Праздник к нам приходит! Всегда coca-co… HTML5!
                      Выпал снежок и как-то незаметно пришло праздничное, предновогоднее настроение. Чтобы как-то поддержать праздничный дух, мы решили сделать небольшой сюрприз от издательства и порадовать наших читателей бесплатной электронной книгой Марка Пилгрима «HTML5. Руководство разработчика» (DIVE INTO HTML5). Оригинал книги также есть в бесплатном варианте в Интернете.

                      Прежде чем скачать книгу целиком, предлагаем вам познакомиться с первой главой:

                      Глава 1. Как мы сюда попали?


                      Приступим


                      Недавно я прочел высказывание одного разработчика для платформы Mozilla, где говорится о той напряженности, которая всегда сопутствует разработке стандартов:

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


                      Пока я буду рассказывать, как появился HTML5, помните эти слова.
                      Читать дальше →